事后取证:从Linux系统中搜索并提取恶意软件以及相关线索
1.从Linux系统中发现和提取恶意软件
- 前提:
- 熟悉Linux工作原理
- ext2和ext3文件系统
- 取证检查:
- 检查文件的hash值和已知恶意软件特征是 否匹配
- 检查加壳文件
- 检查用户账号
- 检查其他配置信息
- 检查日志记录
- 搜索已知恶意软件方法:
- 哈希比较技术:
- NSRL等hash数据库
- Rookit Hunter 和 chkrootkit
- 查找与已知的正常的系统配置不同的配置部分
- Linux系统上的 rpm -Va 命令,该命令可以对所有使用RedHat Package Manger 安装的程序包进行验证
- S,表示文件大小
- M,模式
- 5, 表示MD5值
- U ,表示用户
- G,表示用户组
- T,表示时间上被修改
- 当验证已安装程序的完整性时,目标系统的取证映像应该被挂载到检查系统上,并且应该使用一个已知的安全版本的rpm命令进行验证,Rookit Hunter提供了一个选项用来调用rpm命令和dpkg包管理器来验证文件哈希值
- 反病毒软件:ClamAV 和F-Port
- 审查已安装的程序和潜在的可疑可执行文件
- Debian 和Ubuntu系统:使用 dpkg –get-sections命令获得已安装的程序包
- RedHat 或其他Linux系统:使用 rpm -qa 命令
- 从恶意时间出现时间一致方面查找最近被安装的程序
- 从经常被用户访问的区域查找可执行文件
- 审查自启动区域,配置文件和计划任务
- Linux系统初始化脚本/etc/inittab 会调用其他脚本:如rs.sysinit 和大量位于/etc/rc.d/(较老版本系统位于/etc/rc.boot/目录下)目录下的脚本。
- /etc/ineted.conf 或者/etc/xineted/目录下的很多常见服务也会开启,需要逐一审查
- 配置文件:/var/spool/cron/crontabs 和 /var/spool/cron/atjobs 配置文件,可以指定预定任务的方式启动
- 检查日志
- 概念
- 主日志通常被称为messages或者syslog:记录系统事件和用户账号行为
- security日志:记录一些指定的安全事件
- 在恶意事件中,有效日志可能被删除,因此通常明智的做法是搜索未被分配的空间以找到被删除的日志项:可以用SleuthKit 工具恢复
- Unix系统中的一些登录事件日志项可能位于:utmp 和 wtmp文件中,使用who 和last 命令可以查询
- 一些Unix系统包含 process accounting(pacct)日志,这些日志可以通过lastcommon命令显示,记录系统上执行的每个命令,命令的时间和用户账户
- 关闭系统上的所有日志程序:rm -rf /etc/rc.d/init.d/*log*
- 概念
- 审查用户账户
- 检查不寻常账户的/etc/passwd,/etc/shadow 和/etc/sudoers文件(注意UID为0的账户)
- 检查不寻常用户组的/etc/groups文件
- 通过使用密码破解工具(John the Ripper)来识别具有弱口令或空口令的账户
- 检查文件系统
- 查找不正常或者隐藏的文件或目录,如:’..’
- /dev/是常见的用于隐藏恶意软件的目录,因为该目录下存放着大量的文件且这些文件文件的日期时间戳经常改变,因为/dev/目录下很多文件都是特殊文件,通过这些文件可以访问到块或字符设备(文件权限中包含b或c),所以调查人员通过寻找正常的(非特殊的文件或者目录)来找到恶意软件。
- 使用mactime 柱状图特征来找到系统活动峰值:mactime -b fieath -i hour index.hourly 04/01/2004-04/30/2004
- 关键字搜索
- strings - /dev/sda8 |grep “Dec 01”
- SleuthKit 工具
- 案列:
- 使用calmscan,chkrootkit 和rkhunter进行恶意软件搜索
- 审查已安装程序
- 审查自启动配置
- 审查可执行文件路径
- 审查日志
- 哈希比较技术: