是否可以阻止.net CLR运行任何未签名的代码?

是否可以阻止.net CLR运行任何未签名的代码?,.net,security,clr,continuous-deployment,automated-deployment,.net,Security,Clr,Continuous Deployment,Automated Deployment,背景(简化) 我在生产服务器上使用持续集成和部署。例如,我有一个监控TeamCity并自动将构建包部署到IIS的应用程序 对于这个代码(我们所写的),我想防止(或者更难)中间的一个人修改程序集到生产服务器。如果有人成功地更改了程序集(无论是在传输过程中还是在机器上本地),我希望防止(或使其更难)执行这些程序集 我们已经采用了一系列的安全措施来防范这种情况(例如,监控关键文件散列以确保它们没有更改的代理、审核、最小化用户权限等等) 我们想增加推送节奏,但我们用来监控文件哈希的第三方软件,比如说,“

背景(简化)

我在生产服务器上使用持续集成和部署。例如,我有一个监控TeamCity并自动将构建包部署到IIS的应用程序

对于这个代码(我们所写的),我想防止(或者更难)中间的一个人修改程序集到生产服务器。如果有人成功地更改了程序集(无论是在传输过程中还是在机器上本地),我希望防止(或使其更难)执行这些程序集

我们已经采用了一系列的安全措施来防范这种情况(例如,监控关键文件散列以确保它们没有更改的代理、审核、最小化用户权限等等)

我们想增加推送节奏,但我们用来监控文件哈希的第三方软件,比如说,“更新起来很麻烦”

问题

假设我信任操作系统(包括.net CLR)。我想知道是否可以将代码签名安全性内置到CLR中。与PowerShell不允许您运行未签名的PowerShell脚本的方式类似

是否可以这样做,即将CLR配置为仅运行白名单公钥集中的签名程序集


如果这是个坏主意,请告诉我

你的威胁模型是什么?在假设的情况下,攻击者可以做什么?您不能通过安全通道传输部署工件吗?我的意思是你必须已经准备好了。是的,我已经通过安全通道传输了部署人工制品。我们已经检查了证书是否可信。我总是想办法提高安全性。考虑到我们已经做过的事情,这个向量不太可能容易被利用。但是如果实现签名包的成本很低,我会非常有兴趣这样做。