|

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

Авторы: Марков А.С., Матвеев В.А., Фадин А.А., Цирлов В.Л. Опубликовано: 19.02.2016
Опубликовано в выпуске: #1(106)/2016  
DOI: 10.18698/0236-3933-2016-1-98-111

 
Раздел: Информатика, вычислительная техника и управление | Рубрика: Методы и системы защиты информации, информационная безопасность  
Ключевые слова: информационная безопасность, безопасность программ, тестирование, статический анализ, продукционные модели, эвристический анализ, уязвимости, дефекты, недекларированные возможности

Рассмотрены структурный статический анализ безопасности программного кода и решение задачи обеспечения полноты проводимых проверок. Для реализации полноты проверок выявления уязвимостей программного кода обосновано использование эвристического (сигнатурного) анализа безопасности программ, учитывающего полный спектр классов дефектов программ. Разработана семантическая метамодель описания эвристических алгоритмов выявления уязвимостей и дефектов безопасности программ на различных уровнях представления программного кода. Отмечено, что наиболее актуальными моделями представления программ с позиции безопасности являются абстрактное синтаксическое дерево и абстрактный синтаксический граф. Необходимый уровень быстродействия, формальная простота и наглядность реализации эвристического анализа могут быть достигнуты применением системы продукционных правил. Приведены примеры частных семантических моделей эвристик выявления актуальных классов дефектов безопасности программ, а также достоинства и ограничения предложенных решений. Представлены сведения о практической реализации и апробации предлагаемых решений. Отмечено, что в практике сертификационных испытаний средств защиты информации 88% критических уязвимостей было идентифицировано путем применения эвристического анализа. Сделан вывод, что эвристический анализ может служить базой при использовании различных техник аудита безопасности программного кода.

Литература

[1] Марков А.С., Цирлов В.Л. Опыт выявления уязвимостей в зарубежных программных продуктах // Вопросы кибербезопасности. 2013. № 1 (1). С. 42-48.

[2] Markov A., Luchin D., Rautkin Y., Tsirlov V. Evolution of a Radio Telecommunication Hardware-Software Certification Paradigm in Accordance with Information Security Requirements // In Proceedings of the 11th International Siberian Conference on Control and Communications (Omsk, Russia, May 21-23, 2015). SIBCON-2015. IEEE, 2015. Р 1-4. URL: http://dx.doi.org/10.1109/SIBCON.2015.7147139 DOI: 10.1109/SIBCON.2015.7147139

[3] Using Static Analysis to Find Bugs / N. Ayewah, D. Hovemeyer, J.D. Morgenthaler, J. Penix, W. Pugh. Using Static Analysis to Find Bugs // IEEE Software. 25, 5 (Sep./Oct. 2008). Р 22-29. URL: http://dx.doi.org/10.1109/MS.2008.130 DOI: 10.1109/MS.2008.130

[4] Chen H., Wagner D. MOPS: an infrastructure for examining security properties of software // In Proceedings of the 9th ACM conference on Computer and communications security. CCS’02. New York, 2002. Р. 235-244.

[5] Hovemeyer D., Spacco J., Pugh W. Evaluating and tuning a static analysis to find null pointer bugs // CM SIGSOFT Software Engineering Notes. 2006. Vol. 31. No. 1. P. 13-19. URL: http://dx.doi.org/10.1145/1108768.1108798 DOI: 10.1145/1108792.1108798

[6] Logozzo F., Fahndrich M. On the Relative Completeness of Bytecode Analysis Versus // Source Code Analysis. LNCS. 2008. No. 4959. P. 197-212.

[7] Detecting mobile malware threats to homeland security through static analysis / S.-H. Seoa, A. Guptaa, A.M. Sallama, E. Bertinoa, K. Yimb // Journal of Network and Computer Applications. 2014. Vol. 38. P. 43-53. URL: http://dx.doi.org/10.1016/j.jnca.2013.05.008 DOI: 10.1016/j.jnca.2013.05.008

[8] Zhu F., Wei J. Static analysis based invariant detection for commodity operating systems // Computers and Security. 2014. No. 43. P. 49-63. URL: http://dx.doi.org/10.1016/jxose.2014.02.00 DOI: 10.1016/j.cose.2014.02.00

[9] Осовецкий Л.Г. Технология выявления недекларированных возможностей при сертификации промышленного программного обеспечения по требованиям безопасности информации // Вопросы кибербезопасности. 2015. № 1 (9). С. 60-64.

[10] Барабанов А.В., Марков А.С., Цирлов В.Л. Оценка соответствия средств защиты информации "Общим критериям" // Информационные технологии. 2015. Т. 21. № 4. С. 264-270.

[11] Barabanov A., Markov A. Modern Trends in The Regulatory Framework of the Information Security Compliance Assessment in Russia Based on Common Criteria // In Proceedings of the 8th International Conference on Security of Information and Networks (Sochi, Russian Federation, September 8-10, 2015). SIN’15. ACM New York, NY, USA. 2015. P. 30-33. URL: http://dx.doi.org/10.1145/2799979.2799980 DOI: 10.1145/2799979.2799980

[12] Static Analysis Technologies Evaluation Criteria v1.0.; ed. by Sherif Koussa; Russian translation by A. Shcherbakov, A. Markov. Web Application Security Consortium. 2013. URL: http://projects.webappsec.org/w/page/71979863/Static%20Analysis%20Technologies%20Evaluation%20Criteria%20-%20Russian

[13] Марков А.С., Фадин А.А. Систематика уязвимостей и дефектов безопасности программных ресурсов // Защита информации. Инсайд. 2013. № 3 (51). С. 56-61.

[14] Аветисян А.И., Белеванцев А.А., Чукляев И.И. Технологии статического и динамического анализа уязвимостей программного обеспечения // Вопросы кибербезопасности. 2014. № 3 (4). С. 20-28.

[15] Медведев Н.В., Марков А.С., Фадин А.А. Применение метода статического сигнатурного анализа для выявления дефектов безопасности веб-приложений // Наука и образование. МГТУ им. Н.Э. Баумана. Электрон. журн. 2012. № 9. С. 297-316. URL: http://technomag.bmstu.ru/doc/461281.html DOI: 10.7463/0912.0461281

[16] Boulanger J.L. (Ed.). Static Analysis of Software: The Abstract Interpretation. Wiley-ISTE, 2011. 331 p.

[17] Система для определения программных закладок / В.В. Вылегжанин, А.Л. Маркин, А.С. Марков, Р.А. Уточка, А.А. Фадин, А.К. Фамбулов, В.Л. Цирлов. Патент на полезную модель RUS 114799. Заявка № 2011153967, 29.12.2011. 2012. Бюл. 10.

[18] Марков А.С., Фадин А.А., Швец В.В. Сравнение статических анализаторов безопасности программного кода // Защита информации. Инсайд. 2015. № 6 (66). С. 38-47.

[19] Жидков И.В., Кадушкин И.В. О признаках потенциально опасных событий в информационных системах // Вопросы кибербезопасности. 2014. № 1 (2). С. 40-48.

[20] Барабанов А.В., Евсеев А.Н.Вопросы повышения эффективности анализа уязвимостей при проведении сертификационных испытаний программного обеспечения по требованиям безопасности информации // Труды международного симпозиума "Надежность и качество". 2015. Т. 1. С. 330-333.