Microsoft发布了Security Advisory (2269637) Insecure Library Loading Could Allow Remote Code Execution。
该说明指的是有助于在Dynamic-Link Library Security上检测此问题和编程指南的工具。
这些指南如何转换为.NET开发?我认为这只会影响平台调用。
这仍然是导入系统库的推荐方法吗?
DllImport("user32.dll")]
答案 0 :(得分:6)
像user32.dll这样的系统DLL是安全的,因为they're in the KnownDLLs list in the registry。如果您尝试加载名为"user32"
的DLL,Windows将被硬编码为从system32目录中获取正式副本。
答案 1 :(得分:4)
从该页面开始:
Microsoft已在MSDN文章Dynamic-Link Library Security中向开发人员发布了有关如何正确使用可用应用程序编程接口以防止此类漏洞的指南。
和
此问题仅影响未安全加载外部库的应用程序。 Microsoft以前在MSDN文章Dynamic-Link Library Security中发布了针对开发人员的指南,该文章建议使用其他方法来加载可以安全抵御这些攻击的库。
您链接到问题中的同一页面,因此只要您遵循该页面上列出的指导原则,您的应用程序就应该是安全的。关于安全过程搜索模式的注释和搜索目录的顺序似乎特别相关。
答案 2 :(得分:2)
安装您的应用程序并运行H.D. Moore's tool。 H.D.摩尔发现了这种攻击模式。
如果您的应用程序不负责自动执行文件扩展名,那么您不易受攻击。我敢打赌,如果您运行此工具,您的应用程序将不会显示在易受攻击的应用程序列表中。