Android Debug Bridge

Android Debug Bridge (обычно сокращённоadb) — этоинструментпрограммирования, используемый для отладки устройств на базеAndroid.Daemon на устройствеAndroid подключается к серверу на хост-компьютере черезUSB илиTCP, который подключается к клиенту, используемому конечным пользователем, через TCP. Доступно как программное обеспечение с открытым исходным кодом под лицензиейApache License отGoogle с 2007 года, функции включают оболочку и возможность делать резервные копии. Программное обеспечение adb совместимо сWindows,Linux иmacOS. Он использовался не по назначению ботнетами и другим вредоносным программным обеспечением, для которого были разработаны средства защиты, такие как аутентификацияRSA и белый список устройств.
Функции
[править |править код]Возможности adb включают копирование файлов с главного компьютера, установку приложений, просмотр вывода logcat, получение оболочкиUnix и перезагрузку в режимеQualcomm EDL[1][2][3]. Например, приложения дляAndroid можно сохранить с помощью команды резервного копирования в файл[4]. Он также включает поддержку протокола Java Debug Wire Protocol[5].
Доступны некоторые графические интерфейсы. Графический монитор устройств Android вAndroid Studio можно использовать для получения информации с устройства Android[6].
История развития
[править |править код]Комплект для разработки программного обеспеченияAndroid (SDK) был впервые выпущен в 2007 году. С 2017 года Google позволяет загружать adb отдельно от Android SDK[7].
В 2015 годуMicrosoft выпустила эмулятор Android, который может подключаться к клиенту adb. В 2016 году дляAndroid Studio 2.0 производительность установки приложений и загрузки файлов через adb была увеличена в 5 раз. Для упрощения использования Android Things в 2017 году была создана оболочка для ручных команд adb. ДляAndroid 11 в 2020 году Google добавила инкрементную установку adb. В 2020 году adbWi-Fi был интегрирован в Android Studio для macOS[8]. В 2021 году дляAndroid 12 команда резервного копирования adb была ограничена, поэтому резервное копирование пользовательских данных из приложений осуществлялось с использованием конфигурации манифеста для каждого приложения[9].
Архитектура
[править |править код]Протокол adb можно передавать по USB или по Wi-Fi через TCP. Он использует клиент-серверную архитектуру. Используются два разных протокола. Первый — между клиентом и сервером, а второй — между сервером и доменом. Домен adb реализован на C и находится в пользовательском пространстве Android. Домен поддерживается инфраструктуройAndroid USB, UsbDeviceManager и UsbDebuggingManager[5].
Протокол клиент ↔ сервер[5]
[править |править код]Режим связи между клиентом и сервером —TCP-сокет. Сервер прослушивает порт, на который клиент должен отправить запрос. Запрос содержит 4-байтовое начальное поле в ASCII и полезную нагрузку. Полезная нагрузка начинается со слова host, чтобы указать, что её следует отправить на сервер. Затем сервер может ответить OKAY или FAIL, чтобы указать статус в сочетании с дополнительной полезной нагрузкой и длиной.
Протокол сервера ↔ Daemon[5]
[править |править код]Сообщения, отправляемые с сервера, состоят из заголовка длиной 24 байта со следующими полями:
- Команда
- Первый аргумент
- Второй аргумент
- Длина полезной нагрузки, 0 или выше
- CRC32 полезных данных
- Магическое значение, рассчитанное с помощью команды XOR 0xFFFFFFFF
Безопасность
[править |править код]ДоAndroid 2.2Android был уязвим для эксплойта RageAgainstTheCage. Демон adb не проверял возвращаемое значение системного вызова setuid при сбросе привилегий.Эксплойт разветвляет процессы до тех пор, пока не произойдёт сбой из-за исчерпания идентификаторов процессов. Когда демон аварийно завершает работу и перезапускается, он не может запустить новый процесс с утраченными привилегиями и продолжает работать от имени пользователя root. Затем adb предоставил корневую оболочку[10].
В 2017 году была обнаружена уязвимость в системе безопасности, которая использовала ADB для захвата встроенного модема. Атака требовала, чтобы adb был уже включён и авторизован, хотя были доступны некоторые обходные пути[11]. Различные семейства вредоносных программ, такие как ADB. Miner, Ares, IPStorm, Fbot и Trinity, сканировали Интернет на наличие общедоступного интерфейса adb и устанавливали вредоносные программы на эти устройства. adb также можно использовать для удаления вредоносного ПО, загрузившись в безопасном режиме и выполнив команду удаления adb[12].
Примечания
[править |править код]- ↑Lauren Darcey, Shane Conder. Android wireless application development. — Upper Saddle River, NJ: Addison-Wesley, 2012. —ISBN 978-0-321-81383-1, 978-0-321-81384-8. — [Архивировано 30 мая 2022 года.]
- ↑Things You Can Do with Android's adb Command (англ.). dummies. Дата обращения: 30 мая 2022.
- ↑Chuck Easttom. In-depth guide to mobile device forensics. — 2022. —ISBN 978-0-367-63300-4, 978-0-367-63298-4. — [Архивировано 30 мая 2022 года.]
- ↑Jack Wallen. How to create a full backup of your Android device without root (амер. англ.). TechRepublic (6 марта 2015). Дата обращения: 30 мая 2022. Архивировано 24 января 2016 года.
- ↑1234Rajaram Regupathy. Unboxing Android USB: a hands-on approach with real World examples. — 2014. —ISBN 978-1-4302-6209-1.
- ↑Ivan Morgillo, Stefano Viola. Learning Embedded Android N Programming. — Packt Publishing Ltd, 2016-07-29. — 282 с. —ISBN 978-1-78528-328-4. — [Архивировано 30 мая 2022 года.]
- ↑Google releases Android SDK (амер. англ.). Macworld. Дата обращения: 30 мая 2022. Архивировано 10 сентября 2021 года.
- ↑Turning it up to 11: Android 11 for developers (англ.). Android Developers Blog. Дата обращения: 30 мая 2022. Архивировано 17 сентября 2021 года.
- ↑Behavior changes: Apps targeting Android 12 (англ.). Android Developers. Дата обращения: 30 мая 2022. Архивировано 24 мая 2022 года.
- ↑Joshua J Drake, Zach Lanier, Collin Mulliner, Pau Oliva, Stephen A Ridley. Android hacker's handbook (недоступная ссылка —история). — Indianapolis, IN: Wiley, 2014. —ISBN 978-1-118-60861-6, 978-1-118-92225-5, 978-1-306-63810-4.
- ↑Tom Mendelsohn. Google plugs severe Android vulnerability that exposed devices to spying (амер. англ.). Ars Technica (9 января 2017). Дата обращения: 30 мая 2022. Архивировано 10 сентября 2021 года.
- ↑Evan Schuman. This Vultur app takes malicious to the next level (англ.). Computerworld (4 августа 2021). Дата обращения: 30 мая 2022. Архивировано 10 сентября 2021 года.