视频字幕
Linux基于文件扩展属性的执行控制系统是一个创新的安全机制。它通过在文件上设置扩展属性来控制程序的执行权限。系统使用security.execctrl属性,其中verified表示授权文件可以执行,none表示未授权文件被禁止执行。这种设计确保只有经过验证的文件才能在系统中运行,大大提高了系统安全性。
LSM模块框架是Linux安全子系统的核心。execctrl模块通过注册多个安全钩子来实现执行控制。bprm_check_security钩子负责在程序执行前检查文件标记,file_mprotect控制动态库的内存保护,inode_init_security为新创建的文件设置标记。这些钩子协同工作,在关键的系统调用点进行安全检查,确保未授权文件无法执行。
执行控制的核心逻辑是检查文件的security.execctrl属性。当文件标记为verified时,系统允许执行并将进程标记为可信。可信进程具有特殊权限,可以执行未授权文件。对于其他情况,系统会拒绝执行。同时,系统持续监控文件状态,新创建的文件、重命名的文件以及被修改的文件都会自动标记为none,确保安全策略的一致性。
脚本执行控制是系统的重要组成部分。系统不仅检查脚本解释器的标记,还要验证脚本文件本身的授权状态,防止通过解释器绕过安全控制。同时提供了execctrlctl用户空间工具,管理员可以使用它来设置文件的授权标记、查询文件状态、初始化系统以及查看可信进程列表,为系统管理提供了便利的接口。