Компания Guardicore, специализирана в защитата на дата центрове и облачни системи, новото високотехнологично зловредно софтуерно средство FritzFrog, което засяга сървъри, базирани на Linux. FritzFrog съчетава червей, разпространяващ се чрез bruteforce атака на сървъри с отворен SSH порт, и компоненти за изграждане на децентрализирана бот мрежа, която функционира без управляващи възли и няма единна точка на отказ.
За изграждане на бот мрежата се използва собствен 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 — реализиране на червей, който разпространява зловреден код на компрометиран сървър.
- Owned — отговаря за свързването към сървъри, на които вече е стартиран зловреден код.
- Assemble — събира файл в паметта от отделно предавани блокове.
- Antivir — модул за потискане на конкурентни зловредни програми, идентифицира и приключва процеси с низ «xmr», консумиращи ресурси на процесора.
- Приложеният в FritzFrog P2P протокол поддържа около 30 команди, отговорни за предаване на данни между възлите, стартиране на скриптове, предаване на компоненти на зловреден софтуер, запитване за състояние, обмен на логове, стартиране на прокси и т.н. Информацията се предава по отделен шифрован канал с сериализация във формат JSON. За шифроване се използва асиметричен шифър AES и кодиране Base64. За обмен на ключове се използва протокол DH (
Diffie-Hellman). Для определения состояния узлы постоянно обмениваются ping-запросами.
Всички възли на ботнетата поддържат разпределена база данни с информация за нападнатите и компрометирани системи. Целите за атака се синхронизират изцяло в ботнета — всеки възел атакува отделна цел, т.е. две различни възли на ботнета няма да атакуват един и същ хост. Възлите също така събират и предават на съседите локална статистика, като размер на свободната памет, uptime, натоварване на CPU и активност на входовете по SSH. Тази информация се използва за вземане на решение дали да се стартира процес на копаене или възелът да се използва само за атака на други системи (например, копаенето не се стартира на натоварени системи или системи с често свързване на администратора).
За откриването на FritzFrog изследователите предложиха прост . За определяне на заразена система
могат да се използват такива признаци като наличието на слушаещо съединение на порт 1234, присъствието на в authorized_keys (на всички възли се инсталира един и същ SSH ключ) и присъствието в паметта на активни процеси „ifconfig“, „libexec“, „php-fpm“ и „nginx“, които нямат свързани изпълними файлове („/proc//exe“ сочи към отдалечен файл). Признак може да бъде и наличието на трафик на мрежов порт 5555, който възниква при достъп на злонамерен софтуер до типичния пул web.xmrpool.eu в процеса на копаене на криптовалута Monero.
Източник: opennet.ru
