FritzFrog-vermo detektis, infektante servilojn per SSH kaj konstruante malcentralizitan botneton

Kompanio Guardicore, specialigita pri protekto de datumcentroj kaj nubaj sistemoj, rivelis FritzFrog, nova altteknologia malware kiu atakas Linukso-bazitajn servilojn. FritzFrog kombinas vermon, kiu disvastiĝas per krudforta atako sur serviloj kun malfermita SSH-haveno, kaj komponantojn por konstrui malcentralizitan botneton, kiu funkcias sen kontrolnodoj kaj ne havas ununuran punkton de fiasko.

Por konstrui botneton, estas uzata proprieta P2P-protokolo, en kiu nodoj interagas inter si, kunordigas la organizon de atakoj, subtenas la funkciadon de la reto kaj kontrolas la statuson de unu la alian. Novaj viktimoj estas trovitaj farante brutfortan atakon sur serviloj kiuj akceptas petojn per SSH. Kiam nova servilo estas detektita, vortaro de tipaj kombinaĵoj de ensalutoj kaj pasvortoj estas serĉata. Kontrolo povas esti farita per iu ajn nodo, kio malfaciligas identigi kaj bloki botnet-funkciigistojn.

Laŭ esploristoj, la botneto jam havas ĉirkaŭ 500 nodojn, inkluzive de la serviloj de pluraj universitatoj kaj granda fervoja kompanio. Oni rimarkas, ke la ĉefaj celoj de la atako estas retoj de edukaj institucioj, medicinaj centroj, registaraj agentejoj, bankoj kaj telekomunikaj kompanioj. Post kiam la servilo estas kompromitita, la procezo de minado de la kripta monero Monero estas organizita sur ĝi. La agado de la koncerna malware estas spurita ekde januaro 2020.

La speciala afero pri FritzFrog estas, ke ĝi konservas ĉiujn datumojn kaj plenumeblan kodon nur en memoro. Ŝanĝoj sur la disko konsistas nur en aldoni novan SSH-ŝlosilon al la dosiero authorized_keys, kiu estas poste uzata por aliri la servilon. Sistemdosieroj ne estas ŝanĝitaj, kio igas la vermon nevidebla al sistemoj kiuj kontrolas integrecon per ĉeksumoj. La memoro ankaŭ stokas vortarojn por krudfortaj pasvortoj kaj datumoj por minado, kiuj estas sinkronigitaj inter nodoj uzante la P2P-protokolon.

Malicaj komponantoj estas kamuflitaj kiel ifconfig, libexec, php-fpm kaj nginx-procezoj. Botnet-nodoj kontrolas la staton de siaj najbaroj kaj, se la servilo estas rekomencita aŭ eĉ la OS estas reinstalita (se modifita authorized_keys-dosiero estis transdonita al la nova sistemo), ili reaktivigas malicajn komponentojn sur la gastiganto. Por komunikado, norma SSH estas uzata - la malware aldone lanĉas lokan "netcat" kiu ligas al la lokahost-interfaco kaj aŭskultas trafikon sur haveno 1234, kiun eksteraj gastigantoj aliras tra SSH-tunelo, uzante ŝlosilon de authorized_keys por konekti.

FritzFrog-vermo detektis, infektante servilojn per SSH kaj konstruante malcentralizitan botneton

La kodo de FritzFrog estas skribita en Go kaj funkcias en plurfadena reĝimo. La malware inkluzivas plurajn modulojn, kiuj funkcias en malsamaj fadenoj:

  • Cracker - serĉas pasvortojn sur atakitaj serviloj.
  • CryptoComm + Parser - organizas ĉifritan P2P-konekton.
  • CastVotes estas mekanismo por kune elekti celajn gastigantojn por atako.
  • TargetFeed - Ricevas liston de nodoj por ataki de najbaraj nodoj.
  • DeployMgmt estas efektivigo de vermo kiu distribuas malican kodon al kompromitita servilo.
  • Posedata - respondeca pri konekto al serviloj, kiuj jam funkcias malican kodon.
  • Kunmeti - arigas dosieron en memoro de aparte translokigitaj blokoj.
  • Antivir - modulo por subpremi konkurantajn malware, identigas kaj ĉesigas procezojn per la ĉeno "xmr" kiu konsumas CPU-resursojn.
  • Libexec estas modulo por minado de la kripta monero Monero.

La P2P-protokolo uzata en FritzFrog subtenas ĉirkaŭ 30 komandojn respondecajn pri translokigo de datumoj inter nodoj, prizorgado de skriptoj, translokado de malware-komponentoj, voĉdonado de statuso, interŝanĝado de prokuriloj, lanĉado de prokuriloj ktp. Informoj estas transdonitaj per aparta ĉifrita kanalo kun seriigo en JSON-formato. Ĉifrado uzas nesimetrian AES-ĉifron kaj Base64-kodigon. La DH-protokolo estas uzata por ŝlosilŝanĝo (diffie-hellman). Por determini la staton, nodoj konstante interŝanĝas ping-petojn.

Ĉiuj botnet-nodoj konservas distribuitan datumbazon kun informoj pri atakitaj kaj kompromititaj sistemoj. Atakoceloj estas sinkronigitaj tra la botreto - ĉiu nodo atakas apartan celon, t.e. du malsamaj botnet-nodoj ne atakos la saman gastiganton. Nodoj ankaŭ kolektas kaj transdonas lokajn statistikojn al najbaroj, kiel senpaga memorgrandeco, funkciado, CPU-ŝarĝo kaj SSH-ensaluta agado. Ĉi tiu informo estas uzata por decidi ĉu komenci la minindustrian procezon aŭ uzi la nodon nur por ataki aliajn sistemojn (ekzemple, minado ne komenciĝas sur ŝarĝitaj sistemoj aŭ sistemoj kun oftaj administraj konektoj).

Por identigi FritzFrog, esploristoj proponis simplan ŝela skripto. Determini sisteman damaĝon
signoj kiel la ĉeesto de aŭskulta konekto sur haveno 1234, la ĉeesto malica ŝlosilo en rajtigitaj_ŝlosiloj (la sama SSH-ŝlosilo estas instalita sur ĉiuj nodoj) kaj la ĉeesto en memoro de kurantaj procezoj "ifconfig", "libexec", "php-fpm" kaj "nginx", kiuj ne havas asociitajn ruleblajn dosierojn ("/proc/ /exe" montras al fora dosiero). Signo ankaŭ povas esti la ĉeesto de trafiko sur reto-haveno 5555, kiu okazas kiam malware aliras la tipan naĝejon web.xmrpool.eu dum la minado de la kripta monero Monero.

fonto: opennet.ru

Aldoni komenton