Skip to Content

Odoo 19 Community: Web RBL – bannlisti fyrir árásarumferð á okkar eigin vefsíðum

24. september 2026 by
Odoo 19 Community: Web RBL – bannlisti fyrir árásarumferð á okkar eigin vefsíðum

Frumkóði: github.com/Alex0176/odoo-web-rbl — AGPL-3, frjáls til notkunar.

Sá sem rekur Odoo-þjón á netinu fær heimsóknir. Ekki öðru hvoru, heldur án afláts. Í sautján daga skráðum við á fimm vefsíðum okkar 731.297 beiðnir og greindum þær. 110.511 þeirra voru ekki gestir, heldur sjálfvirk leit að veikleikum, aðgangsupplýsingum og stillingarskrám.

Þessi grein lýsir Web RBL, opinni einingu fyrir Odoo 19 Community sem greinir þessa umferð, metur hana, skráir og hafnar henni — og sem birtir bannlistann sem RBL-lista, sem sagt á sniðinu sem eldveggir og reverse proxy-þjónar lesa beint. Allar tölur eru úr raunrekstri.

Hvað einingin getur — yfirlit yfir eiginleikana

VirkniHvað hún gerirAfhending
MynsturgreiningGreinir könnun eftir slóð og endingu: .env, .git, stillingarskrár, skýjalyklar, CI/CD-byggingarfyrirmæli, WordPress, PHP, slóðarflakk (path traversal), gagnagrunnsstjórar, GraphQL, skipanaframkvæmd í gegnum /api/fs/exec og áþekk viðmótloka
Þrjú stig fyrir hvert mynsturloka, telja eða tilkynna — hægt að breyta fyrir hvert mynstur, án kóðafyrir hvert mynstur
ÞröskuldarSvo margar samsvaranir sama mynsturs áður en lokað er; fyrir innskráningar tíu10 við innskráningu
InnskráningarvörnMisheppnaðar innskráningar í gegnum eyðublað og XML-RPC/JSON-RPC, misheppnaðar lotuprófanir, aðgangur að gagnagrunnsstjóranum — í gagnagrunninum, ekki í vinnsluminnikveikt
Vélmennagreining við innskráninguSá sem hunsar biðtilkynninguna eftir tíu misheppnaðar tilraunir og heldur áfram að banka er strax lokaður útiloka
HegðunargreiningVistföng sem mynda tuttugu villusíður og varla nokkra gilda síðu á fimm mínútum — það er að segja giska í stað þess að lesatilkynna
Mat 0–100Hversu öruggt er að árásaraðili standi á bak við vistfangið? Út frá alvarleika mynstursins, fjölda ólíkra mynstra, grunsamlegum dögum, lénum sem verða fyrir áhrifum og fjölda samsvarana — með rökstuðningi á látlausu málikveikt
Innskráningarbann eftir matiFrá stillanlegu mati er innskráning bönnuð, vefsíðan er áfram læsilegfrá 40
Grunur um stolnar aðgangsupplýsingarVel heppnuð innskráning frá grunsamlegu vistfangi er tilkynnt og, ef óskað er, falin einhverjum sem verkefni — einu sinni á hvert vistfang og dagkveikt
ÓgnalistarTor-útgönguhnútar, Spamhaus DROP, FireHOL Level 1 og blocklist.de eru forstillt; hægt er að skrá hvaða aðra RBL-lista sem er með vistfangi, daglegur samanburður, sérstakt stig fyrir hvern listatilkynna
Enginn aðgangur að innskráninguFjórða stigið fyrir lista og lönd: vefsíðan er læsileg, innskráningarformið og viðmótin eru lokuð — rétta svarið við TorValkostur
UpprunalandLand við hvert treff og vistfang í gegnum GeoLite2; einingin heldur gagnagrunninum sjálf við með ókeypis leyfislyklisýna
LandareglurBanna, enginn aðgangur að innskráningu, tilkynna eða beinlínis leyfa — fyrir hvert land, viljandi án sjálfgefins gildisengin
Rangar stillingarQNAP, Synology, Exchange Autodiscover, ActiveSync og WebDAV/CalDAV/CardDAV eru greind, aldrei bönnuð og færð á verkefnalista ásamt niðurstöðu og viðkomandi lénitilkynna
Beiðni fyrir hvert vistfangÚr niðurstöðu verður, ef óskað er, beiðni — nákvæmlega ein fyrir hvert vistfang; lokuð beiðni er opnuð aftur í stað þess að tvöfalda hanaaf
Skyldusíður og safnararHin viðurkennda slóð að auðkennisupplýsingum (Impressum) er alltaf aðgengileg; vélræn prófun á framandi stafsetningarafbrigðum er greind og bönnuð ef óskað ertilkynna
UndanþágulistiVistföng og net sem eru aldrei bönnuð; fyllist daglega úr eldveggnum (VPN-mótstöðvar) og úr birtum vistfangasviðum Googlebot og Bingbotkveikt
Úthlutun til viðskiptavinarTreff úr neti viðskiptavinar er eignað honum — úr undanþágulistanum, aldrei með handahófskenndri ágiskunkveikt
Lén og auðkenni við hvert treffHvaða vefsíðu var leitað til og með hvaða User-Agent — hvort tveggja vantar í aðgangsskránakveikt
GreiningMyndrit og pivot yfir öll treff: eftir mynstri, degi, léni, landi og vistfangikveikt
TálbeitaKönnunarbeiðnir fá tilbúin svör með kanarígildi; sá sem sækir það síðar hefur lesið þauaf
RBL-afhendingBannlistinn sem hrein vistfangaskrá eða JSON á sérstöku vistfangi sem varið er með tákni (token) — fyrir HAProxy, OPNsense og alla eldveggi sem lesa URL-listakveikt

Allt sem er afhent með tilkynna, af eða valkostur er viljandi þannig: Sá sem virkjar bann á að gera það vegna þess að hann hefur fylgst með í nokkra daga hverjir lenda í því — ekki vegna þess að sjálfgefna gildið krafðist þess.

Web RBL greining: treff eftir mynstri yfir sjö daga

Greiningin: treff eftir mynstri yfir sjö daga. Hæsta súlan er leitin að .env-skrám.

RBL-listar: staðlaður háttur til að afhenda bönn

RBL stendur fyrir Real-time Blackhole List. Hugtakið er komið úr heimi tölvupósts, þar sem Spamhaus og aðrir hafa frá tíunda áratugnum birt lista yfir illgjörn sendandavistföng. Meginreglan er afar einföld og þess vegna svo útbreidd: eitt vistfang í hverri línu, sótt með HTTP, endurhlaðið reglulega. Ekkert snið sem þarf fyrst að þátta, ekkert viðmót sem krefst sérstaks verkfæris.

Nánast hver einasti eldveggur og hver öfugur milliþjónn (reverse proxy) getur lesið inn slíkan lista og búið til reglur úr honum. Framleiðendur kalla þetta mismunandi nöfnum, en búnaðurinn er alls staðar sá sami:

  • OPNsense og pfSense — URL Table Alias: vistfangalisti sóttur með HTTP, notaður sem samnefni (alias) í eldveggsreglum, uppfærsla á klukkustundar- eða dagsfresti
  • HAProxy — ACL-skrár og Maps: src -f sperrliste.txt í http-request deny-reglu, hægt að endurhlaða í keyrslu með API án endurræsingar
  • nginx — geo-eining með innlimaðri vistfangaskrá, eða deny-fyrirmæli úr útbúinni include-skrá
  • Fortinet FortiGate — External Block List eða Threat Feed: ein vefslóð sem eldveggurinn sækir IP-lista úr og notar í reglum
  • Palo Alto Networks — External Dynamic List (EDL): sama meginregla, sem sérstök hlutargerð í öryggisreglum
  • Check Point — Custom Intelligence Feeds og IP Block Lists í gegnum vefslóð
  • Cisco Secure Firewall (Firepower) — Security Intelligence Feeds með eigin listaheimildum
  • Sophos Firewall — Third-Party Threat Feeds: vistfangalistar af vefslóð sem heimild fyrir lokunarreglur
  • Juniper SRX — Dynamic Address Entries úr straumum (feeds)
  • MikroTik RouterOS — Address Lists, fylltir með skriftu og fetch af vefslóð
  • CrowdSec — eigin listar sem heimild fyrir bouncer-forritin á hverju studdu kerfi

Nákvæmlega á þessu sniði afhendir Web RBL bannlista sinn. Eldveggurinn hendir pökkunum áður en þeir ná til vefþjónsins — og með þeim hverri annarri tilraun frá sama vistfangi, til dæmis á póstþjóninum eða VPN-gáttinni.

Báðar áttir, en á réttum stað

Leiðin virkar líka öfugt: Í Web RBL er hægt að skrá hvaða RBL-lista sem er — ein vefslóð, eitt stig, búið. Tor-útgönguhnútar, Spamhaus DROP, FireHOL og blocklist.de eru forstillt, fleiri bætast við með þremur smellum. Einingin brýtur hvern lista niður í vistfangasvið og ber hverja beiðni saman við þau, á fáeinum míkrósekúndum.

Og samt: Skynsamlegra er að nota framandi lista á eldveggnum fyrir framan. Af þremur ástæðum. Eldveggurinn sér alla þjónustu, ekki aðeins HTTP — vistfang af Spamhaus-listanum á einnig að stranda á póstþjóninum og VPN. Hann hendir á pakkastigi, áður en tenging kemst yfirleitt á, og kostar forritaþjóninn þannig ekkert. Og hann er staðurinn þar sem slíkum listum er hvort sem er viðhaldið; annað eintak í forritinu er annar staður sem getur úrelst.

Til hvers listarnir í einingunni eru þá enn gagnlegir: fyrir það sem eldveggur getur ekki. Hann þekkir ekkert innskráningarform. Web RBL getur neitað vistfangi af Tor-listanum um aðgang að innskráningu en samt afhent vefsíðuna — sá sem vill lesa nafnlaust á að fá það; sá sem vill nafnlaust prófa lykilorð á ekki að fá það. Og það getur tilkynnt vel heppnaða innskráningu frá listuðu vistfangi sem grun. Hvort tveggja krefst listans þar sem innskráningin fer fram.

Mat í stað magatilfinningar

Vistfang sem hefur einu sinni beðið um /wp-login.php er annað en vistfang sem hefur á tveimur dögum farið með fimm ólík mynstur yfir þrjú lén. Web RBL reiknar þetta yfir í einkunn frá 0 til 100 — út frá því sem það hefur sjálft séð, án utanaðkomandi þjónustu og án fyrirspurna út á við.

Web RBL færsla með einkunn 84 og rökstuðningi

Ein færsla: 99 treff, einkunn 84, og rökstuðningurinn á skýru máli — alvarlegasta mynstrið, fimm ólík alvarleg mynstur, tveir grunsamlegir dagar, yfir tuttugu treff.

Einkunnin ræður tvennu. Frá stillanlegu gildi er innskráning bönnuð — vefsíðan er áfram læsileg, en sá sem hefur þegar leitað að aðgangsgögnum fær ekkert tækifæri til að prófa þau sem fundust. Og vel heppnuð innskráning frá vistfangi með einkunn er tilkynnt: Þá hefur einhver ekki lengur verið að giska heldur vitað. Annaðhvort var réttmætur notandi á ferðinni, eða aðgangsgögnin hafa glatast — einingin sker ekki úr um það, hún leggur það fyrir einhvern sem getur spurt. Lykilorðið sjálft er hvergi snert.

Web RBL bannlisti, síaður eftir einkunn frá 40

Bannlistinn, síaður eftir einkunn frá 40: fjöldi treffa, grunsamlegir dagar, viðkomandi lén og síðasta slóð hvers vistfangs.

Hverju Web RBL ver — verndin í smáatriðum

1. Aðgangsgögn haldast óuppgötvuð

Stærsti mældi árásarflokkurinn leitar ekki að veikleikum í Odoo, heldur að gleymdum leyndarmálum. Yfir sautján daga:

  • 57.721 beiðnir um .env-skrár — þar eru gagnagrunnslykilorð, API-lyklar og leyndarmál lotna
  • 5.535 beiðnir um stillingaskrár
  • 4.388 beiðnir um aðgangsgögn að skýjaþjónustu: credentials.json, service-account.json, firebase-adminsdk.json, rclone.conf, .git-credentials
  • 2.811 beiðnir um .git-möppur — sá sem finnur eina sækir allan frumkóðann ásamt sögu
  • 1.907 beiðnir um smíðafyrirmæli á borð við .github/workflows/deploy.yml eða .gitlab-ci.yml, þar sem skráðir eru gagnasöfn (registries) og heiti lykla

Þar skiptir ekki fjöldi beiðna höfuðmáli, heldur fjöldi ólíkra vistfanga: /credentials.json kom frá 98 vistföngum, /.git-credentials frá 92. Það er ekki einn skanni, heldur staðlað safn aðferða sem er keyrt um heim allan samtímis.

2. Innskráningartilraunir renna út í sandinn — til frambúðar

Odoo hefur sína eigin hemlun gegn því að lykilorð séu prófuð í belg og biðu. Hún hefur þrjú takmörk sem eru skjalfest í frumkóða Odoo sjálfs: Teljarinn er í vinnsluminni vinnsluferlisins og núllstillist við hverja endurræsingu, hann seinkar aðeins í stað þess að banna, og hann telur eingöngu tilraunir sem komast alla leið að lykilorðsprófuninni.

Web RBL grípur inn á sömu stöðum, en skráir í gagnagrunninn. Þar með gildir:

  • Staðan lifir af hverja endurræsingu og gildir yfir öll vinnsluferli
  • Skráðar eru báðar leiðir: innskráningarformið /web/login og viðmótin /xmlrpc/2/common og /jsonrpc
  • Skráðar eru einnig tilraunir sem komast aldrei að lykilorðsprófuninni — til dæmis innskráningar án gilds lotuauðkennis
  • Misheppnaður aðgangur að gagnagrunnsstjóranum er talinn með; það er alvarlegasta innskráningartilraun sem hugsast getur

Þröskuldurinn fyrir innskráningar er stilltur á tíu, og ástæðan er mæling: Af níu misheppnuðum innskráningum á sautján dögum voru flestar frá viðskiptavinum sem settu upp aðganginn sjálfir á öðru tæki og slógu þá inn rangt lén — í einu tilviki sitt eigið, bara með bandstriki í stað punkts. Bann við fyrstu misheppnuðu tilraun hefði því ekki hitt árásaraðila, heldur viðskiptavini við uppsetningu.

Sá sem hins vegar heldur áfram að banka þótt þjónninn hafi þegar svarað „vinsamlegast bíðið augnablik“, er bannaður tafarlaust. Þessi skilaboð les manneskja og bíður; sá sem hunsar þau er forrit. Sérstakt mynstur með þröskuld núll grípur einmitt þetta tilvik, og það getur ekki hitt samstarfsmann: Þangað kemst aðeins sá sem þegar á tíu misheppnaðar tilraunir að baki og heldur samt áfram.

3. Árásin kostar þjóninn ekkert lengur

Könnun á slóð á borð við /@fs/../../.env var dýr áður en einingin kom til: Odoo leitar að villusíðunni, teiknar hana, hrasar við gerð vistfangsins á punktaliðunum og bregst þar með einnig á villusíðu villusíðunnar. Tvær staflaskrár fyrir hverja könnun. Mældar voru 28.401 slíkar villur á sautján dögum, auk 9.467 afleiddra villna.

Web RBL grípur inn í ir.http._match, þ.e. áður en leiðarval fer fram. Svarið fæst án sniðmáts, án gagnagrunnsaðgangs umfram bannathugunina og án skráarlínu. Athugunin gegn undanþágulista, ógnalistum og landareglum keyrir úr skyndiminni yfir raðað vistfangasvið — fáeinar míkrósekúndur, jafnvel við yfir þrjátíu þúsund svið.

4. Eldveggurinn hendir árásaraðilanum út áður en hann kemur

Bannlistinn er birtur sem RBL-listi sem HAProxy og OPNsense lesa beint. Árásaraðilinn nær þannig alls ekki lengur til vefþjónsins — og heldur ekki neinni annarri þjónustu á sama hýsli. Aðgangur sem einu sinni hefur verið greindur sem illgjarn ver þannig aftur í tímann alla vélina.

Þrjú stig: banna, telja, tilkynna

Ekki er sérhver beiðni út í bláinn árás. Web RBL greinir því á milli þriggja stiga, og stiginu er hægt að breyta fyrir hvert mynstur án þess að snerta kóðann.

StigBeiðnin sem kemur af staðAfleiðing fyrir vistfangið
bannaer hafnaðbannað í 24 klukkustundir, varanlega eftir þrjá grunsamlega daga
teljafer í gegnaðeins skráð, ekkert bann
tilkynnafer í gegnskráð með niðurstöðutexta, er aldrei bannað

Fyrir ógnalista og lönd er til fjórða stig: enginn aðgangur að innskráningu. Vefsíðan er áfram læsileg, innskráningarformið og viðmótin eru lokuð. Það er millivegurinn fyrir allt sem er grunsamlegt en þarf ekki að vera illgjarnt — Tor, eitt gagnaversvistfangasvið, land án viðskiptavina.

Hvaða árásir eru greindar

Öll mynstur eru prófuð gegn raunverulegri umferð. Fjöldi ólíkra vistfanga stendur viljandi við hliðina — hann sýnir hvort mynstur hittir einn skanna eða útbreidda aðferð.

ÁrásarflokkurBeiðnirVistföng
.env-gagnastuldur57.721223
PHP-kannanir12.237256
Path traversal að eftirsóknarverðu skotmarki10.04664
Stillingaskrár5.535114
Aðgangslyklar að skýjaþjónustu4.388152
WordPress-kannanir3.366385
.git-gagnastuldur2.811255
Könnun á Odoo (gagnagrunnsstjóri, útgáfufyrirspurn)2.500213
Verkfærakeðjur gervigreindar og skipanakeyrsla (/mcp, /api/fs/exec)2.45074
Smíðafyrirmæli (CI/CD)1.90788
GraphQL-endapunktar1.87871

Athyglisverður er yngsti flokkurinn. /api/fs/exec var beðið um 369 sinnum af 54 ólíkum vistföngum — það er ekki lesaðgangur, heldur tilraun til að keyra skipanir. Slík skotmörk voru ekki til fyrir tveimur árum; þau eru komin úr viðmótum nýrra gervigreindarverkfæra og verkefnaraða. Sá sem miðar vörnina aðeins við WordPress og PHP sér ekkert af þessu. Í einkunnagjöfinni vegur þessi flokkur þess vegna þungt.

Ógnalistar og upprunaland

Web RBL ógnalistar: Tor, Spamhaus DROP, FireHOL, blocklist.de

Fjórir listar, 32.851 vistfangasvið, öll stillt á „aðeins tilkynna“. Hver viðbótarlisti er eitt vistfang og eitt stig.

Framandi listi er fullyrðing sem einhver annar setur fram, af ástæðum sem við þekkjum ekki, um umferð sem við höfum aldrei séð. Hún getur verið röng, úrelt eða ætluð öðrum tilgangi: blocklist.de safnar aðallega vistföngum sem hafa annars staðar prófað SSH-innskráningar, og það segir lítið um vefþjón. Þess vegna heldur Web RBL framandi listum aðskildum frá eigin bannlista, og þess vegna er sjálfgefið gildi tilkynna. Og eigin undanþágulisti vinnur alltaf: Viðskiptavinur sem við þekkjum vegur þyngra en mat þriðja aðila.

Upprunalandið fylgir hverju treffi og hverju vistfangi. Til að meta stöðuna er það ómetanlegt — innskráningartilraun úr eigin landi klukkan tíu fyrir hádegi er annað en tilraun úr landi án eins einasta viðskiptavinar. Til almennra útilokana dugar það illa, og okkar eigin tölur sýna það: Árásaraðilarnir á listanum okkar komu að mestu úr skýjasviðum í Belgíu, Finnlandi og Hollandi. Bann við öllu utan þýskumælandi svæðisins hefði ekki hitt þá — heldur eigin starfsmenn í fríi og viðskiptavini á viðskiptaferð.

Web RBL landareglur: afhentar tómar, með útskýringu

Landareglur eru afhentar tómar, og viðmótið segir hvers vegna.

Tilkynna rangar stillingar í stað þess að banna

Algengasta tilvikið í raunumferð er hvorki árás né gestur, heldur bilaður hugbúnaður sem heldur að vefþjónninn sé eitthvað annað:

  • 1.367 köll í vefviðmót QNAP-NAS — samstillingarforrit sem er með rangt skotmark. Ein tenging barði 962 sinnum að dyrum.
  • 65 Autodiscover-fyrirspurnir — Outlook sem heldur vefléninu vera Exchange-þjóninn sinn

Slík vistföng eru aldrei bönnuð. Bann lagar ekki bilunina, það felur hana — og hittir þann sem tækið er hvort eð er rangt stillt hjá. Í staðinn verður til færsla með niðurstöðutexta og viðkomandi lénum, sem verður ef óskað er sjálfvirkt að beiðni: nákvæmlega ein fyrir hvert vistfang, og sé hún lokuð og vistfangið kemur aftur upp, opnast sama beiðni aftur í stað þess að önnur verði til.

Greind eru QNAP, Synology, Exchange Autodiscover, ActiveSync og WebDAV-, CalDAV- og CardDAV-forrit. Mynstrin nefna nákvæm skráarheiti og möppur, aldrei bara skráarending: Í sömu möppu /cgi-bin/ liggja skaðlaus samstillingarköll við hliðina á klassískum könnunum á borð við printenv.pl.

Undanþágulistinn: vistföng sem eru aldrei bönnuð

Verð mistaka er ekki það sama fyrir öll vistföng. Hjá skanna úr gagnaveri kostar falskt viðvörunarmerki ekkert. Hjá mótstöð jarðganga (tunnel) milli starfsstöðva kostar það starfsstöðina.

Þess vegna er til annar listi sem stendur á undan þeim fyrri: vistföng og net sem eru aldrei bönnuð. Hann þaggar þó ekkert niður — sá sem er á honum er áfram athugaður og skráður, aðeins afleiðingin fellur niður. Það er munurinn á þessu og undanþágu í eldveggnum: Hún gerir blindan, þessi gerir aðeins þolinmóðan.

Hann fyllist daglega úr tveimur heimildum: úr eldveggnum sjálfum með öllum VPN-mótstöðvum, svo að nýuppsett göng þurfi ekki að treysta á að einhver muni eftir bannlistanum — og úr birtum vistfangasviðum Google og Microsoft fyrir skriðara þeirra. Aðeins þannig er hægt að greina raunverulegan Googlebot frá skanna sem kallar sig það. Leitarvélar mega aldrei vera bannaðar; sá sem útilokar þær tekur síðuna sína aftur úr skráningu án útgönguleiðar.

Þar gildir regla sem er mikilvægari en samanburðurinn: Tómt svar eyðir aldrei. Svari heimildin ekki, tómt eða óskiljanlega, helst listinn óbreyttur. Undanþágulisti sem tæmir sig sjálfur við truflun tekur á versta hugsanlega augnabliki öll göng með sér.

Beri færsla á undanþágulista viðskiptavin, er sérhvert treff úr neti hans eignað honum. Röng stilling hefur þar með strax tengilið, án þess að nokkur þurfi að fletta upp vistföngum.

Skyldubundnar upplýsingar og sjálfvirkir gagnasafnarar

Auðkennissíðan (Impressum) er ekki venjuleg síða. Hún verður að vera aðgengileg fólki, því bann á henni býr einmitt til brotið sem safnari leitar að. Um leið er hún síðan þar sem nafn og heimilisfang standa — og þar með skotmark vélrænnar uppskeru.

Í austurrísku bréfaöldunni vegna innfelldra Google-leturgerða sýndu skrárnar að bréfin áttu ekki rætur að rekja til einstakra heimsókna, heldur til sjálfvirkrar yfirferðar: ólíkir, ótengdir hýslar með millisekúndna bili.

Web RBL leysir þetta með lækkun í stað undantekningar. Hin viðurkennda slóð /impressum fellur undir ekkert mynstur og helst alltaf aðgengileg. Framandi stafsetningarafbrigði eins og /impressum.php — sem getur ekki verið til á Odoo-síðu — eru tilkynnt, og sá sem vill ekki sætta sig við vélræna uppskeru, breytir einni færibreytu. sitemap og robots eru undanskilin og verða í grundvallaratriðum ekki bönnuð: Þau innihalda engar persónuupplýsingar, og að sækja þau er hlutverk hvers leitarvélaskriðara.

Lén og auðkenni: það sem vantar í aðgangsskrána

Aðgangsskrá werkzeug skráir hvorki hýsilinn sem var ávarpaður né auðkenni þess sem hringir. Odoo fær hvort tveggja að sjálfsögðu — án hýsilsins gæti það ekki valið rétta vefsíðu þegar þær eru fleiri en ein. En það er ekki hægt að fletta því upp síðar.

Web RBL geymir hvort tveggja við hvert treff. Það svarar tveimur spurningum sem annars er ekki hægt að svara: hvaða vefsíða fær ranga stillingu til sín — og þar með hvaða viðskiptavinur á lénið — og hvort vistfang heimsækir eina síðu eða allar. Mörg ótengd lén frá sama vistfangi eru einkenni yfirferðarinnar, og þau hækka einkunnina.

Hve miklu auðkennið skiptir sýndi greining á einni vefsíðna okkar: Yfir sjötíu prósent allrar umferðar voru þar frá einum og sama aðila, dreifð yfir meira en hundrað vistföng. Án auðkennisins hefði þetta litið út eins og dreifður skafari. Það var GPTBot, skriðari OpenAI — hann bað aftur og aftur um robots.txt og hagaði sér fullkomlega rétt.

Öryggisþættirnir í smáatriðum

1. Greining milliþjóns — hættulegasti staðurinn yfirleitt

Keyri Odoo á bak við öfugan milliþjón (reverse proxy) og sé proxy_mode rangt stillt, sér einingin sama vistfangið við hverja beiðni: vistfang milliþjónsins. Bann myndi þá útiloka alla gesti samtímis.

Þess vegna athugar Web RBL fyrir hvert bann hvort vistfangaákvörðunin er áreiðanleg. Það krefst proxy_mode ásamt framsendingarhaus, neitar að vinna ef framsending berst án proxy_mode, og neitar því jafnframt ef milliþjónarnir eru fleiri en einn. Í vafa er ekki bannað.

2. Aldrei eigin net

Einkavistfangasvið, loopback, link-local og CGNAT eru föst undanskilin. Þau geta undir engum kringumstæðum lent á listanum, ekki heldur með handvirkum hætti. Hið sama gildir um framandi lista: Einka- og frátekin svið auk fáránlega stórra neta eru síuð burt við innlestur.

3. Eigin villa má ekki taka vefsíðuna með sér

Öll athugunin keyrir innan varnar sem fangar hverja villu. Það sem misferst hér er skráð, og beiðnin heldur óbreytt áfram. Verndareining sem tekur vefsíðuna með sér við eigin villu er verri en engin. Allar fyrirspurnir á beiðnileiðinni keyra auk þess án vafratungumáls gestsins og án raðar eftir þýddum reitum — gestur með tungumál sem ekki er uppsett má ekki láta athugunina mistakast.

4. Fylgjast með áður en bannað er

Eftir uppsetningu er bann við listuðum vistföngum við venjulegar beiðnir slökkt. Könnunum er hafnað og þær skráðar, allt annað fer í gegn. Þannig er hægt að fylgjast með í nokkra daga hverjir lenda í raun á listanum áður en nokkur er útilokaður. Hið sama gildir um atferlisgreiningu, ógnalista og landareglur: fyrst tilkynna, banna að athuguðu máli.

5. Þröng mynstur í stað breiðra neta

Rangt greindur gestur er dýrari en yfirsést könnun. Hvert mynstur ber því sitt stig, og því er hægt að breyta fyrir hvert mynstur. Skráarending ein og sér dugar sjaldan: Við .php standa 14.012 raunverulegar kannanir gegn örfáum gömlum tenglum, við .asp er hlutfallið öfugt. Slíkar ákvarðanir á að mæla, ekki giska á.

6. Handvirk leyfisveiting stendur

Sá sem leyfir vistfang hafði ástæðu til. Frekara treff fellir þá ákvörðun ekki þegjandi úr gildi.

7. Listinn er varinn en ekkert leyndarmál

Endapunkturinn krefst tákns (token) og svarar án gilds tákns með 404, ekki með 403 — tilvist vistfangsins er þar með alls ekki staðfest. Samanburðurinn keyrir á jöfnum tíma. Listinn sjálfur inniheldur ekkert trúnaðarmál: Hann samanstendur af vistföngum sem hafa sjálf barið að dyrum hjá okkur.

8. Engin leyndarmál í bókhaldinu

Við misheppnaðar innskráningar er notandanafnið sem reynt var skráð, aldrei lykilorðið. Við gagnagrunnsstjórann er ekkert lesið út úr þeim gildum sem send eru: Þar stendur fremst aðallykilorðið, og færsla á bannlista rataði í hvert gagnagrunnsafrit. Leyfislykillinn fyrir GeoLite2 er aðeins í kerfisfæribreytunni og í engri skráarlínu.

9. Tálbeitan gefur ekkert nýtilegt upp

Valfrjálst svarar Web RBL könnunum með tilbúnu efni sem inniheldur einkvæmt kanarígildi. Sá sem sækir þetta gildi síðar hefur lesið falsaða svarið og brugðist við því — falskt viðvörunarmerki er þar útilokað. Tálbeiturnar innihalda engar nýtilegar upplýsingar, engar raunverulegar slóðir og engin gild aðgangsgögn. Þessi virkni er afhent slökkt, því hún breytir hegðun út á við þannig að sjáist.

Hvað einingin getur ekki

Hún kemur ekki í stað eldveggs né Web Application Firewall. Hún greinir þekkt könnunarmynstur í slóðum, misheppnaðar innskráningar og grunsamlega hegðun — ekki árásir á form, ekki innspýtingartilraunir í færibreytur.

Hún sér auk þess aðeins það sem kemur til baka um HTTP. Það sem árásaraðili gerir með stolnum aðgangi að gagnagrunni eða pósthólfi, helst ósýnilegt — og einmitt þess vegna eru kanarígildin slóðir en ekki aðgangsgögn.

Og hún kemur ekki í stað vandvirkni: Eining sem hafnar .env-könnunum gerir .env-skrá sem óvart var afhent ekki hættulausa.

Framboð

Web RBL er aðgengilegt almenningi undir AGPL-3 og keyrir hjá okkur í framleiðslu á fimm vefsíðum:

github.com/Alex0176/odoo-web-rbl

Einingin krefst Odoo 19 Community og hefur engar háðir nema base og web. Tengingin við beiðnakerfi er valfrjáls og krefst ekkert sérstaks beiðnakerfis; án þess gerist einfaldlega ekkert. Upprunalandið krefst ókeypis GeoLite2-gagnagrunns frá MaxMind; vanti hann, helst reiturinn tómur og allt annað starfar óbreytt.

Til frekari lestrar: Hvernig Web RBL fellur inn í heildstætt öryggisskipulag -- ásamt eldvegg, tveggja þátta auðkenningu og heimildum, með leiðbeiningum skref fyrir skref: Að sameina öryggisskipulag Odoo 19 rétt.

Spurningum, athugasemdum og villuskýrslum tökum við fegins hendi — helst sem Issue á GitHub.