Такой злостный хакерюга, как ты, конечно, не раз общался с программными кейлогерами. Запустил один раз эту программку у неприятеля – и готово: все пароли и набираемый текст, можно считать, уже у тебя. Однако у этого подхода есть недостаток: нужно каким то образом запустить софтину на чужом компьютере, что не всегда возможно. Поэтому мы решили сделать элементарный девайс, при помощи которого ты сможешь легко логировать весь набираемый текст, просто подойдя ближе к компу неприятеля.
>> Суть и методы идеи
Вкратце объясню, о чем пойдет речь. Все токопотребляющие устройства, будь то телевизор, мышь, клавиатура, жесткий диск или кулер, во время работы создают в окружающем пространстве электромагнитное поле. Его возникновение, как известно из курса физики, напрямую связано с током разного напряжения, проходящим по проводам и каналам печатных плат. Величину этих электромагнитных колебаний можно измерить специальными приборами. Поле часто создает помехи в работе радиоприемников, телевизоров и другой техники. Ты, наверное, замечал, что поставленный вблизи телевизора FM-радиоприемник начинает хуже принимать каналы, сигнал в прямом смысле слова «забивается» посторонним излучением. Этот факт натолкнул меня на неплохую мысль: если телевизор засоряет сигнал, который “слушает” радиоприемник, то неплохо бы проверить, как это же сделает клавиатура. Ведь помехи, то есть электромагнитные импульсы, генерируемые ей, принадлежат, согласно справочникам, диапазону от 10 Гц и до 1000 МГц, а этот диапазон и является основным каналом утечки информации из современных ПК. Для работы я вооружился следующими инструментами:
1. Комп со звуковой картой
2. Дешевый китайский радиоприемник Fusun
3. Соединительный шнур для подключения FM-приемника к линейному входу
звуковой карты.
Что касается приемника, то он может быть любым (лучше – с ручной подстройкой частоты, так как поиск нужных помех – тонкая работа), главное – не использовать внутренний FM-тюнер, так как электромагнитные наводки внутри корпуса сведут на нет все попытки получить хоть какой-то результат. Шнур – стандартный, можно спаять самому из обрезков, оставшихся от старых сломанных наушников или микрофонов. На первых порах лучше подключить к выходу звуковой карты наушники и проводить все операции в них – так будут лучше слышны все нюансы шума. С помощью “sndvol32.exe” отрегулируй громкость записываемого сигнала по минимуму, предварительно выбрав в качестве источника записи линейный вход, иначе ты рискуешь оглохнуть, услышав дикий шум, выдаваемый радиоприемником. Подсоедини приемник к линейному входу и включи его питание. Вполне возможно, что вместо нужных нам шумов ты услышишь музыку, которую крутят на какой-нибудь FM-станции. В таком случае слегка покрути колесико регулировки частот, пока не услышишь “белый шум”, как любят говорить физики. Далее твои действия должны выглядеть следующим образом: зажми любую кнопку клавиатуры и начинай очень осторожно подстраивать частоту, пока не услышишь характерный треск с частотой около 200 “трещаний” в минуту (или 3 в секунду). Если ты отпустишь кнопку клавиатуры, то треск должен прекратиться. Это верный знак того, что ты нашел нужную частоту. В некоторых случаях искомый сигнал может выглядеть как непрерывное, довольно низкое гудение, перемешанное с шумом, изменяющее свой тон при нажатии на кнопки клавиатуры. Если результат не приходит, то, вероятно, ты держишь приемник слишком близко к монитору. Особенно сильные помехи дает ЭЛТ-монитор. Если ты не можешь найти нужную частоту – отрегулируй длину внешней антенны радиоприемника.
>> Анализируем данные
Предположим, что ты нашел частоту, на которой помехи, создаваемые клавиатурой, слышны особенно хорошо. В таком случае ты сделал большую часть работы. Остается лишь записать помехи от различных нажатых клавиш, используя любой продвинутый wave-редактор, например Nero Wave Editor, и проанализировать их. Различия в волновой структуре звуковой формы помех, создаваемых клавиатурой, помогут нам разглядеть в неразберихе белого шума скан-коды нажатых клавиш :). Открывай звуковой редактор и начинай запись сигнала, подающегося с линейного входа, набирая на клавиатуре несложное слово, состоящее из 4-5 символов. Чтобы потом разглядеть на графическом изображении звуковой волны места, где обычный шум перемешан с помехами – “треском” клавиатуры, при записи сигнала лучше удерживать каждую клавишу подольше, хотя бы 0,5 секунд. Конечно, в реальной ситуации, когда ты будешь сканить чужую клавиатуру, никто не будет специально для тебя долго жать на кнопки, но наша задача сейчас – разобраться в методе, чтобы потом выполнять более сложные сканирования.
Записав свое сообщение, внимательно посмотри на графическое изображение звуковой волны. На ней есть области относительного спокойствия – в эти промежутки времени ни одна из клавиш клавиатуры не была нажата. Есть же области, которые состоят из сплошных “всплесков”. На слух они воспринимаются как щелчки. Это промежутки времени, когда какая-либо клавиша была нажата. В это время электрическая цепь была замкнута, и электромагнитные помехи исправно генерировались с определенной частотой. Выдели небольшой кусок диаграммы, содержащий клавиатурные помехи, и отмасштабируй его до таких размеров, чтобы четко прослеживался каждый нюанс, каждое отдельное колебание звуковой волны (в моем случае масштаб был равен 700%). В “NeroWaveEditor” -e масштабирование производится кручением колесика мыши (масштабирование – очень полезный инструмент, с его помощью ты всегда отличишь обычные помехи от нужных нам фрагментов, содержащих ценную информацию). Теперь обрати внимание на то, что звуковая волна имеет некоторые фрагменты (я бы назвал их ключами), которые повторяются постоянно, причем с определенной периодичностью (см. скриншоты). Эти повторяющиеся фрагменты придают нашей, казалось бы, случайной звуковой волне, характер периодической функции. Я насчитал по 2 фрагмента-ключа для каждой клавиши. Самое интересное заключается в том, что для каждой кнопки клавиатуры существуют свои фрагменты-ключи. “Но ведь мы можем узнать такие последовательности только для своей клавиатуры!” – в негодовании воскликнешь ты. Не беда! При наличии достаточно большого количества записанных “клавиатурных помех” можно провести частотный анализ (о нем можно прочесть в любой книжке по криптографии). Он основан на том факте, что каждая буква алфавита, равно как и знак препинания, встречается в тексте с определенной вероятностью, например, в русском языке буква “о” встречается гораздо чаще буквы “щ”. Для проведения частотного анализа нужно будет составить массив, содержащий все виды помех. Далее нужно написать программу – анализатор звукового файла, сравнивающую содержащиеся в нем помехи с помехами из массива. Программа должна записать условные имена в файл (например, “pomexa1, pomexa5,…”). Этот файл и будет материалом для частотного анализа.
Обрати внимание на мой скриншот, который рассматривает волновую структуру для буквы “a”, и сравни его с соответствующей структурой для буквы “h”. Букву “a” можно сразу же визуально отличить от других по характерному w-образному фрагменту-всплеску. Действуя таким образом, ты вскоре научишься безошибочно определять, какой символ скрывается за данной последовательностью всплесков.
>> Антишум
Здесь будут приведены краткие рекомендации для тех экспериментаторов, которые не желают оказаться глухими еще в юности :). Уверяю читателей, что все предустановки фильтров, встроенные даже в самые известные аудиоредакторы (типа Noice Reduction), не помогут нам отсеять помехи и оставить нужный сигнал. Он просто-напросто удаляется при фильтрации вместе с “мусором”, потому что анализаторы фильтров воспринимают нужные нам сигналы-всплески как “щелчки”, то есть как дефекты аудиозаписи. Чтобы составить правильный фильтр, придется поработать головой. Путем долгого анализа я выяснил, что на звуковых частотах выше 3700 Гц содержится в основном один только свистящий шум. Выяснить это мне помог пункт меню NeroWaveEditor-а “Enhancement->Filter Toolbox” (я выделил звуковой фрагмент, содержащий полезный сигнал, заюзал вышеупомянутый инструмент и, установив флажок “Band Pass Filter”, выбрал следующие параметры: “lower”=3700 Hz, “upper”=22050 Hz. Полезный сигнал почти перестал слышаться, следовательно, вся звуковая информация, лежащая от значения “lower” до “upper” – мусор, а остальное – полезный сигнал). Итак, выделяй всю запись и применяй вышеуказанный фильтр с параметрами “lower”=0 и “upper”=3700. При выполнении этой операции, конечно, теряется некоторая часть информации из области верхних частот. Есть возможность избежать таких потерь, настроив эквалайзер (“Tools->Equalizer”), но на это понадобится чуть больше времени. Экспериментируй с фильтрами – и ты добьешься нужного результата.
>> Причины использовать этот метод
Преимущество метода заключается прежде всего в его относительной несложности и доступности любому желающему. Для мобильного перехвата, то есть слежения за какой-либо интересующей тебя целью на чужой территории, может использоваться ноутбук с небольшим “довеском” – внешним радиоприемником. Для того чтобы обеспечить хороший результат, последний лучше заэкранировать или отнести его подальше от ноутбука, иначе ты можешь принять излучение от своего ноута за сигналы от клавиатуры-цели. Другое, более безопасное решение – запись радиосигнала нужной частоты на диктофон и последующее его изъятие.
Иные встречавшиеся мне методы изъятия ценной информации из электромагнитных помех, генерируемых клавиатурой, требуют, как минимум, анализатора спектра, осциллографа, частотомера, мультиметра и тому подобных приборов, что вряд ли подойдет даже для очень состоятельного гражданина. Плюс ко всему, пошарив в интернете, ты всегда легко найдешь схемы радиопередатчиков, которые, если ты умеешь пользоваться паяльником, помогут тебе в дистанционной передаче данных, что сделает твою жизнь намного безопаснее и почти гарантированно избавит тебя от тюремной похлебки. В этом случае для обеспечения своей безопасности необходимо установить мощную антенну и расположить приемник сигнала как можно дальше. Советую заглянуть на сайт http://www.radist.izmuroma.ru.
Еще один, довольно неплохой и, на мой взгляд, более удобный способ сканирования (хотя бы в силу возможностей тонкой настройки и большей дальнобойности) – применение коротковолновых трансиверов. Увы, но они стоят сравнительно дорого (простенькие образцы – от 200-300 долларов). Но если ты – заинтересованный человек, то трансивер для тебя окажется настоящим кладом. С его помощью можно не только перехватывать ЭМ-излучения, но и слушать секретные передачи – “морзянку”, и делать множество иных полезных и интересных вещей. Но это уже совсем другая история. Интересный факт: белорусский радиотелефон “Алтай” (не знаю, выпускается ли он сейчас), являясь, по сути, простым трансивером, обладает неплохими возможностями для радиоперехвата.
Внимание! Если ты собираешься перехватывать информацию тем методом, что описан в данной статье, в больших объемах, тебе просто необходима хорошая звуковая карта, уровень собственных шумов которой незначителен. Иначе головной боли от переутомления не избежать. Поэтому обязательно проверь, подойдет ли твоя звуковая карта для подобной деятельности в “промышленных” масштабах, с помощью утилиты RightMark Audio Analyzer (http://audio.rightmark.org/rus).
>> .. И напоследок
Если ты выполняешь на своем компьютере важную работу, требующую секретности, или обслуживаешь какой-либо сервер, тебе просто необходимо иметь надежные средства для защиты от утечки информации через электромагнитное излучение. А средства эти весьма разнообразны: фильтрация, заземление приборов, экранирование, электромагнитное зашумление и так далее. Эти средства будут оправданы, ведь существуют способы снятия сигнала даже с монитора компьютера-жертвы, то есть возможность получения достоверной картины работы пользователя за компьютером. Лучший способ узнать все о грозящей опасности – это понять принцип реализации атаки и опробовать ее на практике. Удачи!