Введение 4
1. Постановка задачи 6
2. Обзор 7
2.1. Android Debug Bridge 7
2.2. BadUSB 8
2.3. USB Data Role Swap 9
2.4. Bluetooth HID profile 14
3. Метод 17
3.1. Эксперименты с разными приёмниками 17
3.2. Требования к аппаратному обеспечению 18
4. Архитектура 19
5. Особенности реализации 23
5.1. Коммуникация по шине D-Bus 23
5.2. Смена режима работы Bluetooth-приёмника 24
5.3. Сопряжение с Bluetooth-приёмником 24
6. Тестирование 26
6.1. Условия тестирования 26
6.2. Результаты 27
Заключение 29
Список литературы 30
В задачах компьютерной криминалистики важную роль играет информация, собранная с цифровых устройств. При этом мобильные устройства — смартфоны — часто могут предоставить больше данных, чем флеш-накопители, ноутбуки и компьютеры, поскольку:
• согласно подсчётам1,2, смартфон есть почти у каждого человека, тогда как лишь половина населения имеет компьютер;
• функциональность смартфонов широко используется для коммуникации, геолокации, финансовых операций; для управления па-ролями и авторизации на различных сервисах;
• практически все они оснащены фотокамерой.
Но устройства, исследуемые экспертами-криминалистами, почти всегда защищены от неавторизованного доступа. Разработчики мобильных операционных систем предоставляют различные механизмы защиты, поэтому «взлом», поиск уязвимостей и эксплоитов в ОС — трудоёмкая задача, не имеющая стандартного решения. Однако для авторизации на устройстве достаточно знать код разблокировки экрана: PIN-код, текстовый пароль или графический ключ. Распространённые мобильные ОС используют один из этих способов разблокировки в качестве вспомогательного, даже если на устройстве включена биометрическая защита. Далее в работе будут рассматриваться только текстовые и числовые (PIN) пароли, поскольку они вводятся с клавиатуры.
Для ввода пароля в ОС Android может использоваться не только экранная клавиатура, но и физическая, подключаемая по Bluetooth или USB. Bluetooth-соединение требует разблокировать смартфон для подключения (сопряжения) клавиатуры, а следовательно не может быть использовано, если пароль неизвестен. В свою очередь возможность
количество пользователей смартфонов: https://statista.com/statistics/330695/
number-of-smartphone-users-worldwide (дата обращения: 25.05.2023).
2Количество пользователей компьютеров: https://statista.com/statistics/748551/
worldwide-households-with-computer(дата обращения: 25.05.2023).
подключения клавиатуры по USB можно эксплуатировать: подключить к смартфону устройство, которое будет распознано как клавиатура, но не являться таковой. Эмулируя клавиатуру, можно автоматически отправлять на смартфон предварительно записанные сигналы клавиш и выполнять скрипты. Описанный подход далее будем называть BadUSB. Он может быть использован для перебора паролей экранной блокировки методом «грубой силы», однако не позволяет обойти стандартную защиту от этого метода: ограниченное количество попыток ввода пароля и необходимость ожидания между попытками. Отметим также, что BadUSB можно адаптировать для ввода графического ключа путём эмуляции движений USB-мыши; однако безопасности графического ключа посвящены отдельные исследования (см. [3, 7]), и это остаётся за рамками работы.
Все публично известные реализации BadUSB используют дополнительное оборудование: например, другой смартфон, как в проект Android-PIN-Bruteforce. Но поскольку основным рабочим инструментом эксперта-криминалиста является современный ноутбук, возникла потребность эмулировать клавиатуру стандартными средствами — по возможности не модифицируя аппаратное обеспечение ноутбука и используя возможности ОС.
В данной работе описывается метод, позволяющий сконфигурировать ПК так, чтобы эмулировать USB-клавиатуру. В качестве доказательства осуществимости реализуется приложение, использующее алгоритм «грубой силы» для разблокировки экрана Android-смартфона.
1. Постановка задачи
Цель данной работы — реализовать приложение для ПК, позволяющее разблокировать экран Android-смартфона, эмулируя клавиатуру через USB-соединение.
Для достижения этой цели были поставлены следующие задачи.
1. Провести обзор технологий, которые могут быть использованы для эмуляции клавиатуры со стороны ПК.
2. Описать требования к приложению со стороны аппаратного обеспечения.
3. Спроектировать приложение, позволяющее автоматически отправлять на смартфон сигналы нажатия клавиш и перебирать пароли экранной блокировки.
4. Реализовать спроектированное приложение.
5. Провести тестирование реализации на смартфонах с портами micro- USB и USB Type-C.
В ходе выполнения работы были достигнуты нижеследующие результаты.
1. Проведён обзор четырёх технологий для эмуляции клавиатуры. Доказано, что поставленную цель невозможно достичь без использования дополнительного оборудования. В качестве основы реализации выбран стек Bluetooth.
2. Сформулированы требования к аппаратному обеспечению ПК и Bluetooth-приёмника.
3. Спроектировано консольное приложение, позволяющее автоматически отправлять на смартфон сигналы нажатия клавиш и перебирать пароли экранной блокировки по словарю. Приложение использует установленное Bluetooth-соединение с приёмником, подключаемым к смартфону через USB On-The-Go. Используются язык Python, стек BlueZ для установки соединения и передачи данных, D-Bus для коммуникации с BlueZ.
4. В соответствии с проектом реализовано приложение, разработка велась в Intellij IDEA Community Edition. Предусмотрено дальнейшее расширение приложения для сохранения состояния при отключении смартфона.
5. Проведено тестирование на двух смартфонах (с портом micro-USB и с USB Type-C) с оптимизированными словарями. Основной сценарий не выполнен ввиду проблем с аппаратным обеспечением. В дополнительном сценарии корректные пароли были подобраны в обоих случаях.