Previous Page  10 / 14 Next Page
Information
Show Menu
Previous Page 10 / 14 Next Page
Page Background

Об эффективности и результативности эвристического ана-

лиза.

Предложенный способ выявления широкого спектра уязвимо-

стей методом эвристического анализа имеет непосредственно при-

кладное значение, так как доведен до практической реализации и про-

шел апробацию в реальных проектах.

Разработанный теоретический аппарат стал основой создания

анализатора AppChecker, реализованного на парсерах языков Java

и C/C++. Правила продукционной системы анализатора выполнены

с помощью XPath-запросов к XML-представлению абстрактного син-

таксического дерева кода [17].

Полнота проверок обеспечена их привязкой к международному ре-

естру дефектов безопасности CWE. В настоящее время анализатор

(версия 1.0) включает в себя 74 эвристики для языка Java и 55 для

языка C/C++.

Сравнение статических анализаторов (основанных на проверках

свойств и поиске по шаблонам) на тестовых примерах с открытым

кодом показал сопоставимую их результативность и качество рабо-

ты [18].

Следует понимать, что эвристические подходы в большей степени

зависят от квалификации экспертов: как при написании эвристик, так

и при анализе потенциально опасного фрагмента кода [19]. В то же

время, выявление преднамеренных программных закладок обеспечено

только методом эвристического анализа [1].

Предложенный метод не претендует на исключительность: в ре-

альности важен синтез возможных методик выявления конкретного

класса дефектов по критериям быстродействия и уровней ошибок пер-

вого и второго рода. Например, международный стандарт ISO/IEC TR

20004:2012 предлагает методики выявления известных уязвимостей,

опубликованных в открытых бюллетенях по безопасности [20]. Такой

подход повышает эффективность структурного тестирования, напри-

мер, при первичном анализе заимствованных компонентов.

Заключение.

По результатам исследования можно сделать следу-

ющие выводы.

1. Предлагаемый эвристический метод обеспечивает полноту и не-

противоречивость проверок, так как не налагает ограничений на клас-

сификации дефектов программного кода.

2. Метод может служить базовым методом при практическом ком-

плексировании различных техник статического анализа безопасности

программ (с учетом мнений квалифицированных экспертов).

3. Особенность метода эвристического анализа — возможность

идентифицировать преднамеренные закладки, опираясь на экспертные

признаки деструктивного кода.

ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2016. № 1 107