Нов ботнет, наречен Kairos, се разпространява към Linux устройства чрез много стара грешка: Telnet услуга, която приема потребителя root без парола.

След като влязат, атакуващите инсталират малка програма на Go, която превръща устройството във възел за DDoS операции. Кампанията показва, че елементарни пропуски в сигурността все още дават лесен път на атакуващите.

Kairos не използва сложен експлойт или zero-day уязвимост. Атакуващите се свързват към изложени в интернет Telnet услуги и влизат като root с празна парола.

Слабият отдалечен достъп е захранвал много ботнети и преди, включително ботнет, базиран на VOIP, който атакува рутери и също разчиташе на стандартни Telnet данни за вход.

Анализатори от Nozomi Networks откриха зловредния софтуер, след като техните honeypot системи засякоха три различни IP адреса, разпространяващи образци на Kairos.

В доклада на Nozomi Networks Labs той е описан като досега недокументиран DDoS бот за Linux. Трите образеца представляват една и съща програма.

Те се различават само по предварително зададения адрес на командно-контролния (C2) сървър и по нивото на корекции на компилатора на Go – версии 1.27.0 и 1.27.1. Това подсказва, че операторът прекомпилира една и съща кодова база за всеки C2 сървър.

Хакери експлоатират Telnet без парола

Всяка наблюдавана инфекция започваше по един и същ начин. Атакуващият познаваше стандартния Telnet вход – потребител root с празна парола. След това операторът изпълняваше кратък набор от команди на shell.

Първо, uname -m проверяваше типа на процесора на устройството, а зловредният код, поискан след това, x86_64, съответстваше на него. Това загатва, че операторът поддържа отделна версия за всяка архитектура.

След това командите преминаваха в папката /tmp, премахваха остатъци от предишни опити и изтегляха зловредния софтуер.

Команди на дропъра, използвани за изтегляне и изпълнение на зловредния код за x86_64 (Източник – Nozomi Networks)
Команди на дропъра, използвани за изтегляне и изпълнение на зловредния код за x86_64 (Източник – Nozomi Networks)

Дропърът опитва последователно няколко метода за изтегляне: wget, curl, BusyBox wget и накрая TFTP. Всяко изтеглено копие получава пълни права с chmod 777 и се стартира във фонов режим.

Резервните варианти с BusyBox и TFTP позволяват на товарача да работи на малки вградени системи, в които липсват обичайните инструменти. В примерната верига сървърът на 172[.]86[.]85[.]39 хостваше зловредния код на TCP порт 8080 и същевременно служеше като C2 на порт 9999.

След стартиране ботът се свързва към единствения си предварително зададен IP адрес и изпраща текстов сигнал REGISTER linux amd64 <NumCPU>. След това изпраща празен ред на всеки две секунди, за да поддържа сесията жива.

Ако връзката прекъсне, опитва отново на всеки пет секунди без ограничение. C2 може да изпраща само три команди: hold, която започва наводняване, !ka, която спира всички атаки и поставя бота на пауза, и !ku, която му позволява отново да приема атаки. Подобни заплахи, управлявани през Telnet, са ботнетът Tengu Mirai, който рестартира IoT устройства, когато някой се опита да го премахне.

Как Kairos залива целите и как да се защитим

Kairos не изпраща огромни обеми трафик. Вместо това отваря стотици или хиляди истински TCP връзки към жертвата и ги държи отворени. Ботът стартира 128 работни нишки на процесорно ядро, с минимум 256, така че устройство с 16 ядра отваря 2048 връзки при една атака.

Всяка нишка завършва нормално handshake, след което изпраща по един интервал на всеки пет секунди, за да държи сокета отворен. Ако целта откаже връзката, нишката опитва отново на всеки 100 милисекунди, което създава бърза „буря от връзки“.

Услугата на жертвата бавно изчерпва ресурсите си и спира да приема реални потребители. Ботът е прост и има слабости: няма устойчивост (persistence), саморазпространение, изпълнение на команди и функции против анализ.

Ботът Kairos се регистрира в C2 (Източник – Nozomi Networks)
Ботът Kairos се регистрира в C2 (Източник – Nozomi Networks)

Ботът се опитва да се скрие, като преименува себе си на [kworker/0:1], за да изглежда като нишка на ядрото на Linux. Въпреки това инструменти като ps и папката /proc пак показват истинското име.

Тъй като ботът завършва истински handshake, изходният му IP адрес е видим и за жертвата. Това е за разлика от IoT щама KATARU, който добавя повишаване на привилегиите и криптиран C2 трафик.

Защитаващите се трябва да изключат Telnet, да сменят стандартните или празните пароли и да блокират изходящия трафик към известните C2 адреси на портове 9999 и 8080.

Тъй като C2 адресът се променя с всяка компилация, Nozomi препоръчва разчитане на детекция, базирана на код. Екипите могат да добавят IDS правило за текстовия сигнал REGISTER linux и да внедрят публикуваното YARA правило.

Те трябва също да настроят известяване за всеки процес „kernel worker“, който държи много изходящи връзки. Изложените в интернет услуги остават честа входна точка, както се видя, когато уязвимост за заобикаляне на удостоверяването в cPanel беше използвана за внедряване на зловредния софтуер Mirai.

Индикатори за компрометиране (IoCs):-

ТипИндикаторБележка
IPv4103[.]124[.]165[.]53IP на атакуващия
IPv4172[.]86[.]85[.]39Хост на зловредния код (TCP/8080) и C2 (TCP/9999)
IPv445[.]129[.]56[.]140IP на атакуващия
IPv491[.]92[.]42[.]84C2 / сървър със зловреден код
IPv445[.]129[.]56[.]222IP на атакуващия
IPv485[.]11[.]167[.]41C2 / сървър със зловреден код
SHA-256bfdf77ee849bffff7d6812f343841f3278e6e75949ab3e25644f17c24be87213amd64
SHA-256181d1adfcf2da42afaa8fc1ceb4493cf2322c18431f3512673f4693e11b9cabdamd64
SHA-25687a77b056a6cf33ab3f72b534d57788046281349aacd42846f3df5e0b22655e1amd64
SHA-25601568930028bdcce6ecd7e923971cf41f145e045e59536aa264241bc9a8e9650arm
SHA-2567635821eced7092e916e86471567e26c20ee5bda4a7b96f6b3d21a921862a416arm
SHA-25682d0f2258b2eeeeacfaa719665e0435619f8cc2f1d5dd13dd08134e0bf2d7dd6arm
SHA-2565743ebfc697385909b3906af1ac9d851936e6556f323216e10cc1e129fa369a0mips
SHA-2561ef5835cb0dfe305de05d92874c8a05eada9c02fcd04d9548dd059b44405519amipsle
SHA-2569b628b5453576f3324036deb346db9cdd07bd673ecba4a464d072ba01a8b7a54386

Забележка: IP адресите и домейните са умишлено дефанг-нати (напр. [.]), за да се предотврати случайно разрешаване или превръщане в хипервръзки. Връщайте оригиналния вид само в контролирани платформи за разузнаване на заплахи като MISP, VirusTotal или вашия SIEM.