Компания
450,37
рейтинг
28 февраля 2014 в 12:44

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

Ранее мы писали про сложный банковский вредоносный инструмент 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 помогут отследить подобное поведение вредоносного кода.
Автор: @esetnod32
ESET NOD32
рейтинг 450,37

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

  • +3
    Я так понимаю, речь идет только о Windows операционных системах?
    • +1
      Пока модули Corkow были обнаружены только для этой платформы.
  • –2
    Побольше бы конткретики в рекомендациях… а то:
    >Используйте браузеры с поддержкой sandbox
    Большинство не поймет какие браузеры его поддерживают.
    • +2
      Ну, этот сайт всё же не для большинства, не так ли?
  • +1
    Навскидку тут несколько человеко-лет работы профессионала — т.е. наверняка работает целая команда.
  • +1
    Хороший обзор. Мне понравился. Разложили все по полочкам, красиво оформили.

    Я просто должен был это написать. Накипело. :)

    Только вот работа с различными онлайн системами (где идет работа с ЭЦП) с которых проводят закупки организации, не ориентированны на безопаснсть. Так же можно составить еще огромный список сайтов которые не могут быть ориентированны под другие браузеры кроме как ИЕ, потому что разрабам лень переписывать кучу кода и ориентироваться под массового пользователями, а как не проще. Поэтому они все еще работают на ИЕ8 или браузере этой семейке, отключают почти все настройки безопасности, а потом лезут в интернетик посмотреть какие вышли новые серии любимого сериальчика на варезном сайте который уже похекан/сгенерирован и код «переливается» так быстро что после нескольких заходов он уже поменялся, а аверы и не поняли что же случилось.

    Прошу прощения если сломал кому то видение безопасности или глаза этой кучей текста.
    • +1
      Поделюсь опытом, может кому поможет.
      С безопасностью в Windows конечно беда. Сам обслуживаю ЭЦП-шные компы для госзакупок. Работают и будут работать пока под WinXP.
      Чтобы снизить негативный эффект, для новых серий любимого сериальчика на варезном сайте через железный КVM выделен отдельный системный блок. А на «закупочном» компе IE8 работает только по белому списку. Так что заразу жду только от доверенных госсайтов, но это, по-моему, уже неизбежное зло.
  • 0
    Вопрос относительно Альфа банка.
    Для подтверждений используется код посылаемый через смс на телефон клиента.
    Эта процедура используется при входе в интернетбанк, а также при совершении транзакций.
    Как злоумышленники обходят подтверждение кодом который высылается на телефон клиента?
    • 0
      ЕМНИП, у Альфа-банка телефон для смс уведомлений написан открытым текстом в настройках.
      У злоумышленников есть возможность восстановить сим-карту через нечестных на руку работников точек обслуживания и продаж.
      • 0
        не понял — что значит восстановить сим карту, её вроде никто не терял...?

        По конкретней можно алгоритм похищения денег со счетов Альфа банка?
        • 0
          При замене SIM-карты на новую не будет выслан пароль — операторы каким-то образом передают информацию об этом банкам. Впрочем, ввели это как раз после истории с успешным применением перевыпущенных симкарт на нескольких не очень удачливых вкладчиков Альфабанка
        • 0
          Если сделать дубликат работающей карты без блокировки основной(не знаю возможно ли еще такое, раньше точно работало), то СМС/звонки будут приходить на ту карту, которая зарегистрировалась в сети первая.
          • 0
            ок давайте по порядку.
            итак случилась беда и мой комп заражен этой хренью.

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

            Теперь пожалуйста объясните мне в какой момент и как мошенники похищают мой хабар?
            • +1
              Злоумышленники узнают ваш номер. Веб-инжекты, скриншоты — не важно. Таким же образом крадется пароль. Кейлоггер для безопасной клавиатуры, скриншоты. Далее все просто. Есть человек в точке обслуживания/продаж. Человек злоумышленников. К нему приходит подставное лицо, показывая паспорт/доверенность, человеку выдают сим-карту. Ваша сим-карта в этот момент уже не работает. Далее — дело случая. Увидите ли вы, что сим-карта уже не в сети или нет. Вопрос только в том, виден ли номер телефона в интернет-банкинге в открытом доступе или нет.
  • –2
    Предотвращение заражения:

    1. Сносим Windows, ставим Linux. На сегодняшний день это и есть наиболее безопасное решение :)

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

Самое читаемое Разное