Хакер #305. Многошаговые SQL-инъекции
На конференции DEFCON в Лас-Вегасе аналитики компании Check Point продемонстрировали, что «подправленная» специальным образом база данных SQLite может использоваться для запуска кода внутри других приложений, которые полагаются на нее в вопросах хранения данных, что в итоге позволит добиться, например, устойчивого присутствия на устройстве iOS.
Корень данной проблемы заключается в том, как сторонние приложения читают данные из баз SQLite. Фактически злоумышленник может скрыть в БД вредоносный код, и в результате приложение (например, уже упомянутый iMessage), считавшее вредоносную базу, также выполнит скрытый в ней код.
На конференции исследователи показали, что атакующий, которому удастся заменить или отредактировать файл AddressBook.sqlitedb, получит возможность встроить вредоносный код в адресную книгу iPhone. Дело в том, что iMessage запрашивает этот SQLite-файл регулярно, а вместе с этим происходит запуск вредоносного кода, что позволяет малвари загружаться на устройстве. Хуже того, аналитики Check Point объясняют, что Apple не подписывает файлы SQLite, поэтому осуществить подмену совсем нетрудно, и злоумышленник легко может обеспечить себе постоянную загрузку и устойчивое присутствие в системе.
Интересно, что, по мнению исследователей, проблемы SQLite могут использоваться и для защиты. Например, браузеры хранят пользовательские данные и пароли в базах данных SQLite, а малварь нередко бывает нацелена на хищение этой информации и передачу похищенного на удаленный сервер. Такие серверы, как правило, написаны на PHP и анализируют полученные файлы SQLite, извлекая из них пользовательские данные, чтобы те удобно отображались прямо в панели управления малварью. И аналитики Check Point уверены, что уязвимости SQLite можно использовать для выполнения кода на таких управляющих серверах и захвата контроля над системами злоумышленников.
«Учитывая тот факт, что SQLite встроен практически в любую платформу, мы полагаем, что едва поскребли верхушку айсберга, если говорить о потенциале эксплуатации», — говорят эксперты, имея в виду, что SQLite присутствует в Skype, практически любых браузерах, на Android-устройствах, в iTunes, клиентах Dropbox, автомобильных мультимедийных системах, телевизорах, кабельных приставках и множестве других продуктов.
Инженеры Apple уже выпустили исправления (CVE-2019-8600, CVE-2019-8598, CVE-2019-8602, CVE-2019-8577), призванные защитить пользователей от данного вектора атак. Обновления получили macOS Mojave 10.14.5 , iOS 12.3 , tvOS 12.3 и watchOS 5.2.1.
Технические подробности проведенного специалистами исследования можно найти в блоге компании, а использованные экспертами инструменты уже опубликованы на GitHub.