CWE delakoa (Common Weakness Enumeration) garatzaileen eta profesionalen komunitateek egindako zerrenda bat da, zibersegurtasunarekin zerikusia duten softwareko eta hardwareko ahultasunik ohikoenak biltzen dituena. Ahultasuna diogunean, softwarearen eta hardwarearen inplementazioan, kodean, diseinuan eta arkitekturan dauden akats, errore eta kalteberatasunez ari gara. Konpondu ezean, sistemak eta sareak eraso baten aurrean zaurgarri izatea eragin dezakete. CWE zerrenda 2006an argitaratu zen lehengoz, eta hasiera batean software-arazoak baino ez zituen aintzat hartzen.
Hiru urte geroago ahultasunen top 25a eman zen argitara; horretan zerrendatuta zeuden garatzaileei, segurtasun-analistei, ikertzaileei eta hornitzaileei galdetu ondoren jasotako erantzunak. Azkenik, 2019an datu objektiboetan oinarrituriko ikuspuntuari heldu zitzaion, eta hala iritsi zen gaur egungo bertsioa, 2020koa, Ahultasunen Datu Base Nazional estatubatuarraren (NVD) datuak erabiltzen dituena, eta maiztasuna eta batez besteko puntuazio bat bateratuz ezartzen duena sailkapenaren ordena.
Jarraian, 2020ko 25 ahultasunik garrantzitsuenak laburbilduko ditugu:
- Inputa modu desegokian neutralizatzea webgunea eratzean (XSS lekuen Scripting-a). Softwareak ez du erabiltzailearen inputa neutralizatzen
(edo gaizki egiten du) eta erasotzaileak gai dira script bat txertatzeko web-aplikazio baten outputean. Hala, script hori bezeroaren nabigatzailean exekutatzen da.
- Mugaz kanpo idaztea. Softwareak aurreikusitako buferraren aurretik edo ondoren idazten ditu datuak, eta horrek datuak hondatzea edo kode bat
blokeatzea edo exekutatzea eragin dezake.
- Sarrera gaizki balioztatzea. Aplikazioak sarrerak eta datuak jasotzen ditu, baina ez da gai horiek balioztatzeko, edo okerreko eran egiten du. Sarrera-balioztatze hori arriskutsuak izan litezkeen sarrerak egiaztatzeko erabiltzen da, kodearen barruan eta beste osagai batzuekin komunikatzean modu seguruan prozesatuko direla bermatzeko.
- Mugaz kanpo irakurtzea.Softwareak aurreikusitako buferraren aurretik edo ondoren irakurtzen ditu datuak. Horrek aukera eman
diezaieke gaizkileei informazio konfidentziala irakurtzeko memorian, edo blokeo bat eragiteko.
- Eragiketen okerreko murrizketa, memoria-bufer baten mugen barruan. Normalean, softwareak memoria-bufer batean egin ditu eragiketak, baina
gerta daiteke aurreikusitako bufer-mugatik kanpoko kokaleku batean irakurtzea edo idaztea eragiketa horiek. Ondorioz, irakurketa- eta idazketa-eragiketak eman daitezke bestelako aldagai, datu-egitura eta programaren barne-datuei
loturiko memoria-kokalekuetan.
- SQL komando batean erabilitako elementu bereziak gaizki
neutralizatzea (SQL Injekzioa). Web-aplikazio bati egindako eraso-mota bat da,
web-aplikazio horretan SQL motako sententzia maltzurrak txertatzeko aukera
ematen duena. Hala, datu-baseko datu labainetara sartzeko bidea irekiko da, edo
zuzenean suntsituko dira datu horiek. Honezkero, SQL injekzioa ohiko arazoa da
datu-baseak oinarri dituzten webguneetan. Akatsa erraz atzematen da, baina
ustiatzen ere erraza da.
- Informazio konfidentziala uztea baimendu gabeko erabiltzaile baten eskura. Huts horren larritasuna ez da beti berdina, eta aplikazioa erabiltzen den testuinguruaren, agerian jarritako informazio-motaren eta erasotzaileek lor dezaketen onuraren araberakoa izaten da.
- Askatutako memoria erabiltzea (use after free). Askatutako memoriari erreferentzia egiteak programa bat blokeatzea, ustekabeko balioak erabiltzea eta kode bat exekutatzea ekar ditzake. Hainbat ondorio egon daitezke: datu baliagarriak hondatzea, kode arbitrarioa exekutatzea.
- Guneen arteko eskariak faltsutzea (CSRF). Web-zerbitzari bat bezero baten eskaria jasotzeko diseinatuta badago, baina ez badu mekanismorik asmo txarrez bidalitakoa dela egiaztatzeko, erasotzaile batek bezero hori engaina dezake web-zerbitzariari eskaera bat egin diezaion URL baten bidez, irudi-karga baten bidez, XML bidez... eta eskari hori benetakotzat joko da.
- Sistema eragilearen komando batean erabilitako elementu
bereziak modu desegokian neutralizatzea (SEaren komandoaren injekzioa).
Erasotzaile batek komando arriskutsuak exekuta litzake, zuzenean SEan.
Ahultasun hori pribilegioak dituen programa batean badago, gainera, ahalbidetu
lezake irisgarriak ez diren komandoak zehaztea, baita ordezko komandoei deitzea
ere, erasotzaileak ez dituen pribilegio eta guzti.
- Osoek gainezka egitea (Wraparound). Balio oso bat handitzen bada, loturiko errepresentazioan gordetzeko handiegi bihurtzeraino, osoek gainezka egiten dute, eta arazoa segurtasunerako oso larria izan daiteke hori erabiltzen bada begizta bat kontrolatzeko, erabaki bat segurtasunez hartzeko, eta zenbait jokabidetan (memoria esleitzea, kopia, kateamendua, eta abar) lekualdatzea eta tamaina zehazteko.
- Murriztutako direktorio baterako ibilbidearen izena modu desegokian mugatzea (Zeharkako ibilbidea). Dagokion softwareak kanpo-sarrera
bat baliatzen du ibilbide-izen bat sortzeko, eta izen horren egitekoa da
murriztutako direktorio nagusi baten azpian dauden fitxategiak eta direktorioak
identifikatzea. Haatik, softwareak ez ditu behar bezala neutralizatzen
ibilbide-izenaren barruko elementu bereziak. Hala, erasotzaile batek kokaleku
murriztutik ihes egin dezake, sistemaren beste alde batzuetan dauden
fitxategietara eta direktorioetara sartzeko.
- Baliogabeko erakusleari erreferentzia kentzea (NULL). Hala gertatzen
da aplikazio batek ezabatzen baldin badu baliozkoa izango dela uste den baina
baliogabea den erakusle baten erreferentzia. Horrek blokeoa eragin dezake, edo
irtetea. Ez programatzeak, besterik gabe, halako arazoak sor ditzake.
- Okerreko egiaztatzea. Hala gertatzen da erabiltzaile batek
identitate jakina duela esan eta loturiko softwareak ez badu frogatzen, edo
nahikoa ez den eran frogatzen badu, baieztapen hori zuzena dela.
- Murrizketarik gabeko fitxategi arriskutsuak kargatzea.
Softwareak aukera ematen dio erasotzaileari produktuaren ingurunean
automatikoki prozesa daitezkeen fitxategi arriskutsuak kargatzeko edo
transferitzeko.
- Baliabide erabakigarrietarako baimenak modu desegokian
esleitzea. Dagokion softwareak baimenak zehazten ditu segurtasun-baliabide erabakigarrietarako,
hirugarrengoei baliabide hori irakurtzea eta eraldatzea ahalbidetuko dien modu
batean; ondorioz, informazio konfidentziala uzten da agerian, baita baliabidea
aldatzeko arriskua sortu ere, nahi ez den eremuetan. Hori oso arriskutsua da
baliabideak zerikusia badu konfigurazioarekin, exekutatzearekin edo
erabiltzailearen datu konfidentzialen erabilerarekin.
- Kodearen sorrera behar bezala ez kontrolatzea (Kode
injekzioa). Softwareak goranzko osagai baten kodea eraikitzen du kanpotik
kontrolatutako sarrerak baliatuz, baina sintaxia eta aurreikusitako
kode-segmentuaren jokabidea alda dezaketen hainbat elementu ez ditu
neutralizatzen. Kontuan eduki beharra dago prozesuaren exekuzioa eralda
daitekeela datu-kanal legitimoetatik kodea bidaliz, beste inolako mekanismorik
erabili gabe.
- Babes nahikorik gabeko egiaztagiriak. Aplikazioak
egiaztatze-baimenak transmititu edo biltegiratzen ditu, baina segurtasun
gutxiko metodoa erabiltzen du, baimenik gabeko erabiltzaileek atzeman
dezaketena.
- XML erreferentziaren murrizketa okerra. XML fitxategi bat
(URIdun XML entitateak izan ditzakeena) bidaliz, erasotzaile batek lor dezake
prozesamendu-aplikazioak artxibo lokal baten edukia irakurtzea, eta hala,
aplikazioa behartu dezake erasotzailea zuzenean sartu ezin den zerbitzariei
irteerako eskariak bidaltzera. Eskariok firewall-aren murrizketak saihesteko
erabil daitezke, baita erasoaren sorburua zein den ezkutatzeko ere.
- Kodetutako baimenak erabiltzea. Software batean kodetutako
baimenek huts eginez gero ate bat sor daiteke, erasotzaileari aukera emango
diona softwarearen administratzaileak konfiguratu duen egiaztatze-metodoa
saihesteko.
- Konfiantzazkoak ez diren datuei serie-kodifikazioa kentzea.
Aplikazioak serie-kodifikazioa kentzen die konfiantzazkoak ez diren datuei,
behar bezain ongi egiaztatu gabe lortzen diren datuak baliagarriak ote diren.
Babesteko kriptografia erabili ezean, datu horiek eraldatu egin daitezke.
- Pribilegioak modu desegokian kudeatzea. Softwareak ez ditu
erabiltzaile baten pribilegioak egokiro esleitzen, aldatzen, bilatzen ezta
egiaztatzen ere, eta ondorioz erabiltzaile horren kontroletik at dagoen eremu
bat sortzen da.
- Kontrolik gabeko baliabide-kontsumoa. Dagokion softwareak ez
ditu behar bezala kontrolatzen baliabide mugatu baten esleipena eta mantentzea.
Horrek aukera ematen du kontsumitutako baliabideen kantitatean eragiteko, eta
azkenik, agortu egiten dira baliabide erabilgarriak.
- Funtzio erabakigarrietarako egiaztatzerik eza. Programak ez
du egiaztatzerik egiten frogatzeko moduko erabiltzaile-nortasun bat eskatzen
duten funtzionalitateetarako, edo baliabide-kantitate esanguratsua kontsumitzen
du.
- Desagertutako baimena. Softwareak ez ditu baimenak
egiaztatzen erabiltzaile bat baliabide batera iristen edo ekintza bat gauzatzen
saiatzen denean, eta hala, sarbidea errazten du baimendu gabekoak beharko
luketen datu eta ekintzetarako. Horrek hainbat arazo sortzen ditu: informazioa
agerian uztea, zerbitzua ukatzea eta kode arbitrarioa exekutatzea.
Oso top 25 baliagarria zibersegurtasunaren alorreko
profesionalentzat
CWE zerrendan balizko 700 errore baino gehiago badaude ere,
atera daitekeen ondorioa da horietatik zortzik baino ez dutela arriskua
eragiten. Hau da, eraso bat arrakastaz egiteko balia daitekeen akatsik
izatekotan, zortzi errore hauetako bat egongo da tartean:
- Datuak irakurtzea.
- Datuak aldatzea.
- Zerbitzua ukatzea (DOS). Ez fidatzeko
moduko exekutatzea.
- Zerbitzua ukatzea (DOS). Baliabide-kontsumoa.
- Baimendu gabeko kodeak edo komandoak exekutatzea.
- Pribilegioak eskuratzea edota besteren nortasuna hartzea.
- Bypassa babesteko mekanismoak.
- Jarduerak ezkutatzea.
Azken batean, softwarea eta hardwarea garatzen dute enpresek, baita segurtasunaren arloko profesionalek ere, ahultasunak atzemateko, deuseztatzeko eta arintzeko erabiltzen dute gaur egun CWE lanabesa. CWE zerrenda doako baliabidea da, kanpoko eraso bat eragin dezaketen programazio-errore zabalduenak identifikatzen dituena. Halako hutsak erraz aurkitu ohi dira, baina ziberkriminalentzat ere erraza da haietaz baliatzea.