Новогодние праздники — отличное время, чтобы… начать атаку на критическую инфраструктуру нашей страны со стороны наших недругов. 

Итак, начнём по порядку. На компанию (название скрыто), о которой пойдёт речь, я ранее работал как штатный работник управления информационной безопасности. Однако, руководитель мне попался не просто неадекватный — я бы назвал его «мишка-мишка, где твой лес?» (каламбур уместен, ибо и звали его Михаил). После постановки очередной задачи, на которую потребовался бы взвод безопасников и год работы (расшифровать 3000 компьютеров с полнодисковым шифрованием и зашифровать другим продуктом), и при этом ничего не поломав, я решил послать его к такой-то матери, а заодно и всю компанию. Через месяц после моего ухода Михаил отправился ко всем чертям как уволенный «по статье», а меня позвали назад; но я согласился лишь на ГПХ, поскольку уже устроился на новую работу, а проблем в компании было немерено.

Ниже лишь небольшая, но существенная часть проблем ИБ, связанных в первую очередь с разгильдяйством руководства и ИТ:

  • Незамкнутый периметр защиты (отсутствие даже самых базовых учётных реестров, включая систем и ресурсов, а также карты сети). Всё делается по методу «кто-то из коллег знает» или «где-то записано», либо методом тыка.

  • Нетиповой подход к формированию DMZ (каждая из площадок компании сама организовывала как каналы связи, так и могла организовать «своё казино с блэк-джеком и сопутствующим»).

  • Полностью открытая внутренняя сеть (про ограничение сетевого доступа там упорно не хотели слушать).

  • Неполный охват банальными антивирусами всех узлов (ибо ИТ-специалистам проще выдать голый ноут без всего, а ИБ как-то потом само должно разобраться. С серверами ещё интереснее – сначала построят целый огород, а потом антивирус уже никак туда безболезненно не включишь, ведь документацию писать не приучены).

  • Отсутствие пренебрежения со стороны ИТ использовать пиратский софт для выполнения функций в компании.

  • Абсолютное недоверие к ИБ и отрицание существования этих ваших «хакеров» (то есть даже при наличии событий, указывающих на атаки и инсайдеров в сети, никто не верит, считая это некими сбоями, и ничего не делает и мешает работе ИБ по блокировке ресурсов и расследованию).

  • Никаких систем детектирования и предотвращения вторжений (при том, что внедрен CheckPoint).

  • Мониторинг сервисов, систем и служб в основном касается системы Zabbix на уровне пингов и отдельных статус-логов.

  • Критичные системы и серверы, а также бэкап-серверы находились в одних и тех же VLAN с продуктивными, тестовыми и другими (то есть всё в одной куче).

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

За месяц до катастрофы

Ранее неоднократно я пытался достучаться до мозгов ИТ-подразделений и руководства и сообщить о том, что имеются артефакты инсайдерской активности в сети. Это и ARP от неизвестных источников в сети, и «внезапные» сбои антивируса на машинах, где такого никогда ранее не наблюдалось, и даже применения эксплоитов на серверы бэкапа, уловленные антивирусом. Всё мимо. Port Security включать нам слишком проблематично, сбои антивируса — «пиши в техподдержку и разбирайся сам», а эксплоиты – «ну, антивирус же среагировал, значит, и нормально».

Получено официальное письмо ФСТЭК России, в котором, помимо всего прочего, указаны конкретные ХЕШ-суммы скомпрометированных файлов, при выявлении которых сразу необходимо применять меры по изоляции хостов. Более того, ФСТЭК в кои-то веки не поленились даже указать, к какой преступной группировке относятся сработки.

Мне поручили обработать письмо и ввести ХЕШ в контроль приложений антивируса.

Я сделал, даже предупредив всех ответственных, что мной прорабатывается изменённая политика с новыми блокировками. 

При включении политики оказалось, что половина всей сети уже подверглась атаке и компрометации, так как паразитный ХЕШ 81ea48cb66573d81fc1688170b90aabcf63e9998de89895f90de4f34bb32694a оказывался в системе 32 meshagent64-PC.exe. 

Его блокировка потянула за собой и другие файлы системы 32, из-за чего, по сути, один раз заблокировав рабочую станцию, пользователь назад уже войти не мог. Затрудняюсь сказать, как одно с другим связано, исходя из описания изначального файла, но факт остаётся фактом.

Разумеется, посыпались жалобы на отказы рабочих станций и политику велено было откатить.

Тем не менее, несмотря на очевидное доказательство компрометации рабочих станций и почти половину сети, в которой насчитывается более 3000 узлов, руководство решило, что во всём виноват ФСТЭК — который предоставил неверную информацию без указаний путей, где должны быть скомпрометированные файлы («мол, в системе 32 на компьютерах в компании такого быть не могло»).

При том слабохарактерный, но всё ещё штатный коллега также встал на их сторону.

Не помогло ни письмо от федерального органа, ни анализ файла в песочнице.

 

Тем не менее, мне удалось добиться хотя бы вызова форензиков, чтобы они хотя бы начали разбор того, как, откуда и кем внедрен однозначно паразитный след в ОС половины компании. Жаль, что привлекались работники непрофильных вендоров (названия говорить не буду). Они не только приступили к работе неторопливо, но и по итогу трёхнедельных изысканий пришли туда же — это ложное срабатывание. ФСТЭК ошибся, Акелла — промахнулся.

За двое суток до катастрофы

Наступает полное затишье. Если раньше системы время от времени сбоили, серверы выходили из строя, а случалось даже, что происходили сработки на эксплоиты внутри сети на системы СХД и виртуализации, то вот за два дня наступила тишина и полная работоспособность всего.

И вот то самое 1 января 2025 года

Мой ГПХ истёк прошлой ночью, и по идее, я уже не работник компании, а моя УЗ должна быть заблокирована автоматически.

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

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

Попытка подключения упёрлась в невозможность даже VPN построить, но, как выяснилось, блокировка была, потому что у меня ГПХ протух.

ОК, разблокировали УЗ, будучи на связи с админом. Подключаюсь, вхожу и вижу, что все немногие файлы на моем рабочем столе изменили значки и расширение, что подводит нас к единственной верной мысли — прошёлся шифровальщик. Сообщаю админу и первый его вопрос — «Это точно? Может, это просто сбой какой-то?». Как можно было подумать, что это «какой-то сбой», даже не спрашивайте.

Я тут же заметил, что файловые ресурсы тоже уже покалечены, но не все. Приватные ресурсы, вроде моей папки с реестрами, которые я вёл, оказались не тронуты. 

Вывод — это не сетевой червь с шифровальщиком, что по 445 порту лезет, куда долезет, а некое иное действие по распространению вредоноса. При этом «выкупа» не затребовано, а отсюда следующий вывод — это терроризм. Злоумышленники и не собирались ничего вымогать и расшифровывать изначально, и уже скачали всё, что нужно и просто таким образом решили хлопнуть дверью.

«Но почему тогда не сработал антивирус?» — Спросите вы. — «Значит, всё же бесполезная это штука?»

Нет, не бесполезная, если только ею пользоваться, как написано в документации, а не кастрировать грубым образом самые нужные функции и ставить исключения почти на всё, а также защищать сервер управление от всех доступов, кроме выделенных портов.

Включив антивирус, я заметил, что сервер всё ещё активен и синхронизация идёт. Однако, все блейды защиты отключены. То есть, антивирус превратился в нефункциональное ПО. 

Провернуть это можно, имея доступ высокого приоритета (SYSTEM), либо из-под Безопасного режима, либо используя сервер управления и попросту отключив механизмы защиты по задачам.

Напоминаю, ранее половина рабочих мест уже была подвергнута компрометации, поэтому вывод точкой входа мог быть любой из них; но проще всего это делать из-под администратора ИТ, имеющего доступ в консоль KSC, даже с урезанными правами. Начинаю подключаться через консоль к серверам управления антивирусом. И сразу лезу смотреть отчёт о сработках антивируса. Ведь откуда-то пошло заражение, и хоть один антивирус должен был хоть как-то среагировать.

Так оно и вышло.

Оказалось, что в час ночи 1.01.2025 обнаружена сработка на программу Mimikatz на домен-контроллере московского офиса компании. 

Через некоторое время фиксируется отключение агентов антивируса и удаление политик безопасности с сервера. 

Сначала я подумал, что домен и был целью, и спасать уже нечего. Ведь доменной политикой можно распространить всё, что угодно, в мгновение ока. 

Тогда я ещё думал, что атака уже закончилась, и всё, что мне остаётся сделать — это найти артефакты, ткнуть админов и руководство в очередной раз носом, и со словами «Я же вас предупреждал!» уйти в закат. 

Но не тут-то было.

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

И тут ждало уже знакомое мне разочарование – источником оказался сам сервер администрирования антивируса. Уже не первый раз я вижу, как хакеры для распространения вредоноса используют именно средства защиты. И всё это только потому, что защита таких узлов, как правило, оставляет желать лучшего. В нашем случае хоть и был выставлен сетевой экран, но ввиду постоянных работ по миграции доменов именно к ним был неограниченный доступ. А как мы помним, оттуда и началась атака.

То есть после взлома домена (как позже выяснилось, от скомпрометированной УЗ ИТ-админа, которому я не один раз делал замечания относительно соблюдения требований ИБ), были созданы УЗ для всех суб-доменов с административными правами, после чего или параллельно они залезли на антивирус, отключили защиту и создали задачу по распространению вируса шифровальщика. 

Быстро найдя задачу, я обнаружил и вирусный файл. Анализ его показал, что написан он довольно хорошо, но использует типовой движок (поэтому даже Defender его вполне способен сразу удалить), и удаляется после своего чёрного дела. Для распространения как раз и нужно было обесточить средство защиты, но не убивать его совсем, чтобы Defender не включился.

Тем не менее, стало очевидно, что работали хакеры далеко не высокого уровня. Захватив домен, копаться с антивирусом и использовать типовой вирус без обработки криптексом для снижения релевантности работы антивируса – показатель довольно примитивного подхода к задаче. Да и распространение вируса посредством задачи антивируса — намного менее гарантировано в доставке, чем доменная политика и скрипт на BASH-е. Следовательно, уровень, как ни крути, весьма средний.

ОК, докладываю обо всём и тут замечаю, что задача по шифрованию ещё не выполнена полностью. Зашифрованы всего в районе 250 машин из 3000, хотя задача создана на все узлы. В ней и серверы, и рабочие станции, но всего 250 отработало. Отчасти потому что серверов администрирования KSC 7 штук, и машины разделены по ним.

Лезу на другие серверы администрирования и вижу, что там задачи подготовлены, но не запущены.

Тут до меня доходит, что злоумышленники ещё в сети.

Я тут же начинаю задачи отменять, удалять софт, и с домашнего KSC экспортировать политику с топовым уровнем безопасности и расшвыривать по группам администрирования устройств, оживляя антивирус. Начинаю и создавать новые правила сетевого экрана, дабы отсечь мерзавцев от серверов администрирования. 

Тут же звоню админам и руководству и сообщаю о том, что злодеи ещё в сети, чтобы рвали когти в ЦОД и срочно звали помощь и форензиков. 

И тут игра начинается.

Стоило мне включить антивирусы, как у меня вылетает сеанс. Пытаюсь повторно подключиться и тут выясняется, что моя виртуалка, с которой я подключался – убита и удалена.

Я пытаюсь подключиться напрямую через VPN, используя консоль — подключаюсь. Но почти сразу подключение слетает. Новое подключение уже не проходит. Пробую по RDP — пускает. 

До меня, увы, не сразу дошло, что самым быстрым решением для остановки в таком случае было убить технические учётные записи, из-под которых стартует СУБД Касперского. При установке есть возможность установить такие УЗ и интегрировать их управление с доменом. После этого убитый сервер отправить в HALT или REBOOT. Выскочит невнятная ошибка запуска БД, консоль после этого не стартует, а чтобы догадаться, какую УЗ использовать и подменить её — ещё нужно поковыряться в самой СУБД и получить и туда доступ. В режиме экшена у хакера уже не будет на это времени.

Я же, к сожалению, пошёл по пути помех в работе хакера и стал пытаться хоть как-то сохранить своё детище и спасти всех, всего-то имея в распоряжении одну УЗ. Всё равно что с палкой-копалкой против саблезубого тигра выходить. Разумеется, анализируя постфактум, понимаешь, что это было ошибкой, но будучи в «игре», не всегда это можешь на ходу трезво оценить.

Разумеется, мои действия не остались не замечены, поскольку я начал убивать сеансы и продолжать включать антивирус. Будь в распоряжении хотя бы CheckPoint и виртуализация, сориентировался бы с изоляцией сразу, но увы, такой роскоши у меня не было.

И тут мои RDP тоже начали отключать. Как выяснится позже, именно виртуализация была к тому времени захвачена, и все мои попытки что-то делать на уровне серверов легко убивались на уровне виртуализации, а в это время писались правила именно внутри виртуализации, чтобы блокировать меня. 

Отрезав меня от подключений к серверам напрямую, потребовалось найти срочно иной маршрут, дабы помешать злоумышленникам довести дело до конца.

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

В итоге дошло до того, что мы выдёргивали сеансы друг у друга или даже воровали клавиатуру и мышь, как маленькие дети в песочнице делят игрушку. И смех и грех. 

Видимо, в этот момент нервы той стороны не выдержали, и они принялись с серверов писать оскорбления и угрозы. Стали поступать и звонки на мой личный номер с неизвестных номеров, на один из которых я в суете имел глупость ответить.

Ничего не оставалось, кроме как выключать физически серверы от сети, а до этого гасить их и блокировать запуск по скрипту, постоянно меняя пароль или убивая счётчики авторизации путем неправильных авторизаций и таймаутов. 

За это время администраторы успели доехать до ЦОД и отрубить каналы связи. После чего, наконец, атака была остановлена.

К этому времени (а это было в районе 17:00) проснулся штатный безопасник, помощь которого уже не потребовалась.

Отсюда следуют выводы:

  1. В современном мире информационная безопасность — это не роскошь и не миф. Не верить в неё, как в описанной статье — равно потерять бизнес (в самом худшем случае). Но, к сожалению, людям надо демонстрировать опасность, а не просто о ней говорить. Как говорится, пока гром не грянет, мужик не перекрестится.

  2. Периметр защиты всегда должен быть замкнут, а системы, серверы, сети, программы и прочее — должны быть под строгим учётом и контролем средств защиты.

  3. Сеть как снаружи, так и внутри должна быть закрытая. Нельзя допускать наличие правил ANY to ANY Accept; а все доступы, открывающие узлы друг для друга, должны подлежать строгому учёту.

  4. Сетевые правила разрешения обязательно должны ставиться на мониторинг систем IPS/IDS — это на 90% снижает возможность неопытного хакера.

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

  6. Для серверов систем защиты всегда и обязательно использовать технические учётные записи для запуска сервисов — для возможности их быстрой остановки в случае захвата.

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

  8. Используйте множество разных учётных записей и возможностей доступа до собственных целевых серверов.

  9. В случае противодействия реальным злоумышленникам у вас не будет времени на какие-то сложности и программирование — скрипты «изоляции хоста» и «убивание доменных учётных записей» (путём неправильных авторизаций по циклу) должны быть готовы заранее и находиться под рукой. Используйте их сразу же, как только обнаружили злоумышленника и его действия.

  10. Не используйте ваши реальные доменные учётные данные. Домен содержит ваши персональные данные, что злоумышленника сразу выводит на вас. Когда вы мешаете злоумышленникам, то на вас таким образом очень быстро выйдут. Если же в этом замешаны террористические и нежелательные организации, то «игра» может стать реальностью довольно быстро не только для вас, но и для ваших близких.

  11. Учитесь атаковать и импровизировать. Практические навыки злоумышленников автоматически дадут вам понимание схемы мышления и способность быстро принимать решения по реакции. Использование же инструментария хакера позволит находить возможности подключения, даже если стандартные средства отключились. Быстро охватить сразу всё у злоумышленника не получится.

Итог этого немного предсказуем — зашифрованы оказались довольно чувствительные серверы, системы, БД, файловые хранилища, почта и критичные системы АСУ ТП.

Стану ли я помогать ещё подобным компаниям? Вряд ли! Если люди не готовы принимать помощь, то они утонут всё равно. Тонуть вместе с ними — так себе идея.


В заключение всех, кому небезразлична тема информационной безопасности, приглашаем на открытые уроки:

  • 5 февраля: «Основы обеспечения безопасности в Docker контейнерах». Подробнее

  • 19 февраля: «Комплексная кибербезопасность компании». Подробнее

Полный список всех бесплатных занятий по ИБ, разработке и другим ИТ-направлениям смотрите в календаре.

Комментарии (0)