Операция Lahat: новая группа Hellhounds атакует российские организации через системы на базе Linux

Discussion in 'Мировые новости. Обсуждения.' started by alexzir, 2 Dec 2023.

  1. alexzir

    alexzir Well-Known Member

    Joined:
    29 Oct 2019
    Messages:
    962
    Likes Received:
    2,311
    Reputations:
    25
    В октябре 2023 года команда Positive Technologies по расследованию инцидентов PT CSIRT обнаружила компрометацию одной энергетической компании с использованием трояна Decoy Dog. Этот вредонос активно используется в атаках на российские компании и правительственные организации по меньшей мере с сентября 2022 года. Однако образец, обнаруженный нами на хосте жертвы, представлял собой новую модификацию троянского ПО, которую злоумышленники доработали, усложнив его обнаружение и анализ.

    Анализ инструментов, тактик и техник не позволил связать данную активность ни c одной из ранее известных APT-групп. Новая группа, названная нами Hellhounds, прикладывает значительные усилия для сокрытия своей активности на хостах и в сети. В интересы группы входят компании и государственные организации исключительно на территории Российской Федерации. Злоумышленники могут преследовать разные цели, но достоверно известно об одном случае полного уничтожения инфраструктуры.

    [​IMG]
    Первый этап — загрузчик Decoy Dog Loader
    Расследуя инцидент, мы обнаружили исполняемый файл /usr/bin/dcrond размером 9 КБ. Файл был защищен модифицированной версией упаковщика UPX с измененной сигнатурой 37 13 03 00 вместо UPX!. На момент расследования только один антивирусный движок детектировал пакер, а некоторые образцы и вовсе не детектировались ни одним из движков. Для обнаружения модифицированного UPX можно использовать публичное Правила YARA были первоначально разработаны Виктором Альваресом из VirusTotal и опубликованы на GitHub в 2013 году. YARA — правило из исследования JPCERT/CC.

    [​IMG]
    Рисунок 1. Вердикты антивирусных движков
    В отличие от обычного UPX эта модификация распаковывает не исполняемый файл, а шеллкод, полностью написанный на языке ассемблера и использующий только системные вызовы Linux. После модифицированного UPX-заголовка расположена зашифрованная конфигурация, которая хранит в себе путь до зашифрованного файла с основной нагрузкой, а после конфигурации находится сжатый шеллкод:

    [​IMG]
    Рисунок 2. Фрагмент Decoy Dog Loader
    Загрузчик работает в системе и маскируется под легитимный сервис cron. Также мы обнаружили образцы, маскирующиеся под легитимный сервис irqbalance и под легитимную библиотеку lib7.so.

    Code:
    [Unit]
    
    Description=Daemon to execute   scheduled commands
    
    Documentation=man:dcrond(8)
    
    [Service]
    
    Type=forking
    
    ExecStart=/usr/bin/dcrond
    
    Restart=always
    В атаках 2022 года образец первой версии маскировали под сервис atd и сервис systemd-readahead-stop.service. Образцы размещали в директории /usr/bin/atd или /usr/bin/container:

    Code:
    [Unit]
    
    Description=Deferred execution   scheduler
    
    Documentation=man:atd(8)
    
    [Service]
    
    Type=forking
    
    ExecStart=/usr/bin/atd
    
    Restart=always
    
    [Install]
    
    WantedBy=multi-user.target
    [Unit]
    
    Description= systemd-redhead is a   service that collects disk usage patterns at boot time. systemd-readahead-stop.service   is a service that replays this access data collected at the subsequent boot.
    
    [Service]
    
    Type=forking
    
    ExecStart=/usr/bin/container
    
    Restart=always
    
    [Install]
    
    WantedBy=multi-user.target
    Загрузчик сперва проверяет, не находится ли он под отладкой. Для этого он читает /proc/self/status и проверяет, что TracerPid равен 0. Если же TracerPid отличен от 0, то он подменяет себя на /bin/sh с помощью системного вызова execve.

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

    • /etc/machine-id;

    • /var/lib/dbus/machine-id;

    • /var/db/dbus/machine-id;

    • /usr/local/etc/machine-id;

    • /sys/class/dmi/id/product_uuid;

    • /sys/class/dmi/id/board_serial;

    • /etc/hostid;

    • /proc/self/cgroup.
    Полученный хеш MD5 загрузчик использует как ключ для расшифровки конфигурации, а затем и основной нагрузки, которые зашифрованы криптографическим алгоритмом CLEFIA с 128-битным ключом.

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

    Второй этап — основная нагрузка в виде Decoy Dog
    Основная нагрузка исследуемого образца расположена в файловой системе по пути /usr/share/misc/pcie.cache. Расшифрованная нагрузка является модифицированной версией Pupy RAT, которую исследователи называют Decoy Dog.

    Pupy RAT — это кросс-платформенный многофункциональный бэкдор и инструмент постэксплуатации с открытым исходным кодом, написанный в основном на Python. Pupy поддерживает Windows и Linux, а также ограниченно Android и macOS. Он использует принцип выполнения «все в памяти» и оставляет минимум следов в системе. Pupy RAT может держать связь с управляющим сервером, используя несколько транспортов, мигрировать в процессы с помощью техники reflective injection и удаленно загружать Python-пакеты (.py, .pyc) и скомпилированные расширения Python C (.pyd, .so) из памяти.

    В то время как Pupy RAT не разрабатывается уже два года, Decoy Dog находится в активной разработке. Основные отличия от Pupy RAT:

    • Клиент обновлен с устаревшего Python 2.7 до Python 3.8. Соответственно, весь код был переписан под Python 3.8. Вероятно, поэтому количество модулей сократилось, остались лишь те, что реально используются;

    • Добавлен ряд новых функций, связанных с внедрением кода в виртуальную машину Java;

    • Были добавлены новые транспорты:
      • BOSH (Bidirectional-streams Over Synchronous HTTP со связкой ECPV и RC4) заменил транспорт HTTP;

      • lc4 (связка ECPV и RC4 для локального клиента/сервера с использованием TCP);

      • lws4 (связка ECPV и RC4 для локального клиента/сервера с использованием протокола WebSockets);

      • ws4 (то же, что и оригинальный ws, только вместо связки RSA и AES используется связка ECPV и RC4);

      • dfws4 (то же, что и оригинальный dfws, только вместо связки RSA и AES используется связка ECPV и RC4);
    • Добавлена возможность загружать динамический конфигурационный файл и сохранять его в зашифрованном виде на диске;

    • Добавлен новый канал соединения (launcher) под названием special (локальное соединение с помощью IP-адреса и порта или файлового сокета);

    • Повышена отказоустойчивость при помощи резервных управляющих серверов с указанием конкретных доменов и с использованием DGA.
    Исследуемый образец использовал управляющий сервер z-uid.lez2yae2.dynamic-dns[.]net, который находился в конфигурации, встроенной в исполняемый файл. Фрагмент конфигурации:

    [​IMG]
    Рисунок 3. Фрагмент конфигурации Decoy Dog RAT
    Также троянская программа получает динамическую (актуальную) конфигурацию из файла /var/lib/misc/mpci.bin, который зашифрован криптографическим алгоритмом AES в режиме счетчика (CTR) с 128-битным ключом (который, в свою очередь, зашифрован на эллиптической кривой brainpoolP384r1), и содержит новые управляющие серверы:

    • m-srv.daily-share.ns3[.]name;

    • f-share.duckdns[.]org.
    Открытый ключ для расшифровки ключа AES хранится в конфигурации внутри исполняемого файла.

    Также в конфигурации исследуемого образца содержится один скриплет, который запускается при каждом запуске бэкдора. Данный скриплет называется telemetry и служит для отправки телеметрии (информации о зараженной системе) в социальную сеть mindly.social (на основе открытого движка Mastodon) через API сервиса. Содержимое телеметрии представлено в расширенной версии исследования на сайте Positive Technologies.Передаваемые данные шифруются таким же образом, как и файл динамической конфигурации, с использованием того же открытого ключа. Поэтому даже при перехвате переданных данных, не зная закрытого ключа, расшифровать их не получится.

    Отправка данных осуществляется с помощью API-ключа, который хранится в коде в открытом виде. Но злоумышленники ограничили область доступа API-ключа только записью данных. Таким образом, даже при получении API-ключа, прочитать какие-либо данные невозможно.

    [​IMG]
    Рисунок 4. Фрагмент кода Decoy Dog RAT
    Однако нам все же удалось установить, что телеметрия с зараженных хостов отправляется в аккаунт с юзернеймом @lahat, имя которого и дало название исследованию.

    [​IMG]
    Рисунок 5. Страница пользователя @lahat в mindly.social
    Помимо основного канала управления, исследуемый образец также выступал в качестве сервера, используя дополнительный локальный канал, который читает данные из файлового сокета /var/run/ctl.socket.

    В Decoy Dog предусмотрен механизм генерации DGA-имен при потере связи по основному каналу управления.

    Если в конфигурации включена опция bootstrap-domains, то для генерации используется один из основных доменов. В противном случае генерируется поддомен для одного из указанных в конфигурации доменов верхнего уровня или домен для одной из указанных зон (по умолчанию используется домен верхнего уровня dynamic-dns.net). В конфигурации исследуемого образца выбраны домены duckdns.org и dynamic-dns.net.

    Резервный домен генерируется как первая половина шестнадцатеричного представления MD5-хеша от строки с текущей датой в формате <год><месяц><день> и открытого ключа, используемого при шифровании коммуникации с управляющим сервером.

    Затем от получившегося домена (или одного из основных доменов, если включена опция bootstrap-domains) считается MD5-хеш, а затем от первой половины шестнадцатеричного представления берется по два символа и дописывается слева к домену. Таким образом получается набор из девяти доменов, к которым пытается подключиться ВПО. Например, для домена m-srv.daily-share.ns3[.]name получается восемь дополнительных доменов:

    • 6cm-srv.daily-share.ns3[.]name

    • 78m-srv.daily-share.ns3[.]name

    • 7fm-srv.daily-share.ns3[.]name

    • b1m-srv.daily-share.ns3[.]name

    • 98m-srv.daily-share.ns3[.]name

    • d5m-srv.daily-share.ns3[.]name

    • 2fm-srv.daily-share.ns3[.]name

    • 08m-srv.daily-share.ns3[.]name
    Код, которым генерируются домены, можно посмотреть в расширенной версии исследования на сайте Positive Technologies.

    Детальная схема работы Decoy Dog:

    [​IMG]
    Рисунок 6. Схема работы Decoy Dog
    Жертвами стали два десятка организаций
    По нашим данным, по меньшей мере 20 организаций в Российской Федерации были скомпрометированы с использованием Decoy Dog.

    [​IMG]
    Рисунок 7. Распределение жертв по отраслям
    Сейчас группа активно атакует организации в России, и мы продолжаем наше исследование. Пока что мы не знаем конечных целей атакующих, но в одном из инцидентов злоумышленники, используя Decoy Dog, вывели из строя ряд сервисов в телеком-операторе на территории России. Об этом рассказали исследователи из компании Solar 4RAYS на SOC-Форуме в докладе «Щелчок Таноса для оператора связи».

    Причины успешных атак — слабая защищенность Linux-систем
    После выхода материалов о Decoy Dog первой версии разработчики этого вредоноса приложили немало усилий, чтобы затруднить его обнаружение и анализ не только в трафике, но и в файловой системе.

    Одной из причин большого количества жертв стала недостаточная защищенность Linux-систем. В проектах по расследованию инцидентов мы весьма редко встречаем дополнительные системы мониторинга (auditd) и средства антивирусной защиты на хостах под управлением Linux.

    С вердиктами наших продуктов можно ознакомиться в расширенной версии исследования на сайте Positive Technologies.

    Авторы: Станислав Пыжов, Александр Григорян (Positive Technologies).

    Авторы благодарят за помощь в подготовке статьи команды Incident Response и Threat Intelligence экспертного центра Positive Technologies (PT Expert Security Center).

     
Loading...