Операция «Kimsuky»: северокорейская разведдеятельность?

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

Тем не менее, мы обратили внимание на некоторые моменты:

  • Публичный почтовый сервер в данном случае был болгарским — mail.bg.
  • Строка пути компиляции содержала корейские иероглифы.

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

D:\rsh\공격\UAC_dll(완성)\Release\test.pdb

Судя по всему, «rsh» — это сокращение от «Remote Shell» («Удаленная Командная Оболочка», частое обозначение бэкдора вообще), а корейские слова можно перевести на русский язык как «атака» и «финал»:

D:\rsh\АТАКА\UAC_dll(ФИНАЛ)\Release\test.pdb

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

Институт Седжон (Sejong Institute)

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

Корейский институт оборонных исследований (KIDA)

KIDA — крупный исследовательский комплекс, который занимается изучением широкого спектра вопросов, связанных с обороной. В состав KIDA входят семь исследовательских центров: Центр безопасности и стратегии; Центр военного планирования, Центр развития человеческих ресурсов; Центр управления ресурсами; Центр исследования систем вооружения; Центр информатики, а также Центр моделирования. Кроме того, KIDA включает группу IT-консалтинга и различные вспомогательные подразделения. Заявленная миссия KIDA — содействие формированию рациональной оборонной политики путем интенсивного систематического исследования и анализа проблем обороны.

Министерство объединения Корейского полуострова

Министерство объединения — исполнительный орган южнокорейского правительства, отвечающий за действия, направленные на воссоединение Кореи. Его основными функциями являются: формирование политики по Северной Корее, координация межкорейского диалога, укрепление межкорейского сотрудничества и информирование общественности.

Hyundai Merchant Marine

Hyundai Merchant Marine — южнокорейская логистическая компания, осуществляющая контейнерные перевозки по всему миру.

Есть основания полагать, что компьютеры, принадлежащие организации «The supporters of Korean Unification» («Сторонники объединения Кореи», http://www.unihope.kr/), также были атакуемы. Среди организаций, которых мы обнаружили, 11 находятся в Южной Корее, и 2 — в Китае.

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

Заражение системы

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

При работе в Windows 7 вредоносная библиотека использует открытый исходный код Win7Elevate из Metasploit Framework для внедрения вредоносного кода в процесс explorer.exe. В любом случае — будь то Windows 7 или другая ОС — этот вредоносный код извлекает свою шпионскую библиотеку из ресурсов, расшифровывает ее и сохраняет на диске с на первый взгляд случайным, но на деле жестко запрограммированным именем — например, ~DFE8B437DD7C417A6D.TMP — во временной папке пользователя, и загружает этот файл как библиотеку.

Последняя копирует себя в каталог System32 в папке Windows под жестко запрограммированным именем — KBDLV2.DLL или AUTO.DLL, в зависимости от вредоносного образца. Затем создается Windows-служба, связанная с вредоносной библиотекой. Имена служб также могут различаться в зависимости от версии вредоносного ПО. Нами были обнаружены следующие имена: DriverManage, WebService и WebClientManager. Эти функции обеспечивают работу вредоносного ПО в зараженной ОС между ее перезагрузками.

На этом этапе вредоносная программа собирает информацию о зараженном компьютере. В частности, результат выполнения команды systemInfo сохраняется в файле oledvbs.inc по зашитому пути C:\Program Files\Common Files\System\Ole DB\oledvbs.inc. Вызывается также еще одна функция — зловред создает строку, содержащую имена компьютера и пользователя, но она нигде не используется. Судя по всему, это ошибка создателей вредоносной программы. Далее мы доберемся до функции, в которой подобная строка имела бы смысл, однако вредоносная программа не находит эти данные там, где они, по идее, должны быть размещены. Эти шаги выполняются только при первом запуске зловреда в зараженной системе. Далее при запуске системы вредоносная библиотека уже выполняет шпионские функции, предварительно убедившись, что она загружена системным процессом svchost.exe.

Шпионские модули

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

  • Перехват нажатий клавиш
  • Сбор списка файлов на дисках
  • Кража HWP-документов
  • Загрузка и запуск средства удаленного управления
  • Удаленный доступ

Отключение сетевого экрана

При запуске системы основная библиотека отключает системный сетевой экран, а также сетевой экран AhnLab (южнокорейский производитель защитных решений), обнуляя соответствующие значения в реестре:

Также она отключает службу «Центр обеспечения безопасности», чтобы пользователь не получал сообщений об отключении сетевого экрана.

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

Отключив сетевой экран AhnLab, зловред проверяет, находится ли исполняемый файл taskmgr.exe в папке C:\WINDOWS\ , путь к которому жестко запрограммирован. Если файл присутствует, вредоносная программа запускает его. Затем зловред каждые 30 минут соединяется с сервером, чтобы сообщить о своем присутствии в системе, и ожидает ответа от оператора.

Обмен данными

Обмен данными между ботом и оператором осуществляется через болгарский бесплатный почтовый сервер (mail.bg). Бот использует жестко запрограммированные учетные данные для доступа к своему почтовому аккаунту. После аутентификации вредоносная программа отправляет сообщения на заданный адрес электронной почты и читает входящие сообщения. Все эти действия осуществляются через веб-интерфейс mail.bg с использованием системного API библиотеки Wininet. Из всех образцов, которые нам удалось получить, мы извлекли следующие учетные записи электронной почты, используемые в ходе этой кампании:

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

Регулярная отправка отчетов

Чтобы сообщить о текущем состоянии заражения, вредоносная программа считывает данные из файла C:\Program Files\Common Files\System\Ole DB\oledvbs.inc, который содержит результаты выполнения команды systeminfo. Если файл существует, он удаляется после прочтения.

Затем он должен считывать пользовательскую информацию из файла sqlxmlx.inc все из той же папки (в этой части кода имеются комментарии со словом “UserID”). Но в системе такого файла не будет. Как вы помните, имеется функция, предназначенная для сбора этих данных, которые и должны были бы сохраниться в файл sqlxmlx.inc. Но пользовательская информация, собранная при первом запуске, сохраняется в файл xmlrwbin.inc. Судя по всему, вирусописатель ошибочно запрограммировал бот сохранять пользовательскую информацию не в тот файл. Однако ошибочный код все же мог бы выполнить свою задачу — пользовательская информация могла бы попасть в массив предназначенных для отправки данных. Но не в этот раз — на момент записи пользовательской информации в файл, переменная, содержащая имя файла xmlrwbin.inc, еще не инициализирована, что приводит к ошибке записи данных. Таким образом, sqlxmlx.inc, предназначенный для хранения пользовательской информации, не создается. Такая небрежность может указывать на то, что зловред был написан в спешке или же создан начинающим вирусописателем.

Затем из файла считываются перехваченные нажатия клавиш и отсылаются «хозяину». Нажатия клавиш перехватываются и сохраняются в файле в обычном для таких случаев формате — имена окон, в которых вводились символы, и сама последовательность ввода данных с клавиатуры. Эти данные находятся в файле C:\Program Files\Common Files\System\Ole DB\msolui80.inc, созданном внешним кейлоггер-модулем.

Все эти данные объединяются в одном файле xmlrwbin.inc, который затем шифруется с помощью алгоритма RC4. В качестве ключа RC4 используется MD5-хеш случайным образом сгенерированного буфера размером 117 байт. Очевидно, что для расшифровки данных злоумышленнику должен быть известен либо MD5-хеш, либо все содержимое буфера. Эти данные также отсылаются, но шифруются при помощи алгоритма RSA. Зловред создает 1120-битный открытый ключ и использует его для шифрования 117-байтного буфера. Затем вредоносная программа совмещает зашифрованный буфер, но округленный по размеру до 128-ми байт, и зашифрованные алгоритмом RC4 собранные данные и сохраняет в папке C:\Program Files\Common Files\System\Ole DB\ в файл, который получает имя следующего вида:

“<дата_время>_<аккаунт болгарского почтового сервиса>.txt”, например, “08191757_beautifl@mail.bg.txt”.

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

Получение информации от «хозяина»

Вредоносное ПО также получает инструкции через почтовый сервис. Во входящей почте на своем болгарском почтовом аккаунте оно ищет сообщения с определенной строкой в поле «Тема». Мы идентифицировали несколько таких строк: Down_0, Down_1, Happy_0, Happy_2 и ddd_3. Обнаружив сообщение с такой темой, содержащее вложение, вредоносная программа загружает это вложение и сохраняет его под именем msdaipp.cnt в папку C:\Program Files\Common Files\System\Ole DB\. Это дает злоумышленнику возможность отправлять на зараженный компьютер дополнительные исполняемые файлы. Во вложение эти файлы зашифрованы с помощью алгоритма RC4. Ключ для расшифровки жестко запрограммирован во вредоносных образцах. Интересно, что для генерации RC4-ключа во всех известных образцах используется одна и та же строка “rsh!@!#”. Вредоносная программа вычисляет MD5 этой строки и использует хеш в качестве RC4-ключа для расшифровки исполняемого файла. Затем расшифрованный исполняемый файл сохраняется на диске под именем sqlsoldb.exe и запускается, после чего переносится в каталог C:\Windows под именем taskmgr.exe. После этого исходное электронное сообщение с вложением удаляется из папки «Входящие» на болгарском почтовом сервере.

Кейлоггеры

Внешний кейлоггер-модуль — не очень сложный — он просто перехватывает нажатия на клавиши и записывает их в файл C:\Program Files\Common Files\System\Ole DB\msolui80.inc . Он также регистрирует имя активного окна, в котором пользователь вводит данные с клавиатуры. Такой же формат ведения журнала нажатий клавиш использовался вредоносной программой Madi. Есть еще вариант кейлоггера, который записывает нажатия клавиш в файл C:\WINDOWS\setup.log .

Составление списка всех файлов

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

dir <drive letter>: /a /s /t /-c

На практике эта команда записывается в файл C:\WINDOWS\msdatt.bat и исполняется, а выходные данные этого пакетного файла перенаправляются в файл C:\WINDOWS\msdatl3.inc . В результате последний содержит список всех файлов во всех папках на диске. Вредоносная программа впоследствии читает эти данные и дописывает их в файл C:\Program Files\Common Files\System\Ole DB\oledvbs.inc . К этому времени файл oledvbs.inc уже содержит результаты выполнения команды systeminfo .

Что интересно, один из образцов такой вредоносной программы по сбору списка файлов был сам заражен давно известным вирусом китайского происхождения «Viking». Различные модификации этого вируса блуждали по просторам компьютерного мира годами, но вряд ли авторы или пользователи этого зловреда ожидали заразить тайную программу в составе целевой кибер-атаки. Что касается самих атакующих, то для них это — большой провал. Мало того, что изначальная программа-шпион, несущая в себе помимо прочего код давно известного вируса, становилась гораздо более узнаваемой антивирусами, что повышало вероятность раскрытия тайной операции на стороне жертвы, так еще и о самой, предполагаемо тайной, кампании могли узнать сторонние кибер-преступники. Но, судя по всему, атакующие заметили нежелательное дополнение к своему вредоносу и избавились от заражения, так что это был только один образец, инфицированный вирусом “Viking”.

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

Модуль для кражи HWP-документов

Этот модуль перехватывает HWP-документы на зараженном компьютере. Формат файлов HWP похож на формат документов Microsoft Word, но используется южнокорейским текстовым редактором Hangul из пакета Hancom Office. Hancom Office популярен в Южной Корее. Данный вредоносный модуль работает независимо от других и имеет собственный аккаунт в болгарском почтовом сервисе. Данные учетной записи жестко прописаны в модуле вместе с адресом электронной почты «хозяина», на который отправляются перехваченные документы. Интересно, что модуль не ищет все HWP-файлы на зараженном компьютере, а крадет только HWP-документы, открываемые пользователем. Такое поведение очень необычно для компонента, предназначенного для хищения документов. Мы не встречали ничего подобного при анализе других вредоносных модулей.

Программа копирует себя под именем <Полный путь к папке Hangul>\HncReporter.exe и меняет в реестре значения, определяющие программу, ассоциируемую с открытием HWP-файлов. Изменению подвергаются значения реестра:

По умолчанию в реестре определено значение «<Полный путь к папке Hangul>\Hwp.exe >» «% 1» , ассоциирующий Hangul-приложение Hwp.exe с HWP-документами. Но вредоносная программа заменяет эту строку на “<Полный путь к папке Hangul>\HncReporter.exe» «%1» . Таким образом, когда пользователь пытается открыть HWP-документ, это приводит к запуску вредоносной программы. Открываемый HWP-документ считывается вредоносной программой и передается злоумышленникам в виде вложения в электронном сообщении с темой «Hwp» . После отправки вредоносная программа открывает HWP-документ в исходном Hangul-приложении — текстовом редакторе Hwp.exe , как и хотел пользователь. Таким образом, жертва, скорее всего, не заметит кражи HWP-файла. Во время процедуры пересылки краденных документов, вредоносная программа работает со следующими файлам в папке C:\Program Files\Common Files\System\Ole DB: xmlrwbin.inc, msdaipp.cnt, msdapml.cnt, msdaerr.cnt, msdmeng.cnt и oledjvs.inc .

Загрузчик модуля удаленного управления

В арсенале атакующих также была обнаружена отдельная программа для загрузки вложений из писем с определенной строкой в поле «Тема». Эта программа похожа на основной опорный модуль, но с усеченным функционалом. Она авторизуется в жестко прописанном аккаунте на болгарском почтовом сервисе и ищет входящие письма с темой “Team” . Обнаружив такое сообщение, она загружает из него вложение, сохраняет его на жестком диске как C:\Program Files\Common Files\System\Ole DB\taskmgr.exe и исполняет. Исполняемый файл приходит таким образом в незашифрованном виде.

Модуль удаленного управления

Интересно также, что в рамках данной кампании вирусописатели не создавали специальный бэкдор. Вместо этого они изменили версию 5.0.9104 клиента TeamViewer. В состав исполняемого файла, рассылаемого злоумышленниками в электронных сообщениях, относящихся к модулю удаленного управления, входят три исполняемых файла. Два из них — компоненты Team Viewer, а третий является в некотором роде загрузчиком бэкдора. Таким образом, дроппер создает в директории C:\Windows\System32 три файла:

и создает службу Remote Access Service, настроенную на запуск файла C:\Windows\System32\vcmon.exe при загрузке системы. Каждый раз, когда выполняется файл vcmon.exe, он отключает сетевой экран AhnLab, обнуляя следующие ключи реестра:

Затем он изменяет значения в реестре, относящиеся к Team Viewer. Как мы уже говорили, компоненты Team Viewer, используемые в рамках этой кампании, не являются оригинальными. Они слегка модифицированы. Мы обнаружили два варианта измененных версий. Вирусописатели заменили все вхождения строки «Teamviewer» в компонентах этого средства удаленного управления: в первом случае на «Goldstager» , во втором — на «Coinstager» . Пути реестра для клиента TeamViewer при этом изменились на HKLM\Software\Goldstager\Version5 и HKLM\Software\Coinstager\Version5 соответственно. Запускающий модуль определяет значения нескольких ключей реестра, которые управляют работой средства удаленного доступа. Один из них — SecurityPasswordAES. Значение этого ключа представляет собой хеш пароля, с помощью которого злоумышленник удаленно подключается к клиенту Team Viewer. Таким образом, киберпреступники задают хеш известного им пароля, что дает им возможность успешной аутентификации для удаленного управления. После этого запускающий модуль исполняет файл netsvcs.exe — собственно сам клиент Team Viewer.

Кто такой Ким?

Интересно, что адреса электронной почты iop110112@hotmail.com и rsh1213@hotmail.com, на которые отправляются похищенные данные, зарегистрированы под следующими именами, содержащими строку «kim»: kimsukyang и Kim asdfa.

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

С другой стороны, не так уж трудно ввести фальшивые регистрационные данные и направить расследование по очевидному на первый взгляд северокорейскому следу. Ничего не стоит состряпать поддельные регистрационные данные и ввести kimsukyang при регистрации на Hotmail. Мы признаем, что эти регистрационные данные не могут рассматриваться как достоверные сведения о злоумышленниках.

Однако IP-адреса атакующих дают дополнительные улики. Во время нашего исследования мы обнаружили 10 IP-адресов, используемых людьми, стоящими за операцией “Kimsuky”. Все они значатся за сетями китайских провинций Гирин или Ляонин, граничащих с Северной Кореей.

Других IP-адресов, которые были бы связаны с деятельностью злоумышленников и находились в других IP-диапазонах, мы не обнаружили. По различным данным, поставщики услуг, предоставляющие доступ в Интернет в этих провинциях, также имеют проложенную сеть в некоторых регионах Северной Кореи. Наконец, географическое расположение IP-адресов говорит в пользу возможной теории о том, что люди, проводящие операцию “Kimsuky” базируются в Северной Корее.

Приложение

Файлы, с которыми работают вредоносные программы:

MD5 вредоносных файлов:

Названия служб, создаваемых вредоносными программами:

Мы детектируем эти угрозы как Trojan.Win32.Kimsuky, за исключением модифицированных компонентов клиента Team Viewer, которые детектируются как Trojan.Win32.Patched.ps.

Related Articles

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *