检测常见 ASP.NET 配置安全漏洞

看到一篇国外 MVP Troy Hunt 的文章: 67% of ASP.NET websites have serious configuration related security vulnerabilities,大意是依据他搜集到的统计数字,约67%的 ASP.NET 网站因配置不当,存在安全风险。

Troy Hunt 文章的分析数据来自他所开发的一个简易网站扫瞄服务--ASafaWeb, Automated Security Analyser for ASP.NET Websites。使用者只要提供 Internet 上公开ASP.NET 网站的 URL,ASafaWeb 会发出几个 Request,藉此检查网站是否存在一些常见的安全漏洞。

由今年1至3月扫描过的网站记录,排除掉 ASafaWeb 测试网站及非 ASP.NET 网站后共有7,184份检测结果,Hunt 做出简单的统计。虽然我觉得这份结果由于是使用者主动提供网站进行检测,甚至无法排除用户会刻意制造问题情境考验 ASafaWeb 的检查效果,因此数据高低未必能精确反应实际情况,但还是很有参考价值,值得我们关心一下 ASP.NET有哪些常见的配置漏洞,确定自己都了解并检查手边网站有无类似状况,绝对是件好事。

以下是 Hunt 列出的常见 ASP.NET 配置安全漏洞:

    1. 未隐藏错误讯息 
      开发人员常会将<customErrors mode="Off" />方便排错,但正式上线时却忘了移除,导致一旦程序出错,相关程序代码细节甚至程序片段就赤裸裸地展示出来。黑客可能由其中找到相关的文件位置、数据库信息、组件版本... 等信息,提供入侵的指引。
    2. 关闭 Request Validation 
      依 Hunt 的统计,近30%的网站豪迈地关闭了全站的 Request 验证。若真有需要,针对页面关闭就好,至少伤害面变小,但如果心有余力,避开此限制保持后门紧闭还是上策。
    3. 未更新 Windows/IIS 
      去年底被揭露的 HTTP POST Hash DoS 漏洞,攻击者用简单的 Request 就能让网站忙到死去活来,终至服务瘫痪。微软已在2月发布补定,但是似乎还有50%的网站未完成更新。
    4. ELMAH 存取未设限 
      关于 ELMAH 存取设定的风险之前也有文章 《大叔手记(18):利用Elmah和Google体验一把入侵的快感》提过,稍有不慎,程序里的秘密就会大放送,十分危险,甚至黑客还可能藉此伪造ASP.NET Session冒充身份,挺恐怖的。
    5. 未关闭 Trace 
      虽然比例不高,但通过 trace.axd 黑客还是能搜集到很多重要情报,上线到正式环境时记得关闭。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。