Дисклеймер: это сценарное моделирование (tabletop exercise), построенное на реальных TTP иранских APT-группировок и прогнозировании кампаний 2023–2024 годов (CISA AA23-335A, отчёты по IOControl). Advisory AA26-097A, военные действия и события 2026 года - гипотетические, используются для демонстрации методов detection engineering.
Представьте: 7 апреля 2026 года шесть федеральных агентств США - FBI, CISA, NSA, EPA, DOE и US Cyber Command - выпускают совместный advisory AA26-097A. Суть: иранские APT-группировки активно ломают интернет-доступные ПЛК по всей территории Штатов. Жертвы фиксируют операционные сбои и финансовые потери. Шесть агентств одновременно - это не учебная тревога.
Для тех, кто работает в ICS security, такой сценарий - не абстрактное упражнение на бумаге. Он иллюстрирует вероятный переход иранских актёров от pre-positioning к реальному воздействию на физические процессы. Тренд уже виден в кампаниях 2023–2024. Я разберу полную цепочку TTP кампании, разложу её по MITRE ATT&CK for ICS и - что полностью отсутствует в русскоязычном пространстве - дам конкретные Sigma-правила, Splunk-запросы и рекомендации по detection engineering для обнаружения этой активности в вашей OT-среде.
От Unitronics к Rockwell: эволюция иранских атак на промышленные системы
Чтобы оценить масштаб угрозы, нужно понять, как иранские ICS-операции эволюционировали. Три этапа эскалации - каждый следующий на порядок серьёзнее предыдущего.Ноябрь 2023 - кампания против Unitronics. Группировка CyberAv3ngers (она же Shahid Kaveh Group, Hydro Kitten, Storm-0784, UNC5691), связанная с кибер командованием КСИР, скомпрометировала не менее 75 ПЛК Unitronics с HMI по всей территории США. Вектор атаки был, прямо скажем, примитивен - дефолтные пароли на устройствах, торчащих в интернет. Среди подтверждённых жертв - водоочистная станция Municipal Water Authority в Аликиппе, Пенсильвания. В феврале 2024 года США ввели санкции против шести офицеров КСИР.
2024 - развёртывание IOControl. По данным CISA, та же группа развернула кастомную вредоносную программу IOControl для удалённого управления системами водоснабжения и топливного менеджмента в США и Израиле. Программа Rewards for Justice предложила до 10 миллионов долларов за информацию о группе. Десять миллионов - это уже не про хактивизм.
Март 2026 - текущая кампания (AA26-097A). В рамках сценария: после гипотетической эскалации конфликта между США, Израилем и Ираном акторы, связанные с КСИР, переходят к атакам на качественно иной класс оборудования. Как отмечает Picus Security, эскалация идёт по трём направлениям.
Первое - расширение вендоров. Вместо единственного Unitronics с дефолтными паролями - Rockwell Automation CompactLogix и Micro850, причём с использованием легитимного инженерного ПО. Порты 102 и 502 в списке целевых говорят о том, что атакующие как минимум сканируют Siemens S7 и Modbus-совместимые устройства (хотя подтверждённые сессии в advisory касаются только Rockwell).
Второе - усложнение техник. Атакующие используют Studio 5000 Logix Designer - ту самую среду разработки, которой пользуются OT-инженеры каждый день. Развёртывание Dropbear SSH на конечных точках жертв указывает на стратегию долгосрочного присутствия, а не разовых диверсий.
Третье - подтверждённый операционный ущерб. В отличие от кампании 2023 года, advisory AA26-097A прямо подтверждает: жертвы понесли операционные сбои и финансовые потери от манипуляции ПЛК. Это уже не defacement экрана HMI с политическим лозунгом.
По данным Dragos (в реальных отчётах Year in Review за 2023–2024 уже отслеживается группа BAUXITE), группа BAUXITE, имеющая технические пересечения с CyberAv3ngers, классифицируется как Stage 2 adversary по ICS Cyber Kill Chain - способна компрометировать ПЛК и разворачивать кастомные бэкдоры на OT-устройствах. В рамках сценария также моделируется появление новой группы PYROXENE, предположительно поддерживаемой КСИР и специализирующейся на OT/ICS-средах.
Ссылка скрыта от гостей
: техники атак иранских APT-группировок
Разложим кампанию AA26-097A по ATT&CK for ICS. Здесь и далее - техники из матрицы MITRE ATT&CK for ICS (префикс T0xxx), а не Enterprise (Txxxx). Полный каталог:
Ссылка скрыта от гостей
. Это принципиально для построения detection-стратегии - каждая техника определяет точку, где можно поймать атакующего.Initial Access: интернет-доступные ПЛК и эксплуатация
Ссылка скрыта от гостей
Согласно advisory, спецы сканировали интернет на предмет открытых ПЛК Rockwell Automation (T0883 - Internet Accessible Device по
Ссылка скрыта от гостей
), подключаясь с зарубежных IP через арендованную хостинг-инфраструктуру. Они использовали Studio 5000 Logix Designer для установления легитимного протокольного соединения с контроллерами CompactLogix и Micro850 (T0886 - Remote Services по
Ссылка скрыта от гостей
).Тут важно понимать: эксплуатируется не столько программная уязвимость, сколько архитектурная. ПЛК развёрнуты без сетевой сегментации, аутентификационных гейтов и hardenинга. Но есть и конкретная CVE, непосредственно связанная с кампанией, эксплуатируемая через T0819 (Exploit Public-Facing Application,
Ссылка скрыта от гостей
).CVE-2021-22681 - реальная уязвимость из
Ссылка скрыта от гостей
. В рамках сценария предполагается её активная эксплуатация иранскими APT. По данным NVD:- CVSS Score: 9.8 (CRITICAL)
- Вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- CWE-522: Insufficiently Protected Credentials
Уязвимость затрагивает Rockwell Automation Studio 5000 Logix Designer версий 21 и выше, RSLogix 5000 версий 16–20, а также контроллеры CompactLogix 1768, 1769, 5370, 5380, 5480; ControlLogix 5550, 5560, 5570, 5580; DriveLogix 5560, 5730, 1794-L34; Compact GuardLogix 5370, 5380; GuardLogix 5570, 5580 и SoftLogix 5800. Суть - недостаточно защищённый криптографический ключ для верификации связи между Studio 5000 и контроллерами Logix.
Advisory AA26-097A прямо ссылается на эту CVE и руководство Rockwell PN1550 как релевантные текущей кампании.
Command and Control через промышленные протоколы и Dropbear SSH
Вредоносный трафик шёл на пять портов, каждый из которых привязан к конкретному промышленному протоколу или служебному каналу:| Порт | Протокол | Назначение | Вендор |
|---|---|---|---|
| 44818 | EtherNet/IP (CIP) | Конфигурация и управление ПЛК | Rockwell Automation |
| 2222 | OT configuration | Конфигурирование промышленных устройств | Различные |
| 102 | ISO-TSAP (S7comm) | Связь с ПЛК Siemens S7 | Siemens |
| 502 | Modbus TCP | Универсальный промышленный протокол | Мультивендор |
| 22 | SSH (Dropbear) | Удалённый доступ | Open-source |
Порты 102 и 502 в списке - прямое указание: атакующие не ограничиваются Rockwell. Siemens S7 и любые Modbus-совместимые контроллеры тоже в зоне риска.
Отдельная история - Dropbear SSH. Это легковесная open-source реализация SSH, заточенная под embedded-системы и устройства с ограниченными ресурсами. Для промышленной сети - идеальный механизм сохранения данных: Dropbear жрёт минимум ресурсов, переживает перезагрузку ПЛК и при этом даёт полноценный удалённый шелл. Лично я считаю это одним из самых элегантных ходов в кампании - зачем тащить кастомный бэкдор, когда есть готовый SSH-демон на 100 КБ? Использование соответствует технике Remote Services (T0886) по ATT&CK for ICS.
Impact: манипуляция данными SCADA и HMI
Advisory подтверждает два вектора воздействия: T0821 (Modify Controller Tasking, ATT&CK for ICS) для манипуляции логикой ПЛК и T0856 (Spoof Reporting Message,
Ссылка скрыта от гостей
) для фальсификации данных HMI.Извлечение проектных файлов (T0882 - Theft of Operational Information,
Ссылка скрыта от гостей
). Атакующие экспортировали .ACD-файлы - проектные файлы Studio 5000 с ladder logic, управляющими последовательностями и параметрами конфигурации. Для OT-инженера это означает: у противника теперь полная карта ваших промышленных процессов. Он знает, какие переменные отвечают за какие физические операции, какие пороговые значения стоят в аларм-системе и где расположены точки отказа. По сути - чертежи вашего завода.Фальсификация данных на HMI/SCADA. Отображаемые значения на операторских панелях были подменены. Это самый опасный вектор: оператор смотрит на HMI, видит нормальные параметры, а реальный процесс уже выходит из-под контроля. Именно этот принцип был заложен в Stuxnet - оператор видит штатные обороты центрифуги, пока она физически разрушается.
Как отмечает Picus Security, извлечённые сегодня проектные файлы могут стать основой для более деструктивных операций завтра. Комбинация разведки и операционного воздействия зеркалит паттерн группы Agrius, которая проводит эксфильтрацию данных перед развёртыванием деструктивных пейлоадов.
Detection Engineering для OT-сред: Sigma-правила и ICS-мониторинг
Это ключевая секция статьи. Ни один русскоязычный источник не покрывает эту тему с конкретными detection-сценариями для каждого этапа kill chain. Разберём по порядку.Обнаружение аномалий Modbus, EtherNet/IP и S7 на сетевом уровне
Первый рубеж обороны - мониторинг сетевого трафика на промышленных портах. Sigma-правило ниже ловит внешние подключения к OT-портам из advisory AA26-097A:
YAML:
# Sigma rule: обнаружение внешних подключений к OT-портам (AA26-097A)
title: External Connection to Industrial Protocol Ports (CISA AA26-097A)
id: a1b2c3d4-5678-9abc-def0-123456789abc
status: experimental
description: >
Detects inbound connections from external IPs to OT protocol ports
associated with Iranian APT campaign targeting PLCs (CISA AA26-097A)
references:
- https://www.cisa.gov/news-events/cybersecurity-advisories/aa26-097a
author: OT Security Detection Engineering
date: 2026/04/10
tags:
- attack.initial_access # ATT&CK for ICS
- attack.command_and_control # ATT&CK for ICS
logsource:
category: firewall
product: any
detection:
selection_ports:
dst_port:
- 44818 # EtherNet/IP (CIP)
- 502 # Modbus TCP
- 102 # S7comm (ISO-TSAP)
- 2222 # OT configuration
filter_internal:
src_ip|cidr:
- '10.0.0.0/8'
- '172.16.0.0/12'
- '192.168.0.0/16'
- '100.64.0.0/10' # RFC 6598 CGNAT
# Адаптируйте под вашу адресную схему OT-сети.
# IPv6 требует отдельного правила.
condition: selection_ports and not filter_internal
falsepositives:
- Legitimate remote vendor support from external IPs
- Cloud-based SCADA services
level: high
filter_internal ваши диапазоны OT-подсети.Второе Sigma-правило - аномальные Modbus write-команды, когда кто-то извне пытается записать значения в регистры ПЛК:
YAML:
# Sigma rule: аномальные Modbus write-операции
title: Suspicious Modbus Write Commands from Non-Engineering Workstation
id: b2c3d4e5-6789-abcd-ef01-234567890abc
status: experimental
description: >
Detects Modbus write function codes (FC 5, 6, 15, 16) originating
from hosts not in the engineering workstation allowlist
# ВНИМАНИЕ: pseudo-Sigma правило, требует кастомного field mapping
# для pySigma (Zeek modbus.log → Sigma). Стандартные бэкенды НЕ транслируют
# без маппинга. Для прямого использования - Zeek-команда:
# cat modbus.log | zeek-cut ts id.orig_h id.resp_h func | \
# grep -E '(WRITE_SINGLE_COIL|WRITE_SINGLE_REGISTER|WRITE_MULTIPLE_COILS|WRITE_MULTIPLE_REGISTERS)'
# Или Splunk-запрос: index=zeek sourcetype=modbus func IN ("WRITE_SINGLE_COIL",
# "WRITE_SINGLE_REGISTER","WRITE_MULTIPLE_COILS","WRITE_MULTIPLE_REGISTERS")
# | where NOT cidrmatch("10.10.50.0/24", id.orig_h)
logsource:
category: custom
product: zeek
# Требует кастомного field mapping: Zeek modbus.log поле 'func' → modbus_function.
# Без маппинга используйте Zeek-команду или Splunk-запрос выше.
detection:
selection:
dst_port: 502
modbus_function:
- 5 # Write Single Coil
- 6 # Write Single Register
- 15 # Write Multiple Coils
- 16 # Write Multiple Registers
filter_allowed:
src_ip:
- '10.10.50.10' # Пример: engineering workstation 1
- '10.10.50.11' # Пример: engineering workstation 2
condition: selection and not filter_allowed
level: critical
Детектирование Dropbear SSH в промышленной сети
Dropbear оставляет характерный fingerprint, отличный от OpenSSH. Если в вашей OT-сети нет легитимных Dropbear-установок (а в подавляющем большинстве промышленных сред их нет), само появление баннераSSH-2.0-dropbear - индикатор компрометации.
YAML:
# Sigma rule: обнаружение Dropbear SSH в OT-сегменте
title: Dropbear SSH Server Detected in OT Network Segment
id: c3d4e5f6-789a-bcde-f012-345678901abc
status: experimental
description: >
Detects Dropbear SSH banner in network traffic within OT segments.
Dropbear was deployed by Iranian APT actors for persistent access
to compromised PLC endpoints per CISA AA26-097A.
logsource:
# Требует кастомного field mapping: Zeek ssh.log поле 'server' → server_banner.
# Стандартные Sigma-бэкенды не поддерживают без маппинга.
# Без маппинга используйте Zeek-скрипт ниже.
category: network_connection
product: zeek
detection:
selection:
dst_port: 22
server_banner|contains: 'dropbear' # В Zeek ssh.log это поле 'server' (например 'SSH-2.0-dropbear_2022.83')
condition: selection
falsepositives:
- Embedded Linux devices with legitimate Dropbear installation
level: critical
Код:
# Zeek: логирование SSH server banners в OT-сегменте
# Ловит Dropbear SSH на скомпрометированных устройствах
# Определяем кастомный notice type - БЕЗ этой строки скрипт не скомпилируется.
# Добавьте в начало скрипта или в отдельный модуль.
redef enum Notice::Type += { SSH::Dropbear_Detected };
event ssh_server_version(c: connection, version: string)
{
local ot_subnets: set[subnet] = {
10.10.0.0/16, # Замените на ваши OT-подсети
172.16.100.0/24
};
if (c$id$resp_h in ot_subnets)
{
if (/dropbear/ in version)
{
NOTICE([$note=SSH::Dropbear_Detected,
$msg=fmt("Dropbear SSH detected in OT segment: %s -> %s (%s)",
c$id$orig_h, c$id$resp_h, version),
$conn=c,
$identifier=cat(c$id$resp_h)]);
}
}
}
Threat Hunting в OT-сетях: запросы для SIEM
🔓 Эксклюзивный контент для зарегистрированных пользователей.
Для команд на Splunk - запрос для обнаружения подозрительных подключений к OT-портам от внешних хостинг-провайдеров (именно такой паттерн описан в advisory):
Запрос агрегирует все внешние подключения к промышленным портам, обогащает геоданными и выделяет IP, обращающиеся к нескольким ПЛК - характерный паттерн разведывательного сканирования.
Для Microsoft Sentinel - аналогичный KQL:
Для обнаружения изменений в .ACD-файлах (проектных файлах Rockwell), если мониторите файловую активность на инженерных станциях:
Код:
index=ot_network sourcetype=firewall
(dest_port=44818 OR dest_port=502 OR dest_port=102 OR dest_port=2222 OR dest_port=22)
| where NOT (cidrmatch("10.0.0.0/8", src_ip) OR cidrmatch("172.16.0.0/12", src_ip) OR cidrmatch("192.168.0.0/16", src_ip))
| iplocation src_ip
| rename Country as country
| where isnotnull(country)
| stats count earliest(_time) as first_seen latest(_time) as last_seen
values(dest_port) as target_ports dc(dest_ip) as unique_targets
by src_ip country org
| where count > 3 OR unique_targets > 1
| sort - count
| rename src_ip as "Source IP", country as "Country", org as "Hosting Provider",
target_ports as "Target OT Ports", unique_targets as "Unique PLC Targets"
Для Microsoft Sentinel - аналогичный KQL:
Код:
// Обнаружение внешних подключений к OT-портам (AA26-097A)
CommonSecurityLog
| where TimeGenerated > ago(30d)
| where DestinationPort in (44818, 502, 102, 2222, 22)
| where not(ipv4_is_private(SourceIP))
| summarize ConnectionCount = count(),
FirstSeen = min(TimeGenerated),
LastSeen = max(TimeGenerated),
TargetPorts = make_set(DestinationPort),
UniqueTargets = dcount(DestinationIP)
by SourceIP
| where ConnectionCount > 3 or UniqueTargets > 1
| extend GeoInfo = geo_info_from_ip_address(SourceIP)
| extend Country = tostring(GeoInfo.country)
// Примечание: в зависимости от вендора файрвола поле может называться SourceAddress вместо SourceIP
| project SourceIP, Country, ConnectionCount,
UniqueTargets, TargetPorts, FirstSeen, LastSeen
| order by ConnectionCount desc
Код:
index=endpoint sourcetype=sysmon EventCode=11
(TargetFilename="*.ACD" OR TargetFilename="*.acd")
| stats count by Computer User TargetFilename _time
| where User != "authorized_engineer_account"
Защита критической инфраструктуры от кибератак: пошаговый план
На основе рекомендаций из advisory AA26-097A и практики работы с OT-средами - план действий по приоритету.Первые 24 часа - делай или пожалеешь:
- Уберите ПЛК из прямого интернет-доступа. Просканируйте внешний периметр на открытые порты 502, 44818, 102, 2222 и 20000 (DNP3). Нашли ПЛК - немедленно за файрвол или сетевой прокси. Без разговоров.
- Переведите физические переключатели режима на контроллерах Rockwell в позицию RUN. Это аппаратно блокирует удалённое изменение проектных файлов. Программные ключи настройте через руководство Rockwell SD1771.
- Проверьте логи файрволов и IDS за период с марта 2026 года на трафик к портам 44818, 2222, 102, 22 и 502 от зарубежных хостинг-провайдеров. Загрузите IoC из advisory AA26-097A (доступны в XML и JSON) и прогоните по своим логам.
- Внедрите MFA на всех точках удалённого доступа к OT-сети. Даже если ПЛК нативно не поддерживает многофакторку, VPN и jump-хосты перед ними должны её обеспечивать.
- Обновите firmware на ПЛК до последних версий. Отключите неиспользуемые сервисы. Убейте все дефолтные пароли и учётные записи. Да, включая те, про которые «все знают, но никто не трогает».
- Сделайте офлайн-бэкапы всей логики и конфигурации ПЛК. Храните на защищённых физических носителях. Регулярно тестируйте процедуры восстановления - это ваш последний рубеж при манипуляции проектными файлами.
- Разверните мониторинг промышленного трафика. Нет специализированных OT-решений вроде Dragos Platform или Claroty - начните хотя бы с Zeek-сенсора на зеркальном порту коммутатора OT-сегмента. Примените Sigma-правила из этой статьи. Лучше Zeek на зеркале, чем вообще ничего.
- Поддерживайте asset inventory OT-устройств. Нельзя защитить то, о чём не знаешь. Регулярно сканируйте внутреннюю сеть на предмет новых устройств и изменений конфигурации.
Почему стандартные средства защиты слепы в SCADA-сетях
Главная проблема этой кампании - не изощрённость техник атакующих, а слепота защитников. Атакующие использовали легитимное инженерное ПО Studio 5000 Logix Designer для подключения к ПЛК. С точки зрения сетевого трафика это выглядит идентично штатной работе OT-инженера. Попробуйте отличить.Стандартный EDR в OT-среде практически бесполезен. ПЛК не поддерживают установку агентов - это не Windows-машина, куда можно накатить CrowdStrike. Многие HMI и SCADA-серверы живут на устаревших ОС, несовместимых с современными EDR. Промышленные протоколы (EtherNet/IP, Modbus, S7comm) стандартные сетевые IDS попросту не разбирают.
Поэтому detection engineering для OT требует принципиально другого подхода - мониторинга сетевого трафика на уровне промышленных протоколов. Не «был ли запущен подозрительный процесс», а «кто отправил Modbus write-команду на ПЛК в 3 часа ночи». Не «обнаружен подозрительный хеш», а «инженерная станция скачала .ACD-файл с контроллера, хотя плановых работ нет».
Один из исследователей точно подметил в ответ на advisory: если ПЛК доступен из интернета, атакующие имеют асимметричное преимущество - они сканируют непрерывно и в масштабе, пока защитники полагаются на внутренний мониторинг, исходя из предположения о правильной изоляции. Это предположение - и есть тот разрыв, через который проходят иранские APT.
Связь с другими иранскими OT-операциями
Кампания AA26-097A не существует в вакууме. По данным Seqrite, параллельно действует группа Marshtreader (она же Agrius, Pink Sandstorm), связанная с MOIS. В рамках сценария эта группа расширяет сканирование устройств Hikvision в Израиле, ОАЭ, Катаре, Бахрейне, Кувейте, Ливане и Кипре, эксплуатируя две уязвимости.
Ссылка скрыта от гостей
- Improper Authentication (CWE-287), CVSS 9.8 (CRITICAL), вектор CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Затрагивает серии камер Hikvision DS-2CD2xx2F-I, DS-2CD2xx0F-I, DS-2CD2xx2FWD, DS-2CD4x2xFWD и DS-2CD4xx5. Камеры видеонаблюдения, удалённая эксплуатация через интернет - визуальная разведка в чистом виде.CVE-2023-6895 - OS Command Injection (CWE-78), CVSS 6.3 (MEDIUM по CVSS v3.1; несмотря на то что оригинальный VDB advisory описывает уязвимость как critical, score 6.3 соответствует уровню MEDIUM), вектор CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L. Затрагивает Hikvision Intercom Broadcasting System 3.0.3_20201113_RELEASE(HIK) и интерком-устройства серий DS-KD (IP-домофоны, не камеры). Вектор AV:A означает эксплуатацию только из смежной сети (Adjacent Network) - атакующие либо уже имеют доступ к локальной сети, либо устройства некорректно сконфигурированы с бриджингом в интернет.
Параллельная активность по компрометации Hikvision вблизи зон конфликта преследует разведывательные цели: камеры (CVE-2017-7921) дают визуальную информацию, интерком-системы (CVE-2023-6895) - точку опоры в локальной сети. Для организаций с устройствами Hikvision, торчащими в интернет, это прямая угроза проникновения в периметр. Скомпрометированное устройство - плацдарм для lateral movement в промышленную сеть.
Иранская киберструктура работает через несколько уровней: государственные APT (КСИР и MOIS), полугосударственные подрядчики, управляемые спецслужбами хактивистские группы и идеологически связанные иностранные объединения. Они обмениваются разведданными и доступом, ускоряя цикл атак. Проектные файлы, извлечённые из ПЛК сегодня, могут быть переданы другой группе для деструктивной операции завтра.
Заключение
Сценарий, построенный на реальных TTP иранских APT и тренде кампаний 2023–2024, показывает вероятную эволюцию угрозы - от подтверждённых компрометаций Unitronics к атакам на более серьёзное промышленное оборудование с реальным операционным ущербом. Иранские APT перешли от эксплуатации дефолтных паролей к использованию легитимного инженерного софта, и классическими средствами это обнаружить почти невозможно.Detection engineering для OT-сред - не «хорошо бы когда-нибудь», а вопрос выживания. Sigma-правила для мониторинга промышленных портов, Zeek-сенсоры на зеркальных портах OT-коммутаторов, SIEM-запросы с фильтрацией по геолокации - эти меры закрывают разрыв между словами «у нас всё изолировано» и реальным состоянием промышленной сети.
Три действия с наибольшим эффектом не требуют бюджета: убрать ICS-интерфейсы из интернета, сменить дефолтные пароли и заблокировать промышленные порты на периметре. Прямо сейчас откройте Shodan, вбейте
org:"ваша организация" port:502 - и посмотрите, что торчит наружу. Если нашли хоть один ПЛК - у вас та же проблема, что и у жертв из advisory.
Последнее редактирование модератором: