- PVSM.RU - https://www.pvsm.ru -
Sality — одно из наиболее известных семейств вредоносного программного обеспечения. В своем развитии ВПО Sality прошло несколько стадий.
Первое упоминание о нем датируется июлем 2003 года. В своей первоначальной версии Sality заражал исполняемые файлы путем добавления своего кода, упакованного с помощью UPX. В качестве полезной нагрузки выступал кейлоггер, перехваченные данные отсылались по протоколу SMTP на один из серверов, размещенных в России. Название является производной от английского названия города — «Salavat City» (Салават, Республика Башкортостан). Предположительно прозвище разработчика — Sector — дало название в классификации компании Dr.Web. На тот момент Sality не представлял интереса в техническом плане, автор использовал довольно примитивные механизмы — файловый инфектор был относительно простым по сравнению с другими образцами ВПО того времени, адрес SMTP сервера был жестко задан внутри кода и не мог быть изменен, так же не могла быть изменена полезная нагрузка.
С 2004 по 2008 год автор много работал над усовершенствованием Sality. Значительно изменилась методика инфицирования, а вирус стал полиморфным без изменения точки входа (техника entry-point obscuring), затрудняя тем самым процесс обнаружения и лечения. Вредоносные функции были выделены в отдельные модули, которые могли дополнительно загружаться с ряда URL-адресов, жестко прописанных в коде. Также были включены процедуры противодействия механизмам защиты: блокировка или отключение некоторых межсетевых экранов, утилит и антивирусных программ. Начиная с 2008 года (возможно, конца 2007) автор кардинально изменил схему распространения, вместо заранее заданных адресов, которые могли быть легко заблокированы антивирусными компаниями, был реализован механизм peer-to-peer обновления модулей и загрузки сторонних вредоносных программ для последующего запуска.
Архитектура
Далее описывается работа одной из последних версий Sality (после 2008 года). Все компоненты являются независимыми и запускаются в отдельных потоках.
Модуль инжектирования (внедрения в адресное пространство другого процесса)
Sality пытается внедрить свою копию во все запущенные процессы, за исключением тех, которые выполняются от имени аккаунтов 'system', 'local service' и 'network service'. Для привилегированных процессов выставляет себе Debug privileges, и пытается внедриться снова. Для исключения повторного внедрения использует mutex с именем приложения. Это является одним из признаков инфицирования компьютера.
Модуль защиты
Этот модуль защищает Sality от антивирусного ПО. Для предотвращения загрузки ОС в режиме защиты от сбоев (Safe boot mode) вирус удаляет из реестра ключи и значения в следующих ветках: 'HKEY_CURRENT_USERSystemCurrentControlSetControlSafeBoot' и 'HKEY_LOCAL_MACHINESystemCurrentControlSetControlSafeBoot'.
Блокируется работа служб множества антивирусных программ. Ранние версии Sality вели себя даже более агрессивно и просто удаляли эти службы из системы.
Вирус также внедряет драйвер ядра. Этот драйвер добавляется под псевдослучайным именем в папку %System%drivers. Создается служба с именем «amsint32». Драйвер выполняет три различные функции:
Модуль заражения
Модуль заражения отвечает за размножение вируса, в качестве объектов выступают:
Для файлов антивирусов (из списка) вместо заражения производится попытка перезаписать код точки входа байтами «СССЗ СССЗ СССЗ СССЗ» (повторяющиеся инструкции int 3 и ret). В случае неудачи этой операции Sality пытается удалить файл. Модуль заражения также сканирует каталоги и удаляет файлы с расширением vdb или avc (сигнатуры антивирусов компаний Symantec и Kaspersky).
Интересная особенность модуля заражения: процедуры заражения отключаются, если список пиров (peer list) пуст. Это отражает своеобразную стратегию распространения — нет необходимости заражать файлы, если отсутствует подключение к Р2Р сети и скачивание дополнительных вредоносных модулей невозможно.
Для заражения используется техника EPO (entry-point obscuring):
Sality проверяет свое присутствие в системе по определенному mutex, различному для разных вариантов. При запуске из корневого каталога диска открывается окно Explorer.
Модуль закачек
Модуль закачек отвечает за скачивание и запуск дополнительных вредоносных модулей с URL-адресов, полученных модулем peer-to-peer. Скачанные файлы закодированы шифром RC4, ключ которого прописан в коде. Наиболее вероятно, что Sality и его вредоносные модули созданы одним и тем же автором. Однако вредоносные модули работают по традиционной схеме и соединяются с управляющими серверами, расположенными по всему миру.
Список вредоносных модулей, распространяемых Sality:
спам-генераторы и спам-шлюзы (spam relay), содержание спама обычно связано с рекламой казино или фармацевтикой;
НТТР-прокси, используются для маскировки сетевой активности и достижения анонимности;
сборщики информации, собирают пароли, учетные записи и персональные данные, в том числе и данные веб-форм (внедрение в Internet Explorer);
заражение веб-сайтов. Этот вредоносный модуль перехватывает учетные записи FTP, после чего подключается к данным FTP и заражает HTML-файлы. Заражение происходит путем внедрения IFRAME, указывающего на сторонний ресурс или с использованием скриптов, выполняемых на стороне сервера. Цели подобных заражений могут варьироваться от drive-by загрузок и заражения пользовательских компьютеров до спам-рассылок;
распределенная система взлома, в феврале 2011 года был распространен модуль, который мог работать в нескольких режимах в зависимости от команд С&С-сервера:
экспериментальные модули, на сегодняшний день известно всего два экспериментальных модуля, запущенных, по всей видимости, для отработки технологии. Первый модуль — это скрипт автоматической регистрации приложения Facebook. Модуль — сборщик информации, внедренный в Internet Explorer через стандартный СОМ-интерфейс, собирает из веб-форм регистрационные данные, отправляет С&С-серверу и сохраняет локально в зашифрованном виде. Экспериментальный модуль выполняет скрипт со следующей очередностью действий: открыть Internet Explorer в режиме видимого (!) окна, перейти на сайт facebook.com, войти, используя перехваченные регистрационные данные, перейти на страницу приложения VIР Slots (# 11908467418), разрешить доступ приложению, закрыть окно. Приложение использует доступ на уровне 'Basic information' — имя, пол, фото и список друзей. На данный момент этот модуль не производит никаких вредоносных действий (потому и назван экспериментальным), однако сама возможность подобного рода активности позволяет злоумышленникам использовать взломанный аккаунт Facebook для распространения спама (постинги) или для приобретения виртуальных кредитов.
Еще один скрипт, распространенный Sality, выполнял следующие действия: запустить Internet Explorer в невидимом режиме, перейти на сайт google.com; запустить поиск строки «auto insurance bids»; закрыть окно. Скрипт служит экспериментальным целям и позволяет продвигать те или иные темы в Google Trends.
Модуль peer-to-peer
Модуль peer-to-peer отвечает за распространение URL-ссылок на вредоносные модули. Р2Р-сеть не имеет фиксированных С&С-серверов. В случае Sality попытка или заблокировать сеть ботнета будет означать необходимость заблокировать все superpeer, что теоретически возможно, но трудно реализуемо. Первичное соединение с сетью происходит с помощью начального списка (bootstrap list) пиров, содержащегося в зараженных файлах и включающего публичный IP и порт ряда уже существующих пиров. Во всех вариациях вируса, размер списка ограничивается 1000 записями.
В момент первого запуска Sality в реестре Windows создается локальная копия начального списка (в ветке HKEY_CURRENT_USER под псевдослучайным именем), и в дальнейшем этот локальный список обновляется путем добавления новых активных и удаления неактивных пиров.
Существует, по меньшей мере, четыре версии протоколов:
Различия между протоколами версий V2 и V3 минимальны. Поскольку каждый зараженный файл содержит открытый ключ, используемый для проверки списка URL-ссылок, каждая новая версия протокола требует использования нового ключа. Можно предположить, что переход от версии V2 к V3 был продиктован фактом компрометации закрытого ключа, используемого для подписи списка URL.
В протоколе 3-й версии была потенциальная уязвимость в алгоритме работы, которая позволяла перехватить управление ботнетом (антивирусным компаниям или другим злоумышленникам) — после скачивания и проверки списка URL-адресов не производится никаких других проверок ни самих адресов, ни файлов, скачиваемых с них. То есть можно было изменить записи DNS и/или подменить файлы-модули на свои, что вело к перехвату управления. Информация о такой возможности в целях уничтожения ботсети была опубликована [1] неизвестным под псевдонимом law-abiding citizen (законопослушный гражданин).С целью устранения указанных слабых сторон 3-й версии, по-видимому, автор и разработал 4-ю версию, в которой все закачиваемые файлы должны содержать цифровую подпись и проверяются перед запуском при помощи открытого ключа RSA длинной 2048 бит.
Наши дни
В настоящее время Sality продолжает оставаться одной из наиболее распространенных вредоносных программ в мире. Группа исследователей из Калифорнийского университета в Сан-Диего и университета Наполи (Италия) в октябре 2012 года опубликовала отчёт [2] (pdf, eng) с анализом активности Sality. Информация была собрана с помощью пассивной системы мониторинга трафика UCSD Network Telescope. Исследователи утверждают, что в 12-дневный период в феврале 2011 года с 3 млн IP-адресов приходили пакеты на инициацию соединения по протоколу SIP. По мнению авторов отчета, владельцы ботнета пытались брутфорсить SIP-сервера для создания фейковых аккаунтов, чтобы использовать их для бесплатной телефонии, анонимных звонков, мошенничества и т.д.
Интересно то, что использовался ряд методик, чтобы максимально замаскировать сканирование. Например, с 1 млн IP-адресов пришло всего по одному пакету на инициализацию соединения, затем эти адреса не использовались. Диапазон сканируемых IP-адресов изменялся по фрактальной кривой Гильберта, чтобы затруднить обнаружение факта сканирования. Исследователи считают, что был просканирован весь диапазон IPv4, то есть весь интернет, но этот трафик не смогла бы обнаружить ни одна система детектирования угроз, так как запросы шли с разных IP. Указанные факты помогают понять размах деятельности ботнета Sality и оценить интеллектуальные способности его создателей.
Данный текст является неполным русским переводом отчета компании Symantec «Sality: Story of a Peer-to-Peer Viral Network» [3], ver.1, июль 2011 (pdf, eng). Перевод взят в дневнике пользователя Live Journal Andrey-Perla [4] и частично переработан.
Автор: nuklearlord
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/20346
Ссылки в тексте:
[1] опубликована: http://seclists.org/fulldisclosure/2012/Mar/328
[2] отчёт: http://aroundcyber.files.wordpress.com/2012/11/analysis_slash_zero.pdf
[3] «Sality: Story of a Peer-to-Peer Viral Network»: http://aroundcyber.files.wordpress.com/2012/11/sality_peer_to_peer_viral_network.pdf
[4] Andrey-Perla: http://andrey-perla.livejournal.com
[5] Источник: http://habrahabr.ru/post/159055/
Нажмите здесь для печати.