API 安全考量

API Security Considerations

2020/03/25

API攻擊方法

API安全考量大致分成兩類:

 

1. API濫用

使用者(或APP)可以去呼叫API大量取得資料。

 

2. API攻擊

所謂的API濫用指的就是,而API攻擊就是注入像是SQL Injection的攻擊語法去攻擊API伺服器,藉此取得相關的主機權限。

常見API平台弱點

CVE-2018-1258

CVE-2018-1260

常見API平台弱點(A2)

 

「A2:無效認證與授權」(Broken Authentication):

意指API平台未做好身份認證管理,導致攻擊者可以輕易登入系統,有機會暫時或永久取得使用者 ID,類似預設密碼、弱密碼概念,在未經授權下進入後台服務,擅自修改平台參數、進行不當操作、建立 Botnet 中繼站等。

 

ex. OAuth2 issue / Bypass Attack

 

OWASP API Security

https://owasp.org/www-project-api-security/

常見API平台弱點(A1)

 

「A1:無效的對象層級授權」(Broken Object Level Authorization):意指攻擊者利用後臺權限控管的漏洞能輕易轉換權限,初次通過身份驗證後,不需經過再次驗證即可調用其他使用者的資料。擅自修改為 001、002、003…等等用戶的編號,佯裝為不同身份,任意存取各個使用者的機敏資料。有些案例甚至可以做到「垂直提權」取得管理者身分,造成重大危害。

 

ex. Permission Issue / 提權攻擊(水平, 垂直)

 

OWASP API Security

https://owasp.org/www-project-api-security/

常見API平台弱點(A4)

 

「A4:缺乏與存取速率的不足」(Lack of Resource and Rate Limiting): 意指 API平台對使用者請求的資源數量、請求次數多寡未施加任何限制,或是連接程式發生錯誤,可能導致 API 發佈過多封包、變相釀成 DDoS 攻擊,造成服務停擺

 

ex. Performance Issue / 壓力測試

 

OWASP API Security

https://owasp.org/www-project-api-security/

常見API平台弱點(A10)

 

「A10:記錄和監控機制不足」(Insufficient Logging & Monitoring):當API平台遇到攻擊行為的時候,能否偵測並且有效應對,例如,當發現外部有人正在掃描攻擊時,使用者是否可以針對這些攻擊「感知」並且做到「阻擋」。此外使用記錄可以作為行為模式分析之用,以作為持續精進防護原則依據。建議留存紀錄至少180

 

ex. Log Traceback capability / 輔助緊急事件回應處置

 

OWASP API Security

https://owasp.org/www-project-api-security/

常見弱點追蹤

 

CVE.mitre.org

行政院資安通報

Product Security Advisories

 

避免受害者反變為加害者     ex.DDoS

早期發現,早期治療

API使用異常行為分析

 

使用總量分析 (TopN)

下載資料種類與身份勾稽分析

使用頻率分析

API Design : Error Handling

{
   "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,

   }
}

不良API安全的案例研究

不良API安全的案例研究