Wat kann eng kompromittéiert Webgateway nach erreechen?
Eng Webgateway beschränkt, wat e Besicher opmécht, net wat en kompromittéierten Host erreeche kann. Zwou Revisiounen, eng Befugnistabell a Kommandoe fir d'Reechwäit ze moossen.
Ugeholl, den Gateway-Host gëtt kompromittéiert, wärend säin Zertifikat nach gëlteg ass. All Regel, déi festgeluecht huet, wéi eng Säiten e Besicher ufroe kann, bleift a Kraaft, an keng vun dëse Regele beschränkt d'Verbindung, déi den Ugräifer elo vun deem Host a Richtung vum Datebank-Subnetz opmécht. Genau dës Lück ass de Grond, firwat een nëmme-Web-Agangspunkt net déiselwecht Ausso ass wéi en segmentéiert Netzwierk. Déi zwou Aussoen erfuerderen getrennte Revisiounen, vu verschiddenen Ausgangspunkten, ier eng vun hinnen éierlech gemaach ka ginn.
Zwou Aussoen, an nëmmen eng vun hinnen fänkt beim Besicher un
Déi éischt Ausso geet ëm eng Persoun: e Besicher mat engem Browser an enger gëlteger Sessioun kann eng Applikatioun opmaachen an soss näischt. En nëmme-Web-Agangspunkt beäntwert dës Ausso gutt, well de Besicher eng Säit an net eng Route kritt. Déi Äntwert ass et wäert, a si ass och déi eenzeg Ausso, déi déi meescht Diagrammer festhalen.
Déi zweet Ausso geet ëm eng Komponent: et gëtt ugeholl, datt d'Gateway, oder den Applikatiounsprozess hannendrun, ënner der Kontroll vun engem aneren ass. Vun dëser Unahme ännert sech d'Fro vun deenen URL'en, déi erlaabt sinn, op déi Ziler an Identitéiten, déi de Prozess nach erreeche kann.
Déi zwou Aussoen hu verschidde Besëtzer, liwweren ënnerschiddlech Beweiser a versoe onofhängeg. En Identitéitsteam kann déi éischt mat engem Sessiounstest weisen; déi zweet brauch Netzwierkpolitik, eng Iwwerpréiwung vum Déngschtcompte an Hostkontrollen. En Design, deen nëmmen d'Halschent vum Besicher festhält, gesäit komplett aus op enger Revisiounsslide an dënn während engem Tëschefall, well d'Kontrollen, déi no enger Kompromittéierung zielen, ni am Ëmfang waren. Nennt, wéi eng Ausso all Kontroll ënnerstëtzt, soss gëtt eng Gateway-Regel béide zougerechent.
Eng duerchgeschafft Ausgabe-Service, an déi zwou Aarten, wéi si verléiert
Huelt en Ausgabe-Service: eng ëffentlech Gateway op 10.60.4.10 authentifizéiert d'Personal a leet guttgeheescht Ufroen un en Applikatiouns-Listener op Port 8443 weider, an déi Applikatioun erreecht een PostgreSQL-Listener op 10.60.4.20:5432 als Roll expenses_app. D'Employéen sollen keen allgemengen internen Zougang kréien. Am normale Betrib liwwert den Design tatsächlech en applikatiounsspezifeschen Agang, ouni den Datebank-Listener iergendwou ze verëffentlechen. D'Adressen zielen, well all spéider Kontroll an dësem Artikel si nennt.
Huele mir elo d'Gateway aus dem vertraute Set. Wéi eng Ziler kann 10.60.4.10 erreechen, wann säi Prozess engem Ugräifer gehéiert? Den URL-Filter, deen d'Besicher beschränkt huet, seet näischt iwwer eng Verbindung, déi den Gateway-Host a Richtung vum Datebank-Subnetz opmécht.
Huele mir amplaz den Applikatiounsprozess eraus, an d'Befugnisser änneren d'Form: d'Roll expenses_app, d'Servicer, déi dee Server erreeche kann, an d'Dateien, déi dee Compte liese kann. An de béide Fäll kann d'Viirdier nëmme Web bleiwen, während d'Backend-Grenz feelt. Den Etikett op der Viirdier ass dofir keng Äntwert op eng vun den zwou Froen.
Maacht eng Kaart vun de Befugnisser, déi all Partei tatsächlech huet
E Kontrakt, deen als beabsichtegt Permissiounen geschriwwe gëtt, neigt dozou, den Design Iech zréck ze ginn. Schreift en als gehalte Befugnis, d'Kontroll, déi den Iwwerschoss widderleet, an den Eegentemer vun dëser Kontroll, da gëtt all Zeil testbar. Dës Tabell ass e Virschlag fir d'Beispill uewen, keng Produktausso:
| Component | Authority it actually holds | Check that proves the denial | Owner of the check |
|---|---|---|---|
| Identity provider | Issues assertions and session cookies, and holds no network path of its own | A request to the application URL without a session is redirected to the login page | Identity team |
| Public gateway host | TCP reachability to whatever its routing table and egress rules permit | An egress rule drops 10.60.4.20:5432 and the probe reports the port filtered | Network platform team |
| Application role | SQL privileges granted to expenses_app inside the expenses database | A privilege query shows no ownership or create right on any other schema | Application team |
| Database listener | Accepts connections only from the source ranges named in its host-based rules | A connection from an unlisted address is refused before authentication | Database administrator |
| Management path | Administrative access reserved for patching, monitoring and recovery | A staff workstation cannot reach the administrative port or jump through it | Platform owner |
Eegentum follegt der Befugnis. D'Identitéitsteam besëtzt d'Aussagen, d'Netzwierkplattformteam besëtzt d'Routen, d'Applikatiounsteam besëtzt d'Datebankroll, den Datebankadministrator besëtzt de Listener a seng hostbaséiert Reegelen, an den Eegentemer vun der Plattform besëtzt d'Managementfläch. Eng Oflehnung ouni Eegentemer ass e Saz an engem Dokument, keng Kontroll.
D'Deelung verhënnert och Duebelzählung. Eng Portbeschränkung kann keen Tableprivileg ausdrécken, an eng Datebankroll kann net verhënneren, datt en Host e Socket op en onverbonnen Subnetz opmécht.
Zielt op, wat d'Gateway erreeche kann, amplaz et ze behaapten
Eng Grenzausso ass just sou gutt wéi d'Oplëschtung hannendrun. Um Gateway-Host decken dräi Kommandoen d'Routeselektioun, eng Live-Probe an d'Egress-Politik of:
ip route get 10.60.4.20
nc -zv 10.60.4.20 5432
sudo nft list chain inet filter outputLiest d'Ausgab an där Reihenfolg. D'Route seet, ob 10.60.4.20 iwwerhaapt vun deem Host gewielt gëtt; d'Probe seet, ob de Listener äntwert; d'Reegellëscht weist, ob d'Politik de Paket stoppt oder ob ni eppes a sengem Wee war.
Widderhëlt d'Oplëschtung vum Applikatiounshost aus. Vun do ass d'Datebanksäit eng eenzeg Ufro, déi als Applikatiounsroll ausgefouert gëtt:
psql -h 10.60.4.20 -U expenses_app -d expenses -c 'select rolname, rolsuper, rolcreatedb from pg_roles'Eng erfollegräich Verbindung ënner enger Roll, déi keen anert Schema liese kann, ass en anert Resultat wéi eng erfollegräich Verbindung ënner enger Eegentemerroll. Nëmmen déi zweet ass eng Entdeckung.
Hält d'Oflehnungen fest, da datéiert d'Revisioun
Accept gëtt als Resultater geschriwwen, net als Absichten: eng Employé-Sessioun kann de Listener net erreechen, den Gateway-Host kann en onverbonnen Subnetz net erreechen, an d'Applikatiounsroll kann keng Datebank erstellen. All eenzel ass eng getrennte Kontroll mat engem genannten Eegentemer an engem Datum.
Hält Iwwerwaachung, Patchen an Erhuelung erreechbar iwwer de Managementwee, dee fir si geduecht ass. Eng Grenz, déi och hiren Eegentemer blockéiert, gëtt eng Ausfal, an déi üblech éischt Reaktioun op dës Ausfal ass, d'Regel erëm ze verbreeden. D'CISA-Perimeterleitlinien fuerdere, den erakommenden an erausgoenden Zougang op gerechtfertegt Pëorten a Protokoller ze beschränken, inklusiv Traffic tëscht internen Netzwierker, dat ass d'Richtung, déi vum Backend aus geet an déi déi meeschte Diagrammer ewechloossen.
Datéiert d'Revisioun a nennt hiren Eegentemer. Fëllt d'Oplëschtung an d'Privilegiefro erëm aus no all Ännerung um Gateway-Image, un der Routentabell oder un der Applikatiounsroll.