API在公司全业务快速使用给信息安全带来了巨大挑战
(一) API防護(hù)缺失已成數(shù)據(jù)安全最大風(fēng)險(xiǎn)敞口
根據(jù) Imvision 發(fā)布的《Enterprise API Security Survey》報(bào)告中,80%的企業(yè)通過(guò)外部 API提供數(shù)據(jù)訪問(wèn),企業(yè)利用的 API多種 多樣,其中內(nèi)部 API 的使用最普遍,即組織的開(kāi)發(fā)人員內(nèi)部使用的 API(71%的公司采取這種方式)。其次,B2B的外部 API(組織為其 業(yè)務(wù)合作伙伴開(kāi)放的私有 API)占 63%,B2C的外部 API(消費(fèi)者通過(guò) 移動(dòng)應(yīng)用程序使用的私有 API)占 53%。一般來(lái)說(shuō),80%的組織允許合 作伙伴(B2B)或用戶(B2C)通過(guò)外部 API訪問(wèn)其數(shù)據(jù)。
———數(shù)據(jù)來(lái)自 Imvision:《Enterprise API Security Survey》報(bào)告
在國(guó)內(nèi),隨著 5G、云計(jì)算、物聯(lián)網(wǎng)的快速發(fā)展,加速了 API在各 領(lǐng)域的應(yīng)用,目前已經(jīng)在物聯(lián)網(wǎng)、微服務(wù)、云原生等場(chǎng)景都得到了非 常廣闊的應(yīng)用。隨著 5G、物聯(lián)網(wǎng)技術(shù)落地,人類正進(jìn)入萬(wàn)物互聯(lián)時(shí)代, 從 IaaS 到 PaaS、SaaS,從 PC到移動(dòng) APP、各種 IoT 設(shè)備,API將無(wú) 處不在。
根據(jù) Akamai的一項(xiàng)統(tǒng)計(jì),API請(qǐng)求已占所有應(yīng)用請(qǐng)求的 83%,預(yù)計(jì) 2024 年 API 請(qǐng)求命中數(shù)將達(dá)到 42 萬(wàn)億次,但 API 安全威脅卻比 API 調(diào)用增長(zhǎng)更迅猛。API 安全公司 Salt Security 發(fā)布的《State of API Security Report, Q3 2021》報(bào)告指出,針對(duì)應(yīng)用程序編程 接口的攻擊流量正在以普通 API流量的三倍速度增長(zhǎng)。報(bào)告發(fā)現(xiàn),安 全問(wèn)題在 API項(xiàng)目關(guān)注的名單中名列前茅,很少有受訪者認(rèn)為他們有 信心識(shí)別和阻止 API攻擊。
隨著 API在各種應(yīng)用場(chǎng)景的廣泛,近兩年來(lái)因 API安全問(wèn)題導(dǎo)致 的數(shù)據(jù)泄漏事件頻頻發(fā)生。國(guó)外,2021 年 4 月,Facebook 平臺(tái)上的 5 億用戶數(shù)據(jù)泄漏,涉及信息包括用戶昵稱、郵箱、電話、家庭住址 等信息,事后判定為某在線業(yè)務(wù)的 API遭到誤用,導(dǎo)致數(shù)據(jù)泄漏;國(guó) 內(nèi),2021 年 6 月,著名社交平臺(tái) LinkedIn(領(lǐng)英),有超過(guò) 7 億用 戶數(shù)據(jù)在暗網(wǎng)被出售,涉及用戶的全名、性別、郵件以及電話號(hào)碼、 工作職業(yè)等相關(guān)個(gè)人信息。據(jù)悉,部分?jǐn)?shù)據(jù)也是通過(guò) API 泄漏獲取。 層出不窮的數(shù)據(jù)泄漏事件也給數(shù)字化轉(zhuǎn)型中的企業(yè)帶來(lái)巨大風(fēng)險(xiǎn)和 巨額損失的可能性。據(jù) IBM 《數(shù)據(jù)泄漏成本報(bào)告》統(tǒng)計(jì),數(shù)據(jù)泄漏的 平均成本為 386 萬(wàn)美元;涉及超過(guò) 5000 萬(wàn)條消費(fèi)者記錄時(shí),補(bǔ)救成 本可能高達(dá) 3.92 億美元。
API承載了應(yīng)用各組件間數(shù)據(jù)的流動(dòng),成為數(shù)據(jù)交互最重要的傳 輸方式之一,也因此成為攻擊者竊取數(shù)據(jù)的重點(diǎn)攻擊對(duì)象。與此同時(shí), 由于 API防護(hù)的缺失,組織對(duì)外暴露了哪些 API、對(duì)誰(shuí)開(kāi)放、API通 信中攜帶了哪些敏感數(shù)據(jù)、對(duì)方如何使用這些數(shù)據(jù)等問(wèn)題都未得到應(yīng) 有的重視。攻擊者可以通過(guò)后端業(yè)務(wù)系統(tǒng)漏洞、接口暴露、安全配置 缺陷等直接攻擊 API進(jìn)行數(shù)據(jù)竊取,還可以利用 API的參數(shù)組合及各 參數(shù)值類型相對(duì)固定進(jìn)行注入類攻擊或通過(guò)參數(shù)與用戶身份進(jìn)行關(guān) 聯(lián)進(jìn)行越權(quán)類攻擊。面對(duì) API 安全威脅不斷復(fù)雜化、多樣化的趨勢(shì), 政府與企業(yè)等的數(shù)字化系統(tǒng)正在面臨來(lái)自多方面嚴(yán)峻的安全挑戰(zhàn)。
(二) API安全面臨的主要安全問(wèn)題
對(duì)企業(yè)內(nèi)外已上線的 API 未做好全面的資產(chǎn)統(tǒng)計(jì)工作,導(dǎo)致企業(yè) 對(duì) API 進(jìn)行安全測(cè)評(píng)時(shí)遺漏了部分資產(chǎn)或長(zhǎng)期未對(duì)相關(guān)應(yīng)用進(jìn)行維 護(hù)。一旦某類 API框架型漏洞爆發(fā)或被黑客入侵時(shí)無(wú)法及時(shí)定位到相 關(guān)應(yīng)用節(jié)點(diǎn),將錯(cuò)過(guò)最佳的應(yīng)急響應(yīng)時(shí)間。
高頻訪問(wèn)行為:API接口在設(shè)計(jì)之初未對(duì) API接口訪問(wèn)頻率做限 制,使部分用戶在短時(shí)間內(nèi)可以訪問(wèn)大量 API接口,造成 API接口訪 問(wèn)頻率過(guò)高,容易引起 API接口不穩(wěn)定等風(fēng)險(xiǎn)。此外,當(dāng)訪問(wèn) API接 口時(shí),API 接口數(shù)據(jù)緩存在瀏覽器中,容易造成大量敏感數(shù)據(jù)泄漏。
大量數(shù)據(jù)下載行為:API 接口未對(duì)用戶某個(gè)時(shí)段內(nèi)的下載次數(shù)、 下載內(nèi)容大小等做限制,導(dǎo)致用戶可以通過(guò)多次下載達(dá)到獲取大量數(shù) 據(jù)的目的,容易造成大量敏感數(shù)據(jù)泄漏、隱私數(shù)據(jù)被販賣(mài)等危險(xiǎn)。
網(wǎng)絡(luò)爬蟲(chóng)行為:如果將 API接口開(kāi)放到公網(wǎng)上,且未設(shè)置反爬蟲(chóng) 機(jī)制,則攻擊者可以使用假 IP 或修改 User-Agent 請(qǐng)求頭隱匿身份, 通過(guò)信息收集獲取企業(yè)內(nèi)部系統(tǒng)賬號(hào),利用網(wǎng)絡(luò)爬蟲(chóng)爬取賬號(hào)權(quán)限以 及開(kāi)放在公網(wǎng)上所有的 API接口數(shù)據(jù),導(dǎo)致大量數(shù)據(jù)泄漏。
隨著云計(jì)算技術(shù)的廣泛應(yīng)用,越來(lái)越多的 SaaS 被遷移上云,在 為更多的用戶提供服務(wù)的同時(shí),也將 API暴露到云上。相較于傳統(tǒng)數(shù) 據(jù)中心的單點(diǎn)調(diào)用,東西向和南北向都可能成為 API的攻擊面。
單體應(yīng)用的場(chǎng)景下,入口點(diǎn)只有一個(gè),所有的請(qǐng)求都會(huì)從這個(gè)入
口點(diǎn)進(jìn)來(lái),在這個(gè)入口點(diǎn)去建立一組訪問(wèn)控制或者安全防護(hù)點(diǎn),就可 以控制所有的風(fēng)險(xiǎn)。而在微服務(wù)場(chǎng)景下,業(yè)務(wù)邏輯不是在一個(gè)單一的 進(jìn)程里,而是分散在很多進(jìn)程里。每一個(gè)進(jìn)程都有自己的入口點(diǎn),導(dǎo) 致需要防范的攻擊面比原來(lái)大得多。
某些 API 在設(shè)計(jì)之初由于未充分考慮用戶群體或者具體的使用 場(chǎng)景而未進(jìn)行身份認(rèn)證。身份認(rèn)證的缺失導(dǎo)致相關(guān) API 可被任意訪 問(wèn),若相關(guān) API涉及敏感數(shù)據(jù)則會(huì)埋下嚴(yán)重的數(shù)據(jù)泄漏的隱患。
API 的參數(shù)組合及各參數(shù)值類型相對(duì)固定,這些參數(shù)也決定著 API返回的數(shù)據(jù)。若 API未對(duì)參數(shù)值的類型進(jìn)行校驗(yàn)則可能會(huì)被攻擊 者利用來(lái)進(jìn)行注入類攻擊;若攻擊者未將參數(shù)與用戶身份進(jìn)行關(guān)聯(lián)則 可能會(huì)導(dǎo)致越權(quán)類攻擊。
API未對(duì)傳輸數(shù)據(jù)進(jìn)行加密設(shè)計(jì)而直接進(jìn)行明文傳輸,攻擊者可 通過(guò)網(wǎng)絡(luò)嗅探等手段直接獲取 API的交互格式以及數(shù)據(jù),通過(guò)對(duì)獲取 的數(shù)據(jù)進(jìn)行分析,并進(jìn)行下一步的攻擊。
有判斷數(shù)據(jù)的所屬對(duì)象,致使用戶 A可以訪問(wèn)到屬于同一角色的用戶 B的數(shù)據(jù)。
垂直越權(quán),由于服務(wù)端沒(méi)有設(shè)置權(quán)限控制或權(quán)限控制存在缺陷,
導(dǎo)致惡意用戶只要猜測(cè)到管理頁(yè)面的 URL地址或者某些用于標(biāo)識(shí)用 戶角色的參數(shù)信息等,就可以訪問(wèn)或控制其他角色擁有的數(shù)據(jù),達(dá)到 權(quán)限提升的目的。
數(shù)據(jù)權(quán)限,某些 API在設(shè)計(jì)時(shí)為兼容多個(gè)功能會(huì)將過(guò)多的數(shù)據(jù)雜 糅到一起返回至前端,然后由前端去篩選相關(guān)的數(shù)據(jù)。這導(dǎo)致 API返 回過(guò)多的數(shù)據(jù),攻擊者可通過(guò)流量攔截等手段獲取 API原始返回的數(shù) 據(jù),從而存在數(shù)據(jù)泄漏的隱患。
配置、不完整的臨時(shí)配置、開(kāi)源云存儲(chǔ)等,例如,錯(cuò)誤的 HTTP標(biāo)頭 配置以及包含敏感信息的詳細(xì)錯(cuò)誤信息等問(wèn)題所造成的。
為 API帶來(lái)嚴(yán)重安全隱患。不法分子可通過(guò)安全漏洞、惡性 Bug 等因 素獲取敏感信息、造成服務(wù)器失陷。
用的開(kāi)源軟件或模塊存在安全問(wèn)題時(shí),勢(shì)必會(huì)導(dǎo)致代碼中的漏洞、惡 意代碼、“后門(mén)”等安全隱患被引入至 API接口中。
網(wǎng)環(huán)境進(jìn)行探測(cè)、攻擊內(nèi)網(wǎng)/外網(wǎng)中的其他應(yīng)用以及讀取服務(wù)器中的 敏感信息等。
注入:該類型漏洞通常可以分為 SQL注入、代碼注入以及命令 注入等,這種類型的漏洞危害性極高,可能導(dǎo)致的后果包括但不限于 敏感信息泄漏、服務(wù)器淪陷,一旦被利用給企業(yè)帶來(lái)的損失無(wú)可估量。
安全配置錯(cuò)誤:配置錯(cuò)誤可以發(fā)生在一個(gè)應(yīng)用的任何層面,包括 平臺(tái)、Web 服務(wù)器、數(shù)據(jù)庫(kù)、容器等。比如應(yīng)用報(bào)錯(cuò)信息未處理直接 返回給調(diào)用端導(dǎo)致敏感信息泄漏。
認(rèn)證和授權(quán)失敗:用戶的身份驗(yàn)證、身份管理和會(huì)話管理失敗, 會(huì)產(chǎn)生與身份驗(yàn)證相關(guān)的攻擊,例如:使用弱或無(wú)效的憑據(jù)恢復(fù)和 忘記密碼流程、使用純文本、加密或弱散列密碼、用戶會(huì)話或身份 驗(yàn)證令牌在注銷或一段時(shí)間不活動(dòng)期間未正確失效。
失效的訪問(wèn)控制:訪問(wèn)控制執(zhí)行策略失效,可以使用戶在其預(yù) 期權(quán)限之外進(jìn)行功能操作或數(shù)據(jù)訪問(wèn)。策略失效通常會(huì)導(dǎo)致未經(jīng)授 權(quán)的信息泄漏、修改或破壞所有數(shù)據(jù)或執(zhí)行超出用戶限制的業(yè)務(wù)功 能。例如:特權(quán)提升、強(qiáng)制以未經(jīng)身份驗(yàn)證的用戶身份瀏覽經(jīng)過(guò)身 份驗(yàn)證的頁(yè)面或以標(biāo)準(zhǔn)用戶身份瀏覽特權(quán)頁(yè)面。
加密失效:可能導(dǎo)致用戶憑證未加密傳輸或密文容易被破解,例 如傳輸層沒(méi)有使用 TLS加密導(dǎo)致嗅探、中間人劫持攻擊。
未授權(quán)漏洞:一般是由于認(rèn)證機(jī)制存在漏洞導(dǎo)致身份認(rèn)證過(guò)程 被繞過(guò)或?qū)⑻貦?quán)接口對(duì)外網(wǎng)開(kāi)放以及默認(rèn)開(kāi)放的 API未及時(shí)關(guān)閉等, 例如: Kubernetes 的 8080 端口、Docker 的 2375 端口的未授權(quán)訪問(wèn)等。
務(wù)系統(tǒng)對(duì)外暴露,導(dǎo)致攻擊者使用缺省的口令,直接登錄業(yè)務(wù)系統(tǒng) 進(jìn)行任何操作。
弱口令:弱口令存在被暴力破解、撞庫(kù)、社會(huì)工程學(xué)攻擊等風(fēng) 險(xiǎn)。例如:在某些業(yè)務(wù)系統(tǒng)中,口令設(shè)置長(zhǎng)度較低、復(fù)雜度不足(數(shù) 字、大小寫(xiě)字母、特殊字符等)即為弱口令,
可用性攻擊:API 接口未對(duì)用戶或者訪問(wèn) IP 進(jìn)行速率限制時(shí), 攻擊者可持續(xù)高頻地使用多個(gè)虛假用戶或者 IP 對(duì) API 進(jìn)行訪問(wèn), 從而嚴(yán)重消耗服務(wù)器資源,導(dǎo)致其他正常用戶無(wú)法訪問(wèn)相關(guān)接口。
敏感信息泄漏:在實(shí)現(xiàn) API接口時(shí),未對(duì) API接口返回?cái)?shù)據(jù)進(jìn) 行前后端脫敏處理,且數(shù)據(jù)以明文形式傳輸,一旦攻擊者能夠成功 截獲流量并成功破解其傳輸數(shù)據(jù),即可獲取大量敏感信息,對(duì)企業(yè) 造成巨大危害。
個(gè)人信息泄漏:若企業(yè)內(nèi)部人員、用戶等將姓名、手機(jī)號(hào)、身 份證號(hào)碼等個(gè)人信息直接暴露在公網(wǎng)上,攻擊者可能會(huì)收集這些敏 感信息,用來(lái)制造社工庫(kù),存在被釣魚(yú)、勒索等威脅。
數(shù)據(jù)脫敏失效:API 接口僅采用前端數(shù)據(jù)脫敏策略,且未對(duì)數(shù) 據(jù)進(jìn)行加密傳輸,極易被攻擊者截獲流量,造成數(shù)據(jù)泄漏。若前后 端脫敏策略不一致,攻擊者可以通過(guò)拼接數(shù)據(jù)的方式來(lái)獲取原始數(shù)據(jù),導(dǎo)致脫敏失效。
參考資料
信通院 應(yīng)用程序接口-API數(shù)據(jù)安全研究報(bào)告-2020年
總結(jié)
以上是生活随笔為你收集整理的API在公司全业务快速使用给信息安全带来了巨大挑战的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ev3pid巡线_据说这是最简单的乐高E
- 下一篇: 线性代数及其应用(第三版)1.3节习题解