Iturburu-kodea: github.com/Alex0176/odoo-web-rbl — AGPL-3, libreki erabil daiteke.
Interneten Odoo zerbitzari bat ustiatzen duenak bisita jasotzen du. Ez noizean behin, etengabe baizik. Hamazazpi egunez gure bost webguneetan 731.297 eskaera erregistratu eta ebaluatu ditugu. Horietatik 110.511 ez ziren bisitariak, ahultasunen, sarbide-datuen eta konfigurazio-fitxategien bilaketa automatizatua baizik.
Artikulu honek Web RBL deskribatzen du, Odoo 19 Community-rako kode irekiko modulu bat, trafiko hori antzematen, balioesten, erregistratzen eta baztertzen duena — eta blokeo-zerrenda RBL zerrenda gisa argitaratzen duena, hau da, firewall-ek eta reverse proxy-ek zuzenean irakurtzen duten formatuan. Zifra guztiak benetako ekoizpenetik datoz.
Zer egin dezakeen moduluak — funtzioen ikuspegi orokorra
| Funtzioa | Zer egiten duen | Aplikazioa |
|---|---|---|
| Patroi-antzematea | Zundaketak bidearen eta luzapenaren arabera antzematen ditu: .env, .git, konfigurazio-fitxategiak, hodei-gakoak, CI/CD eraikuntza-jarraibideak, WordPress, PHP, path traversal, datu-base kudeatzaileak, GraphQL, /api/fs/exec bidezko komando-exekuzioa eta antzeko interfazeak | blokeatu |
| Hiru maila patroi bakoitzeko | blokeatu, zenbatu edo jakinarazi — patroi bakoitzeko aldagarria, koderik gabe | patroi bakoitzeko |
| Atalaseak | Patroi beraren zenbat emaitza blokeatu aurretik; saio-hasierarako hamar | 10 saio-hasieran |
| Saio-hasieraren defentsa | Saio-hasiera hutsegindakoak inprimakiaren eta XML-RPC/JSON-RPC bidez, saio-egiaztapen hutsegindakoak, datu-base kudeatzailerako sarbideak — datu-basean, ez memorian | aktibo |
| Bot-antzematea saio-hasieran | Hamar saiakera hutsegin ondorengo itxaron-mezua alde batera utzi eta jotzen jarraitzen duena berehala blokeatzen da | blokeatu |
| Portaera-antzematea | Bost minututan hogei errore-orri eta ia emaitza-orririk gabe sortzen dituzten helbideak — hau da, irakurri beharrean asmatzen | jakinarazi |
| Balioespena 0–100 | Zein segurua da helbidearen atzean erasotzaile bat dagoela? Patroiaren larritasunetik, patroi desberdinen kopurutik, egun nabarmenetatik, kaltetutako domeinuetatik eta emaitza-kopurutik abiatuta — arrazoiketarekin testu argian | aktibo |
| Saio-hasiera-blokeoa balioespenaren arabera | Ezar daitekeen balioespen batetik aurrera saio-hasiera debekatuta dago, webgunea irakurgarri geratzen da | 40tik aurrera |
| Sarbide-datuak lapurtu direlako susmoa | Helbide susmagarri batetik egindako saio-hasiera bat jakinarazi egiten da eta, nahi izanez gero, zeregin gisa esleitzen da — helbide bakoitzeko, egunean behin | aktibo |
| Mehatxu-zerrendak | Tor irteera-nodoak, Spamhaus DROP, FireHOL Level 1, blocklist.de aurrekonfiguratuta; beste edozein RBL zerrenda helbidearen bidez gehi daiteke, eguneroko alderaketa, zerrenda bakoitzak bere maila | jakinarazi |
| Saio-hasierarako sarbiderik ez | Zerrendetarako eta herrialdeetarako laugarren maila: webgunea irakurgarri, saio-hasierako orria eta interfazeak itxita — Tor-i emandako erantzun egokia | aukera |
| Jatorrizko herrialdea | Herrialdea detekzio eta helbide bakoitzeko, GeoLite2-ren bidez; moduluak berak eguneratzen du datu-basea doako lizentzia-gako batekin | erakutsi |
| Herrialde-arauak | Blokeatu, saio-hasierarako sarbiderik ez, jakinarazi edo esplizituki askatu — herrialde bakoitzeko, nahita aurrezarpenik gabe | bat ere ez |
| Konfigurazio-akatsak | QNAP, Synology, Exchange Autodiscover, ActiveSync, WebDAV/CalDAV/CardDAV antzematen dira, inoiz ez dira blokeatzen eta aurkikuntzarekin eta eragindako domeinuarekin lan-zerrenda batean jartzen dira | jakinarazi |
| Tiketa helbide bakoitzeko | Aurkikuntza batetik, nahi izanez gero, tiket bat sortzen da — helbide bakoitzeko bat bakarrik; itxitako bat berriro irekitzen da, bikoizten ordez | desaktibatuta |
| Derrigorrezko orriak eta biltzaileak | Lege-oharraren bide kanonikoa beti eskuragarri dago; atzerriko idazkerak makina bidez probatzea antzematen da eta, nahi izanez gero, blokeatzen da | jakinarazi |
| Zerrenda zuria | Inoiz blokeatzen ez diren helbideak eta sareak; egunero betetzen da suebakitik (VPN urruneko puntuak) eta Googlebot eta Bingbot-en argitaratutako helbide-tarteetatik | aktibo |
| Bezeroaren esleipena | Bezero baten saretik datorren detekzio bat berari esleitzen zaio — zerrenda zuriaren arabera, inoiz ez eskuz asmatuta | aktibo |
| Domeinua eta identifikatzailea detekzio bakoitzeko | Zein webgune eskatu den, zein User-Agent-ekin — bietako bat ere ez dago sarbide-erregistroan | aktibo |
| Analisia | Diagrama eta pibota detekzio guztien gainean: patroi, egun, domeinu, herrialde eta helbide bakoitzeko | aktibo |
| Amua | Zundei kanario-balioa duten asmatutako erantzunak ematen zaizkie; geroago balio hori eskatzen duenak erantzuna irakurri duela erakusten du | desaktibatuta |
| RBL banaketa | Blokeo-zerrenda helbide-zerrenda soil gisa edo JSON gisa, token bidez babestutako helbide propio batean — HAProxy, OPNsense eta URL zerrendak irakurtzen dituen edozein suebakirentzat | aktibo |
jakinarazi, desaktibatuta edo aukera balioekin banatzen den guztia nahita dago horrela: blokeo bat martxan jartzen duenak egun batzuetan behatu duelako egin behar du, eta ez aurrezarpenak hala nahi zuelako.
Analisia: detekzioak patroi bakoitzeko zazpi egunetan. Barra altuena .env fitxategien bilaketa da.
RBL zerrendak: blokeoak banatzeko modu estandarizatua
RBL Real-time Blackhole List hitzen laburdura da. Terminoa posta-munduan sortu zen, non Spamhaus-ek eta beste batzuek 1990eko hamarkadatik bidaltzaile maltzurren helbideen zerrendak argitaratzen dituzten. Printzipioa oso sinplea da, eta horregatik da hain hedatua: helbide bat lerro bakoitzeko, HTTP bidez eskuragarri, aldiro berriro kargatua. Ez dago lehenago parseatu beharreko formaturik, ez dago tresnarik behar duen interfazerik.
Ia suebaki guztiek eta reverse proxy guztiek irakur dezakete halako zerrenda bat eta horretatik arauak sor ditzakete. Fabrikatzaileek desberdin deitzen diote, baina mekanismoa nonahi berbera da:
- OPNsense eta pfSense — URL Table Alias: helbide-zerrenda HTTP bidez kargatu, suebaki-arauetan alias gisa erabili, eguneraketa orduka edo egunero
- HAProxy — ACL fitxategiak eta Maps:
src -f sperrliste.txthttp-request denyarau batean, exekuzio-APIaren bidez berrabiarazi gabe birkarga daiteke - nginx — geo modulua helbide-fitxategi txertatu batekin, edo sortutako
includefitxategi batekodenyjarraibideak - Fortinet FortiGate — External Block List edo Threat Feed: URL bat, zeinetik suebakiak IP zerrenda hartzen duen eta politiketan erabiltzen duen
- Palo Alto Networks — External Dynamic List (EDL): printzipio bera, objektu-mota propio gisa segurtasun-politiketan
- Check Point — Custom Intelligence Feeds eta IP Block Lists URL baten bidez
- Cisco Secure Firewall (Firepower) — Security Intelligence Feeds zerrenda-iturri propioekin
- Sophos Firewall — Third-Party Threat Feeds: URL bateko helbide-zerrendak blokeo-arauen iturri gisa
- Juniper SRX — Dynamic Address Entries feed-etatik
- MikroTik RouterOS — Address Lists, script baten eta
fetch-aren bidez URL batetik betetzen direnak - CrowdSec — zerrenda propioak bouncer-en iturri gisa, onartutako edozein sistematan
Formatu horretan bertan banatzen du Web RBL-k bere blokeo-zerrenda. Suebakiak paketeak baztertzen ditu web-zerbitzarira iritsi aurretik — eta haiekin, helbide beraren beste edozein saiakera ere, adibidez posta-zerbitzarira edo VPN pasabidera zuzendutakoa.
Bi norabideak, baina leku egokian
Bidea alderantziz ere funtzionatzen du: Web RBL-n edozein RBL zerrenda sar daiteke — URL bat, maila bat, eta kitto. Tor irteera-nodoak, Spamhaus DROP, FireHOL eta blocklist.de aurrekonfiguratuta daude, gehiago hiru klikekin gehitzen dira. Moduluak zerrenda guztiak helbide-tartetan banatzen ditu eta eskaera bakoitza horien aurka egiaztatzen du, mikrosegundo gutxitan.
Hala ere: zentzuzkoagoa da kanpoko zerrendak aurrean dagoen suebakian erabiltzea. Hiru arrazoirengatik. Suebakiak zerbitzu guztiak ikusten ditu, ez HTTP soilik — Spamhaus zerrendako helbide batek posta-zerbitzarian eta VPN-an ere huts egin behar du. Paketeen mailan baztertzen du, konexioa sortu baino lehen, eta horrela aplikazio-zerbitzariari ezer ez dio kostatzen. Eta halako zerrendak hala ere mantentzen diren lekua da; aplikazioan bigarren kopia bat zaharkitu daitekeen bigarren toki bat da.
Orduan, zertarako dira onak moduluko zerrendak: suebakiak egin ezin duenerako. Suebakiak ez du saio-hasierako orririk ezagutzen. Web RBL-k Tor zerrendako helbide bati saio-hasierarako sarbidea ukatu diezaioke eta, hala ere, webgunea eman — modu anonimoan irakurri nahi duenak egin dezake; modu anonimoan pasahitzak probatu nahi dituenak, ez. Eta zerrendan dagoen helbide batetik egindako saio-hasiera arrakastatsu bat susmagarri gisa jakinarazi dezake. Bi gauzek zerrenda saio-hasiera egiten den lekuan behar dute.
Balorazioa sentipenaren ordez
Behin /wp-login.php eskatu duen helbide bat
beste zerbait da, bi egunetan bost patroi
desberdinekin hiru domeinutatik igaro denaren aldean. Web RBL-k hori
0 eta 100 arteko balorazio batean bihurtzen du — berak
ikusitakotik abiatuta, kanpoko zerbitzurik gabe eta kanpora kontsultarik egin gabe.
Sarrera bat: 99 detekzio, 84 balorazioa, eta arrazoiketa testu argian — patroi larrienak, bost patroi larri desberdin, bi egun susmagarri, hogei detekzio baino gehiago.
Balorazioak bi gauza erabakitzen ditu. Doitu daitekeen balio batetik aurrera saio-hasiera debekatuta dago — webgunea irakurgarri segitzen du, baina dagoeneko sarbide-datuak bilatu dituenak ez du aurkitutakoak probatzeko aukerarik. Eta balorazioa duen helbide batetik egindako saio-hasiera arrakastatsua jakinarazi egiten da: orduan norbaitek ez du gehiago asmatu, baizik eta bazekien. Edo erabiltzaile baimendua bidaian zegoen, edo sarbide-datuak galdu dira — moduluak ez du hori erabakitzen, galdetu dezakeen norbaiti aurkezten dio. Pasahitza bera ez da inoiz ukitzen.
Blokeo-zerrenda, 40tik gorako balorazioaren arabera iragazita: detekzio kopurua, egun susmagarriak, eragindako domeinuak eta helbide bakoitzeko azken bidea.
Web RBL-k zer babesten duen — babesaren xehetasunak
1. Sarbide-datuak ezkutuan geratzen dira
Neurtutako eraso-klase handienak ez ditu Odoo-ren zuloak bilatzen, baizik ahaztutako sekretuak. Hamazazpi egunetan:
- 57.721 eskaera
.envfitxategien bila — bertan datu-baseko pasahitzak, API gakoak eta saioaren sekretuak daude - 5.535 eskaera konfigurazio-fitxategien bila
- 4.388 eskaera hodei-sarbideko datuen bila:
credentials.json,service-account.json,firebase-adminsdk.json,rclone.conf,.git-credentials - 2.811 eskaera
.gitdirektorioen bila — bat aurkitzen duenak iturburu-kode osoa historiarekin batera deskargatzen du - 1.907 eskaera eraikuntza-jarraibideen bila, hala nola
.github/workflows/deploy.ymledo.gitlab-ci.yml, zeinetan erregistroak eta gako-izenak agertzen diren
Garrantzitsuena ez da eskaera kopurua, helbide desberdinen
kopurua baizik: /credentials.json 98 helbidetatik etorri zen,
/.git-credentials 92tik. Hori ez da
eskaner bakarra, mundu osoan aldi berean ibiltzen den errepertorio estandarra baizik.
2. Saio-hasierako saiakerek hutsean amaitzen dute — betiko
Odoo-k pasahitzak probatzearen aurkako balaztatzeko mekanismo propioa du. Hiru muga ditu, Odoo-ren iturburu-kodean bertan dokumentatuta: kontagailua prozesuaren memorian dago eta berrabiarazte bakoitzean berrezartzen da, atzeratu baino ez du egiten blokeatu ordez, eta pasahitz-egiaztapenera iristen diren saiakerak soilik zenbatzen ditu.
Web RBL toki berdinetan sartzen da, baina datu-basean idazten du. Horrela:
- Egoerak berrabiarazte guztiak gainditzen ditu eta lan-prozesu guztietan balio du
- Bi bideak hartzen dira kontuan: saio-hasierako orria
/web/logineta interfazeak/xmlrpc/2/commoneta/jsonrpc - Inoiz pasahitz-egiaztapenera iristen ez diren saiakerak ere hartzen dira kontuan — adibidez saio-marka baliodunik gabeko saio-hasierak
- Datu-base kudeatzailerako sarbide huts bat ere zenbatzen da; hori da saio-hasiera saiakera larriena
Saio-hasierarako atalasea hamarrean dago, eta arrazoia neurketa bat da: Hamazazpi egunetan huts egindako bederatzi saio-hasieratatik gehiengoa bezeroena zen, beren kabuz beste gailu batean sarbidea konfiguratzen ari zirenak eta domeinu okerra sartu zutenak — kasu batean beraiena bera, puntuaren ordez gidoiarekin. Lehen akatsean blokeatzeak, beraz, ez zituen erasotzaileak jo, baizik bezeroak konfiguratzen ari zirela.
Aldiz, zerbitzariak dagoeneko “itxaron pixka bat” erantzun ostean ere kolpeka jarraitzen duena berehala blokeatzen da. Mezu hori pertsona batek irakurtzen du eta itxaron egiten du; kasurik egiten ez dionak programa bat da. Zero atalaseko patroi propio batek kasu hori baino ez du harrapatzen, eta ezin du lankide bat jo: bertara hamar saiakera huts atzean dituena eta gero jarraitzen duena baino ez da iristen.
3. Erasoak ez dio zerbitzariari ezer kostatzen jada
/@fs/../../.env bezalako bide bati egindako zundaketa garestia zen
modulua izan aurretik: Odoo-k errore-orria bilatzen du, errendatzen du, helbidea
osatzean puntu-segmentuetan estropezu egiten du eta ondorioz
errore-orriaren errore-orriak ere huts egiten du. Bi
stack-erregistro zundaketa bakoitzeko. Hamazazpi egunetan horrelako 28.401 errore
neurtu ziren, gehi 9.467 ondoriozko errore.
Web RBL ir.http._match-en sartzen da, hau da, bidea
aurkitu aurretik. Erantzuna txantiloirik gabe ematen da, blokeo-egiaztapenetik harago
datu-baseko sarbiderik gabe eta erregistro-lerrorik gabe. Zerrenda zuriaren,
mehatxu-zerrenden eta herrialde-arauen aurkako egiaztapena
cachetik egiten da, ordenatutako helbide-tarteen gainean — mikrosegundo
gutxi, hogeita hamar mila tarte baino gehiagorekin ere.
4. Suebakiak erasotzailea kanporatzen du iritsi aurretik
Blokeo-zerrenda RBL zerrenda gisa argitaratzen da, HAProxy-k eta OPNsense-k zuzenean irakurtzen dutena. Erasotzaileak ez du web-zerbitzarira batere iristen — ezta ostalari beraren beste zerbitzurik ere. Behin maltzurtzat jotako sarbide batek horrela atzeraeraginez makina osoa babesten du.
Hiru maila: blokeatu, zenbatu, jakinarazi
Hutsera doan eskaera guztiak ez dira eraso bat. Web RBL-k, beraz, hiru maila bereizten ditu, eta maila patroi bakoitzeko aldatu daiteke, kodea ukitu gabe.
| Maila | Eragiten duen eskaera | Helbidearentzako ondorioa |
|---|---|---|
| blokeatu | baztertzen da | 24 orduz blokeatuta, hiru egun susmagarriren ostean betiko |
| zenbatu | igarotzen da | erregistratu baino ez, blokeorik gabe |
| jakinarazi | igarotzen da | aurkikuntza-testuarekin erregistratzen da, inoiz ez da blokeatzen |
Mehatxu-zerrendetarako eta herrialdeetarako laugarren bat dago: saio-hasierarako sarbiderik ez. Webgunea irakurgarri dago, saio-hasierako orria eta interfazeak itxita daude. Hori da susmagarria den baina maltzurra izan beharrik ez duen guztiarentzako erdiko bidea — Tor, datu-zentro bateko tartea, bezerorik gabeko herrialde bat.
Zer eraso antzematen diren
Patroi guztiak benetako trafikoaren aurka probatuta daude. Helbide desberdinen kopurua nahita dago alboan — patroi batek eskaner bakar bat harrapatzen duen ala jardunbide hedatu bat erakusten du.
| Eraso-klasea | Eskaerak | Helbideak |
|---|---|---|
.env bilaketa | 57.721 | 223 |
| PHP zundak | 12.237 | 256 |
| Bide-zeharkaldia (path traversal) xede erakargarriarekin | 10.046 | 64 |
| Konfigurazio-fitxategiak | 5.535 | 114 |
| Hodei-sarbideko gakoak | 4.388 | 152 |
| WordPress zundak | 3.366 | 385 |
.git bilaketa | 2.811 | 255 |
| Odoo esplorazioa (datu-base kudeatzailea, bertsio-kontsulta) | 2.500 | 213 |
AA tresna-kateak eta komando-exekuzioa (/mcp, /api/fs/exec) | 2.450 | 74 |
| Eraikuntza-jarraibideak (CI/CD) | 1.907 | 88 |
| GraphQL endpoint-ak | 1.878 | 71 |
Azken klasea nabarmentzekoa da. /api/fs/exec
54 helbide desberdinek eskatu zuten 369 aldiz — hori
ez da irakurketa-sarbidea, komandoak exekutatzeko saiakera baizik. Halako
xedeak ez zeuden duela bi urte; AA tresna berrien
eta zeregin-ilaren interfazeetatik datoz. Bere defentsa
WordPress eta PHP-ra soilik zuzentzen duenak ez du horietatik ezer ikusten.
Balorazioan, beraz, klase honek pisu handia du.
Mehatxu-zerrendak eta jatorrizko herrialdea
Lau zerrenda, 32.851 helbide-tarte, guztiak “jakinarazi soilik” moduan. Beste zerrenda bakoitza helbide bat eta maila bat da.
Kanpoko zerrenda bat beste norbaitek egiten duen baieztapena da,
gure ezagutzen ez ditugun arrazoiengatik, inoiz ikusi ez dugun
trafikoaren inguruan. Okerra izan daiteke, zaharkitua edo beste
xede baterako pentsatua: blocklist.de-k batez ere beste
nonbait SSH saio-hasierak probatu dituzten helbideak biltzen ditu, eta
horrek web-zerbitzari baten gainean gutxi esaten du. Horregatik Web RBL-k kanpoko zerrendak
bere blokeo-zerrendatik bereizita eramaten ditu, eta horregatik da aurrezarpena
jakinarazi. Eta zerrenda zuri propioak beti irabazten du: ezagutzen dugun
bezero batek hirugarren baten iritziak baino pisu handiagoa du.
Jatorrizko herrialdea detekzio eta helbide guztietan agertzen da. Balioztatzeko ezinbestekoa da — herrialde propiotik goizeko hamarretan egindako saio-hasiera saiakera bat beste zerbait da, bezero bakar bat ere ez duen herrialde batetik datorrenaren aldean. Orokorrean blokeatzeko ez da oso egokia, eta gure zifrek berek hala diote: Gure zerrendako erasotzaileak batez ere Belgikako, Finlandiako eta Herbehereetako hodei-eremuetatik zetozen. Alemanez mintzo den eremutik kanpo dagoen guztiaren aurkako blokeo batek ez zituen harrapatuko — baina bai oporretan dauden gure langileak eta lan-bidaietan dauden bezeroak.
Herrialde-arauak hutsik banatzen dira, eta ikuspegiak zergatik dioen azaltzen du.
Konfigurazio-akatsak jakinarazi, ez blokeatu
Benetako trafikoko kasu ohikoena ez da erasoa ez bisitaria, baizik web-zerbitzaria beste zerbaiten tokian hartzen duen software hondatua:
- 1.367 dei QNAP NAS baten web-interfazera — helburua jada zuzena ez duen sinkronizazio-bezero bat. Konexio bakar batek 962 aldiz jo zuen.
- 65 Autodiscover kontsulta — webdomeinua bere Exchange-ren domeinutzat hartzen duen Outlook bat
Halako helbideak inoiz ez dira blokeatzen. Blokeoak ez du akatsa konpontzen, ezkutatu egiten du — eta bere gailua dagoeneko gaizki konfiguratuta duenari eragiten dio. Horren ordez, aurkikuntza-testua eta eragindako domeinuak dituen sarrera bat sortzen da, eta bertatik, nahi izanez gero, automatikoki tiket bat sortzen da: helbide bakoitzeko bat bakarrik, eta itxi eta helbideak berriro agertzen bada, tiket bera berriro irekitzen da, bigarren bat sortu ordez.
QNAP, Synology, Exchange Autodiscover, ActiveSync
eta WebDAV, CalDAV eta CardDAV bezeroak antzematen dira. Patroiek
fitxategi-izen eta direktorio zehatzak aipatzen dituzte, inoiz ez luzapen hutsak:
/cgi-bin/ direktorio berean sinkronizazio-dei kaltegabeak
zuzenean daude printenv.pl bezalako zunda klasikoen alboan.
Zerrenda zuria: inoiz blokeatzen ez diren helbideak
Akats baten prezioa ez da helbide guztientzat berbera. Datu-zentro bateko eskaner batekin, alarma faltsuak ez du ezer kostatzen. Kokaleku-tunel baten urruneko puntuarekin, kokalekua kostatzen du.
Horregatik bigarren zerrenda bat dago, lehenaren aurretik dagoena: inoiz blokeatzen ez diren helbideak eta sareak. Ez du ezer isilarazten — bertan dagoena egiaztatzen eta erregistratzen da oraindik, ondorioa baino ez da desagertzen. Hori da suebakiko salbuespenaren aldeko aldea: horrek itsutu egiten du, honek pazientzia ematen du soilik.
Egunero betetzen da bi iturritatik: suebakitik bertatik, VPN urruneko puntu guztiekin, berriki konfiguratutako tunel batek norbaitek blokeo-zerrenda gogoratzearen menpe egon ez dadin — eta Google eta Microsoft-en argitaratutako helbide-tarteetatik, haien crawler-entzat. Horrela bakarrik bereiz daiteke benetako Googlebot hala deitzen den eskaner batetik. Bilatzaileak inoiz ez dira blokeatu behar; blokeatzen dituenak bere webgunea indexaziotik kentzen du, bueltarik gabe.
Horretan, alderaketa baino garrantzitsuagoa den arau bat betetzen da: Erantzun huts batek ez du inoiz ezer ezabatzen. Iturriak ez badu erantzuten, hutsik edo ulergaitz erantzuten badu, zerrenda aldatu gabe geratzen da. Hutsegite batean bere burua hustutzen duen zerrenda zuri batek, pentsa daitekeen momenturik txarrenean tunel guztiak eramaten ditu berekin.
Zerrenda zuriko sarrera batek bezero bat badu, bere saretik datorren detekzio bakoitza berari esleitzen zaio. Konfigurazio-akats batek, horrela, berehala harremanetarako pertsona bat du, inork helbideak bilatu beharrik gabe.
Derrigorrezko datuak eta datu-biltzaile automatizatuak
Lege-oharra ez da ohiko orri bat. Pertsonentzat eskuragarri egon behar du, horren gaineko blokeo batek biltzaile batek bilatzen duen betebehar-urratzea bera sortzen baitu. Aldi berean, izena eta helbidea agertzen diren orria da — eta, beraz, makina bidezko uzta-bilketaren xedea.
Austriako Google letra-tipoen txertatzeagatiko abisu-olatuan, erregistroek erakutsi zuten idazkiak ez zirela bisita bakanetatik datozenak, eraso zabal automatizatu batetik baizik: elkarrekin loturarik ez duten ostalari desberdinak milisegundo gutxiko tartearekin.
Web RBL-k hori salbuespenaren ordez mailaz jaitsiz konpontzen du.
/impressum bide kanonikoak ez du inongo patroirekin bat egiten
eta beti eskuragarri dago. /impressum.php bezalako atzerriko idazkerak
— Odoo orri batean existitu ezin direnak —
jakinarazten dira, eta makina bidezko uzta
onartu nahi ez duenak parametro bat aldatzen du.
sitemap eta robots salbuetsita daude
eta, printzipioz, ezin dira blokeatu: ez dute
datu pertsonalik, eta ekartzea bilatzaile-crawler guztien zeregina da.
Domeinua eta identifikatzailea: sarbide-erregistroan falta dena
werkzeug-en sarbide-erregistroak ez du idazten ez eskatutako ostalaria ez deitzailearen identifikatzailea. Odoo-k biak jasotzen ditu, nola ez — ostalaririk gabe ezingo luke, webgune anitz dituenean, egokia hautatu. Baina geroago ezin da kontsultatu.
Web RBL-k biak gordetzen ditu detekzio bakoitzeko. Horrek bestela erantzun ezin diren bi galdera erantzuten ditu: zein webguneri dei egiten dion konfigurazio-akats batek — eta, beraz, domeinua zein bezeroarena den — eta helbide batek orri bat bisitatzen duen ala guztiak. Helbide beraren elkarrekin lotu gabeko hainbat domeinu eraso zabalaren ezaugarria dira, eta balorazioa igotzen dute.
Identifikatzaileak zenbat esan nahi duen, gure webguneetako batean egindako
analisi batek erakutsi zuen: trafiko osoaren ehuneko hirurogeita hamar baino gehiago
deitzaile bakar batena zen, ehun helbide baino gehiagotan banatuta.
Identifikatzailerik gabe, scraper banatu bat bezala ikusiko zen. GPTBot zen,
OpenAI-ren crawler-a — behin eta berriz robots.txt eskatzen zuen eta
guztiz zuzen jokatzen zuen.
Segurtasun-alderdiak xehetasunez
1. Proxy-aren detekzioa — inondik ere puntu arriskutsuena
Odoo reverse proxy baten atzean badabil eta proxy_mode
okerrean ezarrita badago, moduluak eskaera guztietan helbide bera ikusten du:
proxyarena. Blokeo batek orduan bisitari guztiak aldi berean
kanporatuko lituzke.
Horregatik Web RBL-k blokeo bakoitzaren aurretik egiaztatzen du helbidearen zehaztapena
fidagarria den. proxy_mode eta
bidalketa-goiburu bat batera eskatzen ditu, lanari uko egiten dio
proxy_mode gabe bidalketa bat iristen bada, eta
berdin egiten du tarteko proxy bat baino gehiago badago. Zalantzan, ez da blokeatzen.
2. Sare propioak, inoiz ez
Helbide-tarte pribatuak, loopback, link-local eta CGNAT finkoki salbuetsita daude. Ezin dira inola ere zerrendan amaitu, ezta eskuz ere. Gauza bera kanpoko zerrendentzat: tarte pribatuak eta erreserbatuak eta neurriz kanpoko sare handiak irakurtzean baztertzen dira.
3. Errore propio batek ez du webgunea eraman behar
Egiaztapen osoa errore guztiak harrapatzen dituen babes baten barruan egiten da. Hemen gaizki ateratzen dena erregistratzen da, eta eskaerak alderik gabe jarraitzen du. Errore propio bat gertatzean webgunea eramaten duen babes-modulu bat ezer baino okerragoa da. Gainera, eskaera-bideko kontsulta guztiak bisitariaren nabigatzaile-hizkuntzarik gabe eta itzulitako eremuen araberako ordenaziorik gabe egiten dira — instalatu gabeko hizkuntza duen bisitari batek ezin du egiaztapena huts egin arazi.
4. Behatu blokeatu aurretik
Instalatu ondoren, zerrendatutako helbideen blokeoa ohiko eskaeretan desaktibatuta dago. Zundak baztertu eta erregistratzen dira, gainerako guztia igarotzen da. Horrela egun batzuetan irakur daiteke nor amaitzen den benetan zerrendan, inor kanporatu aurretik. Gauza bera portaera-detekzioari, mehatxu-zerrendei eta herrialde-arauei dagokie: lehenik jakinarazi, gero blokeatu ikusi ondoren.
5. Patroi estuak, sare zabalen ordez
Oker identifikatutako bisitari bat zunda ahaztu bat baino garestiagoa da.
Patroi bakoitzak, beraz, bere maila darama, eta patroi bakoitzeko
aldatu daiteke. Fitxategi-luzapen bakar batek gutxitan aski du:
.php-rekin 14.012 benetako zunda daude esteka zahar
batzuen aurka, .asp-rekin proportzioa alderantzizkoa da. Halako
erabakiak neurtu egin behar dira, ez zenbatetsi.
6. Eskuzko askapenak irauten du
Helbide bat askatzen duenak arrazoiren bat zuen. Ondorengo detekzio batek erabaki hori ez du isilean baliogabetzen.
7. Zerrenda babestuta dago, baina ez da sekretua
Endpoint-ak token bat eskatzen du eta baliozko tokenik gabe
404 erantzuten du, ez 403 — horrela
helbidearen existentzia ez da baieztatzen ere egiten. Konparaketa
denbora konstantean egiten da. Zerrendak berak ez du ezer konfidentzialik:
berez gureganatu diren helbideez osatuta dago.
8. Sekreturik ez kontabilitatean
Huts egindako saio-hasieretan saiatutako erabiltzaile-izena erregistratzen da, inoiz ez pasahitza. Datu-base kudeatzailean, emandako balioetatik ezer ez irakurtzen da: han lehen tokian maisu-pasahitza dago, eta blokeo-zerrendako sarrera bat datu-base-segurtasun kopia guztietara doa. GeoLite2-ren lizentzia-gakoa sistema-parametroan baino ez dago, eta ez erregistro-lerro batean ere.
9. Amuak ez du ezer erabilgarririk agerian uzten
Aukeran, Web RBL-k zundei asmatutako edukiarekin erantzuten die, kanario-balio bakar bat duena. Balio hori geroago eskatzen duenak erantzun faltsua irakurri eta horren arabera jardun du — alarma faltsua baztertuta dago. Amuek ez dute datu erabilgarririk, ez benetako biderik eta ez baliozko sarbide-daturik. Funtzio hau desaktibatuta banatzen da, kanpotik ikusgarria den moduan aldatzen baitu portaera.
Moduluak zer ezin duen egin
Ez du suebakirik ez Web Application Firewall-ik ordezkatzen. Bidetan ezagutzen diren zundaketa-patroiak, huts egindako saio-hasierak eta portaera susmagarria antzematen ditu — ez inprimakien aurkako eraso-saiakerak, ez parametroetara sartutako injekzio-saiakerak.
Gainera, HTTP bidez itzultzen dena baino ez du ikusten. Erasotzaile batek lapurtutako datu-base edo posta-kutxa sarbideekin egiten duena ikusezina da — eta horregatik dira kanario-balioak bideak eta ez sarbide-datuak.
Eta ez du arretarik ordezkatzen: .env zundak
baztertzen dituen modulu batek ez du nahi gabe
banatutako .env fitxategi bat kaltegabe bihurtzen.
Erabilgarritasuna
Web RBL publikoki eskuragarri dago AGPL-3 lizentziapean eta gure sisteman produkzioan dabil bost webgunetan:
github.com/Alex0176/odoo-web-rbl
Moduluak Odoo 19 Community behar du eta ez du mendekotasunik
base eta web ez bada. Tiket
erabilera aukerakoa da eta ez du tiket-sistema jakinik behar;
horrelakorik gabe, besterik gabe, ez da ezer gertatzen. Jatorrizko
herrialdeak MaxMind-en doako GeoLite2 datu-basea behar du;
falta bada, eremua hutsik geratzen da eta gainerako guztiak
aldatu gabe funtzionatzen du.
Gehiago jakiteko: Web RBL segurtasun-arkitektura oso batean nola txertatzen den -- suebakiarekin, bi faktoreko autentifikazioarekin eta baimenekin batera, urratsez urratseko gidaliburuarekin: Odoo 19 segurtasun-arkitektura ondo konbinatu.
Galderak, oharrak eta errore-txostenak pozik jasotzen ditugu — nahiago GitHub-en issue gisa.