Залевски решил использовать свою технологию поиска ошибок afl-fuzz для тестирования SQLite.
Один из самых известных ИБ-специалистов в мире Михал Залевски (Michał Zalewski) в течение 30 минут обнаружил 22 ошибки в популярной встраиваемой системе управления базами данных SQLite. Стоит отметить, что архитектура SQLite считается относительно простой и при этом достаточно безопасной.
Иногда SQLite применяется в качестве механизма обработки запросов в Web. Например, некоторые браузеры используют механизм WebDB / WebSQL, в данном случае любая уязвимость в анализаторе SQLite может позволить злоумышленникам совершить кибератаку на всю систему.
Залевски решил использовать свою технологию поиска ошибок afl-fuzz (American Fuzzy Lop) для тестирования SQLite. В случае с разными SQL-системами подобные технологии приходится настраивать под грамматику конкретной системы, однако ИБ-эксперту потребовалось 5 минут для автоматического извлечения и сортировки ключевых слов из документации SQLite. Следующим шагом стал запуск теста: create table t1(one smallint); insert into t1 values(1); select * from t1.
Залевски взял большой набор вручную написанных тестов SQLite, отсортировал их по файлам, 550 штук по 220 байт, и снова запустил программу. Данная конфигурация позволила обнаружить различные виды ошибок: неинициализированные указатели, разыменование нулевого указателя и пр.
В общей сложности поиск 22 ошибок занял у эксперта полчаса. Исправления были включены в версию SQLite 3.8.9. Залевски рекомендует обновить все версии системы.
От классики до авангарда — наука во всех жанрах