3.2 攻击的一般流程
网络上的各种攻击行为威胁着许多国家基础设施。如图3.6所示的广播、工业、金融、医疗、交通、电力、通信、控制等信息系统都或多或少受到过网络上的攻击。
图3.6 网络攻击的对象
网络攻击在进行的时候,都是有步骤的。典型的攻击步骤如图3.7所示。
第1步:预攻击探测
这一阶段主要是为实施攻击而提前进行的探测活动,为后续攻击打下基础。这一阶段收集的信息包括网络信息(域名、IP地址、网络拓扑)、系统信息(操作系统版本、开放的各种网络服务版本)、用户信息(用户标识、组标识、共享资源、即时通信软件账号、邮件账号)等。如图3.8所示为攻击者想要获取的信息。
图3.7 典型的攻击步骤
图3.8 预攻击探测要获取的信息
攻击者可以使用下面几种方法或工具来收集这些信息:
(1)SNMP协议。用它来查阅非安全路由器的路由表,从而了解目标机构网络拓扑的内部细节。
(2)TraceRoute程序。用它能够得出到达目标主机所要经过的网络数和路由器数。
(3)Whois协议。它是一种信息服务,能够提供有关所有DNS域和负责各个域的系统管理员数据。不过这些数据常常是过时的。
(4)DNS服务器。它查看访问主机的IP地址表和它们对应的主机名。
(5)Finger协议。它能够提供特定主机上用户们的详细信息(注册名、电话号码、最后一次注册的时间等)。
(6)Ping程序。可以用它来确定一个指定的主机的位置并确定其是否可达。把这个简单的工具用在扫描程序中,就可以Ping网络上每个可能的主机地址,从而构造出实际驻留在网络上的主机的清单。
第2步:发现漏洞,并采取攻击行为
这一步先要通过扫描工具对目标主机或网络进行扫描,扫描的主要目的如下。
(1)发现存活主机、IP地址,以及存活主机开放的端口。
(2)发现主机操作系统类型和系统结构。
(3)发现主机开启的服务类型。
(4)发现主机存在的漏洞。
常用的几种公开的扫描工具,如ISS(Internet Security Scanner)和SATAN(Security Analysis Tool for Auditing Networks),可以对整个域或子网进行扫描并寻找安全漏洞。这些程序能够针对不同系统的脆弱性确定其弱点。入侵者利用扫描收集到的信息来获得对目标系统的非法访问权。如图3.9所示为攻击者扫描网络的示意图。
图3.9 攻击者扫描网络的示意图
扫描到目标主机的信息之后,就要发起攻击了。典型的攻击行为将在下一小节介绍。
第3步:获得攻击目标的控制权系统
这一时期的主要目标是获得系统账号权限,并提升为root或administrator权限。攻击者拥有这一权限后,可以对操作系统进行任意操作。
root权限是UNIX/Linux系统权限的一种,也叫根权限。它可以与Windows系统里的system权限理解成一个概念,但高于Administrator权限。root是Linux和UNIX系统中的超级管理员用户,该用户拥有整个系统至高无上的权力,所有对象它都可以操作。获得root权限之后就意味着已经获得了系统的最高权限,这时候就可以对系统中的任何文件(包括系统文件)执行所有增、删、改、查的操作。
第4步:安装系统后门
后门程序一般是指那些绕过安全性控制而获取对程序或系统访问权的程序方法。在软件的开发阶段,程序员常常会在软件内创建后门程序以便可以修改程序设计中的缺陷。但是,如果这些后门被其他人知道,或是在发布软件之前没有删除后门程序,那么它就成为安全风险,容易被黑客当成漏洞进行攻击。后门是一种登录系统的方法,它不仅绕过系统已有的安全设置,而且还能挫败系统上各种增强的安全设置。在命名中,后门一般带有backdoor字样。
第5步:继续渗透网络,直至获取机密数据
以攻击成功的主机为跳板,攻击其他主机,直到找到攻击者想要的东西。
第6步:消除踪迹
消除所有攻击痕迹,以防止被计算机管理员发现。这里最常用的方法就是把日志文件全部清除。例如,在Windows系统里可以进入“控制面板”的“事件查看器”,选择“清除日志…”,把日志信息全部清除,如图3.10所示。
图3.10 清除日志信息