HKCert
保安指南

OWASP 十大網頁應用程式安全風險 2017

發布日期: 15 / 06 / 2018
最後更新: 25 / 07 / 2018
十大最關鍵網頁應用程式安全風險
 
OWASP (Open Web Application Security Project) 社群協助開發安全的應用程式。他們提供了標準、免費工具及會議以輔助機構及研究者。OWASP 十大列出十個最嚴重的應用程式漏洞,與其風險、影響及對策。此清單每隔三至四年更新一次。
 
OWASP 於2017年第四季更新了 OWASP 十大。與2013年的十大相比,新風險「XML外部實體」(XXE) 首次出現。香港電腦保安事故協調中心總結了這個新的 OWSAP 十大,供開發人員和網站管理員參考,藉以加強網頁應用程式的保安。
 
 
風險 詳情 對策
A1:2017
注入攻擊
  • 當使用者能夠輸入不受信任的資料誘使應用程式/系統執行任意的命令時,就會發生注入攻擊
  • 注入可以是 SQL 查詢、PHP 查詢、LDAP 查詢和 OS 命令
  • 輸入過濾:在伺服器端實施可以接受的內容的白名單方法
  • 使用安全 API 和參數查詢
A2:2017
無效的身份驗證
  • 當應用程式對會話控制相關資訊管理不當 (如使用者的標識被洩露) 時,會導致身份驗證無效。有關資訊可以是會話控制 cookies、密碼、保密金鑰等。
  • 使用多重身份驗證
  • 會話控制分離
  • 空閒會話控制超時
  • 使用安全 cookies
A3:2017
敏感資料洩露
  • 如果應用程式處理敏感資料不夠安全,攻擊者可以對此進行嗅探或修改。有些例子包括使用較弱加密金鑰、使用較弱的傳輸層安全性協定 (TLS)。
  • 於傳輸及靜止時加密所有資料
  • 使用安全協定和演算法
  • 停用回應敏感資料的緩存。黑客可能得到緩存的副本, 並竊取他們的資訊
A4:2017
XML 外部實體 (XXE)
  • 如果使用者能夠上載惡意 XML,就能夠利用有漏洞的程式碼及/或所依賴的程式碼,令有漏洞的應用程式容易受到 XXE 襲擊的影響
  • 可用於執行代碼、竊取資料和執行其他惡意活動
  • 避免敏感資料序列化
  • 在伺服器端實現白名單方法以防止惡意 XML 上載
  • 使用網頁應用程式防火牆 (WAF) 檢測和阻止 XXE
A5:2017
無效的存取控制
  • 如果使用者能夠存取未經授權的資源,則會出現無效的存取控制,例如受限制的頁面、資料庫、目錄等。
  • 應用程式有不同的帳戶類型, 具體取決於使用者: 管理員、操作員和報告群組等。一個常見的問題是,開發人員僅限制使用者介面的許可權, 而不是伺服器端的特權。如果漏洞被利用,每位使用者都可以擁有管理員許可權。
  • 登出後使令牌和 cookies 失效
  • 在密碼更改後強制登入/登出
  • 伺服器端資源限制,如目錄
  • 限制對所有資源為本角色的訪問
A6:2017
不當的保安設定
  • 開發人員和 IT 員工通常會關注系統功能多於保安。在應用伺服器、數據庫伺服器、代理、應用程式和其他設備的設定都需要符合安全要求。除非由專家或黑客識別,否則大多數安全要求都將被遺漏。
  • 這些安全錯誤的例子有弱密碼、預設密碼、儲存在伺服器上的預設腳本、預設目錄、預設錯誤訊息等。
  • 對硬體和應用程式都有一個強化過程。請確保更改了預設值
  • 僅從框架安裝所需的功能
  • 定期檢視配置的安全性
A7:2017
跨網站指令碼編寫 (XSS)
  • 當攻擊者能夠將不受信任的資料/指令碼插入到網頁中時,會發生跨網站指令碼。攻擊者插入的資料/指令碼在瀏覽器中被執行, 可以竊取使用者資料、網站篡改等。
  • 輸出編碼和避開不受信任字元
  • 啟用內容安全政策 (CSP)
A8:2017
確保反序列化
  • 某些應用程式在用戶端上保存資料, 並且它們可能正在使用物件序列化。依賴用戶端維護狀態的應用程式可能會跟隨序列化資料的篡改。
  • 對序列化資料進行加密
  • 反序列化以最少的權限運行
A9:2017
使用具有已知漏洞的元件
  • 如果應用程式使用已知漏洞的任何元件, 這可能會導致安全違規或伺服器接管。元件可以是編碼框架、程序庫、有漏洞的函數、網路框架等。
  • 例子:
    • 使用有漏洞的 PHP 版本
    • 過時的內核版本 Linux
    • 未被修補的視窗系統
    • 有漏洞的 jQuery 版本
  • 定期修補程序
  • 訂閱不同有分享最新漏洞的 CVE 號碼和緩解技術/修復程式的論壇。檢查該漏洞是否影響庫存中的設備/軟體並修復它們。
A10:2017
日誌記錄和監視不足
  • 即使有了所有的對策都可能遇上攻擊,只有在發生了事件之後才會被注意到。如果攻擊未被發現,攻擊者可能已經破壞系統,影響深遠
  • 為了確保攻擊者的惡意意圖事先得到注意,必須記錄所有活動並監視它以進行任何可疑行為。
  • 例子:
    • 來自特定來源的失敗登錄嘗試太多
    • 來自特定來源的請求太多,而且不論速度異常地快、慢或固定,都可能是攻擊者嘗試發動 DoS 攻擊。要做檢查和採取行動。
    • 垃圾流量
    • 在沒有預期的情況下出現高峰流量
  • 24x7 監控應用程式流量和日誌分析
  • 能到位及實質地執行有效的安全事故及應變程序
 

參考

www.owasp.org/index.php/Top_10-2017_Top_10