OWASP API Security Top 10 2019概述

Archer Lin
雅砌工坊
Published in
5 min readMar 24, 2021

現今大多數的軟體架構是以 APIs 為基礎,從微服務到雲端到 Apps,甚至 SaaS 或 IoT 的領域,無處不圍繞在 APIs 的基礎上,OWASP 也有一專案專門針對 API 列出 Top 10 的資安風險,本篇即對 OWASP API Security Top 10 做一個概述。

Image by OWASP API Security Project

API資安的重要性

在傳統的 Web 應用程式,使用者透過瀏覽器訪問網頁伺服器,多數的「資料處理」都是在伺服器端執行;然而隨著終端設備(如智慧型手機)運算能力的大幅提升,許多邏輯運算逐漸由後端伺服器執行轉變至前端,並透過 API 的形式存取伺服器端的原始資料(Raw Data)至用戶端再做運算處理。然而,這類運用 APIs 存取相關的資安議題卻鮮少有人專門探討,這種稱為「The security of API-Based Applications」或甚至稱為「Modern Application Security」資安議題應運而生。

Image by 42crunch的投影片

我們資安界所熟知的、最新版本的 OWASP Web Top 10 Risks (2017版)仍主要鎖定在傳統Web Apps,與現今諸多以 API 為基礎的 Apps 上有極大的落差。所以 OWASP 於2019年發現此現象,另推出了「API Security Top 10」計畫,目的是在於彌補這個落差並解決我們看到現今軟體興起帶來的問題。

API十大資安風險重點

個人向來喜歡以簡馭繁,經過我消化整理後,整個 OWASP API Security Top 10 我將它統整至一張表格內作呈現。API 前十大風險的中英文描述、說明、舉例和避免方式,我都重點概要的整理至下方一張表格內了,可以放大圖片仔細參酌,在此就不再針對細項一一贅敘。

製表者:Archer Lin (版權所有,無斷轉載禁止)

在我研究過後的心得是,現今 API 最常見的弱點還是「權限控制 (Access Control)」的議題。我們可以看到 OWASP 前十大的 API 風險中,有三大項都是關於「認證和授權 (Authorization & Authentication )」的議題:API1: Broken Object Level Authorization、API2: Broken Authentication 及 API5: Broken Function Level Authorization,因為攻擊面範圍很大,多種可能的身份驗證流程以及可以執行不同授權機制(Code、Configuration、API Gateway)容易造成這資安議題。這在我的資安測試生涯實戰中也獲得印證,我在測試過程中,最常見也最容易被忽略的就是認證和授權相關的弱點,API 認證授權的機制沒有做好,常常稍微觀察一下 API 查詢結構,分析一下所回傳的 JSON 或 XML 欄位格式,再透過編號流水號的猜測和簡單參數竄改,就可以存取到另一個使用者的資料,也就是所謂常存在「權限跨越」的議題;而這往往是自動化弱掃工具極難以偵測與識別的弱點,而需要請資安專家定期做「滲透測試」方能徹底抓漏。

承上所述,我另外發現,API1、API2、API5 這三個議題與 OWASP Web Top 10 Risks 的 A2: Broken Authentication 和 A5: Broken Access Control 有所呼應。而 API3: Excessive Data Exposure 也呼應著 A3: Sensitive Data Exposure。諸如此類的呼應越找越多後,我又做了下表,兩者可以對照著一起研究。

製表者:Archer Lin (版權所有,無斷轉載禁止)

總結

如同開頭說的,隨著行動裝置、終端設備其運算能力的提升,App 服務的盛行,企業架設系統和服務以往傳統都走 Web-Based 的,現在可能都會改以 API-Based 為優先。而 Web Server 已有諸多如 WAF、EDR、NDR 等成熟的資安防禦產品,相對的針對 API Server 的資安設備與產品尚未齊備,故 API 的濫用將會是企業機敏資料洩露的一大隱憂。所以深刻認知這些 API 十大常見風險,甚至透過弱點 API 測試如 crAPI (completely ridiculous API)、REST API Goatdvws-node…等專案實作些攻防演練,早一點認清和管理風險,早一些準備和預防,制敵機先,總是好事一樁。

--

--