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

defects and vulnerabilities in the program security at different levels of source

code representation is developed. It has been noted that the most essential program

representation models for computer security are an abstract syntax tree and abstract

syntax graph. The required processing speed, formal simplicity and implementation

visibility of the heuristic analysis can be achieved by using a production rule system.

The examples of particular semantic models for heuristics of detecting the essential

program security defects as well as their advantages and limitations are given. The

information about the practical implementation and approbation of the proposed

solutions is provided. It was noted that 88% of critical vulnerabilities were indentified

by using the heuristic analysis during certification tests of information security

facilities. The conclusion was made that the heuristic analysis can be used as a

base in various techniques of source code security audit.

Keywords

:

information security, software security, testing, static analysis, production

models, heuristic analysis, vulnerabilities, defects, undeclared capabilities.

Введение.

При проведении испытаний программных систем по

требованиям безопасности информации испытательные лаборатории

сталкиваются с задачей принципиального характера — подтверждение

полноты выполненных проверок. Решение этой задачи не является

тривиальным вследствие использования различных техник тестиро-

вания, ориентированных на определенные классы уязвимостей. Так,

применение традиционных методик fuzz-тестирования малоэффектив-

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

входных данных, например, программных закладок [1, 2]. Прикладные

методы верификации программ, основанные на алгебраических моде-

лях, ограничены узким классом уязвимостей, как нефункциональны-

ми ошибками (некорректностями кодирования) [3–8]. Отечественная

нормативная база также предусматривает декомпозиционный разбор

программ в целях контроля отсутствия недекларированных возмож-

ностей, сводящийся, фактически, к идентификации лишь “мертвого

кода” [9].

В настоящей работе предложен прикладной метод эвристического

анализа безопасности программ, обеспечивающий полноту и непроти-

воречивость проверок за счет поддержки известных реестров дефектов

безопасности кода.

Следует отметить востребованность тематики, так как требования

к обязательности структурного анализа безопасности программного

кода определены популярной методологией Common Criteria для выс-

ших оценочных уровней доверия [10, 11] и стандартами PCI DSS,

PA-DSS, NISTIR 4909. Подтверждением этого также можно считать

инициирование нового международного проекта в области статиче-

ского анализа SATEC [12].

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

В настоящее время кри-

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

проверки безопасности кода без участия эксперта. Основная задача

автоматизации поиска уязвимостей — предоставление эксперту фраг-

ментов кода, с максимальной степенью достоверности содержащего

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