Виявлено черв'як FritzFrog, що вражає сервери по SSH і будує децентралізований ботнет

Компанія 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, що вражає сервери по SSH і будує децентралізований ботнет

Код компонентів FritzFrog написаний мовою Go та працює у багатопотоковому режимі. Шкідливе програмне забезпечення включає кілька модулів, що запускаються в різних потоках:

  • Cracker - виконує підбір паролів на серверах, що атакуються.
  • CryptoComm + Parser – організує шифроване P2P-з'єднання.
  • CastVotes – механізм спільного вибору цільових хостів для атаки.
  • TargetFeed отримує список вузлів для атаки від сусідніх вузлів.
  • DeployMgmt — реалізація хробака, що розповсюджує шкідливий код на зламаний сервер.
  • Owned — відповідає за з'єднання з серверами, на яких вже запущено шкідливий код.
  • Assemble — збирає файл у пам'яті з блоків, що окремо передаються.
  • Antivir - модуль придушення конкуруючих шкідливих програм, визначає та завершує процеси з рядком "xmr", що споживають ресурси CPU.
  • Libexec - модуль для майнінгу криповалюти Monero.

Застосовуваний FritzFrog P2P-протокол підтримує близько 30 команд, відповідальних за передачу даних між вузлами, запуск скриптів, передачу компонентів шкідливого ПЗ, опитування стану, обмін логами, запуск проксі і т.п. Інформація передається окремим шифрованим каналом із серіалізацією у формат JSON. Для шифрування застосовується асиметричний шифр AES та кодування Base64. Для обміну ключами використовується протокол DH (Діффі-Гелман). Для визначення стану вузли постійно обмінюються ping-запитами.

Всі вузли ботнета підтримують розподілену БД з інформацією про атаковані та скомпрометовані системи. Цілі для атаки синхронізуються по всьому ботнету - кожен вузол атакує окрему мету, тобто. два різні вузли ботнента не будуть атакувати один і той самий хост. Вузли також збирають та передають сусідам локальну статистику, таку як розмір вільної пам'яті, uptime, навантаження на CPU та активність входів SSH. Ця інформація використовується для вирішення запуску процесу майнінгу або використання вузла тільки для атаки інших систем (наприклад, майнінг не запускається на навантажених системах або системах з частим підключенням адміністратора).

Для виявлення FritzFrog дослідниками запропоновано просту shell-скрипт. Для визначення ураження системи
можуть використовуватися такі ознаки як наявність слухаючого з'єднання на порту 1234, присутність шкідливого ключа в authorized_keys (на всіх вузлах встановлюється однаковий SSH-ключ) і присутність у пам'яті запущених процесів "ifconfig", "libexec", "php-fpm" і "nginx", що не мають пов'язаних виконуваних файлів ("/proc/ /exe» вказує на віддалений файл). Ознакою також може бути наявність трафіку на мережевий порт 5555, що виникає при зверненні шкідливого ПЗ до типового пулу web.xmrpool.eu в процесі майнінгу криптовалюти Monero.

Джерело: opennet.ru

Додати коментар або відгук