我有一个使用 System.AddIn 建立的插件向量,它接受预定义方法的主体,将方法主体合并到样板代码中,生成程序集并执行该方法。

装配参考 SystemSystem.Core 并且是沙箱化的

var pset = new PermissionSet(PermissionState.None);
pset.AddPermission(new SecurityPermission(SecurityPermissionFlag.Execution));

我能找到的唯一可能导致主机瘫痪的例外是堆栈溢出,它可以被调用任意数量的创造性方法,例如关闭主体并声明递归方法等......

然后是引用的程序集暴露的可能的攻击向量, SystemSystem.Core.

我的问题是:这有多安全?有哪些可能导致主机瘫痪的恶意代码示例以及防止此类攻击的可能方法?

更新:对于那些熟悉托管插件框架的人来说,也可以将同样的问题应用于 AddInSecurityLevel.Internet.

有帮助吗?

解决方案

加载项轰炸主机通常并不困难。它所要做的就是启动一个线程并使其抛出一个未处理的异常。杰西·卡普兰 已发表博客 关于针对此类故障的可能对策。Shawn Farkas 在 这篇博文.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top