Компания Guardicore, специализирана в защитата на центрове за данни и облачни системи,
За да се изгради ботнет, се използва собствен P2P протокол, в който възлите взаимодействат помежду си, координират организацията на атаките, поддържат работата на мрежата и наблюдават взаимното си състояние. Нови жертви се намират чрез извършване на bruteforce атака на сървъри, които приемат заявки чрез SSH. Когато бъде открит нов сървър, се извършва търсене в речник на типичните комбинации от потребителски имена и пароли. Контролът може да се извършва през всеки възел, което затруднява идентифицирането и блокирането на ботнет оператори.
Според изследователите ботнетът вече има около 500 възела, включително сървърите на няколко университета и голяма железопътна компания. Отбелязва се, че основните цели на атаката са мрежи от образователни институции, медицински центрове, държавни агенции, банки и телекомуникационни компании. След като сървърът бъде компрометиран, на него се организира процесът на копаене на криптовалутата Monero. Дейността на въпросния зловреден софтуер е проследена от януари 2020 г.
Особеното при FritzFrog е, че съхранява всички данни и изпълним код само в паметта. Промените на диска се състоят само в добавяне на нов SSH ключ към файла authorized_keys, който впоследствие се използва за достъп до сървъра. Системните файлове не се променят, което прави червея невидим за системи, които проверяват целостта чрез контролни суми. Паметта също така съхранява речници за груби пароли и данни за копаене, които се синхронизират между възлите с помощта на протокола P2P.
Злонамерените компоненти са камуфлирани като процеси ifconfig, libexec, php-fpm и nginx. Ботнет възлите наблюдават състоянието на своите съседи и, ако сървърът се рестартира или дори операционната система се преинсталира (ако модифициран файл authorized_keys е прехвърлен към новата система), те повторно активират злонамерени компоненти на хоста. За комуникация се използва стандартен SSH - злонамереният софтуер допълнително стартира локален „netcat“, който се свързва с интерфейса на localhost и слуша трафика на порт 1234, до който външните хостове имат достъп през SSH тунел, използвайки ключ от authorized_keys за свързване.
Кодът на компонента FritzFrog е написан на Go и работи в многонишков режим. Зловреден софтуер включва няколко модула, които работят в различни нишки:
- Cracker - търси пароли на атакувани сървъри.
- CryptoComm + Parser - организира криптирана P2P връзка.
- CastVotes е механизъм за съвместно избиране на целеви хостове за атака.
- TargetFeed - Получава списък с възли за атака от съседни възли.
- DeployMgmt е реализация на червей, който разпространява зловреден код към компрометиран сървър.
- Притежаван - отговаря за свързването със сървъри, които вече изпълняват зловреден код.
- Assemble - сглобява файл в паметта от отделно прехвърлени блокове.
- Antivir - модул за потискане на конкурентен зловреден софтуер, идентифицира и прекратява процеси с низа "xmr", които консумират ресурси на процесора.
- Libexec е модул за копаене на криптовалута Monero.
P2P протоколът, използван във FritzFrog, поддържа около 30 команди, отговорни за прехвърляне на данни между възли, изпълнение на скриптове, прехвърляне на компоненти на злонамерен софтуер, статус на анкета, обмен на регистрационни файлове, стартиране на прокси сървъри и т.н. Информацията се предава по отделен криптиран канал със сериализация във формат JSON. Шифроването използва асиметричен AES шифър и Base64 кодиране. DH протоколът се използва за обмен на ключове (
Всички ботнет възли поддържат разпределена база данни с информация за атакувани и компрометирани системи. Целите за атака се синхронизират в целия ботнет - всеки възел атакува отделна цел, т.е. два различни ботнет възела няма да атакуват един и същ хост. Възлите също събират и предават локална статистика на съседите, като например размер на свободната памет, време за работа, натоварване на процесора и активност при влизане в SSH. Тази информация се използва, за да се реши дали да се стартира процесът на копаене или да се използва възелът само за атака на други системи (например копаене не стартира на заредени системи или системи с чести администраторски връзки).
За да идентифицират FritzFrog, изследователите са предложили прост
признаци като наличието на слушаща връзка на порт 1234, присъствието
Източник: opennet.ru