IPE 是微软为解决 Linux 的代码完整性问题而进行的尝试。分为两个主要部分:由 LSM 提供的可配置策略(“IPE Core”),以及由内核提供的用于评估文件的确定性属性(“IPE Properties”)。目前,IPE 尚处于 RFC(request for comments)状态。
在启用了 IPE 的 Linux 系统上,系统管理员可以创建允许执行的二进制文件列表,然后添加内核在运行每个二进制文件之前需要检查的验证属性。如果攻击者更改了二进制文件,IPE 还可以阻止恶意代码的执行。
微软方面表示,IPE 设计用于具有特定目的的设备,例如嵌入式系统(e.g. 数据中心中的网络防火墙设备),其中所有软件和配置均由管理员构建和提供。理想情况下,利用 IPE 的系统不适用于通用计算,也不使用第三方构建的任何软件或配置。
IPE 支持两种操作模式:permissive 模式(类似于 SELinux 的 permissive 模式)和 enforce 模式。 其中,enforce 模式是默认模式。Permissive 模式执行与 enforce 模式相同的检查,并记录 policy violations 情况,但其不会强制执行策略,这使得用户可以在 enforce 策略之前对其进行测试。
此外,微软称,与 Linux 内核中已有的用于代码完整性的 LSM(例如 IMA)不同的是,IPE 不依赖于文件系统元数据,并且因为 IPE 属性是仅存在于内核中的确定性属性,所以它不需要像 IMA 一样需要 IMA 签名的其他代码。