Деревья атак

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

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

Увеличивается применение деревьев атак в компьютерных системах контроля (особенно связанных с энергетическими сетями).[2] Также деревья атаки используются для понимания угроз, связанных с физическими системами.

Некоторые из наиболее ранних описаний деревьев атак найдены в докладах и статьях Брюса Шнайера[3], технического директора Counterpane Internet Security. Шнайер был напрямую вовлечен в разработку концептуальной модели деревьев атаки и сыграл важную роль в её распространении. Тем не менее, в некоторых ранних опубликованных статьях по деревьям атак[4] высказываются предположения о вовлеченности Агентства Национальной Безопасности в начальный этап разработки.

Деревья атак очень похожи на деревья угроз. Деревья угроз были рассмотрены в 1994 годы Эдвардом Аморосо.[5]

Основы[править | править код]

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

Узел может быть дочерним для другого узла, в этом случае, логично, что для успеха атаки требуется несколько шагов. Например, представьте класс с компьютерами, где компьютеры прикреплены к партам. Чтобы украсть один из них необходимо или перерезать крепление, или открыть замок. Замок можно открыть отмычкой или ключом. Ключ можно получить путём угроз его владельцу, через подкуп владельца или же просто украсть его. Таким образом, можно нарисовать четырёхуровневое дерево атаки, где одним из путей будет: Подкуп владельца ключа-Получение ключа-Отпирание замка-Вынос компьютера.

Также следует учитывать, что атака, описанная в узле может потребовать, чтобы одна или несколько из множества атак, описанных в дочерних узлах были успешно проведены. Выше мы показали дерево атаки только со связью типа ИЛИ между потомками узла, но условие И также может быть введено, например в классе есть электронная сигнализация, которая должна быть отключена, но только в том случае, если мы решим перерезать крепление. Вместо того, чтобы делать отключение сигнализации дочерним узлом для перерезания крепления, обе задачи можно просто логически просуммировать, создав путь (Отключение сигнализации И Перерезание крепления)-Вынос Компьютера.

Деревья атак также связаны с созданием дерева ошибок.[6] Метод построения дерева ошибок использует булевы выражения для создания условий, при которых дочерние узлы обеспечивают выполнение родительских узлов.

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

Так как Байесовские аналитические техники, используемые в анализе деревьев ошибок, не могут быть правильно применены к деревьям атак, аналитики используют другие техники[7][8] для определения по какому пути пойдет данный атакующий. Эти техники включают сравнения возможностей атакующего(время, деньги, навыки, оборудование) с ресурсами, требующимися для данной атаки. Атаки, которые требуют полной отдачи от атакующего или даже находятся за пределами его возможностей куда менее вероятны, нежели дешевые и простые атаки. Степень, в которой атака удовлетворяет целям атакующего также влияет на его выбор. Из двух возможных атак обычно выбирается та, что в большей степени удовлетворяет целям атакующего.

Исследование[править | править код]

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

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

Заметим, что наиболее эффективный способ предотвращения угрозы на дереве атаки — предотвратить её так близко к корню, как только это возможно. Несмотря на то, что в теории это звучит хорошо, обычно невозможно предотвратить угрозу без других последствий для дальнейшего функционирования системы. Например, угроза заражения системы Windows может быть существенно уменьшена путём использования обычной учётной записи (не Администратора), а также файловой системы NTFS вместо FAT, так что обычные пользователи не могут вносить изменения в операционную систему.

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

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

Системы, использующие специальные агенты, которые динамически исследуют и находят уязвимые цепи, создавая деревья атак, выпускаются с 2000 года.[9]

См. также[править | править код]

Примечания[править | править код]

  1. U.S. Department of Defense, «Defense Acquisition Guidebook», Section 8.5.3.3 Архивировано 5 августа 2012 года.
  2. Chee-Wooi Ten, Chen-Ching Liu, Manimaran Govindarasu, Vulnerability Assessment of Cybersecurity for SCADA Systems Using Attack Trees, アーカイブされたコピー. Дата обращения: 4 апреля 2012. Архивировано 30 июня 2010 года.
  3. Schneier, Bruce Attack Trees. Dr Dobb's Journal, v.24, n.12 (December 1999). Дата обращения: 16 августа 2007. Архивировано 6 августа 2007 года.
  4. Chris Salter, O. Sami Saydjari, Bruce Schneier, Jim Wallner, Toward a Secure System Engineering Methodology, http://www.schneier.com/paper-secure-methodology.pdf Архивная копия от 23 июня 2011 на Wayback Machine
  5. Amoroso, Edward. Fundamentals of Computer Security (неопр.). — Upper Saddle River: Prentice Hall, 1994. — ISBN 0-13-108929-3.
  6. Fault Tree Handbook with Aerospace Applications. Дата обращения: 9 декабря 2007. Архивировано 26 мая 2013 года.
  7. Donald L Buckshaw, Gregory S Parnell, Willard L Ulkenholz, Donald L Parks, James M Wallner, O. Sami Saydjari, Mission Oriented Design Analysis of Critical Information Systems, Military Operations Research V10, N2, 2005, [1] (недоступная ссылка)
  8. Terrance R Ingoldsby, Amenaza Technologies Limited, Attack Tree-based Threat Risk Analysis, A vendor white paper, [2] Архивная копия от 4 марта 2016 на Wayback Machine
  9. NOOSE - Networked Object-Oriented Security Examiner, 14th Systems Administration Conference (LISA 2000), New Orleans. Дата обращения: 21 апреля 2010. Архивировано 26 мая 2013 года.