假设我有一个应用程序 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 风格。