8

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

程序集引用System并且System.Core被沙盒化

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

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

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

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

更新:对于那些熟悉托管插件框架的人,同样的问题也适用于AddInSecurityLevel.Internet.

4

1 回答 1

4

加载项轰炸主机通常并不难。它所要做的就是启动一个线程并让它抛出一个未处理的异常。杰西·卡普兰(Jesse Kaplan )在博客中介绍了针对此类故障的可能对策。Shawn Farkas 在这篇博文中介绍了沙盒。

于 2010-03-07T14:11:16.953 回答