Киберпреступники выбирают разные способы заработка: одни идут по пути шантажа и вымогательства, как операторы шифровальщиков-вымогателей, другие зарабатывают на человеческих слабостях, «продавая» компенсации за пандемию или предлагая вложиться в новейшую перспективную криптовалюту. Есть и те, кто не стремится к попаданию в заголовки СМИ, скрытно внедряя майнеры криптовалют в системы, до которых получается добраться. В этом посте мы расскажем о TeamTNT — группировке, которая зарабатывает на нелегальном криптомайнинге в облачных Linux-системах.
Немного истории
В 2019 году мы выставили в интернет ханипот в виде незащищённого Docker-образа и практически сразу зафиксировали нашествие криптовалютных майнеров. Позже мы добавили в ханипот неверно настроенную NoSQL СУБД Redis, которая хранит данные в памяти и должна работать только в защищённом окружении. Возросшее количество майнеров подтвердило, что этот тренд необходимо изучить более внимательно.
В 2020 году мы продолжали наблюдение за ханипотом и отметили, что ряд скриптов развёртывания майнеров в нашей раз за разом оказывался более продвинутыми и агрессивными по сравнению с остальными. Эти скрипты и майнеры были созданы группой злоумышленников под названием TeamTNT.
Первое упоминание о TeamTNT относится к 2011 году, когда сайт gold.de был взломан группой хакеров, использовавших сигнатуру «HildeGard@TeamTNT». Подобные сигнатуры мы встречали в shell-скриптах и исполняемых ELF-файлах Linux.
Анализ постов в соцсетях, скриптов и текстов TeamTNT позволяет сделать вывод, что по крайней мере для некоторых из участников группы немецкий язык является родным.
Точное число участников TeamTNT достоверно неизвестно, однако в одном из твитов группы о наборе новых членов говорилось о 12 программистах.
Отличительной особенностью участников TeamTNT является их позиционирование: они дистанцируются от других представителей киберподполья, заявляя о себе как о «честных грабителях», не желающих причинить вреда, или даже как о RedTeam — команде пентестеров, которые занимаются троллингом ИБ-служб, недобросовестно относящихся к своим обязанностям.
Кампании TeamTNT
В ходе наблюдения за деятельностью группировки мы выявили несколько атак. Во время одной из них были развёрнуты криптовалютные майнеры и распределённые бот-сети для проведения DDoS-атак на открытые и неправильно настроенные порты Docker Daemon.
В 2020 году и начале 2021 года инцидентов с участием этой группы стало больше. В одном из них в декабре 2020 года использовался IRC-бот TNTbotinger с поддержкой DDoS, а в январе 2021 года в кампанию был интегрирован вредоносный shell-скрипт для кражи учётных данных в облаке.
Некоторые из кампаний были простыми и понятными, как, например, COVID-брендированная кампания в которой использовалась тема пандемии. В других случаях в полной мере использовался репертуар инструментов и техник TeamTNT. Рассмотрим некоторые из них.
COVID-19
Как и другие группы злоумышленников, TeamTNT использовала тему COVID-19 в названии своих вредоносных программ и URL-адресах развёртывания. Группа также пользовалась околопандемическими темами для распространения вредоносных образцов, первый из которых был замечен в апреле 2020 года, а последний — в мае 2020 года. Кампания была недолгой, что необычно, учитывая, что пандемия тогда только началась. Возможно, группа не получала желаемых результатов или не хотела задерживаться в высококонкурентном пространстве COVID-мошенников.
Black-T
Уникальной особенностью кампании Black-T от TeamTNT была функция INFECT_ALL_CONTAINERS, которая делала именно то, что следует из её названия: проверяла наличие запущенных контейнеров и развёртывала в них вредоносный код.
Примечательно, что после развёртывания вредоносных образцов в запущенных контейнерах на хосте запускались новые экземпляры вредоносных контейнеров. Эта особенность вызвала большой резонанс в сообществе DevOps:
Kinsing Killer
Майнер Kinsing, также ориентированный на контейнерные системы, появился в начале 2020 года и стал атаковать неправильно настроенные порты API Docker Daemon. Поскольку целевые среды были общими и существовала жёсткая конкуренция за ресурсы, TeamTNT внедрила в свои разработки функции для поиска и нейтрализации следов Kinsing в средах жертв, следуя принципу «должен остаться только один». Этот же приём TeamTNT использовала и против других «коллег».
Docker4Mac
В декабре 2020 года мы получили образец кода из новой кампании, которую назвали Docker4Mac по уникальной строке-маркеру, указывающей на основную цель — пользователей Docker с машинами под управлением macOS. Мы установили, что образец был основан на действующем скрипте из open-source-проекта Weave Scope, который отображает и мониторит контейнеры и хосты Docker, Kubernetes и AWS ECS, а также даёт возможность управлять их работой.
TeamTNT внедрила вредоносные инструкции в скрипты Weave Scope, после чего заманивала пользователей проекта и заражала среды оркестровки контейнеров.
Цель этой кампании — кража учётных данные поставщика облачных услуг (CSP) и одновременное развёртывание криптовалютного майнера. Это стало нововведением в тактиках группы, поскольку в других кампаниях эти действия выполнялись на разных этапах атаки. Это также был один из первых случаев, когда целью атаки стали технологии оркестровки контейнеров.
AWS Stealer
Злоумышленники обычно используют слабые места в системе безопасности целевого устройства для выполнения своего кода и достижения своих целей. Но поскольку эксплойты становятся слишком дорогими для приобретения, а поиск новых уязвимостей становится всё сложнее, некоторые злоумышленники, в данном случае TeamTNT, вместо этого ищут неправильно или небезопасно сконфигурированные хосты в качестве точек входа.
Ближе к концу 2020 года TeamTNT начала кампанию, направленную на клиентские экземпляры (instance), работающие на Amazon Web Services (AWS). В этом сценарии, если бы TeamTNT удалось скомпрометировать и получить доступ к экземпляру, группа смогла бы получить доступ к любым учётным данным, доступным через службу метаданных экземпляра. Важно отметить, что запрос к серверу метаданных может быть сделан только изнутри экземпляра, поскольку IP-адрес является локальным адресом. Поскольку предыдущими целями TeamTNT были контейнеры и неправильно сконфигурированные сервисы, группа случайно запустила своё вредоносное ПО на нескольких сотнях экземпляров клиентов.
Несмотря на то, что методы заражения TeamTNT меняются от кампании к кампании, типичная схема атаки включает сканирование списка целей на предмет слабых мест в системе безопасности и неправильной конфигурации, таких как незащищённые экземпляры Redis, уязвимые устройства IoT, уязвимые API Docker, учётные данные, попавшие в утечки, и устройства, доступные через Secure Shell (SSH).
Если в результате сканирования обнаруживается проблема безопасности, TeamTNT загружает на систему-жертву полезную нагрузку. Типичные полезные нагрузки группы включают в себя программы для кражи учётных данных, сканеры локальной сети, обратные шеллы (reverse shells), криптовалютные майнеры и даже IRC-боты.
Техники кражи учётных данных
Одной из основных целей деятельности TeamTNT является кража учётных данных организации. Это может быть особенно опасно, поскольку даёт группе возможность использовать такие учётные данные для получения доступа к другим ИТ-системам — чтобы заразить больше машин и установить дополнительные криптовалютные майнеры.
Рассмотрим некоторые методы, которые группа использует для кражи учётных данных
SSH Credential Theft
Одна из самых популярных тактик TeamTNT заключается в краже локальных учётных данных и создании локальных пользователей с предоставлением SSH-доступа. Это делается для того, чтобы обеспечить возможность возврата в систему после заражения. Во многих случаях злоумышленники используют свои собственные открытые ключи SSH
AWS Credential Theft
Начиная с последнего квартала 2020 года многие из найденных нами образцов содержали функции, предназначенные для поиска учётных данных AWS в заражённой системе. Изначально эти образцы были довольно примитивны и искали файл учётных данных в домашней папке пользователя root. Но вскоре группа выпустила новый вариант, который добавил в поиск других пользователей, чтобы получить доступ к учётным данным, размещённым клиентами в ~/.aws/credentials..
Новые версии вредоносного ПО теперь ищут в нескольких местах и проверяют переменные среды, в которых клиенты могли разместить учётные данные AWS. Основной целью этих функций являются пользователи, использующие инструмент интерфейса командной строки AWS или фреймворки AWS, которые позволяют сохранять информацию об авторизации на машине пользователя в текстовых файлах или переменных окружения.
Docker API Credential Theft
В январе 2021 года мы получили через контейнерный ханипот образец, который демонстрировал интересное поведение: он искал на скомпрометированных системах не только учётные данные SSH и AWS, но и учётные данные Docker API. Все файлы с учётными данными, которые находит вредоносная программа, загружаются на управляющий сервер.
Пользователи Docker, желающие управлять сервисом удалённо, могут настроить API по своему усмотрению — с настройками в диапазоне от полного отсутствия безопасности до включения криптографии и требований к учётным данным. Хотя данные Shodan показывают, что количество небезопасных API Docker уменьшается, злоумышленники, похоже, также приспосабливаются к требованиям времени, совершенствуя свои вредоносные программы.
Выводы
Монетизация вредоносного ПО остаётся сильным стимулом для злоумышленников. В условиях пандемии COVID-19 организации фокусируются на облачных технологиях, поэтому неудивительно, что группы злоумышленников переносят свои операции в облако: это всё более прибыльная цель. Майнинг криптовалюты — популярный метод монетизации благодаря своей скрытности и высокой степени автоматизации. Это позволяет злоумышленникам с относительной лёгкостью внедрять в системы жертв свои вредоносные программы. Доступность программного обеспечения с открытым исходным кодом, такого как руткит Diamorphine, обеспечивает злоумышленникам дополнительные инструменты для преступной деятельности.
Сама TeamTNT переключила внимание на облачные технологии. В своих последних кампаниях группа активно искала облачные учётные данные, использовала неправильную конфигурацию серверов и уничтожала майнеры конкурентов. Учитывая то, что́ мы уже увидели от этой группы за относительно короткое время, можно ожидать, что TeamTNT будет постоянно совершенствовать свои инструменты и методы.
Для предприятия последствия успешной атаки TeamTNT могут быть особенно разрушительными. Помимо того, что организации придётся заплатить за чрезмерный расход электроэнергии, атаки также могут нарушить работу систем путём захвата ресурсов, что приведёт к отказу в обслуживании и остановке производства.
Ещё большую опасность представляет кража облачных учётных данных, которые, в зависимости от связанных с ними разрешений, могут позволить злоумышленнику получить доступ и даже контроль над ИТ-инфраструктурой. После этого злоумышленник может совершить ряд вредоносных действий, например, отключить системы, слить конфиденциальные данные, внедрить бэкдоры для получения постоянного доступа к системе и, конечно, установить майнеры криптовалюты и другие вредоносные программы.
Рекомендации
Многие кибергруппировки, подобно TeamTNT стремятся воспользоваться массовым переходом компаний к использованию облачных услуг. В связи с этим организациям следует быть особенно бдительными при внедрении облачных технологий, обращая внимание на модель разделения ответственности, в которой CSP отвечают за безопасность инфраструктуры, а организации — за работу с облачными активами.
Мы рекомендуем сотрудникам службы безопасности и ИТ-администраторам применять следующие показавшие свою эффективность методы, чтобы свести к минимуму вероятность успешной атаки со стороны групп, подобных TeamTNT:
применяйте принцип наименьших привилегий, при котором пользователям предоставляется доступ только к тем частям системы, которые им необходимы, чтобы уменьшить площадь атаки и помочь сдержать ущерб даже в случае успешной компрометации системы;
если у вас включён SSH, внедрите аутентификацию закрытых ключей на стороне клиента для повышения безопасности управления доступом;
регулярно обновляйте системы и устройства, чтобы снизить вероятность использования уязвимостей.