0

我想防止任何人删除我注册的过滤器,但我的帐户除外。我想知道如果我在 FwpmFilterAdd 函数中设置安全描述符是可能的。您能否向我展示示例的源代码,该示例为我的目的添加了使用安全描述符的过滤器?

我在 WFP msdn 中阅读了“阻碍过滤器删除”和“强制过滤器删除”。有什么方法可以防止任何人强制删除过滤器吗?先感谢您。

4

1 回答 1

0

首先,就上下文而言,这些是您所指的示例代码的链接:

那里的示例简单地说明了如何使用FwpmFilterSetSecurityInfoByKey0FwpmFilterGetSecurityInfoByKey0 API。然而,为这些样本选择的特定场景的实际目的是非常可疑的。为什么有人要在 WFP 过滤器上设置显式 ACL 以禁用对世界的 DELETE 访问,同时禁用 WRITE_DAC 和 WRITE_OWNER?出于所有实际目的,本地管理员总是可以取回对象的所有权,然后覆盖安全描述符(这是“强制过滤器删除”示例所做的)。非管理员无法获取其他帐户对象的所有权,并且即使使用默认安全描述符也无法删除 WPF 过滤器,这将通过将 NULL 作为第三个参数传递给 FwpmFilterAdd 来提供给过滤器。

要回答您的问题,不,您不需要进一步保护它。使用“阻碍过滤器删除”技术将不会获得更多安全性。该技术所做的最好的事情是添加一小层混淆。您为 WFP 过滤器获得的默认 DACL 是 BFE 引擎 DACL,在此处进行了描述。使用默认 DACL,只有本地管理员具有 DELETE 访问权限。根据定义,本地管理员可以对系统进行任何操作,因此管理员没有任何安全意义。

于 2014-11-11T03:07:10.927 回答