LKRG,一个旨在检测和阻止Linux内核中的攻击和违规的模块

萨尔瓦多PROYECTO Openwall已发布LKRG 0.8内核模块版本 (Linux内核运行时防护), 旨在检测和阻止攻击 y 侵犯核心结构的完整性.

模块 它既适合于组织针对已知漏洞的保护 对于Linux内核(例如,在更新系统上的内核有问题的情况下), 至于针对未知漏洞的对立攻击。

LKRG 0.8有什么新功能?

在这个新版本中 LKRG项目的位置已更改,要小时不分为单独的子系统 验证完整性并确定漏洞利用的使用, 但它作为完整的产品展示 识别攻击和各种违反完整性的行为;

关于此新版本的兼容性, 我们发现它与5.3至5.7的Linux内核兼容以及通过积极的GCC优化进行编译的内核,没有任何选择 CONFIG_USB和CONFIG_STACKTRACE 或选择 CONFIG_UNWINDER_ORC以及在没有内核的情况下,如果没有的话,LKRG不会拦截任何函数。

除了 对32位ARM平台的实验性支持 (已在Raspberry Pi 3 Model B上进行了测试),同时还提供了对AArch64(ARM64)的早期支持。 与Raspberry Pi 4的兼容性补充了这一点。

此外, 新的挂钩已添加,其中包括“ hook()”调用处理程序,以更好地识别由“功能”操纵的漏洞,而不是进程标识符。

在x86-64系统上,检查并应用了SMAP位 (防止在超级用户模式下访问),d旨在阻止访问用户空间中的数据 来自在内核级别执行的特权代码。 SMEP(超级用户模式执行保护)保护是较早实施的。

它一直 增加了流程跟踪数据库的可伸缩性:涉及到由512个RB树组成的哈希表,而不是由自旋锁保护的单个RB树,分别由512个读和写锁保护;

默认模式已实现并启用在其中 标识符完整性检查 通常仅对当前任务执行处理,还可以选择对触发的任务(唤醒)执行处理。 对于处于暂挂状态或没有LKRG控制的内核API调用的功能的其他任务,验证的执行频率较低。

除了 systemd单位文件已重新设计 在加载的早期阶段加载LKRG模块(可以使用kernel命令行选项禁用该模块);

在编译期间,检查了一些强制性的CONFIG_ *内核设置,以生成有意义的错误消息,而不是模糊的错误。

在此新版本中突出的其他更改包括:

  • 添加了对待机(ACPI S3,挂起到RAM)和挂起(S4,挂起到磁盘)模式的支持。
  • 在Makefile中添加了对DKMS的支持。
  • 提出了新的逻辑来确定尝试摆脱名称空间限制的尝试(例如,从Docker容器中)。
  • 在此过程中,LKRG配置将放置在通常为只读的内存页面上。
  • 可能对攻击最有用的信息(例如,内核中的地址信息)到日志的输出受调试模式(log_level = 4和更高版本)的限制,该模式默认情况下处于禁用状态。
  • 已添加新的sysctl和模块参数来调整LKRG,并添加了两个sysctl以便通过从开发人员准备的配置文件中进行选择来简化配置。
  • 更改默认设置是为了在违规检测速度和反应有效性之间以及另一方面对生产率的影响和误报的风险之间实现更加平衡的平衡。
  • 根据新版本中提出的优化,在应用LKRG 0.8时,性能下降在默认模式(“重载”)下估计为2.5%,在轻模式(“轻度”)下为2%。

如果您想了解更多信息,可以咨询 详细信息在这里。 


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。