自2019年1月,中央網信辦、工信部、公安部、市場監督管理總局四部門聯合開展“App違法違規收集使用個人信息專項治理”以來,隨著《APP違法違規收集使用個人信息行為認定方法》《個人信息安全規范》等標準規范相繼出臺完善,App運營者普遍關注和重視App個人信息保護的氛圍基本形成,無隱私政策、強制索權、無注銷渠道等問題明顯改善。關注App安全,一方面要關注App收集使用個人信息流程上的合規,切實保障用戶權利,例如App是否有隱私政策,是否在申請權限時進行目的告知,收集個人敏感信息時是否明示告知,是否征得用戶同意后收集個人信息,是否可以響應用戶的更正、刪除等權利等等;另一方面,也要關注App個人信息保護的措施有無落實到位,而要做到這一點,需要App運營者不斷“修煉內功”,其實并非易事。
就在近期,Facebook(臉書)再次被曝出由于其API(應用程序接口)可能存在安全漏洞,導致Facebook一個存有2億余條記錄的數據庫被公開,有兩周時間它可以被任何人訪問,其中每條記錄包括Facebook用戶的ID、姓名以及電話號碼等個人信息。無獨有偶,新浪微博也被曝出有5.38億條微博用戶信息在暗網出售,其中1.72億有賬號基本信息,包括用戶ID、性別、地理位置等。對此,微博方面回應稱此次的數據泄漏源于2019年被黑灰產利用通訊錄上傳接口進行暴力匹配,通過通訊錄、手機號反查微博好友昵稱的方式,獲取大量賬號、昵稱、賬號與手機信息的綁定關系等。此外,檢測評估也發現,個別人臉識別、疫情防控等相關的App、小程序等也因為API接口安全措施不足,大量個人信息存在被非授權遍歷、進而導致數據被泄露的風險。
一言以概之,API接口安全一旦出現問題,可能導致的不是一兩個、幾百、幾千個人信息的泄露,而是涉及百萬、千萬、甚至億級個人信息的數量,這也是黑灰產盜取大量個人信息的常見渠道。而實際情況是,承載數據交互的API接口往往由于其“不可見”的特點,其安全問題易被App運營者忽略。API接口基本原理如何,為何重要?存在哪些安全風險?應采取哪些安全措施?本文將逐一詳解。
API的基本原理和應用場景
App已經被大家所熟知,是移動互聯網應用程序(Application)的簡稱,也是應用層軟件向手機終端的延伸,是企業業務場景服務線上客戶(To C)的主要渠道。而API則是應用程序接口(Application Programming Interface)的簡稱,其含義比較寬泛,泛指一組定義、程序及協議的集合。本文主要探討將前端App界面與后端服務器相連接的一類API,其主要以網絡通信方式進行交互,此類API通過預先設定的參數維持前端界面與后臺服務器之間的數據互通,是當下應用最為廣泛的技術解決方案。
API運作的示意圖
該類API的主要由通信協議、域名、路徑、請求方式、傳入參數、響應參數和接口文檔等部分組成。常見的API的請求方式通常有GET、POST、PUT和DELETE。而API根據使用的協議和架構的不同也可以分為SOAP(簡單對象訪問協議)API和RESTful(表述性狀態傳遞)API,其中SOAP API是Web服務安全性內置協議,采用保密和身份驗證規則集的方式,支持結構化信息標準促進組織(OASIS)和萬維網聯盟(W3C)制定的標準,它們結合使用XML加密、XML簽名和SAML令牌等方式來驗證身份和授權,而REST API支持HTTP以及HTTPS兩種傳輸協議,不需要存儲或重新打包數據,因此傳輸速度比SOAP API協議要快得多。簡言之,SOAP API更安全,適合處理敏感數據的機構,但同時也更為笨重;而RESTful API更為輕便,但是安全性能有待加強。
API的出現,使得使用不同編程語言、不同操作系統、不同版本的App與后臺服務器的交互,以及App之間的交互更加順暢。API不僅為App的開發提供了便捷,它也是SDK(Software Development Kit,軟件開發工具包)與其后臺服務端實現交互功能必不可少的組件。
除App和SDK依賴API外,API自身還能被單獨包裝成一種服務模式。隨著移動互聯智能化技術的推進,越來越多的企業將服務封裝成數據接口進行開放,供第三方開發者使用,這類API接口通常被稱為OpenAPI。OpenAPI由于具有標準化、通用性等優勢,不斷被運用到“快捷”服務場景,比如開放API銀行,互聯網開放醫院等信息化項目中。
可見,API雖然不為大眾所知,但在技術、開發人員眼里則是“必需品”,可以說幾乎沒有人可以繞過其構建信息系統和App??梢灶A見,API在今后將繼續扮演連接用戶前臺與后臺服務的關鍵橋梁作用,其類型、性能等還將進一步擴展,應用范圍還將進一步擴大。
API帶來哪些數據安全風險?
API的出現和廣泛使用給快速開發提供前所未有的便利條件,但是這種便利的背后也伴隨著不容忽視的風險,常見的API安全風險就包括:
風險一:API接口鑒權失效
調用API其實本質上就是對后端服務的調用,但后端服務并不對所有人開放,除少數API(如提供公開素材下載的網站)外,絕大部分API需要對用戶進行鑒權后,再決定是否允許用戶調用該服務。鑒權簡而言之就是驗證用戶是否有權訪問資源、能訪問哪些資源,其通常分成兩個環節:先身份驗證,后權限控制,兩者不可分割。但是,不少API接口由于存在開發、配置缺陷等問題,導致鑒權機制失效。常見的鑒權失效有:用戶身份鑒權失效、對象級別的鑒權失效和功能級別的鑒權失效。用戶身份鑒權失效通常指用戶無需認證令牌,或通過一定方式可以繞過認證環節,使得非法用戶入侵后臺系統,進而可能導致存儲在該系統內的個人信息泄漏。對象級別的鑒權失效即為水平越權,指的是用戶只需更改API路徑(End Point)即可實現對請求中的對象ID所屬的敏感數據進行未授權訪問的情況,例如,通過修改薪資系統API接口參數中的員工號,即可了解其他員工的薪資待遇水平。功能級別的鑒權失效即為垂直越權,指的是通過更改API接口中關于層級、群組或角色的參數,即可實現對不同層級、群組或角色可訪問的敏感信息的未授權訪問,例如,惡意人員可將普通用戶名篡改為管理員用戶名,即可訪問所有原本僅系統管理員才能查看的敏感信息。
風險二:敏感信息展示不當
敏感信息脫敏展示機制通常用于保護用戶敏感信息不被其他未授權人員訪問,以避免用戶權益受損。敏感信息脫敏展示機制失效通常有三種情況:未脫敏、偽脫敏、脫敏策略不一致。未脫敏指的是敏感信息沒有經過脫敏展示即通過API接口從前端界面進行展示,例如直接在客戶端應用的界面展示個人姓名、手機號碼和身份證等信息。偽脫敏指的是敏感信息僅在前端展示界面脫敏,未在服務器后端進行脫敏,一旦流量被截獲,則可能造成敏感信息泄漏。脫敏策略不一致指的是對同一類敏感信息,未采取一致的脫敏策略,導致將同一條信息不同的未脫敏部分進行組合后仍可得到未脫敏的數據,例如A界面展示王五的手機號為123***789,而B界面展示王五的手機號為123456***,則進行組合后可以得到王五的完整手機號123456789。
風險三:過量數據暴露風險
該風險指的是API接口在接收到參數請求時,后臺服務器未做篩選,便將大量數據返回至前端,僅依賴客戶端對數據數量及類型進行選擇性展示,但此時數據,尤其是敏感數據,可能已經全部在前端界面進行緩存,訪問者查看前端即可獲取大量數據。例如,王五在前端界面提交了訪問A部門所有員工電話號碼的請求,但是后端服務器卻除了返回了A部門所有員工的電話號碼,還返回了身份證號碼、家庭住址等個人敏感信息,造成個人信息的過度收集和敏感信息的暴露。同理,在通過數據接口間接收集個人信息時,如果配置不當,將可能導致大量無關個人信息被過度收集。
風險四:第三方通過API違規留存數據
當下社會分工逐漸細化,企業開放很多不同的API接口給第三方合作伙伴已成常態,從而支持數據處理、資源共享等操作。但是,若雙方未約定,或第三方未按照約定,則可能存在第三方通過頻繁訪問合作接口,私自過量緩存、獲取數據資源的行為,當留存的數據資源達到一定程度,則效果上等同于“拖庫”。前段時間曝光的某征信企業非法倒賣個人信息案件中,其便是利用上游企業接口非法緩存公民個人信息,累計緩存公民姓名、身份證號碼和身份證照片一億多條,供下游企業牟利,造成嚴重公民個人信息泄漏。
思考與建議
如上述風險分析過程可見,對于用戶的個人信息保護,API安全極其關鍵,App運營者應當引起高度重視。一旦在API安全問題上采取措施不力,造成大量個人信息泄露,可能涉嫌違反《網絡安全法》第四十二條“網絡運營者應當采取技術措施和其他必要措施,確保其收集的個人信息安全,防止信息泄露、毀損、丟失?!盇pp運營者不僅應關注API安全,還需梳理API接口清單、API接口設計脆弱性,加強API全生命周期(上線、變更和下線)管理,監測API使用過程的數據安全風險,真正付諸于實際行動,讓個人信息“采之以理、用之以道、存之以安”。具體有以下建議供參考:
一是加強API技術安全防護能力
雖然API存在安全風險,若采取恰當的技術防護手段,則可以有效的把風險控制在可接受范圍內。組織應將API安全納入安全防護體系中,在應用系統各個環節與其他技術手段協同以達到加強API安全的目標。以加強API鑒權機制為例,在身份驗證環節,組織應排查無需認證的API清單,定位弱密碼API,加強密碼強度并強制定期更換密碼,或建立多因素認證,可設立黑名單機制,將多次訪問失敗的IP納入黑名單,拒絕其訪問,有效減少非法訪問風險;在授權管理環節,組織可使用采用RBAC(角色授權)、ABAC(屬性授權)等多種不同細粒度權限管理結合資源訪問時環境因子(如UA頭、refer、token)認證等技術減少未授權訪問關鍵數據資源,同時配置資源訪問流量控制,訪問次數限制和日志監測分析技術等防護手段,進一步強化安全屏障。
二是建立API安全長效風險管控機制
只要API一直在啟用,即使合法用戶或第三方仍可能存在濫用自身權限,頻繁訪問、修改、下載、留存敏感數據的風險,因此,組織應建立API安全長效管理機制,該機制不僅應具備長期監測、發現和預警來自組織內部和外部的非授權、濫用API安全風險的能力,更應該具備在發生數據安全泄漏事件時快速定位泄漏源頭,有效控制數據泄露負面影響的能力。只有建立了長效風險管控機制,才能真正保障組織業務穩定運營和公民個人信息安全。
結語
必須明確的是,API安全是App安全不可缺少的一部分,沒有足夠安全的數據接口,再完善的“隱私政策”,再充分的用戶權利保障,都將因為數據的泄露讓所有努力付之東流。API為每一位用戶、App運營者搭建著無數座供數據快速通行的“無形橋梁”,如何切實保障這些橋梁足夠安全、足夠可靠,是當下持續深入開展治理、精準施策的“痛點”,也是組織切實提升個人信息安全能力水平的“剛需”。
責任編輯:王煊
免責聲明:
中國電子銀行網發布的專欄、投稿以及征文相關文章,其文字、圖片、視頻均來源于作者投稿或轉載自相關作品方;如涉及未經許可使用作品的問題,請您優先聯系我們(聯系郵箱:cebnet@cfca.com.cn,電話:400-880-9888),我們會第一時間核實,謝謝配合。