防護建議:
軟體、作業系統是否都有更新到最新版本?是否都有上最新Patch?
不需要的帳號、頁面、服務、連接埠是否都有關閉?
預設密碼是否都有更改?
安全設定是否都完備?
伺服器是否都有經過防火牆等設備保護?
各種設備、系統的預設密碼,都可以在網路上找到一些整理資料。
http://www.phenoelit-us.org/dpl/dpl.html
http://www.routerpasswords.com/
http://www.defaultpassword.com/
A7 – Failure to Restrict URL Access(限制URL存取失敗)
網頁因為沒有權限控制,使得攻擊者可透過網址直接存取能夠擁有權限或進階資訊的頁面。例如管理介面、修改資料頁面、個人機敏資訊頁面洩漏等等。
舉例來說,
/admin
/backup
/logs
/phpmyadmin
/phpinfo.php
/manage
這些都是常見的路徑及檔案。攻擊者只要猜測到,就可以操弄主機。
防護建議:
HTTP Service直接限制來源IP
使用防火牆阻擋
密碼授權加密頁面
網站架構最佳化
A8 – Unvalidated Redirects and Forwards(未驗證的導向)
網頁應用程式經常將使用者Forward或Redirect至其他頁面或網站,沒有驗證的機制。攻擊者可將受害者導向至釣魚網站或惡意網站,甚至存取受限制的資源。
例如:
http://example.cc/redir.jsp?url=evil.com
http://example.cc/func.jsp?fwd=admin.jsp
http://g.msn.com/9SE/1?http://xxx.com
防護建議:
非必要時避免使用Redirect及Forward
驗證導向位置及存取資源是合法的
A9 – Insecure Cryptographic Storage(未加密的儲存設備)
網站應用程式沒有對敏感性資料使用加密、使用較弱的加密演算法或將金鑰儲存於容易被取得之處。加密演算法是安全防護的最後一道防線,當駭客取得了帳號密碼,可以簡單地使用一些破解軟體甚至線上服務進行破解。例如Cain & Abel,MD5 Reverse Lookup等。
防護建議:
使用現有公認安全的加密演算法
減少使用已有弱點的演算法,例如MD5 / SHA-1,甚至更簡單的加密法
安全的保存私鑰
A10 – Insufficient Transport Layer Protection(傳輸層保護不足)
網頁應用程式未在傳輸機敏資訊時提供加密功能,或者是使用過期、無效的憑證,使加密不可信賴。
例如:攻擊者竊聽無線網路,偷取使用者cookie;網站憑證無效,使用者誤入釣魚網站。
防護建議:
盡可能的使用加密連線
Cookie使用Secure Flag
確認加密憑證是有效並符合domain的
後端連線也使用加密通道傳輸
http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet
Cookie Secure Flag設定:
PHP setcookie ("TestCookie", "", time() - 3600, “/", ".example.com", 1);
JSP cookie.setSecure(true);
ASP.NET cookie.Secure = True;