На прошлой неделе исследователи из «Лаборатории Касперского» обнаружили вирус, который оставался незамеченным на протяжении шести лет. Он получил название Slingshot. Многих из своих «жертв» вредонос атаковал через скомпрометированные роутеры MikroTik.
Как отмечают специалисты, по сложности реализации Slingshot превосходит троян Regin, поразивший сети бельгийского оператора Belgacom и других крупных организаций, и Project Sauron.
О компонентах и назначении вируса расскажем далее.
/ фото Jan Hammershaug CC
Вирус был обнаружен по счастливой случайности. Группа исследователей анализировала код кейлоггера и решила проверить, встречается ли он где-либо еще. Сигнатура вируса проявилась в, казалось бы, невинном файле scesrv.dll на еще одном компьютере. Дальнейшие тесты показали: когда компьютер подключался к системе конфигурации роутера, вирус активировался, выгружал копию себя на «свежую» машину и получал root-доступ.
Вредонос «собирает» скриншоты, информацию о сети и USB-подключениях, перехватывает пароли и данные в буфере обмена, отслеживает активность на компьютере. На основании этого исследователи сделали вывод, что целью Slingshot, вероятно, является шпионаж.
Точно не установлено, каким образом Slingshot заразил свои первые цели, однако известно, что создатели вируса внедрили вредоносный код в роутеры латвийской компании MikroTik. Он использует средство конфигурирования Winbox для загрузки DLL-файлов в память компьютера. Хакеры поместили библиотеку ipv4.dll на маршрутизатор, которая также начала передаваться в память. После выгрузки файл скачивал другие компоненты вируса.
Сама программа Slingshot — это загрузчик, который заменяет существующую системную динамическую библиотеку на компьютере «жертвы». Slingshot встраивает необходимые ему модули в DLL, сжимая часть оригинального файла, чтобы сохранить размер неизменным. Затем он меняет точку входа, «переключая» указатель на необходимый загрузчик, и вычисляет новую контрольную сумму DLL. При этом после скачивания вредоносных модулей, загрузчик восстанавливает оригинальный код системного DLL-файла в памяти.
Slingshot загружает множество вспомогательных компонентов, но двумя основными и самыми крупными модулями являются Cahnadr (работает в режиме ядра) и GollumApp (работает в режиме пользователя). Они связаны и помогают друг другу с поиском и сбором информации.
Canhadr взаимодействует с сетью на низком уровне и может воспроизводить вредоносный код, не нарушая работы всей файловой системы и не вызывая «синий экран смерти». Он написан на чистом C и способен получить доступ к жёсткому диску и оперативной памяти несмотря на установленные в системе ограничения. Также он отвечает за контроль целостности и сокрытие деятельности вируса от систем анализа.
Например, он использует специальные алгоритмы, которые маскируют сетевой трафик. Все компоненты вируса располагаются в отдельном пуле, что позволяет отличать их от других, «безвредных» запросов. Вся информация о пакетах, передаваемых в сети, попадает в NET_BUFFER_LIST. Если в списке появляется команда из «вредоносного пула», то Cahnadr удаляет её, предотвращая отправку сообщения об успешном выполнении.
Что касается модуля GollumApp, то он содержит примерно 1,5 тыс. функций и встраивается в файл services.exe. Он создает новый тред и работает напрямую с системными сервисами: собирает данные о сети (таблицы маршрутизации, информация о прокси, настройки AutoConfigUrl), ворует пароли, сохраненные в Mozilla и IE, «пишет» все нажатия клавиш на клавиатуре, запускает новые процессы с системными правами и управляет I/O-запросами EFS.
/ фото Christiaan Colen CC
Предположительно, вирус действует с 2012 года, но о нем долгое время не было известно, поскольку Slingshot использует набор техник для сокрытия своей деятельности — это системы обнаружения антивирусного ПО, специализированные решения для усложнения анализа и шифрование.
При этом вирус оказался довольно редким, что также затруднило обнаружение: исследователи зафиксировали порядка 100 заражённых компьютеров, большинство из которых в Африке и на Ближнем Востоке: это Кения, Йемен, Афганистан, Турция, Ирак, Судан, Иордания и др. Большинством жертв являются отдельные пользователи, однако в списке есть и государственные организации.
В «Лаборатории Касперского» отмечают, что им не удалось найти какой-либо связи с ранее известными APT. Однако некоторые техники и эксплойты (например, уязвимости в драйверах), используемые Slingshot, были замечены в таком вредоносном ПО, как Turla, Grayfish и White Lambert. Эксперты говорят, что сейчас сигнатуры вируса были определены, а MikroTik уже выпустили обновление ПО для блокировки Slingshot.
P.S. Материалы по теме из Первого блога о корпоративном IaaS:
Как отмечают специалисты, по сложности реализации Slingshot превосходит троян Regin, поразивший сети бельгийского оператора Belgacom и других крупных организаций, и Project Sauron.
О компонентах и назначении вируса расскажем далее.
/ фото Jan Hammershaug CC
Вирус был обнаружен по счастливой случайности. Группа исследователей анализировала код кейлоггера и решила проверить, встречается ли он где-либо еще. Сигнатура вируса проявилась в, казалось бы, невинном файле scesrv.dll на еще одном компьютере. Дальнейшие тесты показали: когда компьютер подключался к системе конфигурации роутера, вирус активировался, выгружал копию себя на «свежую» машину и получал root-доступ.
Вредонос «собирает» скриншоты, информацию о сети и USB-подключениях, перехватывает пароли и данные в буфере обмена, отслеживает активность на компьютере. На основании этого исследователи сделали вывод, что целью Slingshot, вероятно, является шпионаж.
Точно не установлено, каким образом Slingshot заразил свои первые цели, однако известно, что создатели вируса внедрили вредоносный код в роутеры латвийской компании MikroTik. Он использует средство конфигурирования Winbox для загрузки DLL-файлов в память компьютера. Хакеры поместили библиотеку ipv4.dll на маршрутизатор, которая также начала передаваться в память. После выгрузки файл скачивал другие компоненты вируса.
Компоненты вируса
Сама программа Slingshot — это загрузчик, который заменяет существующую системную динамическую библиотеку на компьютере «жертвы». Slingshot встраивает необходимые ему модули в DLL, сжимая часть оригинального файла, чтобы сохранить размер неизменным. Затем он меняет точку входа, «переключая» указатель на необходимый загрузчик, и вычисляет новую контрольную сумму DLL. При этом после скачивания вредоносных модулей, загрузчик восстанавливает оригинальный код системного DLL-файла в памяти.
Slingshot загружает множество вспомогательных компонентов, но двумя основными и самыми крупными модулями являются Cahnadr (работает в режиме ядра) и GollumApp (работает в режиме пользователя). Они связаны и помогают друг другу с поиском и сбором информации.
Canhadr взаимодействует с сетью на низком уровне и может воспроизводить вредоносный код, не нарушая работы всей файловой системы и не вызывая «синий экран смерти». Он написан на чистом C и способен получить доступ к жёсткому диску и оперативной памяти несмотря на установленные в системе ограничения. Также он отвечает за контроль целостности и сокрытие деятельности вируса от систем анализа.
Например, он использует специальные алгоритмы, которые маскируют сетевой трафик. Все компоненты вируса располагаются в отдельном пуле, что позволяет отличать их от других, «безвредных» запросов. Вся информация о пакетах, передаваемых в сети, попадает в NET_BUFFER_LIST. Если в списке появляется команда из «вредоносного пула», то Cahnadr удаляет её, предотвращая отправку сообщения об успешном выполнении.
Что касается модуля GollumApp, то он содержит примерно 1,5 тыс. функций и встраивается в файл services.exe. Он создает новый тред и работает напрямую с системными сервисами: собирает данные о сети (таблицы маршрутизации, информация о прокси, настройки AutoConfigUrl), ворует пароли, сохраненные в Mozilla и IE, «пишет» все нажатия клавиш на клавиатуре, запускает новые процессы с системными правами и управляет I/O-запросами EFS.
/ фото Christiaan Colen CC
Распространение
Предположительно, вирус действует с 2012 года, но о нем долгое время не было известно, поскольку Slingshot использует набор техник для сокрытия своей деятельности — это системы обнаружения антивирусного ПО, специализированные решения для усложнения анализа и шифрование.
При этом вирус оказался довольно редким, что также затруднило обнаружение: исследователи зафиксировали порядка 100 заражённых компьютеров, большинство из которых в Африке и на Ближнем Востоке: это Кения, Йемен, Афганистан, Турция, Ирак, Судан, Иордания и др. Большинством жертв являются отдельные пользователи, однако в списке есть и государственные организации.
В «Лаборатории Касперского» отмечают, что им не удалось найти какой-либо связи с ранее известными APT. Однако некоторые техники и эксплойты (например, уязвимости в драйверах), используемые Slingshot, были замечены в таком вредоносном ПО, как Turla, Grayfish и White Lambert. Эксперты говорят, что сейчас сигнатуры вируса были определены, а MikroTik уже выпустили обновление ПО для блокировки Slingshot.
P.S. Материалы по теме из Первого блога о корпоративном IaaS:
DaemonGloom
Комментарий разработчиков Микротик:
Эксплуатировалась старая уязвимость, которая присутствовала в маршрутизаторах с отключенным файерволлом. Исправили в 6.38.5 (Март 2017). При обновлении все вредоносные файлы с маршрутизатора будут удалены.
Более того, эта «пакость» не распространялась широко, заражались избирательно конкретные цели.
forum.mikrotik.com/viewtopic.php?t=131748#p647153
forum.mikrotik.com/viewtopic.php?t=131748#p647433
b1ora
Мораль: держать самую свежую прошивку из баг фик ветки
qw1
Лучше включить firewall и заблокировать доступ к роутеру с хостов, с которых не предполагается управление.
DaemonGloom
Мораль: не нужно держать открытой наружу панель управления роутером.
Вообще, если вы хотите управление устройством по небезопасному (http) протоколу, то вы должны быть уверены в доступе к этому протоколу только безопасным методом (например, vpn).
Chupaka
Более того: .dll-файлы загружал с роутера WinBox Loader v2.*. А в районе 2015 года был выпущен WinBox v3, который .dll не загружает с роутера.
qw1
Насколько я помню, при обновлении прошивки с роутера может загрузиться новый интерфейс WinBox, т.е. роутер и в актуальной версии имеет возможность отдать исполняемые файлы, которые запускаются у администратора.
Chupaka
Да, так было у WinBox Loader v2, о чём и написано. В третьей версии (с 2014 года, не 2015, обшибся) исполняемых файлов не загружается, только данные по интерфейсу.
VulvarisMagistralis
Латвийская разведка, не иначе.
9660
А ничего что в системе библиотеки не dll а so?
Krepver
Лучше читать источники
Т.е. dll "передавалась в память" атакуемой машины, а не роутера