我注意到我的家庭服务器上许多我没有触碰过的目录的修改时间都发生了变化,尽管这些目录中包含的文件都没有报告时间变化。
我运行了 IDS(fcheck),它没有报告目录修改日期的任何信息。这并不奇怪,因为有问题的目录位于我的主目录中(我的 IDS 不会扫描该目录)。我已通过 auth.log 进行 grep 检查,没有发现有问题日期有任何未经授权的访问,并且检查了 /etc 中的大多数配置似乎相同。我下一步该如何确定我的机器是否确实受到了攻击?
答案1
首先要检查日志。这样你就能知道是否有人通过任何打开的门进入了你的系统(例如,sshd,您是否看到与您登录时间不符的登录时间?)
检查 /etc 是一个好主意,但是它只能告诉您是否有人试图修改您的配置,而不能告诉您是否有人实际上只是为了好玩而侵入您的系统。
另外,您是否已为您的平台应用了所有当前的安全补丁?如果没有,请立即应用。
如果您确定您的系统曾是被入侵后,你必须弄清楚他们使用了什么媒介。你说这是一台家庭服务器:这是否意味着有人破解了你的 wifi 密码,并从 LAN(通常是受信任的网络)发起攻击,或者有人从 WAN 端绕过了你的路由器?
PS 我忘记提到一个可能性,即某个脚本(你故意运行的)可能出于某些完全正当的理由触碰了 ~/ 中的文件。在过于担心被黑客入侵之前,这也是需要考虑的问题。
答案2
昨晚我参加了一场关于基础计算机取证的精彩演讲。以下是他的幻灯片链接。http://greenfly.org/talks/security/forensics.html最后,他演示了 Superslueth,这需要您拔掉系统电源插头,启动不会自动挂载硬盘的救援 CD,然后挂载只读,制作您感兴趣的硬盘或分区的映像,然后将其加载到另一台机器上的 SUperslueth 中。这是一项相当繁重的工作,但在运行和挂载读/写时使用机器会破坏大量数据。
关于拔掉插头,他建议,因为停止机器可能会导致停机过程中进行大量的清理工作,这将使查看文件或 MAC 时间的实际变化变得更加困难。
答案3
修改时间不是一个可靠的信息来源,因为它可能会经常更改(特别是在主目录中)。手册上是这么说的:
st_mtim Time when file data was last modified. Changed by the
truncate(2), utimes(2), and write(2) system calls. For di-
rectories, changed by any system call that alters which files
are in the directory, such as the unlink(2), rename(2),
mkdir(2), and symlink(2) system calls.
st_ctime Time when file status was last changed (inode data modifica-
tion). Changed by the chmod(2), chown(2), link(2),
rename(2), unlink(2), utimes(2), and write(2) system calls.
因此,如果您运行了备份,错误地执行了 chmod * 或类似操作,则更改/修改时间可能已经改变。
现在,关于入侵的话题,事后检查只有在你事先采取了安全措施的情况下才会起作用。如果你没有安全地将日志存储在中央存储库中,那么在目标机器上查找它们是没有意义的(任何攻击者都会删除/修改它们)。我的建议是:
- 查找开放端口(netstat)
- 查找正在运行的进程(lsof、ps aux)
- 启用防火墙,安装 IDS(OSSEC 是个不错的选择)并密切关注
- 也许运行一个 rootkit 检测器(rootcheck 很好:http://www.ossec.net/en/rootcheck.html)
答案4
不要信任任何在可疑主机上运行的工具。如果您登录并开始窥探文件,您可能会污染证据并让入侵者猜到您发现了他/她。尝试通过外部运行流量捕获来密切监视主机的网络流量。查找任何可疑或不寻常的连接。如果您没有发现任何东西,请在短暂的停机时间内对硬盘驱动器进行完整快照。不要进行正常的关机过程,而是对其进行硬重置。在分析磁盘映像时,您可以保持系统运行并继续监视其网络流量。