Skype-Type:一款通過聲音竊取鍵盤記錄的Keylogger工具
Skype-Type(簡稱S&T)是一款功能強(qiáng)大的鍵盤聲音竊聽器,這款新穎的安全研究工具將允許他人執(zhí)行鍵盤聲音竊聽攻擊。簡而言之,S&T可以通過竊聽目標(biāo)用戶的鍵盤聲音來竊取數(shù)據(jù)。
首先,S&T可以用目標(biāo)用戶鍵盤的每一個按鍵聲音來訓(xùn)練一個機(jī)器學(xué)習(xí)模塊,然后使用這個模塊并根據(jù)用戶敲擊鍵盤的聲音來判斷他所輸入的數(shù)據(jù)。
該項(xiàng)目是意大利帕多瓦大學(xué)(SPRITZ Group)和美國加州大學(xué)歐文分校(SPROUT)的一個合作研究項(xiàng)目。如果你想了解更多相關(guān)信息,可以訪問該項(xiàng)目主頁。
如果你打算在自己的研究項(xiàng)目中使用S&T的話,請在你的報告中引用我們的論文:
Compagno, A., Conti, M., Lain, D., &Tsudik, G. (2017, April).
Don’t Skype & Type!: AcousticEavesdropping in Voice-Over-IP. In Proceedings of the 2017 ACM on AsiaConference on Computer and Communications Security (pp. 703-715). ACM. |
工具介紹
S&T是建立在操作鏈概念之上的,并通過基本模塊的組合來實(shí)現(xiàn)其功能。這種模塊化的設(shè)計將允許用戶能夠?qū)γ恳粋€階段的操作進(jìn)行自定義配置。
操作鏈主要由以下四大主模塊組成:監(jiān)聽器模塊、調(diào)度器模塊、機(jī)器學(xué)習(xí)模塊和輸出模塊。每一個模塊都可以加載不同的功能函數(shù),并且還可以與之前的或之后的模塊進(jìn)行協(xié)同工作。每一個功能函數(shù)都有自己的子進(jìn)程,并且使用了multiprocessing.Queue來進(jìn)行通信。
監(jiān)聽器功能負(fù)責(zé)加載聲音文件,然后將其傳遞給調(diào)度器。接下來,調(diào)度器會從音頻文件或音頻流中提取出鍵盤的擊鍵聲音,然后將其傳遞給機(jī)器學(xué)習(xí)模塊來進(jìn)行分類。最后的結(jié)果會傳遞給輸出模塊,然后給用戶展示結(jié)果。
目標(biāo)用戶視角:
攻擊者視角:
工具使用
首先,你需要生成一個sklearn.Pipeline,其中包含有一個分類器以及其他你需要轉(zhuǎn)換的數(shù)據(jù)。比較簡單的方法就是使用generate_model來完成這一步操作,然后向其發(fā)送訓(xùn)練數(shù)據(jù):
- generate_model.pytraining_files_and_folders output_model [...]
所有的訓(xùn)練數(shù)據(jù)(文件)都以參數(shù)的形式進(jìn)行傳遞,訓(xùn)練模塊將會保存在特定路徑。需要注意的是,訓(xùn)練用的聲音數(shù)據(jù)必須是.wav格式,然后與wav文件同名的.txt文件中必須包含相對應(yīng)的Groud Truth(簡言之就是機(jī)器學(xué)習(xí)中的真實(shí)值),每一個目標(biāo)為一行。Groud Truth中空格不會被當(dāng)作字符,請用其他的字符替換。
啟動S&T之后,我們可以通過命令行接口參數(shù)來手動指定操作鏈:
- main.py --listener wavfile --dispatcheroffline ...
或者也可以直接使用opmodes來進(jìn)行自動加載:
- main.py --opmode from_file
使用樣例
利用file1.wav、file1.txt以及folder1和folder2中的所有文件(訓(xùn)練數(shù)據(jù))來生成一個機(jī)器學(xué)習(xí)模塊,然后將生成的模塊保存在folder3/model目錄下:
- generate_model.py file1.wav file1.txtfolder1 folder2 folder3/model
運(yùn)行S&T,記錄下的目標(biāo)鍵盤聲音文件為targer.wav,使用folder3/model目錄下的pipeline:
- main.py --opmode from_file --targettarget.wav --pipeline folder3/model
運(yùn)行S&T,記錄下的目標(biāo)鍵盤聲音文件為targer.wav,使用folder3/model目錄下的pipeline,手動指定監(jiān)聽器以及程序調(diào)度塊:
- main.py --listener wavfile --dispatcheroffline --target target.wav --pipeline folder3/model
工具要求
此后我們會為該軟件提供一個完整的安裝程序以及依賴組件管理功能。但目前來說,你需要手動安裝該工具的依賴組件:
- sklearn
- numpy
- python_speech_features
除此之外,如果你想利用S&T來竊取目前所有已知語言的信息,你可以在/dictionaries目錄下存放你自己的字典文件。
未完成的內(nèi)容
- 編寫完整的操作文檔;
- 上傳單元測試;