當前位置:
首頁 > 知識 > SDK 可能是數百萬 iPhone 上的特洛伊木馬

SDK 可能是數百萬 iPhone 上的特洛伊木馬

SDK 可能是數百萬 iPhone 上的特洛伊木馬

John Donne曾說:「沒有人是一座孤島。」如果如果他生活在21世紀,可能也會對軟體說同樣的話。表面看來,每個程序都是與眾不同的實體,但實際上它們是由其他開發人員和公司編寫的幾十個組件組成的。

互聯網上有數百萬第三方庫以及軟體開發工具包(SDK)。開發人員下載並將它們集成到各自的軟體中,從而可以在建立特性和功能的時候節省時間。沒必要為每個程序重寫所有的功能組件。

但他們是否也會成為安全方面的致命弱點呢?Bay Area的安全專家Felix Krause檢查了幾個最流行的SDK,發現很多都缺乏傳輸層的安全性。或者,更加直白地說,他們提供的服務並不安全,惡意的第三方可以趁機攔截或修改傳輸的內容。

你的應用是草地

在深入討論之前,我想說Krause的研究與平台無關。所有平台上的軟體都會受到影響。Windows、Linux、macOS、Android、iOS,還有可能包括Amiga。

雖說如此,在本文中,我將只討論iOS應用,因為大多數人都很熟悉iOS,而且它也是一個特別有趣的案例研究。恰好Krause也對它很感興趣,所以他的大部分研究都在是這個平台上進行的。

假設你想利用惡意軟體感染一百萬iPhone用戶。我不知道你為什麼要這麼做,但你就是要這麼做。這是個很棘手的命題。對於初學者來說,蘋果iOS的鎖定系統比Fort Knox牢靠。iOS也並不適合零基礎的初學者,只有那些年薪6-7位數的高手才能玩轉iOS。

因此,最後一招:你偽裝成一位SDK的開發人員,然後將惡意代碼插入到他們的應用中(稍後我們將討論實現手法)。然後你就掌握了生殺大權,或多或少。雖然蘋果的killjoy沙盒可以阻擋大多數的攻擊,但是這些惡意代碼依然可以訪問:

  • 該應用所能訪問的任何文件和文件夾;

  • 該應用所能訪問的任何許可權(包括麥克風以及定位服務!);

  • 屬於該應用的iCloud容器;

  • 該應用所能訪問的所有鑰匙串數據;

  • 應用程序和遠程伺服器之間交換的所有信息。

哎呀!簡而言之,你可以將一個表面上合法的應用程序轉變成一台Orwellian間諜機器,記錄每個鍵盤輸入,甚至可以記錄用戶的位置,還可以截獲身份認證信息,然後賣給其他犯罪分子。

這一切破壞性的操作可以以不可思議的規模展開。單個SDK可以收割數百個應用程序,最終會導致成千上萬的用戶受到影響。

實現手法

中間人攻擊(Man-in-the-middle attacks )已經不是什麼新鮮事了。這項研究與他們無關,我們要討論的是軟體中重要的部分是如何傳輸的,以及更廣泛的軟體安全生態系統是如何受到影響的。然而,了解這種攻擊的原理很重要。

這種攻擊要求第三方介入開發人員的計算機和其他人的網路,或者介入網路與提供SDK下載的伺服器。處於這個位置可以觀察並修改從計算機流傳到外部世界的信息。如果你感到好奇,可以參考Krause的博文獲取更多技術細節:https://krausefx.com/blog/trusting-sdks

受害者可能在任何地方:酒店、咖啡廳或者機場。這都無所謂。一旦攻擊者找到合適的位置,他們就可以開始提供偽造的SDK。Krause指出,在HTML文檔中替換文本就是小菜一碟。因此,他們可以更改下載頁面上的鏈接位置,指向其他地方。

Krause舉了一個例子,嘗試更改Localytics的SDK的位置,新的鏈接看起來很相似且不太容易引起懷疑。看看你是否可以發現下列鏈接的差異:

  • https://s3.amazonaws.com/localytics-sdk/sdk.zip

  • https://s3.amazonaws.com/localytics-sdk-binaries/sdk.zip

前者是合法的SDK,而後者 「localytics-sdk-binaries」的鏈接包含惡意性的代碼。

Krause還提出了一個概念驗證,他可以實時替換ZIP文件和二進位文件的內容。通過一種名叫sslstrip的工具將訪問信息從加密格式轉化成非保護的信息。具體的步驟如下所示:

  • 開發人員下載SDK;

  • 修改SDK,並插入自己的惡意代碼;

  • 攻擊者壓縮代碼;

  • 攻擊者監視網路訪問,等待開發人員下載SDK;

  • 然後用自己的壓縮包替換符合要求的ZIP文件。

開發商提供的SDK並非安全

Krause的研究所強調的攻擊方式是一種威脅,就因為開發商提供的SDK一點都不安全。

Krause研究了41款最受歡迎的SDK。其中13個很容易受到中間人攻擊,而有5個提供的SDK根本無法安全地下載。這些SDK之中很多來自大名鼎鼎的科技公司。

拿亞馬遜(他們在3天內就修復了該問題,還是不錯的)來舉個例子。這個總部位於西雅圖的科技巨頭在極度不安全的HTTP上提供AWS(Amazon Web Services)SDK的下載。

另外一個主要的SDK提供商Localytics(它也解決了這個問題)有一個未經加密的文檔子網站鏈接到了它的SDK。如上所述,攻擊者可能攔截該鏈接,並將其替換為惡意的替代品。

Krause在披露這個問題之前,為SDK開發人員提供了機會,可以讓他們解決問題,這樣做很符合道德標準。也就是說他聯繫了每個公司的相關利益關係人,給他們三個月的時間來解決問題,直到他滿意。

要修復這個問題所需要的工作量微不足道。與許多需要數周時間修復的漏洞不同,開發商只需要確保在加密渠道內下載SDK。

令人很沮喪的是,有些供應商並沒有採取任何有意義的行動。在本文發布前五天,Krause寫信告訴我,近三分之二受影響的SDK提供商未能保護他們的SDK下載。他說:


我剛剛瀏覽了列表,並檢查了SDK提供商是否修復了他們的網站:

我在2017年11月和12月通知了所有受影響的人員,讓他們有足夠的時間在公開發表博文之前解決問題。受影響的13個SDK中,有1個在三個工作日內解決了問題,4個在一個月內解決了問題,發布此文時仍然有8個SDK很容易受此攻擊。仍然有受影響的SDK提供商沒有回復我的電子郵件,或者只是回復了「我們會調查的」,所有這些提供商都是使用率前50名的SDK。

這就讓人很震驚了……

軟體食物鏈

在考慮這個問題的時候,你可能覺得軟體就如同你在超市買一塊牛排。買的時候你會假設它是可以安全食用的。要做到這一點,那麼製造過程中的每個階段都需要得到適當的處理。從農場到餐桌,每個人都需要做好自己的工作。

軟體也一樣。最終用戶從超市(對於軟體來說就是應用商店)購買一款軟體,肯定是假設不會對他們造成傷害。但是,想要這個假設變成現實,那麼每個人都需要遵守安全條例,而不僅僅是開發人員。


原文:https://hackernoon.com/sdks-could-be-the-trojan-horse-for-millions-of-iphones-3d67a3a8be93

譯者:彎月

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

16 歲賺到 20 萬美元,我的編程之路始於對代碼的熱愛
今日頭條遭罰 94 萬;快手、火山小視頻整改「低俗」;Wi-Fi 萬能鑰匙被調查

TAG:CSDN |