618電商大促正在火爆進行中,各個平臺、商家都使出了渾身解數,也有人趁機渾水摸魚。近期,不少用戶的電腦頻繁出現托盤區(qū)閃爍彈窗,點擊后會打開淘寶天貓的6.18促銷網頁。
難道是淘寶天貓的新手段?據火絨安全報告,經過工程師溯源調查后發(fā)現,該彈窗均竟然來自于用戶量極大的搜狗輸入法!
據介紹,搜狗輸入法的這個廣告配置通過云控下發(fā),無法通過設置關閉,而且除了瘋狂彈窗,還存在統計用戶瀏覽器瀏覽歷史數據等越位行為,符合廣告程序的定義。
根據分析,搜狗輸入法通過云控,向用戶下發(fā)專門添加了用以在6.18期間彈窗的相關組件,而該組件與“搜狗輸入法”主程序功能之間并無任何關聯作用。
用戶安裝運行“搜狗輸入法”后,就會頻繁收到托盤閃爍彈窗,如果不小心點擊,就會打開關于天貓6.18整個推廣促銷網頁。
雖然右鍵可暫時退出該彈窗,但根據其云控下發(fā)的配置,5小時后仍舊會再次頑固彈出,循環(huán)往復,嚴重影響用戶的正常上網及工作。
更為嚴重的是,搜狗輸入法還會收集用戶本地的安全軟件、廣告攔截工具的運行狀態(tài),甚至搜集用戶IE瀏覽器和搜狗瀏覽器歷史記錄數量、頁面標題數量,并回傳至后臺服務器,推測是用于制作用戶畫像,進行精準推廣。
該行為涉及隱私數據,嚴重越位,存在損害用戶權益的風險。
目前,火絨最新版已對搜狗輸入法內的彈窗與搜集用戶信息的模塊進行攔截查殺,可能會導致搜狗輸入法的“工具”功能無法使用,但不影響文字輸入等主要功能。
附錄:火絨安全分析報告原文—;—;
一、詳細分析近期,搜狗輸入法用戶大量遇到6.18托盤廣告彈窗的情況,該流氓推廣行為通過云控下發(fā),在搜狗輸入法界面中未發(fā)現相關功能開關。廣告彈窗程序showinfo.exe由sgutil.dll釋放執(zhí)行,sgutil.dll被sgtool.exe調用。相關代碼,如下圖所示:
sgtool.exe加載執(zhí)行sgutil.dll
sgutil.dll執(zhí)行”StartPopupServer”導出函數后,會根據云端配置釋放執(zhí)行托盤廣告模塊showinfo.exe。相關代碼,如下圖所示:
根據配置決定是否釋放執(zhí)行showinfo模塊
showInfo.exe模塊主要負責彈出桌面托盤廣告圖標及更新廣告配置。當此模塊運行之后,首先會對存放于%Appdata%\LocalLow\SogouPY\Popup\traynet\目錄下的配置資源config.ini進行AES解密并讀取其中的配置信息,相關信息如下圖所示:
AES解密并讀取配置信息
解密后的config.ini配置信息如下圖所示:
解密后的config.ini信息
解密并讀取配置信息無誤之后,showInfo.exe模塊便會收集:系統硬件簽名、主機運行的安全軟件等信息,連同搜狗輸入法的版本信息一起回傳。收集的安全軟件信息如下圖所示:
收集的安全軟件信息
收集安全軟件運行信息相關代碼如下圖所示:
收集安全軟件信息
收集的安全軟件信息以標記位形式發(fā)送給服務器(sfsw及sfw參數中0,1代表各家安全軟件運行狀態(tài)。0代表未運行,1代表正在運行),相關信息如下圖所示:
收集的主機信息內容
收集完所需的主機信息之后,程序便會將其與“http://api.pinyin.sogou.com/v1/bubble/ad“加密發(fā)送給服務器“http://get.sogou.com/q”, 發(fā)送加密信息相關代碼如下圖所示 :
發(fā)送加密信息
傳輸的數據信息
服務器根據發(fā)送信息,返回加密數據。程序通過AES算法解密之后便得到托盤廣告所需的配置信息,解密數據相關代碼如下圖所示:
AES解密返回數據
解密后的配置數據如下圖所示:
解密后的配置數據
當得到所需的托盤廣告配置信息以后,程序便將其AES加密并更新到%Appdata%\LocalLow\SogouPY\Popup\traynet\目錄下的net.ini文件中。之后,開始檢查當前系統時間是否在net.ini配置中所規(guī)定的“sdate”到“edate”時間范圍之內,并且查詢當前系統時間距離上次關閉廣告托盤的時間(config.ini中的lastclose字段值)是否大于5個小時(net.ini中的interval字段值),滿足上述兩個條件則彈出托盤廣告,相關代碼如下圖所示:
時間檢測
彈出廣告托盤相關現象如下圖所示:
廣告托盤
sgutil模塊在sgutil.dll加載執(zhí)行后會根據云端返回的配置決定是否彈出托盤廣告,廣告彈窗的功能開關只能由云控頁面控制(hxxp://api.pinyin.sogou.com/v1/config/netswitch_pc),在搜狗輸入法界面中,未發(fā)現相關彈窗功能開關。從云端請求的配置信息中“trayad”為彈出開關標記位,如下圖所示:
云端配置
當“trayad”標記位為1時,sgutil.dll會從資源中釋放執(zhí)行showinfo模塊。相關代碼,如下圖所示:
從資源中釋放showinfo模塊
sgutil.dll會間隔6個小時取最新云端開關的狀態(tài)。相關代碼,如下圖所示:
請求云端開關配置
并且根據不同地區(qū)多次測試發(fā)現,請求到的開關配置會有所不同。相關現象如下圖所示:
不同地區(qū)多次測試得到不同的配置
sgutil.dll除了會釋放showInfo.exe外,還會收集Chrome內核瀏覽器和IE瀏覽器的歷史記錄信息。雖然歷史記錄中的URL、標題等數據也會進行收集,但是尚未發(fā)現上傳上述數據的相關代碼邏輯,現階段僅會上傳歷史記錄條目數量。在獲取Chrome內核瀏覽器歷史記錄信息時,首先會根據預留的瀏覽器歷史記錄數據庫路徑找到數據庫所在位置,如果預留路徑為空,則不會執(zhí)行任何操作。除IE瀏覽器外,現階段最新的sgutil.dll模塊只會獲取搜狗瀏覽器的歷史記錄信息。獲取Chrome內核瀏覽器歷史記錄信息,相關代碼如下圖所示:
搜集用戶瀏覽器歷史中的標題個數
獲取搜狗瀏覽器歷史記錄信息相關代碼,如下圖所示:
獲取搜狗瀏覽器歷史記錄信息
獲取其他瀏覽器歷史信息相關代碼,如下圖所示:
獲取其他Chomre內核瀏覽器歷史記錄信息
在搜集歷史記錄信息結束后,會將搜狗瀏覽器歷史記錄條目數拼接到HTTP請求參數中。相關代碼,如下圖所示:
將收集到的瀏覽器歷史信息拼接為HTTP請求參數
獲取IE瀏覽器中歷史記錄條目數和標題數相關代碼,如下圖所示:
收集IE瀏覽器歷史記錄信息
上述收集到的瀏覽器歷史記錄條目數量和標題數量,會被拼接為回傳數據的請求鏈接地址,回傳地址為:hxxp://ping.pinyin.sogou.com/webtitlequery.gif。相關代碼,如下圖所示:
拼接上傳瀏覽器歷史信息的請求參數
由于在目前最新模塊中發(fā)現了疑似查找360安全瀏覽器等其他瀏覽器相關邏輯,但統計這些瀏覽器瀏覽歷史的代碼邏輯無法激活,所以推測以往版本中該模塊曾安插過統計其他瀏覽器瀏覽歷史的代碼邏輯。通過分析發(fā)現,在2015年的sgutil.dll模塊中,我們發(fā)現該模塊會收集更多不同瀏覽器的歷史記錄信息,包括:360安全瀏覽器、搜狗瀏覽器、Chrome瀏覽器、360極速瀏覽器、獵豹瀏覽器和淘寶瀏覽器。相關代碼及數據,如下圖所示 :
早期的sgutil.dll模塊歷史記錄信息收集代碼
2015年的sgutil.dll模塊文件信息及數字簽名信息,如下圖所示:
2015年的sgutil.dll模塊文件信息及數字簽名信息