Состояние безопасности среды DevOps
С увеличением кибератак на системы управления исходным кодом и конвейеров непрерывной интеграции и непрерывной доставки, защита платформ DevOps от различных угроз, определенных в Матрице угроз DevOps, имеет решающее значение. Такие кибератаки могут включать внедрение кода, эскалацию привилегий и кражу данных, что может привести к широкому влиянию.
Управление состоянием DevOps — это функция в Microsoft Defender для облака, что:
- Предоставляет аналитические сведения о безопасности всего жизненного цикла цепочки поставок программного обеспечения.
- Использует расширенные сканеры для подробных оценок.
- Охватывает различные ресурсы, от организаций, конвейеров и репозиториев.
- Позволяет клиентам снизить уровень атаки, обнаруживая и действуя по предоставленным рекомендациям.
Сканеры DevOps
Для предоставления результатов управление состоянием DevOps использует сканеры DevOps для выявления слабых мест в управлении исходным кодом и непрерывной интеграции и непрерывной доставки конвейеров, выполняя проверки на соответствие конфигурациям безопасности и элементам управления доступом.
Сканеры Azure DevOps и GitHub используются внутри Корпорации Майкрософт для выявления рисков, связанных с ресурсами DevOps, уменьшения поверхности атаки и укрепления корпоративных систем DevOps.
После подключения среды DevOps Defender для облака автоматически настраивает эти сканеры для выполнения повторяющихся проверок каждые 24 часа в нескольких ресурсах DevOps, в том числе:
- Сборки
- Безопасные файлы
- Группы переменных
- Подключения службы
- Организации
- Репозитории
Уменьшение рисков в матрице угроз DevOps
Управление состоянием DevOps помогает организациям обнаруживать и устранять вредоносные неправильные конфигурации на платформе DevOps. Это приводит к устойчивой среде DevOps нулевого доверия, которая усиливается в отношении ряда угроз, определенных в матрице угроз DevOps. Основными элементами управления постами являются следующие элементы управления:
- Ограниченный секретный доступ: свести к минимуму воздействие конфиденциальной информации и снизить риск несанкционированного доступа, утечки данных и бокового перемещения, гарантируя, что каждый конвейер имеет доступ только к секретам, необходимым для ее функции.
- Ограничение локальных модулей выполнения и высоких разрешений: предотвращение несанкционированных выполнения и потенциальных эскалаций путем предотвращения локальных запусков и обеспечения разрешений конвейера только для чтения.
- Расширенная защита ветви: обеспечение целостности кода путем применения правил защиты ветви и предотвращения внедрения вредоносного кода.
- Оптимизированные разрешения и безопасные репозитории: снижение риска несанкционированного доступа, изменений путем отслеживания минимальных базовых разрешений и включения защиты от принудительной отправки секретов для репозиториев.
Матрица угроз DevOps
Наша цель в разработке матрицы угроз для DevOps заключается в создании комплексной базы знаний, которую Защитники могут использовать для отслеживания и создания защиты от соответствующих методов атаки. Используя платформу MITRE ATT&CK в качестве основы, мы собрали методы и векторы атак, связанные с средами DevOps, и создали матрицу, посвященную методам атаки DevOps.
Стоит отметить, что тактика в этой матрице должна рассматриваться с точки зрения DevOps. Например, методы выполнения на виртуальной машине под управлением ОС Windows или Linux отличаются от выполнения в конвейере DevOps. В случае Linux выполнение означает выполнение кода в ОС. Когда мы говорим о средах DevOps, это означает выполнение кода в ресурсах конвейера или DevOps. Помимо использования этой матрицы угроз для классификации атак и соответствующих методов защиты Защитники могут работать вместе с красными командами для непрерывного тестирования предположений и поиска новых методов потенциальной атаки.
Определенный MITRE ATT&CK
Матрица MITRE ATT&CK является общедоступным база знаний для понимания различных тактик и методов, используемых злоумышленниками во время кибератаки.
База знаний организованы в нескольких категориях: предварительная атака, начальный доступ, выполнение, сохраняемость, повышение привилегий, уклонение от защиты, доступ к учетным данным, обнаружение, боковое перемещение, сбор, кража и управление.
Тактика (T) представляет "почему" метода ATT&CK или суб-техники. Это тактическая цель противника: причина выполнения действия. Например, злоумышленник может потребовать доступа к учетным данным.
Методы (T) представляют "как" злоумышленник достигает тактической цели, выполняя действие. Например, злоумышленник может дампа учетных данных для получения доступа к учетным данным.
Общие знания (CK) в ATT&CK являются общими знаниями, по сути документированные модус операнди тактики и методов, выполняемых злоумышленниками.
Первоначальный доступ
Начальная тактика доступа относится к методам, которые злоумышленник может использовать для получения доступа к ресурсам DevOps — репозиториям, конвейерам и зависимостям. Следующие методы могут быть предварительным условием для следующих шагов:
Проверка подлинности управления исходным кодом (SCM) — доступ с помощью метода проверки подлинности к управлению исходным кодом организации. Это может быть личный маркер доступа (PAT), ключ SSH или любые другие разрешенные учетные данные проверки подлинности. Пример метода, который злоумышленник может использовать для достижения этого метода, заключается в использовании фишинговой атаки против организации.
Непрерывная интеграция (CI) и проверка подлинности службы непрерывной доставки (CD) — как и проверка подлинности SCM, злоумышленник может использовать проверку подлинности в службе CI/CD, чтобы атаковать devOps организации.
Общедоступные репозитории организации — доступ к общедоступным репозиториям организации, настроенным с возможностями CI/CD. В зависимости от конфигурации организации эти репозитории могут активировать запуск конвейера после создания запроса на вытягивание (PR).
Компрометация конечных точек— используя существующую компрометацию, злоумышленник может использовать скомпрометированную рабочую станцию разработчика, таким образом получая доступ к SCM, реестру или любому другому ресурсу разработчика.
Настроенные веб-перехватчики. Если у организации настроен веб-перехватчик, злоумышленник может использовать его в качестве начального метода доступа в сеть организации с помощью SCM для активации запросов в этой сети. Это может предоставить злоумышленнику доступ к службам, которые не предназначены для публичного предоставления доступа, или которые работают со старыми и уязвимыми версиями программного обеспечения в частной сети.
Выполнение
Тактика выполнения относится к методам, которые могут использоваться злоумышленником для получения доступа к выполнению ресурсов конвейера — самого конвейера или ресурсов развертывания. Некоторые методы в этом разделе содержат пояснения о различных способах их выполнения или о том, что мы называем вложенными методами:
Отравленное выполнение конвейера (PPE) — относится к методу, в котором злоумышленник может внедрить код в репозиторий организации, что приводит к выполнению кода в системе CI/CD репозитория. Существуют различные вложенные методы для выполнения кода:
- Direct PPE (d-PPE) — случаи, когда злоумышленник может напрямую изменить файл конфигурации внутри репозитория. Так как конвейер активируется новым pr и выполняется в соответствии с файлом конфигурации, злоумышленник может внедрить вредоносные команды в файл конфигурации, и эти команды выполняются в конвейере.
- Косвенный PPE (i-PPE) — случаи, когда злоумышленник не может напрямую изменять файлы конфигурации или что эти изменения не учитываются при активации. В таких случаях злоумышленник может заразить скрипты, используемые конвейером для выполнения кода, например make-files, test scripts, build scripts и т. д.
- Public PPE — случаи, когда конвейер активируется проектом с открытым исходным кодом. В таких случаях злоумышленник может использовать d-PPE или i-PPE в общедоступный репозиторий, чтобы заразить конвейер.
Изменение зависимостей — относится к методу, в котором злоумышленник может выполнять код в среде DevOps или рабочей среде путем внедрения вредоносного кода в зависимости репозитория. Таким образом, при скачивании зависимостей выполняется вредоносный код. Ниже приведены некоторые вложенные методы, которые можно использовать для выполнения кода:
- Путаница с общедоступной зависимостью — метод, в котором злоумышленник публикует общедоступные вредоносные пакеты с тем же именем, что и частные пакеты. В этом случае, так как поиск пакетов в механизмах управления пакетами обычно выглядит в общедоступных реестрах сначала, вредоносный пакет загружается.
- Открытый перехват пакета ("репозиторий-джекинг") — перехват общедоступного пакета путем управления учетной записью хранителя, например путем использования функции переименования пользователя GitHub.
- Typeosquatting — публикация вредоносных пакетов с аналогичными именами известных общедоступных пакетов. Таким образом, злоумышленник может запутать пользователей, чтобы скачать вредоносный пакет вместо нужного.
Компрометация ресурсов DevOps — конвейеры находятся в основе набора вычислительных ресурсов, выполняющих агенты CI/CD, а также другое программное обеспечение. Злоумышленник может нацелиться на эти ресурсы, используя уязвимость в ОС, код агента, другое программное обеспечение, установленное на виртуальных машинах или других устройствах в сети, чтобы получить доступ к конвейеру.
Управление общим реестром— злоумышленник может получить контроль над реестром, используемым организацией, в результате чего вредоносные образы или пакеты, выполняемые виртуальными машинами конвейера или рабочими виртуальными машинами.
Сохраняемость
Тактика сохранения состоит из различных методов, которые злоумышленник может использовать для поддержания доступа к среде жертвы:
Изменения в репозитории— злоумышленники могут использовать автоматические маркеры внутри конвейера для доступа к репозиторию и отправки кода (если автоматический маркер имеет достаточно разрешений для этого). Они могут добиться сохранения таким образом с помощью нескольких вложенных методов:
- Изменение и добавление скриптов в коде — мы можем изменить некоторые из скриптов инициализации или добавить новые скрипты, поэтому они загружают серверную или начальную версию для злоумышленника, поэтому каждый раз, когда конвейер выполняет эти скрипты, код злоумышленника также будет выполнен.
- Измените конфигурацию конвейера— мы можем добавить в конвейер новые шаги, чтобы скачать управляемый злоумышленником скрипт в конвейер, прежде чем продолжить процесс сборки.
- Измените конфигурацию для расположений зависимостей, чтобы использовать управляемые злоумышленником пакеты.
Внедрение в артефакты — некоторые среды CI имеют функциональные возможности для создания артефактов для совместного использования между различными выполнениями конвейера. Например, в GitHub можно хранить артефакты и скачивать их с помощью действия GitHub из конфигурации конвейера.
Изменение образов в реестре. В случаях, когда конвейеры имеют разрешения на доступ к реестру образов (например, для записи образов в реестр после завершения сборки) злоумышленник может изменить и посадить вредоносные образы в реестре, которые будут продолжать выполняться контейнерами пользователя.
Создание учетных данных службы — злоумышленник может использовать доступ, который у них уже есть в среде, и создать новые учетные данные для использования в случае потери исходного метода доступа. Это можно сделать, создав маркер доступа к SCM, самому приложению, к облачным ресурсам и многое другое.
Повышение привилегий
Методы эскалации привилегий используются злоумышленником для повышения привилегий в среде жертвы, получая более высокие привилегии для уже скомпрометированных ресурсов:
Секреты в частных репозиториях— использование уже полученного метода начального доступа злоумышленник может сканировать частные репозитории для скрытых секретов. Вероятность поиска скрытых секретов в частном репозитории выше, чем в общедоступный репозиторий, так как, с точки зрения разработчика, это недоступно извне организации.
Фиксация и отправка в защищенная ветвь. Конвейер имеет доступ к репозиторию, который может быть настроен с неизрешительным доступом, который может позволить отправлять код непосредственно в защищенная ветвь, позволяя злоумышленнику внедрять код непосредственно в важные ветви без вмешательства команды.
Сертификаты и удостоверения из служб метаданных. После запуска злоумышленника на облачных конвейерах злоумышленник может получить доступ к службам метаданных из конвейера и извлечь сертификаты (требуются высокие привилегии) и удостоверения из этих служб.
Доступ к учетным данным
Методы доступа к учетным данным используются злоумышленником для кражи учетных данных:
Учетные данные пользователя. В случаях, когда клиенту требуется доступ к внешним службам из конвейера CI (например, внешняя база данных), эти учетные данные находятся в конвейере (могут быть заданы секретами CI, переменными среды и т. д.) и могут быть доступны злоумышленнику.
Учетные данные службы— существуют случаи, когда злоумышленник может найти учетные данные службы, такие как имена субъектов-служб (SPN), маркеры подписанного URL-адреса (SAS) и многое другое, что может разрешить доступ к другим службам непосредственно из конвейера.
Перемещение внутри периметра
Тактика бокового перемещения относится к методам, используемым злоумышленниками для перемещения по разным ресурсам. В средах CI/CD это может относиться к перемещению ресурсов развертывания, созданию артефактов и реестров или новым целевым объектам.
Артефакты компрометации сборки. Как и в других атаках цепочки поставок, как только злоумышленник контролирует конвейеры CI, они могут вмешиваться в артефакты сборки. Таким образом, вредоносный код можно внедрить в строительные материалы до завершения строительства, поэтому внедрение вредоносных функций в артефакты сборки.
Внедрение реестра. Если конвейер настроен с реестром для артефактов сборки, злоумышленник может заразить реестр вредоносными образами, которые позже будут загружены и выполнены контейнерами с помощью этого реестра.
Распространение к ресурсам развертывания. Если конвейер настроен с доступом к ресурсам развертывания, злоумышленник имеет тот же доступ к этим ресурсам, что позволяет злоумышленнику распространяться. Это может привести к выполнению кода, краже данных и т. д. в зависимости от разрешений, предоставленных конвейерам.
Уклонение от защиты
Методы уклонения от обороны могут использоваться злоумышленниками для обхода обороны, используемой в среде DevOps, и позволяют атакам продолжаться под радаром:
Обработка журналов служб — журналы служб позволяют Защитникам обнаруживать атаки в их среде. Злоумышленник, выполняющийся в среде (например, в конвейерах сборки), может изменить журналы, чтобы предотвратить наблюдение за атакой Defenders. Это похоже на злоумышленника, изменяющего журналы на компьютере Linux, предотвращая просмотр команд, выполняемых злоумышленником.
Манипуляция компиляцией — если злоумышленник не хочет оставить трассировки в службе SCM, злоумышленник может изменить процесс компиляции, чтобы внедрить вредоносный код. Это можно сделать несколькими способами:
- Изменение кода на лету — изменение кода прямо перед началом процесса сборки, не изменяя его в репозитории и оставляя в нем трассировки.
- Скомпилированный компилятор— изменение компилятора в среде сборки, чтобы ввести вредоносный код, не оставляя никаких трассировок перед началом этого процесса.
Перенастройка защиты ветвей — средства защиты ветви позволяют организации настраивать шаги перед утверждением pr/commit в ветви. После того как злоумышленник имеет разрешения администратора, они могут изменить эти конфигурации и ввести код в ветвь без вмешательства пользователя.
Воздействие
Тактика воздействия относится к методам, которые злоумышленник может использовать для использования доступа к ресурсам CI/CD для вредоносных целей, а не как другой шаг в атаке, так как эти методы могут быть шумными и простыми для обнаружения:
Распределенное отказ в обслуживании (DDoS) — злоумышленник может использовать вычислительные ресурсы, к которые они получили доступ для выполнения распределенных атак типа "отказ в обслуживании" (DDoS) на внешних целевых объектах.
Добыча криптовалют — вычислительные ресурсы можно использовать для добычи криптографии, контролируемой злоумышленником.
Локальный отказ в обслуживании (DoS) — после запуска злоумышленника на конвейерах CI злоумышленник может выполнить атаку типа "отказ в обслуживании" от указанных конвейеров клиентам путем отключения агентов, перезагрузки или перегрузки виртуальных машин.
Удаление ресурсов— злоумышленник с доступом к ресурсам (облачным ресурсам, репозиториям и т. д.) может окончательно удалить ресурсы для достижения отказа в службах.
Кража
Тактика кражи относится к различным методам, которые могут использоваться злоумышленником для извлечения конфиденциальных данных из среды жертвы:
Клонирование частных репозиториев— как только злоумышленники имеют доступ к конвейерам CI, они также получают доступ к частным репозиториям (например, GITHUB_TOKEN можно использовать в GitHub), и поэтому могут клонировать и получить доступ к коду, таким образом, получить доступ к частному IP-адресу.
Журналы конвейера — злоумышленник может получить доступ к журналам выполнения конвейера, просмотреть журнал доступа, шаги сборки и т. д. Эти журналы могут содержать конфиденциальную информацию о сборке, развертывании и в некоторых случаях даже учетных данных для служб, учетных записей пользователей и т. д.
Извлечение данных из рабочих ресурсов. В случаях, когда конвейеры могут получить доступ к рабочим ресурсам, злоумышленники также получат доступ к этим ресурсам. Поэтому они могут злоупотреблять этим доступом для получения производственных данных.
Рекомендации по управлению состоянием DevOps
Когда сканеры DevOps выявляют отклонения от рекомендаций по обеспечению безопасности в системах управления исходным кодом и конвейерах непрерывной интеграции и непрерывной доставки, Defender для облака выводит точные и практические рекомендации. Эти рекомендации имеют следующие преимущества:
- Улучшенная видимость. Получите исчерпывающую информацию о безопасности сред DevOps, обеспечивая четкое понимание существующих уязвимостей. Определите отсутствующие правила защиты ветви, риски эскалации привилегий и небезопасные подключения, чтобы предотвратить атаки.
- Действие на основе приоритета: фильтруйте результаты по серьезности, чтобы тратить ресурсы и усилия более эффективно, устраняя наиболее критически важные уязвимости в первую очередь.
- Уменьшение поверхности атак: устранение проблем с безопасностью, чтобы значительно сократить уязвимые области атак, тем самым ужесточив защиту от потенциальных угроз.
- Уведомления в режиме реального времени: возможность интеграции с автоматизацией рабочих процессов для получения немедленных оповещений при изменении безопасных конфигураций, что позволяет выполнять запросы и обеспечивать устойчивое соответствие протоколам безопасности.