¿Tu web está en riesgo? Descubre por qué las librerías obsoletas son una bomba de tiempo

Zure web-a arriskuan al dago? Aurkitu zergatik diren liburutegi zaharkituak denbora-bomba bat.

Celia Catalán


 Ahul eta Zaharkituta dauden Osagaiak

Sarrera

Web aplikazio modernoek softwareko osagai anitzeko arkitektura jarraitzen dute, hala nola datu-baseak, APIak (Application Programming Interface), liburutegiak, framework-ak, sistema eragileak, etab. Softwareko osagaien kudeaketa eta inbentarioa oinarrizko eta beharrezko lan bat da erakundeentzat, segurtasuna bermatzeko, bateragarritasuna mantentzeko, errendimendua optimizatzeko, arrisku operatiboak murrizteko eta ISO edo GDPR bezalako araudi eta lizentzia indarrean daudenak betetzeko garrantzitsua delako. 

Software osagaien mantentze faltaren ondorioz, arriskuak daude, hala nola, Osagai Ahul eta Eguneratugabeen ahultasuna, 2021eko OWASP Top Ten-en identifikatutako segurtasun mehatxu nagusietako bat, seigarren postuan sailkatuta. 

Osagai ahulak vs Osagai eguneratu gabeak

Osagai ahulak dira segurtasun ahuleziak dituztenak, erasotzaileek informazio sentikorra eskuratzeko edo sistemara sarbidea lortzeko aprobetxatu ditzaketenak. 

Bestalde, Eguneratu gabeko Osagaiak software osagaien erabilerari egiten dio erreferentzia, segurtasun eguneratzeak jasotzen ez dituztenak, eta, beraz, dagoeneko dauden ahultasunak konpontzeko segurtasun-patchak falta dituzte.

Eragina

"Zenbait ahultasun, ahul edo eguneratu gabeko osagaiei eragiten dietenak, eta gaizkileek ustiatzeko arriskuan daudenak, honako hauek dira:"

  • Kode injezioa: Segurtasun ahultasun bat da, erasotzaile batek aplikazio batean kode gaiztoa sartzea ahalbidetzen duena (oro har, erabiltzailearen sarrerak balidatu gabe edo ondo garbitu gabe) eta aplikazioak exekutatzen duena, erasotzaileari baimenik gabeko ekintzak egiteko aukera emanez. 
  • Buffer overflow: Bufferren gainezketa gertatzen da memoria asignatuaren kapazitatea gainditzen denean, erasotzaileek memoria ondoan dauden datuak aldatzea eta usteltzea ahalbidetzen duela. Honek sistema akatsak eragitea, segurtasun kontrolak aldatzea edo pribilegioen igotzea ahalbidetu dezake.
  • Cross Site Scripting: Cross-Site Scripting kritiko bat da web aplikazio modernoentzat, erasotzaileek script gaiztoak fidagarriak diren guneetan injektatzea ahalbidetzen duelako. Hurbilpen ohiko bat XSS gordetako da, non erasotzaileek hirugarrenen osagai ahuletan scriptak txertatzen dituzten, eguneratze eta segurtasun berrikuspenen falta aprobetxatuz, horrek hainbat erabiltzaile eta sistema eragiten dituzten mehatxu iraunkorrak sor ditzake. 

Identifikatu ahultasunak eta eguneratu gabeko osagaiak

Lehen pausoa ahultasuneko osagaiak detektatzeko aplikazioan edo sisteman dauden softwareak eta haien bertsioak identifikatzea da. Bertsio horiek identifikatzeak hainbat hurbilketa, tresna eta teknika eskatzen ditu, behean komentatzen direnak:

  • Iturburu kodea: Kodea edozein softwarearen bizkarrezurra da eta, segurtasun akatsak baditu, sistema baten integritatea, konfidentzialtasuna eta eskuragarritasuna konprometitzeko erabil daiteke. Kodean dauden ahultasunak programazio praktika txarretatik edo eguneratu gabeko hirugarrenen liburutegiak integratzeagatik sortzen dira. 

Kodearen estatiko analisia (SAST) aplikazio baten iturburu kodea exekutatu gabe aztertzeko teknika bat da, segurtasun ahultasunak adierazten dituzten patroiak identifikatzeko helburuarekin. Analisi hau automatizatutako tresnen bidez egiten da, praktika txarrak, programazio segururako estandarren urraketak eta funtzio kritikoen erabilera detektatzen dituztenak. 


  • Frontend-eko bertsioen esposizioa: Maiz aurkitzen dira web aplikazioetan publikoan erabiltzen diren osagaien bertsioak.


  • HTTP Buruak: Web aplikazio eta zerbitzari batzuek softwarearen bertsioak HTTP erantzunen buruetakoan agertzen dituzte. Buruek xehetasunak izan ditzakete, hala nola, erabilitako web zerbitzaria (Apache, Nginx, IIS), PHP, Python, ASP.NET bertsioak, edo baita Django edo Ruby on Rails bezalako framework-en informazioa.
Hurrengoan, erabilgarriak diren goiburu batzuk erakusten dira:
  • Server: Web zerbitzariaren mota eta bertsioa erakusten du.
    • Adibidea: Zerbitzaria: Apache/2.4.49 (Ubuntu)
  • X-Powered-By: Programazio lengoaia edo framework-a adierazten du.
    • Adibidea: X-Powered-By: PHP/7.4.3 edo X-Powered-By: ASP.NET
  • Via: Proxy edo ateak erabilitako xehetasunak agerian utz ditzake.
    • Adibidea: Bidea: 1.1 vegur
  • X-AspNet-Version: ASP.NET aplikazioen espezifikoa.
    • Adibidea: X-AspNet-Version: 4.0.30319
  • X-Drupal-Cache: Drupal oinarritutako sistemetan.
    • Adibidea: X-Drupal-Cache: HIT

  • Erroreak eragitea: Sistema, aplikazio edo software bat egoera jakin batzuei jarri eta portaera ezohikoak, akatsak edo erantzun arraroak eragiteko praktika bat teknologia batzuk agerian uzteko irits daiteke.
Teknika hau zibersegurtasunaren alorrean fuzzing edo fuzz testing gisa ezagutzen da, eta softwarearen ahultasunak edo indar faltak detektatzea du helburu, sarrera aleatorio, gaizki formatutako edo anomaloak sartuz akatsak eragiteko eta erantzunak aztertzeko.


  • Banner Grabbing: Banner grabbing-a zerbitzari batean exekutatzen ari diren zerbitzuen bertsioei buruzko informazioa lortzeko erabiltzen den teknika oso erabilia da. Zerbitzu askok, web zerbitzariak, FTP, SSH edo SMTP bezalakoek, konektatzean banner-ak itzultzen dituzte, softwarearen izena, bere bertsioa eta batzuetan informazio gehigarria barne.
  • Ahultasunak eskaneatzeko eta zerbitzuak enumeratzeko tresnak: Ahultasunak eskaneatzeko tresnek normalean osagaien bertsioak identifikatzen dituzte zerbitzariek edo zerbitzuek zenbait eskaera edo ezaugarri aurrean ematen dituzten erantzunen arabera.


  • APIekin Interakzioa: Web aplikazio askok APIak eskaintzen dituzte softwarearen xehetasunak, bertsioak barne, emateko. API batzuek informazio hau HTTP buruetako edo JSON erantzunetako itzultzen dute.

Zenbait tresna interesgarri

Web aplikazio batean bertsioak identifikatzeko laguntzen duten tresna erabilgarri ugari daude. Horietako batzuk hauek dira:

Nmap

"Sareak eta zerbitzuak eskaneatzeko tresna ezagunenetako bat. Bere NSE (Nmap Scripting Engine) script-ek zerbitzari eta aplikazio zehatzen bertsioak detektatzea ahalbidetzen dute." 
Hauetako script-ak erabiltzeko, --script aukera erabiltzen da. Software bertsioak identifikatzeko interesgarriak diren script batzuk http-enum eta http-server-header dira.

Nessus / OpenVAS

Tresna hauek ahultasun aurreratuen eskaneoak egiten dituzte, zerbitzuak, bertsioak eta ezagutzen diren ahultasunak (CVE) identifikatuz. 
Nessus tresnak duen muga handiena, OpenVAS baino osatuagoa eta errazagoa izan arren, bere erabilera komertziala da, lizentzia kostu altuekin. Horregatik, alternatiba gisa OpenVAS aurki daiteke.

Inork

Nikto kode irekiko tresna bat da, web zerbitzarietan segurtasun eskaneoak egiteko diseinatuta. Auditoria eta penetratzeko probetan erabiltzen da, ahultasun arruntak, okerreko konfigurazioak, software bertsio zaharkituak eta web zerbitzarietan segurtasun arazoak identifikatzeko.
Bere datu-basea regularki eguneratzen da ahultasun eta konfigurazio ez-seguro berriak barne hartzeko.

WhatWeb

WhatWeb Kali Linux-en barnean dagoen ezagutza-tresna bat da, webguneetan erabiltzen diren teknologiak identifikatzeko diseinatuta. WhatWeb webguneak aztertzen ditu eta web zerbitzari, marko, edukien kudeaketa sistemak (CMS), programazio lengoaia, liburutegi, konfigurazio eta gehiago buruzko xehetasunak ateratzen ditu.

Wappalizatzailea

Web aplikazio batean zein teknologia dauden azkar ikusteko oso erosoa den tresna Wappalyzer da. Chrome, Firefox edo Edge bezalako nabigatzaile desberdinetan luzapen gisa instalatu daiteke, eta inplikatutako teknologien bertsioak erakutsi ditzake.

Erretiratu.js

Retire.js JavaScript liburutegietan eta/edo Node.JS modulu zahar edo ahulak identifikatzeko espezializatutako tresna da.
Gainera, tresna hau zuzenean integratu da BurpSuite eta ZAP (Zed Attack Proxy)rekin plugin baten bidez, esteka hau jarraian gehitzen dizuet: https://github.com/h3xstream/burp-retire-js

Bertsioa identifikatu ondoren...
Bertsioa aurreko metodoetako baten bidez identifikatzen denean, beharrezkoa da ateratako datuak CVE Details, Exploit DB edo https://www.metasploit.com/ bezalako datu-baseekin alderatzea, bertsio zehatzekin lotutako ahultasunak bilatzeko.


Arintze/Sendatze

  • Teknologien inbentarioa mantentzea (aplikazioan edo sisteman erabilitako liburutegiak, markoak, software osagaiak barne, osagai bakoitzaren bertsio zehatzak eta jatorria bezalako xehetasunak barne, azkarrago identifikatzeko aukera ematen du, eguneratu gabe daudenak edo ahulak direnak. 
  • Eguneratuta egon: Segurtasun eguneratzeetaz eta software osagaietan eragiten duten recently discovered vulnerabilities-az jabetzea funtsezkoa da. Honek segurtasun buletinetan harpidetzea, ezagutzen diren ahultasun datu-baseak (CVE bezalakoak) jarraitzea, bertsio zaharkituak eta ahulak detektatzeko tresna automatikoak erabiltzea, eta erabiltzen diren teknologien hornitzaileen alertak aktiboki monitorizatzea dakar. Garatzaileek garatutako aplikazioetan segurtasun praktika onak mantendu behar dituzte etorkizuneko arazoak saihesteko.
  • Garapen praktika onak. Web aplikazioak garatzerakoan, gomendagarria da eguneratze regularrak jasotzen ez dituzten edo ahultasunak eta hobekuntza beharrak erantzuteko komunitate aktiborik ez duten liburutegiak, markoak edo tresnak erabiltzea saihestea.
Alba Vara, Pentester Zerolynx-en
Itzuli blogera

Utzi iruzkin bat

Kontuan izan iruzkinak argitaratu aurretik onartu behar direla.