Strategije dobavne verige programske opreme za pariranje napadov zmede zaradi odvisnosti

Strategije dobavne verige programske opreme za pariranje napadov zmede zaradi odvisnosti

Software Supply Chain Strategies to Parry Dependency Confusion Attacks PlatoBlockchain Data Intelligence. Vertical Search. Ai.

"Kaj je v imenu? Tisto, kar imenujemo vrtnica, bi s kakršnim koli drugim imenom dišalo tako sladko.” Ko je Shakespeare leta 2 zapisal te besede (Romeo in Julija, 2. dejanje, 1596. prizor), je rekel, da je ime le dogovor. Nima notranjega pomena. Julija ljubi Romea zaradi tega, kar je, ne zaradi njegovega imena.

Toda ne da bi vedel, je Shakespeare opisoval tudi napade zmede odvisnosti.

Zmeda glede odvisnosti je, ko paketi, ki jih uporabljate v kodi, niso vaši. Imata isto ime, vendar se v proizvodnji ne izvaja vaša koda. Isto ime, le da ena embalaža diši po vrtnici, druga pa … smrdi.

Nedavna raziskovalna poročila ocenjujejo, da je 41 % do 49 % organizacij v nevarnosti za napade zmede glede odvisnosti. Nova raziskava OX Security kaže, da je 73 % njenih sredstev ranljivih, ko je organizacija v nevarnosti zaradi napada zmede glede odvisnosti. Raziskava se je osredotočila na srednje velike in velike organizacije (1K+, 8K+, 80K+ zaposleni) v številnih sektorjih – finance, igre na srečo, tehnologija in mediji – in našli tveganje v vsakem sektorju v organizacijah vseh velikosti. Raziskava je tudi pokazala, da skoraj vse aplikacije z več kot milijardo uporabnikov uporabljajo odvisnosti, ki so ranljive za zmedo glede odvisnosti.

Ta članek vam želi pomagati razumeti zmedo glede odvisnosti in kako jo preprečiti.

Dvojno, dvojno

Odvisnosti (imenovane tudi paketi) so gradniki vaše programske opreme. Običajno ti deli programske opreme, ne glede na to, ali so jih razvile celotne skupnosti ali znotraj podjetja, opravljajo skupno in potrebno nalogo.

Upravljalniki paketov se pogosto uporabljajo za namestitev odvisnosti in njihovo posodabljanje. Pregledajo javne in zasebne registre za ime paketa in, če so vse ostale enake, izberejo najvišjo številko različice. Napadalci to izkoristijo tako, da v javni register vnesejo »navidezni« paket z istim imenom, vendar višjo različico.

Ko upravitelj paketov naleti na dva enaka paketa, enega v javnem registru in enega v zasebnem registru, povzroči zmedo – od tod tudi ime »zmeda glede odvisnosti«. Ker sta oba paketa enaka, bo upravitelj samodejno izbral namestitev tistega z višjo različico - v tem primeru zlonamerni paket napadalca.

To daje ugrabiteljem zadnja vrata v vašo programsko opremo. Od te točke lahko izvajajo kršitve podatkov, krajo intelektualne lastnine in drugače ogrozijo dobavno verigo programske opreme zaupanja. Prav tako lahko uvedejo kršitve skladnosti, ki bodo sprožile stroge regulativne kazni.

Trud in težave

Obstajajo različni pristopi k napadu zmede odvisnosti.

  • Imenski prostor. Z nalaganjem knjižnice zlonamerne programske opreme v javni register, kot je Python Package Index (PyPI) ali JavaScript npm register — to je poimenovana podobno v zaupanja vredno, interno uporabljeno knjižnico, lahko sistemi, ki izpustijo preverjanje imenskega prostora/URL ali ne vsilijo pridobivanja iz zasebnega registra, pomotoma povlečejo zlonamerno kodo. The nedavni incident zmede glede odvisnosti od PyTorcha je en tak primer.
  • DNS spoofing. Z uporabo tehnike, kot je ponarejanje DNS, je mogoče sisteme usmeriti, da črpajo odvisnosti iz zlonamernih repozitorijev, medtem ko prikazujejo tisto, kar je videti kot zakoniti notranji URL-ji/poti.
  • Skriptiranje. S spreminjanjem skriptov za izgradnjo/namestitev oz neprekinjena integracija/neprekinjena dobava (CI/CD) konfiguracije cevovoda, je mogoče sisteme pretentati, da prenesejo odvisnosti programske opreme iz zlonamernega vira in ne iz lokalnega repozitorija.

Stvari narejene dobro in skrbno

Za zaščito pred zmedo glede odvisnosti uvedite te prakse.

  • Nastavite pravilnike v upravitelju paketov. Onemogoči upraviteljem paketov, da dajo prednost javnemu paketu pred zasebnim paketom.
  • Vedno vključite datoteko .npmrc. Če uporabljate priljubljeno NPM kot upravitelja paketov, vedno vključite datoteko .npmrc, ki določa, kje je treba pridobiti pakete v določenem obsegu organizacije.
  • Ime paketa rezervirajte v javnem registru. Drug način za zaščito pred napadi zmede odvisnosti je, da rezervirate ime paketa v javnem registru, tako da ga ugrabitelji ne morejo uporabiti in zato ne morejo »pretentati« upravitelja paketov v namestitev zlonamernega paketa.

Za popolno zaščito pred napadi zmede odvisnosti morajo organizacije vedno uporabljati obseg organizacije za vse notranje pakete, tudi pri objavi v vašem notranjem registru. Obseg organizacije bi moral biti registriran tudi v javnem registru NPM, s čimer bi preprečili, da bi kdo ugrabil obseg in izkoristil zmedo.

Imena paketov morajo biti tudi javno registrirana. Če organizacija na primer uporablja priljubljeni PIP kot upravitelja paketov za odvisnosti Pythona, bi morala ustvariti notranje pakete s strogo pripono, ki je prepoznavna in bo delovala v vseh projektih. Naložite prazen paket z istim imenom v javni register PyPI kot ogrado.

Drug razlog za rezervacijo imena paketa v javnem registru je, ker če ga nekdo drug rezervira (zlonamerno ali ne), bodo morali razvijalci spremeniti vsa imena paketov v zasebnem registru v tista, ki še niso bila rezervirana v javnem registru. To je lahko dolg in dolgočasen proces.

Pomembno je omeniti, da vsi registri paketov ne dovoljujejo uporabnikom, da rezervirajo imena paketov, zato poskrbite, da boste našli takega, ki to omogoča.

Izhod, ki ga zasleduje medved

Napadi zmede zaradi odvisnosti predstavljajo resno in neposredno grožnjo kibernetski varnosti za organizacije po vsem svetu. Približno polovica vseh organizacij je ogroženih in 73 % sredstev teh organizacij je izpostavljenih. Da bi se zoperstavili tej naraščajoči grožnji, morajo organizacije izvajati stroge preventivne ukrepe in sprejeti najboljše prakse kibernetske varnosti.

Shakespearove vrtnice so morda stotine let napovedovale tveganje za napade zmede zaradi odvisnosti, toda drug Bardov citat morda vsebuje nekaj modrosti za zaščito pred njimi: "Naj se vsako oko pogaja zase in ne zaupa nobenemu posredniku." (Veliko hrupa za nič, 2. dejanje, 1. prizor)

Časovni žig:

Več od Temno branje