我们是一家运营多个网站的网站设计/托管公司,有人能够将任意数据写入文件系统。我们怀疑他们仍安装了一些脚本,需要一种方法来审核过去 10 天内更改或添加的任何内容。是否有我们可以运行的命令或脚本来执行此操作?
答案1
重来:
就我个人而言,除非我重新安装并重建每个服务器,否则我晚上会睡不着觉。
我强烈建议你这样做,黑客可以隐藏一些东西,并使它们看起来好像已经发生了变化,即使他们已经改变了,如果他们足够好的话。
为什么 find 不起作用:
例如,更改修改时间:
kbrandt@kbrandt: ~/scrap/touch] ls -l foo
-rw-rw-r-- 1 kbrandt kbrandt 4 2010-04-05 12:22 foo
[kbrandt@kbrandt: ~/scrap/touch] touch -m -t 199812130530 foo
[kbrandt@kbrandt: ~/scrap/touch] ls -l foo
-rw-rw-r-- 1 kbrandt kbrandt 4 1998-12-13 05:30 foo
如果使用 find 路径,搜索 ctime 可能更好,但也可能有一种简单的方法来更改它。如果不容易,我想有人可以进入设备并直接编辑文件系统本身。
刚刚在网上发现了以下与 ctime 有关的内容,但还没有尝试过:
Since ctime is the last time the inode info was changed, you could
change the system date, make a new hardlink, remove it again and change
the date back.
而且这些东西只是使用用户空间系统中已有的工具,忘记如果有人精通内核编程的话可以做什么。
答案2
find
带有-mtime
和谓词的命令-mmin
可以做到这一点。
答案3
此时,Find 可能是您最好的选择,但我同意全新安装。但是,您如何知道您的数据库是否也受到了损害?
大多数应用程序(如 Joomla)都可以从锁定文件权限中受益。我怀疑您的 Web 服务器是否需要对树中的所有文件/目录具有写权限。除了需要的地方外,您应该将它们设置为只读。
接下来,我建议你运行某种形式的 IDS,例如 tripwire(http://sourceforge.net/projects/tripwire/)或助手(http://www.cs.tut.fi/~rammer/aide.html)。
答案4
您可能对 Dnotify 也感兴趣:http://en.wikipedia.org/wiki/Dnotify