Содержание статьи
«Бессерверный» — это не более чем фигура речи. У систем вроде 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, а также обладает другими невыясненными функциями. Вот что показало более тщательное исследование.
Во время динамического анализа вредонос быстро прекратил выполняться и выдал в лог следующую ошибку.
![](https://static.xakep.ru/images/64842711bd68855669e9a5a4b1172509/26501/image1.png)
Такие переменные окружений специфичны для «лямбд» — поэтому отчасти позволяют судить о показателях той среды, для выполнения в которой предназначен этот вирус. Дальнейший анализ бинарника выявил, что это 64-разрядный исполняемый файл ELF для архитектуры x86-64. Вредонос также использует ряд сторонних библиотек, среди которых есть и AWS Lambda for Go. Она предназначена для выполнения в окружениях AWS Lambda.
Вредоносы на Go
Вредоносное ПО, написанное на языке Go, стремительно набирает популярность. Этот язык привлекает разработчиков вредоносов сразу по нескольким причинам — в том числе потому, что на нем чрезвычайно просто писать кросс‑платформенные исполняемые файлы. К тому же программы на Go статически слинкованы, что облегчает деплой.
Вирусным аналитикам, столкнувшимся с малварью на Go, нужно знать о некоторых особенностях. Из‑за статической связанности бинарники получаются большими, что затрудняет статический анализ. Кроме того, Go своеобразно обращается со строками. Они не завершаются нулем — в отличие от того, как принято в С‑образных языках. Строки здесь представляют собой большой блоб и структуру с указателем на строку в блобе и целым числом, которое означает длину строки. Это может запутать некоторые инструменты статического анализа.
Анализ лямбда-вредоносов
У анализа бинарника, предназначенного для запуска на AWS Lambda, тоже есть ряд особенностей.
Denonia явно спроектирована для выполнения в лямбда‑окружениях, но мы пока не знаем, как именно она развертывается. Возможно, от нее всего‑то и требуется скомпрометировать доступ к AWS и секретные ключи, после чего злоумышленник вручную развернет ее в скомпрометированном лямбда‑окружении, как уже делали с более простыми скриптами на Python.
Инструмент redress позволил выявить некоторые интересные сторонние библиотеки Go, встраиваемые этим вредоносом. По ним можно частично вывести, как именно он функционирует:
- lambda — библиотеки, образцы и инструменты для написания лямбда‑функций на Go;
- lambdacontext — вспомогательные функции для извлечения контекстной информации из запроса, активирующего лямбда‑функцию;
- aws — общий инструментарий AWS SDK для языка Go;
- doh-go — клиент DNS over HTTPS на Go, поддерживает такие провайдеры, как Quad9, Cloudflare и прочие.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»