【通用软件封装器在Linux中强制访问控制的实现】
在Linux操作系统中,传统的自主访问控制(Discretionary Access Control, DAC)允许用户对自己的资源有高度的控制权,但这种模式存在安全隐患,因为拥有权限的用户可能滥用或无意中泄露信息。为解决这一问题,强制访问控制(Mandatory Access Control, MAC)机制被引入,如SELinux,以提供更严格的资源保护。然而,文章提出的通用软件封装器(Generic Software Wrapper, GSW)则提供了一种新的实现MAC的方法。
GSW作为一个可加载的内核模块,在系统内核模式下运行,可以避免模式切换开销,并能防止恶意代码攻击。它的工作原理是通过对指定程序进行封装,监控这些程序与操作系统之间的系统调用交互,并根据封装器的指示执行相应的响应。这种方式使得GSW能够作为实现多种安全策略,包括访问控制在内的框架。
GSW主要由三个子系统构成:封装器支持子系统(Wrapper Support Subsystem, WSS)、封装器激活原则子系统(Wrapper Activation Control Subsystem, WACS)以及封装器(Wrapper Subsystem, WS)子系统。WSS负责基础支持,WACS处理封装策略的激活,WS则执行实际的封装操作。
在实现MAC时,GSW将进程作为访问主体,系统中的任何资源都可视为访问对象。管理员可以根据资源(如文件)和进程的安全需求制定安全规则。这些规则定义了哪些用户在运行特定程序时可以使用哪些封装器,以及应如何控制这些程序的系统调用。规则格式通常为:A—用户ID,程序名,B—要监控的系统调用名,参数列表,关键词(allow,deny,log)。A部分指定用户和程序,B部分定义系统调用的控制策略。
GSW的实现与SELinux相比,提供了另一种灵活性,因为它允许更灵活的规则定义和更广泛的适用范围。例如,它可以针对不同用户和程序组合指定不同的控制策略,而不仅仅是基于固定的安全策略模板。此外,GSW可能更适合那些需要自定义访问控制策略的环境,而不只是依赖预定义的策略模型。
通过实验,GSW的强制访问控制机制达到了预期的效果,有效地实现了对主机资源的保护。实验结果的分析进一步证明了这种方法的有效性和可行性。GSW为Linux提供了一种新的、可扩展的强制访问控制解决方案,以增强系统的安全性,同时保持了足够的灵活性以适应各种安全场景和需求。