2

我正在使用 MAF 为用户/客户提供增强我们软件的可能性。加载项将以有限的权限运行,并且对于我们以及客户来说可能是不受信任的代码,以防他们从第 3 方开发人员那里购买了加载项。

在我们的例子中,Host 和 Host-Side Adapter 在主 AppDomain 中以完全权限运行,而 Add-In 和 Add-In Side Adapter 在几乎没有权限的情况下运行。

当我通过 AddInStore.FindAddIns 获得插件令牌时,我只能验证插件程序集本身是否来自应有的供应商。如果攻击者交换插件程序集,那么我们会发现它并且不会激活该程序集。但无论如何,由于几乎没有权限运行,攻击者无法真正损害应用程序和环境(主机、内部网等)。

但也有可能的是,攻击者替换了主机端适配器组件。攻击者只需在正确的文件夹中放置一个新程序集。由于它以完全权限运行,因此攻击者代码可能真的会损害应用程序和环境。由于攻击者在主机和加载项之间(或多或少是中间人),它也可以更改两者之间交换的数据。

当我调试我的代码并在调试器中检查加载项令牌时,我可以看到不同程序集的所有路径,加载项存储用于构建管道:

加载项令牌

不幸的是,关于所采取的组件的重要信息是私人的,我无法访问它们。

是否有解决方法来访问此信息?

4

1 回答 1

0

防止这种情况的一种方法是不要在每次启动应用程序时重新构建管道。如果管道 DLL 与 DLL 中的 DLL 和键不同PipelineSegments.Store,则不会加载 DLL。

于 2015-07-01T03:33:54.067 回答