DOI: 10.18698/0236-3933-2016-1-98-111
УДК 004.056
ЭВРИСТИЧЕСКИЙ АНАЛИЗ БЕЗОПАСНОСТИ ПРОГРАММНОГО
КОДА
А.С. Марков
1
,
В.А. Матвеев
1
,
А.А. Фадин
2
,
В.Л. Цирлов
1
1
МГТУ им. Н.Э. Баумана, Москва, Российская Федерация
e-mail:
a.markov@bmstu.ru;
v.a.matveev@bmstu.ru;
v.tsirlov@bmstu.ru2
НПО “Эшелон”, Москва, Российская Федерация
e-mail:
af@cnpo.ruРассмотрены структурный статический анализ безопасности программного
кода и решение задачи обеспечения полноты проводимых проверок. Для реализа-
ции полноты проверок выявления уязвимостей программного кода обосновано
использование эвристического (сигнатурного) анализа безопасности программ,
учитывающего полный спектр классов дефектов программ. Разработана се-
мантическая метамодель описания эвристических алгоритмов выявления уяз-
вимостей и дефектов безопасности программ на различных уровнях предста-
вления программного кода. Отмечено, что наиболее актуальными моделями
представления программ с позиции безопасности являются абстрактное син-
таксическое дерево и абстрактный синтаксический граф. Необходимый уро-
вень быстродействия, формальная простота и наглядность реализации эври-
стического анализа могут быть достигнуты применением системы продукци-
онных правил. Приведены примеры частных семантических моделей эвристик
выявления актуальных классов дефектов безопасности программ, а также
достоинства и ограничения предложенных решений. Представлены сведения о
практической реализации и апробации предлагаемых решений. Отмечено, что
в практике сертификационных испытаний средств защиты информации 88%
критических уязвимостей было идентифицировано путем применения эври-
стического анализа. Сделан вывод, что эвристический анализ может служить
базой при использовании различных техник аудита безопасности программного
кода.
Ключевые слова
:
информационная безопасность, безопасность программ, те-
стирование, статический анализ, продукционные модели, эвристический анализ,
уязвимости, дефекты, недекларированные возможности.
HEURISTIC ANALYSIS OF SOURCE CODE SECURITY
A.S. Markov
1
,
V.A. Matveev
1
,
A.A. Fadin
2
,
V.L. Tsirlov
1
1
Bauman Moscow State Technical University, Moscow, Russian Federation
e-mail:
a.markov@bmstu.ru;
v.a.matveev@bmstu.ru;
v.tsirlov@bmstu.ru2
Scientific Production Association Echelon, Moscow, Russian Federation
e-mail:
af@cnpo.ruThe paper is devoted to the structural static analysis of source code security
and the problem of ensuring the conducted inspection completeness. To detect
comprehensively the source code vulnerabilities the heuristic (signature) analysis
of program security is used taking into account the whole range of program defects
classes. The semantic metamodel of the heuristic algorithms description to detect
98 ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2016. № 1