网络安全入门教程 [ 网站地图 ]

发表于:2009-12-31 浏览:154 作者: 来源:互联网

关键字:网络安全

描述:目前,有关计算机网络安全,侵入等事件的报道和社会的关注明显增加。一方面,计算机普及率近年来大幅度提高,其中联入因特网的计算机数量也迅速增加,为计算机入侵等违法犯罪行为提供了群众基础和物质条件

目前,有关计算机网络安全,侵入等事件的报道和社会的关注明显增加。一方面,计算机普及率近年来大幅度提高,其中联入因特网的计算机数量也迅速增加,为计算机入侵等违法犯罪行为提供了群众基础和物质条件,另一方面,应该说,社会对于计算机安全的重要性和严肃性认识不够。从入侵的动机来看,包括对原顾主单位的怨恨,对网络安全技术的挑战,网络接入帐号,信用卡号等金钱利益,或单纯的想利用攻击网络站点而出名,及对网络的好奇心(这方面主要是孩子们的行为),及政治目的等等,当然其他一些原因也都可能引起攻击者的蓄意攻击行为。不过从已见报道的计算机犯罪案件来看,大多数计算机网络犯罪者都表示原来不知道这样做是犯罪。多数系统管理人员和工程施工人员在安全问题上的意识淡漠,建设中或建设后在没有采取足够的安全防护措施的情况下,将主机连接到internet上,也为计算机犯罪打开了方便之门,使得一些青少年利用从网络上学来的简单入侵手段就能在网络上通行无阻,在满足自己好奇心的同时,触犯了国家法律。为此,加强计算机安全教育,包括提高各级网络管理人员对网络重要性的认识和安全措施的掌控水平,向社会宣传计算机网络入侵的严肃性,尤其是加强拥有internet访问能力的青少年的网络安全法律观念。
具体措施能包括以公益广告的形式向社会宣传计算机网络安全的严肃性和法律含义,在各地电信部门和政府部门的主页上以醒目的方式告戒有入侵倾向的网络用户;各种isp在注册用户的时候,和用户签定安全协定,不满18周岁的青少年应该有监护人确保才能访问网络;网络管理员在发现有不明身份的用户时,应确定其身份,并对其发出警告,提前制止可能的网络犯罪;主要isp和网络经营单位应该有专门的网络安全管理人员对网络进行定期的安全检查,网络中设置相当的安全检测工具;等等。
从电信运营商和因特网络接入服务提供商的角度来讲,切实地加强网络的安全设置和管理,作到防患于未然,能有效地减少计算机网络犯罪的频率和损失,同时安全方面的提高,也会增加用户对网络的信息,有利于电子商务等业务的推出和开展,增加业务收入。
本文在后面部分分别总结攻击计算机网络的主要手段,安装和设置网络的主要注意事项,及网络被攻击程度的度量,发现遭受攻击后的处理,网络安全管理员的素质需求等问题。

1 攻击和攻击的信号

什么叫攻击?攻击的法律定义是指:攻击仅仅发生在入侵行为完全完成且入侵者已在目标网络内。不过更积极的观点是(尤其是对网络安全管理员来说):可能使一个网络受到破坏的所有行为都应称为攻击。即从一个入侵者开始在目标机上工作的那个时刻起,攻击就开始了。
通常,在正式攻击之前,攻击者先进行试探性攻击,目标是获取系统有用的信息,此时包括ping扫描,端口扫描,帐户扫描,dns转换,及恶性的ip sniffer(通过技术手段非法获取ip packet,获得系统的重要信息,来实现对系统的攻击,后面还会周详讲到),特洛依木马程式等。这时的被攻击状态中的网络经常会表现出一些信号,特征,例如:
日志中有人企图利用老的sendmail就是比较明显的攻击的信息,即有人在端口25上发出了两三个命令,这些命令无疑是企图欺骗服务器将/etc/passwd文件的拷贝以邮件的形式发送给入侵者,另外show mount命令有可能是有人在收集计算机的信息。
大量的扫描应即时使root意识到安全攻击的出现。
某主机的一个服务端口上出现拥塞现象,此时应该检查绑定在该端口上的服务类型。淹没式和denial of service 式的攻击通常是欺骗攻击的先兆(或是一部分)。
等等。
良好周密的日志记录及细致的分析经常是预测攻击,定位攻击,及遭受攻击后追查攻击者的有力武器。察觉到网络处于被攻击状态后,网络安全管理员应该即时按照操作规程进行记录,向主管领导汇报,相应的安全措施等处理。
2 攻击的主要手段
对计算机网络进行攻击的手段能分为几个主要种类,他们的危害程度和检测防御办法也各不相同:
2.1 收集信息攻击:
经常使用的工具包括:NSS, Strobe,Netscan, SATAN(Security Aadministrator’s Tool for Auditing Network),Jakal, IdentTCPscan, FTPScan等及各种sniffer.广义上说,特洛依木马程式也是收集信息攻击的重要手段。收集信息攻击有时是其他攻击手段的前奏。对于简单的端口扫描,敏锐的安全管理员往往能从异常的日志记录中发现攻击者的企图。不过对于隐秘的sniffer和trojan程式来说,检测就是件更高级和困难的任务了。

2.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的主人提供了方便.

2.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)
后面两种工具的使用没有前面两种那么普遍,不过他们都各有特点.
{[csc:pagelist]}
2.2 denial of service:
这是一类个人或多个人利用internet协议组的某些方面妨碍甚至关闭其他用户对系统和信息的合法访问的攻击. 其特点是以潮水般的连接申请使系统在应接不暇的状态中崩溃。对于大型网络而言,此类攻击只是有限的影响, 不过却可能导致较小网络退出服务, 遭到重创. 
这是最不容易捕捉的一种攻击,因为不留所有痕迹,安全管理人员不易确定攻击来源。由于这种攻击能使整个系统瘫痪,并且容易实施,所以非常危险。不过从防守的角度来讲,这种攻击的防守也比较容易. 攻击者通过此类攻击不会破坏系统数据或获得未授权的权限, 只是捣乱和令人心烦而已. 例如使网络中某个用户的邮箱超出容限而不能正常使用等.
典型的攻击包括如E-mail炸弹, 邮件列表连接, 

2.2.1 Email炸弹
他是一种简单有效的侵扰工具. 他反复传给目标接收者相同的信息, 用这些垃圾拥塞目标的个人邮箱. 能使用的工具非常多, 例如bomb02.zip(mail bomber), 运行在windows平台上,使用非常简单. unix平台上发起email bomb攻击更为简单, 只需简单几行shell程式即可让目标邮箱内充满垃圾. 
他的防御也比较简单. 一般邮件收发程式都提供过滤功能, 发现此类攻击后, 将源目标地址放入拒绝接收列表中即可.

2.2.2 邮件列表连接
他产生的效果同邮件炸弹基本相同. 将目标地址同时注册到几十个(甚至成百上千)个邮件列表中, 由于一般每个邮件列表每天会产生许多邮件, 能想象总体效果是什么样子. 能手工完成攻击, 也能通过建立邮件列表数据库而自动生成. 对于邮件列表连接,尚没有快速的解决办法. 受害者需要把包含注销"unsubscribe"信息的邮件发往每个列表. 
许多程式能够同时完成两种攻击, 包括Up yours(视窗系统), KaBoom(视窗系统), Avalanche(视窗系统), Unabomber(视窗系统), eXtreme Mail(视窗系统), Homicide(视窗系统), Bombtrack(Macintosh), FlameThrower(Macintosh), etc.

2.2.3 其他
更有一些针对其他服务的攻击, 例如Syn-Flooder, Ping of Death(发送异常的非常大的进行ping操作的packet来攻击windows nt), DNSkiller(运行在linux平台上, 攻击windows nt平台上的dns服务器)等。
在路由的层次上,对数据流进行过滤, 通过合适的设置会减少遭受此类攻击的可能性.Cisco Systems就提供了路由级的解决方案.
2.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.

国际黑客已进入有组织有计划地进行网络攻击阶段,美国政府有意容忍黑客组织的活动,目的是使黑客的攻击置于一定的控制之下,并且通过这一渠道获得防范攻击的实战经验。国际黑客组织已发展出不少逃避检测的技巧. 使得攻击和安全检测防御的任务更加艰巨.
3 入侵层次分析:
3.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%。因为他们对网络有更清晰的了解,有更多的时间和机会来测试网络安全漏洞,并且容易逃避系统日志的监视。 
{[csc:pagelist]}
3.2 不同的对策
根据遭受的攻击的不同层次,应采取不同的对策.

第一层:
处于第一层的攻击基本上应互不相干,第一层的攻击包括服务拒绝攻击和邮件炸弹攻击.邮件炸弹的攻击还包括登记列表攻击(同时将被攻击目标登录到数千或更多的邮件列表中,这样,目标有可能被巨大数量的邮件列表寄出的邮件淹没)。对付此类攻击的最佳的方法是对源地址进行分析,把攻击者使用的主机(网络)信息加入inetd.sec的拒绝列表(denylistings)中.除了使攻击者网络中所有的主机都不能对自己的网络进行访问外,没有其他有效的方法能防止这种攻击的出现.
此类型的攻击只会带来相对小的危害。使人头疼的是虽然这类攻击的危害性不大,不过发生的频率却可能非常高,因为仅具有有限的经验和专业知识就能进行此类型的攻击。

第二层和第三层:
这两层的攻击的严重程度取决于那些文件的读或写权限被非法获得。对于isp来说,最安全的办法是将所有的shell帐户都集中到某一台(或几台)主机上,只有他们才能接受登录,这样能使得管理日志,控制访问,协议设置和相关的安全措施实施变得更加简单。另外,还应该把存贮用户编写的cgi程式的机器和系统中的其他机器相隔离。
招致攻击的原因有可能是部分设置错误或是在软件内固有的漏洞.对于前者,管理员应该注意经常使用安全工具查找一般的设置错误,例如satan。后者的解决需要安全管理员花费大量的时间去跟踪了解最新的软件安全漏洞报告,下载补丁或联系供货商。实际上,研究安全是个永不终结的学习过程。安全管理员能订阅一些安全邮件列表,并学会使用一些脚本程式(如perl,等)自动搜索处理邮件,找到自己需要的最新信息。
发现发起攻击的用户后,应该即时停止其访问权限,冻结其帐号。

第四层:
该层攻击涉及到远程用户怎么获取访问内部文件的权利。其起因大多是服务器的设置不当,cgi程式的漏洞和溢出问题。
第五层和第六层:
只有利用那些不该出现却出现的漏洞,才可能出现这种致命的攻击。
出现第三,四,五层的攻击表明网络已处于不安全状态之中,安全管理员应该即时采取有效措施, 保护重要数据, 进行日志记录和汇报,同时争取能够定位攻击发起地点:
将遭受攻击的网段分离出来,将此攻击范围限制在小的范围内
记录当前时间,备份系统日志,检查记录损失范围和程度
分析是否需要中断网络连接
让攻击行为继续进行
如果可能,对系统做0级备份
将入侵的周详情况逐级向主管领导和有关主管部门汇报;如果系统受到严重破坏,影响网络业务功能,即时调用备件恢复系统
对此攻击行为进行大量的日志工作
(在另一个网段上)竭尽全力地判断寻找攻击源

总之,不到万不得已的情况下, 不可使系统退出服务. 寻找入侵者的最重要的工作就是做日志记录和定位入侵者,而找出入侵者并通过法律手段迫使其停止攻击是最有效的防卫手段。
4 关于口令安全性
通过口令进行身份认证是目前实现计算机安全的主要手段之一,一个用户的口令被非法用户获悉,则该非法用户即获得了该用户的全部权限,这样,尤其是高权限用户的口令泄露以后,主机和网络也就随即失去了安全性。黑客攻击目标时也常常把破译普通用户的口令作为攻击的开始。然后就采用字典穷举法进行攻击。他的原理是这样的:网络上的用户常采用一个英语单词或自己的姓名、生日作为口令。通过一些程式,自动地从计算机字典中取出一个单词,作为用户的口令输入给远端的主机,申请进入系统。若口令错误,就按序取出下一个单词,进行下一个尝试。并一直循环下去,直到找到正确的口令,或字典的单词试完为止。由于这个破译过程由计算机程式来自动完成,几个小时就能把字典的所有单词都试一遍。这样的测试容易在主机日志上留下明显攻击特征,因此,更多的时候攻击者会利用其他手段去获得主机系统上的/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文件,若有用户的口令密码被破译出,说明这些用户的密码取得过于简单或有规律可循,应尽快地通知他们,及时更正密码,以防止黑客的入侵。

5 网络安全管理员的素质需求

深入地了解过至少两个操作系统,其中之一无可置疑地是unix。熟练设置主机的安全选项和设置,及时了解已见报道的安全漏洞,并能够及时下载相应补丁安装。在特别紧急情况下,能独立研发适合的安全工具或补丁,提高系统的安全性。
对tcp/ip协议族有透彻的了解,这是所有一个合格的安全管理员的必备的素质。并且这种知识要不仅仅停留在internet基本构造等基础知识上,必须能够根据侦测到的网络信息数据进行准确的分析,达到安全预警,有效制止攻击和发现攻击者等防御目的。
熟练使用c,c++,perl等语言进行编程。这是基本需求,因为许多基本的安全工具是用这些语言的某一种编写的。安全管理员至少能正确地解释,编译和执行这些程式。更高的需求是能够把不专门为某个特定平台研发的工具移植到自己的平台上。同时他们还能够研发出可扩展自己系统网络安全性的工具来,如对satan和safe suite的扩展和升级(他们允许用户研发的工具附加到自己上)
经常地保持和internet社会的有效接触。不仅要了解自己的机器和局域网,还必须了解熟悉internet。经验是不可替代的。
熟练使用英语读写,和internet网上的各个安全论坛建立经常的联系。
平时注意收集网络的各种信息, 包括硬件应识别其构造,制造商,工作模式,及每台工作站,路由器,集线器,网卡的型号等;软件网络软件的所有类型及他们的版本号;协议网络正在使用的协议; 网络规划例如工作站的数量,网段的划分,网络的扩展; 及其他信息例如网络内部以前一直实施中的安全策略的概述,曾遭受过的安全攻击的历史记录等.
6 综述
本文主要总结了unix系统平台的安全问题,有些方面和其他操作系统(windows nt等)相通。这并不意味着其他系统平台或设备就没有安全问题或较少安全问题,只是因为目前情况下,关键任务应用运行的平台以unix为主。不过随着windows nt系统高端应用装机数量的增加,nt平台的安全问题也越来越重要。据报道,Cisco公司日前向他们的客户们确认了他们的互连网络操作系统IOS软件存在漏洞,该漏洞将破坏Cisco公司的多数路由器产品的安全系统。 根据该公司的说法,一个未经授权的入侵将导致运行IOS软件的Cisco网络设备崩溃,而且在重启后能不通过路由器直接登录。为了修补这个BUG,Cisco公司估计客户得对2-3个联在互连网络上的路由器上的软件进行升级。Cisco可为客户提供免费升级软件。目前 Cisco 已将该漏洞的 补丁程式放在其公司网站上供用户下载。但据说这个补丁程式对IOS 10.3或更低的版本不起作用。据称此次发现的漏洞已存在了非常长的一段时间,一直没有被发现。Cisco希望用户不要对此过于担心。以此说明,专门提供安全功能的产品本身依然有安全漏洞,安全问题事实上已成为非常普遍存在的隐患,需要投入更充足的人力,资源来重视解决。


站长资讯网 做中国最丰富的资讯网站 沪ICP备05004089号