• 網站安全架構的設計要素 (ESAPI)

    這篇文章說明一個網站的安全架構設計應該要包含哪些安全控管要素,

    還有這些安全控管的要素在整個網站流程中所扮演的角色。主要分為下列幾大部分

    • Authentication
    • Authorization
    • Input Validation and Encoding
    • Logging
    • Encryption
    • Communication Session Control

    (主要參考來源 OWASP ESAPI)

    Authentication

    Authentication 基本要包含的要素列舉如下:

    • Locale• Roles• Disable / Enable• Locked / Unlocked• CSRF Tokens• Last Login• Last Invalid Login• Password Age• Screen Name• Failed Log In Count

    • Last Logged in Host

    • Log In / Log Out• Password Verification• Create User• Password Generation• Change Password• Expirations• Logging• Per User Session• Anonymous User

    ESAPI Authenticator

     

    Authorization

    Authorization 主要目的在於確認該帳號有存取該資源的權限。

    在商業邏輯層、在資料層、在後端服務的存取等都要進行權限的檢察。

    ESAPI Authorized

    Direct Object Reference

    這個安全控管的目的在於確定 Report123.xls (如範例下圖)是需要經過授權才可以存取

    ESAPI Object Ref

    編碼與資料輸入驗證

    Encoding 輸入驗證的目的在於防止駭客各式的 Injection,特別是 XSS 攻擊

    ESAPI Encoding

    Encoding Untrusted

    Validate Inputs

    Encoding 的主要目的在於避免 XSS攻擊,相關的 Security Framework也可以參考:

     

    https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project

    https://www.owasp.org/index.php/OWASP_Java_HTML_Sanitizer_Project

    Encryption

    敏感性資料的加密語解密

    ESAPI Encryption

    ESAPI Encryption

    ESAPI Encryption2

    Http Session的安全設計

    安全的連線設計應考量 Header, Cookie, SessionID, CSRF Token 等安全設計。

    ESAPI Http Session

    Http Utilities

    Logging

    Logging 主要是針對異常狀況 Exception 記錄下來,方便未來追蹤並且改善安全設計機制。

    ESAPI logging

    輸入的驗證

    前端與後端輸入的驗證可以阻絕許多不必要的攻擊,資料輸入的有效性驗證範圍很廣,

    例如:檔名、檔案路徑、參數、輸入的編碼等

    ESAPI Validator Encoder

    整體安全設定

    • Select crypto algorithms
    • Select encoding algorithms
    • Define sets of characters
    • Define global validation rules
    • Select logging preferences
    • Establish intrusion detection thresholds and actions
    • Etc…

     

    入侵的基本偵測與防護

    Intrusion Detection Design

     

     

    有現成的 API Framework 可以套用嗎?

    SHIRO http://shiro.apache.org/

    OWASP ESAPI https://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API

    AntiSamy: https://www.owasp.org/index.php/Category:OWASP_AntiSamy_Project

    HTML_Sanitizer: https://www.owasp.org/index.php/OWASP_Java_HTML_Sanitizer_Project

    另外可以參考這篇文章 https://software-security.sans.org/blog/2011/06/06/safer-software-through-secure-frameworks

     

    Posted by Tony @ 3:40 pm

  • Leave a Reply

    Your email address will not be published.