![我可以在使用 Stackable Filesystems 执行系统调用之前停止它吗?](https://linux22.com/image/149259/%E6%88%91%E5%8F%AF%E4%BB%A5%E5%9C%A8%E4%BD%BF%E7%94%A8%20Stackable%20Filesystems%20%E6%89%A7%E8%A1%8C%E7%B3%BB%E7%BB%9F%E8%B0%83%E7%94%A8%E4%B9%8B%E5%89%8D%E5%81%9C%E6%AD%A2%E5%AE%83%E5%90%97%EF%BC%9F%20.png)
假设我有一个应用程序 X。我只跟踪 X 发出的系统调用。例如在像“CS-STILo”。系统通过检测系统调用的异常序列来检测代码重用攻击。
如果我想在检测到攻击时阻止攻击,我该怎么办?我可以在使用 Stackable Filesystems(例如 Wrapfs)执行系统调用之前停止系统调用吗?如果没有,还有其他办法吗?
答案1
有SELinux和应用装甲(称为MAC——强制访问控制)。
AFAIK RedHat、CentOS 使用 SELinux。
SuSe、Debian、Ubuntu 默认使用 AppArmour。
简而言之,启用 SELinux 或 AppArmor 后,您需要授予允许哪个应用程序/守护进程访问哪些资源(端口、套接字、文件系统)的权限。
例如,您需要允许 tomcat 守护进程访问端口 3306 上的 MySQL 数据库或 Apache Web 服务器来访问文件系统/var/www
。
每当系统调用被阻止时,即。 SELinux 会阻止 Tomcat 访问 MySQL,它会被记录到/var/log/audit.log
或类似,具体取决于您的 Linux 风格。