前幾天看到朋友分享了一篇國外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
    這點我也曾呼籲過: 多想兩分鐘,你可以不用 validateRequest="false",依Hunt的統計,近30%的網站豪邁地關閉了全站的Request驗證。若真有需要,針對頁面關閉就好,至少傷害面變小,但如果行有餘力,避開此限制保持後門緊閉還是上策。
  3. 未更新Windows/IIS
    去年底被揭露的HTTP POST Hash DoS弱點,攻擊者用簡單的Request就能讓網站忙到死去活來,終至服務癱瘓。微軟已在2月釋出修補,但是似乎還有50%的網站未完成更新。
  4. ELMAH存取未設限
    關於ELMAH存取設定的風險之前也有文章提過,稍有不慎,程式裡的祕密就會大放送,十分危險,甚至駭客還可能藉此偽造ASP.NET Session冒充身分,挺恐怖的。
  5. 未關閉Trace
    雖然比例不高,但透過trace.axd駭客還是能蒐集到很多重要情資,上線到正式環境時記得關閉。

Comments

Be the first to post a comment

Post a comment