Евгений Тумоян. Моделирование атак: искусственный интеллект против естественных ошибок
1. Тумоян Е.П.
К.т.н., доцент кафедры БИТ
С.н.с. ЮРРУНЦ ИБ
Южный федеральный университет
Positive Hack Days 2013
2. Структура доклада
Positive Hack Days 2013
Проблема
Модели атак – определение и применение
Простейшие модели
Классические модели
Интеллектуальные модели
Модель на базе искусственных нейронных сетей
2
4. Проблема
Positive Hack Days 2013
Процесс тестирования
безопасности
• Длительный и трудоемкий
• Сложные взаимосвязи между
объектами тестирования
• Много рутинных операций
4
5. Проблема
Пути к успеху
• Продуманная методика тестирования, в
основе - зарекомендовавшие себя
методологии – OWASP, OSSTMM и т.д.
• Грамотное распределение ролей в команде.
• Регламент и программное обеспечение для
совместной работы.
• Высокая мотивация сотрудников.
• Автоматизация рутинных операций.
Positive Hack Days 2013 5
8. Модели атак
Positive Hack Days 2013
Определение
• Модель атаки - множество
связанных между собой
этапов атаки, актуальных для
данной системы, которые
приводят систему в состояние
необходимое атакующему.
8
10. Модели атак
Применение
Positive Hack Days 2013
Визуализация атак
• Видеть сценарий атаки
полностью – от начала до цели.
• Выделять наиболее опасные или
наиболее приоритетные атаки
(ограниченное время
тестирования).
• Организация совместной работы
10
11. Модели атак
Применение
Positive Hack Days 2013
Симуляция атак
• Учет условий для выполнения
этапов атаки.
• Определение того, как атака
влияет на компьютерную систему
• Автоматическое вычисление
реального сценария атаки
11
12. Модели атак
Применение (Future)
Positive Hack Days 2013
Построение новых атак
• Генерация новых этапов атаки - воздействий,
приводят систему в требуемое состояние:
• Automatic Exploit Generation (2010)
• Evolutionary Fuzzing (Black Hat, DEFCON
2007)
• Автоматическое создание новых сценариев
атак.
12
13. Модели атак. Классификация
Positive Hack Days 2013
Простейшие модели
• Этапная модель
• Деревья атак
Классические модели
• Улучшенные деревья атак
• Системы на основе правил
• Графы атак (частично)
• Формальные грамматики (не рассматривается)
• Interacting State Machines (не рассматривается)
Интеллектуальные модели
• Логическое программирование
• Скрытые марковские модели
• Вероятностные модели
• Эволюционные стратегии и генетические алгоритмы
• Когнитивные карты
13
15. Этапная модель
Positive Hack Days 2013
Исследование и анализ
Получение доступа
Повышение привилегий
Поддержание доступа
Заметание следов
Недостаток: Способ представления знаний о проведении атак.
Автор неизвестен, XXX до Н.Э.
15
16. Деревья атак
Positive Hack Days 2013
Schneier B. Attack Trees /Dr. Dobb's Journal, 1999 //
URL: http://www.schneier.com/paper-attacktrees-ddj-ft.html.
Брюс Шнайер, 1999 год.
Свойства:
• Концептуальные диаграммы описывают угрозы системе
и возможные атаки.
• Описания атак на любые системы — физические,
технические, информационные.
• Возможность оценки каждого шага по некоторым
критериям (стоимость, время, потери).
Недостатки:
• Способ представления знаний о возможных путях
взлома системы
16
17. Инструменты. Деревья атак
Positive Hack Days 2013
Рисование
• Microsoft Visio
• Dia
• Concept Draw
• Over 9000
Спец. средства
• SeaMonster
(Free)
Моделирование
• Attack Tree+
• SecureITree
17
19. Расширенные деревья атак
Positive Hack Days 2013
McDermott J.P. Attack Net Penetration Testing // Proc. of the
2000 Workshop on New Security Paradigms. New York: ACM
Press. – 2001. – P. 15–21.
Предложены: McDermott J.P, 2001 год.
Формальное определение деревьев атак с
помощью дизъюнктивных сетей Петри.
• Узлы соответствуют состояниям.
• Переходы - действия приводящие к изменению
состояний.
Недостатки:
• Ручная генерация деревьев.
• Условия перехода задаются правилами перемещения
токена. Данный формализм не способствует
корректному описанию низкоуровневых атак.
19
20. Системы на основе правил
Positive Hack Days 2013
Danforth M. Models for Threat Assessment in Networks. –
http://www.cs.ucdavis.edu/research/tech- reports/2006/CSE-2006-
13.pdf
Предложены: Danforth M., 2006 год.
Модель предикатов/действий (predicates and actions).
Эксплойт:
• множества предикатов - условий (предусловий),
необходимых для срабатывания эксплойта
• множества следствий (действий) – изменений состояния
сети вследствие атаки.
Наборы эксплойтов образуют атаку.
Прямой поиск - ищется предусловие, удовлетворяющее
состоянию
сети, и состояние изменяется в соответствии с постусловием.
Возможен обратный ввод – когда на основе критического
текущего состояния вычисляется предусловие, которое к нему
20
21. Системы на основе правил
Positive Hack Days 2013
Предусловия:
на хосте B запущена уязвимая SSH служба
нарушитель имеет необходимые привилегии на хосте A
ssh- порт на хосте B доступен с хоста A
Постусловие: нарушитель имеет права администратора на хосте B.
Main Preconditions
var(t, ssh)
priv(s) ≥ user
priv(t) < root
connect(s, t, ssh)
Edge Preconditions
var(t, ssh) priv(t) = root
priv(s) ≥ user & s ̸ = t
¬edge(s, t, ssh)
connect(s, t, ssh)
Postconditions
priv(t) = root
Недостатки:
• Спецификация составляется вручную.
• Существенное увеличение размера спецификации при
детализации эксплойтов.
21
22. Графы атак
Positive Hack Days 2013
Свойства:
• Являются специализированным средством для
описания сетевых атак.
• Узлы графа представляют не концептуальные
действия, а узлы сети, процессы, конфигурационные
файлы, участки кода, переменные и т.д.
Однако графы – это форма представления связи
состояний. Должно быть определено:
• Что такое само состояние.
• Когда переходить в данное состояние
• Когда из него выходить
22
23. Графы атак (I)
Positive Hack Days 2013
Sheyner, O. Automated Generation and Analysis of Attack Graphs /Oleg
Sheyner, Joshua Haines, Somesh Jha, Richard Lippmann, Jeannette M.
Wing // Proceedings of the IEEE Symposium on Security and Privacy.
Oakland, CA, USA, 2002. P. 273 – 284.
Граф: exploit-dependency
Моделирование перехода: символьная верификация
(детерминированные правила). Учитывается текущее значение
некоторых параметров системы, переменных и т.д.
Цель: достижение необходимой вершины на графе.
Достоинства:
• Простая и хорошо исследованная математическая база.
• Формальное доказательство безопасности системы.
Недостатки:
• Модель (часть модели) системы делается вручную.
• Низкая производительность.
23
24. Графы атак. NuSMV
Positive Hack Days 2013
attack sshd-buffer-overflow is
intruder preconditions
plvlA(S) ≥ user
plvlA(T ) < root
network preconditions
ssh(T)
R(S,T,sp)
intruder effects
plvlA(T ) = root
network effects
¬ssh(T)
end
FSAP/NuSMV-SA
https://es.fbk.eu/tools/FSAP
24
25. Графы атак. Attack Graph Tool
Positive Hack Days 2013
Источники данных о модели сети и уязвимостях:
• Формат XML
• Nessus
• Locheed Martin ANGI Tool
• MITRE Corp Outpost
25
26. Графы атак (II)
Positive Hack Days 2013
Lippmann R.P., Ingols K.W., Piwowarski K. Practical Attack Graph
Generation for Network Defense. –http://www.ll.mit.edu/IST/pubs/70.pdf
Lippmann R.P. 2005 - 2009
Строится граф сети, в котором отражается логическая связность
элементов сети (host-oriented).
Эксплойт описывается на основе простых правил:
• Требования для эксплойта (связность с уязвимой системой)
• Эффект от эксплойта (уровень привилегий получаемый в
системе)
Cтроится граф и производится «прямой вывод» возможного влияния
атаки на сеть поиском по графу.
Метод строит графы в худшем случае – если уязвимость
предполагается на узле, то считается что она всегда есть и всегда
может быть проэксплуатирована.
Система NetSPA
26
27. Инструменты. NetSPA
Positive Hack Days 2013
Публично недоступна. Разработана в MIT, 2007 - 2008
Импорт данных: Nessus, МЭ Sidewinder и Checkpoint, CVE и NVD.
Система строит MP-граф (multiple-prerequisite graph), автоматически
анализирует его, создает отчет и выдает рекомендации.
Для выдачи изображения графа используется «склеивание» вершин.
Анализируемая сеть и часть соответствующего ей графа атак
27
28. Инструменты. RedSeal Plaform
Positive Hack Days 2013
RedSeal Networks -ReadSeal Platfrom 6.
http://www.redsealnetworks.com/
Автоматическое построение карты сети
• Проверка правил сетевых экранов
• Проверка маршрутизаторов
• Etc
Автоматическое получение информации об уязвимостях
• Сканирование узявимостей
Построение графа атаки
• Host-oriented граф атаки.
• По графу атаки производится трассировка узлов и с учетом узявимостей определяются
доступность сетевых узлов от некоторого источника (от интернет-шлюза).
• Трассы достижимости накладываются на карту сети.
Ранжирование уязвимостей по степени риска
Многоэтапная оценка рисков при реализации всей атаки
28
31. Графы атак (III)
Positive Hack Days 2013
Jajodia S., Noel S. Managing Attack Graph Complexity Through Visual
Hierarchical Aggregation. // In 1st International Workshop on Visualization
and Data Mining for Computer Security, Washington, DC, USA. – October
2004. – P. 109 – 118.
Exploit-dependency граф, различные эксплойты на различных узлах
сети представляют различные ноды. Алгебраически вычисляется
достижимость различных целей и выделяются пути атаки.
Техники для снижения размерности графа:
• группировка эксплойтов между одинаковыми узлами сети.
• т.н. protection domains – участки сети в которых нет фильтрующих
устройств – например сетевых экранов.
• Предусловия и постусловия для одинаковых эксплойтов
сворачиваются в одно.
Визуализация графов атак и визуальное представление информации
о безопасности сетей на графе.
Авторы утверждают, что это ―…perhaps the greatest challenge in
making network attack graphs practical …‖
31
32. Инструменты. TVA Tool / Cauldron
Positive Hack Days 2013
TVA Tool – экспериментальная система. Для
пользователей недоступна
• Описания элементарных атак и цели нарушителя
вводятся вручную в модели предусловий и постусловий.
• При определении достижимости узлов используется
сканер Nessus.
• Возможно получить информацию, необходимую для
детального моделирования низкоуровневых атак.
Cauldron – коммерческая версия системы
• http://cyvisiontechnologies.com/cauldron
32
36. Скрытые марковские модели
Positive Hack Days 2013
Applications of Hidden Markov Models to Detecting Multi-Stage
Network Attacks
Dirk Ourston Sara Matzner William Stump Bryan Hopkins
http://dl.acm.org/citation.cfm?id=820756.821796
Скрытые марковские модели (HMM) – статистические модели
процесса, часть параметров которого неизвестна.
• Неизвестные параметры – состояния, известные параметры – наблюдения.
• Цель – построение такой модели, которая будет наилучшим образом отвечать
наблюдениям.
• Способ построения – обучение.
Моделирование атак
• Атака представляется последовательностью наблюдений.
• Необходимы примеры атак для обучения.
• Обученная модель способна распознавать атаки и оценивать на каком этапе
находится атака в данный момент.
36
37. Логическое программирование
Positive Hack Days 2013
Ou X., Boyer W.F., McQueen M.A. A Scalable Approach to Attack Graph
Generation. – http://www.cis. ksu.edu/~xou/publications/ccs06.pdf.
Логический граф – это направленный граф, состоит из
вершин вывода (derivation node) и вершин фактов (facts node).
• Вершина факта - логическое высказывание в форме предиката, истинное
или ложное в зависимости от его аргументов.
• Вершины фактов: базовые факты и производные факты.
• Вершина вывода - правило вывода, которое используется для получения
новых фактов из имеющихся.
• Дуги в графе - отношение зависимости.
Моделирование атак
• Модель сети и атаки описывается правилами языка Datalog
• Производится вывод правил
• По истинным правилам строится граф атаки.
37
38. Логическое программирование
Positive Hack Days 2013
<0>|--execCode(attacker,workStation,root) <r0>Rule5: Trojan horse
installation
<1>|--accessFile(attacker,workStation,write,/usr/local/share)
<r1>Rule14: NFS semantics
[]-nfsMounted(workStation,/usr/local/share,fileServer,/export,read)
<2>||--accessFile(attacker,fileServer,write,/export)
<r2a>Rule10: execCode implies file access []-
fileSystemACL(fileServer,root,write,/export)
<3>|--execCode(attacker,fileServer,root)
<r3>Rule3: remote exploit of a server program
[]-networkServiceInfo(fileServer,mountd,rpc,100005,root) []-
vulExists(fileServer,CVE-2003-0252,mountd,
remoteExploit,privEscalation)
<4>|--netAccess(attacker,fileServer,rpc,100005)
<r4>Rule6: multi-hop access []-hacl(webServer,fileServer,rpc,100005)
<5>|--execCode(attacker,webServer,apache)
<r5>Rule3: remote exploit of a server program
[]-networkServiceInfo(webServer,httpd,tcp,80,apache) []-
vulExists(webServer,CAN-2002-0392,httpd,
remoteExploit,privEscalation)
<6>|--netAccess(attacker,webServer,tcp,80)
<r6>Rule7: direct network access []-hacl(internet,webServer,tcp,80) []-
located(attacker,internet)
<r2b>Rule15: NFS shell []-hacl(webServer,fileServer,rpc,100003) []-
nfsExportInfo(fileServer,/export,write,webServer) |--
execCode(attacker,webServer,apache)==> <5>
38
39. Инструменты. MulVAL
Positive Hack Days 2013
Данные об уязвимостях
импортируются в язык Datalog:
• Nessus
• OVAL
Данные о сетевой связности:
• По умолчанию предполагается, что все узлы
связаны между собой
• Можно вводить дополнительные правила
выражениями языка Datalog
Правила проведения атаки:
• Набор правил по умолчанию mulvalkb
• Можно добавлять собственные правила
выражениями языка Datalog
MulVal
Данные об
уязвимостях
Данные о
сетевой
связности
Правила
атаки
39
40. Вероятностные оценки (вероятностные графы)
Positive Hack Days 2013
http://csrc.nist.gov/publications/PubsNISTIRs.html#NIST-IR-7788
NIST Interagency Report 7788 Security Risk Analysis of Enterprise Networks
Using Probabilistic Attack Graphs // Anoop Singhal Ximming Ou
Построение графа и путей атаки – логическое программирование.
Оценка критичности и вероятности пути атаки – оценки CVSS:
• Access Vector (AV)
• AccessComplexity(AC)
• Authentication(Au)
• ConfidentialityImpact(C)
• IntegrityImpact(I)
• Availability Impact (A)
Формулы:
• BaseScore = round_to_1_decimal(((0.6*Impact)+(0.4*Exploitability)–
1.5)*f(Impact))
• Impact = 10.41*(1-(1-ConfImpact)*(1-IntegImpact)*(1-AvailImpact))
• Exploitability = 20* AccessVector*AccessComplexity*Authentication
Вероятностные оценки реализованы в MulVAL
40
41. Эволюционные алгоритмы
Positive Hack Days 2013
http://www.tdx.cat/bitstream/handle/10803/9160/GuiomarCorral_memori
atesi_2009_07_13.pdf
2006 год. Метод и система (Consensus) для поддержки анализа
безопасности сетей.
Базовое понятие - уязвимость.
Сканирование сети с использованием сторонних утилит.
• Много различных инструментов для тестов: сетевых узлов, проводных сетей,
беспроводных сетей.
С использованием эволюционных алгоритмов строятся наборы
категорий, куда входят уязвимости связанные по какому либо
признаку.
Тестировщик получает возможность анализировать группы
узявимостей и объяснение - почему уязвимость отнесена в данную
группу.
41
42. Инструменты. Consensus
Positive Hack Days 2013
Экспериментальная система.
Разработана в Universitat Ramon Llull, Research Group in Intelligent
Systems – Барселона.
Архитектура
42
44. Выводы
Positive Hack Days 2013
Простейшие модели
• Только способ графического представления знаний
Классические модели
• Модели могут быть построены автоматически
• Смысл узявимостей не рассматривается.
• Оценить как данная уязвимость повлияет на ход атаки
невозможно.
Сложные модели
• Но построение модели атаки и спецификации ее
функционирования должно производиться вручную в
том формализме, который выбран для моделирования.
44
46. Построение модели атаки
• Модель смешанная – host-oriented и exploit-oriented
• Состояние автомата - это этап проведения атаки на
данный узел.
• Путь на графе состояний автомата - это сценарий
атаки.
Прямая реализация сложна
• Большое количество одинаковых состояний
• Неполнота информации о состоянии атакуемой
системы.
• Сложность расчета функции переходов и выходов
автомата.
Постановка задачи
Positive Hack Days 2013 46
47. Модель (графическое представление)
Positive Hack Days 2013
q0
Общая память
q1
q2
q3
q4
y0
a0
P’
y1
a1
y2
a2
y3
a3
y4
a4
P
P
P
P
P
Смешанная host-dependency и exploit-dependency модель
47
48. Проблема: Много состояний, переходы в
которых незначительно отличаются
• Кластер состояний C – это множество состояний
Q, для которых функции выхода одинаковы, а
функции перехода можно представить в виде
суперпозиции функций
Большое количество одинаковых
состояний
F(qi,M) = G(D(qi, M))
M - shared memory
"Qc
i,Qi
c
: Di = Dj
"Gi область определения - конечное множество
Positive Hack Days 2013
Причем:
48
49. Кластерный анализ эксплойтов
Критерии
• Операционная система / версия
• Уязвимое программное обеспечение
• Содействие – активный / пассивный
• Удаленный локальный
• Результат
Генетический алгоритм
Большое количество одинаковых
состояний
Positive Hack Days 2013 49
50. Проблема: Получаемые данные о
системе неполны
• a – множество данных, a’ - множество
получаемых данных, a’’ - множество
неполучаемых данных.
• Если a = a' , то присутствует вся информацию
о входных данных для некоторого состояния.
• В реальных системах это не так.
• Существует такое a' , что переход станет
недетерминированным:
Неполнота информации
Qi+1' = F(qi,ai ')
Positive Hack Days 2013
a'' = a / a'
50
51. Проблема: Сложность представления функций
переходов и выходов
• Большая мощность входного алфавита
• Входные данные имеют различный тип: сетевые пакеты, строки,
реакция системы в режиме графического интерфейса и т.д.
• Сложные взаимосвязи между входами и состояниями автомата.
Сложность расчета функции переходов и
выходов
Общая память (shared memory) содержит
информацию о текущем состоянии системы для
функций переходов и выходов автомата
Qi+1' = F(qi, M)
M =Èa'0,a'1,...,a'i
yi =O(qi,M)
Positive Hack Days 2013 51
52. Расчет функций переходов
Аппроксимация D(.)
• Используются RBFN
• Конечный набор известных пар {M D(M)}
• Позволяют приблизить любуюгладкую функцию от входных аргументов
• Рассчитывают вероятность выхода
Аппроксимация G(.)
• Используются таблицы {D(M) Qi}
• Обеспечивают быстрый расчет
D(.) одинакова для все состояний кластера, т.е. рассчитывается для этапа
атаки один раз. Характеризует результаты этапа.
G(.) описывает переход в следующее состояние в зависимости от
результатов этапа.
Positive Hack Days 2013 52
53. Расчет функций выходов
Запуск эксплойта
• Если он есть
Симуляция
• Аппроксимация конечного набор известных пар {P(M) yi}
• Многослойная нейронная сети прямого
распространения с гладкими активационными
функциями (Multilayer Perceptrons, MLP).
• Приближает любую гладкую функцию от входных
аргументов.
• Большое время обучения.
Запрос решения
Positive Hack Days 2013 53
54. Метод
Сканирование системы: Тип и версия ОС, сервисы, версии сервисов, уязвимости
Получение эксплойтов из доступных источников.
• Metasploit Framework
Анализ эксплойтов.
• Анализ ключевых слов
Кластеризация эксплойтов
Построение вероятностного графа.
• Вероятности и сематические связи между состояниями.
Симуляция, выполнение эксплойтов и усечение графа.
Positive Hack Days 2013 54
56. Проблемы
• Новый протокол управления RPC -> MSGPACK (HTTP)
• Отличие активных и пассивных эксплойтов по исходному коду
• Признак срабатывания эксплойта – получение новой сессии:
задержка
Реализация
Интеграция с Metasploit Framework
Rex
Tools MSF Core
MSF Base
Модули Plugins
Positive Hack Days 2013 56
57. Проблемы
• Цели (Targets) не содержат спецификации целевого
сервиса
• Идентификаторы CVE/CVSS часто отсутствуют
• Описание (Description) неформализованное
Реализация
Анализ эксплойтов
This module exploits a buffer overflow in the Blue
Coat Systems WinProxy service by sending a long port
value for the Host header in a HTTP request.
Решение
• Анализ ключевых слов
Positive Hack Days 2013 57