JitterBugs: кейлоггер и новый скрытый канал для похищения д
// JitterBugs: кейлоггер и новый скрытый канал для похищения данных.
На прошедшей в Ванкувере (Канада) конференции USENIX 2006 https://db.usenix.org/events/sec06/
была представлена новая технология скрытной передачи данных по сетям и организации скрытого канала для
снятия данных с клавиатуры.
Группа американских ученых из департамента информатики и компьютерных наук Пенсильванского Университета под руководством профессора Мэтта Блэйза представила
работу: http://www.usenix.org/events/sec06/tech/shah/shah.pdf
!!(green)" Keyboards and Covert Channels"
Gaurav Shah, Andres Molina and Matt Blaze
!!
В ней они исследуют возможности новой технологии Jitterbug, которая вероятно превышает сегодняшние возможности, имеющиеся в распоряжении ФБР. Простейшая аппаратная реализация заключается в следующем.
К клавиатуре подключается аппаратный кейлоггер, который округляет все задержки между нажатиями клавиш до 20 миллисекунд.
В пределах этого временного фрэйма добавляется ещё минимальная задержка, меньшая по размеру и предназначенная для кодирования определённого символа клавиатуры. Эти задержки не видны невооружённым глазом на мониторе компьютера.
Но они, несмотря на загруженность комьютера различными задачами, сохраняются в задержках посылаемых в сеть IP пакетов, даже прошедших через множество маршрутизаторов. Таким образом можно снять пароль из шифрованного сеанса связи с SSH сервером, записав траффик при помощи сниффера, измерив задержки между пакетами и раскодировать нажатия клавиш обратно. Не потребуется как раньше вновь подходить к клавиатуре и снимать записанные данные или использовать потенциально обнаружимый и ограниченный по расстоянию радиоканал. При этом сама операционная система остаётся чистой и не содержит никаких модификаций, меняющих поведение пакетов.
Чтобы затруднить обнаружение задержек в пакетах со стороны посторонних наблюдателей, используется шифрование, а для уменьшения количества ошибок при прохождении сигнала от клавиатуры через операционную систему, аппаратную часть компьютера и множество узлов сети, используется код упреждающей коррекции ошибок (Forward Error Correction).
Таким образом модифицированный траффик, содержащий скрытый временной канал при знании ключа можно отловить от нотбука, который уехал вместе с владельцем в неизвестное место земного шара, а никакие методы фильтрации траффика или файрволлы не обнаружат ничего подозрительного.
Неограниченные возможности предоставляют перепрограммируемые клавиатуры. Также могут быть использованы мыши, микрофоны и другая периферия ввода данных, в работу которых можно вносить задержки.
Могут быть созданы и обычные троянские программы, которые передают данные через сеть таким незаметным способом.
Ещё одно применение данной технологии – скрытый канал в Voice over IP траффике.
JitterBug может быть настроенным на определённое событие, например ожидание ввода пароля на логин с определённым сервером,
также он может записывать данные и многократно передавать их повторно, а ожидающая сообщение сторона поймает наиболее удачный момент.
Сильная сторона этой технологии в её пассивности – скрытый канал не формируется, а создается модулированием проходящих данных.
Таким образом данная технология сопособна самым неожиданным способом разрушить безопасность многих защищённых сетевых протоколов, создавая скрытые каналы для похищения ключей и паролей путём организации незаметной активной тайминг атаки на систему.
комментариев: 11558 документов: 1036 редакций: 4118
Предлагают ли авторы какие-либо меры противодействия, помимо, собственно, физической защиты самого ПК и устройств ввода? Полагаю, можно ввести некоторую функцию искусственной рандомизированной задержки непосредственно на транспортном уровне сети, разрушающую любые внедрённые в скрытый канал данные.
комментариев: 9796 документов: 488 редакций: 5664
Рандомизация изменит соотношение сигнал/шум в обратном порядке.
Просто будет труднее отловить данные. Можно довести сигнал/шум в канале до некоторого порогового уровня.
Можно просто выравнивать все данные по константе времени (убрать jitter-эффект).
комментариев: 9796 документов: 488 редакций: 5664
Jitter канал можно использовать для стеганографической передачи данных по интернету (например через любителей компьютерных игр).
А безотносительно к джиттеру, можно получать стеганографические сообщения через тесты Тьюринга (captcha). Неспроста ведь пользователи жалуются, что на pgpru.com картинки такие сложные? Там ведь тайные послания закодированы. :-)
комментариев: 510 документов: 110 редакций: 75
Можно ли для борьбы с такими кейлоггерами пользоваться программными средствами, перехватывающими любые нажатия клавиш до вода сигналов с клавиатуры в систему и подмешивающими точно такие же, но различные промежутки времени в случайном порядке (используя генератор случайных чисел), после нажатия каждой клавиши? Или же использовать специальный внешний аппаратный блок аналогичного назначения (переходка), через которую включена клавиатура в систему. Иначе говоря получается случайная модуляция, накладываемая поверх модуляции кейлоггера.
И еще попутно 3 вопроса.
1. Если пароль вводится копированием из буфера. Какова будет ситуация?
2.
Не очень знаком с принципами передачи данных с клавиатуры. Вводя пароль он сначала аккумулируется в памяти машины, после отправляется на необходимый ресурс. Имеется ввиду передача данных непосредственно по нажатиям клавиш и до отправки информации IP пакетом?
3. Что такое рандомизация?
комментариев: 11558 документов: 1036 редакций: 4118
И, дабы не зацикливаться только на клавиатурных паролях, та же атака, но уже с применением программных средств, может использоваться для получения любой ключевой информации. Прокраммный троян может так передавать, например, шифровальные ключи.
В общем, по существу, это просто очередной скрытый канал со всеми вытекающими последствиями.
комментариев: 9796 документов: 488 редакций: 5664
1) Да, так лучше. Уже не сработает по идее.
2) В SSH посимвольно. Так исторически сложилось, когда telnet использовали для управления серверами по медленным каналам связи.
Кроме того, авторы рассматривают и успешно подтверждают теорию слоёв обработки данных в аппаратной части. Операция на каждом слое вносит свое замедление, но специально смодулированные замедления могут преодолеть множество слоёв.
3) Рандомизация – превращение регулярных промежутков процесса в {псевдо}случайные. Другой вариант – вычислять пропускную способность канала и передавать данные через сетевую карту в максимально короткие, но равные промежутки времени. Это лучше чем внесение шума (рандомизации).
наверно, такая сетевая карта будет стоить дорого (к ней нужно еще иметь точные часы), но она перекроет jitter-канал в сетевом траффике. Это аналог борьбы с джиттером при прослушивании аудио-CD.
Интересно, что с одной стороны это активная тайминг-атака: тайминг прерывания берутся не из самой системы, а создаются искусственно. С другой стороны пассивная: никаких новых данных в обычный уровень канала не вносится.
комментариев: 11558 документов: 1036 редакций: 4118
Только при реализации на аппаратном уровне. Троянская программа может преодолеть такой хитрый трюк.
А если я по ssh-ключам только хожу, атака сработает? Вроде бы нет. Так что атака банится как
Если же просто ввожу пас на разлок экрана и он в это время какие-то пакеты передаёт в сеть, то видимо простой корреляции между нажатиями клавиш и задержками IP-пакетов не будет.