1、第一页,共44页。UNIX,是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、DennisRitchie和DouglasMcIlroy于1969年在AT&T的贝尔实验室开发。商业版本:Solaris、AIX、HP-UX免费操作系统:LINUX、OpenBSD、FreeBSD鉴于其基于网络的设计,UNIX系统是作为Internet和小型网络上的关键部分的理想平台。许多电子商务网站、公司财务数据库等都运行于UNIX平台。第二页,共44页。与与LinuxLinux的区别和联系的区别和联系 UNIX是一个功能强大、性能全面的多用
2、户、多任务操作系统,可以应用从巨型计算机到普通PC机等多种不同的平台上,是应用面最广、影响力最大的操作系统。Linux并不是UNIX,而是一个类似于 UNIX的产品,它成功的实现并超越了UNIX系统和功能,具体讲Linux是一套兼容于System V以及BSD UNIX的操作系统,对于System V来说,目前把软件程序源代码拿到Linux底下重新编译之后就可以运行,而对于BSD UNIX来说它的可执行文件可以直接在Linux环境下运行。第三页,共44页。另外两大区别:1)UNIX系统大多是与硬件配套的,而Linux则可运行在多种硬件平台上.2)UNIX有些版本比如aix,hp-ux是商业软件
3、是闭源的(不过solaris,*bsd等unix都是开源的),而Linux是自由软件,免费、公开源代码的.第四页,共44页。6.1 LINUX系统现场证据获取现场证据获取的目的:保护现场,即保存当前系统运行状态。凡是涉及计算机系统当前状态的数据都是收集的目标。在现场收集的数据应该优先考虑挥发性数据。要完全收集一台计算机的状态是不可能的。仅仅是检查高度易挥发的数据这种行为都会改变计算机的状态。在系统的主存中查找字符串验证在LINUX上数据的易挥发性,使用下面的命令:#grep abasasdc/dev/mem binary matches第五页,共44页。/dev/mem 是一个特殊的设备文件,
4、对它的访问其实是对主存进行访问,类似的,虚拟存储器可以通过/dev/kmem 来访问日期、时间等基本的信息可以首先收集起来获取现场证据屏幕信息内存信息网络联接状态1.正在运行的进程第六页,共44页。6.1.1 屏幕信息所有的UNIX版本都已经标准化了窗口操作标准-X Windows。它是一个网络系统,允许正在运行的进程把它们的窗口显示在对用户来说最方便的任何工作站上。X Windows的转储命令xwd能够转储一个单独的窗口或者整个屏幕。#xwd display localhost:0 root screen.xwd#xwud in screen.xwdxwd 命令提供了-root 选项,可以用
5、它通过捕获 X Window 系统根窗口捕获整个屏幕,X Window 系统根窗口是包含显示的所有其他 X Window 系统窗口和对话框的全屏窗口。下面的命令捕获整个屏幕并把它写到 full-screen.xwd 文件中:wd-root-out full-screen.xwd 第七页,共44页。X-Window环境下截图用X-Window中的截图工具 xwd与xwud是X-Window中自带的截图工具。xwd是一个非常传统的屏幕截图软件,它可以截取程序窗口和全屏图像。xwud是X11图形工具客户程序,可以用它来显示由xwd程序创建的图形文件。这两个程序包含在X-Window的标准发布版中。截
6、取图像的方法如下:#xwd myscreen.xwd 查看图像使用如下命令:#xwud-in myscreen.xwd 实际使用中,可以用xwd结合其它图形转换程序直接获得想要的输出文件。第八页,共44页。6.1.1 内存信息在linux上,每个东西都被当作文件来对待,这使复制和保存系统存储器的内容变得容易。实例假定在一个文件系统中有一个具有很大自由空间的数据收集系统步骤一:在数据收集系统上设置两个监听netcat进程:#nc l p 10005suspect.mem.imagesnc l p 10006suspect.kmem.images&第九页,共44页。步骤二从受嫌疑的机器上复制内
7、存:#dd bs=1024/dev/mem l nc 192.168.0.2 10005 w 332678+0 records in32678+0 records out#dd bs=1024/dev/mem l nc 192.168.0.2 10005 w 322+0 records in22+0 records out注意:当复制高度异变的对象时,如系统的内存,是不可能验证其准确性的。第十页,共44页。6.1.3 网络连接使用netstat命令来捕获正在进行中的网络活动的信息。在典型的linux系统内,大多数的网络连接是能兼容X Windows的。即使只是在本地运行,X Windows也要
8、使用网络机制。在LINUX中,使用-p选项来显示与特定的网络连接相关的进程。HTTP是无状态的,因为这些连接都具有很短暂的生存期,并且它们的状态迅速地循环到FIN_WAIT状态,然后到CLOSE_WAIT状态。同时,HPPT连接还提供了正在连接的机器的名字。当netstat不能够在本地的/etc/hosts中查找到这些机器名时,它会尝试一下反向DNS查询,以确定与IP地址相关的主机名。第十一页,共44页。6.1.4正在运行的进程LINUX提供了许多工具,这些程序能够提供关于所有运行进程的信息,或者提供关于特定运行进程的细节。在捕获正在运行的机器状态时,主要的一个任务就是收集一份所有运行进程的列
9、表,以及一份所有打开文件的列表。/proc目录是一个伪文件系统,它为/dev/kmem提供一个结构化的接口,便于系统诊断并查看每一个正在运行的可执行文件的环境。在内存中的每一个进程在/proc中都有一个目录,按它的进程ID来命名。可以通过/proc来完善收集到的进程列表信息。第十二页,共44页。6.2 linux中计算机证据获取6.2.1 文件系统6.2.2日志文件6.2.3其它信息源6.2.4数据恢复第十三页,共44页。6.2.1 文件系统目录在LINUX的文件系统中发挥很重要的作用,它比Windos的目录要简单的多,只包括文件名的列表和文件的索引节点号。每个文件都在索引节点表里有相关项,它
10、包括除文件名外的所有与文件相关的信息,这些项可以通过索引节点号访问。索引节点包含了一个文件除去文件名以外的所有信息。一个索引节点占用128字节的磁盘空间。第十四页,共44页。索引结点包含的信息文件类型:普通文件、目录、块设备文件、字符设备文件、链接等文件权限:读、写、执行权限的组合文件的硬链接数文件所有者的用户ID文件所属的组ID文件大小(字节数)一个包含有15个磁盘块地址的数组文件最近的访问时间和日期文件最后一次修改的日期和时间文件创建的日期和时间第十五页,共44页。LINUX所有文件均存放于目录中,目录本身也是一个文件。目录存放文件的机制:目录本身也和普通文件一样,占用一个索引节点由这个索
11、引节点得到目录内容的存放位置1.从其内容中取出一个个的文件名和它对应的节点号,从而访问一个文件第十六页,共44页。目录结构:索引节点号(2字节).(本目录)(14字节)索引节点号(2字节).(父目录)(14字节)索引节点号(2字节)文件名(14字节)索引节点号(2字节)文件名(14字节)由上可知,文件名是依靠目录来描述的,文件的内容和其它信息则由索引节点来描述。在对文件的调查过程中,应该重点分析这些索引节点以及其中的内容。第十七页,共44页。任何应用都会在磁盘上留下痕迹,有的直接在临时文件中留下,有的通过交换空间间接留下。在另外的一台计算机上使用所保存的文件系统的映像有两种方式:把映像复制进一
12、个与该映像具有相同大小的分区内。首先使用dd把这个分区清除干净,然后使用dd把这个映像复制到该分区上。1.把这个映像文件复制进一个足够大的能够容纳它的文件系统中,然后把驱动映像文件作为一个文件系统来加载。第十八页,共44页。Redhat LINUX的缺省配置在/dev中具有一系列的回送设备,使同时安装多个文件系统映像变得很方便。#mkdir/mnt/suspecthost#mount t ext2 o ro,loop=/dev/loop0 suspect.hdb5.image/mnt/suspecthost如果有一个DOS文件系统的映像,也可以使用下面这种方法来访问它:#mkdir/mnt/s
13、uspecthost2#mount t dos o ro,loop=/dev/loop1 suspect.dos.image/mnt/suspecthost2第十九页,共44页。6.2.2日志文件logon和logoff或LINUX系统的任意事件都可以在一个或多个系统日志文件中产生记录。lastlog文件中的记录可以通过lastlog命令进行查看 last命令可以用来查看wtmp和utmp文件中的记录。日志文件的详细程度各不相同,取决于日志记录机制是如何配置的。LINUX系统可以配置为记录每个用户账号、记录该账号执行的命令,或者通过Solaris系统的BSM(基本安全模块)进行记录。系统日志、
14、登录日志、http日志、进账日志第二十页,共44页。系统日志系统日志可能是最有价值的系统活动的信息源。如果满足下面两个条件,日志记录对取证会很有用。日志记录功能是激活的,而且记录必须足够详细。记录必须是完整的。在信息量的记录方面,syslog兼容的进程通常有较大的灵活性。检查一个系统的时候,查阅一下etc/syslog.conf,看看对每一个系统服务,日志记录机制是怎样设置的,日志信息被送到什么地方。syslog的主要的弱点就是它缺少认证服务。制造假的系统日志很容易。如何进行日志检查?第二十一页,共44页。对日志可疑情况的分析日志丢失 日志在预期时间之后开始 日志的第一个记录的时间信息一段时间
15、内没有日志 有缺口的区域丢失的日志记录 使用其它方法来推测日志记录应该已经产生了特殊时间的异常活动不明来源的登录 来自该组织范围外部的登录失败的登录失败或者未经授权地使用su 为了获得根权限,攻击者会用到su命令试图访问/etc/passwd 有散列化的口令文件,攻击者就能够破解口令来自网络服务的错误 某个网络服务已经被用于获取对系统的访问权过大的日志 企图利用缓冲区溢出的漏洞第二十二页,共44页。登录日志在LINUX系统中,登录进程对每个控制台登录、远程登录、X会话、rsh的使用、FTP等会话维护一个记录为了适应不同的目的,该记录分散在三个不同的文件里。这些登录日志在所有的UNIX平台上都按
16、照相同的方法使用。三种linux系统下的登录日志:/var/log/utmp /var/log/wtmp /var/log/lastlog几种利用日志来报告用户活动的工具:last lastlog who w第二十三页,共44页。X会话 在人机交互,会话管理是保持用户的整个会话活动的互动与计算机系统跟踪过程。会话管理分类:桌面会话管理、浏览器会话桌面会话管理、浏览器会话管理、管理、WebWeb服务器的会话管理服务器的会话管理(通常指的SESSION以及COOKIE)。在X Window系统中,X会话管理器是一个会话管理程序,这个程序能够保存和恢复一组程序的当前运行状态。在Linux操作系统中,
17、很多操作都是有可能的,其中包括可以同时运行两个图形化桌面。在OS X或者Windows操作系统中,如果想让其它用户使用你的桌面,或者想同时使用两个不同的图形用户界面,那么你必须使用到“用户转化开关(user switching)”,这将会临时终止一个桌面而进入到另一个桌面。第二十四页,共44页。桌面会话管理器是一个程序,可以保存和恢复桌面会话。桌面会话是所有正在运行的窗口和当前的内容。会话管理器基于Linux系统是由X会话管理器。在Microsoft Windows系统,没有会话管理器包含在系统中。会话管理是由第三方提供类似twinsplay第三方应用程序。从X X会话管理器会话管理器的角度来
18、看,一个会话是指给定时间的桌面状态:一组窗口以及它当前的内容。更精确的说,一个会话是一组管理窗口或与窗口有关的客户端以及允许这些程序恢复所需窗口的相关信息。使用会话管理器最显著的效果是再次登录进入时所有窗口和状态与登出时完全一致。第二十五页,共44页。rsh是“remote shell”(远程 shell)的缩写,该命令在指定的远程主机上启动一个shell并执行用户在rsh命令行中指定的命令;如果用户没有给出要执行的命令,rsh就用rlogin命令使用户登录到远程机上。rshrsh配置过程配置过程FTP(Protocol,FTP)是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/
19、IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层。FTP客户机可以给服务器发出命令来下载文件,上载文件,创建或改变服务器上的目录。第二十六页,共44页。HTTP日志如果检查的是一个Web服务器,应该检查http日志。许多常见的web攻击都会在http日志中留下非常明显的痕迹。使用grep命令,寻找奇怪的URL的证据。它们可能被用来获取超级用户或者shell的访问权限。例如,用字符串“passwd”做一次grep检索,可能返回一份所有收集/etc/passwd的企图。许多常见的Web攻击在http日志中都会留下非常明显的痕迹。第二十七页,共44页。进程记账进程记账最初用作
20、建立进账记录来生成内部的账单,而现在的主要目的是安全。运行进程记账所要求的系统资源较低,但却能提供一份有用的系统活动的记录。记账程序维护了一份详细的关于每个被调用的进程的记录,它追踪时间、二进制文件名称和调用该进程的用户。在unix系统下,记账文件一般放置在/var/adm/pact/var/adm/acct /var/adm/pacct 阅读这些文件的命令是acctcom或lastcomm默认情况下,linux系统并没有运行进程记账程序,因此,要使用记账记录需要预先配置。第二十八页,共44页。linux grep命令1.1.作用作用Linux系统中grep命令是一种强大的文本搜索工具,它能使
21、用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.2.格式格式 grep options3.3.options主要参数:c:只输出匹配行的计数。I:不区分大 小写(只适用于单字符)。h:查询多文件时不显示文件名。l:查询多文件时只输出包含匹配字符的文件名。n:显示匹配行及 行号。s:不显示不存在或无匹配文本的错误信息。v:显示不包含匹配文本的所有行。第二十九页,共44页。pattern正则表达式主要参数:忽略正则表达式中特殊字符的原有含义。:匹配正则表达式的开始行。$:
22、匹配正则表达式的结束行。:到匹配正则表达式的行结束。:单个字符,如A即A符合要求。-:范围,如A-Z,即A、B、C一直到Z都符合要求。:所有的单个字符。*:有字符,长度可以为0。第三十页,共44页。grepgrep命令使用简单实例命令使用简单实例$grep test d*显示所有以d开头的文件中包含 test的行。$grep test aa bb cc显示在aa,bb,cc文件中匹配test的行。$grep a-z5 aa显示所有包含每个字符串至少有5个连续小写字符的字符串的行。$grep w(es)t.*1 aa如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*
23、),这些字符后面紧跟着 另外一个es(1),找到就显示该行。如果用egrep或grep-E,就不用”号进行转义,直接写成w(es)t.*1就可以了。第三十一页,共44页。6.2.3其它信息源账号信息 被攻击系统上的口令文件往往显示篡改的信息未经授权的信任关系不可见的文件和目录#find.type d name*.*-print0|cat-A/tmpcrontab和at任务 crontab定时运行程序/dev中非专用的文件在用户目录下的可执行文件内核转储文件shell和应用程序历史第三十二页,共44页。内存转储是用于系统崩溃时,将内存中的数据转储保存在转储文件中,供给有关人员进行排错分析使用,(
24、如果是个人用户,选择“无”对普通用户来说,一点用处也没有,甚至会导致泄密)。小内存转储,就是只保存内存前64KB的基本空间数据的内存转储文件。这样可以节省磁盘空间,也方便文件的查看。右键点击“我的电脑”,选“属性高级启动和故障恢复设置”,打开“启动和故障恢复”选项卡,在“写入调试信息”下拉列表中选中“小内存转储(64KB)”选项。第三十三页,共44页。这个概念源于UNIX系统,当程序在执行的时候,由于编写的失误或未经过充分的测试,程序对系统构成威胁,就可能会导致核心转储(core dump)令人摸不着头脑。在UNIX系统中,常将“主内存”(main memory)称为核心(core),因为在使
25、用半导体作为内存材料之前,便是使用核心(core)。而核心映像(core image)就是“进程”执行当时的内存内容。当进程发生错误或收到“信号”而终止执行时,系统会将核心映像写入一个文件,以作为调试之用,这就是所谓的核心转储(core dump)。第三十四页,共44页。6.2.4数据恢复UNIX系统下文件被删除后很难恢复,这是由UNIX独特的文件系统结构决定的。UNIX文件删除的过程很简单,那就是释放索引节点表和文件占用的数据块,清空文件占用的索引节点,但不清除文件内容。删除文件与删除目录的处理不尽相同,不同命令删除文件的过程也不相同。第三十五页,共44页。删除一个文件删除一个目录几种不同的
26、删除命令rm命令mv命令命令第三十六页,共44页。数据恢复根据磁盘现场进行恢复根据内容恢复关键字搜索法精确长度搜索法内容关联法1.环境比较法第三十七页,共44页。6.3 简单的取证推理6.3.1 寻找关键字6.3.2 分析恶意的进程6.3.3 分析未知代码第三十八页,共44页。6.3.1 寻找关键字找到一个特定的关键字的文件的过程步骤一:搜索一个特定的关键字的出处,把整个文件系统作为一个文件来看待。在文件系统的映像上用grep检索关键字在代表该设备的特殊文件上执行搜索步骤二:定位该字符串再次出现在其中文件的位置。如果在用户主目录的文件中找到该字符串,那么可以从那里开始。用这种搜索方法,可鉴别所
27、有现存的包含纯文本字符串的文件。第三十九页,共44页。6.3.3 分析未知代码阅读文件检查日期检查名字寻找附件的源代码使用strings使用grep使用nm在受控环境下运行未知的代码第四十页,共44页。6.4 LINUX取证下的系统工具TCT用于UNIX系统被攻击后进行事后分析的程序集。主要包括以下几部分:grave-robber ils and mactime unrm and lazarus findkey它提供了强大的调查能力。它的特点是可以对运行着的主机的活动进行分析,并捕获目前的状态信息。数据基本上以挥发性顺序收集。TCT包括数据恢复和浏览工具、获取MAC时间的工具、还包括一些小工具
28、。第四十一页,共44页。TCT的设计并不是用于收集传统的法庭证据,而是用来确定在被攻破的主机发生了什最不寻常的特点在于它可以对运行着的主机进行分析,并捕获当前的状态信息。grave-robber工具可以收集大量的正在运行的进程、网络连接以及硬盘驱动器方面的信息。Macg工具可以对每个索引结点收集一个按照时间排序的修改/访问/改变时间列表,同时还有它们相关的文件名unrm可以试图从比特流重构成一系列连贯的数据,也可以从文件系统中创建一个比特流第四十二页,共44页。ForensiX主要运行于LINUX环境(支持更多的文件系统),是一个以收集数据及分析数据位主要目的的工具。任何它所支持的媒体都可以被快速的映像,进行MD5核查,并且记录到案例数据库中。这种非常有效的批处理操作,使映像大量的软盘驱动器变得很方便。提供在不同的文件系统里自动装配映像等功能、能够发现分散空间里的数据、可以分析UNIX系统是否含有木马程序。包含许多的插件,可以进行不同类型的搜索。几个不同寻常的功能:漏洞检查、建立文件系统的基线图、存储散列值和文件名、自动搜索互联网上的域名、建立和分析TCP dump、识别隐藏文件第四十三页,共44页。谢谢!第四十四页,共44页。