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

时间:2022-04-23
本文章向大家介绍检测常见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黑客还是能搜集到很多重要情报,上线到正式环境时记得关闭。