Hau laugarren atala da mezu sorta osagai gaiztoei buruz, non aurkezten dugun Xigenoa mehatxu honi aurre egiteko ikuspegia, gure estalduraren barruan Open Source Security.
Ikusi genuen jatorri ziurgabeko kode irekiko osagaietan gehiegizko konfiantza mota guztietako gaizkileek erabiltzen dutela ustekabeko portaera emateko, garatzaileen makinetan exekutatzeko, CI/CD sistemetan, edo biktimaren erakundearen softwarean txertatuta, erakundearen bezeroei helarazteko. Aztertu genuen 2. atala erregistro publikoak malwarea banatzeko erabiltzen dituzten erasoak eta gaizkileek nola funtzionatzen duten ikusi ondoren eta aurrekoan ikasi duguna 3. atala mehatxu honen aurka funtzionatzen duten kontrolak (eta huts egiten dutenak) aztertu ziren.
Orain arazoari aurre egiteko dugun ikuspegia aztertzeko garaia da. Atal honetan, Xygenin jarraitzen dugun estrategia aurkezten dugu. Malwarearen abisu goiztiarra (MEW) sistema. Nola funtzionatzen duen etapa anitzeko sistema honek denbora errealean pakete bertsio berri bat kaleratzen denean, nola jasotzen den ebidentzia iturri desberdinetatik, nola egiten den sailkapena, zein sailkapen irizpide jarraitzen ari garen eta zergatik behar den oraindik eskuzko analisi batzuk pakete hautagai gaizto baten izaera berresteko. Era berean, azalduko dugu nola laguntzen ari garen NPM, GitHub, PyPI eta kode irekiko ekosistemetako beste azpiegitura gako batzuei malwarearen egonaldi denbora murrizten.
The pipeline
Xygeni Malware Early Warning (MEW) etengabe prozesatzen ari da osagaiak, bai JavaScript/Node edo Python bezalako programazio-ekosistema onartuetarako liburutegi eta frameworketarako paketeen tarballak, bai Docker / OCI edukiontzi-irudiak, bai IDE bezalako tresnetarako luzapenak eta pluginak. CI/CD sistemak. Osagai horiek erregistro publikoetan argitaratzen dira, erabiltzaileen egiaztapen maila desberdinekin.
Jarraian, sistemak nola funtzionatzen duen erakusten duen eskema bat dago:
The aurkitzailea prozesuak argitalpen gertaeren jarioa jasotzen du. Argitalpen gertaera osagai berri edo lehendik dagoen baten bertsio berri bat sortzea da. Erregistro ezagunek ez dutenez argitaratze-sub mekanismorik eskaintzen interesa duten kontsumitzaileentzat, hau askotan erregistroan azken gertaeren bat galdekatuz egiten da. OSSF-ren proiektu bikaina, pakete-jarioak, laguntza PyPI edo Maven Central bezalako erregistro ezagunak, eta jarioetan oinarritutako interfaze bateratua eskaintzen dute. MEW-n itxaronaldi denbora murrizten duten inplementazio espezifiko batzuk gehitu ditugu, adibidez, NPM-k erabiltzen duen CouchDB datu-basearen erreplika batekin, erregistro publikoaren datu-basearekin sinkronizatuta dagoena.
Xygenin, inbentario bat dugu[1] gure bezeroen softwareak (zuzenean edo zeharka) erabiltzen dituen osagai guztien informazioa. Bezeroen osagaien koordenatuak aldizka bidaltzen zaizkio MEWri analisiak lehenesteko: gure bezeroek erabiltzen dituzten osagaiak lehenago prozesatzen dira. Lehentasuna argitaratzailearen ospearen eta osagaiaren kritikotasunaren araberakoa da, beraz, ospe baxua duten argitaratzaileengandik datozen osagaiei ere lehentasuna ematen zaie.
The analizatzaileak ondoren, lehentasun-ilaran dauden osagai zain daudenak kontsumitu. Osagai baten bertsioa aztertzeko hautatzen denean, bere tarballa erregistrotik deskargatzen da. Kontuan izan paketatutako osagai bitarra aztertzen dela: Kode irekiko osagai gehienak normalean kode irekiko biltegi batetik datoz, askotan github.com-etik, testuingururako soilik erabiltzen dena, eta malwarea beti bilatzen da osagaien tarballean, mehatxu-eragileek sistematikoki gezurra esaten baitute kaleratzen duten osagaien tarballa eraikitzeko erabili dituztela dioten iturriei buruz.
Erabiltzailearen ikuspuntutik.
Entzuten dizut pentsatzen: Nola etekina atera diezaioket pakete bertsio gaizto bati buruz goiz jakiteak? Atalean "Pakete gaiztoen anatomia: Zeintzuk dira joerak?" Ikusi genuen denbora osoa egun gutxitan dagoela, eta MEW-ek kaltetutako osagaia erabiltzen duten bezeroei bidalitako lehen jakinarazpena minutu gutxitan dagoela. Babes-hesi soil batekin[2] Eraikuntza blokeatu dezakezu (bi alerta maila daude, bat guztiz automatizatua motorrak malware potentziala dagoela ondorioztatzen duenean eta geroagoko jakinarazpena gure segurtasun taldeak eskuzko ikuskapen bidez malwarearen presentzia baieztatzen duenean). Erregistroak malwarea baieztatu eta erregistrotik kendu arte itxarotea normalean beranduegi izaten da esposizio leiho luzea dela eta.
Erakundeak babes-hesi bat erabil dezake malware potentziala duen osagairen bat dagoen egiaztatzeko (bi alerta-maila hauetako edozeinetan) edo, API bidez, azkar jakin dezake software-proiektu bateko menpekotasun zuzen edo zeharkakoren batek osagai gaizto bat erabiltzen duen.
Nola funtzionatzen duen MEW-k: Barruko xehetasunak
Muina: Malwarea Detektatzeko Motorra
Analizatzaileak detektagailu desberdinak erabiltzen ditu jokabide okerraren frogak jasotzeko. Detektagailuek analisi estatikoa, gaitasunen analisia eta testuinguruaren analisia konbinatzen dituzte.[3], serie honetako aurreko argitalpenean azaldu bezala.
Xygenin, analisi estatikoan esperientzia luzea duen ingeniaritza talde bat dugu, eta hori da beste antimalware irtenbideekiko desberdintasun nagusia. Kontuan izan ekosistema batzuetarako paketatutako tarball-ak iturburu-kodea duela (adibidez, JavaScript edo TypeScript kodea NPM paketeetarako, Python iturburuak PyPI paketeetarako), edo analisi estatikorako iturburu-kodetik nahikoa hurbil dagoen konpilatutako kodea (adibidez, bytecode JAR fitxategietan Mavenerako). Beste batzuetarako, hala nola edukiontzien irudietarako, ohikoak dira exekutagarri bitarrak, beraz, gaitasunen inferentzia da erabiltzen den teknika, YARA arauetan eta malware sinaduretan oinarritutako malware detekzio konbentzionalarekin batera.
Kontuan izan ohiko adierazpenak edo sinadurak bezalako teknologia sinpleak ez direla egokiak portaera gaiztoa detektatzeko. Imajinatu deskargatzaile edo deskargatzaile bat detektatzen ari zarela: Kode edo binario bat paketean dago edo kanpoko domeinu batetik deskargatuta dago, osagaiarekin zerikusirik ez duena (bat izan liteke...) mehatxu-egileek erositako domeinu-zerrenda handia[4], Edo bat domeinu legitimoa detekzioa saihesteko). Kode hori exekutatzen da horretarako funtzioetako bat erabiliz. Kodea eraldatu daiteke deskargatzeko URLa edo deskargatutako kodea exekutatzeko erabilitako funtzioa ezkutatzeko. Datu-fluxuaren analisi osoa behar da detektatzeko, analisi estatikoaren makinaria osoa erabiliz, edo sandbox-eko exekuzio batek (portaera gaiztoa exekutatzeko baldintzak betetzen badira) detektatu dezake hau kasu orokorrean.
Mehatxu-egileek teknika eta detektagailu berdinak jarraitzen dituzte, haientzat diseinatu eta ezarri zirenak. Aurre-prozesatzeko urrats batzuk ere badaude, adibidez, nahasmena kentzeko, askotan beharrezkoak ezkutuko portaera agerian uzteko.
Testuingurua gehitzea
Detektagailu batzuek testuinguru-informazioa erabiltzen dute. Adibidez, osagaien erregistroko bertsioaren eta lotutako GitHub biltegiko etiketaren/argitalpenaren arteko desadostasunak froga sendoa da agian gaizkile batek erregistrorako argitalpen-kredentzialak lortu dituela, baina ez GitHub biltegirako. Kripto-zorroen saltzaileari eragiten dion bezalako erasoek... Ledger erraz antzeman liteke desadostasun honen bidez.
A gaiztakeria puntuazioa (MS) detektagailuen exekuzioen emaitzetatik kalkulatzen da, jasotako ebidentziaren sendotasunean oinarrituta. Ez dira aurkikuntza guztiak berdinak, eta exekuzio-ordena garrantzitsua da.
Erabiltzaile eta Osagaien Ospea
Ez dira kode irekiko garatzaile guztiak berdin sortzen!
Garatzaile entzutetsu bati bere NPM kontua bahitu diezaiokete (hau segurtasunaz jabetzen diren pertsonei ere gertatzen zaie), eta malwarea argitaratu kontu hori erabiliz. Jakina, ospea bat-batean erori beharko litzateke, eta iraganeko distira berreskuratu bahitutako kontua berreskuratzen denean eta garatzaileak kontua bereganatzea eragin zuten baldintzak konpontzen dituenean bakarrik. Ospea zaila da irabazten, baina berehala gal daiteke.
MEW-en, ospea kudeatzeko sistema integral bat ezarri dugu portaera positiboa saritzeko eta jarduera susmagarriak zigortzeko. Sistema hau jarrera neutralean dauden erabiltzaile berriekin hasten da eta haien ospea egokitzen du etengabeko jardueren arabera.
Erabiltzaile baten ospea hobetzen da ekintza positiboen bidez, hala nola sare sozialetako kontu aktibo mantentzea, faktore anitzeko autentifikazioa gaitzea, proiektuetan aldizka laguntzea eta sinatzea. commits egiaztagarri diren gakoak dituztenak. Alderantziz, ospea hondatzen da malwarea argitaratzea, botatzeko helbide elektronikoak erabiltzea, ez sinatzea bezalako ekintza etsaiengatik. commits, edo ekarpenetan eredu ezohikoak erakusten dituzte.
Gure sistemaren helburu nagusia ingurune seguru eta fidagarria bermatzea da. Horretarako, erabiltzaileen ospea dinamikoki doitu eta hainbat faktoreren arabera egokitzen du, pribatutasun-kezkak eta erregistro desberdinen mugak errespetatuz.
Erabiltzailearentzako barne-ospe puntuazioa kalkulatzen da (erregistroan eta github kontuan sartuz ahal den guztietan), eta aztergai den osagaia sailkatzean erabilitako gaiztakeria puntuazioarekin batera, eta osagaiaren argitalpenaren pean nor dagoen hobeto kalifikatzeko.
Portaera gaiztoaren frogak aurkitu dira. Eta zer? Eskuzko berrikuspen prozesua
Uneko sailkatzaileak aztertutako osagaiaren bertsioa "gaiztoa dela baieztatuta", "gaiztoa dela ziurrenik", "arrisku handikoa", "arrisku txikikoa" edo "ez-gaiztoa" kategoria batean ezartzen du, aurkikuntzak laburbiltzen dituzten puntuazioen atalaseetan eta erabiltzailearen/osagaiaren ospean oinarrituta. "Arrisku handikoa" edo "gaiztoa dela ziurrenik" kategorietan sailkatzeak eskuzko berrikuspena eta lehen jakinarazpena abiarazten ditu. "Gaiztoa dela baieztatuta" kategoria eskuzko berrikuspenaren ondoren edo frogak gaiztoa dela baieztatu zen aurreko bertsio baten froga berarekin bat datozenean ezartzen da.
Portaera gaiztoa izan daitekeenaren froga nahikoa dagoenean, lehen alerta bat (berrogeialdiko alerta) bidaltzen zaie kaltetutako erakundeei. Aurretik aipatu bezala, horrek berrogeialdian dagoen osagaiaren menpe dagoen softwarearen instalazioa edo eraikuntza blokeatu dezake.
Horrek arazo bat sortzen du MEW barnean dashboard beraz, segurtasun-analistek osagaiaren eskuzko berrikuspen-prozesua has dezakete. Taldeak tresna espezializatuak ditu (sandbox, desofuscatzaileak, malwarearen ikerketarako banaketa, malwarearen berri emateko tresnak) ikertzen ari den osagaiaren bertsioaren izaera azkar ebaluatzeko. Malware gehiena ("antxoak" edo osagai gaizto sofistikatu gabeak) berrikusten da
Berrikuspenaren emaitza bietan amaitzen da segurua, beraz, analisi automatikoaren motorrak positibo faltsu bat aurkitu du, eta hau makina-ikaskuntzako sailkatzaileari eredua ikasteko feedback gisa erabiltzen zaio; edo gaiztoa baieztatuta, beraz, osagaia modu arduratsuan gaiztoa dela jakinaraziko zaio erregistro publikoari, txosten-prozesua jarraituz. Bigarren jakinarazpen bat bidaltzen zaie kaltetutako erakundeei, eta hauek, aldi berean, osagaia berrogeialditik atera, edo behin betiko blokeatu bertsio-berritze prozesutik edo barne-erregistroan erabiltzen den osagai-suebakitik.
Ezarpen honek egunero hamar milaka bertsio berri aztertzeko eta ziurrenik gaiztoak diren hamarrak identifikatzeko aukera ematen digu, eta gero eskuz berrikusi. Gogoratu aurreko atalean hamar milatik bat dela gaur egun basoan ikusten ditugun osagai gaiztoen tasa.
Erregistroari jakinaraztea
Kode irekiko azpiegituraren bizkarrezurreko bat diren erregistro publiko gehienek segurtasun arazoak, eta bereziki osagai gaiztoak, jakinarazteko mekanismo nahiko mugatuak eskaintzen dituztela ikusi dugu. Txostenak egiteko prozesuaren oinarrizko antolaketa hobetzeko ahaleginak egiten ari gara. Normalean, gehienez ere, erregistroko segurtasun taldearen feedback mezu elektroniko bat jasotzen dugu, osagaia erregistrotik kendu dela baieztatzen duena.
Batzuetan erregistroa gaizki erabiltzen da, erabilera-baldintzak hautsiz, baina softwarean portaera gaiztoa eragin gabe. Hau erregistroari ere jakinarazten zaio, baina ez zaie erakundeei jakinarazten zarata mugatzeko.
Etorkizuneko lana
Hobekuntza asko daude bide-orrian. Lehenik eta behin, sistema eragilearen osagaien osasunerako atari publikoa, batez ere gaiztakeria potentzialaren frogarekin lotuta, garatzen ari da. Kode irekiko komunitatearentzako ekarpen xume bat bezala pentsatuta dago hau. Egon adi.
Beste garapen jarraitu bat hobekuntza da makina-ikaskuntza sailkatzailea. MEW-ek aurreko sailkapenetatik ikasiko du. Motorraren detektagailuen aurkikuntzen bektorea, osagaiaren eta argitaratzailearen gaiztakeria puntuazioa eta ospe puntuazioa gehi ("aurkitutako froga") makina-ikaskuntza sistema baterako sarrera gisa erabiltzen da, sailkatzaile eredua eguneratzen duena. Irteerako aldagaia, besterik gabe, erregistroak osagaia gaiztakeria zen baieztatu duen ala ez da. Honi "Orakulua" izena du eta aurreikuspen zehatzago batekin lagunduko du.cise kalifikatzailea, sendoa izateko diseinatua (gogoratze handia, hau da, osagai gaiztoak ez galtzeko), baina positibo faltsu gutxiagorekin (osagai seguruak gaizto gisa ez salatzeko).
A kritikotasun puntuazioa lehentasun irizpideetarako gehituko dira, bezeroen mendekotasun multzoari dagozkionak eta argitaratzailearen ospe baxua kontuan hartzeaz gain. Argi dago eragin eta garrantzi handiagoa duten proiektuak lehenago kontuan hartu behar direla azterketarako. Ez dugu gurpila berrasmatuko hemen, eta jarraituko dugu Kode irekiko proiektuen kritikotasun puntuazioa.
Ekosistema gehigarrientzako laguntza garatzen ari da. PHP edo Jenkins pluginak bezalako teknologia eta tresna zabalduak daude bide-orrian.
Era berean, aztertzen ari gara ea eskuzko berrikuspen prozesuari IA lagundu dakiokeen osagai gaizto sofistikatuago batzuen analisia errazteko.
Serie honen hurrengo eta azken atalean, “Kode irekia ustiatzea: Zer espero daiteke gaiztoengandik", aurkariek erasoak isilpean, detektatzen zailagoak, industria espezifikoetara zuzenduagoak eta errentagarriagoak egiteko erabiltzen ari diren azken moduetan zentratuko gara. Ransomware erasoak ibilgailu hau erabiliz egingo al dira? Nola erabiltzen dituzte gaizkileek IA tresnak malware sofistikatuagoa emateko? Arriskuan al daude proiektu ezagunenak? Irakurleei arma-lasterketa honen ideia bat emateko da hau, eta zer espero daitekeen epe laburrean (2024ko bigarren seihilekoa) eta epe ertainean (2025).
Amaitzeko, komunitateak eman ditzakeen urrats txikiei buruzko gogoeta batzuk azalduko ditugu, kode irekiko munduaren irekitasuna gehiegi aldatu gabe. Adibidez, malwarea erregistro publikoei jakinarazteko mekanismo eraginkorragoa, eta osagai potentzialki gaiztoen frogak erregistroekin eta komunitatearekin partekatzea, mehatxu-egileei ateak ixteko helbururantz norabide onean urrats txiki bat izango litzateke.
Kode irekiko osagaietako malwareak ez luke kode irekiko komunitateak gure gizarteari ekarri dizkion onura izugarriak eten behar.
- [1] Gure eskanerrak aztertutako software proiektuek erreferentziatzen dituzten kode irekiko osagaiak detektatzen ditu, beraz, eguneratutako mendekotasun grafiko osoa ezagutzen da, behintzat aldizka eskaneatzen diren proiektuetarako. Xygeni OSS-ek API bat erakusten du, bezeroek intereseko osagai bat zerrenda zurian sartzerakoan ere erabil dezaketena, ahultasunei eta froga gaiztoei buruzko informazioa barne.
- [2] Segurtasun arazoekin bat datorren baldintza bat detektatzen bada, babes-hesi batek eraikuntza eten dezake. Segurtasun aurkikuntzak, hala nola ahultasun kritiko eta eskuragarri bat edo berrogeialdian dagoen osagai baten erabilera, kaltetutako softwarearen eraikuntza eteteko bezain larriak izan daitezke.
- [3]Gure segurtasun-analistek osagaia edo haren instalazio-gidoiak sandbox ingurune batean exekutatzen dituzte beharrezkoa denean. Hala ere, MEW-ek ez du analisi dinamikorik egiten, batez ere jokabide gaiztoa ez delako beti eraso zuzenduetan gertatzen eta mehatxu-eragileek analisi dinamikoa saihesteko erabiltzen duten saiheste-logika dela eta.
- [4] Teknika honi Domeinu Erregistratuen Sorkuntza Algoritmoak edo RDGA izena eman zitzaion, eta mehatxu-eragile berriak sortu ziren, hala nola, deiturikoak. Errebolberra Untxia Milioi bat dolar inbertitu zituen 500.000 domeinutan, ziberkrimenaren industriak zenbaterainoko errentagarria den erakutsiz.







