大量開發者會將訪問token和API密鑰硬編碼至Android應用
現如今,許多開發者仍然習慣于將access token(訪問憑證)和API key(API密鑰)等敏感內容編碼到移動APP中去,將依托于各種第三方服務的數據資產置于風險中。
機密信息易遭泄漏
網絡安全公司Fallible一項最新的研究結果(點擊查看)顯示:在統計到的16,000多個安卓應用中,有約2,500個應用都出現開發者將機密憑證硬編碼進去的情況。統計工具為去年11月該公司生產的在線掃描程序。
應該說,當需要提供的訪問只在有限的范圍內時,將第三方服務的訪問憑證硬編碼到應用程序中的做法還是可以理解的。但在某些情況下,開發者如果將允許訪問機密數據或關鍵系統的key也加入進去,就很容易產生問題。
比如,在Fallible本次的統計中,有304個APP就出現了這種情況。這些APP包含了為如Twitter,Dropbox,Flickr,Instagram,Slack,AWS(亞馬遜云計算)等服務準備的access token和API key。對比16,000的統計總數,這300多個應用可能不算多,但是從它們所牽涉的服務類型和訪問權限來看,一個小小的key就可能會導致大量的數據泄漏。
就拿Slack(流行的辦公交流應用)token來說,這種token可允許你訪問開發團隊使用的聊天日志,而這些日志中很可能包含如數據庫,持續集成平臺和其他內部服務的更多憑證,更不要說訪問共享文件等內容。去年,網站安全公司Detectify就曾發現超過1,500個Slack token被硬編碼到GitHub上的開源項目中。(了解更多詳情)
不僅如此,AWS訪問憑證也曾被大量發現于GitHub的項目中,這使得亞馬遜不得不主動出擊掃描這些漏洞并棄用遭泄漏的密鑰。據Faillible的研究人員在博客中介紹,許多被發現的AWS服務密鑰都提供了可以創建和刪除實例(instance)的權限。刪除AWS instance會導致數據損失和服務停止,而創建instance則在給黑客帶來便利的同時,由受害者來買單。
不過,這也不是人們第一次在移動應用中發現API key, access token等機密憑證。2015年德國達姆施塔特市科技大學的研究人員曾在安卓和iOS系統中發現超過1,000個用于BaaS(后端即服務)框架的訪問憑證。這些憑證允許訪問超過1850萬條數據庫記錄,包含應用開發者存儲在Pares,CloudMine,AWS等BaaS服務提供商那里的56,000,000個數據項目。
Truffle Hog
本月的早些時候,一名安全研究人員曾公布了一款叫做“Truffle Hog”(松露豬,專門在秋天嗅探埋藏在土里的松露)的工具。此款工具能幫助公司及獨立開發者掃描他們的程序,尋找那些可能早些時候添加之后卻又忘記了的秘密token。