|
Доклад подготовлен по материалам диссертационной работы и посвящен исследованию и разработке методики анализа программ с целью обнаружения некоторых типов ошибок, которые могут позволить преодолеть ограничения защиты системы, частью которой является программа. Такие ошибки называются уязвимостями программы. Обнаружение и устранение уязвимостей позволяет повысить надежность программного обеспечения, что и определяет актуальность диссертационной работы.
В рамках данной работы получены следующие результаты:
Разработана новая методика обнаружения уязвимостей "переполнение буфера" и "форматная строка", обеспечивающая высокий уровень истинных предупреждений. Методика основана на статическом анализе потоков данных программы и включает в себя: представление потоков данных программы в компактном виде, проведение межпроцедурного контекстно-нечувствительного анализа, проведение анализа указателей и целочисленных значений, проведение обратного анализа.
Разработан и испытан алгоритм обратного анализа исследуемой программы, позволяющий обнаруживать операторы, ответственные за обнаруженную уязвимость, и обеспечивающий отсев части ложных предупреждений.
На основе разработанной методики реализован программный инструмент, позволяющий обнаруживать в программах на языке C уязвимости вышеуказанных типов.
Проведена апробация методики обнаружения уязвимостей на тестовом наборе широко известных пакетов свободно-распространяемого программного обеспечения в соответствии с общепринятыми подходами к тестированию инструментов анализа исходного кода.
Приглашаются аспиранты и стажеры программистских кафедр.
|