USB перехватчик ввода для записи данных с клавиатуры на любом ПК

Крошечное устройство, которое подключается к клавиатуре и сохраняет в текстовый файл все нажатые на ней клавиши. Служит для защиты корпоративной информации и резервного сохранения вводимых данных.
Перехватчик ввода (кейлоггер), о котором пойдет речь, НЕ предназначен для кражи частной информации. Напротив, эти устройства помогают корпорациям защитить данные. Менеджеры устанавливают перехватчики для отслеживания активности сотрудников и резервного сохранения вводимых данных. Такие устройства особенно полезны организациям, которые работают с конфиденциальной информацией и стремятся защитить ее от кражи.

Запрос

Заказчик обратился к КЕДР Solutions для разработки USB-кейлоггера, который предназначался для двух целевых аудиторий. Одной из них являются владельцы бизнеса, желающие защитить корпоративные данные. Другой являются родители, обеспокоенные деятельностью своих детей в интернете.

На момент обращения к нашей команде у заказчика уже был кейлоггер для клавиатур PS/2. Теперь ему требовалось спроектировать новое устройство, способное перехватывать данные с USB-клавиатур.

Решение

Выполненные нами работы включали в себя проектирование принципиальной схемы и печатной платы, написание прошивки и разработку ПО (написание утилиты для настройки устройства на ПК).

Кейлоггер работает с любой операционной системой, и его можно спрятать в корпусе клавиатуры. Он регистрирует каждое нажатие клавиш и сохраняет эту информацию в текстовом файле на внутренней флеш-памяти NAND. Для доступа к файлу нужно нажать специальную комбинацию клавиш, которая переводит устройство в режим флеш-накопителя.

Внутри кейлоггера хранится текстовый файл-реестр (log), конфигурационный файл для настройки устройства и файл для распознавания языковой раскладки клавиатуры. В устройство также встроен маленький аккумулятор, что позволяет сохранять точное время нажатия клавиш даже при отключении ПК.

После релиза первой версии мы работали над устройством еще около года и спроектировали несколько новых версий. Последняя имеет внутреннюю память объемом 16 Мбайт и часы реального времени, а также может сохранять временные метки и шифровать текст.
Флеш-память NAND, в которой фиксируются данные после использования кейлоггера - Разработка КЕДР Solution
Выполненные работы

Разработка аппаратного обеспечения

  • Проектирование принципиальной схемы

  • Проектирование печатной платы

  • Создание файлов для изготовителя

  • Заказ компонентов

  • Изготовление печатной платы

  • Сборка опытного образца

  • Тестирование прототипа

  • Отладка

Разработка прошивки

  • Написание прошивки для ПЛИС

  • Написание прошивки для микроконтроллера

Разработка утилиты для настройки устройства

Подготовка устройства к сертификации

      Сложности проекта и их решение
      Разработка USB-кейлоггера оказалась непростым проектом. Мы должны были соблюсти следующие требования:

      1. Собирать данные, не оказывая влияния на работу клавиатуры.

      Мы должны были сделать устройство абсолютно невидимым, чтобы оно не влияло на работу компьютера. Запись данных не должна была вызывать задержек, заметных пользователю ПК. Для этого мы применили специальное аппаратное решение.

      2. Соблюсти строгие требования к габаритам устройства.

      Размер кейлоггера составляет всего 57x20x13 мм. Он крошечный. От нас же требовалось вместить в него необходимое количество памяти. В первой версии поместилось всего 2 Мбайта. Но в последующих версиях мы смогли увеличить размер внутренней памяти до 16 Мбайт.

      3. Обеспечить корректное функционирование устройства при подключении клавиатуры через USB-хаб.

      Кейлоггер должен был подключаться к клавиатуре через USB-хаб. Мы также должны были учесть, что в некоторых случаях хаб меняет режим работы USB.

      4. Обеспечить возможность расширять функционал устройства в будущем.

      Заказчик хотел расширять функционал кейлоггера после релиза первой версии. Таким образом, мы должны были обеспечить масштабируемость устройства. Более поздние версии получили следующие особенности:

      • SD-карта. На внутренней памяти устройства может храниться до 16 Мбайт. Но SD-карта позволила сохранять на кейлоггере несколько гигабайт данных.
      • Часы реального времени со встроенной батареей. Благодаря им в текстовый реестр добавляются временные метки. При отключении ПК встроенная батарея позволяет сохранять точные данные о нажатии клавиш.
      • Шифрование текстовых файлов для ограничения доступа к информации.
      Использованные технологии
      • Устройство выполнено на базе микроконтроллера AVR AT90USB162 (позже ATmega32U2) и ПЛИС EPM3064.
      • Прошивка для ПЛИС написана на AHDL с помощью MAX+PLUS IDE.
      • Прошивка для МК написана на C с помощью AVR Studio IDE.
      • Критические места прошивки для МК были написаны на Assembler.
      • Для создания принципиальной схемы и проектирования печатной платы использовался EAGLE CAD.
      • Утилита была разработана с помощью среды Borland Delphi.

      Итоги

      Спроектированный нами кейлоггер удовлетворил запросы покупателей, что обеспечило нашему клиенту преимущество перед конкурентами. Заказчик продал нужное количество устройств, а затем саму идею и прототип купила другая компания.

      Для использования кейлоггера его нужно подключить между клавиатурой и ПК. Устройство работает как флеш-накопитель. Его главная функция – записывать данные, передаваемые с клавиатуры. Информацию о каждом нажатии клавиш он сохраняет в текстовый файл с метками даты и времени.

      При нажатии на специальную комбинацию клавиш на клавиатуре устройство переключается в режим флеш-накопителя. Так вы можете просмотреть файлы и найти нужную информацию.
      Прототип USB перехватчика ввода, разработанный специалистами КЕДР Solutions
      Прототип USB перехватчика ввода
      Внутренняя память:
      16 Мбайт

      Габариты устройства:
      57x20x13 мм