Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Сегодняшняя статья затрагивает малоизученную тему — разработку вредоносного ПО на языке Go. Обычно он используется для системного программирования. Однако мы поговорим о вирусе, нацеленном на облачные инфраструктуры, которые позиционируются как «бессерверные». Их популярность растет, и, конечно же, хакеры ищут подходы к их эксплуатации.
«Бессерверный» — это не более чем фигура речи. У систем вроде AWS Lambda есть серверная часть, и она работает на Linux. Однако разработчиков это в теории не касается. Для них применение Lambda экономит время, поскольку поддержка системы ложится на Amazon. В теории остается только писать код и не задумываться ни о чем. Впрочем, думать о безопасности все же придется.
Эфемерность и динамичность, присущие лямбда‑функциям, могут осложнить обнаружение и митигацию угроз. Помочь с этим призваны решения вроде тех, что предоставляет Cado Labs. Последнее исследование этой компании мы с тобой сегодня изучим.
Итак, в Cado Labs обнаружили вредонос, атакующий аккаунты AWS Lambda. Он получил имя Denonia — по названию того домена, с которым обменивается информацией. Вредонос использует новейшие приемы разрешения адресов для взаимодействия с C2, что позволяет ему ускользать от типичных механизмов обнаружения.
Denonia в целом безобиден — он всего‑навсего гоняет программу для майнинга криптовалюты. Распространен он пока, по данным Cado Labs, тоже не слишком широко. Однако Denonia демонстрирует потенциал эксплуатации окружений Lambda, результат которой может оказаться и более гнусным.
Впервые образец Denonia был найден на ресурсе с таким хешем SHA-256:
a31ae5b7968056d8d99b1b720a66a9a1aeee3637b97050d95d96ef3a265cbbca
Хотя в имени файла присутствует python, на самом деле этот вредонос написан на Go и, по‑видимому, содержит кастомизированный вариант майнингового софта XMRig, а также обладает другими невыясненными функциями. Вот что показало более тщательное исследование.
Во время динамического анализа вредонос быстро прекратил выполняться и выдал в лог следующую ошибку.
Такие переменные окружений специфичны для «лямбд» — поэтому отчасти позволяют судить о показателях той среды, для выполнения в которой предназначен этот вирус. Дальнейший анализ бинарника выявил, что это 64-разрядный исполняемый файл ELF для архитектуры x86-64. Вредонос также использует ряд сторонних библиотек, среди которых есть и AWS Lambda for Go. Она предназначена для выполнения в окружениях AWS Lambda.
Вредоносное ПО, написанное на языке Go, стремительно набирает популярность. Этот язык привлекает разработчиков вредоносов сразу по нескольким причинам — в том числе потому, что на нем чрезвычайно просто писать кросс‑платформенные исполняемые файлы. К тому же программы на Go статически слинкованы, что облегчает деплой.
Вирусным аналитикам, столкнувшимся с малварью на Go, нужно знать о некоторых особенностях. Из‑за статической связанности бинарники получаются большими, что затрудняет статический анализ. Кроме того, Go своеобразно обращается со строками. Они не завершаются нулем — в отличие от того, как принято в С‑образных языках. Строки здесь представляют собой большой блоб и структуру с указателем на строку в блобе и целым числом, которое означает длину строки. Это может запутать некоторые инструменты статического анализа.
У анализа бинарника, предназначенного для запуска на AWS Lambda, тоже есть ряд особенностей.
Denonia явно спроектирована для выполнения в лямбда‑окружениях, но мы пока не знаем, как именно она развертывается. Возможно, от нее всего‑то и требуется скомпрометировать доступ к AWS и секретные ключи, после чего злоумышленник вручную развернет ее в скомпрометированном лямбда‑окружении, как уже делали с более простыми скриптами на Python.
Инструмент redress позволил выявить некоторые интересные сторонние библиотеки Go, встраиваемые этим вредоносом. По ним можно частично вывести, как именно он функционирует:
Источник: xakep.ru