iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 26
3
Security

Web Security 魔法使攻略系列 第 26

Web Security 魔法使攻略─OWASP TOP 10

  • 分享至 

  • xImage
  •  

補充

OWASP

  • The Open Web Application Security Project
  • 開放社群、非營利組織
  • 目前最新版為 2017
  • 每三或四年更新一次

新舊版比較


A1-Injection

  • 2013, 2017 均第一名
  • 注入攻擊
  • 利用弱點透過惡意程式碼
    • 將異常資料寫入資料庫
    • 擷取機敏資料
  • 可能造成原因
    • 有資料輸入欄位
    • 使用網址列傳遞變數
    • 未過濾特殊字元
    • 顯示SQL錯誤訊息

SQL injection

  • SQL 是資料庫的查詢語言

  • SQL Injection 常出現於語法以 拼接 做查詢

  • SELECT * FROM users WHERE pwd= '輸入字串'

  • SELECT * FROM users WHERE pwd='' OR 1=1 --'

SQL injection 工具

  • SQLmap

  • Python 撰寫

  • 自動化進行 SQLi 攻擊

  • 使用前:先找到注入點在進行攻擊

  • SQL injection 威脅

    • 繞過身分驗證
    • 讀取機敏資料
    • 修改資料庫資料
    • 對資料庫進行關閉等管理操作
    • 執行作業系統指令(OS injection)
  • 影響

    • 注入攻擊導致機敏資料被竊取或修改
    • 服務阻斷
    • 未經授權存取
    • OS injection 導致主機被駭客接管

SQL injection 防護方法

  • 關閉錯誤訊息

  • 可有效降低被攻擊成功的機率

  • 白名單字串驗證(長度、英數、正規化)

  • 不建議黑名單過濾:因過濾不完

    • /*

    • or 1=1--
    • or 2>1--
    • ' or ''='
    • and 1=1--
    • and 1=2--
  • 建立專門任務的帳號,給予最小權限

    • 避免使用最高權限(root)與資料庫連線
    • 找出並限制只允許需要執行的 SQL 指令
    • 選擇不易猜測的資料庫表格/欄位名稱

A2-Broken Authentication

  • 威脅
    • 利用網站應用程式中的 身分驗證缺陷取得更高權限進行攻擊行為。
  • 影響
    • 攻擊者盜用帳號/身分

A2-Broken Authentication

  • 手法
    • 利用網路封包監聽取得使用者帳號密碼
    • 網站設計不良,可直接繞過驗證頁面
    • 使用者忘記登出,而讓攻擊者有機可趁
    • 弱密碼攻擊
  • 修復
    • 網站的登入頁面應使用加密連線
    • 網站應該具備良好的權限控管
    • 網站應具備Timeout的機制

A2-Broken Authentication

  • 弱密碼

    • 常用密碼 → 已知字典檔
    • 公司名稱 ( 域名 )
    • 分機號碼
    • 全數字或全英文
    • 帳號密碼相同
  • 共用密碼

    • 不同台電腦使用相同密碼
    • 不同的服務使用相同密碼
    • 您的 Gmail,Line,Facebook 密碼是否都相同?
  • 共用密碼

    • 破解 Windows 管理權限帳號
    • 使用密碼破解工具
    • 取得 Windows 上所有使用者的密碼
    • 再去破解其他台電腦

A3-敏感資訊洩漏

  • Sensitive Data Exposure

  • 威脅

    • 中間人攻擊
    • 加密協定不安全
  • 影響

    • 機敏資料外洩
    • 網路資料被竄改
    • 匯款資料被竄改
  • 可直接使用工具攔截封包內容

    • WireShark
    • Charles
  • Telnet

    • 明文傳輸協定
    • 建議關閉 Telnet Server 改用 SSH
  • 含有漏洞的加密機制

    • SSL 3.0
    • OpenSSL 1.0.1
  • 採用不安全的加密機制

    • SHA1
    • MD5
    • RC2

A3-敏感資訊洩漏

- 明文密碼? 加密後的密碼?
演算法 長度 值
明文 8 password
md5 32 5f4dcc3b5aa765d61d8327deb882cf99
sha1 40 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
sha256 64 5e884898da28047151d0e56f8dc6292773603d0d6aabbdd62a11ef721d1542d8

Base64 (^12) cGFzc3dvcmQ=
  • 輕易找到明文

A3-敏感資訊洩漏

A3-敏感資訊洩漏

- 原始碼洩漏

A4- XML外部處理器漏洞

  • XML External Entity (XXE)
  • 應用程式 XML 解析 XML 輸入
  • 沒有禁止外部實體的載入
  • 駭客強迫 XML 程式 存取指定檔案與資源
  • 影響
    • 讀取 /etc/passwd
    • 讀取網站原始碼
    • 機敏資料外洩

A4- XML外部處理器漏洞

  • 關閉 DTD ( Data Type Definition )
    • 禁止外部實體的方法
    • 可讓解析器較安全
    • 降低 DOS 攻擊
  • libxml2
    • 解析 XML 函式庫
    • 設定
      • XML_PARSE_NOENT
      • XML_PARSE_DTDLOAD

A5-無效的存取控管

  • ( Broken Access Control )
  • 不須登入可直接操作使用者帳號
  • 竊取機密
  • 系統檔案外洩

A5-無效的存取控管

- 跨檔案、跨路徑攻擊
  • ../Download.php?p=test.txt

  • ../Download.php?p=/etc/passwd

  • 權限提升

  • 平行越權

    • 相同功能
    • A使用者卻可以使用B使用者的
  • 垂直越權

    • 只有管理員可使用的功能
    • 一般使用者卻可以使用管理員的
  • 權限提升─攻擊手法

    • 攔截封包
      • 可透過瀏覽器開發者工具(F12)查看
      • 點選Network 即可查閱封包
    • 封包分析
      • 查看封包結構(如GET或POST參數內容)
      • 可能是會員帳號、會員ID或Token等可代表會員的參數
    • 重送封包
      • 查看重送封包後的Response
      • 是否可訪問到非自身可查閱之內容
        • 如果是,則進行深入攻擊
        • 如果否,則尋找其他可疑之脆弱點
  • 防護

    • 白名單過濾
    • 權限控管需做好
    • 限制下載檔案類型

A6-不安全的組態設定

  • Security Misconfiguration
  • 權限、Debug設定不完全
  • 威脅
    • 攻擊者會嘗試利用未修補的漏洞進行攻擊
    • 未修改預設帳號的密碼
    • 未使用的頁面
    • 未受保護的文件與目錄
    • 未經授權的訪問
  • 影響
    • 可讓攻擊者取得機敏資料

A6-不安全的組態設定

  • 未經授權存取

    • 機敏資料外洩
    • 網站備份檔案外洩
  • 目錄遍歷

  • Debug 模式

  • 未關閉

  • 系統路徑外洩

A6-不安全的組態設定 建議

  • 上傳權限
    • 檢查副檔名
    • 上傳後重新命名
    • 控管權限:關閉執行權限
  • 移除不使用的頁面
  • 移除暫存檔案與備份檔案
  • 不使用太簡單的命名規則
  • 以白名單設定可存取的頁面

A7-跨站腳本攻擊

  • (Cross-Site Scripting (XSS))
  • 網頁跨站攻擊,利用程式碼將惡意網站嵌入至正常網頁中,
    欺騙使用者進行存取,以擷取使用者私密內容。
  • 盜用 cookie ,獲取敏感資訊
  • 攻擊者利用 iframe、frame、或Flash等方式,在網頁插入攻
    擊語法,當使用者或管理者讀取到具有問題的網頁時,就會
    受到攻擊。

A7-跨站腳本攻擊 分類

  • 儲存型
    • 攻擊語法被儲存於資料庫
    • 管理員檢視頁面後觸發
    • 容易發生在字串較複雜之欄位
  • 反射型
    • 不會儲存攻擊語法

A7-跨站腳本攻擊 改善

  • 請求與回應接要驗證是否有非法字元
  • 建議使用白名單
  • 不建議使用黑名單

A7-跨站腳本攻擊 常見語法

- ><script>alert(document.cookie)</script>
- ='><script>alert(document.cookie)</script>
- "><script>alert(document.cookie)</script>
- <script>alert(document.cookie)</script>
- <script>alert (vulnerable)</script>
- %3Cscript%3Ealert('XSS')%3C/script%3E
- <script>alert('XSS')</script>
- <imgsrc="javascript:alert('XSS')">
- <imgsrc="http://888.888.com/999.png" onerror="alert('XSS')">
- <div style="height:expression(alert('XSS'),1)"></div>(這個僅於IE7(含)之前有效)

A8-不安全的反序列化漏洞

  • Insecure Deserialization
  • 威脅
    • 針對 JAVA , PHP, Node.js 平台
    • 會造成遠端程式碼執行( RCE )
    • 因 JAVA 反射機制的副作用,
      在物件回傳之前就把所有動作執行完畢,
      導致反序列化在解開 byteStream 時,
      並且會跳出 error 之前,就將 Payload 全數執行

A8-不安全的反序列化漏洞

- 影響
  • 造成遠端程式碼執行( RCE )
  • 可利用此漏洞進行
  • 重送攻擊
  • 注入攻擊
  • 越權

A9-使用含有已知漏洞的組件

  • Using Known Vulnerable Components
  • 威脅
    • 使用開放原始碼 ( Open Source )的套件、框架、函式庫、工具
    • 未使用最新版本
    • 未檢視已知弱點問題

A9-使用含有已知漏洞的組件

  • 影響
    • Open Source 廣泛被使用
    • 網路上有更多的現成攻擊工具與程式
  • 駭客可直接透過工具針對已知弱點進行攻擊
    • 資料因此外洩
    • 駭客可取得系統權限

A9-使用含有已知漏洞的組件

  • 工具 Metasploit
    • 先從弱點掃描報告發現漏洞特徵
    • 搜尋可用攻擊模組
    • 選擇已知的漏洞
    • 選擇目標
    • 選擇攻擊內容
    • 設定相關參數
    • 進行攻擊/滲透/弱點利用
    • 攻擊成功,獲取目標系統權限,執行系統命令

A9-使用含有已知漏洞的組件

  • 建議措施
    • 關於函式庫、框架、工具
    • 定期檢視 最新版本
    • 定期了解是否在 CVE 上有已知弱點公布

A10-記錄與監控不足風險

  • Insuficient Logging & Monitoring
  • 因微服務快速興起
  • 常有:未針對應用程式進行紀錄與監控
  • 造成資安事件發生無法立即處理與解決問題

A10-記錄與監控不足風險 威脅

  • 無 log 紀錄、無監控
    • 造成攻擊者攻擊系統、竄改資料、存取或刪除
    • 渾然不知

A10-記錄與監控不足風險 影響

  • 無監控、無警告機制
    • 無法判別資安事件發生
  • 駭客若入侵後刪除軌跡
    • 無保留紀錄 → 無法判別入侵點
    • 無法判別 → 無法修復弱點
    • 若重新上線,仍有風險

A10-記錄與監控不足風險 改善

  • 異地監控
    • 使用 Client-Server 架構的監控程式
    • 將 log 轉移到另外一台伺服器
  • 應用程式層監控
    • 流量控管
    • 錯誤訊息控管
  • 系統層監控
    • 記憶體、CPU、硬碟
  • 警告機制

上一篇
Web Security 魔法使攻略─CRLF Injection
下一篇
Web Security 魔法使攻略─蒐集敵人的資訊
系列文
Web Security 魔法使攻略30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
CyberSerge
iT邦好手 1 級 ‧ 2019-10-15 00:05:17

補充一下,通常說的OWASP Top 10 是指OWASP Top 10 - 2017:The Ten Most Critical Web Application Security Risks。但其實我們也有另一個較少為人知的專案OWASP Mobile Top 10

飛飛 iT邦新手 1 級 ‧ 2019-10-15 00:16:43 檢舉

我來補充一下好了,感謝!
然後最近新增了 OWASP API Security Top 10 !!!

沒錯!新鮮出爐熱騰騰。畢竟太多錯誤運用API造成資安疑慮的新聞

我要留言

立即登入留言