Функциональное сопоставление сложных систем информационной безопасности

матических системах оценки уровня подобия информационных объектов, представленных на естественном языке. Технология позволяет при оценке подобия объектов формально отразить в виде, допускающем сопоставление, их содержательную сущность, что существенно повышает адекватность формальных образов объектов их реальному содержанию. На этой основе качество автоматизированной оценки близости текстовых документов может быть доведено до уровня, обеспечиваемого экспертами. Технология открывает широкие перспективы разработки автоматизированных систем оценки знаний, которые смогут воспринимать реальные полноценные ответы учащихся на поставленные вопросы и обеспечивать автоматическую оценку уровня адекватности ответа содержанию эталонного ответа, хранящегося в БД системы.

Литература

1. Christopher D., Manning, Prabhakar Raghavan & Hinrich Schütz. An Introduction to Information Retrieval, Cambridge Univ. Press, 2009, 569 p.

2. Salton G., Wong A., Yang C.S., Communications of the

ACM, 1975, Vol. 18, no. 11, pp. 613-620.

3. Кузнецов Л.А. Теоретические основы автоматизированной оценки знаний // Качество. Инновации. Образование. 2010. № 11. С. 8-19.

4. Гнеденко Б.В. Курс теории вероятностей: учебник. М.: Изд-во ЛКИ, 2007. 448 с.

5. Шеннон К. Математическая теория связи. В кн.: Работы по теории информации и кибернетике; [пер. с англ.; под ред. Р.Л. Добрушина и О.Б. Лупанова]. М.: Изд-во «Иностранная литература», 1963.

6. Программный пакет синтаксического разбора и машинного перевода. URL: http://cs.isa.ru:10000/dwarf/ (дата обращения: 24.04.2011).

References

1. Christopher D., Manning, Prabhakar Raghavan & Hinrich Schütz. An Introduction to Information Retrieval, Cambridge Univ. Press, 2009, 569 p.

2. Salton G., Wong A., Yang C.S., Communications of the ACM, 1975, Vol. 18, no. 11, pp. 613-620.

3. Kuznetsov L.A., Kachestvo. Innovatsii. Obrazovaniye, 2010, no. 11, pp. 8-19.

4. Gnedenko B.V., Kurs teorii veroyatnostey [Theory of chances course], Moscow, LKI, 2007, 448 p.

5. Shannon K.E., Bell System Technical Journ., 1948, Vol. 27, pp. 379-423, 623-656.

6. Programmny paket sintaksicheskogo razbora i mashinno-go perevoda Cognitive Dwarf, Availabel at: http://cs.isa.ru:10000/ dwarf/ (accessed 24 Apr. 2011).

УДК 004.421, 004.056

ФУНКЦИОНАЛЬНОЕ СОПОСТАВЛЕНИЕ СЛОЖНЫХ СИСТЕМ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ

(Работа поддерживается ФЦП «Научные и научно-педагогические кадры инновационной России» на 2009-2013 гг.

по проекту 2011-1.2.1-113-025-002, ГК№ 16.740.11.0742)

М.А. Стюгин, к.т.н., ст. преподаватель

Формулируется задача определения эффективности работы систем безопасности посредством показателей ошибок первого и второго рода. Для формулировки этих критериев задается функция ценности системы, то есть функция, к которой система стремится и для выполнения которой она была создана. Поскольку в реальных системах приходится сталкиваться с бесконечными множествами входных параметров, то определить их только по признакам искомого множества невозможно. Путем введения новых признаков можно приблизить проектируемую систему к искомой. Для систем безопасности целесообразно вводить две функции ценности системы, одна из которых определяет работу самой системы безопасности, а другая - полезную функцию системы. На основании этих функций можно ввести показатели критических ошибок первого и второго рода. В статье приводится алгоритм проектирования систем безопасности с точки зрения данных показателей на примере системы информационной безопасности интернет-ресурсов, по которому входное множество параметров системы безопасности сначала максимально расширяется для уменьшения ошибок первого рода, а потом сужается путем введения признаков, тем самым уменьшая показатели ошибок второго рода. Рассмотрен практический пример сопоставления сложных систем информационной безопасности интернет-ресурсов: немецкой разработки PHP-IDS и российской серии программ ReflexionWeb.

Ключевые слова: информационная безопасность, системный анализ, черный ящик, защита от исследования, безопасность интернет-приложений.

FUNCTIONAL COMPARISON OF COMPLEX INFORMATION SECURITY SYSTEMS Styugin M.A., Ph.D., Senior Lecturer (Siberian Federal University, 79, Svobodny Av., Krasnoyarsk, 660041, Russia, styugin@infosafety.ru) Abstract. In our study we define the problem of determining the performance of security systems using index of the first and the second kind errors. To define these criteria, we are given the system value function - a function for which system strives and for which performing this system was created. Real systems have the infinite set of input parameters, so we can not determine them only by defining characteristics of set required. Through the adding new characteristics, we can

approximate system designed to system required. It is expedient to introduce into security systems two system value functions: one of them would define the system behavior and another one - the system efficiency function. Using these two functions, we can introduce index of the first and the second kind critical errors. There was given an algorithm of security system design using these characteristics on an example of a Web-security management system. According to this algorithm, the input parameter set of security system at first expands to reduce errors of the first kind and then narrows through the introducing characteristics to reduce errors of the second kind. Additionally, some existing complex Web-security management systems have been compared to each other: German product PHP-IDS and Russian series of programs ReflexionWeb.

Keywords: information security, system analysis, black box, protection from research, Web application security.

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

Подобие с точностью до изоморфизма

Рассмотрим две системы - 51, которая представляет собой черный ящик, имеющий на входе множество параметров {р1,р2, ...,рп}, а на выходе значение функции/1: {(р1, р2, ..., рП): р^Л, Рг^Рг, ..., рпеРп}^{(/1): fie.Fi}, и 52, которая на входе имеет множество параметров {р' ь р' 2, ..., р' п}, а на выходе значение функции /2: {(р 'ь р'2, ..., р'п): р' ь еР ' ь, р 2еР 2, р пеР п}^{(/2): /26.2}.

При этом можно ввести отношение эквивалентности на множестве входных значений этих черных ящиков {Р1 хР2х... хРп}^{Р' 1 хР ' 2х... хР' п}:

Такие системы называются изоморфными, например ввод текста с клавиатуры компьютера и сотового телефона (рис. 1). На телефоне клавиш значительно меньше, но при их многократном нажатии можно ввести эквивалентное клавишам клавиатуры ПК количество символов с тем же значением функции.

Это наиболее простой пример определения функциональной заменимости систем. В подавляющем большинстве случаев определить изоморфную систему невозможно, так как она строится на очень большом (или бесконечном) количестве входных параметров. Чтобы перейти к анализу системы, необходимо ввести несколько дополнительных терминов.

Функция ценности системы

Обозначим область значения параметров функции черного ящика (исследуемой системы) как Р: Р=Р1хР2х...хРп, область значения самой функции - . . Таким образом, фактически определяются природа параметров на входе черного ящика и природа выхода. Любая информационная система сужает множество параметров, данных ей более низкоуровневым интерфейсом, и формирует новую функцию, область определения которой находится уже на более узком множестве (например, системы в модели OSI или системы, находящиеся на одном уровне OSI и выполняющие некую подфункцию одной системы).

При этом любая система должна выполнять некоторую целевую функцию, ради чего она и была создана. Для такой системы можно определить функцию / Р+сР, ^с..

Назовем ее функцией ценности системы, то есть это именно та функция, которую выполняет идеальная система (рис. 2). Реальная реализация может соответствовать ей или быть близкой к ней

по некоторым критериям. Для выявления этих критериев рассмотрим упрощенный вариант системы, когда функция ценности определяется только входным и выходным множествами, само же отображение множеств для нас не важно. К таким системам относятся, например, все системы безопасности, для которых необходимо определить перечень нежелательных входных данных и состояние блокировки для них.

Подобные системы можно записывать уже не функцией, а кортежем значений

Р Г).

Однозначно она также может быть определена кортежем {Р, РГ, Г, Г), так как Р=Р~иР+, Р~пР+=0, Г=ГиГ+, ГгГ=0.

Критические ошибки первого и второго рода

Сформулируем свойства системы, функция ценности которой задана кортежем (2). Заметим, что функция ценности не является реальной функцией системы, но сформулирована для нее как некое идеальное состояние. Для примера рассмотрим систему информационной безопасности сайтов. В качестве полного множества Р входных параметров она использует глобальные массивы переменных $_REQUEST. Из данного множества параметров, количество которых бесконечно, необходимо выделить те, которые ведут к нарушению безопасности сайта (множество Р), и заблокировать их, например обнулив множество $_REQUEST (искомое множество Г+). Определить весь массив Р+ невозможно, поскольку он бесконечен. Именно поэтому ни одну из систем безопасности нельзя считать абсолютно защищенной, поскольку в мире каждый день открываются новые уязвимости. Существует большое количество различных фильтров к входным параметрам, и данные, не соответствующие им, блокируются. Реально они пытаются выделить максимальное

множество входных параметров Р+ и тем самым покрыть множество Р+. Здесь возникают две проблемы (рис. 3).

Допустим, на исходном множестве параметров определена работа двух систем (например системы безопасности и полезного приложения сайта, обрабатывающего санкционированные действия пользователей). Кортеж {Р+, Г+) является функцией ценности системы безопасности. Реальным множеством системы безопасности было определено Р+. Отсюда видно, что

Рг+ п Р+ - полезное множество параметров, перекрывающее реальные уязвимости системы;

1\ \1\ глР =1\ гл1\ глР - критическая ошибка, то есть открытые уязвимости системы (их можно назвать ошибками первого рода)',

Р~ глР+ - бесполезная составляющая системы безопасности, перекрывающая уязвимости там, где их нет;

Р ел!' - критическая ошибка, связанная с тем, что целевая функция системы не выполняется и функция ценности второй системы отчасти утеряна; такие ошибки называются ошибками второго рода.

Ошибки в системе возникают из-за того, что возможное множество входных параметров слишком велико для его полного перебора и приведения к множеству функции ценности системы.

Классы входных значений системы

Чтобы на практике определить множество входных параметров, можно задать некоторые признаки, например, для приведенной выше системы безопасности таким признаком может быть обычная кавычка или соответствующий ей ASCП-код. Как известно, кавычки очень часто используются для реализации атак SQL-инъекций на сайт. В результате можно выделить этот признак как обязательный параметр системы безопасности

и определить множество Р+. Безусловно, оно будет охватывать множество реально безопасных входных параметров, а возможно, даже допускать критическую ошибку второго рода. Здесь же будет и критическая ошибка первого рода, связанная с тем, что в атаке необязательно используется кавычка. Для конкретизации множества можно выделить дополнительные признаки, тем самым подкорректировав множество и сделав его ближе к функции ценности системы.

Чтобы определить, какое из множеств (1\ или

Р2+) более соответствует функции ценности системы, для конечных множеств можно выделить два показателя.

Показателъ критической ошибки первого рода: <|Д+ - здесь Р2+ ближе к

функции ценности системы, чем 1\ .

Это не единственный показатель системы, так как можно увеличивать множество входных значений только за счет увеличения ошибки:

Наиболее существенным для нас является показатель критической ошибки второго рода:

< I/, о, 1\ I - здесь Р имеет большую

критическую ошибку, чем 1\ .

Для сужения множества необходимо вводить новые критерии. Так, для приведенного выше примера дополнительным критерием, помимо кавычки, может быть наличие ключевых слов SQL. Если первый критерий определяет класс (подмножество) входных значений РС1. 1, а второй критерий - РС1а. 2, то пересечением этих классов будет множество с меньшей ошибкой: \РС1а. 1^Р-I > \ (Ро1аж Ю Рс1а.. 2<^Р~) \ .

Поиск функции ценности системы

Определим множество Р+, максимально близкое к функции ценности системы. Выше уже отмечалось, что на множестве входных параметров можно выделять классы (подмножества), определяя некие признаки входных параметров. Выполняя конъюнкцию и дизъюнкцию этих классов,

можно приближать множество Р+ к искомому множеству Р+. В идеале получим ситуацию, когда они равны:

Добавляя критерии входных параметров, формируем множество Р+. При этом следует приближаться к искомому множеству, уменьшая показатели критической ошибки первого и второго рода (рис. 4).

Отметим, что только операция объединения классов может уменьшить показатель критической ошибки первого рода и только операция пересечения уменьшить ошибку второго рода, так как в

первом случае множество Р+ увеличивается, а во втором сокращается.

Таким образом, для поиска функции ценности системы необходимо сначала максимально рас-

ширить множество Р+, а затем сжать его, введя дополнительные критерии параметров.

Опишем пошагово эту процедуру на примере уже рассмотренной системы безопасности защиты сайта от SQL-инъекций (рис. 5). Если классифицировать методы несанкционированного воздействия по типу, то можно выделить множество: программные, физические воздействия и человеческий фактор. Заметим, что данное множество является полным, то есть любая атака всегда принадлежит одному из этих типов. Дальнейшая классификация системы, если такая классификация очевидна, не нарушает полноту.

Поскольку представленная система относится к программным средствам, выбираем данную ветку. Любая программа на компьютере выполняется каким-либо интерпретатором или запускается непосредственно в операционной системе в исполняемом файле. В данном случае вызывают интерес только программы, выполняемые веб-сервером. Веб-сервер интерпретирует коды двух видов: команды сервера БД (в предлагаемом случае MySQL) и непосредственно код приложения (речь идет именно о коде, интерпретируемом сервером БД). Функция ценности системы, задаваемая кортежем (2), подразумевает блокировку всех данных, передаваемых через массив $_REQUEST и содержащих в себе команды MySQL, нарушающие конфиденциальность, целостность и доступность данных. Это и есть искомое множество P+. В качестве множества F можно рассмотреть пустой массив $_REQUEST.

Данную ветку можно снова разбить на классы, перечень которых будет полон. Это команды, передаваемые в переменных с символьным типом данных (подмножество Pciass i), и команды, передаваемые в переменных с числовым типом данных (подмножество Pciass 2). На данном шаге искомое множество соответствует

class 1 class 2 *

Множество (4) не содержит ошибок первого рода, то есть получена абсолютно безопасная система, так как заблокированы и обнулены все входные данные.

Вторая часть поиска функции ценности искомой системы - это выделение конкретных признаков множества с целью сокращения ошибок второго рода. Например, для символьных параметров обязательной является закрывающая кавычка (множество параметров по этому признаку Pciass 11). Одной только закрывающей кавычки недостаточно для того, чтобы сгенерировать команду, нарушающую конфиденциальность, целостность и доступность данных, обязательным является и наличие ключевых слов MySQL (подмножество Pciass 12). Важен также порядок ключевых слов в тексте и т.д. В результате множества Pciass 1 и Pciass 2 можно представить в виде пересечений

Программное воздействие

Несанкционированная

активность (по типу воздействия) \

1 г

Физическое Человеческий

воздействие фактор

Код, исполняемый веб-сервером

Код, исполняемый другими интерпретаторами и непосредственно ОС

Код БД

Код приложения

Команды, передаваемые в переменных с символьным типом данных

Pciass 1 (Pciass 11 ^ Pciass 12 ^ Pciass 13 ^

Команды, передаваемые в переменных с числовым типом данных

' ( Pcia

)

Уменьшение показателя ошибки первого рода

Уменьшение показателя ошибки второго рода

Рис. 5. Поиск функции ценности системы информационной безопасности

множеств, заданных конкретизирующими их признаками:

1 _ (11 ^ 12 ^ 13 ^ •") ,

Рс1азз 2 (Рс1азз 21 ^ Рс1азз 22 ^ Рс1азз 23 ,

а искомое множество функции ценности системы следующим образом:

^ — (Рс^ 11 ^^с/аы 12 ^ ^Ыазз 13

Рс1ах1 21 ^ Рс1аээ 22 ^ Рс1аээ 23 ^ •••

Выясним, можно ли на основании введения дополнительных критериев когда-либо получить систему, соответствующую критерию (3), то есть соответствующую искомой функции ценности. Для конечных множеств ответ очевиден: если каждый новый критерий будет уменьшать ошибку хотя бы на единицу, то введение конечного множества критериев рано или поздно приведет к функции ценности системы. Для бесконечных систем, которыми являются, например, объекты реального мира, это, скорее всего, невозможно. Это утверждение бездоказательно, однако данный факт был замечательно проиллюстрирован известным методологом науки Лакатосом на примере поиска понятия правильного многогранника, для которого справедлива теорема Эйлера (целевая функция) о соотношениях количества граней, сторон и углов (критерии) [1].

Сравнение двух систем безопасности

При разработке системы безопасности веб-приложений на основе технологий защиты от ис-

следования [2] возникла проблема сопоставления эффективности их работы с существующими системами безопасности. В качестве лидирующего такого продукта была взята немецкая разработка с открытым исходным кодом PHP-IDS [3]. Необходимо было сопоставить систему защиты от исследования веб-сервера [4] с программой PHP-IDS относительно функции ценности системы.

Для начала выделим подмножества и критерии, формирующие множество входных значений системы. В программе PHP-IDS это множество регулярных выражений, каждое из которых является критерием к данным на входе. Всего таких критериев 70 (файл defaul_filter.xml).

Система безопасности на основе технологии защиты от исследования использует функциональный ключ, формирующий реакцию системы в зависимости от данных на входе. Этот функциональный ключ также записывается в виде правил, представляющих собой критерии к входным параметрам и формируемый результат на выходе. То есть систему защиты от исследования нельзя оценивать кортежем (2), так как для нее важна функция связи входа и выхода, но для сравнения блокировки реальных уязвимостей он вполне подходит.

Итак, обозначим систему PHP-IDS как S, а систему защиты от исследования как S*. Соответственно, критерии первой системы формируют классы параметров Р^ 1, Pda.™ 2, PclasN, а критерии второй системы - P*dass 1, P*dass 2, P\hss и-

Вторая система не должна увеличивать показатель ошибки первого рода, то есть необходимо соблюдать

.

При этом

^' Pciass 1 ^ Pciass 2 ^ * * * ^ Pciass N >

р*+ р* р* р*

1 1 class 1 ^ 1 class 2 w • • • w 1 class M '

Таким образом, утверждение (5) можно записать как

п р+)|>

|(Pc'iass 1 ^ P

Pa

Pciass 1 ^  Ч Pciass M ^ P+

Нетрудно заметить, что для соблюдения этого соотношения необходимо для каждого класса Pdass 1 найти такой класс P class ь чтобы соблюдалось соотношение Pi<^Pciass i=Pciass i или множество классов (P'class l^P'class 2U.)<^Pdass 1 =

*

P class 1 •

В результате условие (5) можно переопределить как условие V ie 1, ..., N3 k,j, ...е 1, ...,M:

у class k class j '"J class i class i' V

При соблюдении данного условия критическая ошибка первого рода не увеличивается.

Таким образом, рассмотренная система на основе технологии защиты от исследования не должна увеличивать критическую ошибку первого рода по сравнению с системой PHP-IDS. Из 70 правил регулярных выражений PHP-IDS было отобрано 57 нужных (удовлетворяющих критериям нарушения конфиденциальности, целостности и доступности), которые соответствуют функции ценности системы, и для них в соответствии с утверждением (6) найдены перекрывающие условия.

Таких условий 78. Они и легли в основу программной системы защиты от исследования вебсервера Reflexion Web [5]. Таким образом, удалось спроектировать программную систему защиты интернет-ресурсов, не увеличивающую количество уязвимостей (ошибок первого рода) по сравнению с признанным на сегодняшний день мировым лидером в области инструментов обеспечения безопасности веб-ресурсов, но при этом добавив не использованный им ресурс снижения преднамеренных рисков - применение методов защиты от исследования систем. Это является существенным

шагом в области формирования нового поколения систем интернет-безопасности.

Литература

1. Лакатос И. Доказательства и опровержения. Как доказываются теоремы. М.: Наука, 1967.

2. Стюгин М.А. Защита систем от исследования. Методы и модели построения защищенных систем и управления информацией в конфликте. Германия: LAP, 2011. 132 с.

3. Семенкин Е.С., Стюгин М.А. Защита от исследования и ее применение в системах безопасности // Вестн. СибГАУ. 2009. Вып. 2 (23). С. 66-70.

4. Стюгин М.А. Методы защиты от исследования систем // Информационные войны. 2009. № 4. С. 23-29.

5. PHP IDS, Web Application Security 2.0. URL: http:// phpids.org/ (дата обращения: 17.12.2012).

6. Семенкин Е.С., Стюгин М.А. Повышение информационной безопасности веб-сервера методом защиты от исследования // Программные продукты и системы. 2009. № 3.

7. Reflexion Web. URL: http://web.infosafety.ru/ (дата обращения: 17.12.2012).

References

1. Lakatos I., Proofs and Refutations: The logic of mathematical discovery. Cambridge, Cambridge University Press, 1976.

2. Styugin M.A., Zashchita sistem ot issledovaniya. Metody i modeli postroeniya zashchishchyonnykh sistem i upravleniya informatsiey v konflikte [Protection of system from research. Methods and models of protected systems creating and information management in conflict], Germany, LAP, 2011, 132 p.

3. Semenkin E.S., Styugin M.A., Zaschita ot issledovaniya i eyo primenenie v sistemakh bezopasnosti, 2009, no. 2 (23), pp. 66-70.

4. Styugin M.A., Informacionnye vojny, 2009, no. 4, pp. 23-29.

5. PHP IDS, Web Application Security 2.0, Availabel at: http://phpids.org/ (accessed 17 Dec. 2012).

6. Semenkin E.S., Styugin M.A., Programmnye produkty i sistemy, 2009, no. 3.

7. Reflexion Web, Availabel at: http://web.infosafety.ru/ (accessed 17 Dec. 2012).

УДК 681.3.06

КОНЦЕПТУАЛЬНЫЕ ОСНОВЫ ПОСТРОЕНИЯ АНАЛИЗАТОРА БЕЗОПАСНОСТИ ПРОГРАММНОГО КОДА

А.С. Марков, к.т.н., доцент, генеральный директор;

A.А. Фадин, руководитель департамента разработки;

B.Л. Цирлов, к.т.н., доцент, исполнительный директор (НПО «Эшелон», ул. Электрозаводская, 24, г. Москва, 107023, Россия,

mail@pnpo.ru, a.fadin@pnpo.ru, vz@pnpo.ru)

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

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

Приведен пример работы анализатора программного кода, демонстрирующий его эффективность при выявлении широкого класса дефектов и уязвимостей.