2020/03/25
API安全考量大致分成兩類:
1. API濫用
使用者(或APP)可以去呼叫API大量取得資料。
2. API攻擊
所謂的API濫用指的就是,而API攻擊就是注入像是SQL Injection的攻擊語法去攻擊API伺服器,藉此取得相關的主機權限。
CVE-2018-1258
CVE-2018-1260
「A2:無效認證與授權」(Broken Authentication):
意指API平台未做好身份認證管理,導致攻擊者可以輕易登入系統,有機會暫時或永久取得使用者 ID,類似預設密碼、弱密碼概念,在未經授權下進入後台服務,擅自修改平台參數、進行不當操作、建立 Botnet 中繼站等。
ex. OAuth2 issue / Bypass Attack
OWASP API Security
「A1:無效的對象層級授權」(Broken Object Level Authorization):意指攻擊者利用後臺權限控管的漏洞能輕易轉換權限,初次通過身份驗證後,不需經過再次驗證即可調用其他使用者的資料。擅自修改為 001、002、003…等等用戶的編號,佯裝為不同身份,任意存取各個使用者的機敏資料。有些案例甚至可以做到「垂直提權」取得管理者身分,造成重大危害。
ex. Permission Issue / 提權攻擊(水平, 垂直)
OWASP API Security
「A4:缺乏與存取速率的不足」(Lack of Resource and Rate Limiting): 意指 API平台對使用者請求的資源數量、請求次數多寡未施加任何限制,或是連接程式發生錯誤,可能導致 API 發佈過多封包、變相釀成 DDoS 攻擊,造成服務停擺。
ex. Performance Issue / 壓力測試
OWASP API Security
「A10:記錄和監控機制不足」(Insufficient Logging & Monitoring):當API平台遇到攻擊行為的時候,能否偵測並且有效應對,例如,當發現外部有人正在掃描攻擊時,使用者是否可以針對這些攻擊「感知」並且做到「阻擋」。此外使用記錄可以作為行為模式分析之用,以作為持續精進防護原則依據。建議留存紀錄至少180天。
ex. Log Traceback capability / 輔助緊急事件回應處置
OWASP API Security
CVE.mitre.org
行政院資安通報
Product Security Advisories
避免受害者反變為加害者 ex.DDoS
早期發現,早期治療
使用總量分析 (TopN)
下載資料種類與身份勾稽分析
使用頻率分析
{
"version":"None",
"data":{
},
"errors":[
{
"error_code":401,
"description":"Unauthorized",
"details":[
"Unknown API key or Client ID"
]
}
]
}
減少可識別或可推測的錯誤回應資訊
{
"result":"200",
"documentation":"https://www.exchangerate-api.com/docs",
"terms_of_use":"https://www.exchangerate-api.com/terms",
"time_zone":"UTC",
"time_last_update":1585094402,
"time_next_update":1585180922,
"base":"USD",
"conversion_rates":{
"USD":1,
"AED":3.6719,
"ARS":63.7830,
}
}