Cпуфинг адресов
Сетевые протоколы, как правило, имеют адрес источника и назначения, используемые для того, чтобы сообщить различным уровням стека протоколов: «Смотрите сюда». В интернете – сети сетей – они также используются для маршрутизации. И на каждом уровне стека адреса записываются в пакеты программным обеспечением. Существует множество проверок, чтобы делать это правильно, и все они могут быть обойдены по разным причинам. Некоторые из этих причин благие, а некоторые злодейские. Подмена адресов источника позволяет создавать атаки типа «отказ в обслуживании», в то время как подмена адресов назначения позволяет подслушивать.
Локальные сети отличаются от локальных компьютеров тем, что они не имеют посредников. Нет ядра, решающего, что с чем может взаимодействовать. Таким образом, спуфинг в них проще. В ходе взаимодействия сетей маршрутизаторы все чаще и чаще выполняют фильтрацию адресов источника и принимают пакеты только с соответствующими адресами источника на большинстве своих интерфейсов, что делает подмену пакетов на уровне интернета сложной, но ни в коем случае не немыслимой.
История
Мы можем думать о STRIDE и цепочках атак как о джазе и рок-н-ролле. Это устоявшиеся жанры, и они полны новых и захватывающих событий. Регулярно появляются новые подробности о каждой угрозе, подобно тому как группы выпускают новые записи. Лишь изредка появляется новая категория, такая как панк-рок или фьюжн-джаз. И еще реже встречаются новые музыкальные направления, такие как хип-хоп. Возможно, будет полезно думать о STRIDE и цепочках атак как об этих музыкальных направлениях. Песни, уязвимости, атаки имеют фундаментальное сходство, и STRIDE и цепочки атак помогают нам увидеть эти сходства и работать с ними.
С 1999 года STRIDE остается относительно стабильным. В этой книге я взял на себя смелость переопределить E как расширение полномочий, и есть другие небольшие изменения, такие как появление дипфейков для реализации спуфинга. В отличие от них, цепочки атак новее и развиваются быстрее.
В 2010 году команда американского военного поставщика Lockheed Martin формализовала использование цепочек для кибератак. Идея исходит из военной доктрины, согласно которой, если вы хотите поразить цель, вам нужно пройти цепочку шагов: от идентификации до выбора оружия и его доставки для достижения вашей цели. Что касается военной обороны, то у ВВС есть набор путей, позволяющих остановить успех каждого шага. К ним относятся обнаружение, отрицание, нарушение, ухудшение, обман или уничтожение (detect, deny, disrupt, degrade, deceive, or destroy). Команда Lockheed также отметила, что, если вы обнаружили злоумышленника на этапе установки, вы знаете, что средства управления не помешали злоумышленнику получить доступ к установке, и, таким образом, он прошел через шаги разведки, вооружения, доставки и применения эксплойта. (Для большинства организаций от разведки и создания оружия трудно защититься.) Если вы не обнаружили доставку или применение эксплойта, возможно, есть доказательства того, что вы обнаружите их, вернувшись к этому заново. Эти признаки компрометации могут быть использованы для поиска других установок, которых вы еще не видели, или для настройки инструментов для предотвращения дальнейшего использования тех же векторов атак.
Идея цепочки атак быстро принесла пользу защитникам, и было создано множество вариантов цепочек атак. Под вариантами я имею в виду вариации шагов в цепочке, а не вариации деталей внутри этих шагов. Я не имею в виду, что «этот злоумышленник использует вооруженные презентации PowerPoint, а этот использует вооруженные PDF-файлы». Вариант означает, что этапы цепочки различны и характеризуют либо разные атаки, либо одну и ту же атаку с разными нюансами или фокусировкой. Например, ATT&CK от корпорации MITRE добавляет шаг «горизонтальное перемещение», чтобы рассказать о том, как злоумышленник перескакивает с одной машины на другую. Горизонтальное – это отсылка к уровням привилегий: злоумышленник не получает административных полномочий, но использует методы единого входа (классический пример – те, которые встроены в Windows через Active Directory), чтобы использовать права одного и того же пользователя в одной системе за другой.
Структуры и метаструктуры
Создание моделей с нужным уровнем абстракции, помогающих решить проблему, – это искусство. Найти баланс между конкретностью, ясностью и обобщением сложно. С тех пор как команда Lockheed опубликовала свою статью, произошел небольшой взрыв новых интересных работ.
Директор Национальной разведки США создал «Структуру киберугроз». Прописные буквы используются, чтобы различать названия этапов:
«Эта структура охватывает жизненный цикл противника от ПОДГОТОВКИ сил и средств наведения на цель до первоначального НАПАДЕНИЯ на цели или временного непроникающего вмешательства со стороны противника, для установления и расширения ПРИСУТСТВИЯ в целевых сетях, для создания ЭФФЕКТОВ и ПОСЛЕДСТВИЙ от кражи, манипулирования или разрушения».
Исследователь Пол Полс (Paul Pols) проанализировал набор цепочек атак и создал метаструктуру, которую он назвал унифицированной цепочкой атак: Начальное позиционирование (Initial Placehold*), Обзор (Pivoting), Сетевое распространение (Network propagation*), Доступ (Access), Целевое действие (Action on goals).
Каждый из отмеченных звездочкой элементов имеет дополнительную детализацию. Метамодели «Структура киберугроз» (Cyber Threat Framework) и «Унифицированная цепочка атак» (Unified Kill Chain) могут быть хорошей альтернативой семиступенчатой цепочке Lockheed как для проспективного, так и для ретроспективного анализа. Обе представлены для того, чтобы помочь вам увидеть, что существует множество способов анализа или моделирования систем.
ATT&CK от корпорации MITRE. MITRE – государственный подрядчик США и исследовательская организация. Они определили цепочки атак, которые в совокупности обозначаются как ATT&CK. В настоящее время существует три основных набора («Корпоративный», «Мобильный» и «Система управления в промышленности»). Каждый из них обычно представлен в виде матрицы тактик, техник и процедур. Тактики аналогичны стадиям цепочек, обсуждаемым в этой главе, техники представляют собой реализацию угроз, и они разбиваются на процедуры.
Например, техники персистенции включают сценарии загрузки или входа в систему, создание учетных записей и выполнение заданий по расписанию, а также конкретные примеры реальных случаев, наблюдаемых защитниками. Отчасти их полезность обусловлена модерируемым вкладом сообщества.
Матрица «Корпоративная» охватывает 14 тактик, многие из которых аналогичны «традиционной» цепочке Lockheed, в то время как другие представляют собой либо дополнительные, либо разделенные виды цепочки Lockheed. Обозначу их знаком +. Это Разведка, Разработка ресурсов, Первоначальный доступ, Выполнение, Сохранение (персистенция), Повышение привилегий+, Обход защиты+, Доступ к учетным данным+, Обнаружение+, Боковое перемещение+, Сбор+, Управление и контроль, Кража и Воздействие. «Мобильная» матрица и матрица «Систем управления в промышленности» схожи на высоком уровне и существенно различаются по методикам и процедурам.
Модель «Песчаный краулер», представленная на рисунке 9.5, немного напоминает мне модель Jawa sandcrawler, и поскольку я создал ее для этой книги, я и дал ей это название. В отличие от только что представленных моделей, каждая из которых стремится помочь в анализе одной цепочки, Sandcrawler объединяет множество различных моделей.
История и структура деревьев атак
Одним из ранних предшественников концепций, описанных в этой главе, было дерево атак. Его модель была определена Эдом Амарозо в 1994 году и популяризирована Брюсом Шнайером в 1999 году.
Дерево атак обычно начинается с цели атакующего, например «Прочитать сценарий фильма „Империя наносит ответный удар“». Цель – это корень дерева (в отличие от цепочки, цель которой находится в конце). Ступенями к достижению цели являются дети под родителем. Я представляю себе три способа сделать это: взломать клиента, взломать сервер или получить копию по электронной почте. Дочерними узлами в дереве «взлома рабочего стола» могут быть «примененить эксплойт уязвимости» и «использовать неправильную конфигурацию». «Эксплойт» может иметь детей: «эксплойт уязвимости нулевого дня» и «эсплойт непропатченной уязвимости». И таким образом, графически это больше похоже на дерево, чем на цепь. А иногда может быть много разветвлений от одного узла. У «эксплойта нулевого дня» может быть много детей: Word, Excel, Adobe Reader, Chrome, Firefox, Quickbooks, Slack, Jira, Atom, gcc и так далее. Добавление именованных этапов в рамках перехода к цепочкам, по-видимому, стало важным улучшением. Это сопровождалось работой по организации индикаторов компрометации и их взаимообмену.
На рисунке 9.7 показан пример дерева атак. Как я уже говорил, между деревьями и цепочками есть много общего.
Рис. 9.7. Дерево атак
Создание дерева или деревьев для конкретного сценария может помочь вам продумать варианты: есть ли другой способ достичь этой цели (достичь этого узла)? Эквивалентны ли эти узлы? Есть ли у нас средства контроля, которые решают каждую из этих проблем? Создать это дерево с более-менее конкретными узлами относительно легко. Создавать деревья, которые можно применять с пользой снова и снова, невероятно сложно, поэтому большинство образцов в интернете предназначены для таких целей, как «пройти в дверь».
Наиболее распространены деревья от нескольких до дюжины узлов, и очень немногие из них имеют больше двух десятков. Самые большие деревья, которые я видел, имеют порядка нескольких сотен узлов, которые я рассматривал в частном порядке для клиента. Использовать и понимать деревья такого размера было довольно сложно.