ИСТИНА |
Войти в систему Регистрация |
|
ИПМех РАН |
||
В данной работе предложен уточненный метод автоматизированной оценки эксплуатируемости найденных программных дефектов. На этапе тестирования промышленного программного обеспечения выявляется значительное число дефектов, приводящих к аварийному завершению. Из-за ограниченности ресурсов исправление дефектов растягивается во времени и требует расстановки приоритетов. Основным критерием для назначения высокого приоритета становится возможность эксплуатации ошибки. На практике эта задача решается путем автоматизированного построения эксплойта, подтверждающего наличие опасной уязвимости. Но в известных публикациях по данной теме не учитывают современные защитные механизмы, препятствующие эксплуатации, что снижает качество вырабатываемых оценок. В данной статье рассматриваются современные механизмы противодействия эксплуатации уязвимостей и дается оценка их распространенности и эффективности. Метод применим к бинарным файлам и не требует какой-либо отладочной информации. В основе метода лежит символьная интерпретация трасс выполнения, полученных при помощи полносистемного эмулятора. Даже в условиях одновременного функционирования DEP, ASLR и защиты стека («канарейка») метод способен демонстрировать реальную возможность эксплуатации ошибок, сочетающих условия «write-what-where» и переполнение буфера на стеке. Реализация метода представляет собой модуль-расширение среды анализа бинарного кода, разрабатываемой в ИСП РАН. Новые возможности среды были продемонстрированы на модельных примерах и реальных программах.