Шаблоны атак - Attack patterns

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

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

Шаблоны атак определяют серию повторяемых шагов, которые можно применить для имитации атаки на безопасность система.

Категории

Есть несколько разных способов классифицировать шаблоны атак. Один из способов - сгруппировать их в общие категории, например: архитектурные, физические и внешние (см. Подробности ниже). Другой способ классификации шаблонов атак - сгруппировать их по определенной технологии или типу технологии (например, шаблоны атак на базы данных, шаблоны атак веб-приложений, шаблоны сетевых атак и т. Д. Или шаблоны атак SQL Server, шаблоны атак Oracle, шаблоны атак .Net, Шаблоны атак Java и т. Д.)

Использование общих категорий

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

Физический шаблоны атак нацелены на сам код. Это такие вещи как Атаки с использованием SQL-инъекций, переполнение буфера, условия гонки, и некоторые из наиболее распространенных форм атак, которые стали популярными в новостях.

Внешний шаблоны атак включают такие атаки, как троянский конь атаки вирусы, и черви. Обычно они не решаются с помощью подходов к разработке программного обеспечения, поскольку они работают относительно независимо от атакуемой программы. Однако уязвимости в программном обеспечении могут привести к тому, что эти атаки будут успешными в системе, в которой запущен уязвимый код. Примером этого является уязвимая версия Microsoft SQL Server, что позволило Slammer червь размножаться.[1] Подход, применяемый к этим атакам, обычно заключается в пересмотре уязвимого кода.

Структура

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

Рекомендуемая структура для записи шаблонов атак следующая:

  • Название шаблона

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

  • Тип и подтипы

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

Каждый шаблон будет иметь тип и ноль или более подтипов, которые определяют категорию шаблона атаки. Типичные типы включают Инъекция Атака, Отказ в обслуживании Атака, Криптоанализ Атака и т. Д. Примеры типичных подтипов отказа в обслуживании, например, будут: DOS - Истощение ресурсов, Сбой системы DOS, Злоупотребление политикой DOS.

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

Этот раздел также используется, чтобы указать, можно ли автоматизировать атаку. Если есть возможность автоматизировать атаку, рекомендуется предоставить образец в разделе «Образец кода атаки», который описан ниже.

  • Также известный как

Некоторые атаки могут иметь несколько разных названий. Это поле используется для перечисления этих других имен.

  • Описание

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

  • Злоумышленник

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

  • Мотивация

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

Это поле немного отличается от поля «Намерение атакующего» тем, что описывает, почему злоумышленник может захотеть достичь намерения, указанного в поле «Намерение атакующего», а не физического результата атаки.

  • Эксплуатационная уязвимость

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

  • Участников

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

  • Схема процесса

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

  • Зависимости и условия

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

  • Пример кода атаки

Если возможно продемонстрировать код эксплойта, этот раздел предоставляет место для хранения демонстрационного кода. В некоторых случаях, например, при атаке типа «отказ в обслуживании», использование определенного кода может оказаться невозможным. Однако в Overflow и Межсайтовый скриптинг Типовые атаки, пример кода будет очень полезен.

  • Существующие эксплойты

Эксплойты могут быть автоматическими или ручными. Автоматизированные эксплойты часто встречаются в виде вирусов, червей и средств взлома. Если для атаки известны какие-либо существующие эксплойты, в этом разделе следует указать ссылки на эти эксплойты. Эти ссылки могут быть внутренними, например корпоративные базы знаний, или внешними, например, различными базами данных CERT и вирусами.

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

  • Последующие атаки

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

  • Типы смягчения

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

  • Рекомендуемое смягчение

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

  • Связанные шаблоны

В этом разделе будет несколько подразделов, таких как «Связанные шаблоны», «Шаблоны смягчения», «Шаблоны безопасности» и «Архитектурные шаблоны». Это ссылки на шаблоны, которые могут поддерживать, относиться к атаке или смягчать ее, и в листинге соответствующего шаблона следует отметить это.

Пример связанных шаблонов для шаблона атаки целочисленного переполнения:

Шаблоны смягчения - шаблон ввода с фильтрами, шаблон самозащищающихся свойств

Связанные шаблоны - Шаблон переполнения буфера

  • Связанные предупреждения, списки и публикации

В этом разделе перечислены все ссылки на связанные списки предупреждений и публикации, такие как списки в Распространенные уязвимости и подверженности list, CERT, SANS и любые связанные предупреждения поставщиков. Эти списки должны иметь гиперссылки на онлайн-предупреждения и списки, чтобы гарантировать, что они ссылаются на самую последнюю возможную информацию.

Различные сайты уведомлений поставщиков.

дальнейшее чтение

  • Александр, Кристофер; Исикава, Сара; И Сильверштейн, Мюррей. Язык шаблонов. Нью-Йорк, штат Нью-Йорк: Oxford University Press, 1977
  • Gamma, E .; Helm, R .; Johnson, R .; И Влиссидес, Дж. Паттерны проектирования: элементы объектно-ориентированного программного обеспечения многократного использования ISBN  0-201-63361-2, Эддисон-Уэсли, 1995
  • Томпсон, Герберт; Чейз, Скотт, Руководство по уязвимости программного обеспечения ISBN  1-58450-358-0, Чарльз Ривер Медиа, 2005 г.
  • Гегик, Майкл и Уильямс, Лори. “Сопоставление шаблонов атак с уязвимостями безопасности в программно-интенсивных проектах.”ACM SIGSOFT Заметки по разработке программного обеспечения, материалы семинара 2005 года по разработке программного обеспечения для безопасных систем - создание надежных приложений SESS '05, том 30, выпуск 4, ACM Press, 2005
  • Howard, M .; И Леблан, Д. Написание безопасного кода ISBN  0-7356-1722-8, Microsoft Press, 2002.
  • Мур, А. П .; Ellison, R.J .; И Лингер, Р. Моделирование атак для информационной безопасности и живучести, Институт программной инженерии, Университет Карнеги Меллон, 2001
  • Хоглунд, Грег и МакГроу, Гэри. Использование программного обеспечения: как взломать код ISBN  0-201-78695-8, Аддисон-Уэсли, 2004 г.
  • Макгроу, Гэри. Безопасность программного обеспечения: обеспечение безопасности в ISBN  0-321-35670-5, Эддисон-Уэсли, 2006 г.
  • Вьега, Джон И Макгроу, Гэри. Создание безопасного программного обеспечения: как правильно избегать проблем с безопасностью ISBN  0-201-72152-X, Эддисон-Уэсли, 2001 г.
  • Шумахер, Маркус; Фернандес-Бульони, Эдуардо; Гибертсон, Дуэйн; Бушманн, Франк; Соммерлад, Питер Шаблоны безопасности ISBN  0-470-85884-2, Джон Уайли и сыновья, 2006
  • Коизол, Джек; Litchfield, D .; Aitel, D .; Anley, C .; Eren, S .; Mehta, N .; И Райли. ЧАС. Руководство Shellcoder: обнаружение и использование дыр в безопасности ISBN  0-7645-4468-3, Wiley, 2004 г.
  • Шнайер, Брюс. Деревья атак: моделирование угроз безопасности Журнал доктора Добба, декабрь 1999 г.

Рекомендации