База данных SQLite: вездесущая база данных, которую мало кто понимает

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
153
Депозит
-8.95$
Добро пожаловать обратно, мои начинающие кибервоины!

Хотя большинство специалистов в области ИТ и кибербезопасности знакомы с такими крупными системами управления базами данных, как Oracle, DB2, MS SQL Server, MySQL и PostgreSQL, мало кто знает, что SQLite — самая распространённая база данных в мире! Вероятно, это связано с тем, что она незаметно используется повсюду: от телефона и браузера до устройств Интернета вещей для хранения и организации данных для вашего приложения или устройства. Эта база данных может стать настоящей находкой для хакера или эксперта-криминалиста, ищущего информацию о цели.

6a4a49_249e0ad6f5634f0db853813f64698630~mv2.png

SQLite — это мощная, компактная и универсальная реляционная СУБД, получившая широкое распространение в современных вычислительных системах. В отличие от традиционных систем управления базами данных, SQLite работает как встроенная база данных, не требуя отдельного серверного процесса или настройки. Эта уникальная архитектура привела к её широкому распространению в самых разных устройствах и приложениях, от смартфонов и веб-браузеров до настольного программного обеспечения и устройств Интернета вещей (IoT).

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

Краткая история

Разработка SQLite началась в 2000 году, когда Д. Ричард Хипп работал над решением для базы данных для программы эсминцев с управляемыми ракетами ВМС США. Проект требовал надёжной базы данных, способной работать без административного контроля. Эта потребность побудила Хиппа создать SQLite — автономную, бессерверную, не требующую настройки и транзакционную SQL-систему управления базами данных.

Ключевые вехи в истории SQLite:

  • 2000: Начало первоначальной разработки
  • 2006: принят в качестве части ОС Android
  • 2007: Включено в iOS от Apple
  • 2013: SQLite достигает 1 триллиона баз данных по всему миру
Широкое распространение SQLite в мобильных операционных системах и разнообразных программных приложениях закрепило за ней статус одной из наиболее широко используемых систем баз данных в мире.

Как это работает

SQLite работает как встроенная система управления базами данных, то есть она работает как часть приложения, а не как отдельный процесс.

6a4a49_4606c0e470084142aa89644279d601b0~mv2.png

Хотя между SQL и SQLite существует множество различий, вот некоторые фундаментальные отличия:

  1. SQL — это стандартизированный язык запросов, используемый различными реляционными системами управления базами данных, такими как MySQL, PostgreSQL и SQLite. SQLite же — это специфическая реализация, использующая SQL.
  2. SQL — это язык запросов, тогда как SQLite — это автономная система управления базами данных.
  3. SQL используется для создания запросов и управления реляционными системами баз данных, в то время как SQLite представляет собой легкую бессерверную систему управления реляционными базами данных (СУРБД).
  4. SQL предоставляет стандарт для создания и управления реляционными схемами в различных системах баз данных. SQLite, в свою очередь, представляет собой файловую базу данных, реализующую большинство стандартов SQL.

Где используется SQLite

  • Устройства Интернета вещей (IoT): SQLite хранит данные датчиков и конфигурации устройств в устройствах Интернета вещей, предлагая надежное локальное хранилище с небольшими размерами.
  • Операционные системы: Многие операционные системы используют SQLite для внутренних баз данных, управления системными данными, такими как поисковые индексы и информация о пакетах.
  • Веб-браузеры: основные веб-браузеры используют SQLite для хранения пользовательских данных, таких как закладки, история просмотров и файлы cookie.
  • Настольное программное обеспечение: SQLite служит форматом файлов и локальной базой данных для многих настольных приложений, храня пользовательские данные и настройки приложений.
  • Мобильные приложения: SQLite — предпочтительная локальная база данных для мобильных приложений Android и iOS, управляющая пользовательскими данными и обеспечивающая работу в автономном режиме.
6a4a49_274f8afc403a49f5bc1cf39f7477a2f1~mv2.png

Уязвимости безопасности SQLite

Одной из наиболее интересных продемонстрированных уязвимостей стала возможность использования баз данных SQLite злоумышленниками в качестве вектора атаки для выполнения вредоносного кода в других приложениях.

«Мы обнаружили, что простой запрос к вредоносной базе данных SQLite может привести к удалённому выполнению кода. Мы воспользовались недокументированным поведением SQLite3 и уязвимостями повреждения памяти, чтобы эксплуатировать предположение о безопасности запросов к базе данных», — пояснил Омер Галл, исследователь безопасности Check Point. «Мы создали мошенническую базу данных SQLite, которая использует уязвимость программного обеспечения, используемого для её открытия».

Исследование, проведённое учёными, продемонстрировало, как эксплуатировать проблемы повреждения памяти в SQLite, используя только язык SQL. Эксперты разработали такие методы, как перехват запросов (Query Hijacking) и программирование, ориентированное на запросы (Query-Oriented Programming), для реализации этих проблем в движке SQLite. Галл продемонстрировал несколько реальных сценариев: в
одном из них он взломал сервер управления (C2) похитителя паролей, а в другом — продемонстрировал, как получить постоянный доступ к iOS с повышенными привилегиями.

6a4a49_062e22d6fc97482195a1e77976c9c9d0~mv2.png

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

На конференции DEF CON исследователи продемонстрировали, как базы данных SQLite могут использоваться для запуска вредоносного ПО при доступе к ним через iMessage. Злоумышленник может заменить или изменить файл AddressBook.sqlitedb, внедрив вредоносное ПО в адресную книгу iPhone. Запрос iMessage к этому файлу SQLite запускает выполнение вредоносного кода, позволяя вредоносному ПО закрепиться на устройстве.

«Более того, база данных контактов используется многими процессами, включая Contacts, FaceTime, Springboard, WhatsApp, Telegram и XPCProxy. Некоторые из этих процессов имеют более высокие привилегии, чем другие», — говорится в анализе, опубликованном Check Point. «Как только мы доказали, что можем выполнять код в контексте процесса запроса, эта методика также позволила нам расширить и повысить наши привилегии».

Эксперты сообщили о своих выводах в Apple, и проблемам были присвоены следующие коды CVE:

  • CVE-2019-8600
  • CVE-2019-8598
  • CVE-2019-8602
  • CVE-2019-8577
6a4a49_c8c6a6dd22794871ba2f4658eebeb6fe~mv2.png

Исследователи безопасности полагают, что это только начало изучения потенциала SQLite. Разработанные методы применимы не только к SQLite и потенциально могут быть адаптированы к другим SQL-системам, открывая новые возможности как для атак, так и для защиты в сфере кибербезопасности.

Краткое содержание

Игра в кошки-мышки между атакующими и защитниками продолжает развиваться, и SQLite — лишь одно из многочисленных полей битвы. По мере развития технологий роль SQLite в цифровом пространстве, вероятно, будет возрастать, что делает её важным предметом изучения для всех, кто занимается кибербезопасностью.
 
Назад
Сверху Снизу