有什么方法可以记录用户(另一个超级用户)执行的活动?

有什么方法可以记录用户(另一个超级用户)执行的活动?

我正在探索各种可能性触碰命令,同时我在脑海中构想了以下情况。

  1. 假设一台机器/服务器有两个管理员或超级用户(用户 A 和用户 B)。

  2. 用户 B 正在执行恶意活动,在这种情况下,我们假设用户 B 正在使用touch命令修改文件签名。


问题

  1. 用户 A 如何识别这些修改?

  2. 如果只有一名管理员,而他的系统受到攻击,那么管理员如何才能检测到恶意活动?

检测此类入侵的一种可能方法是检查系统日志,但如果入侵者/攻击者以某种方式修改了系统日志怎么办。

答案1

您可以尝试使用审计用于记录对文件的访问(以及更多),但如果攻击者以超级用户身份访问您的机器,则可能会清除所有日志和跟踪而无法检测到。

一种可能的缓解措施是启用远程日志记录(通过网络)或使用其他允许仅附加数据而不能覆盖内容的硬件。

如果您怀疑存在入侵行为并想对其进行调查,那么您就进入了取证领域。根据攻击者的粗心程度,这可能会成功或失败。例如,忘记删除.bash_history或日志文件以及删除文件而不将其粉碎。

您提到了“文件签名”,但“touch”仅修改文件的元数据。这些元数据以文件系统特定的格式存储在底层磁盘设备上。通常,非特权程序无法直接修改底层磁盘设备。相反,它们使用系统调用并请求修改文件系统(然后将更改传播到底层磁盘)。要查看程序使用的系统调用,您可以使用斯特拉斯程序。例如,strace touch x给我:

...
open("x", O_WRONLY|O_CREAT|O_NOCTTY|O_NONBLOCK, 0666) = 3
dup2(3, 0)                              = 0
close(3)                                = 0
utimensat(0, NULL, NULL, 0)             = 0
...

这里你可以看到open系统调用被传递了一个路径并返回一个文件描述符。稍后,这个文件描述符用于调用utimensat系统调用会更改文件时间戳。所有这些操作都可以由前面描述的审计守护进程记录,当然,由于文件系统的更改,结果也可以观察到。如果你深入挖掘,你可能会找到这种活动的证据,但那时你真的依赖于取证的创造力。

答案2

你可以使用助手,一种基于主机的入侵检测系统 (HIDS),用于检查带有签名的文件的完整性。据说它能够存储每个文件的 mtime、ctime 和 atime。所以您的示例已涵盖。

当然,您可能希望将 AIDE 的结果存储在异地,以便结果不会被任何因素篡改。

我确信还有其他 HIDS 提供类似的基于签名的功能:http://www.la-samhna.de/library/scanners.html

答案3

如果有人设法获得 root 访问权限,他们就可以做任何他们想做的事情,包括删除他们活动的所有痕迹。

抱歉,但您唯一能做而且必须做的事情就是保护您的 root/sudo 密码。

相关内容