20 Ноября, 2013

Статья.ЗАЩИТА ОТ АТАК НА УЯЗВИМОСТИ ПРИЛОЖЕНИЙ. МОДЕЛИ КОНТРОЛЯ ДОСТУПА.

Андрей Щеглов
ЗАЩИТА ОТ АТАК НА УЯЗВИМОСТИ ПРИЛОЖЕНИЙ. МОДЕЛИ КОНТРОЛЯ ДОСТУПА
К.А. Щеглов, А.Ю. Щеглов, д.т.н., проф.
Введение. Постановка задачи повышения уровня безопасности системы.
В 2010 году IBM зарегистрировала свыше 8000 новых уязвимостей, что на 27% больше, чем в 2009 году (из отчета IBM о тенденциях и рисках информационной безопасности по итогам 2010 года [1]). За период с 2009 по 2010 год отмечен также 21%-ный рост числа выложенных в свободном доступе эксплоитов. Эти данные свидетельствуют о неблагоприятной ситуации усиления угроз, когда все более сложные вычислительные среды подвергаются все более изощренным атакам.


Рис.1. Диаграмма: Рост числа выявленных уязвимостей за период с 1996 по 2010 гг.
Для того чтобы предотвратить использование злоумышленниками уязвимостей, организации должны сосредоточить свое внимание на сокращении периода времени между выявлением уязвимости и установкой «программной заплатки» (или «патча» – patch), устраняющей эту ошибку. К концу 2010 года почти половина всех уязвимостей (44%) не имела таких официальных «заплаток» от разработчика соответствующего ПО. Тем не менее, даже в тех случаях, когда патчи доступны в то же день, когда были публично выявлены соответствующие уязвимости, может пройти очень много времени, прежде чем эти патчи будут установлены на уязвимых системах, утверждается в отчете.
Эти цифры уже пугают, но за ними не видна реальная угроза. Построим математическую модель, на которой попытаемся оценить эту угрозу.
Допустим, что обнаружение уязвимостей – а это можно трактовать, как отказы защиты, описывается пуассоновским входящим потоком (описывает наиболее случайные события, что и имеет место на практике), суммарную интенсивность которого обозначим, через:



Примем также, что время устранения уязвимости – в нашем случае, восстановления защиты, имеет экспоненциальное распределение с интенсивностью:


Теперь собственно о модели (СМО). Будем рассматривать следующую гипотетическую ситуацию - любая обнаруженная уязвимость сразу же направляется на обслуживание (устранение). Никакой очереди неустраненных уязвимостей не образуется, т.е. будем рассматривать систему с бесконечным числом обслуживающих приборов.
Замечание. Данное допущение позволяет утверждать, что моделью будет описываться гипотетически идеальная (недостижимая) ситуация, т.е. расчетные значения будут не хуже реальных (оцениваем верхнюю границу). Дело в том, что на практике ситуация одновременного (полностью, либо частичного) исправления разработчиком нескольких уязвимостей встречается крайне редко.
В данных предположениях, расчетная формула вероятности того, что в системе находится ровно n требований (или присутствует n неустраненных уязвимостей) выглядит следующим образом [2]:


т.е. в каком-то состоянии система всегда должна находиться, можем определить интересующий нас параметр - вероятность того, что в системе отсутствуют требования: n = 0, т.е. отсутствуют неустраненные уязвимости, или вероятность того, что система находится в безопасном состоянии:


Итак, модель мы построили, теперь с ее помощью проведем исследование. Соответствующую статистику возьмем из исследований [3,4], в которых утверждается, что быстрее всех исправление выпускала компания Microsoft, которой требовалось в среднем, по разным оценкам, 21-29 дней для закрытия уязвимости, обнаруженных в количестве 39 за полгода. Сразу оговоримся что нас точные данные особо здесь не интересуют, важен порядок!
Используем нашу модель и произведем соответствующие расчеты. Результаты исследований представлены на рис.2 и рис.3.


Отметим, что пунктирной линией на рис.2 и рис.3 отображено состояние, при котором система с равной вероятностью безопасна, либо нет. Если же продлить кривую на рис.3 (а это всего навсего более 20 обнаруженных уязвимостях за год), то картина выглядит совсем печально. Заметим, что, следуя рис.3, о какой-либо безопасности системы говорить не приходится уже при единицах обнаруживаемых уязвимостях.
На самом деле, дела обстоят куда хуже. Уязвимости ведь систематически находятся не только в ОС, а на самом деле, не столько в ОС. Пример отчета по уязвимостям [5] проиллюстрирован на рис.4.

Рис.4 Иллюстрация отчета по уязвимостям за неделю: 20.02-26.02 2012
Как видим, уязвимости ОС, которые, следуя рис.3, сами по себе приводят к катастрофическим последствиям, составляют лишь единицы процентов, подавляющую часть уязвимостей содержат приложения. К сожалению данные уязвимости могут месяцами не исправляться, причем, как следует из рис.2, в большом количестве. О какой же безопасности системы при этом может идти речь?
Получаем тупиковую ситуацию. С одной стороны, развиваются механизмы и средства защиты. С другой стороны, уязвимостей из года в год становится все больше, см. рис.1, устраняются разработчиком они все дольше [1], что обусловливается, в том числе, ростом сложности ПО. Это сводит на нет достижения в развитии систем безопасности. Конечно, рекомендация, данная в [1]: "Для того чтобы предотвратить использование злоумышленниками уязвимостей, организации должны сосредоточить свое внимание на сокращении периода времени между выявлением уязвимости и установкой «программной заплатки» (или «патча» – patch), устраняющей эту ошибку", бесспорно, правильна. Но она полностью нивелируется другим утверждением этого же отчета [1]: К концу 2010 года почти половина всех уязвимостей (44%) не имела таких официальных «заплаток» от разработчика соответствующего ПО.
Однако, не смотря ни на что, безопасность и в этих условиях как-то обеспечивать нужно!
Итак, что же мы имеем в итоге, к чему сводится постановка задачи повышения уровня безопасности системы в рассматриваемой ситуации:
1. Угрозу несет в себе процесс (системный процесс, либо приложение). Процесс характеризуется вероятностью присутствия в нем уязвимости (для известной и неисправленной уязвимости, ее значение можно принять, равной 1). Значения этой вероятности можно задать, исходя из существующей статистики угроз.
2. Поскольку уязвимость в процессе (в приложении) с соответствующей вероятностью присутствует, можно считать, что именно с данной вероятностью на данный процесс будет осуществлена успешная атака.
3. Поскольку не представляется возможным в общем случае предсказать, что за уязвимость будет обнаружена в процессе (приложении), с целью повышения уровня безопасности системы, следует минимизировать последствия атаки на уязвимость, представляющую собою «черный ящик», т.е. следует предполагать, что в результате атаки на процесс, он может быть несанкционированно наделен совершенно произвольным функционалом.
4. А вот цели атак, в отличие от способов, конечны и вполне предсказуемы. Именно в противодействии целям атак и может состоять защита в общем случае.
Таким образом, чтобы вести разговор о минимизации последствий атак на уязвимости приложений, нужно разобраться с целями подобных атак. Классификация целей наиболее распространенных сетевых атак приведена на рис.5 [6].


Как следует из рис.5, к основным целям атак на уязвимости приложений можно отнести: установку и запуск вредоносной программы (28%), кражу информации (сюда же можно отнести кражу денег, в совокупности, 37%), дезинформацию, либо несанкционированную модификацию информации (19%). Т.е. подобные последствия атак следует минимизировать в первую очередь. Крайне важно отметить, что это атаки, связанные с несанкционированными записью и чтением информации, которые, практически, равновероятны.
Основой основ защиты информации является реализация разграничительной политики доступа к ресурсам, как следует, из рис.5, в данном случае, в первую очередь, к файловым объектам. Однако при постановке задачи защиты в данном случае существует ключевое отличие, субъектом доступа является процесс (приложение), идентифицируемый полнопутевым именем своего исполняемого файла. Как следствие, защита должна реализовываться контролем доступа (разграничением прав доступа) процессов (приложений) к файловым объектам.
2. Вероятностная модель контроля доступа к файловым объектам.
Альтернативными метода контроля доступа являются контроль доступа к статичным [7] и к создаваемым файловым объектам [8]. В последнем случае, создаваемый субъектом файл наследует идентификатор, создавшего его субъекта, в нашем случае, субъект - это процесс. Модели контроля доступа далее будем рассматривать применительно к методу контроля доступа к создаваемым файловым объектам, вместе с тем, оговоримся, что все полученные результаты справедливы и для метода контроля доступа к статичным файловым объекта.
При реализации контроля доступа к создаваемым файловым объектам, поскольку из схемы контроля доступа исключена сущность «объект» доступа, матрица доступа приобретает следующий вид. Если считать, что множество С = {С1,…, Сl}- линейно упорядоченное множество субъектов доступа - процессов, идентифицируемых полнопутевыми именами их исполняемых файлов, а R = {R1,…, Rm} конечное множество прав доступа (чтение ®, запись (w), удаление (d), исполнение (x), отсутствие прав доступа (0)) субъекта Ci к объекту, созданному субъектом Cj; i=1,…,l, j=1,…,l, то матрица доступа М, используемая для реализации разграничительной политики методом контроля доступа с принудительным управлением потоками информации (сущность "Владение" исключена, как таковая) имеет следующий вид (условимся в строках матрицы указывать учетную информацию субъектов - процессов, запрашивающих доступ к объектам, а в столбцах – учетную информацию субъектов - процессов, унаследованную созданными объектами):


В любой момент времени система описывается своим текущим состоянием Q = (C,С,M), М[C,С] – ячейка матрицы, содержит набор прав доступа. Будем обозначать Cj®Ci разрешением права доступа субъекту Cj к объекту, созданному субъектом Ci, i=1,…,l; j=1,…,l, где R = {x,w,r,d}: исполнение (x), запись (w), чтение ®, удаление (d).
Лемма 1. Не допустимо разрешение субъектам права исполнения (x) созданного в процессе функционирования системы файла. При реализации данного требования система безопасна относительно запуска приложениями вредоносных программ.
Доказательство. На реализации именно этого требования основана эффективная защита от вредоносных программ [9]. Не допустимо одновременно (для одного и того же объекта) предоставлять право запись, исполнение (w,x) [10], не предоставить же право записи субъектам нельзя, т.к. реализуется контроль именно создаваемых (они должны создаваться) файлов, следовательно право исполнение (x) должно быть исключено. Лемма 1 доказана.
Следствие. К разрешенным правам доступа к создаваемым файловым объектам относятся: R = {w,r,d}.
Следствие. Только реализацией требования, сформулированного Леммой 1, устраняются последствие 28% атак на уязвимости сетевых приложений, т.к., какая бы программа не была ими несанкционированного записана, запустить ее невозможно.
Аксиома. При назначении разграничительной политики «по умолчанию» должны быть установлены права доступа: Ci(w,r,d)Ci, i=1,…,l. Данное правило обусловливает задание диагональной («канонической» [10]) матрицы доступа, характеризуемой условием: Ci(w,r,d)Ci, i=1,…,l; Ci(0)Cj, i≠j, i=1,…,l, j=1,…,l. Каноническая матрица доступа Мк, представленная ниже, по ряду причин, далее будет представлять для нас особый интерес:

Основной особенностью матрицы Мк является определение ею разграничительной политики, реализующей полную изолированность обработки процессами (приложениями) информации. А теперь вернемся к уязвимости приложений. По прежнему будем считать, что множество С = {С1,…, Сl} - линейно упорядоченное множество субъектов доступа - процессов, идентифицируемых полнопутевыми именами их исполняемых файлов. Пусть множество P = {P1,…, Pl}- линейно упорядоченное множество вероятностей обнаружения уязвимостей процессов (приложений) из множества субъектов доступа - процессов С = {С1,…, Сl}. С учетом того, что эти уязвимости приводят к несанкционированной записи (включим сюда и удаление) w, либо к несанкционированному чтению r, будем считать, что вероятность несанкционированной записи субъектом Ci составляет Pi(w), несанкционированного чтения - Pi®, при этом Pi=Pi(w) +Pi®, i=1,...,l. В общем случае чтение, соответственно, запись в один и тот же объект может быть разрешено нескольким субъектам, в пределе всем субъектам С = {С1,…, Сl}, поэтому здесь следует говорить о суммарных вероятностях Piс® и Pic(w), определяемых следующим образом:

Вероятностная модель контроля доступа к файловым объектам, определяющая вероятности несанкционированного доступа (записи или чтения) к объектам, за счет уязвимостей субъектов из множества С = {С1,…, Сl}, описывается матрицей доступа, ячейка которой Мp[C,С] содержит суммарные вероятности несанкционированного чтения Pic® и записи Pic(w) объекта, осуществляемых за счет атак на уязвимости субъектов С = {С1,…, Сl}. Каноническая матрица доступа Мрк вероятностной модели контроля доступа имеет следующий вид:

Следуя (1) и (2), в матрице доступа Мрк: Pic® = Pi®, Pic(w) = Pi(w).
Лемма 2. При реализации разграничительной политики, основанной на полной изолированности обработки процессами (приложениями) информации, что описывается канонической матрицей доступа Мрк вероятностной модели, последствия от атак на уязвимости процессов (приложений) минимальны и составляют: Pi®, Pi(w), i=1,...,l. Доказательство. Для канонической матрицы доступа Мрк имеет место: Pic® = Pi®, Pic(w) = Pi(w). Значения Pic® и Pic(w) сделать меньше без запрета соответствующих прав доступа Ci®Ci, Ci(w)Ci (т.е. без запрета доступа к соответствующим объектам) не представляется возможным. Включение в матрицу любого дополнительного права доступа Cj®Ci, соответственно, Cj(w)Ci, следуя (1) и (2), приводит к увеличению значений Pic® и Pic(w). Лемма доказана.
Вывод. Реализация разграничительной политики, основанной на полной изолированности обработки процессами (приложениями) информации, что описывается канонической матрицей доступа, обеспечивает максимальный уровень безопасности. Ввиду того, что уровень безопасности - величина последствий от атак на уязвимости приложений, может быть понижен в результате добавления права r или w к канонической матрице доступа, далее сформулируем требование к безопасному расширению канонической матрицы доступа правами r и/или w. Важным для последующих наших рассуждений является то, что в общем случае значения вероятностей уязвимости различных процессов (приложений) на практике, по различным причинам, существенно различаются.
Лемма 3. Безопасным является включение в каноническую матрицу доступа права доступа Cj®Ci, соответственно, Cj(w)Ci, i≠j, при выполнении условия: Pj(w) << Pi(w), соответственно, Pj® << Pi®.
Доказательство. Обратимся к (1), (2). При включении в каноническую матрицу доступа права доступа Cj®Ci, соответственно, Cj(w)Ci, i≠j, получаем:

Лемма доказана.
Лемма 4. Максимально опасным является включение в каноническую матрицу доступа права доступа Cj®Ci, соответственно, Cj(w)Ci, i≠j, при выполнении условия: Pj(w) >> Pi(w), соответственно, Pj® >> Pi®.
Доказательство. Обратимся к (1), (2). При включении в каноническую матрицу доступа права доступа Cj®Ci, соответственно, Cj(w)Ci, i≠j, получаем:

Лемма доказана.
Вывод. В современных условиях (см. рис.1, рис.3) нельзя говорить о построении безопасной системы при отсутствии возможности реализации изолированной обработки информации процессами (приложениями), т.е. без реализации контроля доступа процессов (приложений) к файловым объектам.
Следствие. Поскольку в современных ОС запускаемый процесс (приложение) наследует права доступа (маркер безопасности) запускающего его пользователя (все процессы (приложения), запущенные одним пользователем, имеют одинаковые права доступа к файловым объектам), в безопасной системе в обязательном порядке должен быть реализован механизм контроля доступа процессов (приложений) к файловым объектам, в которой именно процесс (приложение) выступает в качестве самостоятельного субъекта доступа, для которого разграничиваются права доступа. В противном случае уровень безопасности системы будет определяться максимально опасными включениями в каноническую матрицу доступа прав доступа, уровень безопасности подобной системы на порядки ниже, чем уровень безопасности системы, описываемой канонической матрицей доступа.
Теорема. Максимально безопасной, относительно атак на уязвимости приложений, является разграничительная политика доступа к файловым объектам, реализующая каноническую матрицу доступа вероятностной модели контроля доступа, с разрешаемыми правами доступа к создаваемым файловым объектам: R = {w,r,d}, с возможным ее расширением правами доступа Cj®Ci, соответственно, Cj(w)Ci, i≠j, i=1,…,l, j=1,…,l, при выполнении условия: Pj(w) << Pi(w), соответственно, Pj® << Pi®. Последствия от атак на уязвимости процессов (приложений) в этом случае минимальны и составляют: Pi®, Pi(w), i=1,...,l. Теорема доказывается доказательством Лемм 1-3. Теперь рассмотрим следующее условие. Пусть на множестве P = {P1,…, Pl}- линейно упорядоченное множество вероятностей обнаружения уязвимостей процессов (приложений) из множества субъектов доступа - процессов С = {С1,…, Сl}, задано следующее отношение: P1<<P2<<...<<Pl. Воспользуемся Леммами 1-3 и получим матрицу доступа Мк, описывающую максимально безопасную разграничительную политику доступа к файловым объектам, относительно атак на уязвимости приложений:

Из матрицы Мк видим (присутствует соответствующая иерархия отношений) возможность реализации в данному случае метода маркерного контроля доступа процессов (приложений) к файловым объектам. Сформулируем данный метод, применительно к защите создаваемых файловых объектов [11] (аналогичный метод может быть сформулирован и применительно к защите статичных файловых объектов). Будем считать, что множество С = {С1,…, Сl} - линейно упорядоченное множество субъектов доступа - процессов, идентифицируемых полнопутевыми именами их исполняемых файлов, а множество P = {P1,…, Pl} - линейно упорядоченное множество вероятностей обнаружения уязвимостей процессов (приложений) из множества субъектов доступа - процессов С = {С1,…, Сl}, причем P1<<P2<<...<<Pl. Метки безопасности являются элементами линейно упорядоченного множества M = {M1,…,Ml}. Метки безопасности, назначаются субъектам (процессам, приложениям) и служат для формализованного представления отношения значений вероятностей обнаружения их уязвимостей на множестве P = {P1,…, Pl}. Условимся считать, что чем меньше значение Pi субъекта, тем меньшее значение метки Mi, i=1,...,l ему присваивается, т.е.: M1 < M2 < M3<…<Ml.
Введем следующие обозначения:
· Miс – метка безопасности субъекта, запрашивающего доступ к созданному объекту;
· Mio – метка безопасности созданного объекта, унаследованная от создавшего его субъекта (Miс).
Правила контроля доступа:
1. Субъект С имеет доступ к объекту О в режиме R = {w,r} в случае, если выполняется условие: Miс > Mio.
2. Субъект С имеет доступ к объекту О в режиме R = {w,r,d}, в случае, если выполняется условие: Miс = Mio.
3. В случае Miс < Mio доступ субъекта С к объекту О запрещен.
При запросе доступа к объекту, диспетчер доступа по заданному правилу сравнивает метку безопасности субъекта, запросившего доступ, Miс, с меткой безопасности объекта, к которому запрошен доступ, Mio, унаследованную от субъекта, создавшего этот объект, в результате чего, в соответствии с правилом контроля доступа, диспетчер либо разрешает запрошенный субъектом доступ, либо отказывает в нем.
3. Модель контроля доступа к файловым объектам на основе потенциальных потерь (рисков).
Величина ущерба от атаки на уязвимость приложения может быть оценена количественно. Как известно, в информационных технологиях под риском (N) понимаются потенциальные потери от угроз защищенности. Будем считать, что стоимость потерь информации, располагаемой в объекте, созданном субъектом Сi из множества С = {С1,…, Сl}, составляет Si и определяется следующим образом: Si® -стоимость потерь от раскрытия конфиденциальности информации, осуществляемого с вероятностью Pi®, соответственно, Si(w) - стоимость потерь от нарушения целостности (доступности) информации, осуществляемого с вероятностью Pi(w).
В этом случае потенциальные потери (риск), применительно к объекту, созданному субъектом Ci, может быть оценен следующим образом: Ni® = Si®Pi® - потери, обусловленные нарушением конфиденциальности информации, Ni(w) = Si(w)Pi(w) - потери, обусловленные нарушением доступности, целостности информации. Если чтение, соответственно, запись в один и тот же объект может быть разрешено нескольким субъектам, в пределе всем субъектам С = {С1,…, Сl}, следует говорить о суммарных вероятностях Piс® и Pic(w), определяемых из (1), (2), и, соответственно, о суммарных рисках, определяемых следующим образом: Ni® = Si®Piс®, соответственно, Ni(w) = Si(w) Pic(w).
Применительно же к разграничительной политике доступа в целом, в части оценки уровня безопасности системы, относительно атак на уязвимости приложений, будем говорить о полных суммарных рисках, соответственно, Nс® и Nc(w), определяемых следующим образом:


Вывод. Nс® и Nc(w), задающие величину ущерба от потенциальных атак на уязвимости приложений в системе, являются количественными критериями уровня безопасности системы.
Вывод. При реализации разграничительной политики, основанной на полной изолированности обработки процессами (приложениями) информации, что описывается канонической матрицей доступа Мrк модели контроля доступа к файловым объектам на основе потенциальных потерь, как следует из Леммы 3, последствия от атак на уязвимости процессов (приложений) минимальны и составляют:


Таким образом, при построении разграничительной политики доступа процессов (приложений) к файловым объектам, реализуемой с целью минимизации потенциального ущерба от атак на уязвимости приложений, подобный ущерб может быть оценен количественно, т.е. количественно может быть оценен уровень безопасности системы по отношению к рассматриваемому классу угроз.
Заключение.
В заключение отметим, что в работе исследована одна из наиболее актуальных на сегодняшний день проблем обеспечения компьютерной безопасности - проблема защиты от атак на уязвимости приложений. Предоставлено обоснование необходимости и сформулированы требования к корректности реализации разграничительной политики доступа процессов (приложений), как самостоятельных субъектов доступа, к файловым объектам. Предложен подход к количественной оценке эффективности разграничительной политики доступа, направленной на защиту от атак на уязвимости приложений, - к количественной оценке уровня безопасности системы.
Литература.
1. Отчет IBM о тенденциях и рисках информационной безопасности по итогам 2010 год [Электронный ресурс]// URL:/http://www.itpractice.ru/theory/researches/955-ibmanalize.html.
2. Т.Саати. Элементы теории массового обслуживания и ее приложения. – М.: Изд. «СОВЕТСКОЕ РАДИО», 1965. – 511 с.
3. "Критические дни": Linux, Mac OS X, Solaris and Windows [Электронный ресурс]// URL:/ http://www.securitylab.ru/opinion/297876.php .
4. Symantec: Windows - самая надежная система [Электронный ресурс]// URL:/ http://www.securitylab.ru/news/293392.php .
5. Отчет по уязвимостям 20.02-26.02 2012 [Электронный ресурс]// URL:/ http://www.securitylab.ru/vulnerability/reports/420676.php .
6. The web hacking incidents database 2009 [Электронный ресурс]// URL: http://www.breach.com/resources/whitepapers/downloads/WP_TheWebHackingIncidents-2009.pdf
7. Щеглов К.А., Щеглов А.Ю. Контроль доступа к статичным файловым объектам// Вопросы защиты информации. Научно-практический журнал. Выпуск 2 (97), Москва, 2012. – С.
8. Щеглов К.А., Щеглов А.Ю. Принцип и метод дискреционного контроля доступа к создаваемым объектам// Вопросы защиты информации. Научно-практический журнал. Выпуск 1 (96), Москва, 2012. – С.
9. Шибаева Т.А., Щеглов А.Ю., Оголюк А.А. Защита от внедрения и запуска вредоносных программ // Вопросы защиты информации. Научно-практический журнал. Выпуск 2 (93), Москва, 2011. – С.26-35.
10. Щеглов А.Ю. Защита компьютерной информации от несанкционированного доступа. – СПб: Наука и техника, 2004. - 384с.
11. Щеглов К.А., Щеглов А.Ю. Принцип и метод маркерного контроля доступа к создаваемым объектам// Вопросы защиты информации. Научно-практический журнал. Выпуск 1 (96), Москва, 2012. – С.
или введите имя

CAPTCHA