- Več kampanj je zlorabilo zaupanja vredne pakete in orodja React Native npm, od komponent uporabniškega vmesnika do orodij CLI, s prevzemom računov in tipografskimi napakami.
- Napadalci vse pogosteje uporabljajo sofisticirano večstopenjsko zlonamerno programsko opremo z uporabo Solane ali decentraliziranega C2, pri čemer ciljajo na razvijalske računalnike, cevovode CI in podatke o denarnicah ali poverilnicah.
- Ponudniki varnostnih rešitev se zdaj zanašajo na analizo umetne inteligence, preverjanja ohlajanja in okrepljene kontrole izhoda CI, da bi te napade v dobavni verigi odkrili in omejili v nekaj minutah.
- Ekipe React Native morajo kombinirati strogo higieno odvisnosti, npm 2FA, zaklepne datoteke in stalno spremljanje, da bi smiselno zmanjšale tveganje v dobavni verigi.

React Native je postal priljubljen ogrodje za gradnjo mobilnih aplikacij, zaradi česar je njegov ekosistem npm izjemno privlačna tarča za napadalce, ki želijo ogroziti razvijalske stroje in cevovode CI. V zadnjih nekaj letih je več zelo sofisticiranih kampanj zlorabilo zaupanja vredne pakete React Native, priljubljena orodja okoli ogrodja in celo tipkarsko napačne pripomočke za namestitev zlonamerne programske opreme, krajo poverilnic, izsiljevanje denarnic in sabotiranje projektov JavaScript v velikem obsegu.
Če danes gradite ali vzdržujete aplikacije React Native, ni več dovolj, da samo »namestite npm in upate na najboljše«. Več akterjev grožnje sistematično zlorablja npm, pri čemer ciljajo na vse od komponent uporabniškega vmesnika do orodij CLI in celo na graf tranzitivnih odvisnosti, ki se skriva globoko v vaših zaklenjenih datotekah. Ta članek vas bo vodil skozi glavne znane incidente, analiziral delovanje zlonamerne programske opreme in predstavil pragmatične korake, ki jih lahko sprejmete za zmanjšanje radija eksplozije v vašem lastnem razvojnem okolju.
Prevzem računa in zlonamerna programska oprema v vhodnih komponentah React Native
Eden najbolj zaskrbljujočih incidentov v dobavni verigi v svetu React Native je prizadel dve zelo pogosti komponenti uporabniškega vmesnika za izbiro telefona in države: react-native-international-phone-number in react-native-country-select. Oba paketa, ki ju vzdržuje isti avtor (@AstrOOnauta, uporabnik npm-a astroonauta), so nabrale več deset tisoč tedenskih prenosov in so vgrajene v številne produkcijske mobilne aplikacije.
16. marca 2026 je StepSecurityjev analitik paketov, ki temelji na umetni inteligenci, prvi opazil, da so nove različice teh knjižnic nenadoma okužene z zlonamerno programsko opremo, ki se namešča med namestitvijo. Takoj ogrožene izdaje so bile react-native-international-phone-number@0.11.8 in react-native-country-select@0.3.91Zadnje potrjene čiste različice na tej točki so bile 0.11.7 in 0.3.9 oz.
Začetna zadnja vrata (1. val) so bila brutalno preprosta: nova preinstall scenarij in močno zakrit install.js datoteka, priložena v tarball. Zlonamerni package.json odlomek je izgledal takole:
"scripts": { "preinstall": "node install.js" }
Ker se skripti življenjskega cikla npm samodejno izvajajo na npm install, vsak, ki je vlekel te različice – lokalno ali v neposrednem okolju – je zagnal zlonamerno programsko opremo, ne da bi uvozil kakršno koli kodo. Za ogrožene različice ni bilo ustreznih oznak Git, izdaj ali izvedb CI delovnega toka in gitHead ujema se s prejšnjo dobro izdajo, kar je močan pokazatelj, da je napadalec pridobil neposreden dostop do objave vzdrževalčevega npm računa, namesto da bi spremenil repozitorij GitHub.
Podatki o prenosih v tistem času kažejo, kako slabo bi to lahko bilo: približno 9,000 tedenskih prenosov za react-native-country-select in več kot 20,000 za react-native-international-phone-number, kar skupaj pomeni več kot 130,000 prenosov na mesec. To je ravno tista vrsta odvisnosti z veliko količino in nizko stopnjo vidnosti, ki se tiho odraža na tisočih razvijalskih in CI strojev.
Trivalovni napad: od očitne prednamestitve do prikritih verig odvisnosti
Kampanja proti tem paketom React Native se je odvijala v treh različnih valovih, pri čemer je bila vsaka iteracija bolj izmikajoča se od prejšnje, hkrati pa je bila ponovno uporabljena ista osnovna zlonamerna programska oprema. StepSecurity je spremljal razvoj dogodkov skoraj v realnem času in se usklajeval z vzdrževalcem, vendar je napadalec večkrat ponovno pridobil ali ohranil dostop do ogroženega npm računa.
1. val (16. marec 2026) se je osredotočil na neposredno preinstall kavelj v obeh paketih. V približno petih minutah po objavi je umetna inteligenca StepSecurity označila nove izdaje kot kritične, na GitHubu pa so bile odprte težave: #165 za react-native-international-phone-number in št. 11 za react-native-country-selectVzdrževalec se je hitro odzval, ovrgel zlonamerne različice in izdal čisto različico. react-native-country-select@0.4.0Skupni čas od objave do ukinitve je bil približno 2 uri in 21 minut – hitro po standardih ekosistema.
Kljub temu napadalec ni nikoli izgubil nadzora nad poverilnicami npm, kar je 17. marca privedlo do 2. vala. Namesto da bi v glavne pakete ponovno spustil očiten skript, je napadalec pripravil dva nova paketa z omejenim obsegom, ki delujeta kot skrita infrastruktura:
@usebioerhold8733/s-format@2.0.1– votel klonstring-formatzpostinstall: "node init.js"scenarij, vendar manjkainit.jsdatoteko, zato kavelj tiho odpove.@agnoliaarisian7180/string-argv@0.3.0– skoraj prazen paket (README, LICENSE, package.json), katerega edini pravi namen je bil biti odvisen od@usebioerhold8733/s-format, z naslovom vzdrževalca, ki temelji na ProtonMailu.
Kasneje tistega večera, react-native-international-phone-number@0.12.1 je bil objavljen z @agnoliaarisian7180/string-argv@0.3.0 dodano kot nova odvisnost, spet brez kakršne koli aktivnosti dejanj GitHub. Na tej točki je bila veriga postavljena v pripravo, vendar neaktivna in je čakala na vklop koristnega tovora. Ko je StepSecurity poročal o anomalijah, je vzdrževalec potrdil tisto, kar je bilo že očitno iz artefaktov: »moj npm račun je bil napaden in knjižnica je bila prevzeta«.
Tretji val (18. marec) je preoblikoval postopno infrastrukturo v aktivno večplastno verigo za dostavo zlonamerne programske opreme in jo nato v hitrem zaporedju izpopolnil. Nove različice paketov relejev in glavne knjižnice so bile naložene v manj kot eni uri, pri čemer je napadalec ponavljal način zagona koristnega tovora.
Končna veriga je izgledala takole:
react-native-international-phone-number@0.12.2/0.12.3 → @agnoliaarisian7180/string-argv@latest → @usebioerhold8733/s-format@latest → postinstall → node child.js → init.js (malware)
Napadalec je najprej vklopil koristni tovor v @usebioerhold8733/s-format@2.0.2 z dodajanjem velikega, zakritega init.js datoteka, ki je bila bajtno enaka prejšnji install.js iz 1. vala. Nato so spremenili postinstall poklicati child.js Namesto init.js, objavljeno 2.0.3 z manjkajočim scenarijem (še ena poskusna različica) in končno poslano 2.0.4 z drobnim child.js nalagalnik, ki preprosto preveri init.js in ga izvede prek child_process.exec medtem ko zavrže napake in izpis stderr.
Ob istem času, @agnoliaarisian7180/string-argv@0.3.1 preklopil svojo odvisnost na s-format iz pripete različice v "latest"in react-native-international-phone-number@0.12.2 naredil enako z string-argv. To je ustvarilo samoposodabljajočo se zlonamerno verigo, kjer je vsaka namestitev glavnega paketa samodejno prenesla najnovejšo različico koristnega tovora.
Končno, react-native-international-phone-number@0.12.3 odstranil zdaj nepotreben kavelj prednamestitve (da bi bil videti čistejši), ohranil verigo zlonamernih odvisnosti in spremenil e-poštni naslov vzdrževalca npm v še en račun ProtonMail, ki ni v lasti prvotnega avtorja. To je bil jasen znak, da je napadalec utrjeval trajen nadzor nad identiteto npm, ne pa le oportunistično ponovno uporabljal razkrit žeton.
Znotraj zlonamerne programske opreme, ki jo podpira Solana in cilja na razvijalce React Native
Pod pokrovom je bila koristna obremenitev, ki se je izvajala v vseh treh valovih, ista sofisticirana večstopenjska zlonamerna programska oprema, ki zlorablja verigo blokov Solana kot dinamični kanal za upravljanje in nadzor. Mehanizem dostave se je nenehno spreminjal, vendar je »orožje« ostalo enako v vseh iteracijah, vse do tega, da je bila datoteka bajt za bajtom ista, ko je bila prenesena iz infrastrukture Wave 1 v Wave 3.
Scenarij se začne z namerno 10-sekundno zamudo z uporabo setTimeout, klasičen trik izogibanja peskovniku. Številna avtomatizirana peskovnika in varnostna orodja dajejo skriptom le kratek čas za izvajanje, preden se odločijo, da se ni zgodilo nič sumljivega, zato zlonamerna programska oprema preprosto počaka, preden naredi kaj zanimivega.
Nato izvede geofilter, da prepreči okužbo sistemov v Rusiji in delih SND. Pregleduje okoljske spremenljivke, kot so LANG, LANGUAGE, LC_ALL, podatke o uporabniku gostitelja, sistemski časovni pas in celo surove UTC odmike, pri čemer iščejo vrednosti, ki kažejo na rusko lokacijo (kot je ru_RU or Russian) ali enega od seznama ruskih/SND časovnih pasov. Če se kateri koli od teh ujema, se skript takoj in tiho zapre.
Šele če okolje opravi to preverjanje, se zlonamerna programska oprema začne pogovarjati z verigo blokov Solana. Vsebuje trdo kodiran naslov denarnice in ga poizveduje prek getSignaturesForAddress Metoda JSON-RPC v devetih različnih končnih točkah Solana RPC, ki jih gostijo različni ponudniki. Ta zasnova napadalcu zagotavlja visoko razpoložljivost in onemogoča preprosto blokiranje domen ali IP-jev.
Trik je v tem, da napadalec skrije URL naslednje stopnje koristnega tovora znotraj polja memo transakcij Solane v to denarnico. Zapisek shrani blob JSON-a, kodiranega v base64, katerega link Polje vsebuje URL naslednje faze. Z objavo nove transakcije lahko operater kadar koli zasuka URL koristnega tovora, ne da bi pri tem spreminjal objavljene pakete npm.
Ko je URL izvlečen, zlonamerna programska oprema izvede zahtevo HTTP do strežnika napadalca na http://45.32.150.251/, pošiljanje tipa operacijskega sistema v prilagojenem os glava, da lahko C2 vrne binarne datoteke, specifične za platformo. Telo odgovora vsebuje šifriran koristni tovor, vendar se ključ AES-256 in IV, potrebna za njegovo dešifriranje, pošljeta le v glavah HTTP (secretkey in ivbase64), zato so vsi predpomnjeni ali prestreženi podatki o telesu sami po sebi neuporabni.
Dešifrirana druga faza se nikoli ne dotakne diska; izvede se v pomnilniku z eval(atob(...)) na sistemih, podobnih Unixu, ali prek vm.Script v sistemu Windows s polnim dostopom do notranjosti vozlišča. Nato zlonamerna programska oprema spusti ~/init.json datoteka z označevalcem, ki shranjuje časovni žig in enolični identifikator, tako da se isti računalnik ne okuži ponovno več kot enkrat na 48 ur. Ta omejitev hitrosti drastično zmanjša šum in branilcem daje manj vedenjskih kazalnikov, na katere se lahko oprimejo.
AES-dešifrirani koristni tovor tretje stopnje, ki so ga raziskovalci obnovili s ponovnim predvajanjem istih korakov Solana in HTTP, je program za krajo poverilnic in denarnic, osredotočen na Windows, ter program za nalaganje. Vzpostavlja vztrajnost z schtasks in Run registrski ključ, prenese dodatne šifrirane module iz 45.32.150.251in izvleče nastali plen na IP-naslov v območju 217.69.3.x.
Ta koristni tovor išče podatke iz namiznih denarnic in razširitev brskalnika, kot so MetaMask, Phantom, Exodus, Atomic, Guarda, Coinomi, Daedalus, OKX Wallet, Trust Wallet, Braavos in druge, ter se po prisilnem zaprtju Chroma in Firefoxa sprehaja po mapah profilov brskalnika in lokalnih imenikih denarnic. Poleg tega potegne žetone npm in poverilnice GitHub neposredno iz lokalnih pomočnikov za konfiguracijo in poverilnice, s čimer ogrožene razvijalske omarice spremeni v popolne izstrelitvene ploščadi za nadaljnje napade na dobavno verigo.
Omeniti velja, da zlonamerna programska oprema celo prenese lastna izvajalna okolja Node.js (v22.9.0) za x86 in x64 v %APPDATA%\_node_x86 in %APPDATA%\_node_x64, zagotavljanje doslednega izvajalnega okolja, tudi če Node ni nameščen na ciljnem sistemu.
Povezave do ForceMemo in akterja grožnje GlassWorm
Tehnični odtis tega incidenta z React Native npm se skoraj popolnoma ujema s prejšnjo kampanjo z imenom »ForceMemo«, ki je ogrozila na stotine repozitorijev Pythona na GitHubu. Obe operaciji sta uporabljali Solano kot mrtvo točko C2, isto skupino devetih končnih točk RPC, isto obliko zapisa JSON z link polje, identična logika geofiltriranja Rusija/SND, enaka ~/init.json persistentno zaklepanje in celo podobni infrastrukturni razponi, ki gostujejo na Vultrju.
Čeprav se naslovi denarnic Solana v obeh kampanjah razlikujejo, vse ostalo kaže na enega samega zelo sposobnega akterja, za katerega velja, da je skupina, znana kot GlassWorm. ForceMemo je ciljal na razvijalce prek zastrupljenih repozitorij GitHub, medtem ko je incident React Native to storil prek paketov npm in njihovih verig odvisnosti. Strategija je jasna: ponovno uporabiti sofisticiran, modularen okvir zlonamerne programske opreme, vendar ga vključiti v različne distribucijske kanale, da doseže čim več razvojnih okolij.
Druge zlonamerne NPM kampanje okoli React Native in JavaScripta
Kompromis AstrOOnauta je le del širšega vala napadov, ki temeljijo na npm in neposredno ali posredno vplivajo na aplikacije React Native. Več ponudnikov varnostnih rešitev je dokumentiralo vzporedne kampanje, osredotočene na knjižnice uporabniškega vmesnika React Native, osnovna orodja CLI in celo generične vtičnike za gradnjo, od katerih so odvisne številne kodne baze React Native.
Aikido Security je junija 2025 odkril veliko operacijo v dobavni verigi, ki je v okviru zakulisnega dostopa do najmanj 16 paketov, povezanih z React Native. @react-native-aria/* obseg plus @gluestack-ui/utils, ki skupaj prejmejo približno milijon prenosov na teden. Do prve kršitve je prišlo 6. junija 2025, začenši z @react-native-aria/focus@0.2.10, nato pa se je 7. junija hitro razširil na dodatne pakete za fokus, prekrivno plast, interakcijo, preklop, stikalo, potrditveno polje, radijski gumb, meni, seznam, zavihke, kombinirani meni, razkritje, drsnik, ločilo in pripomočke GlueStack.
Zlonamerna programska oprema v tej kampanji je bil trojanski konj za oddaljeni dostop (RAT), prilagojen okoljem Windows, ki je vztrajal pod %LOCALAPPDATA%\Programs\Python\Python3127 in povezovanje s strežniki C2 na 136.0.9[.]8 in 85.239.62[.]36. Njegove zmogljivosti so vključevale izvajanje poljubnih ukazov, nalaganje/prenos datotek in dolgoročen oddaljeni dostop. Zaradi vztrajnosti preprosta nadgradnja na čisto različico knjižnice React Native ni očistila že okuženih računalnikov.
Druga dolgotrajna kampanja, ki jo je razkrila ekipa za raziskave groženj pri podjetju Socket, je uporabljala tipografske napake in mimikrijo za namestitev uničujočih paketov, ki so izrecno ciljali na priljubljene ogrodja JavaScript, kot so React, Vue, Vite in Quill. Grožnjivec z uporabo vzdevka npm xuxingfeng, je v več kot dveh letih objavljal mešanico legitimnih in zlonamernih paketov, kar je ustvarilo površinski vtis, da je zaupanja vreden vzdrževalec.
Paketi, kot so vite-plugin-bomb, vite-plugin-bomb-extend, vite-plugin-react-extend, vite-plugin-vue-extend in vue-plugin-bomb niso bili zasnovani za krajo podatkov, temveč za aktivno poškodovanje ali uničevanje projektov. Izvedli so večfazne napade, ki so jih sprožili določeni datumi, in izbrisali kritične datoteke ogrodja pod node_modules (Vue, React, Vite, TypeScript, Ant Design Vue, Pinia, ECharts in drugi), včasih v kombinaciji s prisilnimi zaustavitvami sistema vsako sekundo z uporabo shutdown -s -t 5.
En posebej grd paket, js-hood, spremenjeni osnovni prototipi JavaScripta, kot so Array.prototype.filter, map, push, pop in več String Metode... in jih nadomestijo s funkcijami, ki so sintaktično videti veljavne, vendar vračajo naključne podatke. To povzroči, da aplikacije še naprej delujejo, vendar proizvajajo poškodovane, nedeterministične rezultate, ki jih je izjemno težko odpraviti.
Naš quill-image-downloader Serija je šla v drugo smer in se osredotočila na sabotažo shranjevanja na strani odjemalca. Ponudila je arhitekturo s tremi datotekami, ki po določenem datumu aktivacije iterira čez vse ključe v localStorage, sessionStorage in piškotke, nato pa delno premeša njihove vrednosti z naključnimi znaki, hkrati pa ohrani strukturo. Žetoni za preverjanje pristnosti, nakupovalne košarice, uporabniške nastavitve in katero koli stanje na strani brskalnika se subtilno poškodujejo, kar povzroča občasne napake, ki bi jih mnoge ekipe sprva pripisale napakam v aplikaciji.
Ločena raziskava podjetja OP Innovate je odkrila skupino desetih zlonamernih npm paketov, ki so se izdajali za znane knjižnice, kot so TypeScript, discord.js, ethers.js, nodemon, react-router-dom in zustand. Ko so ti paketi nameščeni, prikažejo lažno okno CAPTCHA, odtisnejo prstni odtis gostitelja in prenesejo velik program za krajo informacij, ki deluje na več platformah, iz C2 na 195.133.79.43, spet z izrecno podporo za Windows, macOS in Linux.
Končno je kampanja CanisterWorm, ki jo je podrobno opisal Aikido, pokazala, kako daleč so napadalci pripravljeni iti pri izkoriščanju npm kot dostavno sredstvo. Več kot 135 paketov iz ogroženega računa založnika je bilo oboroženih s skripti za namestitev, ki se izvedejo pred katero koli kodo vaše aplikacije ali koraki gradnje. Kasnejše faze se obnašajo različno, odvisno od tega, ali pristanejo v lokalnem razvojnem okolju, opravilu CI ali vsebniku gradnje, in komunicirajo z decentraliziranim vsebnikom internetnega računalnika (ICP), ki deluje kot prikriti C2 – kar operaterjem omogoča, da sproti spreminjajo vedenje, ne da bi se kdajkoli znova dotaknili registra npm.
Kritične ranljivosti v orodjih React Native: Community CLI RCE
Vsa varnostna tveganja React Native ne izvirajo iz povsem zlonamernih paketov; nekatera izvirajo iz resnih ranljivosti v široko uporabljenih orodjih. Pomemben primer je CVE‑2025‑11953 v vmesniku React Native Community CLI, paket, ki ga razvijalci v sistemih Windows, macOS in Linux vsak teden potegnejo milijonkrat.
Ta napaka je omogočala nepreverjeno oddaljeno izvajanje kode (RCE) prek izdelanih zahtev POST lokalnemu razvojnemu strežniku, ki ga je zagnal CLI. Ker mnogi razvijalci izpostavijo svoje metro/dev strežnike v omrežju za odpravljanje napak ali testiranje mobilnih naprav, bi lahko bližnji napadalec (ali nekdo, ki lahko usmeri promet na ta vrata) na razvijalčevem računalniku izvajal poljubne ukaze.
Vpliv sega daleč preko ene same delovne postaje razvijalca: Ko napadalec enkrat izvede kodo na razvojnem računalniku, se lahko preusmeri v poslovna omrežja, pridobi poverilnice, zastrupi gradnje ali manipulira s cevovodi CI/CD, ki se sinhronizirajo s tega računalnika. To je šolski primer, kako je »zgolj lokalno razvojno orodje« del vaše produkcijske površine za napad, ko delate na sistemih, povezanih z oblakom.
Priporočena blažitev je preprosta, vendar neizogibna: posodobitev na React Native Community CLI 12.5.1 ali novejšo različico, beleženje dnevnikov nadzora za sumljive zahteve POST ali nepričakovane procese, ki jih sproži razvojni strežnik, omejitev dostopa do lokalnih strežnikov in vključitev razvojnih orodij v strategijo zaznavanja groženj. Vsako končno točko DevOps ali razvijalca obravnavajte kot tarčo z visoko vrednostjo, saj jo sodobni napadalci vidijo natanko tako.
Kako so se branilci odzvali: analiza umetne inteligence, časi ohlajanja in okrepljena KI
Prednost teh zgodb je, da varnostna skupnost postaja hitrejša in bolj dovršena pri odkrivanju groženj dobavni verigi proti React Nativeu in širšemu prostoru JavaScripta. Orodja, kot so StepSecurity, Socket in Aikido Security, veliko vlagajo v vedenjsko analizo, avtomatizirano razlikovanje in modele strojnega učenja, ki skenirajo nove izdaje npm v nekaj minutah po objavi.
V napadu AstrOOnauta je analitik paketov umetne inteligence podjetja StepSecurity v manj kot petih minutah zaznal zlonamerne različice, odprl težave GitHuba s popolnimi tehničnimi razčlenitvami in kasneje prijavil napadalčeve infrastrukturne pakete npm-u za odstranitev. Ekipa je dokumentirala vsak val, sledila git glavam, analizirala zakrito kodo, pokazala dokaz o uporabi Solane C2 in vzdrževalcu podala navodila za odpravo napak po korakih.
Poleg odkrivanja se v cevovodih CI začenjajo uveljavljati preventivni nadzorni ukrepi. Na primer, preverjanje ohlajanja paketov npm podjetja StepSecurity organizacijam omogoča blokiranje odvisnosti, ki so bile objavljene le nekaj ur nazaj, s čimer si zagotovijo čas za pregled skenerjev in ljudi. Njihovo preverjanje ogroženih posodobitev se sklicuje na nenehno posodobljen vir znanih slabih paketov in ne uspe zahtevam za dodajanje ali nadgradnjo teh paketov.
Orodja, ki se zavedajo omrežja, kot je Harden-Runner, omejujejo odhodne povezave v dejanjih GitHub in drugih opravilih CI na seznam dovoljenih pričakovanih končnih točk. V svetu, kjer zlonamerna programska oprema pridobiva koristne podatke iz vozlišč Solana RPC, URL-jev Google Koledarja, obsegov IP-naslovov Vultr ali vsebnikov ICP, je lahko blokiranje izhoda iz vaših sistemov za gradnjo razlika med slabo razliko v paketu in popolnim vdorom.
Na strani odzivanja funkcije, kot sta iskanje paketov po celotni organizaciji in centri za grožnje, pomagajo ekipam hitro določiti radij eksplozije. Takoj ko je odkrit ogrožen paket ali vtičnik React Native, lahko varnostne ekipe vidijo, kateri repozitoriji, veje in datoteke zaklepanja ga vsebujejo, katera opravila so ga izvedla in kateri stroji so se pogovarjali s sumljivimi IP-naslovi – nato pa ustrezno določijo prioritete sanacije v več deset ali stotinah kodnih baz.
Praktični ukrepi za ekipe React Native, ki se soočajo z zlonamerno programsko opremo npm
Za razvijalce React Native in varnostne inženirje je obramba pred napadi na ravni npm povezana z združevanjem higiene na posameznih strojih z varovali v CI/CD in upravljanju odvisnosti. Noben posamezen nadzor vas ne bo rešil, vendar večplastna obramba drastično zmanjša verjetnost, da se zlonamerni paket spremeni v popolno ogroženo programsko opremo.
Če uporabljate prej omenjene ogrožene pakete, je treba takoj izvesti nekaj preverjanj. Za incident AstrOOnauta, pripnite react-native-international-phone-number do različice 0.11.7 in react-native-country-select do 0.4.0, s čimer se izognemo vsem različicam, ki so označene kot zlonamerne ali razrešene na @latest ki se trenutno preslikava na ogroženo izdajo.
Preverite svoj domači imenik za datoteko z imenom init.json pod uporabniškim profilom (na primer ~/init.json na Unixu in ~\init.json v sistemu Windows). Njegova prisotnost kaže na to, da se je zlonamerna programska oprema, ki temelji na Solani, zagnala vsaj enkrat. Preglejte tudi odhodne omrežne dnevnike iz delovnih postaj razvijalcev in izvajalcev neomejene izbire za povezave do 45.32.150.251, končne točke Solana RPC, uporabljene v kampanjah, ali drugi prej omenjeni naslovi C2 (npr. 136.0.9[.]8, 85.239.62[.]36, 195.133.79.43, 217.69.3.152).
Preverite svoje node_modules in datoteke zaklepanja za odvisnosti kontrolnih talcev, kot so @agnoliaarisian7180/string-argv, @usebioerhold8733/s-format in zlonamerni @react-native-aria/* or @gluestack-ui/utils različice, navedene v obvestilih. Če najdete katerega od njih, obravnavajte računalnik kot potencialno ogrožen in zamenjajte vse občutljive poverilnice: žetone npm, žetone za dostop do GitHub-a, ključe SSH, ključe ponudnika oblaka in vse skrivnosti, ki so prisotne v .env ali konfiguracijske datoteke ob namestitvi.
V prihodnje izboljšajte svojo oskrbovalno verigo za delo v React Native: vedno potrdi in uveljavi datoteke zaklepanja (package-lock.json, yarn.lock, pnpm-lock.yaml), omogočite 2FA na vseh npm računih s pravicami objavljanja in konfigurirajte svojo CI tako, da ne uspe graditi, ko se pojavijo nove odvisnosti brez pregleda. Razmislite o uporabi z --ignore-scripts pri nameščanju paketov tretjih oseb v nezaupanja vrednih kontekstih in orodja za skeniranje odvisnosti priključite tako na lokalne delovne procese kot na neposreden dostop.
Nenazadnje, razvojna okolja – zlasti tista, ki se uporabljajo za aplikacije React Native, ki povezujejo mobilne, spletne in zaledne API-je – obravnavajte kot del vaše produkcijske napadalne površine. Ali gre za prevzem računa z namestitvijo zlonamerne programske opreme, ki jo podpira Solana, v komponento za vnos telefona, ali za tipkarsko napačno napisan vtičnik Vite, ki briše React iz node_modules, zlonamerna integracija Quill, ki premeša shranjevanje na strani odjemalca, ali RCE v vmesniku CLI skupnosti React Native, je skupna nit, da napadalci zdaj orodja za razvijalce vidijo kot eno najučinkovitejših poti do kronskih draguljev vaše organizacije.

