Рубрики
Uncategorized

Атака цепочки поставок CodeCov — шаг за шагом

Кодеков недавно оказал значительное нарушение, так как злоумышленники смогли поставить бэкдор в Кодекон … Теги с безопасностью, Appsec, DevOps, Hacking.

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

Это нарушение было сделано очень сложными злоумышленниками, которые использовали ошибку в том, как CodeCov построил документы докера. Они использовали это, чтобы изменить сценарий, который позволил им отправить переменные среды из CI CODECOV клиентов на удаленный сервер. В то время как злоумышленники могли проводить несколько атак оттуда, мы можем видеть, основываясь на других раскрытии, что один путь, который они предприняли, доступа к частным репозиториям Git от учетных данных Git в среде Ci, затем используя секреты и данные внутри. Это показывает важность сохранения ваших репозиториев GIT и обеспечения мы не используем производственные учетные данные в нашей среде Ci, где это возможно.

CODECOV — это инструмент покрытия кода, по сути, это означает, что они проверяют, сколько вашего приложения проверяется. Когда мы строим современные приложения, и мы используем непрерывную интеграцию (CI) и непрерывное развертывание (CD), мы хотим убедиться, что мы имеем автоматические тесты на месте, поэтому, когда мы выпустим новую функцию, мы можем быть уверены, что это работает Как предполагалось и что он не непреднамеренно нарушил любые функции в приложении.

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

31 января 2021 года 1821 года вредоносные актеры смогли обновить сценарий Bash Uploader в CodeCov, они сделали это, используя учетные данные, которые они смогли экспортировать из образа докера (подробнее позже).

С 31 января по 1 апреля злоумышленники смогли приседать внутри кодеков и извлекать все переменные окружающей среды клиентов Кодекова

1 апреля он был на самом деле одним из клиентов CodeCov, которые заметили, что Bash Uploader имел другую хэш-ценность к тому, что было опубликовано на своем веб-сайте, указывающим, что что-то не так.

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

Источник: https://about.codecov.io/security-uppdate/

Итак, что это означает все, и как он влияет на пользователей Codecov и почему этот тип атаки в отношении тренда для других инструментов CI?

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

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

  1. Мы создаем или изменим наш код
  2. Совершать и протолкнуть этот код в наши репозитории
  3. Новый код отправляется в окружающую среду CI
    • Приложения скомпилированы
    • Мы запускаем тесты на приложение
    • Мы производим отчеты о том, как выполняет наше приложение
  4. Код перемещается на CD-трубопровод
    • Окончательные изменения рассмотрены
    • Развернуто постановка приложения
    • Развернуто производственное приложение

Давайте сосредоточимся на окружающей среде Ci. Мы можем сделать много мощной автоматизации на этом этапе, чтобы проверить наше приложение. Но как мы создаем приложения, изменились, и теперь мы полагаемся на несколько внешних услуг; Базы данных, платежные системы, облачная инфраструктура ……. Все эти компоненты необходимо получить доступ к инструментам в среде Ci, чтобы они могли создавать и тестировать приложение. По этой причине среда Ci должна иметь доступ к секретам или учетным данным, которые предоставляют доступ к этим системам. Надеюсь, если мы создадим безопасную среду CI, мы используем постановку инфраструктуры, которая менее важной. Но все еще очень распространено для использования добычи и главное, и самое главное, весьма вероятно, что среда CI будет иметь доступ к репозитории Git, который, как известно, содержит свою конфиденциальную информацию.

Поэтому, атакующих Кодеков, атакующие теперь имеют доступ ко всем полномочиям в окружающей среде Ci для всех клиентов Codecov.

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

Злоумышленники использовали ошибку в том, как CodeCov создал свои изображения докера. Этот процесс на самом деле позволил злоумышленникам извлекать учетные данные от изображения Docker, это учетные данные позволили им модифицировать их сценарий загрузки Bash. Сценарий Bash — это просто набор инструкций, аналогичных тому, что вы пишете в вашем Bash или Terminal, но выписаны в программном порядке. Они добавили одну строку кода к этому bash, которая была дополнительно выпуском для отправки всех переменных среды из CI на удаленный сервер злоумышленника. По сути, принимая конфиденциальную информацию, которая заставляет ваше приложение запустить и давать его плохому парню. Эта единственная строка кода была, если я могу так сказать, красиво выполнена и скрыта на линии 525 документа линии 1800+. Не зная, что это там, было бы крайне сложно найти. Просмотр всего скомпрометированного скрипта загрузчика Bash Bash

Кодеков имеет 23 000 клиентов/пользователей, любой, кто использовал скомпрометированную версию CodeCov с 31 января и 1 апреля. Большие организации, такие как Twilio, Hashicorp, Rapid7, Colluent выпустили свои собственные заявления о том, как это повлияло на них.

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

22 апреля, 7 дней после публичного объявления о нарушении, Github заметил подозрительную деятельность, связанную с нарушением кодеков, и частные репозитории были клонированы с помощью некоторых токенов пользователей Twilio, выставленные в этих репозиториях.

Хотя этот пример очень маленький в масштабе нарушения, это четко показывает одну атакующую путь к злоумышленникам. Компромисс CodeCov Используйте украденные галитеры из Bash Uploader Доступ к частным репозиториям, использующим кражевые погибные данные о сканировании проверки конфиденциальности информации и секретов эксплуатации секретов

Это ясно показывает, что нападавшие были четкие репозитории GIT.

Что вы должны делать, если вы повлияли?

Если вы использовали код вырезанного в период с 31 апреля по 1 апреля, то очень важно, чтобы вы сейчас предприняли меры.

Отменить секреты

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

Проверьте журналы

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

Сканировать репозитории Git

Теперь вы должны согласиться, что очень важно убедиться, что наши системы GIT чистые и свободны от конфиденциальной информации. Это может быть скрыто глубоко в истории гита проекта, что делает их очень трудно найти. Вот почему важно использовать инструменты обнаружения для этого. Gitguardian имеет бесплатную версию своей системы обнаружения, которая быстро раскроет какие-либо секреты, вы можете зарегистрироваться здесь Отказ Если у вас есть частные общие репозитории в организации, тогда они могут быть отсканированы только с корпоративной версией. Однако есть взлома, чтобы сделать это бесплатно. Вы можете записаться на 30-дневную бесплатную пробную версию и использовать время для аудита истории Git, не требуя заплатить за инструмент (но никому не скажу).

Добавьте двустороннюю аутентификацию для машин

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

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

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

Пока я считаю, что нам нужно критиковать инструменты, которые мы вводим в нашу цепочку поставок, мы можем быть определенными Кодеками исправили основную проблему и проводили серьезную проверку безопасности после нарушения.

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

Вот и все!

Надеюсь, вы нашли эту статью полезную в понимании того, как эта атака была проведена, и если у вас есть какие-либо вопросы, комментарии или хотите запросить обзор нарушения, обратитесь к Twitter для меня на @ADVOCATEMACK или использовать Hashtag #askmack.

Оригинал: «https://dev.to/mackenziejj/codecov-supply-chain-attack-step-by-step-breakdown-4a2e»