网络安全

来源:互联网 发布:非诚勿扰程序员博士 编辑:程序博客网 时间:2024/04/29 08:14
 近一年来一直在做网络安全方面的项目,从开发到测试,但是由于做的东西已经细化到主要用ssh来实现安全连接,对网络安全的基本知识和技能反倒不甚了解。今天看到一篇文章高屋建瓴,说的浅显易懂,属网络安全基础篇之佳品,先转载如下。

http://blog.csdn.net/hem/archive/2001/06/07/9616.aspx

网络安全基础(二)

网络的入侵者

攻击与攻击信号

攻击的主要手段

入侵层次分析

关于口令的安全性

网络安全管理员的素质要求

综述

 


 

网络的入侵者

攻击与攻击信号

什么叫攻击?攻击的法律定义是指:攻击仅仅发生在入侵行为完全完成且入侵者已在目标网络内。但是更积极的观点是(尤其是对网络安全管理员来说):可能使一个网络受到破坏的所有行为都应称为攻击。即从一个入侵者开始在目标机上工作的那个时刻起,攻击就开始了。

通 常,在正式攻击之前,攻击者先进行试探性攻击,目标是获取系统有用的信息,此时包括ping扫描,端口扫描,帐户扫描,dns转换,以及恶性的ip sniffer(通过技术手段非法获取ip packet,获得系统的重要信息,来实现对系统的攻击,后面还会详细讲到),特洛依木马程序等。这时的被攻击状态中的网络经常会表现出一些信号,特征, 例如:

· 日志中有人企图利用老的sendmail就是比较明显的攻击的信息,即有人在端口25上发出了两三个命令,这些命令无疑是企图欺骗服务器将/etc/passwd文件的拷贝以邮件的形式发送给入侵者,另外show mount命令有可能是有人在收集计算机的信息。

· 大量的扫描应立即使root意识到安全攻击的出现。

· 某主机的一个服务端口上出现拥塞现象,此时应该检查绑定在该端口上的服务类型。淹没式和denial of service 式的攻击通常是欺骗攻击的先兆(或是一部分)。

· 等等。

良好周密的日志记录以及细致的分析经常是预测攻击,定位攻击,以及遭受攻击后追查攻击者的有力武器。察觉到网络处于被攻击状态后,网络安全管理员应该立刻按照操作规程进行记录,向主管领导汇报,相应的安全措施等处理。

攻击的主要手段

对计算机网络进行攻击的手段可以分为几个主要种类,它们的危害程度和检测防御办法也各不相同:

1 收集信息攻击:

经 常使用的工具包括:NSS, Strobe,Netscan, SATAN(Security Aadministrator's Tool for Auditing Network),Jakal, IdentTCPscan, FTPScan等以及各种sniffer.广义上说,特洛依木马程序也是收集信息攻击的重要手段。收集信息攻击有时是其它攻击手段的前奏。对于简单的端口 扫描,敏锐的安全管理员往往可以从异常的日志记录中发现攻击者的企图。但是对于隐秘的sniffer和trojan程序来说,检测就是件更高级和困难的任 务了。

1.1 sniffer

它们可以截获口令等非常秘密的或专用的信息,甚至还可以用来攻击相邻的网络,因此,网络中 sniffer的存在,会带来很大的威胁。这里不包括安全管理员安装用来监视入侵者的sniffer,它们本来是设计用来诊断网络的连接情况的.它可以是 带有很强debug功能的普通的网络分析器,也可以是软件和硬件的联合形式。现在已有工作于各种平台上的sniffer,例如:

· Gobbler(MS-DOS)

· ETHLOAD(MS-DOS)

· Netman(Unix)

· Esniff.c(SunOS)

· Sunsniff(SunOS)

· Linux-sniffer.c(Linux)

· NitWit.c(SunOS)

· etc.

检测sniffer的存在是个非常困难的任务,因为sniffer本身完全只是被动地接收数据,而不发送什么。并且上面所列的sniffer程序都可以在internet上下载到,其中有一些是以源码形式发布的(带有.c扩展名的)。

一 般来讲,真正需要保密的只是一些关键数据,例如用户名和口令等。使用ip包一级的加密技术,可以使sniffer即使得到数据包,也很难得到真正的数据本 身。这样的工具包括 secure shell(ssh),以及F-SSH, 尤其是后者针对一般利用tcp/ip进行通信的公共传输提供了非常强有力的,多级别的加密算法。ssh有免费版本和商业版本,可以工作在unix上,也可 以工作在windows 3.1, windows 95, 和windows nt.

另外,采用网络分段技术,减少信任关系等手段可以将sniffer的危害控制在较小范围以内,也为发现sniffer的主人提供了方便.

1.2 Trojan

这 是一种技术性攻击方式. RFC1244中给出了trojan程序的经典定义:特洛依木马程序是这样一种程序,它提供了一些有用的,或仅仅是有意思的功能。但是通常要做一些用户不 希望的事,诸如在你不了解的情况下拷贝文件或窃取你的密码, 或直接将重要资料转送出去,或破坏系统等等. 特洛依程序带来一种很高级别的危险,因为它们很难被发现,在许多情况下,特洛依程序是在二进制代码中发现的,它们大多数无法直接阅读,并且特洛依程序可以 作用在许许多多系统上,它的散播和病毒的散播非常相似。从internet上下载的软件,尤其是免费软件和共享软件,从匿名服务器或者usernet新闻 组中获得的程序等等都是十分可疑的. 所以作为关键网络中的用户有义务明白自己的责任,自觉作到不轻易安装使用来路不清楚的软件.

检测一个特洛依程序,需要一些比较深入的有关操作系统的知识。可以通过检查文件的更改时间,文件长度,校验和等来检查文件是否进行过非预期的操作。另外,文件加密也是有效的检查特洛依程序的方法。可以使用的工具包括:

· trip wire 是一个广泛应用的系统完整性工具.系统通过读取配置文件得到环境变量.在这个文件中包含着所有的文件标志(filemarks),使用者可以详尽地规定应 该对哪些文件作出哪些改变作出报告等.它们的数字签名保存在数据库中.数字签名可以使用的hash函数包括: MD5, MD4, CRC32, MD2, Snc frn, SHA等.

· TAMU程序包可以检查许多项目,包括由CERT通知中定义的项目,以及最近的入侵事件中发现的项目,所有被改动的系统二进制流,以及要求保密的那些关键路径.

· Hobgoblin

· ATP(The Anti-Tampering Program)

后面两种工具的使用没有前面两种那么普遍,但是它们都各有特点.

2 denial of service:

这是一类个人或多个人利用internet协议组的某些方面妨碍甚至关闭其它用户对系统和信息的合法访问的攻击. 其特点是以潮水般的连接申请使系统在应接不暇的状态中崩溃。对于大型网络而言,此类攻击只是有限的影响, 但是却可能导致较小网络退出服务, 遭到重创.

这 是最不容易捕获的一种攻击,因为不留任何痕迹,安全管理人员不易确定攻击来源。由于这种攻击可以使整个系统瘫痪,并且容易实施,所以非常危险。但是从防守 的角度来讲,这种攻击的防守也比较容易. 攻击者通过此类攻击不会破坏系统数据或获得未授权的权限, 只是捣乱和令人心烦而已. 例如使网络中某个用户的邮箱超出容限而不能正常使用等.

典型的攻击包括如E-mail炸弹, 邮件列表连接,

2.1 Email炸弹

它 是一种简单有效的侵扰工具. 它反复传给目标接收者相同的信息, 用这些垃圾拥塞目标的个人邮箱. 可以使用的工具非常多, 例如bomb02.zip(mail bomber), 运行在windows平台上,使用非常简单. unix平台上发起email bomb攻击更为简单, 只需简单几行shell程序即可让目标邮箱内充满垃圾.

它的防御也比较简单. 一般邮件收发程序都提供过滤功能, 发现此类攻击后, 将源目标地址放入拒绝接收列表中即可.

2.2 邮件列表连接

它 产生的效果同邮件炸弹基本相同. 将目标地址同时注册到几十个(甚至成百上千)个邮件列表中, 由于一般每个邮件列表每天会产生许多邮件, 可以想象总体效果是什么样子. 可以手工完成攻击, 也可以通过建立邮件列表数据库而自动生成. 对于邮件列表连接,尚没有快速的解决办法. 受害者需要把包含注销"unsubscribe"信息的邮件发往每个列表.

许多程序能够同时完成两种攻击, 包括Up yours(Windows), KaBoom(Windows), Avalanche(Windows), Unabomber(Windows), eXtreme Mail(Windows), Homicide(Windows), Bombtrack(Macintosh), FlameThrower(Macintosh), etc.

2.3 其它

还 有一些针对其它服务的攻击, 例如Syn-Flooder, Ping of Death(发送异常的很大的进行ping操作的packet来攻击windows nt), DNSkiller(运行在linux平台上, 攻击windows nt平台上的dns服务器)等。

在路由的层次上,对数据流进行过滤, 通过合适的配置会减少遭受此类攻击的可能性.Cisco Systems就提供了路由级的解决方案.

3 spoofing attack(电子欺骗):

针对http,ftp,dns等协议的攻击,可以窃取普通用户甚至超级用户的权限,任意修改信息内容,造成巨大危害。所谓ip欺骗,就是伪造他人的源ip地址。其实质上就是让一台机器来扮演另一台机器,借以达到蒙混过关的目的。下面一些服务相对来说容易招致此类攻击:

· 任何使用sunrpc调用的配置;rpc指sun公司的远程过程调用标准,是一组工作于网络之上的处理系统调用的方法。

· 任何利用ip地址认证的网络服务

· mit的xwindow系统

· 各种r服务: 在unix环境中,r服务包括rlogin和rsh,其中r表示远程。人们设计这两个应用程序的初衷是向用户提供远程访问internet网络上主机的服务。r服务极易受到ip欺骗的攻击。

几 乎所有的电子欺骗都倚赖于目标网络的信任关系(计算机之间的互相信任,在unix系统中,可以通过设置rhosts和host.equiv 来设置)。入侵者可以使用扫描程序来判断远程机器之间的信任关系。这种技术欺骗成功的案例较少,要求入侵者具备特殊的工具和技术(,并且现在看来对非 unix系统不起作用)。另外spoofing的形式还有dns spoofing等。

解决的途径是慎重设置处理网络中的主机信任关系,尤其是不同网络之间主机的信任关系。如只存在局域网内的信任关系,可以设置路由器使之过滤掉外部网络中自称源地址为内部网络地址的ip包,来抵御ip欺骗。下面一些公司的产品提供了这种功能

· Cisco System

· iss.net公司的安全软件包可以测试网络在ip欺骗上的漏洞。

· etc.

国际黑客已经进入有组织有计划地进行网络攻击阶段,美国政府有意容忍黑客组织的活动,目的是使黑客的攻击置于一定的控制之下,并且通过这一渠道获得防范攻击的实战经验。国际黑客组织已经发展出不少逃避检测的技巧. 使得攻击与安全检测防御的任务更加艰巨.

入侵层次分析

1 敏感层的划分

使用敏感层的概念来划分标志攻击技术所引起的危险程度.

1 邮件炸弹攻击(emailbomb)(layer1)

2 简单服务拒绝攻击(denial of service)(layer1+)

3 本地用户获得非授权读访问(layer2)

4 本地用户获得他们非授权的文件写权限(layer3)

5 远程用户获得非授权的帐号(layer3+)

6 远程用户获得了特权文件的读权限(layer4)

7 远程用户获得了特权文件的写权限(layer5)

8 远程用户拥有了根(root)权限(黑客已攻克系统)(layer6)

以上层次划分在所有的网络中几乎都一样,基本上可以作为网络安全工作的考核指标。

" 本地用户"(local user)是一种相对概念。它是指任何能自由登录到网络上的任何一台主机上,并且在网络上的某台主机上拥有一个帐户,在硬盘上拥有一个目录的任何一个用 户。在一定意义上,对内部人员的防范技术难度更大。据统计,对信息系统的攻击主要来自内部,占85%。因为他们对网络有更清楚的了解,有更多的时间和机会 来测试网络安全漏洞,并且容易逃避系统日志的监视。

2 不同的对策

根据遭受的攻击的不同层次,应采取不同的对策.

第一层:

处 于第一层的攻击基本上应互不相干,第一层的攻击包括服务拒绝攻击和邮件炸弹攻击.邮件炸弹的攻击还包括登记列表攻击(同时将被攻击目标登录到数千或更多的 邮件列表中,这样,目标有可能被巨大数量的邮件列表寄出的邮件淹没)。对付此类攻击的最好的方法是对源地址进行分析,把攻击者使用的主机(网络)信息加入 inetd.sec的拒绝列表(denylistings)中.除了使攻击者网络中所有的主机都不能对自己的网络进行访问外,没有其它有效的方法可以防止 这种攻击的出现.

此类型的攻击只会带来相对小的危害。使人头疼的是虽然这类攻击的危害性不大,但是发生的频率却可能很高,因为仅具备有限的经验和专业知识就能进行此类型的攻击。

第二层和第三层:

这 两层的攻击的严重程度取决于那些文件的读或写权限被非法获得。对于isp来说,最安全的办法是将所有的shell帐户都集中到某一台(或几台)主机上,只 有它们才能接受登录,这样可以使得管理日志,控制访问,协议配置和相关的安全措施实施变得更加简单。另外,还应该把存贮用户编写的cgi程序的机器和系统 中的其它机器相隔离。

招致攻击的原因有可能是部分配置错误或者是在软件内固有的漏洞.对于前者,管理员应该注意经常使用安全工具查找一 般的配置错误,例如satan。后者的解决需要安全管理员花费大量的时间去跟踪了解最新的软件安全漏洞报告,下载补丁或联系供货商。实际上,研究安全是一 个永不终结的学习过程。安全管理员可以订阅一些安全邮件列表,并学会使用一些脚本程序(如perl,等)自动搜索处理邮件,找到自己需要的最新信息。

发现发起攻击的用户后,应该立即停止其访问权限,冻结其帐号。

第四层:

该层攻击涉及到远程用户如何获取访问内部文件的权利。其起因大多是服务器的配置不当,cgi程序的漏洞和溢出问题。

第五层和第六层:

只有利用那些不该出现却出现的漏洞,才可能出现这种致命的攻击。

出现第三,四,五层的攻击表明网络已经处于不安全状态之中,安全管理员应该立即采取有效措施, 保护重要数据, 进行日志记录和汇报,同时争取能够定位攻击发起地点:

· 将遭受攻击的网段分离出来,将此攻击范围限制在小的范围内

· 记录当前时间,备份系统日志,检查记录损失范围和程度

· 分析是否需要中断网络连接

· 让攻击行为继续进行

· 如果可能,对系统做0级备份

· 将入侵的详细情况逐级向主管领导和有关主管部门汇报;如果系统受到严重破坏,影响网络业务功能,立即调用备件恢复系统

· 对此攻击行为进行大量的日志工作

· (在另一个网段上)竭尽全力地判断寻找攻击源

总之,不到万不得已的情况下, 不可使系统退出服务. 寻找入侵者的最重要的工作就是做日志记录和定位入侵者,而找出入侵者并通过法律手段迫使其停止攻击是最有效的防卫手段。

关于口令安全性

通 过口令进行身份认证是目前实现计算机安全的主要手段之一,一个用户的口令被非法用户获悉,则该非法用户即获得了该用户的全部权限,这样,尤其是高权限用户 的口令泄露以后,主机和网络也就随即失去了安全性。黑客攻击目标时也常常把破译普通用户的口令作为攻击的开始。然后就采用字典穷举法进行攻击。它的原理是 这样的:网络上的用户常采用一个英语单词或自己的姓名、生日作为口令。通过一些程序,自动地从电脑字典中取出一个单词,作为用户的口令输入给远端的主机, 申请进入系统。若口令错误,就按序取出下一个单词,进行下一个尝试。并一直循环下去,直到找到正确的口令,或字典的单词试完为止。由于这个破译过程由计算 机程序来自动完成,几个小时就可以把字典的所有单词都试一遍。这样的测试容易在主机日志上留下明显攻击特征,因此,更多的时候攻击者会利用其它手段去获得 主机系统上的/etc/passwd文件甚至/etc/shadow文件,然后在本地对其进行字典攻击或暴力破解。攻击者并不需要所有人的口令,他们得到 几个用户口令就能获取系统的控制权,所以即使普通用户取口令过于简单可能会对系统安全造成很大的威胁。系统管理员以及其它所有用户对口令选取的应采取负责 的态度,消除侥幸和偷懒思想。

然而,有许多用户对自己的口令没有很好的安全意识,使用很容易被猜出的口令,如:帐号本身,第一个字母大写, 或者全部大写,或者后面简单加上一个数字,甚至只是简单的数字,如0,1,123,888,6666,168等,有些是系统或者主机的名字,或者常见名词 如system,manager,admin等。其实,根据目前计算机加密解密处理的算法和能力,防止自己口令被使用字典攻击法猜出的办法也很简单,使自 己的口令不在相应解密程序的字典中。一个好的口令应当至少有7个字符长,不要用个人信息(如生日,名字等),口令中要有一些非字母(如数字,标点符号,控 制字符等),还要好记一些,不能写在纸上或计算机中的文件中,选择口令的一个好方法是将两个不相关的词(最好再组合上大小写)用一个数字或控制字符相连, 并截断为8个字符。例如me2.Hk97就是一个从安全角度讲很不错的口令。

保持口令安全的一些要点如下:

· 口令长度不要小于6位,并应同时包含字母和数字,以及标点符号和控制字符

· 口令中不要使用常用单词(避免字典攻击),英文简称,个人信息(如生日,名字,反向拼写的登录名,房间中可见的东西),年份,以及机器中的命令等

· 不要将口令写下来。

· 不要将口令存于电脑文件中。

· 不要让别人知道。

· 不要在不同系统上,特别是不同级别的用户上使用同一口令。

· 为防止眼明手快的人窃取口令,在输入口令时应确认无人在身边。

· 定期改变口令,至少6个月要改变一次。

· 系统安装对口令文件进行隐藏的程序或设置。(e.g. Shadow Suite for linux)

· 系统配置对用户口令设置情况进行检测的程序,并强制用户定期改变口令。任何一个用户口令的脆弱,都会影响整个系统的安全性。(e.g. passwd+, Crack,etc)

最后这点是十分重要的,永远不要对自己的口令过于自信,也许就在无意当中泄露了口令。定期地改变口令,会使自己遭受黑客攻击的风险降到了一定限度之内。一旦发现自己的口令不能进入计算机系统,应立即向系统管理员报告,由管理员来检查原因。

系统管理员也应定期运行这些破译口令的工具,来尝试破译shadow文件,若有用户的口令密码被破译出,说明这些用户的密码取得过于简单或有规律可循,应尽快地通知他们,及时更正密码,以防止黑客的入侵。

网络安全管理员的素质要求

· 深入地了解过至少两个操作系统,其中之一无可置疑地是unix。熟练配置主机的安全选项和设置,及时了解已见报道的安全漏洞,并能够及时下载相应补丁安装。在特殊紧急情况下,可以独立开发适合的安全工具或补丁,提高系统的安全性。

· 对tcp/ip协议族有透彻的了解,这是任何一个合格的安全管理员的必备的素质。并且这种知识要不仅仅停留在internet基本构造等基础知识上,必须能够根据侦测到的网络信息数据进行准确的分析,达到安全预警,有效制止攻击和发现攻击者等防御目的。

· 熟练使用c,c++,perl等语言进行编程。这是基本要求,因为许多基本的安全工具是用这些语言的某一种编写的。安全管理员至少能正确地解释,编译和执 行这些程序。更高的要求是能够把不专门为某个特定平台开发的工具移植到自己的平台上。同时他们还能够开发出可扩展自己系统网络安全性的工具来,如对 satan和safe suite的扩展和升级(它们允许用户开发的工具附加到自己上)

· 经常地保持与internet社会的有效接触。不仅要了解自己的机器和局域网,还必须了解熟悉internet。经验是不可替代的。

· 熟练使用英语读写,与internet网上的各个安全论坛建立经常的联系。

· 平时注意收集网络的各种信息, 包括硬件应识别其构造,制造商,工作模式,以及每台工作站,路由器,集线器,网卡的型号等;软件网络软件的所有类型以及它们的版本号;协议网络正在使用的 协议; 网络规划例如工作站的数量,网段的划分,网络的扩展; 以及其它信息例如网络内部以前一直实施中的安全策略的概述,曾遭受过的安全攻击的历史记录等.

综述

现 在,有关计算机网络安全,侵入等事件的报道和社会的关注明显增加。一方面,计算机普及率近年来大幅度提高,其中联入因特网的计算机数量也迅速增加,为计算 机入侵等违法犯罪行为提供了群众基础和物质条件,另一方面,应该说,社会对于计算机安全的重要性和严肃性认识不够。从入侵的动机来看,包括对原顾主单位的 怨恨,对网络安全技术的挑战,网络接入帐号,信用卡号等金钱利益,或者单纯的想利用攻击网络站点而出名,以及对网络的好奇心(这方面主要是孩子们的行 为),以及政治目的等等,当然其它一些原因也都可能引起攻击者的蓄意攻击行为。但是从已见报道的计算机犯罪案件来看,大多数计算机网络犯罪者都表示原来不 知道这样做是犯罪。多数系统管理人员和工程施工人员在安全问题上的意识淡漠,建设中或建设后在没有采取足够的安全防护措施的情况下,将主机连接到 internet上,也为计算机犯罪打开了方便之门,使得一些青少年利用从网络上学来的简单入侵手段就能在网络上通行无阻,在满足自己好奇心的同时,触犯 了国家法律。为此,加强计算机安全教育,包括提高各级网络管理人员对网络重要性的认识和安全措施的掌握水平,向社会宣传计算机网络入侵的严肃性,尤其是加 强拥有internet访问能力的青少年的网络安全法律观念。

具体措施可以包括以公益广告的形式向社会宣传计算机网络安全的严肃性和法律含 义,在各地电信部门和政府部门的主页上以醒目的方式告戒有入侵倾向的网络用户;各种isp在注册用户的时候,与用户签定安全协定,不满18周岁的青少年应 该有监护人保证才能访问网络;网络管理员在发现有不明身份的用户时,应确定其身份,并对其发出警告,提前制止可能的网络犯罪;主要isp和网络经营单位应 该有专门的网络安全管理人员对网络进行定期的安全检查,网络中配置相当的安全检测工具;等等。

从电信运营商和因特网络接入服务提供商的角度来讲,切实地加强网络的安全配置和管理,作到防患于未然,可以有效地减少计算机网络犯罪的频率和损失,同时安全方面的提高,也会增加用户对网络的信息,有利于电子商务等业务的推出和开展,增加业务收入。

本 文主要总结了unix系统平台的安全问题,有些方面与其它操作系统(windows nt等)相通。这并不意味着其它系统平台或设备就没有安全问题或较少安全问题,只是因为目前情况下,关键任务应用运行的平台以unix为主。但是随着 windows nt系统高端应用装机数量的增加,nt平台的安全问题也越来越重要。据报道,Cisco公司日前向他们的客户们确认了他们的互联网络操作系统IOS软件存 在漏洞,该漏洞将破坏Cisco公司的多数路由器产品的安全系统。 根据该公司的说法,一个未经授权的入侵将导致运行IOS软件的Cisco网络设备崩溃,而且在重启后可以不通过路由器直接登录。为了修补这个BUG, Cisco公司估计客户得对2-3个联在互联网络上的路由器上的软件进行升级。Cisco可为客户提供免费升级软件。目前 Cisco 已将该漏洞的 补丁程序放在其公司网站上供用户下载。但据说这个补丁程序对IOS 10.3或更低的版本不起作用。据称此次发现的漏洞已经存在了很长的一段时间,一直没有被发现。Cisco希望用户不要对此过于担心。以此说明,专门提供 安全功能的产品本身依然有安全漏洞,安全问题事实上已成为非常普遍存在的隐患,需要投入更充足的人力,资源来重视解决。