И снова про вирус Petya. Отвлекающий маневр или M.E.Doc — прощай…
Всё страньше и страньше! Всё чудесатее и чудесатее! Всё любопытственнее и любопытственнее! Всё страннее и страннее! Всё чудесится и чудесится!
«Приключения Алисы в Стране чудес» Л.Кэрролл
На днях я писал про вирус Петя или как плохо жить без backup’ов. Так вот внезапно история получила свое продолжение — этой ночью (кибер-) полиция остановили сервера M.E.Doc, арестовала оборудование и настоятельно порекомендовала всем пользователям не только не использовать данный программный продукт, но и по сути переустановить Windows и изменить все пароли до которых мог дотянуться M.E.Doc (не только пользователей Windows, но и proxy серверов, email ящиков и т.д.). И я их очень хорошо понимаю …
Для тех кому лень читать “много букв”
В M.E.Doc был встроен “черный вход” с помощью которого злоумышленники могли выборочно загружать и выполнят код на компьютерах пользователей. Выполнять код можно была адресно для нужной организации. Идентификация организации производилась по ЕДРПОУ(!) — публично доступный уникальный идентификатор юридических лиц в Украине. Эта история длилась несколько месяцев (известно о трех инфицированных версиях M.E.Doc). Первая из них датируется еще Апрелем (!) сего года. Когда злоумышленникам “все надоело”, они “позвали” Петю, чтобы частично замести следы. С одной стороны история банальна, а с другой — это же такой кибер-панк у нас под боком. Готовый сюжет фильма про хакеров, где есть и “темные силы” и “хорошие кибер-полицейские” и, скорее всего, “сотрудник-предатель”, и многое-многое другое (шантаж, угрозы, бизнес-интересы и даже массовая кибер-атака :). Это не “банальный взлом Yahoo” когда, данные всех пользователей хранились централизовано и до них нужно было только дотянуться. Это тщательно спланированная (и выполненная?) атака (против ИТ компании разработчика, но не они были главной целью, а кто?), когда информация (скорее всего) по крупицам собиралась со всех “медовых” компьютеров, пересылалась на взломанный сервер обновлений M.E.Doc и … а вот что с ней было дальше немного покрыто тайной. Эта история прекрасна еще и с точки зрения ИТ: не так то просто незаметно встраивать свой код в чужую программу, делать это несколько месяцев и не “светиться” (это было не разовая модификация, которая была в M.E.Doc все эти месяцы — “черный вход” то появлялся, то исчезал, этот код менялся и мутировал), как-то собирать инфицированный модуль и попадать в файлы обновлений (а это также не простые архивы). Кто бы ни стоял за этой атакой — с ИТ точки зрения это “крутые чуваки”.
Что же произошло 4 Июля?
Официальный ответ — повторная кибератака, повторная попытка распространения вируса и пр., но на практике все похоже выглядит просто прекрасно (перевод на habrahabr’е):
- Злоумышленники “взломали” сервера обновлений M.E.Doc и разместили на них управляющий серверный модуль (на серверах обновлений была установлена старая версия FTP сервера, в котором была “дыра”, дальше, думаю, понятно). Дата взлома не известна, но судя по всему это было еще в Апреле (!) 2017 года, а может быть и ранее.
- Они же получили доступ к исходным кодам как минимум одного из модулей M.E.Doc (предварительно, вирус содержался в ZvitPublishedObjects.dll — этот файл “разлетелся” по всей Украине с очередным обновлением).
- Далее злоумышленники либо пересобирали данный модуль сами (со своими правками; см. пункт 2.) и загружали его на сервера обновлений, либо получили доступ к одному (либо нескольким компьютерам) разработчиков Интеллект Сервиса (компании, которая стоит за M.E.Doc) и вносили изменения непосредственно на них, либо изменения попадали где-то между (сервера сборок, “тестовые площадки” и т.д.). Во всяком случае, из 33 обновление 2017 года как минимум в трех есть вредоносный код:
01.175–10.01.176, от 14 апреля 2017
01.180–10.01.181, от 15 мая 2017
01.188–10.01.189, от 22 июня 2017 (это последняя версия!) - В отличие от обычных “вирусов”, которые шлют данные пользователей на свои собственные серверы, M.E.Doc (тот самый ZvitPublishedObjects.dll из пункта 2) отправлял данные на сервера Интеллект сервиса (которые уже были “взломаны” — см. пункт 1.): ЕДРПОУ (уникальный код каждой организации в Украине), login/password для email с помощью которого M.E.Doc общается с контролирующими органами, username, пароль текущего пользователя (думаю именно указанный в M.E.Doc), сетевые настройки (proxy и т.д.), а что было дальше покрыто тайной. Например, данные переправлялись злоумышленникам для дальнейшей обработки.
- По сути вирус содержал управляющий модуль, который позволял адресно (по ЕДРПОУ) выполнять команды для каждой конкретной организации (в том числе загружать код на компьютер с M.E.Doc и затем выполнять его) — т.н. backdoor. Из анонса киберполиции Украины:
… атакери компрометували облікові записи користувачів, з метою отримання повного доступу до мережі. Далі отримували доступ до мережевого обладнання з метою виведення його з ладу. За допомогою IP KVM здійснювали завантаження власної операційної системи на базі TINY Linux. - Скорее всего, 27 июня была отдана команда “фас” и вирус Петя “прилетел” всем инфицированным пользователям M.E.Doc.
- До сегодняшнего дня компания Интеллект Сервис (частично?) отрицала всю тяжесть ситуации. Они провели профилактические работы на выходных (по состоянию на понедельник web сервер компании по прежнему был недоступен, но сервера обновлений были живы). А вчера (4.07.17) атака повторилась … Так по крайней мере звучит официальная версия. Возможно, (кибер-) полицией был поднят т.н. honeypot и преступников ловила “на живца”. Надеюсь, скоро узнаем …
Что было до 27 июня?
Вот это самый интересный вопрос — скорее всего, злоумышленники:
- Пытались (и получили?) доступ к компьютерам внутри сети интересующих предприятий.
> Т.е. на вашем компьютере где установлен M.E.Doc могли выполняться любые действия — добываться криптовалюта, искать инопланетян и т.д. И да, вы будете за это платить (как минимум за электроэнергию и Интернет трафик). - Пытались (и получили?) доступ к email адресам и паролям от них (как минимум тех, что были указаны в M.E.Doc).
> Очень часто у пользователей один (у продвинутых три :) пароля на все случаи жизни. Дальше, я думаю, продолжать не стоит — вы знаете пароль пользователя. Если вам нужны его данные достаточно только узнать email (так как, скорее всего, для общения с гос.органами использовался отдельный email) - Собрали огромное количество данных: ЕДРПОУ, login/пароль/email/пароль от email’a, настройки proxy серверов.
> Резоны как в предыдущем пункте. Можно с какой-то долей вероятности получить доступ к данным пользователей (не только email) в различных интернет сервисах. Но кроме этого у вас появляются настройки proxy сервера в которых нерадивый админ мог указать еще один общий для организации пароль и т.д.
Одним словом — утекло много и важной информации.
Что делать сейчас?
- Не пользоваться M.E.Doc и ждать развития событий. Я бы отключил все комньютеры с M.E.Doc от сети (от греха подальше).
- Поменять все пароли которые использовались пользователями M.E.Doc (я про сетевые пароли, пароли почт и пр. — см. рассуждения выше про один–три пароля). Да, я понимаю, что это сложно/невозможно — но по крайней мере поменяйте на сайтах, доступ к которым Вам дорог.
- Изменить пароль email’а через который шло общение с гос.органами.
- Решить, что делать с ключами ЭЦП. Может их нужно отозвать/перевыпустить.
- Подумать до чего еще могли дотянуться злоумышленники (локальный административный доступ на компьютере — до всего гарантированно в пределах компьютера и, в зависимости от настроек, до всей сети) и изменить самые-самые пароли.
Чем похоже был Петя?
Отвлекающим маневром, господа. Это просто кто-то хлопнул дверью для того чтобы мы не поняли, что же на самом деле было совершено (проникли на компьютеры гос.органов и украли важную информацию, инфицировали прочие компьютеры критической инфраструктуры — АЭС/аэропорты/больницы, “увели” крупную сумму у банка или много мелких сумм или инфицировали компьютеры карточного процессинга или банкоматы, а может просто “нагадили” авторам M.E.Doc). Поживем — узнаем, даст Бог. Есть еще вариант, что это было именно “кибер оружие” — т.е. его целью было навредить всем (бесплатно или за деньги, но в свете вышеприведенных фактов мне этот вариант кажется маловероятным).
Как это технически возможно?
The backdoored module from May 15th is implemented in a slightly different way and has fewer features than the one from June 22nd.
- Если посмотреть на оригинальную статью, то в ней черном по английски написано, что авторы вируса еще и модифицировали свой вредоносный код под новые идеи/изменения в самом M.E.Doc!
- Я бы сказал, что пересборка одного из модулей исходного кода практически не возможна без “человека внутри” (насколько я понял, мы говорим о .Net Framework 3.5 и C#):
2.1 либо модуль настолько прост, что все с ним очевидно, но это, кажется, не наш случай;
2.2 либо у вас есть инструкция по сборке (но и с ней, поверьте, не все так просто — зависимости, библиотеки, версии компиляторов, compile-time зависимости и пр.)
2.3 либо есть “знающий человек” внутри (например, “обиженный” на компанию (экс-)сотрудник)
2.4 есть, конечно, еще опция внесения изменения в данный модуль без пересборки (я про инъекции в IL-code по аналогии с Java byte code manipulation) — если был этот вариант, то это очень круто с технической точки зрения - Для того, чтобы вирус мог все — он должен выполняться с правами администратора (и это именно наш случай). Даже если пользователь не обладал данными правами, M.E.Doc требует их для корректной работы.
- Многие программы подписываются разработчиками цифровой подписью для того чтобы предотвратить (или сильно усложнить злоумышленникам) внесение изменений в готовое ПО. Этого, как Вы поняли, не происходило. Цифровой подписи не было (или если я заблуждаюсь и еще и ключи для подписей утекли, то дело совсем примет веселый оборот :).
- Почему никто не заметил модификаций? Не знаю. Это зависит от процесса подготовки и тестирования обновлений. Т.е. как они из процесса разработки попадают на сервера обновлений.
- Судя по всему, каждое обновление M.E.Doc — это исполняемый exe файл (который уже внутри содержит непосредственно обновленные файлы M.E.Doc — в том числе наш злополучный ZvitPublishedObjects.dll). Если я прав (т.е. процесс обновления скачивает именно exe файлы и выполняет их на компьютере бухгалтера, то единственный вариант как инфицированный код мог попасть в пакет обновления это не только доступ и понимание злоумышленниками процесаа разработки, но и полный контроль процесса подготовки выпуска обновлений).
- А что пароли не были зашифрованы? Нет, не были и я понимаю почему (как минимум для email’ов, которые использовались при обмене сообщений с гос.органами) — программе нужен расшифрованный пароль для авторизации на почтовом сервере (т.е. если и применялось шифрование, то, скорее всего — симметричное). Прочие пароли могли даже не храниться “plain text”ом — т.е. сохраняться в солено-перченом виде (это технические термины если что :), но это уже не так важно.
Что дальше?
- Вон из профессии. Для меня M.E.Doc закончился. Я буду искать альтернативу и переходить на нее. Доверия после всего вышеперечисленного команде Ителлект Сервиса — 0.
- Если вы “засветили” где-то на компьютере с M.E.Doc любой пароль — меняйте его от греха подальше. Да, я понимаю, что это сложно — но это как кажется единственный вариант.
- Перестаньте пользоваться паролями “из головы” и переходите на программы для генерации и управления паролями (например, 1Password, LastPass и иже с ними). Многие считают, что это еще хуже — как с кошельком (т.е. способ потерять все деньги и сразу, но мне кажется, что сейчас это меньшее из зол).
- Включите для вашего (основного!) почтового ящика двухфакторную авторизацию (и прочих сервисов где это вам важно — Facebook, Whatsapp, Viber и т.д.). Это не панацея, но как минимум усложнит жизнь злоумышленникам.
- Возможно, я пессимист, и данные о пользователях дальше серверов обновлений M.E.Doc не “утекли” (например, они там записывались в файл). Вы в это верите? Я — слабо. Если злоумышленники настолько вольготно себя чувствовали на серверах и компьютерах Интеллект Сервиса несколько месяцев, то незаметно наладить процесс сбора данных пользователей, кажется уже не таким сложным занятием.
P.S. Почему один пароль (два, три, … десять) на все случаи жизни — это плохо. Пробовал описать выше, но повторю еще раз:
- Вы зарегистрировались, например, на кулинарном сайте. Ввели там придуманный login и один из ваших (трех) паролей.
- В какой-то момент сайт захочет от вам email или номер мобильного телефона (акции, скидки и пр.).
- Если этот сайт будет скомпрометирован и злоумышленники получат ваши данные, то они, например, могут попробовать зайти с вашим паролем в почтовый сервис (а вдруг подойдет), или с номером телефоном и этим же паролям в IM messenger (whatsapp, viber или прочий телеграм), а может эта пара email/пароль подойдет к вашему facebook’у и т.д.
- Процесс перебора из пункта 3. часто осуществляется либо автоматически (скриптами — специализированными программами), либо адресно — когда нужно получить доступ к данным конкретного человека либо организации, либо даже используется для социальный атак (но это уже совсем другая история).
P.P.S. Зачем еще могли использовать инфицированные компьютеры? Да для чего угодно — от DDOS атак (помните, анекдот про тот самый сервер который на миллионном китайце согласился, что у него пароль Мао Цзедун?) и SPAM рассылок, до добычи электронных денег и поиска внеземного разума (см. выше). Но чаще всего просто создаются сети готовых для DDOS атак компьютеров — те самые ботнеты и потом доступ к ним продают и иногда очень за дорого.
P.P.P.S. Слушайте, а может все еще интереснее — может над серверами Интеллект Сервиса “издевались” несколько групп хакеров? Ссылка 1, ссылка 2. Если верить Dr.Web’у (ссылка 2), то похоже вирус собирал только email/proxy данные (немного легче, но не сильно), но насколько достоверна данная информация?