樂購網(wǎng)訊 美杜莎是百度對其“偷拍插件”自己定義的名稱。它的原理是,百度插件上傳用戶屏幕截圖等信息,由服務(wù)端判斷用戶正在使用哪款瀏覽器,從而挾持百度鳳巢客戶資源針對360瀏覽器進行不兼容提示。
百度“偷拍插件”系統(tǒng)結(jié)構(gòu)和實現(xiàn)
“美杜莎”分為網(wǎng)頁腳本、客戶端和服務(wù)端三個部分,三者交互完成密碼加密和瀏覽器檢測“二選一”目的。
當(dāng)用戶訪問開啟了“美杜莎”計劃的百度鳳巢(北京測試時需要外地代理),網(wǎng)站會先通過加載指定的JS腳本,彈出對話框要求用戶安裝插件。在用戶安裝完成后,用戶登錄界面上密碼框會變?yōu)檩斎肟丶妮斎肟颍鐖D:
該插件會通過特殊方式獲得用戶輸入的密碼,加密后計算一個加密的密碼,在用戶選擇登錄時:
首先會發(fā)送一個握手請求給服務(wù)端,包括插件的版本號等,請求獲取一個SID(Token),服務(wù)端若判斷插件有更新,則會返回需要更新,由網(wǎng)頁腳本彈出對話框提示:“控件已經(jīng)更新,請重新下載安裝!”
接著網(wǎng)頁JS腳本會調(diào)用控件的接口: sendEnvironmentInfo,收集當(dāng)前用戶的環(huán)境信息并發(fā)送給服務(wù)端,這是獨立于當(dāng)前網(wǎng)站的一個收集和判定系統(tǒng),由百度客戶端插件收集以下信息:
用戶的CPU信息
用戶的磁盤序列號
用戶的網(wǎng)絡(luò)IP地址、MAC地址和網(wǎng)關(guān)信息
用戶網(wǎng)絡(luò)DNS信息
用戶的當(dāng)前瀏覽器進程名稱信息
用戶當(dāng)前啟動的所有程序的進程名稱信息
用戶當(dāng)前電腦屏幕的圖像截圖
除了屏幕截圖外,其它信息都使用AES加密算法進行了加密。百度將全部這些信息打包編碼到數(shù)據(jù)包后,會通過加密的HTTP傳輸協(xié)議上傳到百度的服務(wù)器:https://isafe.baidu.com/cinfo,百度服務(wù)端解密后看到的數(shù)據(jù)如下:
偷拍插件采集數(shù)據(jù)上傳后,百度服務(wù)端程序會對上傳的數(shù)據(jù)做判定,然后給控件返回一個狀態(tài)碼,網(wǎng)頁腳本通過控件的getLastErrorCode接口獲取到這個狀態(tài)碼。當(dāng)服務(wù)端程序通過進程信息或截圖判定用戶正在使用360瀏覽器,則返回-3這個狀態(tài)碼。
網(wǎng)頁腳本判斷如果返回的狀態(tài)碼是-3,那么就調(diào)用控件的getSendbackMessage接口,目的是獲得百度服務(wù)端返回的一段文字,并彈出對話框提示用戶更換其他瀏覽器。
在這個過程中,上傳信息判定是由百度云端決定的,彈框的文字也是由云端發(fā)送的,關(guān)鍵邏輯都由云控。
由于上傳信息非常豐富,因此百度云端判斷相當(dāng)靈活,不僅可以針對360瀏覽器不兼容,還可以針對系統(tǒng)中其他任何軟件做不兼容提示,提示文字也是完全云控、可隨時變化的,同時還可以隨時在服務(wù)端配置升級,要求用戶更新插件,以便應(yīng)用新的信息采集和對抗策略。
百度“偷拍插件”技術(shù)原理
npBaiduSafeInput.dll控件的關(guān)鍵在于sendEnvironmentInfo這個函數(shù),它首先收集信息,收集的信息包括cinfobmp兩個字段。
cinfo字段包括了除了截屏之外的其它系統(tǒng)信息,是一個簡單的key-value結(jié)構(gòu)數(shù)據(jù),使用AES加密算法進行了加密,然后編碼為ASCII-HEX后,保存在數(shù)據(jù)包的cinfo字段中。
獲取cinfo.processlist字段系統(tǒng)進程列表信息使用的API是ToolHelp32 系列API,通過對比當(dāng)前進程Pid,在進程列表中篩選出當(dāng)前瀏覽器進程名并保存為cinfo.currentprocess字段。
截屏數(shù)據(jù)則通過GetDIBits截取屏幕指定區(qū)域的圖像并保存為BMP數(shù)據(jù),編碼為ASCII-HEX后,保存在bmp字段。
這些數(shù)據(jù)再加上之前獲取的sid數(shù)據(jù),和計算整個數(shù)據(jù)包的md5數(shù)據(jù),拼接成具有4個字段的數(shù)據(jù)包,通過WinHttp接口發(fā)送加密的HTTPS數(shù)據(jù)到http://isafe.baidu.com/cinfo這個百度服務(wù)器地址上。
綜上,百度用于判定用戶軟件使用情況的數(shù)據(jù)有:當(dāng)前進程、進程列表和屏幕截圖。以下為幾處代碼分析:
1、百度“偷拍插件”通過GetDIBits對用戶電腦屏幕截圖:
2、把截取的BMP數(shù)據(jù)編碼后發(fā)送到百度服務(wù)器:
3、抓取用戶的Cpu、磁盤序列號、ip地址、mac信息、網(wǎng)關(guān)信息、DNS信息和所有進程列表上傳:
4、網(wǎng)頁腳本根據(jù)百度服務(wù)端返回的狀態(tài)碼彈出相應(yīng)提示,怎樣提示完全由服務(wù)端控制:
推薦閱讀
速途網(wǎng)訊 1月28日,360安全中心發(fā)布公告稱,百度鳳巢正在大規(guī)模部署“偷拍插件”。它在未作任何提示、未經(jīng)用戶允許的情況下,暗中對用戶電腦屏幕截圖,并把圖片上傳到百度服務(wù)器。此前,只有木馬和間諜軟件才會偷拍屏>>>詳細閱讀
本文標(biāo)題:百度“美杜莎偷拍插件”技術(shù)分析
地址:http://www.oumuer.cn/a/11/20130128/258194.html