限制脚本的执行 - 第三种方法

主要观点:

  • LWN.net 依赖订阅维持运营,呼吁订阅。
  • 内核执行文件有规范,某些系统安全策略会限制执行特定程序,而脚本可绕过,Mickaël Salaün 多年致力于弥补此漏洞。
  • 有两种执行包含恶意 Python 代码文件的方式,内核对其检查不同。
  • Salaün 先后尝试通过添加新标志给 openat()和 trusted_for()系统调用来解决问题,均未成功,最终采取给 execveat()添加 AT_CHECK 标志的方式。
  • 还添加了新的 securebits 标志来控制语言解释器对文件的执行,包括 SECBIT_SHOULD_EXEC_RESTRICT 和 SECBIT_SHOULD_EXEC_CHECK 等。
  • 关于这些标志的语义在讨论中引起了一些混淆,Salaün 提出了不同的操作模式,包括 SECBIT_EXEC_RESTRICT_FILE 和 SECBIT_EXEC_DENY_INTERACTIVE 等。
  • 讨论仍在进行中,虽看似最终可能让此功能进入内核,但之前 trusted_for()也曾看似达成共识却最终受阻。

关键信息:

  • LWN.net 运营依赖订阅:https://lwn.net/Promo/nst-nag...
  • 内核执行文件的规范及漏洞:需检查执行权限和咨询安全策略,脚本可绕过
  • Salaün 的尝试及最终方式:先给 openat()添加标志,后给 execveat()添加 AT_CHECK 标志
  • securebits 标志及其作用:控制解释器对文件的执行,有多种标志及不同设置的效果
  • 讨论中的混淆及提议:对标志语义的讨论及 Salaün 提出的不同操作模式
  • 之前类似情况及当前进展:trusted_for()曾看似达成共识却受阻,此功能有望进入 6.12 内核开发周期

重要细节:

阅读 12
0 条评论