Новый rootkit для Linux подставляет вредоносный код в HTTP-трафик

Новый rootkit для Linux подставляет вредоносный код в HTTP-трафик

На ряде web-серверов обнаружен новый руткит, используемый для скрытной подстановки вредоносных вставок в отдаваемый сервером HTTP-контент. Руткит поражает 64-разрядные Linux-серверы, работающие под управлением Debian Squeeze с ядром 2.6.32-5-amd64.

После активации в ядро системы загружается специальный модуль, скрывающий следы присутствия руткита и осуществляющий подстановку в генерируемый локальным web-сервером HTTP-трафик iframe-блоков с кодом для эксплуатации уязвимостей в клиентских браузерах и установленных в них плагинах.

В отличие от обычно применяемой техники внедрения вредоносного кода в хранимые на сервере html-страницы, руткит позволяет оставить файлы в неизменном виде, осуществляя подстановку на стадии отдачи контента http-сервером. Так как компоненты руткита маскируются и скрываются от средств мониторинга, на первый взгляд вредоносная активность отсутствует. Первая информация о новом рутките была опубликована несколько дней назад в списке рассылки Full Disclosure. Администратор одной из поражённых систем привёл первичный разбор странной активности на своём сервере, из-за которой во вне данные уходили с подстановкой вредоносного iframe, но локально следов подстановки вредоносного кода не наблюдалось, в том числе используемый для отдачи контента nginx при проверке через strace отдавал в сетевой сокет корректные данные, пишет opennet.ru.

В дальнейшем один из исследователей безопасности, получивший доступ к поражённой системе, проанализировал руткит иопубликовал подробный отчёт о методах его работы. Наиболее важным выводом является то, что выявленный руткит является новой разработкой, не основанной ни на одном из ранее доступных руткитов или инструментов для их создания. При этом реализация и качество исполнения руткита свидетельствует о том, что он создавался не для проведения целевых атак, а как начальная попытка создания ещё одного средства для распространения вредоносного ПО.

После загрузки руткита он осуществляет перехват управления некоторых функций ядра Linux (vfs_readdir, vfs_read, filldir64 и filldir), скрывая необходимые для работы руткита файлы на диске. Для скрытия загрузки модуля ядра осуществляется модификация списка активных модулей в соответствующей структуре данных ядра Linux. Перехват управления производится путем перезаписи нескольких байт непосредственно в начале кода перехватываемой функций (добавляется команда jmp rel32 и копируется рассчитанное в стеке смещение). Запуск руткита производится через загрузку модуля ядра Linux. Но так как команда "insmod /lib/modules/2.6.32-5-amd64/kernel/sound/module_init.ko" добавляется в конец файла /etc/rc.local, а в Debian файл /etc/rc.local завершается вызовом exit 0, команда загрузки модуля размещается после вызова exit, т.е. после перезагрузки руткит не активируется.

Подстановка вредоносного кода в трафик осуществляется путем перехвата функции tcp_sendmsg, используемой для построения исходящих TCP-пакетов. Обработчик руткита анализирует передаваемый контент и добавляет после строки с тегом body блок iframe. Для управления руткитом предусмотрен специальный интерфейс, получающий команды от удалённого управляющего сервера. В частности, после обращения руткита к управляющему серверу, тот возвращает блок данных, который следует внедрить в трафик, а также параметры подстановки. Например, поддерживается установка правил для какого именно хоста осуществить подстановку, определяется тип внедрения (JavaScript/iframe).

Windows хранит скрытые данные о доступе приложений к камере и микрофону

Windows ведёт подробный учёт приложений, которые обращались к камере, микрофону, геолокации и другим возможностям компьютера. В настройках пользователю показывают лишь краткий список недавней активности, а самое интересное система складывает в реестр. Данные находятся в разделе ConsentStore.

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

Отдельно Windows записывает дату выдачи разрешения и его текущий статус — Allow или Deny.

Правда, просто открыть редактор реестра и почувствовать себя цифровым детективом не получится. Временные метки хранятся в формате FILETIME — в виде количества 100-наносекундных интервалов, прошедших с 1 января 1601 года.

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

$root = "HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore"
$results = Get-ChildItem $root | ForEach-Object {
    $medium = $_.PSChildName
    Get-ChildItem $_.PSPath -Recurse | ForEach-Object {
        $props = Get-ItemProperty $_.PSPath -ErrorAction SilentlyContinue
        if ($props.LastUsedTimeStart -and $props.LastUsedTimeStop -and
$props.LastUsedTimeStart -ne 0) {
            $start   =
[datetime]::FromFileTimeUtc($props.LastUsedTimeStart).ToLocalTime()
            $stop    =
[datetime]::FromFileTimeUtc($props.LastUsedTimeStop).ToLocalTime()
            $granted = if ($props.LastSetTime) {
                [datetime]::FromFileTimeUtc($props.LastSetTime).ToLocalTime()
            } else {
                $null
            }
            [PSCustomObject]@{
                Medium              = $medium
                App                 = $_.PSChildName
                PermissionGrantedOn = $granted
                LastUsedStart       = $start
                LastUsedStop        = $stop
                Duration            = $stop - $start
            }
        }
    }
}

Для проверки системных разрешений потребуется изменить путь с HKCU на HKLM и запустить PowerShell от имени администратора.

У журнала есть важное ограничение: Windows сохраняет только последнее обращение каждого приложения, а не полную историю. Кроме того, дата выдачи разрешения не означает, что именно тогда программа впервые воспользовалась камерой или микрофоном.

Тем не менее проверка способна преподнести сюрпризы. Автор исходного материала, например, обнаружил, что EA Sports FC 26 использовала его микрофон около 40 минут, хотя он не помнил, чтобы разрешал игре это делать.

Если в списке нашлась подозрительная программа, ей можно запретить доступ к соответствующему компоненту или удалить её.

RSS: Новости на портале Anti-Malware.ru