Перейти к навигации

История борьбы с трояном-файлошифровальщиком...

Введение

История началась с того, что в начале дня раздался звонок. Взволнованный голос клиента рассказал, что комп не загружается, документы не открываются, а вместо привычного рабочего стола на экране угрожающая надпись с приблизительным смыслом: «заплати нам деньги и мы вернем тебе рабочий стол и документы». Знакомая многим ситуация: вероятнее всего на компьютере очередной винлокер, работы по выпилу вымогателя займут максимум 10 минут.

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

Получил системник, включил. Загрузился виндовс ХР. Появился рабочий стол – никаких признаков винлокера, с первого взгляда все нормально. Однако, попытавшись открыть первый попавшийся документ с рабочего стола, получил в ответ «страшное» сообщение:

Естественно, как и любой человек, который не первый раз сталкивается с троянами-вымогателями, я отнесся к данному тексту с изрядной долей скепсиса. Наверняка, подумал я, здесь все дело в обычной программе, которая перенастроила на себя обработку открытия файлов с расширением .doc и .xls для того, чтобы пугать неопытных пользователей текстом с непонятными словами. Чтобы убедиться в этом предположении и поймать программу-хулигана, загрузил компьютер с образа для восстановления системы, открыл диск C в файловом менеджере и увидел совсем нерадостную картину: все файлы на локальных дисках внезапно приобрели расширение M5bFu, а их содержимое стало похоже на результат работы генератора случайных чисел. От прежнего содержимого файлов не осталось ни следа.

Итак, сообщение о том, что файлы зашифрованы оказалось чистой правдой. Зашифрованными оказались все файлы размером менее 2 гигабайт с расширением doc, xls, dbf, avi, jpg, txt, rar, zip – в общем все, что может представлять ценность для владельца информации. Среди зашифрованных файлов – база 1С и важные документы. Если 1С еще можно было восстановить из свежего бэкапа, то пропажа ценных документов и фотографий могла бы сильно пошатнуть здоровье клиента. Таким образом, выбора не было – пришлось взяться за расшифровку данных.

Этап 1. Поиск алгоритма шифрования

Опять же, будучи от природы слегка недоверчевым, решил, несмотря на явное указание алгоритма шифрования в сообщении, самостоятельно определить каким криптоалгоритмом зашифрованы данные в файлах (вдруг все не так страшно, как написано). Сначала проверяем самые простые и распространенные шифры замены: шифр цезаря, XOR и т.п.

Для анализа берем два файла dbf: один зашифрованный из зараженной системы, другой нетронутый из свежего бэкапа и сравниваем их друг с другом. На примитивный шифр замены нам могут указать области исходного dbf-файла, заполненные идущими подряд одинаковыми байтами, например со значением 0. Благо файлы dbf не отличаются высокой плотностью хранимой информации, и нулевых байтов в них предостаточно.

На рисунке видны фрагменты исходного файла с несколькими нулями подряд и то, во что эти нули превратились в зашифрованном файле. Простые поточные шифры замены, где символ открытого текста преобразовывается в один и тот же символ криптограммы, отпали сразу. Более глубокий анализ показал, что простой посимвольный XOR открытого текста с ключевым словом тоже не имеет здесь место. В конце концов, удалось выяснить, что шифр блочный, без обратной связи и гаммирования. Длина блока – 16 байт.

Таким образом, пришлось принять как гипотезу использование шифра RC6, указанного в сообщении от создателей трояна. Впоследствии гипотеза подтвердилась, а именно шифрование выполнено алгоритмом RC6 с длиной блока 16 байт, причем применяется он «влоб», по блок-схеме. Авторы реализации даже не озаботились о шифровании неполных блоков, менее 16 байт, оставив их как есть, незашифрованными.

Итак, алгоритм известен. Осталось дело за малым: найти ключ.

Этап 2. Поиск ключа

Для поиска ключа найдем сначала тело вредоносной программы (или то, что от этого тела осталось). В каталоге %SYSTEMROOT%\System32 находим 2 «лишних» exe-файла: system.exe и еще один исполняемый файл с рандомным именем (H3w2DWg.exe). Оба файла являются частью заразившего систему троянца, однако ни один из файлов на момент обнаружения (апрель 2012 года) не опознавался антивирусами как вредоносный. На данный момент некоторые антивирусы опознают троянскую программу верно как Trojan.Encoder.136 (DrWeb) или как Win32/Filecoder.AF (ESET-NOD32), однако большинство антивирусов в лучшем случае думают что это просто слегка подозрительный файл. Вот ссылка на virustotal.

Раз троянец не опознается антивирусами, придется препарировать его самому. Вооружившись hiew32, OllyDbg и виртуальной машиной, приступил к вскрытию. Вскрытие показало, что файлы троянца не упакованы, не зашифрованы и написаны на Borland Delphi. Внутри также были обнаружены ссылки на зашифрованные файлы account.cfg, config.cfg и lock.cfg, лежащие также в %SYSTEMROOT%\System32. Путем отладки в недрах exe-файлов также был найден некий ключ в виде строки символов «1kv9yha029v9vi71xioa7h812ga811n9» длиной 32. С помощью этого ключа троянец расшифровывал файл lock.cfg.
Осталось понять каким образом данная строка преобразуется в ключ RC6. Длина ключа RC6 – от 128 бит и больше. В качестве первой попытки попробуем преобразовать каждый символ в 8-битное представление через ASCII-код. В результате получаем ключ длины 32*8=256 бит. Пишем программу на С++, подаем программе на вход ключ и файл lock.cfg. Запускаем процесс расшифровки. Неудача. Файл не расшифровался.

Какие остались варианты? Самый долгий и кропотливый – выдернуть алгоритм формирования ключа отладчиком из исполняемого файла. Оставил этот вариант на крайний случай из-за его избыточной трудоемкости. Вместо этого немного подумаем и поставим себя на место создателей вредоносной программы. Вряд ли авторы трояна самостоятельно реализовывали алгоритм шифрования. С большой вероятностью готовая реализация алгоритма на дельфи была скачана из интернета. Также вряд ли использовались готовые скомпилированные библиотеки, в них криптоалгоритм был бы реализован гораздо качественнее и уж точно не оставлял бы незашифрованными блоки менее 16 байт. Делаем вывод, что в троянце скорее всего использовалась студенческая учебная программа, исходники которой злоумышленники стащили из интернета.

Залазим в Гугль и ищем что-нибудь по ключевым словам Delphi RC6. Находим ссылку http://www.delphi-club.ru/delphi/rc6_encryption.html. Так и есть, модуль на Дельфи, который шифрует файл блоками без гаммирования и оставляет незашифрованным последний блок длиной менее 16 байт. Берем из реализации особенности формирования ключа, переписываем их на С++, компилируем программу расшифровки. Скармливаем программе 32-символьный ключ, пытаемся расшифровать файл lock.cfg. Опять неудача.

Остался вариант с OllyDbg и телом троянца. Не буду утомлять подробностями получения секретного алгоритма, по которому формировался ключ, тем более что сама процедура заняла не так уж много времени. Секрет был прост. Строка символов с ключом считывалась из ресурсов файла в кодировке ASCII (32 символа=32 байта), затем (видимо самим Delphi) преобразовывалась в UTF-16LE – получалось 64 байта (на практике байты просто разбавлялись нулями). И этот результат уже скармливался известному, благодаря исходникам на дельфи, алгоритму получения ключа. Длина ключа на выходе — 512 бит.

Полученным ключом файл lock.cfg был успешно расшифрован. Внутри файла обнаружился ключ к файлам config.cfg и account.cfg, а также список доменных имен сайтов для блокировки через файл hosts и список «вредных» по мнению троянца процессов (антивирусы, файрволлы) – тоже, вероятно, для блокировки.

Файл account.cfg содержал пару дополнительных ключей (в том же формате строки из 32 символов), номер счета на ДеньгиMail.ru, чей-то e-mail адрес, сведения о зараженном компьютере и еще какую-то мелкую информацию. В файле config.cfg, помимо всего прочего, был ip-адрес компьютера, который, по всем признакам, являлся управляющим сервером вредоносной программы.

Однако, как это ни печально, ни один из найденных в файлах ключей не подходил для расшифровки файлов на дисках зараженного компьютера. Еще одно утверждение злоумышленников оказалось правдой: ключ для расшифровки файлов действительно не хранится на компьютере. Осталась последняя надежда – вытрясти ключ из управляющего сервера вредоносной программы. Согласно сообщению от авторов троянца, ключ хранится там в течение 7 дней, именно в этот срок его нужно добыть, иначе расшифровать файлы не получится – подбор 32-символьного ключа из комбинации цифр и латинских букв верхнего и нижнего регистра займет десятилетия, а файлы с ценными документами нужны срочно.

Этап 3. В центр управления за ключом

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

На виртуальную машину была установлена чистая операционная система, на основной машине запущен WireShark, на виртуальной – троянец. Выяснилось, что для связи используется незашифрованное соединение через TCP-порт 80. При первичном заражении на сервер уходят данные компьютера (ОС, процессор, память), а с сервера скачиваются дополнительные модули троянца, а также dll-файлы библиотеки SSLeay, которые затем используются для работы с сайтом ДеньгиMail.ru.

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

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

Обмен с управляющим сервером ведется в формате: «команда клиента – ответ сервера». Покопавшись в недрах вредоносной программы, вытащил список допустимых команд: mail, rekey, key, check_pay, get_masks, ssl, winlock и много других. Из WireShark’а узнал формат клиентских команд и параметров. Настало время экспериментов. Зайдя на сервер с помощью telnet и представившись зараженным компьютером (команда client_info с параметром в виде ключа), ввел команду key, в ответ на которую получил готовый ключ для расшифровки файлов.

В итоге дописал программу на С++, расшифровывающую все файлы на диске. Клиент получил обратно все свои файлы и рабочий стол впридачу.

Заключение

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

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

По материалам публикаций в сети Интернет

12 мая 2012 года. Открытие дворца спорта "ОЛИМП"

Телесюжеты

Ремонт дорог
сюжет ТРК "Крылья" 20.04.2012
Снегопад в Обнинске
сюжет ТРК "Крылья" 05.04.2012
О работе коммунальных служб города
сюжет ТРК "Крылья" 29.11.2012г

Ямочный каталог

Опубликовано: 14 апреля 2012 газета " НГ- Регион"
№ 14 (953) от 13.04.2012

В ближайшие дни на сайте администрации города заработает электронная карта аварийно-опасных ям с графиком их устранения.

На самом деле и без карты ясно: дороги в городе убиты напрочь. И ладно бы, из-под снега вылезли «некомфортные для езды» ямки — весной это не редкость, такие еще можно пережить, каждый год их заливают литым асфальтом. Дело хуже: в городе образовалось огромное количество объективно аварийно-опасных ям, где, по выражению замглавы администрации Владислава Шапши, «можно оставить не только колеса, но и всю подвеску».

Как отмечают в МПКХ, предъявлять претензии к качеству ремонта городских дорог в этом году уже некому: нынешней весной разом закончилась гарантия на большинство проездов. Лишь по отдельным «кусочкам», которые ремонтировались недавно (северный въезд, ул. Кабицынская, ул. Белкинская) подрядной организации уже выставлены гарантийные претензии, дефекты будут устранены. Что же до остальных ям — их город будет ликвидировать своими силами.

По словам руководителя МПКХ Сергея Клименко, на сегодняшний день в Обнинске ликвидировано 1 тыс. кв. м ям — в два с половиной раза больше обычного, и это еще не конец: дороги разрушаются на глазах. «Водители города справедливо жалуются: внутри и вокруг отфрезерованных ям скапливаются лужи, люди даже не видят, куда они едут, — отметил на административной планерке Владислав Шапша. — Места ремонтных работ никак не отмечены, это надо срочно исправлять».

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

Кроме того, Владислав Шапша предложил установить за дорогами города народный контроль: выложить в Интернете электронную карту дорог с указанием наиболее опасных ям, их «адресами», и чтобы горожане сами могли бы добавлять туда «свои» ямы — если вдруг коммунальные службы их пропустят. Но самое главное — у каждой «электронной ямы» должен быть указан срок устранения, чтобы люди могли проконтролировать процесс и знать, в какой последовательности будут ремонтироваться те или иные участки. По задумке городских властей, «электронный каталог ям» должен заработать на портале администрации Обнинска по адресу www.admobninsk.ru уже в ближайшее время.

Ремонтно-транспортная служба

Начальник – Анатолий Васильевич Пронин

тел. +7 484 39 63802 из города: 6-38-02

E-mail: pronin@mpkh.ru

 

Обязанности: подготовка и ремонт техники, закупка новой техники и механизмов Для того, чтобы автомобили и вся специальная техника были в исправном состоянии, на предприятии создана ремонтно-транспортная служба.

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

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

Благодаря умению сотрудников ремонтно-транспортной службы МПКХ вошло в экспериментальную программу минэкономразвития России по утилизации автомобилей. В 2011 году было утилизовано порядка ста старых машин.

Служба ливневой канализации

Начальник – Козлов Игорь Александрович

тел. +7 484 39 63802 из города: 6-38-02

E-mail:

Обязанности: содержание 46,7 км сетей ливневой канализации, 1559 дождеприемных и смотровых колодцев, 15,8 км водоотводных канав, 2 городских фонтана Ливневая канализация – одна из важнейших составляющих инженерной инфраструктуры города. Как бы ни критиковали жители города ее функциональность, стоит отдать должное – она работает. Да, есть «слабые» места, из-за чего после мощных летних ливней, образуются на дорогах лужи – и то на короткое время. Но и есть понимание этой проблемы и самоотверженная работа по ее решению. Одна из самых важных задач сегодняшнего дня для МПКХ - инструментальная проверка состояния ливневой канализации, чтобы в будущем приступить к ее реконструкции. Мониторинг осуществляется с помощью самоходных телевизионных камер, которые показывают состояние труб ливневой канализации изнутри. Такая мера помогает точно определить места замены или промывки трубопроводов. За последнее время обследовано и промыто более 6 км труб ливневой канализации на ул. Гагарина, Белкинской, Гурьянова, Калужской, Королева и Красных Зорь. Для этой цели используется специальная гидродинамическая каналопромывочная машина. Еще в будущем планируется на выходах «ливневки» установить очистные сооружения – сейчас большинство стоков попадает в Протву неочищенными. В МПКХ заботятся об улучшении экологической ситуации, и принимают соответствующие меры.

Страницы

Подписка на Коммунальное хозяйство RSS


Main menu 2

about seo