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

исходных текстов программы, если на данном этапе анализа тип не

определен (например, используется язык программирования с дина-

мической типизацией), то она возвращает пустое множество.

Определим множество

L

лексем, в которых были найдены потен-

циально опасные конструкции (это множество заполняется в процессе

работы продукционной модели) и функцию

AP

(

b, e

)

, добавляющую

элемент

b

в множество

e

.

Далее составим на основе перечисленных множеств правила про-

дукционного вывода для дефектов различного типа.

Примеры реализации эвристического анализа на основе про-

дукционной модели.

Для выявления потенциально опасного фрагмен-

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

(абстрактным синтаксическим деревом). Примеры дефектов безопас-

ности кодов приведены в табл. 2.

Таблица 2

Примеры дефектов безопасности кода

Элемент CWE уровня

Признаки наличия

Подверженные

языки и техноло-

гии программи-

рования

верхнего

нижнего

Использование недо-

статочно случайных

величин (Use of

Insufficiently Random

Values), CWE-330

Предсказуемый век-

тор инициализации

ГПСЧ (Predictable

Seed in PRNG),

CWE-337

Использование в

качестве векто-

ра инициализа-

ции констант или

предсказуемых

значений

Не зависит от

языка программи-

рования

Неверное следование

спецификациям вы-

зывающей стороной

(Improper Following

of Specification by

Caller), CWE-573

Нарушение объект-

ной модели: опре-

делен лишь один

Equals или один

Hashcode (Object

Model Violation: Just

One of Equals and

Hashcode Defined),

CWE-581

Переопределение

одного из мето-

дов Equals или

Hashcode без опре-

деления парного

ему метода

Java

Ошибки условий,

возвращаемых зна-

чений, статус кодов

(Error

Conditions,

Return Values, Status

Codes), CWE-389

Оператор возврата в

блоке Finally (Return

Inside Finally Block),

CWE-584

Наличие операто-

ра возврата в бло-

ке Finally

Java

Пример дефекта кода, заключающегося в предсказании случайно-

го числа.

Рассмотрим дефект кода CWE-337, определяемый по клас-

сификации CWE как предсказуемый вектор инициализации ГПСЧ

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