身份安全 | 國內(nèi)外API安全事件引發(fā)的探討 - 再談API安全(一)
2020-08-31瀏覽次數(shù):1062
隨著越來越多的企業(yè)通過網(wǎng)站應(yīng)用對外提供服務(wù),除了用戶界面,相關(guān)的API也成為訪問數(shù)據(jù)和服務(wù)的對外入口;近年來,由于API漏洞引發(fā)的安全事件,影響面積大,造成了廣泛的影響;例如:臉書2018年由于API的安全漏洞造成2900萬用戶的個人信息泄露,2019年Instagram因API接口漏洞導(dǎo)致用戶數(shù)據(jù)以及照片被泄露;國內(nèi)2018年發(fā)生華住信息泄露事件導(dǎo)致大量用戶個人信息以及開房信息被泄露,這些事件使API安全相關(guān)的問題得到越來越多的關(guān)注。
許多企業(yè)對于自身有哪些API對外提供服務(wù)或使用了哪些API缺乏統(tǒng)一的管理,增加了API安全實現(xiàn)的復(fù)雜度;業(yè)界將API安全劃分為2種實現(xiàn)機制,一是API威脅防護,指檢測和阻止API的攻擊;另一個是API訪問控制,指提供用戶授權(quán)訪問哪些應(yīng)用的API;企業(yè)需要構(gòu)建自己的API安全策略,通過對API的全面的防護,避免出現(xiàn)可能引發(fā)的安全問題。
企業(yè)API安全的實施策略首先要走在攻擊者和黑客的前面了解和發(fā)現(xiàn)自己的API;上面這些事件中的企業(yè)不知道他們存在這些不安全的API直到發(fā)生問題。企業(yè)可以先從移動端應(yīng)用和網(wǎng)站應(yīng)用開始梳理,這些應(yīng)用通常是基于前后端分離的開發(fā)框架,前端基于Angular或React訪問后端服務(wù)API;另外就是應(yīng)用集成的API,這些API通過ESB或iPaas(集成平臺及服務(wù))提供應(yīng)用和數(shù)據(jù)的訪問;這些API無論是否發(fā)布,還是處于研發(fā)過程中都需要符合安全和管理要求;企業(yè)可以通過構(gòu)建API開發(fā)者門戶管理內(nèi)部和外部的API;對于使用的第三方API,如果出現(xiàn)安全漏洞,同樣會影響到到API使用的客戶端。
企業(yè)需要有API平臺團隊通過使用API管理平臺實現(xiàn)企業(yè)API的管理和治理,有些API管理工具可以自動發(fā)現(xiàn)云平臺和容器環(huán)境的API,生成API清單;接下來就是對這些API分類管理;這些分類可以在API管理平臺中進行標注;用于區(qū)分不同API對應(yīng)的安全管理要求。
發(fā)現(xiàn)并將API分類后,就是識別API的潛在漏洞
API密鑰或其他賬號信息,例如SSH訪問密鑰、數(shù)據(jù)庫訪問賬號等,這些密鑰保存在云儲存(Amazon S3, 百度云盤)或代碼資料庫(Github),由于沒有配置訪問控制,使得這些信息可以被公開訪問,上述華住信息泄露事件就是由于開發(fā)人員將內(nèi)部數(shù)據(jù)庫訪問信息和賬號放在公開Github資料庫中導(dǎo)致被黑客利用。
Web和移動端應(yīng)用包含硬編碼的API密鑰或賬號信息,黑客可以通過反編譯攻擊獲取;例如智能家居和物聯(lián)網(wǎng)廠商Zipato被發(fā)現(xiàn)其某個設(shè)備的API接口實現(xiàn)代碼中包含超級用戶的登錄密鑰。參見https://blackmarble.sh/zipato-smart-hub/amp/
API存在可以被利用的Bug或邏輯缺陷;例如在線游戲平臺Steam被發(fā)現(xiàn)其某個API的Bug可以用于獲取激活任何一個游戲的密鑰。參見https://www.zdnet.com/article/steam-bug-could-have-given-you-access-to-all-the-cd-keys-of-any-game/
通過中間人攻擊獲取API報文,從而獲取API密鑰或發(fā)現(xiàn)不安全的API。
另外還需要注意“影子API”:未使用、示例用途或原型API,同樣會存在上述安全漏洞,需要發(fā)現(xiàn)并加以保護。
企業(yè)通過API管理平臺發(fā)現(xiàn)和整理自身提供和使用的API,識別API的潛在漏洞;接下來需要通過基礎(chǔ)架構(gòu)平臺中的相關(guān)組件來實現(xiàn)API安全,這將在后續(xù)的文章中詳細介紹并探討。 參考文檔:
- Gartner報告:API Security: What You Need to Do to Protect Your APIs