Tripwire 跳过文件吗?

Tripwire 跳过文件吗?

总结:

问题:如何配置 Tripwire 来监视特定路径下的所有内容?我当前的配置似乎只查看给定路径中的某些文件/目录,而不是所有内容。

背景/完整故事:

我最近在一台包含一些易受攻击的 PHP 代码的服务器上安装了 Tripwire。我添加了一条名为“网站”的规则,其中包含从该服务器运行的多个网站(以下代码片段)。

 # Rulset for websites
 (
   rulename = "Websites",
   severity = $(SIG_HI),
   emailto = "[email protected]"
 )
 {
   /home/foouser1/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser2/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser3/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser4/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser5/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser6/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser7/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser8/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser9/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser10/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser11/www/ -> $(SEC_CRIT) (recurse = 1);
   /home/foouser12/www/ -> $(SEC_CRIT) (recurse = 1);
 }

然后我使用以下方法更新了策略:

/usr/sbin/twadmin --create-polfile -S site.key /etc/tripwire/twpol.txt

我按预期输入了我的站点密钥,并且策略已更新且没有错误。

当我运行检查时,没有错误,也没有违规。

然后,为了测试它,我在其中一个文件(/home/foouser1/www/foo/bar/js/script.js)中添加了一个额外的空格,该文件之前(并且多次)被盗用。这应该会触发违规。

重新运行检查(tripwire --check -R Websites-v)显示几个问题:

  1. Tripwire 忽略了该文件,即使它位于声明的文件路径下方/home/foouser1/www
  2. 它会扫描 中的一组文件/home/foouser1/www,但不是全部。

最后,当我将目录内容/home/foouser1/www与 tripwire 扫描的文件数量进行比较时,发现有很大的差异。

find /home/foouser1/www/ -type f -print | wc -l显示该目录中有 3,000 多个文件需要受到 tripwire 的监视。

find /home/foouser1/www/ -type d -print | wc -l显示该目录中有 192 个子目录需要受到 tripwire 的监视。

Tripwire 报告称它仅观察了 192 个物体。

答案1

事实证明,(recurse=1) 是不需要的。默认情况下,文件和子目录的递归检查处于启用状态。但是,为了捕获微小的更改(例如单字节更改),您需要检查文件的哈希值(SHA 是首选)。因此,您可以使用以下变量作为掩码:

SEC_HACK_DETECT = $(IgnoreNone)-a ; # Files that should not change

在这两个更改之间,Tripwire 可以按预期运行。

相关内容