
A08:2021 - Software eta Datuen Integritate Akatsak
Celia CatalánPartekatu
Ahultasunaren deskribapena
Vulnerabilitate mota hau agertzen da aplikazioa ez dagoenean behar bezala babestuta kritikoak diren datuen edo softwareko osagaien manipulazioaren aurka, eta horrek datuen aldaketak, ordezkapen erasotzaileak edo baimenik gabeko kode injezioak eragin ditzake. Kategoria honek zehazki arriskuak barne hartzen ditu, hala nola softwareko eguneratzeetan, kanpoko liburutegietan edo datuen konfigurazio kritikoetan integritate falta.
Eragina
'Hau da ahultasun honen eragina presente dagoen sistemetan eta aplikazioetan:'
- Kode injezioak: Erasotzaileek softwarea eta aplikazioak konprometitu ditzakete sistema barruan exekutatzen den kodea injetatuz. Honek baimenik gabeko sarbidea, datuen iragazketa edo sistemaren funtzionaltasunaren aldaketa ekar dezake.
- Softwarearen hornidura konpromisoa: Eragile batek hainbat erakundek erabiltzen duten menpekotasun edo liburutegi bat konprometitzen badu, eragina zabala izan daiteke, osagai horren menpe dauden aplikazio askori eraginez.
- Pribilegioak igotzeko edo zerbitzuaren ukatzean erasotzea: Sistema kritikoen konfigurazioak aldatzea edo pribilegioak igotzeko aukera ematen duten ahultasunak sartzea posible da, azpiegitura konprometitzen edo bere funtzionamendu egokia oztopatuz.
OWASP Top Ten-en beste ahultasunekin duten harremana
- A06:2021 - Ahul eta Zaharkituta dauden Osagaiak: Ahultasun hau osagai seguruak edo eguneratu gabeak erabiltzearekin estu lotuta dago, softwarearen integritate falta askotan ahul diren menpekotasunak barne hartzen ditu.
- A07:2021 - Identifikazio eta Autentifikazio Akatsak: Autentifikazio konfigurazioak behar bezala babestuta ez badaude, erasotzaileek datuen integritatearen akatsak aprobetxatu ditzakete mekanismo hauek manipulatzeko.
- A09:2021 - Segurtasun Logistika eta Monitorizazio Akatsak: Monitorizazio egokirik eza softwarearen edo datuen integritatean akatsak igarotzea eragin dezake, ustiapen arriskua handituz.
Adibide praktikoa
Deserializazio Segurtasunik Gabea
Deserilizazio ez segurua gertatzen da webgune batek erabiltzaileak kontrolatutako datuak deserilizatzen dituenean. Honek erasotzaile bati aukera ematen dio objektu serilizatuak manipulatzeko aplikazioaren kodean datu kaltegarriak sartzeko.
Zenbait kasutan, erasotzaileak objektu seriatua klase oso desberdineko batekin ordezkatu dezake. Kezkagarria da webgunean eskuragarri dagoen klase bateko edozein objektu deserializatuko eta instantziko dela, jatorriz espero zen klasea kontuan hartu gabe. Arrazoi honengatik, deserializazio ez-seguruak "objektuen injezio" ahultasun gisa ezagutzen dira.
Klase ezohiko bateko objektu batek salbuespen bat sor dezake, baina askotan kaltea jada gertatu izango da. Izan ere, deserializazioan oinarritutako hainbat erasok prozesua amaitu baino lehenago burutzen dira. Honek esan nahi du deserializazio prozesuak berak eraso hori piztu dezakeela, webguneak ez badu zuzenean interakzionatzen objektu gaiztoarekin. Beraz, tipifikazio estua duten hizkuntzak erabiltzen dituzten webguneek ere teknikak hauekiko ahultasunak izan ditzakete.
Serializatutako objektuen manipulazioa
Deserializazioaren ahultasun batzuk ustiatzea objektu serializatu batean atributu bat aldatzea bezain erraza izan daiteke. Objektuaren egoera mantentzen denez, datu serializatuak aztertu daitezke atributu garrantzitsuen balioak identifikatzeko eta aldatzeko. Ondoren, objektu gaiztoa webgunean bidali daiteke bere deserializazio prozesuaren bidez. Hauxe da deserializazioaren aurkako eraso oinarrizko baten hasierako pausoa.
Orokorrean, bi hurbilpen daude objektu serializatuak manipulatzeko. Objektua zuzenean bere byte-fluxu formatuan editatu daiteke, edo, bestela, hizkuntza egokian script txiki bat idatzi dezakezu objektu berria sortu eta bere kabuz serializatzeko. Azken hurbilpen hau normalean errazagoa da serializazio binario formatuak lantzean.
Objektu seriatutakoen atributuen aldaketa
Datuak manipulatzeko, beti ere erasotzaileak baliozko serializatutako objektu bat mantentzen badu, deserializazio prozesuak zerbitzarian atributuen balio aldatuak dituen objektu bat sortuko du.
Adibide gisa, erabiltzailearen baliozko pribilegiorik gabeko kredentzialak dituen web batera sartzen da eta webak saio-cookie bat sortzen du, hurrengo irudian ikus daitekeen bezala:
Aringarriak
- Digital sinadurak edo antzeko mekanismoak erabiltzea softwarea edo datuak jatorrizko iturritik datozen eta ez direla aldatu egiaztatzeko.
- Liburutegiak eta menpekoak, hala nola npm edo Maven, fidagarriak diren biltegietatik lortzen direla ziurtatu behar da. Aplikazioak arrisku profila altua badu, fidagarri den barne biltegi bat ostatatzea kontuan hartu daiteke.
- Software hornidura katearen segurtasunerako tresnak erabiltzea, hala nola OWASP Dependency Check edo OWASP CycloneDX, osagaiek ez dituztela ezagutzen diren ahultasunak egiaztatzeko.
- Kodean eta konfigurazioan aldaketen berrikusteko prozesu bat ezartzea, pipeline-an kode edo konfigurazio kaltegarririk sartzeko aukera minimizatzeko.
- Ziurtatu CI/CD pipeline-ak segregazio, konfigurazio eta sarbide kontrol egokiak dituela, eraikuntza eta desplegu prozesuen bidez doan kodearen integritatea bermatzeko.
- Ziurtatu sinatu gabe edo enkriptatu gabe dauden datu serializatuak ez direla bidaltzen bezero ez fidagarrietara inolako integritate egiaztapenik edo sinadura digitalik gabe, datu serializatuen manipulazioa edo erreprodukzioa detektatzeko.