【问题标题】:Impact of Microsoft Security Advisory (2269637) on .NET codingMicrosoft 安全公告 (2269637) 对 .NET 编码的影响
【发布时间】:2011-04-03 14:11:45
【问题描述】:

微软发布了Security Advisory (2269637) Insecure Library Loading Could Allow Remote Code Execution。

该注释提到了一个有助于检测此问题的工具以及Dynamic-Link Library Security 上的编程指南。

这些指南如何转化为 .NET 开发?我认为这只会影响平台调用。

这仍然是导入系统库的推荐方式吗?

DllImport("user32.dll")]

【问题讨论】:

    标签: .net security dll pinvoke loadlibrary


    【解决方案1】:

    像 user32.dll 这样的系统 DLL 是安全的,因为 they're in the KnownDLLs list in the registry。如果您尝试加载名为 "user32" 的 DLL,Windows 会通过硬编码从 system32 目录获取官方副本。

    【讨论】:

    • 对...但是应用程序是特定文件扩展名的指定处理程序吗?就像你在写一个电影播放器​​?因为如果你不是,那么你就无法控制当前的工作目录并且没有攻击。你真的应该在发布之前阅读攻击,我 90% 确定他的应用没有受到影响,并且有 1 且只有 1 种方法可以确定。
    【解决方案2】:

    从那个页面:

    Microsoft 已在 MSDN 文章 Dynamic-Link Library Security 中向开发人员发布了有关如何正确使用可用的应用程序编程接口来防止此类漏洞的指南。

    和

    此问题仅影响无法安全加载外部库的应用程序。 Microsoft 之前在 MSDN 文章 Dynamic-Link Library Security 中为开发人员发布了指南,其中推荐了加载可安全抵御这些攻击的库的替代方法。

    您链接到问题中的同一页面,因此只要您遵循该页面上概述的指南,您的应用程序就应该是安全的。关于安全进程搜索模式和搜索目录顺序的注释似乎特别相关。

    【讨论】:

    • 但是如何将这些应用到他的 User32.dll 示例中?安全搜索模式不是每个进程,而是每个会话,而不是你真正可以玩的。 DLL 在您获得控制权之前由系统加载,因此您也无法控制搜索路径。作为清单?您真的想将所有系统 DLL 添加到清单中吗?在清单中指定系统目录的正确可移植方式是什么?
    • @Rup - 请参阅@Tim Robinson 的回答。我想我不能再添加更多了。
    【解决方案3】:

    安装您的应用程序并运行H.D. Moore's tool。高清。 Moore 发现了这种攻击模式。

    如果您的应用程序不负责自动执行文件扩展名,那么您不容易受到攻击。我敢打赌,如果你运行这个工具,你的应用程序不会出现在易受攻击的应用程序列表中。

    【讨论】:

    • 感谢这个有用的建议!
    猜你喜欢
    • 1970-01-01
    • 2011-08-06
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多