KeyRaider:迄今最大規模的蘋果賬號洩露事件
from:KeyRaider: iOS Malware Steals Over 225,000 Apple Accounts to Create Free App Utopia
摘要
最近,WeipTech(
威鋒技術組)分析了一些使用者報告的可疑iOS應用
,發現了儲存在某伺服器上超過22,5000
個有效的Apple賬戶和密碼。
透過與WeipTech
的合作,我們(Paloalto
)識別了92個尚未發現過的惡意軟體樣本。為了找出惡意軟體作者的意圖,我們對樣本進行了分析,並將這個惡意軟體家族命名為“KeyRaider
”。從結果來看,我們相信這是有史以來因惡意軟體所造成的最大Apple賬號洩露事件。
在中國,KeyRaider 將目標鎖定在已越獄的iOS裝置上,並透過第三方Cydia源傳播。並且這個惡意軟體很可能已經影響到了18個國家的使用者,包括中國、法國、俄羅斯、日本、英國、美國、加拿大、德國、澳大利亞、以色列、義大利、西班牙、新加坡和韓國等。
KeyRaider
透過MobileSubstrate
框架來hook
系統程式,攔截iTunes
通訊來竊取Apple
賬戶使用者名稱、密碼和裝置GUID
。 它還會竊取iPhone
和 iPad
裝置上的Apple
推送通知服務證照和私鑰、App Store
購買憑證,並禁用本地和遠端解鎖功能。
KeyRaider
已經成功竊取了超過22,5000
個有效的Apple
賬戶、輸千個證照、私鑰和購買憑證。惡意軟體將竊取到的資料上傳到了存在漏洞的C2(command and control
)伺服器上,因此暴露了使用者資訊。
此次攻擊的目的是為了讓使用者透過使用兩款iOS越獄應用(越獄後透過Cydia
源安裝的應用)來免費下載官方App Store
的任意應用,且不需要付款就可以在應用內進行購買服務。越獄應用是能夠讓使用者執行在正常裝置上無法進行的操作的軟體包。
這兩款越獄應用會劫持app購買請求,下載存放在C2 伺服器
中被竊取的賬戶和購買憑證,然後模擬iTunes
協議登陸到Apple
伺服器,購買app
或其他使用者請求的專案。這兩款越獄應用已經被下載超過20,000
次,這意味著大約20,000
名使用者正在濫用其他225,000
個被竊取的證照。
一些受害者已經報告了他們的Apple賬戶存在非正常app購買記錄和其他一些勒索行為。
Palo Alto Networks
和WeipTech
已經提供了能夠檢測KeyRaider
惡意軟體和識別被竊取的證照的服務。在接下來的內容中,我們會提供惡意軟體和攻擊的細節。
發現KeyRaider
此次攻擊最早由i_82
發現,他是一名來自揚州大學的學生、WeipTech
成員。WeipTech
是一個非職業技術團體,由WeiPhone
(中國最大的Apple粉絲網站)的使用者組成。之前WeipTech
與我們合作,披露了iOS
和OS X
上的惡意軟體AppBuyer
、WireLurker
。
從2015-07-01開始,WeipTech
開始調查一些使用者Apple賬戶在未經授權的情況下,購買和安裝了iOS app
。再對使用者安裝的越獄應用進行調查後,他們發現了一款越獄應用收集使用者資訊,並上傳到一個未知的網站。他們發現這個網站存在SQL隱碼攻擊,能夠檢視到所有的資料記錄。Figure 1
是”top 100
”資料庫的截圖
Figure 1. WeipTech 發現在C2伺服器上存在SQL隱碼攻擊(from WeipTech)
在資料庫中,WeipTech
發現了標明為“aid
”欄位一共有225,941
條記錄。大約2萬條記錄包含明文使用者名稱
、密碼
、GUIDs
。剩餘的記錄是加密的。
透過逆向惡意應用,WeipTech
發現了一段程式碼,這段程式碼中使用靜態key
為“mischa07
”的AES加密演算法對資料進行加密。利用靜態key,我們能夠解密使用者名稱和密碼。經過登陸驗證,他們確信記錄中的資訊都是有效的Apple賬戶。在網站管理員發現、關閉服務之前,WeipTech調查人員下載了大約一半的資料庫記錄。
8月25日,WeipTech
在微博釋出漏洞預警,將漏洞提交到WooYun
(烏雲漏洞報告平臺),並後續轉交第三方合作機構CNCERT/CC
(國家網際網路應急響應中心)處理。
當 Palo Alto Networks
研究人員在分析WeipTech
報告的惡意軟體時,我們發現它沒有包含惡意程式碼來竊取密碼並上傳資料到C2 伺服器
。然而,透過WeipTech
提供的其他資訊,我們發現存在其他的惡意越獄應用,存在竊取使用者資訊並上傳到相同的伺服器上。
我們將這個新的iOS惡意軟體家族命名為 “KeyRaider
” ,因為它會竊取密碼、私鑰和證照。
KeyRaider 來源
據我們瞭解,KeyRaider
僅透過 Weiphone’Cydia
倉庫在越獄iOS裝置上來進行傳播。不像其他的Cydia源
,如BigBoss
、ModMyi
。WeiPhone
為註冊使用者提供私有倉庫,使用者可以直接上傳他們的越獄應用app,並與其他人進行共享
在2015年,一個名為“mischa07
”的使用者,上傳了至少15款KeyRaider
應用到它的私人倉庫(http://apt.so/index.php?r=cydiaTa/index&user_id=8676626),如Figure 2
. 此外,他的名字也被作為加解密key
,硬編碼在惡意軟體中,如Figure 3
。我們高度懷疑此人為KeyRaider’s
的開發者。
Figure 2. mischa07’s 個人Cydia 倉庫
Figure 3. “mischa07″ 作為加密key被硬編碼在惡意軟中
根據Weiphone
的網頁顯示,一些由mischa07
上傳的越獄應用已經被下載過上萬次,如Figure 4
。這些app和工具提供如遊戲作弊、系統調優和app廣告過濾等功能。
在mischa07
的倉庫中,有兩款特別的應用
●iappstore
(Figure 5): 能夠讓使用者從Apple官方應用商店免費下載需要付費的應用
●iappinbuy
:能夠讓使用者在一些官方應用商店下載的app中免費購買付費道具或服務
Mischa07
也在 Weiphone
社群中對這兩款越獄應用進行推廣,如Figure 6
,但一些使用者並不相信這些所謂神奇的功能。然而,根據Weiphone’s
網站上顯示,iappinbuy
仍人有20,199
次下載,如Figure 4
,而iappstore
有62次下載(僅對最新版進行統計)
Figure 4. 一個惡意樣本被下載超過30,000 次
Figure 5. iappstore 惡意軟體能夠直接從App Store安裝需要付費的 apps
Figure 6. 作者推廣它的iappstore 應用
另一名以“氵刀八木
” 或 “bamu
”.的身份的Weiphone 使用者也在傳播 KeyRaider
惡意軟體。因為Bamu
的個人倉庫(http://apt.so/aptso)提供許許多有用的應用,這使得它在社群中非常受歡迎。在這次攻擊被揭露之後,bamu
已經刪除了倉庫中他所上傳的所有惡意軟體,並關閉了它。在Weiphone
的幫助下,我們對Bamu
上傳的所有應用進行了檢查,其中77款應用中都包含了KeyRaider
惡意軟體。與mischa07
開發不同版本的惡意軟體不同,bamu
是透過對已存在app(如iFile
, iCleanPro
和 avfun
)進行重新打包,並在其中加入惡意程式碼。
當KeyRaider
將竊取到的使用者密碼上傳到C2 伺服器
時, HTTP URL
中會包含一個名為 “flag
”或”from
”的引數,用來追蹤受感染的來源。在mischa07
的程式碼中,這個引數的值通常為app應用的名字,如’letv
’。而在bamu
的應用中,則是“bamu
”。從洩露的資料的統計得出,超過67%的被竊取資訊來至與bamu
.
因為bamu
僅僅是一個分銷者(distributor
),後面的行為分析主要集中在來至mischa07
的應用樣本
竊取使用者資料
KeyRaider
收集三種使用者資料,透過HTTP
請求上傳到C2伺服器
,這裡發現了兩個不同的C2伺服器
•<top100.gotoip4.com>
•<www.wushidou.cn>
在分析的過程中,這些域名都被解析到了113.10.174.167
這個IP地址。在C2伺服器上的 “top100
” 資料庫裡有三張表 “aid
”, “cer
t” 和 “other
”。 在server
端,KeyRaider
利用4個PHP
指令碼來存取資料庫,aid.php
, cert.php
, other.php
和 data.php
透過分析程式碼和WeipTech
下載的洩露資料,我們發現aid
表儲存225,941
條記錄,包含Apple ID
的使用者名稱、密碼、裝置GUID
。 Cert
表儲存了5,841
條受感染裝置的證照和私鑰,而這些資訊用於Apple
推送訊息通知服務,如Figure 7
。最後other
表儲存了超過3,000條
裝置的GUID
和來至app store server
的app
購買憑證
Figure 7. 洩露cert表中的一條記錄
我們對洩露的Apple ID
郵箱地址進行了整理,有超過一半的使用者使用QQ郵箱,下是排名前十的賬戶郵箱地址域名(其中6個主要由中國使用者在使用)
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
然而,我們也發現一些屬於其他國家或地區的郵箱地址域名,這包括
•tw: Taiwan
•fr: France
•ru: Russia
•jp: Japan
•uk: United Kingdom
•ca: Canada
•de: Germany
•au: Australia
•us: United States
•cz: Czech Republic
•il: Israel
•it: Italy
•nl: Netherlands
•es: Spain
•vn: Vietnam
•pl: Poland
•sg: Singapore
•kr: South Korea
惡意行為
KeyRaider
惡意程式碼存在於 Mach-O
動態庫中,作為MobileSubstrate
框架的外掛。透過MobileSubstrate API
,惡意軟體能夠hook
系統程式或其他iOS apps
的任意API
之前許多iOS惡意軟體家族也同樣濫用MobileSubstrate
。比如由Reddit
使用者發現,SektionEins
分析的the Unflod (aka SSLCreds or Unflod Baby Panda
) ,會攔截SSL
加密通訊,竊取Apple
賬戶密碼。去年發現的AppBuler
也利用了同樣的技術來竊取密碼、在app store
中購買app
。KeyRaider
進一步利用了次技術。KeyRaider
主要實現了一下惡意行為
●竊取Apple賬戶(使用者名稱、密碼)和裝置GUID
●竊取被用於Apple推送通知服務的證照和私鑰
●阻住受感染的裝置透過密碼和iCloud 服務來解鎖裝置
注:MobileSubstrate
是一個框架,允許第三方的開發者在系統的方法裡打一些執行時補丁以擴充套件一些方法,類似於OS X上的Application Enhancer
。所以iOS系統越獄環境下安裝絕大部分外掛,必須首先安裝MobileSubstrate
竊取Apple賬戶資料
大部分KeyRaider
樣本hook itunesstored
程式的 SSLRead
和SSLWrite
函式(Figure 8). itunesstored
是系統守護程式,負責與app store
進行通訊(使用 iTunes 協議)。
Figure 8. KeyRaider hooks SSLRead and SSLWrite in itunesstored
當App Store
客戶端像使用者請求輸入Apple
賬戶登入時,登入資訊會透過SSL
加密會話傳送到App Store server
。在SSLwrite
的替換函式中,KeyRaider
會尋找此類會話,透過特定的pattern在傳送的資料中搜尋Apple
賬戶的使用者名稱、密碼和裝置 GUID
(Figure 9). 接下來,在SSLRead
替換函式中,這些憑證會透過AES加密演算法,使用靜態的key “mischa07
”來加密,然後傳送到KeyRaider C2 伺服器
(Figure 10).
Figure 9. Searching for Apple account information in SSL data
Figure 10. Uploading stolen credentials to the C2 server
除了hook SSLRead
和SSLWrite
,KeyRaider
需要呼叫MGCopyAnswer
(“UniqueDeviceID
”) 來讀取裝置的GUID
。
竊取證照和私鑰
在一些樣本中,KeyRaider
也會hook apsd
守護程式 – 負責iOS
系統的Apple
推送通知服務。它hook
定義在Security
框架的SecItemCopyMatching
函式。這個API用於搜尋匹配給定查詢的 keychain items
。
當搜尋查詢有值為“APSClientIdentity
”的label
,KeyRaider
會執行原來SecItemCopyMatching
函式,然後呼叫SecIdentityCopyCertificate
和 SecIdentityCopyPrivateKey
,從原本函式執行返回結果中來複製證照和私鑰 (Figure 11). 之後,這些資訊和GUID
一起被髮送到C2伺服器上(Figure 12). 在iOS keychain
中,被標記APSClientIdentity
的key用於推送通知。透過這些資訊,攻擊者可以在系統上偽造推送通知。
Figure 11. Copy push service’s certificate and private key
Figure 12. Upload certificate and key
鎖定裝置
當KeyRaider hook SecItemCopyMatching
,除了攔截通知證照,它也會將當前查詢的label和特定的字串 “com.Apple.lockdown.identity.activation
”進行比較。如果匹配,KeyRaider
會將查詢結果的值設定為0. (Figure 13)
再發布文章之前,網上還沒有關於com.apple.lockdown.identity.activation
查詢的公開文件。我們相信這個查詢是用於解鎖裝置的。透過將返回值設定為0,KeyRaider
會阻止使用者解鎖他們的裝置,即使透過手機輸入了正確的解鎖碼或透過iCloud
服務遠端解鎖裝置。
在我們目前發現的所有樣本資訊中,這段程式碼是獨立的,沒有被其它程式碼呼叫。它僅僅是被實現,然後被匯出為一個函式。然而,我們已經有證據表明,利用這個函式來進行實際攻擊已經發生了。
免費的APPS
一些KeyRaider
樣本實現了從C2伺服器
下載購買憑證和Apple賬戶的功能。但這個功能僅僅在 iappstore
和 iappinbuy
兩個應用中被真正使用過。 根據使用者的描述,iappstore
能夠免費從app store
中下載任意應用。讓我們來看一下他們是如何實現的.
這個app hook SSLWrite
兩次,第一次用於竊取密碼。第二次hook
會嘗試判斷當前的HTTP請求是否是“POST /WebObjects/MZBuy.woa/wa/buyProduct
”。以此來判斷當前會話是否是使用iTunes
協議進行購買。(Figure 14).
Figure 14. Hooking app purchase session
如果請求是購買行為,SSLWrite會被呼叫,hooking
程式碼會嘗試在傳送的資料(用於獲取當前app的付款資訊)中匹配一些關鍵詞,如“salableAdamId
”, “appExtVrsId
”, “vid
”, “price
”, “guid
”, “installedSoftwareRating
” and “pricingParameters
” 。如果這個app是需要付費的,fire()
函式會被呼叫。
Fire
函式會呼叫readAid()
函式,readAid
函式會讀取位於/var/mobile/Documents/iappstore_aid.log
的本地檔案。這個檔案包含了使用者賬戶的使用者名稱、密碼、裝置GUID
,相關的iTunes
會話token
、cookie
、電話號碼
、運營商
、作業系統資訊
、iTunes CDN 伺服器號
。然後解析資料,建立一個賬戶物件。
如果檔案不存在,它會呼叫 readAidUrl()
,readAidUrl
會從KeyRaider C2伺服器
下載新的賬戶資訊,然後建立一個賬戶物件。(Figure 15). Figure 16 展示了一個從伺服器下載的賬戶。
Figure 15. Downloads apple account from C2 server
Figure 16. Stolen apple account was downloaded from C2 server
建立賬戶物件之後,fire()
會生成plist格式的字串,裡面包含賬戶資訊,接著呼叫 login()
和sendBuy()
.
Login()
函式會建立一個連線到以下URL的HTTP連線,URL中會帶上plist
字串和一個類似Appstore
客戶端使用者代理的值
•p*-buy.itunes.Apple.com/WebObjects/MZFinance.woa/wa/authenticate
這會造成使用遠端Apple賬戶來登陸當前的iTunes
會話(Figure 17)
Figure 17. Emulating login protocol
發起Login
請求之後,login()
會解析返回的結果,獲取cookie
、token
和其他資訊,然後將這些資訊和賬戶密碼儲存到本地iappstore_aid.log
檔案中,供後續購買時使用。如果因為密碼錯誤導致登陸失敗,它會再一次呼叫readAidUrl()
,從C2 server
中獲取一個不同的Apple賬戶。
sendBuy()
函式的工作與login()
函式類似,但請求了另一個URL
,用於app
購買驗證
•p*-buy.itunes.apple.com/WebObjects/MZBuy.woa/wa/buyProduct
透過這個過程,iappstore
應用可以使用竊取到的賬戶成功購買任意app 除了這些操作之外,在兩個獨立的函式verifySF()
和verifySF2()
中,KeyRaider
也會嘗試獲取Apple賬戶密碼找回問題和答案。這個函式在我們的分析樣本中還未完成。
iappinpay
的功能和iappstore
類似。唯一的不同是購買介面改變了。(Figure 18)。在C2伺服器資料庫中也儲存了一些之前在app內購買( In-App-Purchase)的憑證,作者似乎計劃實現重用這些憑證的功能,如將這些憑證傳送到Apple server,以證明他們之前已經購買過此服務。
電話勒索
除了竊取Apple賬戶來購買app,KeyRaider
擁有內建的鎖定功能來進行勒索。
之前的一些iPhone勒索軟體工具基於透過iCloud服務
來遠端控制iOS裝置。這類攻擊可以透過重置賬號密碼來解決。而對於KeyRaider
,它在本地禁用了所有解鎖操作,及時是輸入的正確的解鎖碼或密碼。此外,它也能使用竊取的證照和私鑰來傳送通知訊息來索要贖金,而推送通知訊息不需要經過Apple推送伺服器。因此,之前使用的解決方法不再有效。
下面是一名受害者報告的被勒索截圖
Figure 19. Ransom message on locked iPhone
其他潛在的風險
下面是一些攻擊者利用你洩露的使用者名稱、密碼等資訊能夠做的事情
應用推廣:在受害者手機中安裝指定的app,來提升App Store rankings
Cash Back:使用的賬戶來購買付費應用
垃圾郵件:使用iMessage
來傳送垃圾資訊
勒索:利用賬戶密碼,竊取隱私資訊來進行勒索 等等
保護和預防
需要注意,KeyRaider
僅影響越獄的iOS裝置,未越獄裝置不受影響。 WeipTech
上線了查詢服務 <http://www.weiptech.org/ >,你可以輸入自己的Apple賬戶郵箱,瞭解它是否被洩露。Palo Alto Networks
在8月26日將竊取的賬戶資訊反饋給了Apple
。還需要注意的是,因為攻擊者發現並修復了其接收資料伺服器的漏洞,WeipTech
只能還原約一半的被竊取資料。因此,從不受信任的Cydia 源
安裝過這類越獄應用的使用者可能都會受影響。
使用者可以透過下列方法來判斷自己的iOS裝置是否受影響
1.透過Cydia安裝openssh
2.透過SSH連線到device
3.到 /Library/MobileSubstrate/DynamicLibraries/ 目錄,對目錄下的所有檔案grep以下字串
•wushidou
•gotoip4
•bamu
•getHanzi
如果任何dylib
檔案包含任意一個字串,刪除這些檔案和同名的plist
檔案,然後重新啟動
除此之外,我們也建議使用者在移除惡意軟體之後,修改Apple賬戶的密碼,並開啟雙因素認證功能。https://support.apple.com/en-us/HT204152 最後,如果你想避免遭遇 KeyRaider
以及類似惡意軟體,請儘量避免越獄。Cydia 源
不會對上傳應用進行嚴格的安全檢查,透過它安裝應用存在風險。
樣本資訊
9ae5549fdd90142985c3ae7a7e983d4fcb2b797f CertPlugin.dylib
bb56acf8b48900f62eb4e4380dcf7f5acfbdf80d MPPlugin.dylib
5c7c83ab04858890d74d96cd1f353e24dec3ba66 iappinbuy.dylib
717373f57ff4398316cce593af11bd45c55c9b91 iappstore.dylib
8886d72b087017b0cdca2f18b0005b6cb302e83d 9catbbs.GamePlugin_6.1-9.deb
4a154eabd5a5bd6ad0203eea6ed68b31e25811d7 9catbbs.MPPlugin_1.3.deb
e0576cd9831f1c6495408471fcacb1b54597ac24 9catbbs.iappinbuy_1.0.deb
af5d7ffe0d1561f77e979c189f22e11a33c7a407 9catbbs.iappstore_4.0.deb
a05b9af5f4c40129575cce321cd4b0435f89fba8 9catbbs.ibackground_3.2.deb
1cba9fe852b05c4843922c123c06117191958e1d repo.sunbelife.batterylife_1.4.1.deb
致謝
特別感謝來自WeipTech
的i_82
向我們共享資料、報告以及其它有用的資訊。 感謝來自WeipTech
的CDSQ
向我們提供樣本,感謝來自WooYun
的Xsser
、FengGou
的資訊共享。 感謝Palo Alto Networks
的Sereyvathana Ty
、Zhaoyan Xu
、Rongbo Shao
幾位對惡意軟體進行的分析,感謝Palo Alto Networks
的Ryan Olson
對本報告的審校。
相關文章
- ios蘋果企業開發者賬號與蘋果另外兩種賬號的區別2020-10-28iOS蘋果
- 蘋果企業賬號和個人賬號區別2020-03-23蘋果
- 盤點:2020年最大的十起資料洩露事件2021-01-28事件
- 蘋果再遭銷量危機(蘋果企業賬號)2020-02-13蘋果
- 蘋果企業賬號是什麼?2020-04-29蘋果
- 等待蘋果版號新規2020-07-31蘋果
- 蘋果開發者賬號最新註冊流程(公司賬號篇)2019-08-29蘋果
- 賬號越來越難申請,蘋果企業賬號回收2020-01-10蘋果
- 更換蘋果企業賬號的郵箱2018-03-16蘋果
- 蘋果開發者賬號被封號了怎麼辦?如何規避封號風險?2024-03-27蘋果
- 禍從天上來,Spotify35萬賬號遭洩露2020-11-25
- 蘋果開發者賬號最新註冊流程(個人賬號篇)2019-08-15蘋果
- ios蘋果企業開發者賬號2020-03-17iOS蘋果
- 蘋果賬號現在好申請嗎2021-04-27蘋果
- 蘋果macOS“快速預覽”曝漏洞:洩露加密檔案2018-06-20蘋果Mac加密
- 蘋果企業開發者賬號漲價的前因後果2020-04-10蘋果
- 申請ios蘋果企業開發者賬號以來最大的bug:企業郵箱2020-04-22iOS蘋果
- 蘋果開發者賬號出售—蘋果將要推出廉價版HomePod2020-02-25蘋果
- 蘋果賬號—索尼趣味新專利申請2020-02-28蘋果
- 蘋果企業開發者賬號價格2020-10-27蘋果
- ios蘋果企業賬號知識盤點2020-05-19iOS蘋果
- 收購蘋果企業開發者賬號2020-03-25蘋果
- 蘋果公司開發者賬號的申請記錄2018-06-14蘋果
- ios蘋果企業開發者賬號的收購2020-04-01iOS蘋果
- 領英史上最大規模資料洩露事件;iPhone熱點功能的一個bug可以讓你“永遠”連不上Wi-Fi2021-07-02事件iPhone
- 蘋果企業開發者賬號:個人開發者賬號被封原因2020-02-06蘋果
- 蘋果企業賬號購買:蘋果的創新設計從細節開始2020-03-11蘋果
- 疫情之下蘋果企業開發者賬號再度封號2020-04-08蘋果
- DDD:不要洩露領域事件2024-12-15事件
- 我們該從Facebook史上最大資料洩露事件中明白什麼?2018-03-22大資料事件
- 蘋果企業賬號回收—蘋果考慮在Eemshaven地區建立新的資料中心2020-01-08蘋果
- 蘋果企業開發者賬號卡姆回收2020-10-26蘋果
- 帶你轉蘋果企業開發者賬號2020-11-02蘋果
- 蘋果(企業)開發者賬號原理、機制2020-05-15蘋果
- 蘋果企業開發者賬號賣多少錢2020-04-16蘋果
- 蘋果企業開發者賬號的價格特點2020-04-03蘋果
- 資訊洩露的後果很可怕2022-05-05
- 蘋果企業開發者賬號怎麼巧妙避免封號2020-04-30蘋果