應(yīng)用程序編程接口(API)已成為將當(dāng)今APP經(jīng)濟(jì)的粘合劑,同時(shí)也正在成為黑客攻擊的頭號(hào)目標(biāo)。API的運(yùn)行方式與URL的運(yùn)行方式大致相同,用戶使用Web搜索時(shí),頁面展示結(jié)果是動(dòng)態(tài)的,以手機(jī)銀行應(yīng)用程序?yàn)槔?,API也以類似的方式運(yùn)行,它可以獲取用戶的姓名、賬號(hào)和賬戶余額,并相應(yīng)地填充交互頁面中的字段。但API更容易受到攻擊者的青睞,因?yàn)锳PI包括所有安全檢查,并且通常直接與后端服務(wù)通信。
應(yīng)用程序安全方面一直存在一個(gè)問題:輸入驗(yàn)證。如果沒有適當(dāng)?shù)墓δ芎桶踩珳y(cè)試,API可能會(huì)成為一個(gè)完美的攻擊點(diǎn)。因?yàn)锳PI受應(yīng)用程序信任,可以進(jìn)行高速、海量數(shù)據(jù)交換。
三類常見的API漏洞
通過對(duì)大量應(yīng)用程序安全市場(chǎng)客戶的調(diào)查,并參考開放Web應(yīng)用程序安全項(xiàng)目(OWASP)后,調(diào)查人員匯總了以下三類最常見的API漏洞:
Broken Object Level Authorization(BOLA):BOLA的通俗定義是對(duì)對(duì)象訪問請(qǐng)求的驗(yàn)證不充分,它允許攻擊者通過重用訪問令牌來執(zhí)行未經(jīng)授權(quán)的操作。Peloton事件是最近諸多BOLA利用中比較有名的一個(gè)案例,攻擊者可以查看包括標(biāo)有私人事件在內(nèi)的,幾乎所有用戶的個(gè)人資料。此類攻擊可能影響到從開發(fā)到運(yùn)營,再到營銷和公共關(guān)系的每個(gè)業(yè)務(wù)組。
無效的用戶身份驗(yàn)證:此類漏洞的準(zhǔn)確定義是“身份驗(yàn)證機(jī)制中的實(shí)施缺陷”,允許攻擊者冒充合法用戶。這里關(guān)聯(lián)兩種常見的漏洞利用類型:第一個(gè)是由自動(dòng)化機(jī)器人執(zhí)行的憑證填充。查找有用戶身份驗(yàn)證缺陷的API是自動(dòng)攻擊的理想目標(biāo)。此漏洞的更復(fù)雜用途是進(jìn)行偵察,以確定API的工作方式。例如我們輸入“a a.com/”密碼的用戶名/密碼組合,應(yīng)用程序顯示“密碼無效”,那么攻擊者就會(huì)知道用戶名是有效的。攻擊者將使用此數(shù)據(jù)點(diǎn)來增加憑證填充(或其他類型的攻擊)成功的機(jī)會(huì)。
資產(chǎn)管理不當(dāng):此API缺陷是環(huán)境隔離和管理不足的結(jié)果,允許攻擊者訪問安全性不足的API端點(diǎn)。在農(nóng)機(jī)企業(yè)約翰迪爾的安全事件中,可能就是由于開發(fā)人員API無需編輯即可訪問生產(chǎn)數(shù)據(jù),進(jìn)而暴露了約翰迪爾客戶的系統(tǒng)。屬于此類別的其他漏洞還包括未監(jiān)控開發(fā)API中的敏感數(shù)據(jù),以及讓已棄用的仍API處于在線或公開狀態(tài)。
目前API安全事件層出不窮,無論企業(yè)用戶使用的是API優(yōu)先方法,還是剛剛開始由API輔助的數(shù)字化轉(zhuǎn)型之旅,了解API存在的漏洞以及相關(guān)風(fēng)險(xiǎn)都是至關(guān)重要的。