(2022年Q1)API安全研究報告——永安在線編寫
前 言
在萬物互聯的數字時代,API承載著企業核心業務邏輯和敏感數據,在應用環境中變得越來越普遍。特別是在疫情常態化后,移動辦公、在線教育等線上應用蓬勃發展,API作為能夠支撐線上應用連接和數據傳輸重任的一種輕量化技術,受到國內外企業組織的青睞。
與此同時,針對API的攻擊正成為黑灰產及黑客的首選,相較于傳統窗體和Web頁,API承載的數據價值更大、攻擊成本更低,通過攻擊API來獲取高價值數據、進行業務欺詐等成為越來越多非法分子的常規手段。據報道,2021年12月,Apache APISIX被曝攻擊者在未授權的情況下可以訪問Apache APISIX的API接口;2021年7月,媒體報道領英有超過7億用戶數據在暗網出售,黑客利用領英API下載用戶數據;2020年3月,新浪微博被報道因用戶查詢接口被惡意調用導致APP數據泄露……這些頻頻爆出的與API相關的安全事件不得不引起人們對API安全的重視。
永安在線長期致力于業務反欺詐和API安全的研究,圍繞API重點關注全網針對API攻擊的黑灰產情報,并基于情報發現API存在哪些安全風險、如何檢測和修復風險,以及面對風險應怎樣避免出現重大損失。在本報告中,永安在線·鬼谷實驗室針對2022年Q1的API安全現狀和攻擊趨勢進行分析,梳理了該季度典型的API攻擊事件并給出防御措施,希望借此引起行業對API安全的重視,進一步推動API安全的發展。
一、API 安全風險概況
本章節基于永安在線Karma情報平臺捕獲到的針對API的自動化攻擊工具、攻擊流量進行分析,對2022年Q1的API安全風險概況進行客觀的展示。
1. API遭受攻擊數量超15萬/月,呈逐月上漲趨勢
從Karma情報平臺捕獲到的遭受自動化攻擊的API數量來看,2022年1-3月遭受攻擊的API數量均超過15萬,逐月上漲,其中3月的數量達到了23.7萬。

2. 針對API的攻擊主要集中在四大場景,營銷作弊占比最大
從API攻擊場景來看,主要集中在營銷作弊、數據風險、賬號風險和流量欺詐。其中,營銷作弊場景吸收了一半的API攻擊。

1)營銷作弊:攻擊者使用作弊手段參與平臺的營銷活動,通過攻擊活動接口獲取利益。
2)數據風險:攻擊者通過編寫惡意爬蟲等方式,偽造接口或網頁請求,非法獲取業務數據或用戶數據,進而引發數據泄露風險。
3)賬號風險:攻擊者針對平臺的注冊/登錄接口發起惡意注冊、掃號、撞庫等攻擊行為,從而引發虛假賬號、賬號盜取等風險。
4)流量欺詐:攻擊者針對平臺發起虛假的業務請求,包括針對電商平臺的刷單、黃牛搶購,針對社交平臺的水軍控評、刷量刷贊等。
3. API攻擊遍布各個行業,數字藏品熱度最高
從API攻擊的行業分布數據來看,熱度最高的是數字藏品行業,其次是電商行業、汽車行業。

永安在線情報研究人員分析,從去年至今,數字藏品的熱度一直居高不下,越來越多的人投入到數字藏品的交易中。但由于市場不規范、監管不足,數字藏品存在巨大非法獲利空間,黑灰產人員開發了大量的搶購軟件以此獲利,因此針對數字藏品的攻擊占比較多。詳情可查看第四章節關于數字藏品的案例分析。
二、數據泄露風險概況
隨著數字經濟的快速崛起,數據已成為最有價值的資產之一。API作為數字時代各類服務、應用之間數據交互的橋梁,也成為攻擊者瞄準的目標,借此非法獲取高價值的數據。近幾年頻頻爆發的數據泄露事件中,就有API攻擊導致的,且影響非常惡劣,嚴重損害了企業組織、用戶的合法權益,給經濟、政治、社會等領域帶來巨大風險。
永安在線情報研究團隊長期關注全網數據泄露情況,通過對泄露數據交易論壇、TG群、暗網等渠道進行全方位布控,獲取數據泄露的第一手資訊。本章節基于永安在線數據資產泄露風險監測平臺獲取到的Q1數據泄露數據進行梳理和分析,得出以下結論:
1. Q1數據泄露事件呈明顯上升趨勢,其中不少與API相關
永安在線數據資產泄露風險監測平臺數據顯示,2022年Q1共監測到640余起數據泄露事件,涉及企業200余家。

通過對部分數據泄露事件進行分析發現,其中有不少數據泄露與API風險有關,詳情見第三和第四章節關于API缺陷導致的數據泄露案件分析。
2. 物流和金融行業是數據泄露的重災
通過對Q1數據泄露事件所在行業分析,物流行業數據泄露事件最多,占比43.08%;其次是金融行業,包含金融借貸(占比20.44%)、證券(占比9.91%)、銀行(占比6.76%)和保險(占比3.14%),共計占比40.25%。

永安在線情報研究人員通過進一步分析,發現物流行業涉及的流程節點較多,接觸人員廣泛,且面單往往是公開顯示的,因此存在數據泄露的環節比較多,如快遞數據的錄入、派發快遞等環節都很容易造成數據泄露。在Q1數據泄露事件中有將近100件是因為快遞派發環節面單拍攝導致數據泄露。
3. 數據泄露涉及個人信息居多,手機號占比排名第一
從泄露的數據類型來看,Q1數據泄露事件涉及40多種數據類型。其中泄露最多的是手機號,其次是姓名和個人地址。為什么平時有那么多電話騷擾和詐騙,主要就是因為手機號信息泄露。

三、API安全缺陷分析
API存在安全缺陷是導致API被攻擊的主要原因。本章節基于永安在線API安全管控平臺Q1的流量審計結果,從危害性、可利用性、普遍性三個維度,梳理需要引起重視的五個API安全缺陷。

以下結合案例針對每一個缺陷進行詳細解釋:
1.未授權訪問
從Q1的審計結果來看,存在未授權訪問缺陷的API接口不多,但由于具有嚴重的危害性,所以仍然是最值得關注的API安全缺陷之一,在OWASP API Security Top 10 排名第一的 "API 1 : Broken Object Level Authorization(失效的對象級別授權)"中也包含了這類缺陷。2021年底,知名開源項目APISIX Dashboard就曾曝出過未授權訪問漏洞(CVE-2021-45232)。
以下是一個關于API未授權訪問缺陷的實際案例:
某公司內部系統可能是為了方便管理員查看所有賬號信息,在API接口設計上支持傳入某個賬號,接口可返回該賬號的相關信息(包括密碼)。但是,這個接口可以從外網訪問,而且訪問不需要任何授權,傳入任意一個賬號(包括管理員賬號),都可以獲取到該賬號的密碼。

雖然返回的不是明文密碼,是密碼的Md5,但由于密碼的強度不高,在實際測試中通過“彩虹表”可還原出管理員的明文密碼。這屬于非常嚴重的安全漏洞,一旦遭到攻擊,攻擊者可輕易獲取到管理員的賬號密碼,并拿到系統的最高權限。
安全建議
1)除非資源完全對外開放,否則訪問默認都要授權,尤其是訪問用戶的資源或者受限制資源。
2)通過白名單的方式來嚴格控制無需授權的API接口的訪問。
2. 允許弱密碼
雖然很多安全開發規范都有提到設置密碼時,需要滿足一定的強度,但從Q1的審計結果來看,仍有不少的API接口,尤其是一些管理后臺登錄的API接口,存在著弱密碼缺陷。在OWASP API Security Top 10 排名第二的 "API 2 : Broken Authentication(失效的用戶身份驗證)"中,也包含了允許弱密碼這類缺陷。
下面是某公司管理后臺登錄接口的請求體:

密碼做了Base64編碼,解碼的內容是:11111,屬于典型的弱密碼。
此外,從Q1的數據泄露事件中發現,不法分子流傳出來的信息也多次出現了一些管理后臺的截圖,初步判斷攻擊者就是利用弱密碼缺陷,暴破出了登錄后臺的賬號密碼:

安全建議
1)設置密碼時,需要對密碼強度做要求,比如長度至少8位,字母、數字、特殊符號多種組合等。
2)不建議將密碼設置為用戶名、生日、手機號等關聯信息。
3. 敏感數據過度暴露
敏感數據過度暴露指的是API接口不加任何限制或過濾,把后端存儲的敏感數據返回到前端,這很容易導致數據泄露問題。在OWASP API Security Top 10中,這個缺陷排在第3位 - "API 3 : Excessive Data Exposure(過度的數據暴露)"。
在Q1審計中發現存在敏感數據過度暴露問題的API接口不在少數,部分API接口一次性返回幾百甚至上千條用戶的涉敏數據,還有部分API接口返回了一個用戶的所有敏感數據,即使有些數據是不需要的。
以下是一個關于API敏感數據過度暴露的實際案例:
某互聯網公司的營銷活動中,有一個中獎信息查詢的API接口,除了返回前端需要展示的頭像、昵稱、城市、脫敏手機號之外,還返回了很多前端根本不需要的敏感數據,包括中獎人的姓名、收貨地址、明文手機號等。

這些中獎信息是公示出來的,任何人都可以查看,很容易被不法分子獲取,在黑市上進行售賣,或利用這些信息對中獎人進行詐騙。
安全建議
API接口要對返回到前端的敏感數據進行嚴格過濾,只返回前端需要的數據。
4.URL傳輸憑證或賬號密碼
很多人不太重視URL傳輸憑證或賬號密碼問題,甚至不認為是安全缺陷,因此在Q1的審計結果中存在很多這類缺陷的API接口,但這類缺陷還是有挺高的危害性,不應該忽視。在OWASP API Security Top 10排名第二的 "API 2 : Broken Authentication(失效的用戶身份驗證)"中也明確指出通過URL傳輸敏感數據,包括憑證或密碼是有問題的:

為什么在接口的URL中傳輸憑證或賬號密碼會有問題呢?因為URL往往可以通過瀏覽器訪問記錄、請求referer,或者日志文件獲取到,一旦這些地方被突破,攻擊者就可以直接獲取到登錄憑證,進而導致系統權限失陷。以瀏覽器訪問記錄為例,今年1月,蘋果的Safari瀏覽器就被曝出存在嚴重漏洞,會導致用戶的瀏覽器歷史訪問記錄泄露。
安全建議
以POST方式發起請求,在請求體中傳輸賬號密碼或憑證。
5. 錯誤提示不合理
錯誤提示不合理往往出現在賬號注冊、登錄或者找回密碼相關的API接口上,很多時候也會被忽略。從Q1的審計結果來看,存在這個缺陷的API接口也是較為普遍的。
一個實際的案例:
某APP的登錄頁面支持手機短信驗證碼登錄,填入手機號后會調用發送驗證碼的API接口。對于已經注冊過的手機號,接口返回信息:

而對于還未注冊的手機號,接口返回信息:

從用戶的交互體驗上來說,這樣的錯誤提示是沒有問題的。但攻擊者可以利用這個API接口實施掃號攻擊(遍歷手機號),從而知道哪些手機號在該APP上注冊過。黑產掌握了這些信息,一方面可以提高進一步攻擊(撞庫、密碼暴破等)的效率,另一方面可能會利用這些手機號進行廣告營銷或電話詐騙。
安全建議
1)針對登錄、注冊等接口的錯誤提示信息進行模糊化處理,比如返回“用戶名或密碼不正確”。
2)針對登錄、注冊等接口,加強對調用量過大或調用頻率過高等異常行為的監控力度。
四、值得關注的API風險案例
1.數字藏品產業API攻擊案例
——數字藏品火了,其背后的安全問題不容忽視
你一定聽說過,2021年3月11日,一張平平無奇的JPG圖片,經過區塊鏈技術處理后變成了數字藏品,最終以6934萬美元(折合人民幣4.51億元)的價格在佳士得拍賣成交。自2021年起,國內越來越多的數字藏品發售平臺如雨后春筍般涌現,關于數字藏品的討論遍布于微信群、朋友圈、微博里,甚至是街頭巷尾、地鐵公交上,無處不在。而數字藏品產業鏈也逐漸吸引了不少人的投資和購買。
數字藏品(NFT)作為一種非同質化代幣,得益于數字內容資產化,依托區塊鏈技術保證唯一性、真實性和永久性,以及去中心化的交易模式保證內容創作者的收益等特征,使得交易效率更高、交易成本更低、交易更為活躍,數字資產流動性明顯增強。與此同時,由于新興產業的不規范、監管不足,數字藏品行業存在巨大的非法獲利空間,成為黑灰產虎視眈眈的“獵物”。
在永安在線Karma情報平臺Q1捕獲的營銷作弊自動化攻擊中,涉及不少數字藏品企業。永安在線情報研究人員進一步研究分析,發現針對數字藏品的攻擊已經形成了一個完整的黑產鏈條:

黑產人員發現數字藏品發售平臺的商機后,通過職業拉單人尋找相應的開發人員(工具作者),開發人員會對數字藏品平臺相關API接口、協議(如注冊、登錄、驗證等)進行研究,破解后開發工具,再通過發卡平臺將工具售賣給黑產人員。黑產人員利用工具獲取批量賬號資源,再自動化搶購待發售數字藏品,并在相關二手平臺轉賣,最終實現獲利。
下面通過一個具體的案例來展示相關API遭受的攻擊:
3月中旬,永安在線Karma情報平臺捕獲到了一款名為“頭號數藏V1.0.vmp.exe”的自動化攻擊工具,攻擊者利用API接口存在的安全缺陷(包括明文傳輸用戶名和密碼等接口參數),偽造相關API接口請求,從而套取活動中的獎勵。
從工具界面上,可以清晰地看到各種黑灰產資源的使用,包括通過接碼平臺獲取作弊的賬號資源、通過打碼平臺繞過人機識別驗證碼、通過代理IP平臺繞過IP風控等。

而從逆向分析出的攻擊代碼中,也可以清晰地看到接口請求的偽造過程:
1)偽造注冊接口請求:

2)偽造登錄接口請求:

3)偽造驗證接口請求:

營銷作弊攻擊的出現,嚴重破壞了數字藏品交易市場的良性競爭:攻擊者通過惡意手段占有數字藏品再高價賣出,嚴重破壞了數字藏品市場的秩序,損害交易平臺及真正藏品買家的利益,也不利于數字藏品產業的長遠發展。
小結
對于這類攻擊,建議對API接口進行加固,以此提高攻擊門檻,如像用戶名和密碼這樣的關鍵接口參數加密后再傳輸,增加動態令牌對接口請求合法性進行校驗等。
此外,也可以利用黑灰產情報,對營銷作弊攻擊使用到的黑灰產資源(賬號、手機號、IP等)進行識別和阻斷。
2. 線上政務平臺API風險案例
——作為疫情期民生業務辦理的主力支撐,線上政務平臺用戶信息保護是關鍵
新冠疫情以來,為減少人員聚集,同時不影響正常業務辦理,各地政府機關都推出了線上政務服務,廣大民眾足不出戶就可以在網上查詢和辦理各種業務。然而,有些業務的API接口缺乏有效的授權和認證機制,容易成為網絡犯罪分子攻擊的目標。2020年北京“健康寶”就出現了這樣的問題:
核酸檢測結果查詢接口只需輸入姓名和身份證,無需其他授權就可以查看他人的核酸檢測信息。
這個問題導致了大量明星的核酸檢測照片泄露并流傳到網上大肆售賣。后來該系統加上人臉識別的認證機制,并在公安機關的介入下該事件才逐漸平息下來。
永安在線數據資產泄露風險監測平臺Q1捕獲到了多起線上政務平臺因API接口被攻擊導致數據泄露的事件,泄露的信息涉及到公民的手機號、證件照片、工作信息、婚姻信息等,其中最為普遍的是公民手機號信息泄露(本報告上文中也提到泄露的數據類型中,手機號是最多的)。
下面通過一起真實案例來詳細說明攻擊者是如何利用API來獲取敏感數據的:
1月底,永安在線Karma情報平臺捕獲到了一款名為“交警 V1.2.vmp.exe”的自動化攻擊工具,并定位到了被攻擊的API接口(目前已修復)。通過進一步分析,永安在線情報研究人員還原了整個攻擊過程:
攻擊者只需要在接口參數中填入任意公民的身份證,無需其他認證信息,即可獲取到該公民的手機號。模擬攻擊代碼如下:

成功獲取到手機號:

進一步溯源分析,找到了調用該API接口的入口,屬于某市交警的微信公眾號,該公眾號支持線上辦理各種交管業務。業務辦理的邏輯其實很簡單,步驟如下:
1)填入姓名和身份證后,會提示通過手機短信來進行身份驗證。為了給到比較好的用戶體驗,頁面上會展示出脫敏的手機號,便于用戶進行確認:

2)點擊“獲取驗證碼”,則會調用另外一個接口往手機上發送短信驗證碼。
3)輸入正確的驗證碼,即可完成身份認證,成功登錄系統。
根據以上信息,可以確認該API接口返回明文手機號的原因和問題:
1)用于界面展示手機號(已在前端脫敏)。這里存在的問題是,敏感數據不應該在前端才進行脫敏,在后端就應該完成脫敏,API接口只需返回脫敏后的手機號。安全經驗不足的開發人員往往會犯這種錯誤。

2)用于發送短信。發送短信的接口需要傳入手機號,但接口的調用完全可以在后端進行,不需要放在前端,從而避免明文手機號暴露到前端。

小結
線上政務給廣大民眾帶來極大的便利,但線上政務的背后往往是大量的個人隱私數據。有哪些數據是可以通過API接口進行訪問,訪問是否需要身份驗證和授權,哪些數據需要脫敏后再返回等,都需要經過仔細的設計和嚴格的審核,避免給民眾帶來便利的同時卻泄露了個人隱私。
3. 傳統行業互聯網+平臺API風險案
——數傳統行業數字化轉型“成有API的功勞,敗也有API的責任”
在新一輪科技革命和產業變革浪潮中,數字經濟已成為不可逆轉的時代潮流,傳統行業也紛紛投身于數字化轉型。但是,傳統行業在網絡安全投入和建設方面相對薄弱,API作為數字經濟的基礎設施,承載著企業數字化轉型的業務交互和數據傳輸的重任,其安全與否一定程度上影響著企業數字化轉型的進展。
3月中旬,永安在線API安全管控平臺通過自動化缺陷審計,發現某互聯網+校服平臺存在敏感數據過度暴露的問題。在平臺的“服務企業”一欄中,可以查看到所有的供應商信息:

該做法的本意是向大眾公示合作的供應商具備良好的生產資質。然而,查詢接口返回的信息中,除了需要公示的信息之外,還返回了很多無需公示的信息,其中就有非常敏感的個人隱私數據,包括企業法人的身份證號、身份證正反面照片、手機號、緊急聯系人、許可證等。

由于這些信息都是公開可訪問的,容易被不法分子竊取,從而造成嚴重的數據安全問題,這不僅給數字化轉型的企業造成實際的業務損失,一定程度上也打擊了傳統企業向數字化轉型的信心。
小結
過度的敏感數據暴露是API安全中比較常見的問題,如該案例中開發者把平臺廠商的所有注冊信息從后臺數據庫中取出后,不加任何過濾全部返回給前端。對于這類問題,我們在設計API接口時,需要了解清楚業務需求,盡可能減少不必要的數據返回。
五結 語
API并不是什么新鮮事物,與其相關的安全問題也并非近期才出現,而API安全之所以成為當前業內普遍關注的重要問題,一方面是數字經濟時代的互聯網業務場景快速爆發,需要大量的API去交互數據,也就是說API數量增多了,承載著數據價值更高了;另一方面,隨著業務快速發展,API的迭代和發布周期也隨之加快,而當前很多企業“重業務,輕安全”的理念為API埋下了潛在的安全風險。
API技術會持續發展,攻擊者陰謀陽謀也會日益迭代,圍繞API已形成了一個新的攻擊面,其安全建設任重而道遠。基于黑灰產情報精準發現和拆解攻擊者的各種特征和招式,做到更精準的風險感知和更及時的阻斷,將是API安全管理的更優解,這也是永安在線一直推崇的API安全建設理念。
所謂,知己知彼,才能百戰不殆。
本報告由永安在線·鬼谷實驗室獨家編寫,聯合安全419、數說安全共同發布。如需轉載、摘編或利用其它方式使用本報告文字或觀點請聯系永安在線。