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
| Virkni | Hvað hún gerir | Afhending |
|---|---|---|
| Mynsturgreining | Greinir 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ót | loka |
| Þrjú stig fyrir hvert mynstur | loka, telja eða tilkynna — hægt að breyta fyrir hvert mynstur, án kóða | fyrir hvert mynstur |
| Þröskuldar | Svo margar samsvaranir sama mynsturs áður en lokað er; fyrir innskráningar tíu | 10 við innskráningu |
| Innskráningarvörn | Misheppnaðar innskráningar í gegnum eyðublað og XML-RPC/JSON-RPC, misheppnaðar lotuprófanir, aðgangur að gagnagrunnsstjóranum — í gagnagrunninum, ekki í vinnsluminni | kveikt |
| Vélmennagreining við innskráningu | Sá sem hunsar biðtilkynninguna eftir tíu misheppnaðar tilraunir og heldur áfram að banka er strax lokaður úti | loka |
| Hegðunargreining | Vistföng sem mynda tuttugu villusíður og varla nokkra gilda síðu á fimm mínútum — það er að segja giska í stað þess að lesa | tilkynna |
| Mat 0–100 | Hversu ö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áli | kveikt |
| Innskráningarbann eftir mati | Frá stillanlegu mati er innskráning bönnuð, vefsíðan er áfram læsileg | frá 40 |
| Grunur um stolnar aðgangsupplýsingar | Vel heppnuð innskráning frá grunsamlegu vistfangi er tilkynnt og, ef óskað er, falin einhverjum sem verkefni — einu sinni á hvert vistfang og dag | kveikt |
| Ógnalistar | Tor-ú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 lista | tilkynna |
| Enginn aðgangur að innskráningu | Fjó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ð Tor | Valkostur |
| Upprunaland | Land við hvert treff og vistfang í gegnum GeoLite2; einingin heldur gagnagrunninum sjálf við með ókeypis leyfislykli | sýna |
| Landareglur | Banna, enginn aðgangur að innskráningu, tilkynna eða beinlínis leyfa — fyrir hvert land, viljandi án sjálfgefins gildis | engin |
| Rangar stillingar | QNAP, 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éni | tilkynna |
| 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 hana | af |
| Skyldusíður og safnarar | Hin 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ð er | tilkynna |
| Undanþágulisti | Vistföng og net sem eru aldrei bönnuð; fyllist daglega úr eldveggnum (VPN-mótstöðvar) og úr birtum vistfangasviðum Googlebot og Bingbot | kveikt |
| Úthlutun til viðskiptavinar | Treff úr neti viðskiptavinar er eignað honum — úr undanþágulistanum, aldrei með handahófskenndri ágiskun | kveikt |
| Lén og auðkenni við hvert treff | Hvaða vefsíðu var leitað til og með hvaða User-Agent — hvort tveggja vantar í aðgangsskrána | kveikt |
| Greining | Myndrit og pivot yfir öll treff: eftir mynstri, degi, léni, landi og vistfangi | kveikt |
| Tálbeita | Könnunarbeiðnir fá tilbúin svör með kanarígildi; sá sem sækir það síðar hefur lesið þau | af |
| RBL-afhending | Bannlistinn 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-lista | kveikt |
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.
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úinniinclude-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
fetchaf 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ð.
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.
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.ymleð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/loginog viðmótin/xmlrpc/2/commonog/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.
| Stig | Beiðnin sem kemur af stað | Afleiðing fyrir vistfangið |
|---|---|---|
| banna | er hafnað | bannað í 24 klukkustundir, varanlega eftir þrjá grunsamlega daga |
| telja | fer í gegn | aðeins skráð, ekkert bann |
| tilkynna | fer í gegn | skráð 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ásarflokkur | Beiðnir | Vistföng |
|---|---|---|
.env-gagnastuldur | 57.721 | 223 |
| PHP-kannanir | 12.237 | 256 |
| Path traversal að eftirsóknarverðu skotmarki | 10.046 | 64 |
| Stillingaskrár | 5.535 | 114 |
| Aðgangslyklar að skýjaþjónustu | 4.388 | 152 |
| WordPress-kannanir | 3.366 | 385 |
.git-gagnastuldur | 2.811 | 255 |
| Könnun á Odoo (gagnagrunnsstjóri, útgáfufyrirspurn) | 2.500 | 213 |
Verkfærakeðjur gervigreindar og skipanakeyrsla (/mcp, /api/fs/exec) | 2.450 | 74 |
| Smíðafyrirmæli (CI/CD) | 1.907 | 88 |
| GraphQL-endapunktar | 1.878 | 71 |
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
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ð.
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.