系統安全架構的設計要素 (ESAPI)

網站安全架構的設計要素 (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

 

Leave a Reply

Your email address will not be published. Required fields are marked *