获取 apt-get 升级或安装后修改的文件列表?

获取 apt-get 升级或安装后修改的文件列表?

我想运行 AIDE 或 tripwire 以确保可执行文件/配置文件/...不会被恶意软件修改。或者至少在它们被修改时通知我。

我想获得期间修改的文件列表apt get upgrade,并apt-get install告诉我如何更新 AIDE/tripwire 数据库。

这包括在预处理/后处理期间修改的文件。

答案1

AIDE和Tripwire之类的工具不是很有用因为只检测不太聪明的攻击。如果攻击者可以获得root权限,他们就不必费心去修改系统二进制文件,或者他们可以通过感染内核来伪造监控系统的数据。 Tripwire 可能很有用,因为它会在攻击者有时间擦除其痕迹之前立即报告更改。这要求日志立即发送到仍然值得信赖的外部机器。

话虽这么说,如果您想知道在运行过程中修改了哪些权限apt-get,您可以跟踪它所做的系统调用。运行后中断跟踪,因为它可能正在跟踪升级期间(重新)启动的守护进程。

strace -o apt.strace -e openat,write sh -c '
  apt-get "$@"
  kill $PPID
' apt-get-wrapper upgrade

使用起来会更便宜审计,但问题是如何过滤由于 APT 运行而引起的更改。我认为您可以通过apt-get使用不同的审计 UID运行来做到这一点,这对于 C 包装器来说应该很容易;剩下的问题是不要在该审核 uid 中运行重新启动的守护进程,对此我没有解决方案。

答案2

一个简单的方法是使用find.下面的示例假设您只对 / 和 /var 中更改的文件感兴趣

touch /tmp/foo
apt get upgrade
find / /var -xdev -newer /tmp/foo -ls

相关内容