Выяўлены чарвяк 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

Дадаць каментар