25 мая в 10:16

Wannacry — икс-команда, на выезд



Мы тут немного поработали ассенизаторами.

Около 66% атак первой волны пришлось на российские сети. И здесь есть огромное заблуждение: почему-то все называют механизм поиска определённого домена killswitch'ем. Так вот, возможно, нет. В случае российских сетей госкомпаний, финансов и производств — это механика обхода песочниц. Основные песочницы на входе в защитный периметр имеют множество тестов. В частности, при запросе определённых сайтов изнутри песочницы они умеют отдавать, например, 200 ОК или 404. Если приходит подобный ответ, зловред мгновенно деактивируется — и таким образом проходит динамический анализатор кода. От статического анализа он защищён несколькими свертками сжатия-шифрования. Таким образом, это не killswitch, а одна из новых механик обхода песочниц.

Об этом я тоже расскажу, но куда интереснее другой практический вопрос: какого чёрта полегло столько машин от троянца? Точнее, почему все вовремя не запатчились или не отключили SMB 1.0? Это же просто как два байта переслать, правда же?

Выезды икс-команды


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

Представьте себе банк, где в одном из филиалов оператор открыл письмо (напомню: отлично прошедшее песочницу на входе в DMZ). Дальше поражается, предположительно, весь сегмент сети. Админ сначала раскатывает филиал из бекапа, а потом сталкивается с тем, что не может проконтролировать распространение зловреда: «Я сносил машины пофилиально и разворачивал из вчерашних бекапов. Пришлось делать это дважды, второй раз открыв дополнительное техническое окно, чтобы снести весь сегмент сразу. Шесть минут после развертывания — и образ уже покоррапчен». Или: «Выявили признаки заражения вручную до апдейтов, накатили бекапы на заражённые машины. Утром проснулся один из выключенных на ночь аппаратных терминалов — и всё началось с самого начала». Очень многие сегменты обменивались по SMB с файловой шарой, которая входила в другие сегменты, включая критичные. В одной компании так погиб сегмент сети с рабочими графиками (включая логистику внутри производств). У админов, по сути, не было внятных инструментов поиска угрозы внутри периметра — нельзя было быстро однозначно сказать, какие машины и сегменты скомпрометированы.

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

А дальше пошёл цирк. Выяснилось, что многие реагируют тяжело на такие события: кто-то не в курсе вообще, что делать, кто-то в отпуске. Очень много конфликтов ИБ и ИТ — нет точных процедур, например, механически это делает ИТ-инженер, а безопасник говорит: моя юрисдикция, решим на совещании в понедельник. Вариантов принципиально остановить распространение было три:

1. Запретить SMB 1.0-трафик. Самый простой метод. Проблема номер раз в том, что он используется в прикладе (файлшары с источниками данных и обмен в крупных логистических сетях). Да, кое-где удалось перейти на свежие версии. Но это всё большие усилия, каждое из которых вполне может вызвать каскад падающих костылей на боевых системах. Но даже если просто попробовать закрыть SMB, уже возникают проблемы. Одна из наиболее ярких — обойти 150 устройств разных производителей, с разными прошивками, с разными консолями управления и прочее вручную, когда нет софта в управляющем центре сети. «Вручную» — это получая санкции безопасников на доступ к критичным настройкам для каждого устройства.


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

2. Обновить Win-машины. MS на удивление оперативно выпустила патчи для семейства систем. Напомню: SMB 1.0 поддерживается по умолчанию для обратной совместимости в том же 2012server. Средний срок накатывания такого патча в просвещённой Европе — месяц. В России в среднем — два. Почему? Потому что нельзя катить патч на боевую систему. Нужна полная её копия в тестовой среде, полный прогон теста, затем поиск техокна (в ночь с субботы на воскресенье, например) — и апдейт. В Европе тестовые среды на такие ситуации готовы. У нас — не всегда. Плюс встаёт вопрос сертификации — не все системы можно взять и обновить, они тут же потеряют сертификат. Российская госбезопасность бдит и не хочет, чтобы с патчем в наши критичные системы случайно попала закладка потенциального противника. То есть патч — отличный вариант на будущее, а что-то делать надо сейчас. Да, в паре случаев админы превентивно накатили патч без тестов на критичные системы производств (там не было вопроса сертификации). К счастью, ничего не упало, но безопасники чуть не развесили их внутренние органы по лесу. А если бы ещё и что-то упало — оба бы не выжили, мне кажется.

3. Внедрить антивирусы на машины пользователей и обновить их. И даже если это сделать, зловред уже внутри периметра. Потоковые антивирусы против него не работают — дистрибутив поставляется пользователю в архиве, который он сам расшифровывает на рабочем месте. А песочницы зловред проходит благодаря крайне полезной для выживания фиче «killswitch».

Итог — много где пришлось решать убиванием (изоляцией) сегментов сети или остановкой SMB с потерей части рабочих процессов.

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

Где остановили Wannacry почти сразу?


  1. В двух инсталляциях с микросегментацией сети, это где периметры DMZ — основной стройматериал сети. Вот пост коллег, написанный до событий, он многое показывает. В таких сетях антивирус и системы обнаружения аномалий работают внутри гипервизора, плюс очень жёстко разграничены права. Никаких проблем, зловред разворачивается на одном АРМ — и никуда с него не уходит после.
  2. Было менее десятка случаев с хорошими песочницами и грамотно внедрёнными системами поиска сетевых аномалий. Зловред создаёт дерево событий — с одной машины прыгает на несколько следующих, они продолжают развитие. Это дерево на втором шаге отлично детектируется (UBA-решения и SIEM-решения). По тревоге изолируется в карантин весь сегмент (чаще всего филиал банка, например), дальше он вручную откатывается админом до момента заражения. Затем по сети запускается какой-нибудь MaxPatrol с обновлёнными настройками. Он же, кстати, потом будет проверять все машины на наличие этого патча и все узлы роутинга на непробиваемость SMB-пакетам зловреда.
  3. Зловред использовал Tor для загрузки пейлоада и получения команд. Некоторые системы защиты сети (в частности, NGFW) умеют детектирвовать Тор-трафик (точнее, определяют его с некоторой долей вероятности), поэтому признак «тор-соединение» послужил простейшей сигнатурой для изоляции машин сети.
  4. Красиво отработали админы в сетях с внедрённой форенсикой. Либо можно в момент тревоги точно перечиcлить все заражённые машины, видя каждую транзакцию, и откатить именно их, либо же смотрите предыдущий случай — это где форенсика и поиск сетевых аномалий связаны в систему.
  5. Что нас порадовало, было два очень зрелых в плане ИТ заказчика со специальными зонами для тестирования экстренных патчей. Один отреагировал за часы, второй — за полтора дня.

Какие песочницы не пробивались?


Совершенно точно хорошо отработали песочница и защита на конечных устройствах от CheckPoint, песочница и защита на конечных устройствах от Palo Alto. Скорее всего, их разработчики поднаторели в «гонке щита и меча».

Дело в том, что с первых защитных песочниц зловреды пытаются определить режим гипервизора и реальность рабочей станции. Первый уровень — посмотреть на физическую адресацию памяти или попробовать получить особенности архитектуры процессора недокументированным методом. Гипервизоры поднялись чуть выше (точнее, ниже) к специальным аппаратным режимам Intel, когда такие фокусы перестали прокатывать. И заодно определили подобные действия как крайне подозрительные. Затем зловреды стали смотреть на реальную жизнь пользователя на рабочей станции. Предполагалось, что образ машины песочницы старый (нет недавно изменённых файлов), и все файлы датируются примерно одной датой. Песочницы стали выбирать случайного юзера и забирать его образ машины как тестовый, плюс определили такие действия по опросу файлов как подозрительные. Зловреды стали смотреть на последние запущенные приложения и время их работы. Ещё виток. Последнее (до опроса доменов) достижение человеческого разума — оценка хаотичности расположения иконок на рабочем столе. Если там срач — значит, живой юзер, можно разворачивать следующий слой.

Что дальше?


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

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

Мы сейчас уже перешли из режима дежурства «все в готовности» и сна на диванчиках по разным уголкам страны к режиму «не бухать на выходных». После него последует режим обычного дежурства. Через пару месяцев, как все запатчатся.
Автор: @plutsik
КРОК
рейтинг 132,09
№1 по ИТ-услугам в России

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

  • +1
    Кстати, там же, на предприятии, есть бабуля-бухгалтер, так вот она воспитывалась ещё при Сталине.
    Лучший файрволл — бабули на проходной :)
  • +6
    Остросюжетный киберкриптодетектив детектед.
    Подписался на канал автора.
  • +4
    Хорошо написано, прям сопереживал участникам процесса.
  • –17
    Маленькая конторка. Комп начальника — MacOS, остальные — поголовно Linux (Arch + максимальный закос оформления под WinXP) + VNC на сервак с 1С (Под управлением Ubuntu).
    Кароче — я вообще не знаю, что такое вирусы :)
    • +17
      Держите нас в курсе.
    • +1
      Аналогично,- всех клиентов перевёл на линукс… где совсем уж необходимо виртуальная винда… и уже 10 лет не знаю проблем вредоносного ПО.(500 компов в обслуживании)
      • +5
        Если вы обратите внимание на КДПВ, то это как раз Linux-версия Wana. Правда, её пришлось специально собирать, но умельцы смогли запустить. Ведь это приложение попало в десятку самых распространённых Win-приложений, нельзя было упускать такой случай.
    • +1

      от шифровальщиков линь не спасет. Они одинаково хорошо работают везде.

    • +1
  • +3
    Если там срач — значит, живой юзер, можно разворачивать следующий слой.

    Напомнило комментарий в статье про песочницу

    • 0
      На рабочем столе 3 ярлыка, значит я защищен?))
      • 0

        А они расположены упорядоченно или хаотично? Это важно!

        • 0
          В столбик в левом углу) Думаю, это не тянет на хаотично.
          • 0
            А мне так вообще нечего бояться, у меня иконки отключены :D
  • –1

    'Последнее (до опроса доменов) достижение человеческого разума — оценка хаотичности расположения иконок на рабочем столе. Если там срач — значит, живой юзер' аа, мне заражение не грозит)))

  • +1
    Мы сейчас уже перешли из режима дежурства «все в готовности» и сна на диванчиках по разным уголкам страны к режиму «не бухать на выходных». После него последует режим обычного дежурства.


    Уже… перешли на режим сверхурочного дежурства, так, чисто для профилактики
  • +6
    Линуксоиды часто говорят — что максимум, что можно испортить — это 'хомяк'. Фигня в том, что хомяк — как раз и есть самое ценное на машине. Операционку, конечно, тоже жалко, но она не идёт ни в какое сравнение с юзерскими данными, лежащими в 'хомяке'. К слову — от крипторов, линукс, увы, тоже не спасает.
    • +12

      Rule 0xCD: There is xkcd of it:



      То же можно сказать и про малварь.

      • 0
        Картинка похожа на подземелье в Diablo. С рейд-босом «Admin Account».
  • 0
    Не очень понятно при чем тут письма с аттачами и инструктаж пользователей к wannacry — оно ж вроде само заползало, разве нет?
    • 0
      Оно само заползает когда проникает через NAT в локальную сеть. За роутер(NAT) он сам попасть не может. Поэтому ему нужно стандартным способом заразить 1 машу в локальной сети, что бы заразить всю сеть.
      • 0
        Т. е. торчащая в инет самба (даже на роутере) — это редкий кейс сам по себе?
        • +2
          Ну да. Тем более в корпоративной сети
  • 0
    Чем меньше виланы сегментов пользовательских ПК, тем лучше, но растет сложность администрирования. Компромисс — вилан формируется на базе только одного свича.
    Сервера размещаются в едином блоке IP адресов, ну или нескольких блоках.Никаких сервисов в пользовательских сегментах, печать через сервер.
    Все корпоративные приложения имеют архитектуру клиент-сервер, исключения составляет VoIP RTP (udp/16k-32k или даже udp/1k-64k).
    На выходе из пользовательского сегмента стоит фильтр: разрешить IP до серверов, ICMP, RTP, запретить IP на приватные адреса, разрешить все.
    Портфолио данной методики начинается с Чернобыля (Virus.Win9x.CIH) 1999г, то был ад. С той поры больше слушаешь про приключения других.
    • 0
      На 99-й год да, это работало. Сейчас такое деление на мелкие виланы рождает уязвимость ошибочной миграции машин. Поэтому используются или системы на базе NGFW-решений, или же микросегментация. Последняя сложнее, поскольку вместо денег надо применять интеллект. Но один раз на конфигурировании среды, дальше всё это довольно просто поддерживается.
      • 0
        NGFW умеет много чего, но вот быстро и дешево не может. Именно простого пакетного фильтра достаточно для реализации правила: «сетевые взаимодействия между пользовательскими ПК запрещены, ибо все есть клиент-сервер» при $150 за порт и 40Gb/s матрицы коммутации на свитч с 50ю интерфейсами. Если есть возможность повесить фильтр не на вилан, а на порт — вот и изолированные сегменты в 1 ПК за счет типового для всей корпоративной сети небольшого пакетного фильтра. После реализации ПК не может заразить другой ПК, расслабляться не надо, но там фатального ничего (типа Wannacry) не произойдет, сконцентрируйте интеллект и деньги(NGFW) на периметре, DMZ и серверах.

        Можно раскрыть тему «уязвимость ошибочной миграции машин»?
        • 0
          вот здесь у ребят ситуация рассмотрена https://habrahabr.ru/company/croc/blog/328958/
    • 0

      У длинка кстати издавна есть Traffic Segmentation, запрещающий ходить пакетам между пользовательскими портами.

  • 0
    Не понял из статьи почему 66% на нашу страну пришлось?
    • 0
      Потому что в Европе обновления ставят за месяц, а у нас — за два :-)
    • 0
      Так понял, что средний срок установки патчей от майкрософта у нас 2 месяца. Т.е. просто не успели в корпорациях установить.
  • 0
    если с трудом читаемый сайт был против динамического анализа корпоративных песочниц, то его бы наоборот зарегистрировали сначала
    • +3
      Так ведь смысл в том что вне песочницы сайт не должен пробиваться, т.к. в песочницах по умолчанию обращение к любому сайту возвращает код 200, чтобы зловред сделал следующий шаг и проявил себя(загрузка вредоносной нагрузки и её запуск).
      • 0

        можно усложнить ловлю в песочнице зарегать сайт положить файл readme с неким содержимым. И тогда пусть песочницы об возвращаются 200.

        • –1
          Тогда песочницы начнут детектировать запрос именно этого файла и у зловреда не будет вариантов.
          К тому же, это подарок системным администраторам — они сразу же узнают о заражении и перекроют зловреду кислород — обрубить соединение и он будет считать что в песочнице и тем самым запустится в холостую.
          • 0

            А если запрашивать несколько доменов, дальше решать, анализируя все ответы — скажем, в зависимости от имени домена, его доступности, наличия спец.файла и кода в нем — и так четыре домена. Доступность сразу всех доменов, или только одного из всех — песочница.

            • 0
              Сложно, не нужно… слишком палевно в конце концов.
  • –3
    в одном из филиалов оператор открыл письмо

    Если админы в этой организации хоть что-то смыслят в ИБ, то зловред будет еще на излете заблокирован AppLocker`ом.
  • 0
    матанализ

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


    Из чего следует что лучшее решение работать в «песочнице».
  • –3
    Прямо экшн такой. А на деле скорее всего студент какой-нибудь с cureit походил по компам да и все.
    • +2

      cureit не помогает от шифровальщиков

  • 0
    От статического анализа он защищён несколькими свертками сжатия-шифрования

    Wanna Cry, если мне память не изменяет, имеет 4 компонента. Если не сложно — кто из них упакован? Насколько я знаю, то про Wanna Cry как разговорилось, что как минимум первые версии не паковались, использовался только архив

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

    Архивы не проверяются, если проверка архивов отключена. Если данные критичны, то можно и включить проверку архивов
    Ну и опять же — ну пусть не работает проверка при получении. Wanna Cry не относится к бестелесным троянам и отлично ловится антивирусными базами файлового монитора даже без наличия сигнатур — чисто эвристиком в момент распаковки
  • 0
    Господа, лишите пользователя админовских прав и запретите через gpedit.msc (дополнительно) запуск кода везде, кроме:
    %ProgramFiles%
    %ProgramFiles(x86)%
    %WINDIR%

    И что сможет сделать код трояна при попытке его запуска?
    • +1

      Он сможет запуститься с системными привилегиями благодаря уязвимости класса RCE в системном процессе.

      • 0
        Вы не поняли. Вопрос был про момент первого проникновения внутрь периметра: пользователь открыл письмо с трояном и покликал на аттач.
        С одной стороны, vviz забыл про %windir%\temp
        С другой стороны, пользовательский %TEMP% и %TMP% указывают в профиль пользователя. Чтобы предотвратить случайный (тупой) запуск троянов и прочего шлака пользователем, достаточно запретить запуск из %TEMP%,%TMP%, Temporary internet files, Downloads и Загрузки, при этом добавить в список запрещённого *.js

        • 0

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

          • 0
            И опять вы не поняли.
            При наличии защищённого периметра, хотя бы файрвола на маршрутизаторе, у трояна нет возможности (дистанционного) выполнения кода до момента выполнения внутри периметра (на компьютере в локальной сети).
            Чтобы что-то (троян) запустить, нужно выполнить системный вызов с исполняемым файлом в параметре. Запрет запуска программ работает на этом этапе — если запуск запрещён, системный вызов не будет выполнен, троян не получит управление — останется просто файлом с данными.
            Речь о AppLocker или Software Restriction Policies.
            • +1

              Нет, на этот раз не поняли уже вы.


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


              Вот недавно нашли: http://blog.checkpoint.com/2017/05/23/hacked-in-translation/

              • 0
                Действительно, не понял сразу.
                Тут работает вероятность.
                В таком векторе атаки я ещё понимаю смысл рассылать файл Microsoft Office или PDF. (И опасность уязвимости в Adobe PDF Reader плюс его требовательность к ресурсам давно подвигли меня рекомендовать клиентам альтернативные ридеры — Sumatra, Foxit и др.)
                Описанное по ссылке имеет очень маленький шанс к распространению, это применимо разве что для целенаправленной атаки как один из вариантов проникновения, и даже в таком сценарии маловероятно. Тот же VLC по умолчанию не скачивает субтитры.
        • 0
          Нет, я не забыл — я упоминать не стал, вроде как известная уже, набившая оскомину, вещь. При поднятии системы все %TEMP% %TMP% перенаправляю в c:\temp. И раз уж разбор по косточкам — необходимо разрешить запуск *.lnk
          И — Win с начало времен сильно «гадит» в «темп», и плохо прибирает за собой. «Темп» в рамдиск.

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