网络取证原理与实战
一、分析背景
网络取证技术通过技术手段,提取网络犯罪过程中在多个数据源遗留下来的日志等电子证据,形成证据链,根据证据链对网络犯罪行为进行调查、分析、识别,是解决网络安全问题的有效途径之一。目前,传统的计算机取证模型和方法比较成熟,而应用于大数据时代则需要OSSIM等集成分析平台对海量数据尽心网络取证分析。
二、取证分析特点
网络取证不同于传统的计算机取证,主要侧重于对网络设施、网络数据流以及使用网络服务的电子终端中网络数据的检测、整理、收集与分析,主要针对攻击网络服务(Web服务等)的网络犯罪。计算机取证属于典型的事后取证,当事件发生后,才会对相关的计算机或电子设备有针对性的进行调查取证工作。而网络取证技术则属于事前或事件发生中的取证,在入侵行为发生前,网络取证技术可以监测、评估异常的数据流与非法访问;由于网络取证中的电子证据具有多样性、易破坏性等特点,网络取证过程中需要考虑一下问题:
(1)按照一定的计划与步骤及时采集证据,防止电子证据的更改或破坏。网络取证针对的是网络多个数据源中的电子数据,可以被新数据覆盖或影响,极易随着网络环境的变更或者人为破坏等因素发生改变,这就要求取证人员迅速按照数据源的稳定性从弱到强的顺序进行取证。
(2)不要在要被取证的网络或磁盘上直接进行数据采集。根据诺卡德交换原理,当两个对象接触时,物质就会在这两个对象之间产生交换或传送。取证人员与被取证设备的交互(如网络连接的建立)越多、越频繁,系统发生更改的概率越高,电子证据被更改或覆盖的几率越大。这就要求在进行取证时不要随意更改目标机器或者目标网络环境,做好相关的备份
工作。
(3)使用的取证工具必须得到规范认证。网络取证可以借助OSSIM这种安全分析平台。
由于业内水平不一且没有统一的行业标准,对取证结果的可信性产生了一定的影响。这就要求取证人员使用规范的取证工具。四处在网上下载的小工具是没有说服力的。
网络取证的重点是证据链的生成,其过程一般都是层次性的或基于对象的,一般可分为证据的确定、收集、保护、分析和报告等阶段,每个阶段完成后都会为下一个阶段提供信息,下一个阶段得到的结果又为前一个阶段的取证提供佐证。网络取证的每一个阶段都是相互联系的,这就需要这些信息相互关联,主要由关联分析引擎实现。
三、网络证据的数据源
网络取证的对象是可能记录了网络犯罪过程中遗留下来的数据的多个网络数据源。人们不管是使用Web 服务、云服务或社交网络服务,都需要包含服务提供端(如云服务器)、客户端(PC、手机等智能终端设备)以及网络数据流。
在网络取证证据的提取的过程中,首要的问题就是确定捕获什么样的数据。按照计算机取证的方法,为了准确地构造证据链,需要捕获网络环境中所有的数据(通过SPAN实现)。
四、网络证据分析
网络取证中证据链的开端是被入侵网站记录的非法访问数据。由于针对网络服务的犯罪往往是以窃取网络服务管理员的权限为突破口的,因此,进行网络取证工作时,首先就是针对用户权限以及用户访问点的调查。
取证者在可以进入程序管理模块调查用户账户的可疑记录,例如是否有管理员账户是用万能密码登陆的,后台是否有错误的管理账户登录记录以及可疑的文件记录,是否有用户加载了XSS 跨站session 脚本等异常脚本,进行边界数据监测如文件的上传与下载等用户活动。在进行证据收集的过程中,分析电子证据体现的可疑行为,从而推断犯罪者的攻击方式与信息,以作为下一步的取证活动的指导。
发现有可疑行为的用户记录后,收集该用户访问点的所有访问记录,包括认证用户的权限与对应的会话管理等,记录该用户的所有会话ID。对于可疑的行为记录,以截图、录屏、存储等方式将证据固化到取证设备中,并使用Hash函数对数据进行计算得到信息摘要并保存在基准数据库中。在证据分析之前,对要分析的证据再做一次Hash 计算,比较两者的结果,如果相同则说明数据完整性未被破坏。分析并对应用户与会话ID 之后,则以其作为指示信息收集网络服务器及应用服务器日志中有关该用户及其所有的会话信息记录。
如果后台应用管理模块中的可疑已经被攻击者删除而无法取得可疑会话信息时,则以收集与分析可疑访问的日志作为取证主体。可疑的访问包括记录的访问频率异常、错误信息处理记录、日志审核报告、网站重定向、管理员监控警报、收集站点信息的爬虫记录以及表单隐藏域等。
收集分析日志信息的最大难点在于如何在网站庞大的数据中检索出需要的信息,网络取证技术主要采用日志精简与人工忽略两种思想进行筛选。日志精简主要是根据例如犯罪发生的时间等犯罪信息作为筛选信息进行日志筛选。另外,可以有针对性的查找特定的攻击手段
留下的痕迹。当攻击时间前后公布了某一系统漏洞或者在当时某种攻击手法正在流行时,用这种针对性比较强的调查手段会取得更好的效果。
针对网站日志的分析是Web 取证在网站服务器端的主要应用,除此之外,取证者还可以应用其他技术作为辅助手段协助完成证据链。
五、针对网络数据流的取证
网络取证需要监测网络环境信息与网络流,进行数据包的捕获与分析。网络环境的相关信息主要依靠OSSIM系统中的IDS等进行获取。这一系列的工具可以用来进行网络信息收集与网络安全监测、IP/MAC 地址的分析与定位、监测TCP/UDP 端口与DHCP 列表、SMTP 活动记录等。在进行网络包捕获方面,使用的技术包括基于Libpcap 库、PF_RING 接口、直接使用系统调用等多种。
在被捕获的网络流中,网络包会按照其在网络上传输的顺序显示,相关网络取证工具可以对这些包进行重组,即将这些包组织成两个网络连接点之间的传输层连接。虽然很多取证工具可以对未重组的原始数据进行分析,但是这样会造成非标准端口协议的丢失以及无法应对数据编码与加密传输干扰的问题。
网络取证中的相关性分析研究主要因为网络攻击行为往往是分布、多变的,因此对结果的认定需要将各个取证设施和取证手法得到的数据结合起来进行关联分析以了解其中的相关性以及对结果产生的因果关系和相互确证,才可以重构过程。
对于这种情况完全由人工分析很显然不太现实,所以我们可以利用开源OSSIM平台得以实现。这样你面对的是多纬度以及大视角的海量数据分析, 采用多数据纬度关联分析,例如如果防火墙检测到非正常业务逻辑的文件上传同时主机Hids 检测到非正常业务CGI 生成,很大可能是攻击者在利用文件上传漏洞上传可疑Webshell(由Snort负责分析) 。以上述检测规则作为给定规则,构建规则模式,形成规则模式集,继而分析证据集。
六、取证案例
为了让大家能够理解各种网络取证方法,在10多年Unix/Linux运维经验中笔者出版《Unix/Linux网络日志分析与流量监控》一书中,例举了二十一个常见网络故障,每个案例完整地介绍了故障的背景、发生、发展,以及最终的故障排除过程。其目的在于维护网络安全,通过开源工具的灵活运用,来解决运维实战工作中的各种复杂的故障。
精彩案例如下:
案例一:闪现Segmentation Fault为哪般
案例二:谁动了我的胶片
案例三:邂逅DNS故障
案例四:网站遭遇DoS攻击
案例五:“太囧”防火墙
案例六:围堵Solaris后门
案例七:遭遇溢出攻击
案例八:真假root账号
案例九:为rootkit把脉
案例十:当网页遭遇篡改之后
案例十一:UNIX下捉虫记
案例十二:泄露的裁员名单
案例十三:后台数据库遭遇SQL注入
案例十四:大意的程序员之SQL注入
案例十五:修补SSH服务器漏洞
案例十六:无辜的“跳板”
案例十七:IDS系统遭遇IP碎片攻击
案例十八:智取不速之客
案例十九:无线网遭受的攻击
案例二十:无线会场的“不速之客”
案例二十一:“神秘”的加密指纹
由于篇幅所限就不一一详述,各位读者可以到新华书店和图书馆获取该书详情。
七、后记
目前,网络取证技术还没有统一的、比较完备的网络取证流程,这相应的造成了没有比较统一的取证工具以及相应的评价指标。但笔者通过多年研究开发和应用OSSIM系统发现,该系统的确可以解决目前网络安全取证环节遇到的一些问题。