Исследование

MacOS-троянец Calisto: первый зловред семейства Proton?

Одна из интересных составляющих исследования той или иной вредоносной программы — это изучение пути ее эволюции, наблюдение за тем, как создатели постепенно добавляют новые средства монетизации зловреда или его закрепления в системе. Интерес представляют в том числе опытные образцы, которые получили ограниченное распространение или даже вовсе не встречались «в дикой природе». Один из таких образцов недавно попал к нам — бэкдор для MacOS, который мы назвали Calisto.

Зловред был загружен на VirusTotal еще в далеком 2016 году — скорее всего, в том же году он и был создан. Однако два года, до мая 2018-го, Calisto оставался вне поля зрения антивирусных решений, и лишь недавно на VT появились первые детекты.

Зловреды для MacOS встречаются не так часто, к тому же в этом мы обнаружили несколько подозрительно знакомых черт. Поэтому мы решили посмотреть, что из себя представляет Calisto и почему его разработка была остановлена (и была ли?).

Распространение

У нас нет достоверных сведений о том, как распространялся бэкдор. Установочный файл Calisto представляет собой неподписанный DMG-образ и выдает себя за защитное решение от компании Intego. Примечательно, что в качестве прикрытия авторами Calisto выбрана девятая, актуальная на данный момент версия программы.

Для наглядности сравним файл зловреда c версией Mac Internet Security X9, скачанной с официального сайта.

Backdoor Intego Mac Internet Security 2018
Не подписан Подписан INTEGO

Выглядит вполне убедительно, пользователь вряд ли заметит подмену, особенно если раньше не имел дела с легитимной версией защитного решения.

Установка

Сразу после запуска приложение встречает нас лицензионным соглашением, нужным для отвода глаз. Текст немного отличается от предлагаемого в продукте Intego — возможно, злоумышленники взяли одну из предыдущих версий соглашения.

Далее «антивирус» запрашивает логин и пароль пользователя, но это вполне рядовая ситуация на MacOS при установке программы, которая может вносить изменения в систему.

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

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

Анализ троянца

С включенным SIP (System Integrity Protection)

Деятельность Calisto на компьютере с включенным SIP (System Integrity Protection) довольно ограничена. Напомним, SIP была анонсирована компанией Apple в 2015 году вместе с новой версией OSX El Capitan и предназначена для защиты критических для функционирования системы файлов от изменения, даже если их пытается осуществить пользователь с root-правами. Разработка Calisto осуществлялась в 2016 году или раньше, и можно предположить, что авторы троянца просто не стали принимать во внимание новую на тот момент технологию. Впрочем, многие пользователи до сих пор отключают SIP по различным причинам; мы категорически не рекомендуем так поступать.

Деятельность Calisto можно оценить по логу дочерних процессов троянца и декомпилированному коду:

Лог команд, выполняемых троянцем в ходе своей работы

Команды, зашитые в теле Calisto

Видно, что троянец сохраняет в скрытую директорию с именем .calisto следующие данные:

  • хранилище Keychain,
  • извлеченные из окна ввода логин и пароль пользователя,
  • данные о сетевом подключении,
  • данные из Google Chrome: историю, закладки, файлы cookies.

Напомним, что в Keychain хранятся пароли/токены, сохраненные пользователем, в том числе сохраненные в браузере Safari. Ключом для шифрования хранилища является пользовательский пароль.

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

Оповещение об ошибке

При отсутствии/выключенном SIP

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

  • копирует себя в /System/Library/,
  • прописывается в автозагрузку,
  • размонтирует и удаляет свой DMG-образ,
  • прописывается в Accessibility,
  • собирает дополнительную информацию о системе,
  • включает удаленный доступ к системе,
  • пересылает собранные данные на C&C-сервер.

Рассмотрим подробнее механизмы реализации вредоносных функций.

Добавление в автозагрузку происходит классическим для MacOS способом, через запись plist-файла в директорию /Library/LaunchAgents/ со ссылкой на зловред:


Размонтирование и удаление DMG-образа выполняется следующей командой:

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

Важной частью Calisto является предоставление удаленного доступа к системе пользователя. Для этого он:

  • Включает удаленный вход.
  • Включает раздельное использование экрана.
  • Настраивает разрешения на удаленный вход для пользователя.
  • Разрешает удаленный вход всем.
  • Включает скрытую в MacOS учетную запись root и устанавливает пароль, указанный в коде троянца.

Используемые для этого команды:

Напомним, что пользователь root в macOS хоть и существует, но по умолчанию выключен. Интересно, что после перезагрузки Calisto снова запрашивает пользовательские данные, но в этот раз ожидает ввода актуального root-пароля, который ранее сменил сам (root: aGNOStIC7890!!!). Это одно из подтверждений «сырости» троянца.

В конце Calisto пытается передать все данные из папки .calisto на сервер злоумышленников. Но на момент нашего исследования сервер уже не отвечал на запросы и, по-видимому, был выключен:



Попытка связи с C&C

В дополнение

Во время статического анализа Calisto был обнаружен недописанный и неиспользуемый дополнительный функционал:

  • загрузка/выгрузка расширений ядра (kernel extension), связанных с обслуживанием USB устройств,
  • кража данных из пользовательских директорий,
  • самоликвидация вместе с ОС.

Загрузка/выгрузка расширений ядра

Работа с пользовательскими директориями

Самоликвидация, а заодно и уничтожение всей системы

Связь с Backdoor.OSX.Proton

Бэкдор Calisto идейно похож на представителя семейства Backdoor.OSX.Proton:

  • Схожий способ распространения: маскируется под известный антивирус (ранее был обнаружен экземпляр Backdoor.OSX.Proton, маскирующийся под антивирус Symantec).
  • В теле программы есть строка «com.proton.calisto.plist».
  • Этот троянец, как и Backdoor.OSX.Proton, способен украсть множество персональных данных из системы пользователя, в том числе содержимое Keychain.

Напомним, что все известные зловреды семейства Proton распространялись и были обнаружены в 2017 году. Найденный же нами Calisto был создан как минимум в 2016-м. Если допустить, что данный троянец написан теми же авторами, то он может являться одной из самых первых версий Backdoor.OSX.Proton или даже прототипом. В пользу последнего варианта говорит большое количество неиспользуемых и не до конца реализованных функций. Впрочем, в поздних версиях Proton они так и не появились.

Для защиты от Calisto, Proton и их аналогов следует:

  • Всегда обновляться до актуальной версии ОС.
  • Не отключать SIP.
  • Запускать только подписанное программное обеспечение, скачанное из доверенных источников, таких как AppStore.
  • Использовать антивирусное ПО.

MD5

DMG-образ: d7ac1b8113c94567be4a26d214964119
Исполняемый Mach-О: 2f38b201f6b368d587323a1bec516e5d

MacOS-троянец Calisto: первый зловред семейства Proton?

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

 

Отчеты

CloudSorcerer: новая APT-угроза, нацеленная на российские государственные организации

«Лаборатория Касперского» обнаружила новую APT-угрозу CloudSorcerer, нацеленную на российские государственные организации и использующую облачные службы в качестве командных серверов аналогично APT CloudWizard.

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике