你所撰寫的 API 足夠安全嗎 ?
什麼是 API 邏輯漏洞?
所謂的 API 邏輯漏洞指的是 Request 與 Response 之間沒有做關聯性確認。這裡分享兩個真實案例,豐田汽車與全國繳 費網。
第一個案例,研究人員在探索 Toyota 的子域名時,找到多個安全漏洞。發現 Toyota 的 Global Supplier Preparation Information Management System ( GSPIMS ) 存在一個後門登錄機制,只需知道用戶的電子郵件即可登錄,通過修改 JavaScript 代碼,繞過了登錄頁面,並生成有效的 JSON Web Token ( JWT ) 來獲取系統訪問權限。會出現這樣的漏洞在於後端系統只驗證是否輸入電子郵件以及是否為豐田企業的電子郵件,而忽略了是否輸入密碼以及密碼是否與電子郵件有關聯性。 第二個案例,在「全國繳費網」的「繳納貸款」項目裡,發現只需掌握他人的銀行帳號,接著填入自己的身分證字號與銀行帳號,就能將他人的存款轉至自己的帳戶,且被害人不會收到銀行通知。在繳納其他項目時,填上非本人的銀行帳號,都顯示「交易失敗」、「身份證字號或營利事業統一編號錯誤」的訊息,但明顯「繳納貸款」沒有執行該項檢查。
現有的網路設備無法防禦嗎?
API 安全需要一個基於 ML/AI 的資安產品,來保護企業的 API 資產。透過上述的真實案例,我們可以知道現有的 WAF(Web 應用程式防火牆)與 API Gateway 不足以抵禦 API 邏輯漏洞的濫用。
WAF 主要的角色是阻擋惡意 Injection,透過規則來阻擋惡意特徵碼。API Gateway則是扮演驗證授權的角色,需要攜帶有效的 API Auth 才能成功將 Request 送至後端 Server。當駭客的 Request 沒有違反 WAF 與 API Gateway 的規則就可以輕易地抵達後端 Server,而後端 Server 回傳了什麼資料就不被 WAF 與 API Gateway 保護。
一套基於 ML/AI 的資安產品可以有效地偵測出漏洞被濫用的情形。延續豐田汽車的案例,當 ML/AI 發現有少部分的流量在登入豐田汽車的後端平台時,沒有填寫密碼且 Response Code 為 200,這樣的情形與大多數流量並不相符,進而發出告警。
若是像全國繳費網的案例,假設 ML/AI 學習到每個來源 IP 呼叫「繳納貸款」時只輸入一種「轉帳帳號」。這時發現有 IP 呼叫時多次變更「轉帳帳號」,嘗試將他人的存款轉至自己的帳戶,ML/AI 發現這與過往的行為不一致,進而發出告警。

防止可疑 API 流量的最佳實踐
搭配 Akamai API Security 提供全面的 API 可視性和保護:
● 定期盤點 API 資產 : Akamai API Security 能夠找出企業內部的所有 API,特別是對外開放、金流相關、客戶個資相關的 B2B API,提供一份清晰的 API 資產清單。
● API Auth 辨識 : Akamai API Security 能夠辨識出每支 API 的認證授權,提醒用戶需要授權機制的 API,給予授權機制可以有效的預防絕大多數的 API 安全問題。
● 阻擋 Injection : 除了 WAF 與後端 Server 要把關之外,Akamai API Security 也會檢查每個欄位是否有填寫惡意的 Injection。
● 關聯性學習 : Akamai API Security 透過使用者呼叫行為,關注有哪些 Request 的參數影響了 Reponse,當 Request 與 Response 之間的關聯性發生錯誤時,會告知使用者。
● 持續的監控和偵測 : Akamai API Security 落實強大的監控和偵測機制,企業可以主動識別和回應安全威脅,最大限度地降低資料外洩、財務損失和聲譽損害的風險。