API的安全危機(jī)

aqniu
互聯(lián)網(wǎng)商業(yè)創(chuàng)新和傳統(tǒng)企業(yè)數(shù)字化轉(zhuǎn)型都離不開(kāi)API經(jīng)濟(jì)或API戰(zhàn)略,可以說(shuō),API就是傳統(tǒng)行業(yè)價(jià)值鏈全面數(shù)字化的關(guān)鍵環(huán)節(jié),API連接的已經(jīng)不僅僅是系統(tǒng)和數(shù)據(jù),還有企業(yè)內(nèi)部職能部門(mén)、客戶(hù)和合作伙伴,甚至整個(gè)商業(yè)生態(tài)(行業(yè)和市場(chǎng))。

安全牛點(diǎn)評(píng):互聯(lián)網(wǎng)商業(yè)創(chuàng)新和傳統(tǒng)企業(yè)數(shù)字化轉(zhuǎn)型都離不開(kāi)API經(jīng)濟(jì)或API戰(zhàn)略,可以說(shuō),API就是傳統(tǒng)行業(yè)價(jià)值鏈全面數(shù)字化的關(guān)鍵環(huán)節(jié),API連接的已經(jīng)不僅僅是系統(tǒng)和數(shù)據(jù),還有企業(yè)內(nèi)部職能部門(mén)、客戶(hù)和合作伙伴,甚至整個(gè)商業(yè)生態(tài)(行業(yè)和市場(chǎng))。但是API面臨的安全威脅,卻很容易被決策者忽視或輕視。本文介紹了API面臨的安全威脅,以及相關(guān)軟件開(kāi)發(fā)、運(yùn)營(yíng)和保護(hù)解決方案。

API為軟件和開(kāi)發(fā)社區(qū)帶來(lái)許多便利和好處,例如文檔完備、可公開(kāi)獲取、標(biāo)準(zhǔn)化、無(wú)處不在、高效且易于使用等。現(xiàn)在,攻擊者正利用API來(lái)實(shí)施自動(dòng)化的“高效攻擊”,從Web應(yīng)用程序到云計(jì)算服務(wù)都是目標(biāo)。例如,我們知道開(kāi)發(fā)人員可以使用API將諸如Web注冊(cè)表單之類(lèi)的資源連接到許多不同的后端系統(tǒng)。但是,包括后端更新等任務(wù)的靈活性也為自動(dòng)攻擊提供了機(jī)會(huì)。

API的安全難題或者說(shuō)悖論在于,盡管大多數(shù)安全從業(yè)者會(huì)建議隱藏資源減少暴露面和攻擊面,但業(yè)務(wù)上成功部署的API卻傾向使資源更加開(kāi)放和可用。API的安全困局實(shí)際上也是現(xiàn)代IT面臨的一個(gè)共性問(wèn)題。對(duì)于安全團(tuán)隊(duì)而言,這意味著制定平衡的、良好的API風(fēng)險(xiǎn)緩解策略尤為重要。

圖示:API面臨的安全威脅

OWASP清單:十大API安全風(fēng)險(xiǎn)

除了專(zhuān)注于通用軟件應(yīng)用程序的安全風(fēng)險(xiǎn)外,OWASP還為API開(kāi)發(fā)人員提供了有用的指導(dǎo),以降低其實(shí)施中的安全風(fēng)險(xiǎn)。鑒于OWASP組織在軟件社區(qū)中的突出地位,我們?cè)谶@里有必要回顧一下2019年OWASP 10大API安全風(fēng)險(xiǎn)(內(nèi)容取自O(shè)WASP網(wǎng)站):

01、損壞的對(duì)象級(jí)別授權(quán)

API傾向于暴露那些處理對(duì)象識(shí)別的端點(diǎn),造成了廣泛的攻擊面訪(fǎng)問(wèn)控制問(wèn)題。在每個(gè)能夠訪(fǎng)問(wèn)用戶(hù)輸入數(shù)據(jù)的功能中,都應(yīng)考慮對(duì)象級(jí)別授權(quán)檢查。

02、損壞的用戶(hù)身份驗(yàn)證

身份驗(yàn)證機(jī)制通常實(shí)施不正確,從而使攻擊者可以破壞身份驗(yàn)證令牌或利用實(shí)施缺陷來(lái)臨時(shí)或永久地假冒其他用戶(hù)的身份。損害系統(tǒng)識(shí)別客戶(hù)端/用戶(hù)的能力會(huì)整體損害API安全性。

03、數(shù)據(jù)泄露過(guò)多

開(kāi)發(fā)人員傾向于公開(kāi)所有對(duì)象屬性而不考慮其個(gè)體敏感性,依靠客戶(hù)端執(zhí)行數(shù)據(jù)過(guò)濾并顯示。

04、缺乏資源和速率限制

通常,API不會(huì)對(duì)客戶(hù)端/用戶(hù)可以請(qǐng)求的資源大小或數(shù)量施加任何限制。這不僅會(huì)影響API服務(wù)器的性能,從而導(dǎo)致拒絕服務(wù)(DoS),而且還為諸如暴力破解之類(lèi)的身份驗(yàn)證漏洞敞開(kāi)了大門(mén)。

05、功能級(jí)別授權(quán)已損壞

具有不同層級(jí)、分組和角色的復(fù)雜訪(fǎng)問(wèn)控制策略,以及管理功能和常規(guī)功能之間的模糊不清,往往會(huì)導(dǎo)致授權(quán)缺陷。通過(guò)利用這些問(wèn)題,攻擊者可以訪(fǎng)問(wèn)其他用戶(hù)的資源和/或管理功能。

06、批量分配

將客戶(hù)端提供的數(shù)據(jù)(例如JSON)綁定到數(shù)據(jù)模型,而沒(méi)有基于白名單的適當(dāng)屬性過(guò)濾,通常會(huì)導(dǎo)致批量分配。無(wú)論是猜測(cè)對(duì)象屬性、瀏覽其他API端點(diǎn)、閱讀文檔或在請(qǐng)求有效負(fù)載中提供其他對(duì)象屬性,都是攻擊者可以修改權(quán)限之外的對(duì)象屬性。

07、安全性配置錯(cuò)誤

最常見(jiàn)的安全配置錯(cuò)誤是不安全的默認(rèn)配置、不完整或臨時(shí)配置、開(kāi)放的云存儲(chǔ)、錯(cuò)誤配置的HTTP標(biāo)頭,不必要的HTTP方法、跨域資源共享(CORS)以及包含敏感信息的冗長(zhǎng)錯(cuò)誤消息導(dǎo)致的。

08、注入

當(dāng)不受信任的數(shù)據(jù)作為命令或查詢(xún)的一部分發(fā)送到解釋器時(shí)會(huì)發(fā)生注入缺陷,例如SQL、NoSQL的命令注入等。攻擊者的惡意數(shù)據(jù)可能會(huì)誘使解釋器執(zhí)行非預(yù)期的命令,或未經(jīng)授權(quán)訪(fǎng)問(wèn)數(shù)據(jù)。

09、資產(chǎn)管理不當(dāng)

與傳統(tǒng)的Web應(yīng)用程序相比,API傾向于公開(kāi)更多的端點(diǎn),這使得文檔的準(zhǔn)確性和及時(shí)更新顯得尤為重要。健康的主機(jī)和最新的API版本能夠有效減輕諸如API版本過(guò)期以及調(diào)試端點(diǎn)暴露之類(lèi)的安全問(wèn)題。

10、日志和監(jiān)控不足

日志和監(jiān)控不足,再加上事件響應(yīng)的缺失或無(wú)效集成,使攻擊者可以進(jìn)一步攻擊系統(tǒng),長(zhǎng)期駐留,并橫向移動(dòng)到更多系統(tǒng)以篡改、提取或破壞數(shù)據(jù)。大量入侵調(diào)查研究表明,檢測(cè)到入侵的平均時(shí)間超過(guò)200天,而且入侵檢測(cè)警告通常來(lái)自外部第三方,而不是企業(yè)內(nèi)部安全流程或監(jiān)控來(lái)檢測(cè)。

API的五個(gè)通用安全要求

正如OWASP清單所示,網(wǎng)絡(luò)安全社區(qū)開(kāi)始發(fā)現(xiàn),面向公眾的API往往暴露出大量常見(jiàn)的規(guī)范問(wèn)題。以下是針對(duì)API的五項(xiàng)通用網(wǎng)絡(luò)安全要求,這些要求適用于從傳統(tǒng)軟件到互聯(lián)網(wǎng)新應(yīng)用的各個(gè)領(lǐng)域:

能見(jiàn)度

關(guān)于A(yíng)PI可見(jiàn)性的諺語(yǔ)是:知識(shí)就是力量。應(yīng)用程序開(kāi)發(fā)人員和用戶(hù)需要知道正在發(fā)布哪些API、如何以及何時(shí)更新它們、誰(shuí)在訪(fǎng)問(wèn)它們以及如何訪(fǎng)問(wèn)它們。了解用戶(hù)的API使用范圍是確保API安全的第一步。

訪(fǎng)問(wèn)控制

API訪(fǎng)問(wèn)權(quán)限通常是不受?chē)?yán)格控制的,這可能導(dǎo)致意外暴露。確保向不同用戶(hù)授予適當(dāng)?shù)腁PI訪(fǎng)問(wèn)權(quán)限是一項(xiàng)至關(guān)重要的安全要求,訪(fǎng)問(wèn)者必須與企業(yè)的身份和訪(fǎng)問(wèn)管理(IAM)系統(tǒng)進(jìn)行協(xié)調(diào)。

Bot緩解措施

在某些環(huán)境中,多達(dá)90%的應(yīng)用程序流量(例如,賬戶(hù)登錄或注冊(cè)、購(gòu)物車(chē)結(jié)賬)是由自動(dòng)化Bot生成的。必須了解和管理流量配置文件,包括區(qū)分好Bot和壞Bot,防止自動(dòng)攻擊的同時(shí)又不會(huì)阻止合法流量。有效的補(bǔ)充措施包括實(shí)施Bot白名單、黑名單和速率限制策略,以及特定于用例和相應(yīng)API端點(diǎn)的地理圍欄。

防止漏洞利用

API通過(guò)消除Web表單或移動(dòng)應(yīng)用程序來(lái)簡(jiǎn)化攻擊過(guò)程,從而使攻擊者更容易利用目標(biāo)漏洞。因此,保護(hù)API端點(diǎn)免遭業(yè)務(wù)邏輯濫用和其他漏洞利用是關(guān)鍵的API安全緩解要求。

數(shù)據(jù)防泄漏

防止由于編程錯(cuò)誤或安全控制漏洞而產(chǎn)生的API暴露或非授權(quán)訪(fǎng)問(wèn),是防止數(shù)據(jù)泄露或丟失的一項(xiàng)至關(guān)重要的安全要求。許多API攻擊都是專(zhuān)門(mén)為獲取對(duì)后端服務(wù)器和系統(tǒng)提供的關(guān)鍵數(shù)據(jù)的訪(fǎng)問(wèn)而設(shè)計(jì)的。

API社區(qū)繼續(xù)致力于就最佳安全方法達(dá)成更標(biāo)準(zhǔn)化的協(xié)議。例如OAUTH之類(lèi)的行業(yè)組織提出了非常有用的API安全性標(biāo)準(zhǔn)要求。最可能的進(jìn)展是,軟件安全社區(qū)將在未來(lái)幾年中繼續(xù)完善其對(duì)各種API安全要求的理解和見(jiàn)解。因此,我們有望看到這一領(lǐng)域的持續(xù)發(fā)展。

API安全方法

API濫用實(shí)例

API的自身設(shè)計(jì)決定了它是無(wú)狀態(tài)的,假定初始請(qǐng)求和響應(yīng)都是獨(dú)立的,且并包含完成任務(wù)所需的所有信息。無(wú)論是直接訪(fǎng)問(wèn),或作為移動(dòng)或Web應(yīng)用程序的一部分對(duì)API進(jìn)行調(diào)用,都可以改善用戶(hù)體驗(yàn)和整體性能。但攻擊者也很容易編寫(xiě)腳本并自動(dòng)執(zhí)行攻擊,如以下兩個(gè)示例:

賬戶(hù)接管和浪漫欺詐:Zoosk是一個(gè)著名的約會(huì)應(yīng)用程序。攻擊者反編譯了Zoosk應(yīng)用程序以發(fā)現(xiàn)賬戶(hù)登錄API。然后,他們使用自動(dòng)化攻擊工具包執(zhí)行賬戶(hù)接管攻擊。在某些情況下,被盜用的賬戶(hù)被用來(lái)與其他Zoosk用戶(hù)建立發(fā)展個(gè)人關(guān)系網(wǎng)絡(luò),當(dāng)家庭成員突然死亡或生病時(shí),攻擊者會(huì)借機(jī)向聯(lián)系人索要錢(qián)財(cái)實(shí)施詐騙,毫無(wú)戒心的用戶(hù)通常會(huì)將錢(qián)捐給攻擊者。在實(shí)施Cequence之前,Zoosk的感情詐騙平均每次作案獲取的收益高達(dá)1.2萬(wàn)美元。現(xiàn)在,隨著API安全的加強(qiáng),此類(lèi)攻擊幾乎消失,Zoosk不但大大增強(qiáng)了用戶(hù)的信心還提高了品牌知名度。

賬戶(hù)接管和財(cái)務(wù)欺詐:API成為自動(dòng)攻擊目標(biāo)的另一個(gè)案例是某大型金融服務(wù)客戶(hù)。該客戶(hù)發(fā)現(xiàn)攻擊者鎖定其移動(dòng)應(yīng)用程序登錄API環(huán)節(jié)來(lái)執(zhí)行賬戶(hù)接管。如果成功,攻擊者可通過(guò)開(kāi)放資金轉(zhuǎn)賬(OFX)API進(jìn)行轉(zhuǎn)賬,實(shí)施財(cái)務(wù)欺詐。而OFX是用于在金融服務(wù)社區(qū)內(nèi)進(jìn)行資金轉(zhuǎn)移的行業(yè)標(biāo)準(zhǔn)API,因此,這些API是公開(kāi)可用的,并且文檔齊全,以方便使用。

API的無(wú)處不在和無(wú)狀態(tài)本質(zhì)在許多方面都是有益的,但是它們也帶來(lái)了傳統(tǒng)安全技術(shù)無(wú)法解決的眾多挑戰(zhàn)。API沒(méi)有客戶(hù)端組件,因此傳統(tǒng)的防御技術(shù)(如Captchas或JavaScript)和移動(dòng)SDK工具無(wú)法有效地防止自動(dòng)攻擊。通常,重定向和cookie分配并沒(méi)有指定的瀏覽器或者移動(dòng)應(yīng)用,結(jié)果是API和關(guān)聯(lián)的應(yīng)用程序未受到充分保護(hù)。

THEEND

最新評(píng)論(評(píng)論僅代表用戶(hù)觀(guān)點(diǎn))

更多
暫無(wú)評(píng)論