Iako se svaka velika i mala korporativna mreža trudi da primeni bezbednosne politike kako bi osigurala da korisnici mogu da rade samo sa legitimnim aplikacijama i uslugama podataka – kada je ugrožen sam lanac isporuke osnovnog softvera, tada i same pretnje dobijaju novi nivo legitimiteta. Korisnici su često problematični, ali pretnje mogu da počnu u samom kanalu. Korisnici su nepromišljeni, to zna svaki softverski inženjer. Možda korisnici nigde nisu tako nepromišljeni kao u delovima korporativne mreže gde provale bezbednosti mogu da se otvore kontaktom sa zlonamernim softverom, ili kada se nehotice izlože sistemske ranjivosti.
Kada koriste sopstveni uređaj (BYOD – Bring Your Own Device), pa čak i kada koriste odobrene i naizgled zaključane korporativne uređaje, čini se da korisnici imaju bogomdanu sposobnost otvaranja nepotrebnih makronaredbi u dokumentima, kliknu na zlonamerne linkove i zaobilaze smernica kompanije instaliranjem „IT-a u senci“ ili da zaista odu u grad i počnu da priključuju spoljne USB diskove u svaki dostupan otvor koji mogu da pronađu.
Ali koliko god bezglavi bili korisnici koji najviše liče na ćurke, izvor i snaga pretnji nisu uvek netehnički zaposleni u organizaciji; ponekad je izvor problema sam softver.
Pukotina na nivou sistema
Jedan od načina napada na lanac snabdevanja je kada je počinilac u stanju da softverskim sistemima preduzeća pristupi putem zlonamernog softvera koji instalira na ranjivo mesto – tehnički gledano, definisano kao „upotrebljiva mana“ – u softveru pouzdanog nezavisnog partnera ili provajdera. Mane koje se mogu iskoristiti mogu da se pojave u bilo kojoj fazi životnog ciklusa softvera; pa mada se najčešće dešavaju zbog lošeg programiranja i loše prakse ažuriranja, mogu biti i rezultat „namenskog“ umetanja zlonamernog koda.
U svetu u kojem svi pokušavamo da pređemo na autonomne infrastrukturne alate sposobne za izvođenje ažuriranja, održavanja, nadogradnje, unošenja zakrpa itd. bez potrebe da mrežni inženjer uvek bude fizički prisutan, ako postoji nedostatak u dizajnu alata za automatsku izgradnju i instalaciju, onda je to pukotina u samoj suštini softverskog sistema organizacije i njegovog šireg životnog ciklusa.
Julie Peterson je menadžerka marketinga sadržaja u kompaniji za bezbednost i upravljanje usklađenošću licenci otvorenog koda WhiteSource. Objašnjavajući tehniku napada na lanac snabdevanja softverom, Peterson kaže da se zlonamerni akteri uvlače u legitimnu aplikaciju, a zatim menjaju izvorni kôd i sakrivaju zlonamerni softver u procese izrade i ažuriranja, sa namerom da se taj zlonamerni softver automatski distribuira naniže široj publici.
„U ovoj vrsti napada prvobitna žrtva nije konačna meta, nego odskočna daska za mnoge druge potencijalne mreže. Pouzdani prodavac nije svestan da svojim klijentima šalje zlonamerni kôd “, kaže Peterson u opisnom analitičkom blogu. „Ovakve vrste napada funkcionišu jer se javljaju kada korisnici ažuriraju softver koji je napravio dobavljač sa kojim već imaju vezu i kome veruju. Kada se zlonamerni kôd instalira na veb lokaciji ciljne organizacije, on se izvršava sa istim dozvolama kao pouzdana aplikacija. “
Napad 2020. godine na Orion platformu kompanije SolarWinds bio je napad na lanac snabdevanja softverom. Peterson iz WhiteSource-a je takođe objasnila kako spoljno označavanje i pakovanje fajlova i zavisnosti mogu dovesti do napada na lanac snabdevanja. Ona ovu tehniku poredi sa kupcem koji ode u svoj supermarket i zgrabi kutiju Fruit Loops, pa posle otkrije da roba u kutiji sadrži organski musli za čišćenje creva sa mekinjama.
Preterana zavisnost od zavisnosti
Etički haker Aleks Birsan je u februaru 2021. izveo „test“ napada na lanac snabdevanja softverom koji se odnosi na zavisnost i objasnio svoju taktiku u lićnom obrazloženju.
Znamo da programeri prilikom kodiranja koriste „spregnute“ veze zavisnosti, gde će se jedan modul ili softverska rutina oslanjati na drugi, obično za prilično centralni i važan deo svog rada. Birsan je primetio da je sistem PayPal koristio kombinaciju javnih i privatnih npm (Node Package Manager) paketa. Otpremio je zlonamerni javni kôd preimenovan da izgleda kao da ima istu oznaku kao kôd privatnog paketa da bi video da li može da nadmudri sistem.
Pokazalo se da ova tehnika ne samo da je funkcionisala, već i da će ova vrsta softvera automatski otpremati pakete (bilo javne ili privatne) jednostavno na osnovu toga da imaju veći broj verzije da bi izgledali ažurnije.
„Neki programski jezici, kao što je Python, isporučuju se sa jednostavnim, manje ili više zvaničnim metodom instaliranja zavisnosti za vaše projekte. Ovi instalatori su obično vezani za javna spremišta koda gde svako može slobodno sa pošalje pakete koda da bi ih drugi mogli koristiti. Kada preuzimate i koristite paket iz nekog od ovih izvora, u suštini dopuštate njegovom izdavaču da izvršava kôd na vašoj mašini “, rekao je Birsan, koji se pitao da li poklanjamo previše slepog poverenja u cevovod isporuke softvera.
Emile Monette, direktor sektora bezbednosti lanaca vrednosti u kompaniji za kvalitet softvera Synopsys objašnjava da je (s obzirom na sve gore navedene primere) SolarWinds pokazao ono što je očigledno laka meta za potencijalne napadače. Kaže da je to zato što mnogi dobavljači softvera nemaju pravilo da rutinski proveravaju integritet biblioteka od kojih njihov kôd zavisi.
„Ovaj problem je možda akutniji i vidljiviji u bibliotekama otvorenog koda, ali takođe može biti značajan problem kod bilo kojeg komercijalnog dobavljača ili drugih komercijalnih spremišta kodova“, rekao je Monette. „Dobavljači softvera bi trebalo da paze i preduzmu korake kako bi se uverili da se oslanjaju na biblioteke koda u kojima se redovno skenira postojanje poznatih mana i ranjivosti. Dalje, kada se utvrdi mana ili ranjivost, treba odmah preduzeti mere za njihovo popravljanje. “
Stanje državnih napada
Činjenica je da organizacije moraju da koriste bezbednosne prakse koje pružaju objektivne dokaze da sama kompanija i njeni dobavljači vode odgovarajuću brigu o informativnoj imovini. Synopsys-ov Monette sugeriše da, sa njegove tačke gledišta, svet može očekivati da će se javljati sve više od ove vrste ranjivosti.
„Kako se trgovinski ratovi zahuktavaju, postoji potencijal da ćemo videti sve više državno sponzorisanih napada usmerenih na lance snabdevanja na Zapadu i odbrambene industrije njegovih saveznika i na komercijalne tehnološke kompanije koje ga snabdevaju. Ovi napadači će imati vrlo dobra novčana sredstva i aktivno će ciljati slabe karike u lancu snabdevanja kako bi dobili pristup poslovnim partnerima i kupcima u odbrambenoj i tehnološkoj industriji tražeći da pribave naučne, tehničke i poslovne informacije “, kaže Monette.
Izgleda jasno da moramo da se bavimo kodom dobavljača koji je naglo ponuđen na tržište, bez dovoljno pažnje posvećene bezbednosnim ograničenjima. Možda postoji lažni osećaj sigurnosti da će, kada se primenjuju zakrpe dobavljača, i one obezbediti potpunu bezbednost. Dobra bezbednost nisu samo zakrpe – to je proces. Ovo je mantra koju ponavlja Sree Sakamuri sa njegovog položaja starijeg arhitekte rešenja za Oracle, u Spinnaker Support-u, dobavljaču nezavisne podrške, upravljanih usluga i konsaltinga.
„Ovde se mogu koristiti tri glavne taktike. Prva je vidljivost – tačno znati šta je vezano za stek, kako je postavljeno, gde je i odakle je. Jednom kada imamo tu mapu, drugi korak je učvršćivanje. Dodavanje IP adresa na belu listu, ograničavanje pristupa i uklanjanje svakog softvera ili sistema koji nije sasvim u redu. Treći korak je biti spreman za prilagođavanje i ostati korak ispred napadača“, savetuje Sakamuri.
Sakamuri nas dalje podseća da svaka ranjivost spada u neku kategoriju; bilo da je reč o sticanju većih privilegija ili o otkrivanju informacija. One su ili CWE (Common Weakness Enumerations) – nabrajanja uobičajenih slabosti – ili CVE (Common Vulnerabilities and Exposures) – uobičajene ranjivosti i izloženosti. „Preduzimanjem mera za blokiranje CWE-a efikasno ograničavate i te napade na lanac snabdevanja“, zaključio je.
Ako priznamo da se softverske ranjivosti ne svode samo na slučajne korisnike koji nepažljivo klikću na sumnjive linkove, makronaredbe i portale koji vode u katastrofu, onda možemo da razmišljamo o softverskom inženjerstvu na višem, ali presudno takođe i dubljem, nivou koji vodi računa o sastojcima koje unosimo u kombinaciju na nivou osnovnog koda.
Tada, možda tek tada, možemo da se zavalimo i uživamo u doručku i nastavimo svoj dan. Čekaj, sačekaj – mislio sam da sam naručio Froot Loops !?
Izvor: INSIDER PRO