資安管理 OWASP Top 10 (1)

基本介紹

教學目標

初步了解 OWASP Top 10 十大資安風險。

重點概念

首先開放網站應用程式安全專案 (The Open Web Application Security Project,OWASP) 每隔幾年就會匯整出十大網路資安的風險,在 2017 年 11 月 20 日則公佈最新版本,分別為:

  1. 注入攻擊 (Injection)
  2. 無效身份認證 (Broken Authentication)
  3. 敏感資料外洩 (Sensitive Data Exposure)
  4. XML 外部處理器漏洞 (XML External Entity,XEE)
  5. 無效的存取控管 (Broken Access Control)
  6. 不安全的組織設定 (Security Misconfiguration)
  7. 跨站攻擊 (Cross-Site Script,XSS)
  8. 不安全的反序列化漏洞 (Insecure Deserialization)
  9. 使用已有漏洞的元件 (Using Components with Known Vulnerabilities)
  10. 記錄與監控不足的風險 (Insufficient Logging & Monitoring)

接著其中相較於 2013 年主要新增 XML 外部處理器漏洞、不安全的反序列化漏洞和記錄與監控不足風險三大資安風險,主要與越來越多微服務的應用有關,因此當我們在快速提供服務的過程中,更需要許多跌謹的資安驗證和授權的程序,避免因為忽略而造成敏感資料的外洩。

XML 外部處理器漏洞

XML 外部處理器漏洞,主要是因為以 XML 為基礎的網路應用程式沒有管控好權限,直接處理 XML 語法的請求或上傳,此時攻擊者僅需要加入一個惡意的 XML 文件,就能夠鎖定 XML 處理器漏洞進行攻擊,進而導致資料外洩的風險。更進一步,目前 XML 訊息主要採用簡單物件存取協定 (Simple Object Access Protocal,SOAP) 簡化網路應用程式訊息傳遞的標準格式,此時若是採用 SOAP 1.2 之前版本的訊息交換格式,則預設皆有 XML 外部處理器漏洞的風險,因此容易遭受到阻斷式服務的攻擊。所以建議採用 SOAP 1.2 版本避免因為 XML 外部處理器漏洞的風險遭受到阻斷式服務的攻擊。

不安全的反序列化漏洞

不安全的反序列化漏洞主要是針對 Java 、 Node.js、…等平台常見的攻擊方式,簡單來說,序列化主要會將執行時的變數和程序物件轉換為可以儲存或傳輸形式的過程,形式主要有 JSON、XML 或二進位格式,反序列化則是將序列化形式轉換為記憶體變數和程序物件的相反過程,此時攻擊者若可以將資料進行反序列化,那將會對記憶體中的變數和程序物件產生影響, 之後將會導致遠端程式碼執行、重播攻擊、注入攻擊、特權升級攻擊、…等攻擊方式成功。所以建議針對任何序列化的物件落實完整性的檢查,像是數位簽章,以利防止惡意物件的建立或資料被篡改。

記錄與監控不足的風險

記錄與監控不足的風險主要是因為微服務快速興起,卻沒有針對應用程式進行記錄和監控,此時因為記錄和監控的不足,所以當資安事件發生時就無法立即處理與解決問題,同時讓攻擊者有機會更進一步攻擊系統。所以建議確保所有使用者登入、存取控制失敗和伺服器端輸入驗證失敗皆進行記錄,以利識別可疑或惡意的帳戶,並且保留足夠的時間允許延遲進行數位鑑識分析。

再來第一名注入攻擊,不僅只是 SQL 注入攻擊,更進一步包括作業系統、LDAP、SQL 、NoSQL 、… 等注入攻擊,當惡意程式語法輸入時,若沒有經過妥善的檢查和驗證將會造成資安的風險,所以建議使用安全的 API,或者使用參數化的介面,以及使用物件關係對應 (Object Relational Mapping,ORM) 工具。第二名無效身份認證,主要是因為網路應用程式必須進行身份認證和工作階段管理,此時若導入方式不正確,就有可能會讓攻擊者取得密碼、金鑰、工作階段存取令牌、…等暫時或永久取得使用者的身份資訊。所以建議在可能的情況下落實多因素的身份驗證機制,以利避免無效身份認證的攻擊成功。第三名敏感資料外洩,主要是因為有許多網路應用程式對於金融資訊、健康資料和個人資料的保護不足,若是被攻擊者取得,將能夠進行信用卡詐欺、身份竊取或其它犯罪行為。所以建議針對應用程式的處理、存儲或傳輸的資料進行分類,並且根據個人隱私法、監管機關的要求和業務的需求確定哪些資料是敏感性資料,以利進行額外的保護措施。

最後跨站請求偽造攻擊 (Cross-Site Request Forgery,CSRF) 沒有在 2017 年十大資安風險之一,同時許多開發框架和套裝軟體皆已經內建跨站請求偽造攻擊的風險防禦機制,但還是要特別小心僅慎,像是跨站攻擊雖然也有許多成熟的自動化掃描工具,能夠加速漏洞修補的速度,但是風險並沒有因此減少還是在十大資安風險之一。此外若是沒有針對開發框架和套件軟體進行安全的組態設定,則將會因為不安全的組態設定提高被攻擊的風險,此時必須定期做到系統更新與升,以利確保系統安全,避免攻擊者使用已有漏洞的元件進行攻擊。至於無效的存取控管,則僅能藉由嚴格的存取控管,以利避免攻擊者利用漏洞存取沒有經過授權的功能或查看敏感資料。同時授權使用者、群組和角色存取的功能也是許多套裝軟體解決方案基本的安全功能之一,所以存限控管會是資安管理的首要第一步,有完善的存限控管機制將能夠降低被攻擊的資安風險。

總結 OWASP Top 10 僅是風險框架,其會因為技術發展而持續進行變動,因為除了十大資安風險之外,針對企業和組織則還有許多更需要特別注意的資安風險,以利通透過稽核或法遵的檢查。至於下一步要如何開始進行,則可以參考「OWASP Top 10 - 2017 The Ten Most Critical Web Applications Security Risks」報告文件。

相關資源