作者丨Vision NP
譯者丨陳峻
審校丨重樓
最近,網上有研究報告(https://arxiv.org/pdf/2308.01074.pdf)披露了一種潛藏得較為隱蔽的網絡安全漏洞。該漏洞能夠被用來在人們使用Zoom等視頻會議,進行通話過程中,針對鍵盤輸入的聲音發起攻擊。
根據薩里大學、達勒姆大學和倫敦大學皇家霍洛威學院的專家們所做的研究表明,人工智能系統可以根據人類打字時發出的聲音,準確地識別出其在筆記本電腦鍵盤上具體按下的是哪個鍵。
一、研究發現
以下是這項研究的一些重要啟示和影響:
1.基于聲音的攻擊:研究發現,人工智能系統可以檢測到按鍵聲音的信號,而且其準確率高達、甚至超過90%。例如,在Zoom通話或其他類型的語音通信中,按下了哪些鍵等。據此,網絡犯罪分子可以通過分析按鍵打字時所發出的聲音,來獲取密碼、賬單信息等敏感信息。
2.視頻會議的威脅與日俱增:隨著Zoom等視頻會議工具的廣泛使用,特別是在COVID-19流行期間,與此類平臺相關的潛在安全風險也在持續增加。而且,設備內置麥克風的普及,更進一步增加了聲音攻擊的威脅。
3.機器學習和聲學分析:研究人員使用機器學習算法,可以分析與不同按鍵相關的聲音信號。同時,人工智能系統也能夠學習并識別出聲音記錄中的各種模式和特征。即使是不同手指用不同力量擊鍵,算法也能準確識別出按鍵特征。這充分證明了機器學習在識別和利用信號方面的強大能力。
4.準確性的提高:該研究在識別按鍵方面達到了很高的準確度,電話通話錄音的成功率高達 95%,就連Zoom通話錄音的成功率也高達93%。這樣的準確率說明了此類攻擊所帶來的安全威脅是不容忽視的。
5.公共辯論的重要性:研究人員認為,我們有必要對人工智能技術進行公開討論和管理,尤其是隨著帶有麥克風的智能設備在各個家庭中的使用越來越普及。也就是說,基于聲音的攻擊,勢必會引發道德和隱私方面的問題,值得公眾認真考慮。
6.側信道攻擊:此類攻擊形式通過結合非預期信號(如聲音),來獲取未經授權的訪問權限或信息。它充分體現了在網絡安全戰略中,考慮各種攻擊載體的重要性。
7.對用戶行為的影響:即使是細微的動作和聲音,也有可能被老練的攻擊者所利用。因此建議用戶在視頻會議通話中,特別是在輸入敏感信息(包括密碼)時,請保持謹慎。
8.攻擊的不斷演變:隨著時間的推移,基于人工智能模型的各類攻擊的準確性將大幅提高。因此,我們必須在網絡安全實踐中不斷提高認識,并按需調整。
二、多層次防護組合
以上是該研究報告的主要結論。那么具體而言,我們應該如何才能防止Web應用和用戶,受到基于聲音的攻擊呢?
鑒于此類攻擊仍在不斷演變,我們需要通過下文提到的多層次方法的組合,在一定程度上增強Web應用、以及用戶行為的安全性和完整性,并將受攻擊的風險降至最低:
?實施雙因素身份驗證(2FA):由于用戶需要提供第二類認證信息(例如:除密碼外,來自驗證器應用或生物識別的登錄代碼),才能訪問其賬戶,因此該方法增加了一個額外的安全層。也就是說,它通常需要向用戶的移動設備或電子郵件發送驗證碼,并在驗證器應用中生成隨機碼,從而降低基于單一密碼維度的攻擊。下面是根據需要,在特定Web應用中實施2FA的方法示例。
代碼來源:谷歌云,使用 Firebase 身份驗證庫的 JAVAScript 代碼
上述代碼演示了使用Firebase身份驗證,來實現多因素身份驗證的流程。具體而言,該代碼段主要是將電話號碼的驗證作為第二種因素。當然,你可以通過調整該代碼段,提供其他的多因素身份驗證(MFA)選項,來按需整合基于時間的一次性密碼(TOTP)的MFA,以滿足特定應用的實際需求。不過,請注意在實施多因素身份驗證時,不要忽略了其他潛在的安全問題、以及用戶體驗。
?使用生物識別身份驗證:由于此類驗證方法(如:指紋識別或面部識別)比密碼更難以克隆,因此它增加一層額外的保護,可防止攻擊者未經授權的訪問。你可以通過鏈接(https://stackoverflow.blog/2022/11/16/biometric-authentication-for-web-devs),獲取到一份內容詳盡的、Web開發人員針對其應用經常實施的、生物識別身份驗證指南。
生物識別身份驗證流程圖
?降噪算法:在Web應用中實施降噪算法,可以減少那些由按鍵產生的可被檢測到的聲音。雖然這不一定是最行之有效的保護,但是它可以使得攻擊者更難使用人工智能工具,在較短的時間內準確地檢測出聲音模式。
<head>
<title>Noise Reduction Web App</title>
</head>
<body>
<button id="startButton">Start Recording</button>
<button id="stopButton" disabled>Stop Recording</button>
<br>
<audio id="audioElement" controls></audio>
<script>
let audioContext, mediaStream, scriptProcessor;
const bufferSize = 2048, threshold = 0.05;
const startButton = document.getElementById('startButton');
const stopButton = document.getElementById('stopButton');
const audioElement = document.getElementById('audioElement');
startButton.addEventListener('click', startRecording);
stopButton.addEventListener('click', stopRecording);
function startRecording() {
navigator.mediaDevices.getUserMedia({ audio: true }).then(stream => {
audioContext = new (window.AudioContext || window.webkitAudioContext)();
mediaStream = stream;
scriptProcessor = audioContext.createScriptProcessor(bufferSize, 1, 1);
scriptProcessor.onaudioprocess = e => {
const inData = e.inputBuffer.getChannelData(0),
outData = e.outputBuffer.getChannelData(0);
for (let i = 0; i < bufferSize; i++) outData[i] = Math.abs(inData[i]) < threshold ? 0 : inData[i];
};
audioContext.createMediaStreamSource(mediaStream).connect(scriptProcessor);
scriptProcessor.connect(audioContext.destination);
startButton.disabled = true;
stopButton.disabled = false;
}).catch(error => console.error('Error accessing microphone:', error));
}
function stopRecording() {
if (audioContext) {
audioContext.close();
mediaStream.getTracks().forEach(track => track.stop());
scriptProcessor = audioContext = null;
startButton.disabled = false;
stopButton.disabled = true;
}
}
</script>
</body>
</html>
上述代碼段演示了使用Web Audio API來實現降噪的效果。當然,你也可以使用其他的音頻處理庫,例如:RNNoise和 SpeexDSP。下面我們來看看具體的工作原理。
首先,請將代碼創建為一個HTML文件,并使用Web瀏覽器打開它。完成后,其界面如下:
使用Web Audio API來降低噪音
接著,請點擊“開始錄音”,并在網頁瀏覽器中授予麥克風的訪問權限。
然后,開始錄入并分析隨機產生的聲音。
請注意,Web Audio API提供的一系列節點和方法,可用于更高級的音頻處理任務。你可以根據Web應用的具體需要,使用不同的音頻庫來進行試驗。
?鍵盤布局隨機化:你可以重新排列虛擬鍵盤上的按鍵順序,使得攻擊者難以僅憑按鍵發聲的方位,來檢測到鍵入的內容。一些金融機構已經采用了這種流行的方法,來保護用戶免受基于聲音的攻擊。
?隨機化按鍵時間:你可以在按鍵之間引入可變的時間間隔,讓攻擊者更難確定按下的具體按鍵。請參見如下代碼示例:
<head>
<title>Randomized Key Press Timing</title>
</head>
<body>
<input id="textInput" type="text">
<script>
const textInput = document.getElementById('textInput');
textInput.addEventListener('keydown', event => {
setTimeout(() => console.log('Key pressed:', event.key), Math.random() * 500);
});
</script>
</body>
</html>
上述按鍵邏輯隨機化的應用,模擬了按鍵隨機延時的發生。你可以將其創建為一個HTML文件,并使用Web瀏覽器打開它。完成后,你可以在出現的文本框中輸入一些單詞。
隨機按鍵延時的頁面布局
Web瀏覽器的控制臺將展示你按下的按鍵,及其隨機延時結果。
你可以自由地修改上述代碼段,將其集成到自己的Web應用中。同時,你也可以嘗試不同的按鍵操作,以觀察隨機計時對于輸入文本的行為的不同影響。
?教育用戶:提高用戶對于聲音攻擊所帶來的潛在風險的認識,以及在視頻通話、或公共場合中避免鍵入密碼、及個人數據等敏感信息的意識。此外,你可以強制要求用戶在輸入Web應用的密碼時,混合使用不同的大小寫字母、數字和符號(如 #、$、%、*)等。
?定期執行安全審計:定期對Web應用進行安全審計和滲透測試,以及時識別和解決潛在的漏洞。據此,你可以先于攻擊者,更加輕松地實施各種必要的安全措施。此外,在開發Web應用時,我們應當遵循安全編程實踐,防范包括:SQL注入、跨站腳本(XSS)和跨站請求偽造(CSRF)等可能被攻擊者利用的常見漏洞,被遺留在應用中。
?麥克風的隱私設置:如果你的Web應用需要獲取麥克風的訪問權限,那么請確保用戶了解他們授權后可能產生的后果,以及允許他們自由地管控這些權限,例如:在不必要時,提供禁用麥克風訪問的選項。當然,你可能需要為此調整應用的部分架構。
?多層安全:實施包括:防火墻、入侵檢測系統(IDS)、以及實時安全監控在內的多層安全控制,以應對潛在攻擊。目前,許多一站式安全平臺還能夠提供諸如:惡意軟件掃描、SSL證書、DDoS保護、以及備份和恢復等功能。
?加密:使用強大的加密協議,我們可以確保用戶設備與Web應用之間的通信安全,以應對針對數據的竊聽和攔截。通常,你需要從可信的證書頒發機構(CA)處獲得SSL/TLS證書。
?定期更新和打補丁:顯然,我們需要使用最新的安全補丁,來更新Web應用和底層基礎架構組件,以防止新近發現的漏洞被利用。
?用戶指南:為用戶提供安全使用指南、以及適當的架構信息 (Information Architecture,IA)。例如,告知用戶在其視頻通話中,應避免通過鍵盤來鍵入敏感信息,以及會使用背景噪音,來掩蓋鍵盤擊鍵所產生的聲音。
三、小結
綜上所述,已有研究證明,人工智能可能根據擊鍵的聲音來識別敏感數據。而且隨著視頻會議被廣泛使用,基于聲音的攻擊威脅會迎來爆炸式的激增。
我們通過討論能與Web應用相結合的多層次安全防范方法,來降低基于聲音的攻擊的潛在風險。不過請記住,任何安全措施都不是萬無一失的。
除了基于聲音的攻擊,那些精通技術的攻擊者甚至會采用諸如:Glupteba等支持區塊鏈的模塊化惡意軟件,去探查可利用的Web應用漏洞。因此,了解最新的威脅動態、以及增強Web應用的安全防范都是至關重要的。
原文鏈接:https://hackernoon.com/is-AI-eavesdropping-on-you-defend-your-passwords-from-ai-keystroke-pattern-detection
——譯者介紹——
陳峻 (Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗。