Linux取证程序
Linux系统取证程序和普通Windows系统取证程序并无差异,主要还是使用现场勘验和电子证据检验鉴定两种方式。现场勘验的目的主要是为了提取和保存易丢失数据,诸如网络连接信息、系统进程信息等。电子证据检验鉴定是在确保电子证据合法有效、不被恶意篡改的情况下,使用相关取证设备进行分析1。
现场勘验(易丢失数据取证)现场取证对服务器及网络环境做出勘验,对易丢失证据优先取证是现场取证的最主要的工作,现场取证可以加快取证工作进度,特别针对非法入侵这类案件,必须在这项工作完成后才能断开网络或关闭服务器。易丢失数据有系统用户登录记录、进程记录、网络连接记录、临时文件备份等工作,具体取证方法在后面会详细介绍。
电子证据检验鉴定电子证据检验鉴定(通过只读锁等方式接入分析)可以将证据硬盘通过只读锁进行连接,使用linux系统挂载Linux分区或者使用ftkimg等软件将Linux分区挂载在Windows系统下,然后再进行分析取证。
Linux系统通用取证方法Linux系统被非法入侵在非法入侵案件中,犯罪嫌疑人会替换系统内的一些指令执行程序,如ls、ps、su等,因此现勘验时必须采用独立、干净、可靠来源的指令,以保证指令执行结果的正确性。非法入侵后易留下的痕迹:修改系统进程,添加非法用户、启动非法服务、修改配置文件、安装后门等。
检查系统进程
犯罪嫌疑人在入侵Linux系统后必然要在系统中留有后门,或者植入非法程序,通过查看进程的方式可以发现非法进程的线索。查看系统中是否有可疑进程,可以通过如下2个指令进行:
ps aux
pstree
取证时,可以采用重定向功能将显示内容写入到文件中,便于分析及保存当前系统状态(注意:文件需不能保存在证据硬盘上)。
ps aux > ps aux 20100126.txt
pstree > pstree20100126.txt
检查非法用户
犯罪嫌疑人进入系统后,可能会为了日后再次登录方便,为自己开设账户,因此有必要对可疑、非法账户进行检查。与用户相关的主要是/etc目录passwd、shadow、group这三个文件。
passwd保存的是用户属性信息,格式为“用户名:密码:用户ID:组ID:用户信息:用户目录:用户shell权限”,检查是否有新增用户及用户属性,检查用户的目录属性和组属性是否被改变。
shadow保存的用户密码信息,格式为“用户名:密码:口令最后修改时间距1970年1月1日的天数:其它属性”,检查用户的密码是否为空,以及口令修改时间的天数。
group保存的是用户组信息,格式为“组名:密码:组ID:组成员列表”,检查组ID是否被改变,组成员列表是否增加。
检查用户登录
Linux是多任务、多用户操作系统,该系统对用户登录有详细的记录,为了及时发现嫌疑人是在在线,案发前那些用户登录过操作系统,有必要对用户登录进行检查。检查用户在系统上的当前登录及过去登录的情况,通过以下2个指令:
w指令:检查当前系统中有哪些用户正在登录到系统中
last指令:检查当前系统的登录信息。
检查操作日志
根据用户登录情况的检查结果,可以对用户的操作日志文件“用户目录/.bash_history”进行检查,查看犯罪嫌疑人做了哪些操作,及时取证。
检查网络连接状态
犯罪嫌疑人入侵系统虽然有不同的动机和目的,但最重结果都是为了非法获得数据。而数据必然要通过相关途径进行回传,因此有必要检查网络连接状态,也需要因此来判定是否能够断网取证。查看系统中网络连接状态以及网络服务对应的进程,通过以下2个指令:
netstat-lnp
netstat na
做取证工作时,可以采用重定向功能将显示内容写入到文件中,便于分析及保存当前系统状态(注意:文件需不能保存在证据硬盘上)。
netstat lnp > netstat-lnp 20100126.txt
netstat na > netstat-na 20100126.txt
检查系统配置文件
检查系统配置文件的目的是,犯罪嫌疑人设定系统自动启动非法服务或后门程序,保证犯罪嫌疑人可以再次登录系统。根据前几项检查工作的结果,对系统配置文件或目录 /etc/inet.conf、 /etc/inittab、/etc/rc.d/rc3.d/、 /etc/rc.d/init.d/、/etc/rc.d/rc.local进行检查,检查文件是否被修改或有新增文件,上述文件或目录均为系统启动过程中所要调用的内容。
检查系统日志
根据前几项的检查结果,有针对性的对日志文件进行检查,发现日志异常情况。特别是在没有现场勘验条件,只能通过电子证据检验鉴定时,就需要对以下日志文件进行分析,分析用户登录等数据。
/var/log/lastlog记录每个使用者最近登录系统的时间,因此当使用者登录时,就会显示其上次登录的时间。此档可用/usr/bin/lastlog指令读取。
/var/run/utmp:保存当前登录每个使用者的信息,who,users,finger等指令会查这个档案。
/var/log/wtmp:记录每个使用者登录及退出的时间,last这个指令会查这个档案。这个档案也记录shutdown及reboot的动作。检查在这个文件中记录的可疑连接,可以帮助你确定牵扯到这起入侵事件的主机,找出系统中的哪些帐户可能被侵入了。
/var/log/secure:记录IP地址的访问及访问失败。通过检查这个日志文件,可以发现一些异常服务请求,或者从陌生的主机发起的连接。
/var/log/maillog:记录电子邮件的收发记录,通过检查这个日志文件,可以发现服务器上的邮件往来信息。
/var/log/cron:记录系统定时运行程序的指令,通过检查这个文件,可以发现服务器上有哪些定时运行的指令。
/var/log/xferlog:记录那些地址使用ftp上传或下载文件这些信息可以帮助你确定入侵者向你的系统上载了哪些工具,以及从系统下载了哪些东西。
/var/log/messages:记录系统大部份的信息,包括login,checkpassWord,failedlogin,ftp,su等,可以从这个文件中发现异常信息,检查入侵过程中发生了哪些事情。
检查临时文件
有些犯罪嫌疑人会将文件写入/temp目录,/temp目录为系统临时缓存目录,所有用户均对该目录有写权限,当服务器关闭或重新启动后该目录会被清空,因此在取证的时候要通用“ls-alF”指令对/temp目录进行检查,对非法文件进行备份。指令ls的-a参数是列出全部文件,防止以“.”开头的文件名缺省不显示的情况。
Linux系统服务器提供非法服务检查系统开放的服务
通过检查网络连接状态可以看到系统开放的服务及对应的端口号。例如:开放了80端口,证明有可能提供了Web服务,开放了3306端口,可能提供Mysql服务。
检查web日志和数据
当确认Linux系统是提供Web服务应用后,紧跟着重要的任务就是分析Web服务等详细组成部分,分析网站的结构,找到能够证实犯罪嫌疑人违法犯罪的关键数据。检查Apache配置文件,确定非法网站域名与文件目录的对应关系:
/etc/httpd/conf
此目录为系统自带Apache安装包的配置文件目录,可以检查httpd.conf配置文件内容。
/usr/local/apache/conf
此目录为手动编译安装Apache源程序的配置文件目录,可以检查httpd.conf和子目录extra中的配置文件内容。检查Apache日志文件,查看浏览非法网站的访问记录:
/var/log/httpd/access.log记录httpd服务的访问信息及IP地址。
/var/log/httpd/error.log记录httpd服务出错的访问信息及IP地址。
Redhat缺省安装的httpd服务的日志在/var/log/httpd目录,手工安装的一般在/usr/local/apache2或/usr/local/apache目录检查Tomcat配置及日志文件:
/usr/local/tomcat/conf/server.xml,Tomcat的配置文件,设定域名与文件目录的对应关系。
/usr/local/tomcat/logs/catalina.out,Tomcat的日志文件,记录访问域名的信息。
检查数据库日志和数据(仅以Mysql为例)
检查Mysql配置文件:
/etc/my.cnf,Mysql的配置文件,确定Mysql数据库的存储位置与数据库日志信息。
检查Mysql日志文件:
/var/log/mysql.log,Mysql的日志文件,记录Mysql运行的相关系统。
/usr/local/mysql/var,Mysql的数据库文件存储目录,存放数据库文件。
Linux被作为跳板,提供路由转发
此类案件犯罪嫌疑人一般拥有较高计算机知识,作案时设置多个跳板,妄图干扰侦查视线,逃避打击。遇到此类案件进行侦查时,首先检查网络连接和系统服务,然后再检查应用程序。
检查Iptables
检查Iptables配置情况,查看是否有网络服务被重定向其它服务器:检查系统中的配置情况,检查是否有部分服务被重定向到其它的服务器上面,以下2个指令根据系统版本的不同,指令也不相同。
iptables--list ipchains--list做取证工作时,可以采用重定向功能将显示内容写入到文件中,便于分析及保存当前系统状态。
iptables--list > iptables-list 20100126.txt
ipchains--list > ipchains-list20100126.txt
检查Iptables日志文件,记录Iptables命令的相关信息:Iptables的日志是放在/var/log/messages里面的,可以搜索ip_tables这个词来查找相关信息。
检查Squid
SquidCache是基于Linux的一款代理服务器和Web缓存服务器软件。在江苏省镇江市查办的一起赌博案件中,犯罪嫌疑人通过建立Linux服务器,安装Squid,唆使参赌人员使用代理服务器进行登录,妄图逃避打击。检查Squid的配置文件:/etc/squid/squid.conf,配置Squid的代理或缓存IP。/usr/local/squid/etc/squid.conf,配置Squid的代理或缓存IP。检查Squid的日志文件:/var/log/squid/access.log,记录Squid的访问记录。