Web Security

Vivian Huang

Outline

  • OWASP Top 10
  • Common website attacks
  • Brup suite 
  • Always Encrypted
  • Reference

What is the OWASP Top 10?

  • OWASP(Open Web Application Security Project)

The Top 10 OWASP vulnerabilities in 2021

  • Injection
  • Broken authentication
  • Sensitive data exposure
  • XML external entities (XXE)
  • Broken access control
  • Security misconfigurations
  • Cross site scripting (XSS)
  • Insecure deserialization
  • Using components with known vulnerabilities
  • Insufficient logging and monitoring

Broken authentication

Broken authentication

  1. 猜測 Session ID (Session Prediction)

  2. 竊取 Session ID (Session Hijacking)

  3. 固定 Session ID (Session Fixation)

Broken authentication

防護建議:

  • 避免將 Session ID 使用 URL (GET) 方式來傳遞
  • 設定加強安全性的 Cookie 屬性:HttpOnly (無法被 JavaScript 存取)
  • 設定加強安全性的 Cookie 屬性:Secure (只在 HTTPS 傳遞,若網站無 HTTPS 請勿設定)
  • 在需要權限的頁面請使用者重新輸入密碼

Sensitive data exposure

Sensitive data exposure

防護建議:

  • 使用 SSL 加密連線進行資料傳輸
  • 以加密、雜湊(hash)等方式保存敏感資料,例如帳號密碼
  • 檢查系統防火牆規則設定,限制所需的連接埠,定期查看內部是否有對外大量不同目的 IP 之異常連線,與帳號活動。

XML external entities (XXE)

XML external entities (XXE)

XML external entities (XXE)

防護建議:

  • 禁止外部實體引用。
  • 修補或升級有引用的套件,並將 XML 升級到最新。

Broken access control

Broken access control

防護建議:

  • 處理檔案或敏感性資料時,需嚴格進行監控及身份權限驗證。

  • 利用 index 之方式讀取檔案,取代直接讀取檔案名稱。

Security misconfigurations

Security misconfigurations

防護建議:

  • 避免系統啟用或安裝非必要功能,例如:非必要的端口、服務、網頁、帳戶或權限等。
  • 不使用預設密碼。
  • 對Server、Framework(如:Struts、Spring、ASP.NET)、library、DB 等進行安全配置。
  • 定期進行安全更新的系統。

Insecure deserialization

Insecure deserialization

Insecure deserialization

防護建議:

  • 將序列化的物件加上數位簽章或進行加密,防止新增惡意物件或資料竄改。
  • 記錄反序列化所發生的例外情況與失敗訊息。
  • 監控反序列化,當用戶持續進行反序列化時,應啟動警告機制。

Using components with known vulnerabilities

Using components with known vulnerabilities

防護建議:

  • 識別所有使用到的第三方元件及其版本。
  • 定期檢視所使用元件的公開安全資訊,以確保接收到第三方元件的安全訊息。
  • 建立安全政策,指導第三方元件的使用原則,例如:需要了解其安全性、通過安全性測試才得以使用。

Insufficient logging and monitoring

Insufficient logging and monitoring

防護建議:

  • 確保登錄、存取失敗、驗證失敗的訊息都能被完整記錄,並保留足夠的用戶資訊,以辨別可疑或惡意行為。
  • 建立有效的監控與警告機制,使可疑活動在短時間內能夠被發現及應對。

Common website attacks

  • SQL Injection &Blind SQL Injection
  • Cross site scripting (XSS)
  • CSRF
  • Open Redirect

SQL Injection

SELECT user_data FROM user_table
WHERE user_name = 'vivian'
AND paswword = '1111' 
SELECT user_data FROM user_table
WHERE user_name = 'vivian'
AND paswword = ''or 1=1 --' 

password: 'or 1=1 --

Blind SQL Injection

Blind SQL Injection

Blind SQL Injection

Blind SQL Injection

Blind SQL Injection

 SQL Injection

防護建議:

  • 檢查使用者輸入字串與格式,並過濾特殊符號
  • 採用參數化查詢
  • 資料庫權限的設置

Cross site scripting (XSS)

Cross site scripting (XSS)

Cross site scripting (XSS)

Reflected XSS

Reflected XSS

Stored XSS

Stored XSS

DOM Based XSS

防護建議:

  • 驗證輸入的資料。
  • 將資料編碼後再進行輸出。
  • 同時使用白名單與黑名單機制過濾資料。

Cross site scripting (XSS)

Cross-site request forgery(CSRF)

Cross-site request forgery(CSRF)

防護建議:

  • 加上圖形驗證碼、簡訊驗證碼
  • 檢查 referer欄位
  • 加上 CSRF token
  • 瀏覽器端的防禦:SameSite cookie

Open Redirect

Open Redirect

Open Redirect

防護建議:

  • 採用白名單,指定可以被跳轉的路徑
  • 若跳轉的目的地是「完整網址」,驗證網域的結尾或是指定整個網域 ( Domain ),而不是只要驗證開頭。

Burp Suite

Always Encrypted

Reference

  • Burp suite:https://ithelp.ithome.com.tw/users/20114110/ironman/3806?page=2
  • 參考網站:
  • https://medium.com/hannah-lin/%E5%B9%BC%E5%B9%BC%E7%8F%AD%E4%B9%9F%E8%83%BD%E6%87%82%E7%9A%84-owasp-top-10-692764c51f61
  • https://ithelp.ithome.com.tw/users/20108446/ironman/3463
  • https://medium.com/starbugs/%E8%BA%AB%E7%82%BA-web-%E5%B7%A5%E7%A8%8B%E5%B8%AB-%E4%BD%A0%E4%B8%80%E5%AE%9A%E8%A6%81%E7%9F%A5%E9%81%93%E7%9A%84%E5%B9%BE%E5%80%8B-web-%E8%B3%87%E8%A8%8A%E5%AE%89%E5%85%A8%E8%AD%B0%E9%A1%8C-29b8a4af6e13
  • https://medium.com/%E7%A8%8B%E5%BC%8F%E7%8C%BF%E5%90%83%E9%A6%99%E8%95%89/%E7%B6%B2%E7%AB%99%E5%AE%89%E5%85%A8-%E9%96%8B%E6%94%BE%E5%BC%8F%E9%87%8D%E5%AE%9A%E5%90%91-open-redirect-%E6%94%BB%E6%93%8A%E6%89%8B%E6%B3%95-68c745b53a3b

Reference

Web Security

By vivian_0920

Web Security

  • 476