Dauguma SaaS apskaitos platformų veikia vienodai: viena programa, viena duomenų bazė, visi klientai joje. Tai efektyvu tiekėjui — ir reiškia, kad visi klientai turi bendrą likimą. Šiame straipsnyje paaiškinama, kaip veikia šis modelis, kaip jame atrodo incidentas ir kuo skiriasi FiscFort.
Kaip tipinė bendra SaaS platforma saugo jūsų duomenis
Daugianuomos (multi-tenant) platformoje daug klientų („nuomininkų“) aptarnauja ta pati programa ir labai dažnai ta pati duomenų bazė. Kiekviena eilutė turi nuomininko ID, o programa prie kiekvienos užklausos prideda „tik šis nuomininkas“. Atskyrimas tarp klientų yra programos logika: jis laikosi tol, kol kiekviena užklausa, ataskaita, eksportas ir integracija teisingai taiko filtrą.
OWASP gairės dėl daugianuomos saugumo šį kompromisą nurodo tiesiai: architektūra yra ekonomiška ir šiuolaikinio SaaS pagrindas, bet viena pažeidžiamybė gali atskleisti visų nuomininkų duomenis, o klaidinga konfigūracija gali nutekinti duomenis per nuomininkų ribas (OWASP). Saugumo testuotojai sako tą patį: bendros duomenų bazės platformoje viena SQL injekcija ar vienas neteisingai apribotas filtras gali vienu metu atskleisti kiekvieną nuomininką, nes izoliacija egzistuoja tik programos sluoksnyje, o pati duomenų bazė jos nevykdo (AppSecure).
Ką reiškia „pažeista“ kiekviename modelyje
| Situacija | Bendra daugianuomos SaaS | FiscFort atskiros aplinkos |
|---|---|---|
| Kur yra klientų duomenys | Visų klientų bendrose lentelėse, atskirtuose nuomininko ID | Atskiroje kiekvieno kliento duomenų bazėje, jo paties Odoo aplinkoje |
| Kas užtikrina atskyrimą | Programos kodas, kuris turi būti teisingas kiekvienoje užklausoje | Pati duomenų bazė, konteineriai, tinklai ir prisijungimo duomenys |
| Klaida nuomininko filtre | Gali atskleisti daug ar visus klientus | Apsiriboja to kliento aplinka; joje nėra kitų klientų duomenų |
| Nutekėję duomenų bazės ar administratoriaus prisijungimo duomenys | Atveria bendrą duomenų bazę: visus klientus | Atveria tik vieno kliento duomenų bazę; kiti klientai naudoja skirtingus prisijungimo duomenis |
| Perimama vieno kliento paskyra | Užpuolikas pradeda bendros platformos viduje | Užpuolikas apribotas to kliento aplinka |
| Talpinimas | Bendra debesų platforma | Atskira, ES talpinama infrastruktūra |
Kaip sukurtas FiscFort
- Vienas Odoo, viena PostgreSQL duomenų bazė ir sava saugykla kiekvienam klientui. Atskyrimas yra duomenų bazės savybė, o ne filtras, kuris turi būti teisingas amžinai. Paties Odoo daugiabendrovių režimas visas bendroves laiko vienoje duomenų bazėje ir priklauso nuo to, ar įrašų taisyklės teisingos kiekviename modelyje; mes jo nenaudojame kaip tik dėl šios priežasties.
- Savas tinklas ir ugniasienės taisyklės. Kiekvieno kliento konteineriai veikia savo fiksuotame tinkle, o kiekvieno kliento prievadai turi savas aiškias ugniasienės taisykles.
- Savi prisijungimo duomenys. Kiekvienas klientas gauna savo duomenų bazės slaptažodį ir savus API raktus, sugeneruotus būtent jam ir niekada nenukopijuotus iš kito.
- Savi adresai ir prisijungimai. Buhalteris prie kiekvieno kliento Odoo jungiasi jo paties URL su jo paties prisijungimu; klientas prie savo portalo jungiasi savo prisijungimu. Duomenų bazių sąrašas niekada neatskleidžiamas — Odoo klientui skirtą duomenų bazę parenka pagal serverio vardą, o nieko išvardyti neįmanoma.
Kas prie ko gali prieiti
- Klientas prisijungia prie savo portalo ir mato tik savo aplinką.
- Buhalteris prie kiekvieno kliento Odoo jungiasi atskirai — vienas URL ir vienas prisijungimas kiekvienam klientui — todėl prieiga prie vieno kliento niekada nereiškia prieigos prie kito.
- FiscFort operacijos turi administratoriaus prieigą kiekvienoje aplinkoje, nes to reikia atnaujinimams ir reguliaciniams pakeitimams. Šią prieigą naudoja automatiniai agentai ir darbo eigos per specialią paslaugų paskyrą, o ne prisijungiantys žmonės; jos prisijungimo duomenys kiekviename serveryje skirtingi ir saugomi užšifruoti.
- Visi kiti neturi nieko: pačių serverių viešo adreso nėra.
Odoo viduje kiekvienas įrašas rodo, kas jį sukūrė ar paskutinis pakeitė, o užregistruotus apskaitos įrašus galima tik sugrąžinti (atšaukti), bet ne redaguoti. Odoo neregistruoja, kas tik peržiūrėjo įrašą; registruojami pakeitimai.
Perimetras aplink tai
Srautas pasiekia klientą tik per „Cloudflare“ (apsauga nuo DDoS ir žiniatinklio programų ugniasienė) ir mūsų atvirkštinio tarpinio serverio sluoksnį per HTTPS. Serveriai neturi viešo IP adreso, išorėje pasiekiami tik portalas ir Odoo, o valdymo prieiga iš interneto nepasiekiama. Kiti mūsų produktų puslapiuose aprašyti sluoksniai — įmonių ugniasienė, dvigubas saugyklos šifravimas, atsarginės ES jungtys, realaus laiko antivirusinis skenavimas ir URL stebėjimas — veikia ant viršaus. Serveriai stebimi visą parą, o operacinė sistema, „Docker“ ir tiekėjų programinė įranga atnaujinami kas savaitę, su momentine kopija ir galimybe grįžti.
Visada aktualu, nejudinant jūsų duomenų
Tas pats variklis aptarnauja Lietuvą ir Belgiją. Apibrėžtas procesas ir keli dirbtinio intelekto agentai tikrina abiejų šalių oficialius šaltinius ir kiekvieną ankstyvą rytą, 3 val., atnaujina kiekvieno kliento Odoo galiojančiomis taisyklėmis. Atnaujinimas keičia taisykles, o ne duomenis, ir taikomas kiekvieno kliento paties aplinkos viduje — vieno kliento duomenys niekada nekeliauja pas kitą.
Klausimai, kuriuos verta užduoti kiekvienam SaaS tiekėjui
- Ar mano duomenys yra duomenų bazėje, kurią dalijuosi su kitais klientais?
- Kas sustabdo klaidą nuomininko filtre, kad ji neatskleistų visų?
- Kiek klientų atveria vieni nutekėję prisijungimo duomenys?
- Kas tiekėjo įmonėje gali skaityti mano duomenis, kaip ta prieiga suteikiama ir kur ji registruojama?
- Kur talpinama platforma ir kas ją valdo?
Susiję
Duomenų buvimo ES vieta kliento apskaitos duomenims: paaiškinimas
Šaltiniai
- OWASP — daugianuomos saugumo santrauka
- AppSecure — daugianuomos SaaS architektūrų penetracijos testavimas (2026 m.)
Bendrų SaaS platformų aprašymas yra įprastas modelis; atskiri tiekėjai skiriasi.
