Pull to refresh
0

Анализ банковского трояна Win32/Corkow

Reading time 10 min
Views 30K
Ранее мы писали про сложный банковский вредоносный инструмент Win32/Corkow, который используется злоумышленниками для кражи данных онлайн-банкинга. Это вредоносное ПО находилось в активной эксплуатации начиная с 2011 г. и продемонстрировало непрерывную активность в прошлом году, заражая тысячи пользователей. Были обнаружены различные версии модулей Win32/Corkow, что также указывает на непрерывный цикл разработки этого инструмента.



Злоумышленники использовали типичный метод распространения вредоносного кода через drive-by download. Мы указывали его в нашем отчете за 2013 г. и упоминали, что он является самым распространенным способом доставки вредоносного кода, который используется злоумышленниками на сегодняшний день. Случай с Win32/Corkow лишь подтверждает эти данные. В этом посте мы опубликуем технические подробности анализа этой вредоносной программы, укажем банки, на которые нацелен Win32/Corkow, а также опишем другие его возможности, которые не упоминались в первом посте.

Общие сведения

Как и в случае с другими банковскими троянскими программами, например, Win32/Spy.Hesperbot, Win32/Corkow состоит из основного модуля и нескольких плагинов, которые реализуют соответствующие возможности. Каждый такой плагин или модуль выполнен в виде DLL-библиотеки. На самом деле большинство других плагинов внедрены в основную DLL, другие же загружаются с управляющего C&C-сервера. В любом случае, эта основная DLL будет инжектировать другие модули в процессы, работающие в системе. Ниже в таблице представлены различные модули, которые мы видели во всех проанализированных образцах Win32/Corkow. Обратите внимание, что не все семплы вредоносной программы содержат каждый из этих модулей.



Несмотря на то, что основной модуль «Core DLL» отвечает за запуск других модулей на исполнение и загрузку конфигурационных данных с C&C, каждый из таких модулей содержит свой список C&C-серверов для загрузки туда данных напрямую.

Как можно увидеть в таблице выше, вредоносный код Win32/Corkow содержит возможности, которые являются типичными для банковских троянских программ, в том числе, кейлоггер, модуль снятия скриншотов и граббер данных веб-форм для кражи аутентификационных данных онлайн-банкинга. Тем не менее три последних модуля реализуют функции, которые можно не часто встретить в банковских троянских программах. Win32/Corkow использует два отдельных модуля для компрометации приложения ДБО iBank2 и приложения Сбербанка, которое используется для доступа к своему счету корпоративными пользователями. Последний модуль DC используется для поиска индикаторов активности пользователя по отношению к следующим типам информации:

  • приложениям трейдинговых платформ;
  • сайтов трейдинговых платформ (история браузера);
  • отдельных банковских приложений;
  • банковских сайтов (история браузера);
  • сайтов Bitcoin;
  • средства разработки приложений Android.

Инсталляция

Win32/Corkow имеет интересную и относительно сложную процедуру установки. Троян обычно поставляется жертве в виде исполняемого файла дроппера, который содержит основную Core DLL в секции ресурсов.


Рис. Установка дроппера в систему.

Когда дроппер запускается на исполнение, он устанавливает себя в систему используя следующие шаги:

  1. Расшифровывает находящуюся в секции ресурсов основную DLL и исполняет ее через вызов функции DllMain, передавая ей один из путей в качестве аргумента. Этот путь определяет каким образом и в какое расположение на томе троян должен быть установлен. Выбранный путь зависит от того, под какой учетной записью был запущен дроппер, обычного пользователя или администратора. Возможные пути установки указаны в таблице ниже.
  2. Когда код основной DLL запущен на исполнение, он выполняет поиск системного файла для заражения. Для этого Corkow ищет по определенному критерию легитимную DLL-библиотеку из директории %SystemRoot%\System32. Критерий поиска включает в себя незащищенность (SfcIsFileProtected) искомой библиотеки и некоторые конкретные имена файлов, а также отсутствие определенных импортов у DLL.
  3. Далее вредоносный код заражает выбранную DLL путем шифрования своего тела и записывая эти зашифрованные данные в секцию ресурсов выбранной DLL. Функция (заглушка) расшифровки тела также записывается в файл и ее адрес добавляется в таблицу экспортов. Имя этого экспорта также зависит от пути установки.
  4. Зараженная DLL сохраняется по выбранному пути установки. Заметьте, что оригинальная DLL в директории system32 остается неизменной.
  5. Вредоносный код устанавливает соответствующий раздел реестра для обеспечения выживаемости кода после перезагрузки. Раздел реестра также зависит от пути установки, которые перечислены ниже в таблице.



Возможные пути установки вредоносного кода.

Существует множество способов загрузки DLL библиотеки в ОС и Win32/Corkow может использовать один из трех способов, описанных выше. Каждый из этих способов загружает DLL через вызов экспорта с разными именами. Все эти имена принадлежат функции, которая расшифровывает основное тело вредоносного кода из секции ресурсов.

Как мы указали выше, основная DLL Corkow записывается в секцию ресурсов оригинальной системной DLL в зашифрованном виде, кроме этого к ней применяется сжатие aPLib. Для шифрования используется XOR с ключом, который формируется из данных Volume Serial Number диска C: с использованием алгоритма multiply-with-carry. После установки зараженная Corkow библиотека привязывается к зараженному компьютеру и не может быть запущена на другом компьютере. Таким образом вредоносный код защищает себя от анализа со стороны вирусных аналитиков.

Core DLL и работа с C&C

Основной модуль Win32/Corkow отвечает за извлечение других своих модулей и внедрение их в соответствующие процессы, а также работу с C&C-сервером. Вредоносный код содержит список URL-адресов, с которыми он пытается связаться. Начальный HTTP-запрос, который отправляется на сервер, содержит основную информацию о системе, версии определенных модулей и идентификатор бота Bot ID. На этом же этапе выбирается ключ для шифрования последующих сообщений с сервером, который основан на доменном имени C&C и Bot ID. Затем сервер отвечает с использованием одной или нескольких команд. Ниже перечислены такие команды.

  • Перезагрузить систему.
  • Загрузить и выполнить исполняемый файл или DLL.
  • Обновить бот.
  • Скачать файл конфигурации для отдельных модулей.
  • Уничтожить произвольный файл на диске (перезаписывая его произвольными данными).
  • Удалить себя из системы (с возможностью выведения системы из строя, т. е. нарушив ее работу).

Последние две команды указывают на то, что помимо кражи данных, Win32/Corkow может вызвать серьезные повреждения в ОС. Когда сервер посылает боту команду на удаление себя из системы, он может передать специальный параметр, который укажет боту, что в системе нужно удалить критический системный файл и перезаписать MBR или NTFS MFT произвольными данными. После таких операций система становится незагружаемой.

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

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

Компрометация отдельных банковских приложений

Мы уже писали, что Corkow нацелен на компрометацию системы ДБО iBank2. iBank2 представляет из себя приложение на Java, в свою очередь, вредоносный код пытается получить доступ к данным системы этой системы онлайн-банкинга через внедрение собственного вредоносного Java-класса в виртуальную машину Java, в контексте которой работает iBank2. Для выполнения этой задачи, Corkow внедряет модуль IB2 (см. выше) в каждый созданный процесс Java (java.exe или javaw.exe).


Рис. Вредоносный код Corkow, который выполняет внедрение себя в созданные процессы виртуальной машины Java (JVM).

Внедренный код, в дальнейшем, использует функции Java Native Interface (JNI) для выполнения необходимых операций: получение указателя на работающую JVM, внедрение в нее и загрузку вредоносного Java-класса. На рисунке ниже показана часть декомпилированного Java класса. Этот класс содержит методы для получения текущего баланса банковского счета жертвы, код снятия скриншотов рабочего стола и код копирования файлов ключа, который используется для аутентификации пользователя в системе онлайн-банкинга.


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

Описанный метод внедрения кода Java не опирается на какую-либо уязвимость в приложении iBank2. Мы наблюдали и другие банковские трояны, которые нацелены на компрометацию этой ДБО, например, Win32/Spy.Ranbyus и Win32/Carberp, оба используют различные методы для достижения своей цели. Модуль SBRF используется для компрометации банковского приложения Сбербанка (платформа Win32). Как и модуль, ориентированный на IBank2, код SBRF умеет создавать скриншоты и красть файлы ключа, которые используются для аутентификации клиента.

Модуль DC

Данный модуль опознает активность пользователя через поиск следующей информации.

  • Запущенные процессы.
  • История браузера – для получения доступа к истории посещенных веб-ресурсов браузеров Internet Explorer, Mozilla Firefox, Google Chrome и Safari, Corkow запускает стороннее приложение BrowsingHistoryView. В случае с браузером Opera файл с историей открывается напрямую.
  • Установленные приложения – через перечисление файлов в соответствующих директориях установленных приложений.
  • Последние использованные приложения – через перечисление соответствующих разделов реестра.

Интересен тот факт, что вредоносный код не посылает полные результаты поиска на удаленный сервер. Вместо этого он анализирует полученные данные и пытается найти определенные строки, которые могли бы идентифицировать приложение для работы с финансами. Проанализированный образец Corkow содержит строки, относящиеся к банковской и трейдинговой платформам, а также к цифровым валютам (включая веб-сайты и ПО, относящееся к Bitcoin), различным платежным системам и идентификация возможной активности разработчика для Google Play (Google Play developer activity).


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

Можно увидеть, что кроме ПО и веб-сайтов, ориентированных на российские и украинские банки, в списке присутствует широкий спектр банков из Швейцарии, Сингапура, Латвии, Литвы, Эстонии, Дании, Хорватии, Великобритании, Австрии и Кипра (включая некоторые банки, которые уже не работают).

Заключение

Вредоносная программа Win32/Corkow является примером того, как злоумышленники могут использовать в своих целях утекшие исходные тексты Carberp. В ходе анализа Corkow довольно легко обнаружить различные стили программирования, в частности, те части кода, которые были написаны самими авторами вредоносной программы или те, которые были скопированы из других вредоносных программ. Несмотря на то, что Corkow может быть технически менее сложным, чем некоторые другие вредоносные программы, которые мы анализировали прежде, он содержит все необходимые возможности для кражи конфиденциальных данных пользователя.

Преступники, которые оперируют ботнетом Corkow, по-видимому, имеют хорошо продуманный план действий, уделяя при этом особое внимание пользователям систем онлайн-банкинга. Мы можем подтвердить, что жертвами этого вредоносного кода уже стали несколько тысяч пользователей в России и Украине в 2013 г.

Предотвращение заражения

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

  • Используйте в работе Windows 7+ x64. 64-битные up-to-date версии Windows начиная с Windows 7 гораздо менее чувствительны к основному вектору заражения drive-by download (удаленное исполнение кода), так как содержат специальные технологии для защиты от эксплуатации.
  • Регулярно обновляйте свою ОС (включено по умолчанию) и ПО. Microsoft регулярно обновляет системные библиотеки своих программ, включая для них поддержку ASLR. Некоторые drive-by download эксплойты используют преимущество неперемещаемых ASLR модулей (напр. некоторые версии .NET Framework, Office) для создания стабильных цепочек ROP, которые могут быть использованы для обхода DEP в рамках одной или нескольких версий Windows/Office. Регулярные обновления позволят защититься от многих эксплойтов, в т. ч. и таких.
  • Используйте преимущества Admin Approval Mode и ни в коем случае не отключайте UAC, а также не работайте под встроенной учетной записью Администратора (когда UAC бессилен). При включенном UAC Windows генерирует вспомогательный маркер доступа для учетной записи пользователя, которая входит в группу администраторов. Этот дополнительный маркер используется для представления пользователя в системе и содержит отключенную группу Администратора (Deny SID), что позволяет вам одобрять или запрещать действия, вносимые программами, которые требуют прав администратора. Вредоносные программы содержат LPE-эксплойты для обхода UAC или установки кода режима ядра в обход ОС (user-mode restrictions escape), но такие методы работают только на out-of-date (устаревших) ОС, на которые своевременно не устанавливают обновления. Практика использования 0day LPE/RCE-эксплойтов для вредоносного кода, который ориентирован на обычных пользователей не столь высока, поэтому своевременное обновление ОС и использование UAC существенно снизит риск заражения.
  • Используйте security/AV-продукт для защиты своей ОС. Это позволит вам контролировать операции на уровне файловой системы, передаваемых данных из Internet, а также иных проводимых в ОС транзакций. Сегодня многие такие продукты содержат встроенные механизмы защиты от эксплойтов. Например, последняя версия ESET Smart Security 7 содержит специальную настройку HIPS, которая называется «Блокировщик эксплойтов» и позволяет своевременно обнаруживать действия эксплойтов в приложениях.
  • Используйте браузеры с поддержкой sandbox и иных технологий, которые ограничивают процессы вкладок в исполняемых ими действиях. Даже если эксплойт содержит код для браузера с применением RCE-уязвимости, находясь в изолированном процессе, он не сможет выполнить основные функции, например, загрузить полезную нагрузку с удаленного сервера или сбросить свой файл в файловую систему.
  • На сегодняшний день наиболее безопасным решением является использование Windows 8+ x64 со встроенным SmartScreen на уровне ОС и активным EMET в системе, который настроен на защиту браузера, особенно 32-битного. Заметьте, что по умолчанию большинство браузеров работают в совместимом 32-битном режиме (Google Chrome & Mozilla Firefox не имеют 64-битных вариантов, новейший Internet Explorer 11 по умолчанию запускает свои процессы как 32-битные). Практика использования AV-продукта в такой конфигурации также является необходимой, поскольку позволит отследить попытки «посадок» вредоносного кода в ОС на основе антивирусных сигнатур и эвристики. SmartScreen позволяет выполнять схожие действия за счет пополняемой blacklist-базой Microsoft.
  • Заметьте, что никакая standalone-app или in-browser система ДБО не сможет противостоять атаке вредоносного кода или обеспечить целостность своего кода в памяти в случае компрометации самой ОС. При компрометации ОС вы автоматически ставите под угрозу все работающие в вашей системе приложения, включая приложения для работы с онлайн-банкингом или используемый браузер. Практически любой вредоносный код содержит механизмы on-the-fly модификации кода процессов (runtime-patching/injection), с которым приложение не сможет справиться для обеспечения своей целостности. Системы типа HIPS помогут отследить подобное поведение вредоносного кода.
Tags:
Hubs:
+19
Comments 15
Comments Comments 15

Articles

Information

Website
www.esetnod32.ru
Registered
Founded
Employees
1,001–5,000 employees
Location
Словакия