這篇文章主要進行了一項關于惡意APP盈利方式的研究。這批惡意應用看似是一些約會類型應用,但實際上這些約會應用唯一的目的是就讓消費者購買VIP服務來和其他用戶交流,而這些“其他用戶”很有可能是一些仿冒女性的虛假用戶。這些惡意的約會類軟件可以被稱作虛假交友軟件。這篇論文系統地研究了這些虛假交友軟件,其中我們通過軟件內的現有賬戶信息對軟件的行為特征進行了分析。通過分析我們發現這些惡意聊天軟件內的賬戶大多數并不是真人,而是通過預設信息設定好的聊天機器人。同時我們也分析研究了這種軟件的商業運作模型,發現有諸多參與方均與整套產業鏈有瓜葛,包括:惡意軟件開發者、發布應用程序以獲取利潤的出版商以及負責向終端用戶分發應用程序的分銷網絡。這篇文章首次系統地研究了欺詐性約會軟件,研究結果表明目前急需一種保護普通消費者的解決方案。
近些年來,移動端惡意軟件正在迅速成為全球性的嚴重威脅,巨大的非法收益刺激惡意攻擊者們開發了許多惡意軟件。過往研究表明,惡意攻擊者可以通過在純凈應用程序中插入廣告或通過向premiumrate號碼發送短信來獲取利潤。但隨著最新Android版本中新防御系統的部署,以上這些方法的效益逐漸降低。同時,我們發現了惡意攻擊者新的盈利方式:消費者被誘導安裝一種特殊類型的約會應用,消費者只有支付一些費用才能與軟件中的用戶聊天,而那些軟件中的“其他用戶”通常都是聊天機器人,這種特殊類型的約會應用實際上就是約會欺詐應用。
這些虛假約會應用通常會通過廣告進行分發,這些廣告會展示誘人的圖片或者虛假的說明來誘惑用戶安裝。一旦用戶安裝上了這些軟件,軟件就會需要用戶進行注冊。通過對應用進行分析,我們發現這些應用的注冊方式都十分簡便,不用提供個人信息(諸如郵箱或手機號)就能簡單注冊這些應用,這與以往的竊取用戶隱私的傳統作惡方式大有不同。
在用戶注冊登錄后,許多(女性)用戶會在幾分鐘內發起包括圖片或者誘人話語的會話請求。比如,在我們研究中的一個APP里,在登錄軟件五分鐘內(如下圖),就收到了7個會話請求,這些發來會話請求的人頭像都是漂亮的小姐姐,這些小姐姐頭像的用戶里有兩個在同一時間(8:29)里發出了同樣的信息“你老家哪的?”
鑒于這種異常的用戶行為,我們懷疑這個應用程序里的賬戶不是真人,而是聊天機器人。為了證實這個猜測,我們向一個用戶(昵稱:美麗的鏡子)發送了與原會話無關的其他內容,有意思的是只有這一條信息可以免費發,后面的不能再免費了(如下圖)。
如果想繼續交流,就得購買包月寫信服務,這個包月服務大概五十多塊錢(如圖3)。我們購買了包月服務以后,原來交流過的用戶就不再吭聲了,我們也沒有收到更多其他用戶發起的會話了。
有約會欺詐現象的軟件絕非個例,這種軟件的運作有著一整套地下產業鏈。如果一個約會軟件有以下幾個特征,那它就可以被認作為約會欺詐軟件:
一、異常的用戶行為:新用戶注冊后,幾分鐘內就可以收到數條會話信息;
二、異常的信息內容:收到的信息大多數上下文無關且不知所云;
三、增值費用:新用戶只能免費發一條或幾條信息,之后就需購買其他增值服務才能繼續聊天。而且一旦購買增值服務后,受害者就不會再收到其他會話信息了。
在這篇文章中,我們系統的研究了這種應用程序:包括用戶畫像和行為模式、業務模型和產業鏈相關方,以及這些應用程序對受害者的影響和分布情況。我們的研究圍繞著這幾個問題:虛假約會軟件中的其他用戶是真人還是聊天機器人?虛假約會軟件的產業鏈是怎么樣的?有哪些人員參與了產業鏈?虛假約會軟件是怎么分發的?為了進行這項研究,我們從9個安卓應用市場和Google play中下載了250萬個應用程序,并且檢測到了967個不同的約會詐騙程序,并且根據代碼相似性,我們將其分為了22個家族,通過分析,我們發現了如下現象:
一、這些虛假約會軟件中的“其他用戶”大多數都是機器人,他們的用戶資料和頭像都是假的。例如,同一應用程序中的多個不同帳戶使用同一個用戶配置文件,甚至不同的應用程序中也使用了同樣的用戶資料。
二、產業鏈涉及多方,包括應用程序生產商、應用程序發行商和分銷網絡。例如,不同軟件包名的虛假約會軟件都用了同一個開發者簽名,并由具有相同法定代表人的不同公司發布。
三、這些應用程序通常通過應用程序市場和廣告分發。同時還使用了欺詐性排名技術,例如使用虛假的用戶評論和評級來操縱應用程序的排名(即推廣應用程序的一種手段)。
四、我們根據幾份報告對我們檢測到的虛假約會類軟件的總體收入進行了估計。根據估計,市場總規模約為2億至20億美元。
研究相關應用程序和實驗結果見:https://github.com/fakedatingapp/fakedatingapp
下表為原始數據集情況,其中包含超過250萬個應用程序,這些應用程序來自包括官方的googleplay商店在內的十個應用市場。這些應用程序是在2017年四月到八月之間下載的,同時我們還爬取了這些應用的包括應用程序名稱、發行商公司名稱、應用程序版本、評分、下載次數等。
我們提出了一種半自動的方法來識別約會欺詐應用,如下圖所示。我們首先將數據庫中進行關鍵字匹配(例如應用描述和程序名)來篩選出候選應用數據集。然后,我們對選定的候選應用程序進行靜態代碼分析來檢查它們是否嵌入了應用程序購買服務。
然后根據資源相似度和代碼相似度對它們進行聚類。對于每個被聚類的集群中的應用程序,我們還可以人工檢測它們是否具有可疑的特征,例如異常的用戶行為。此外,我們還分析了用戶的評論內容,進一步證實了在現實世界中存在這些應用的受害者。
由于這些約會欺詐應用通常會使用誘人的文本來吸引受害者,所以我們首先手動總結了這些應用的描述或應用名稱中經常出現的11個常用詞(秘密約會、本地單身、find girl、尋愛、約會邀請、相親、孤獨、打招呼、速配、就近約會、聊天)。然后使用一個快速的關鍵字匹配方法來識別出了潛在的約會應用程序。最終,我們在能夠在250萬個應用程序識別出至少包含兩個關鍵詞的應用程序有61133個。
約會欺詐應用最重要的特征之一是它們誘導用戶購買其增值服務。對于候選數據集,我們會進行靜態代碼分析以檢測它們是否包含嵌入式應用內購買服務,如果包含,則會將它們標識為進一步的候選集合。
一般來說,應用實現應用內購買功能有兩種方式。最流行的方法是嵌入應用內購買SDK,另一種是自己實現支付功能(例如向premium number發送短信)。在本文中,我們將分別討論。
識別應用SDK需要注意代碼混淆和SDK版本問題。由于從Google Play收取應用和下載費用的開發人員必須使用Google Plays支付系統(Google Play計費API),因此我們可以通過檢查相應的權限“com.android.vending.Billing”和相關API(如billingClient.launchBillingFlow)識別,而在一些沒有googleplay服務的國家或地區(如中國),應用開發者傾向于使用第三方的應用內購買服務。例如,阿里支付和微信支付是中國最流行的兩種第三方支付服務。在本文中,我們利用LibRadar這個工具來識別應用程序中使用的第三方庫。我們評估了18種在中國和世界范圍內廣泛使用的第三方支付SDK,如下表所示。此處我們不依賴簡單的文本匹配,而是通過代碼比較來識別第三方支付SDK。LibRadar使用基于集群的方法標記了這些第三方SDK的代碼特性,我們使用LibRadar來識別這些SDK,由于其具有模糊性,因此也可以用來識別不同的SDK版本。
由于有些應用可以自己實現支付功能(如向premium number發送短信),因此我們在反編譯后的APK布局配置文件(如strings.xml)中確定了5個相關關鍵字(purchase & VIP, privi-lege, subscription service, unlimited chat, recharge account.)作為補充。在61133個數據備選中共篩選出23546個應用包含支付功能。
對于嵌入支付功能的約會應用程序,我們根據來源相似性和代碼相似度對其進行聚類。考慮到一個應用程序(包名)對應多個APK,所以爬取了四個月中的不同版本并根據包名刪除掉了重復的APK。
我們首先利用FSqua-DRA2來測量每個應用程序對的資源相似性,然后使用應用程序克隆檢測工具WuKong來測量代碼相似性。對于資源相似度得分高于90%和代碼相似度得分高于85%的應用程序,我們將它們分組到同一個集群中。集群中數量從1到496不等。最后,我們選取數量大于等于2的集群作為進一步的實驗集。此批共選出5547個應用程序(存在1824個唯一包名),這批應用程序共分為了226個集群。
對于每個集群中的應用程序,我們抽取了三個應用程序(總共596個應用程序)進行查驗。我們將其安裝在智能手機上,并且注冊了真實賬戶,檢查其是否具有異常或不正常的用戶行為,盡管我們的注冊信息是空的或完全沒有吸引力的,依舊會有很多“其他”用戶向我們發起會話。通過人工檢查,我們最終將226個集群中的22個標記為約會欺詐應用。
此次共統計出3697個欺詐約會應用程序,這批apk有967個包名。這批應用程序占約會應用程序總集的6%,這比我們預期的要高得多。對于每個家族,我們將下載次數最多的包名中的關鍵字作為家族名。例如, Youyuan家族包含了最多的包名和APK包,大約三分之一的APK和超過一半的包都屬于這個家族。不同市場的欺詐約會應用分布如下表所示。其中百度市場擁有最多的欺詐性約會應用,有超過三分之二的欺詐交友應用程序來自這個市場。官方的googleplay市場包含的FD應用數量最少,只有7個應用被標記。
從虛假約會應用程序本身很難獲取到賬號配置文件,因此我們通過網絡流量跟蹤的方式來獲取用戶配置文件,我們在每個家族中隨機選三個應用程序并在真機上運行,然后通過Tcpdump來記錄這些網絡流量,下表列出了每個家族中配置文件請求的服務器地址,文件下載地址和頭像下載地址。有意思的是,每個家族分析出來的三個程序共用同一個服務器地址,雖然它們有不同的包名或者開發人員簽名,仍表明他們屬于同一個家族,由同一群人掌控。
通過進一步研究表明,網絡請求信息通常包含地里位置數據等信息、信息平臺、請求的用戶信息的數量等等,信息包含一個用戶列表里,其中每個用戶都由一個唯一標識符表示,同在列表里的還有頭像文件的URL和一些其他的個人信息(昵稱年齡等等)
通過進一步研究網絡請求和響應消息,我們觀察到一些應用程序,(例如youyuan家族里的com.hzsj.qmr1和come.wanjiang.tcyasq), 在請求信息中嵌入指紋或包名來區分應用程序,并且另外一些應用程序 (例如同城速配家族中的com.yuanfenapp.tcyyjiaoyou和ltd.onedream.snsapp.moaiyueai)則完全共享了請求及回應信息。
我們通過構造不同的請求信息以獲取響應頁面,并通過URL回傳情況來識獲取到我們想要的信息。但是這些軟件也對應存在一些反爬對抗,如“Youyuan”, “99Paoyuan”和 “Jucomic”。
由于被測試的應用程序只顯示與我們在同一個城市的用戶,所以的爬蟲程序配備了GPS模擬器,將我們的位置設置為中國的50個主要城市和美國的10個主要城市。并且利用了一個自動化的UI測試工具DroidBot來生成UI下拉事件并發送到被測程序,用以模擬真實的用戶行為。以下是22個軟件的服務器地址情況:
我們認為虛假約會程序中的假帳戶大多會使用偷來的或者網上的照片。為了識別這些假帳戶,我們把同一個應用中擁有相同頭像照片但其他信息不同(如昵稱、家鄉、年齡等)的帳戶視為假帳戶。同時我們也設法排除了默認的賬戶。
為了應對頭像圖像的剪輯和分辨率調整等簡單圖像處理情況,我們首先使用python圖像處理庫PIL對圖像進行限制和縮放,然后再使用DupDetector來識別頭像中的重復圖像閾值為95%。如在youairen家族的中的com.jqyuehui.main的包名下,我們抓取了419352個帳戶配置文件。
如下圖所示,我們可以觀察到偽造帳戶可能存在于同一個應用程序或家族中,但有的也跨了不同的家族。通過較為保守策略的檢測,每個APP中假帳戶配置文件的百分比并不高,只有三個應用程序超過10%,大多數的應用程序只有不到1%的假賬戶資料。
若想從交互方式角度識別虛假賬戶,則可認為如果賬戶是真人,談話信息應該與主題相關。在每個家族中我們都隨機選擇一個應用程序并安裝在真機設備上,并且注冊兩個賬戶(一個是男性用戶,一個是女性用戶),隨機登錄并開始對話。此外,我們還購買了付費服務并比較了購買服務前后的結果。如下表所示:
(1)這些軟件的注冊過程相當簡單,大多數應用程序不需要任何個人信息 ,22個應用中只有四個應用程序需要電話號碼或者電子郵件賬號
(2)一些應用程序的對話充滿了模板套路, 22個應用中有3個應用程序使用基于模板的對話,這些模板可以在應用程序的資源文件中找到
(3)男性注冊用戶和女性注冊用戶在使用方面存在巨大差別。對于男性用戶來說,他們一上線就會有多女性賬戶在短時間內聯系到他們。而對于注冊信息為女性的用戶來說來說,幾乎沒有收到任何信息。這表明這些應用主要針對男性用戶。
(4)超過70%的應用程序需要購買高級服務,否則用戶無法回復信息。對于剩下的6個應用程序,用戶最多只能發三條信息。
(5)對話過程中的交談信息多與話題完全無關。在購買增值服務之前,我們只能在6個應用程序中發送消息,而這些應用程序中只有4個帳戶回復了我們,而且回復信息完全驢頭不對馬嘴。
(6)購買了增值服務后,應用程序就不再回應任何信息。我們花了176美元為這22個應用程序購買了增值服務。一旦我們購買服務,所有的應用程序都停止回復我們的消息。這些應用程序的唯一任務就是吸引用戶購買所謂的增值服務,而實際上這種服務沒有任何用處。
通過分析我們認為,這些應用中除了受害人以外其他人都不是真人。首先,同一家族中不同應用程序中的帳戶配置文件大多是相同的,這些帳戶配置文件可以自動生成。其次,應用程序會話中的消息與主題無關,并且在購買增值服務后就再不會收到任何消息。所以這些模式可以說明這些“其他用戶”是由計算機程序生成的,而不是真實的人。
如果兩個不同應用的簽名相同,我們就假設這兩個應用是由同一個開發者開發的。隨即我們從應用市場收集已發布APP對應的公司名稱。并且我們還根據相應政府機構的公開記錄,收集到了公司法定代表人的姓名,這些應用程序發布者可以從受害者處獲益。下表展示了相關方的一些數據,第一列為家族名,第二列為家族中的包名數量,第三列家族中開發者簽名數量,而最后兩列顯示不同公司名稱和公司法律代表的數量。由于同一人可以擔任多家公司的法定代表人,因此法定代表人的數量小于或等于公司的數量。
一、開發人員簽名的數量通常比包名的數量要多。這表明,不同應用程序的開發者可能是同一個人。我們還發現,即使某些應用程序的開發人員簽名不同,這些應用程序的META-INF目錄中的RSA文件的名稱也是相同的。
二、同一家族的應用程序由多家公司發布。這可以解釋為生產商可能會將他們的應用程序出售給不同的公司進行發布。例如在如下代碼片段中開發人員硬編碼了包名稱和用于接收受害者付款的付款帳戶之間的關系,這樣應用程序生產商就可以向不同的公司銷售同一個應用程序的不同包名。
三、由于一個法定代表人可以擁有多個公司,所以這些應用程序就可以通過不同的公司多次發布。如果一家公司的應用程序因為用戶投訴而而從應用市場下架,那么其他公司下的應用程序仍然可以存續。
下圖簡述了運作的商業模式情況。具體來說,應用程序生產者開發應用程序并將其出售給出版商。出版商通常注冊多家公司,并使用這些公司來分發他們的應用程序,例如通過應用商店等。為了推廣這些應用,他們也會使用排名欺詐使用技術來提高這些應用的推薦排名。此外,發布者還可以向廣告網絡付費,以分發他們的應用程序。當受害者被騙安裝這些應用程序并購買增值服務時,出版商將獲得收益。在某些情況下,制作者和出版商可能來自同一家公司,但在產業鏈中扮演兩個角色。
本文對欺騙性約會應用進行了系統的研究,包括其特點、商業模式、分銷網絡進行了分析。由于當前的反病毒引擎大多無法檢測到相關應用程序,我們認為應該提出一個解決方案來檢測和阻止這些應用的分發以保護用戶權益不受損害。
來源:安全客