Predpokladajme, že hostiteľ brány je kompromitovaný, zatiaľ čo jeho certifikát je stále platný. Každé pravidlo, ktoré určovalo, ktoré stránky môže návštevník požadovať, zostáva v platnosti a žiadne z týchto pravidiel neobmedzuje spojenie, ktoré útočník teraz otvára z tohto hostiteľa smerom k podsieti databázy. Práve táto medzera je dôvod, prečo webový vstupný bod nie je to isté tvrdenie ako segmentovaná sieť. Obe tvrdenia vyžadujú samostatné revízie, z rôznych východiskových bodov, než možno ktorékoľvek z nich poctivo vysloviť.

Dve tvrdenia a iba jedno z nich začína u návštevníka

Prvé tvrdenie sa týka človeka: návštevník s prehliadačom a platnou reláciou môže otvoriť jednu aplikáciu a nič iné. Webový vstupný bod na toto tvrdenie dobre odpovedá, pretože návštevník dostáva stránku, nie trasu. Taká odpoveď má cenu a je aj jediným tvrdením, ktoré väčšina diagramov zaznamenáva.

Druhé tvrdenie sa týka komponentu: predpokladá sa, že brána alebo proces aplikácie za ňou je pod cudzou kontrolou. Z tohto predpokladu sa otázka mení z toho, ktoré URL sú povolené, na to, ku ktorým cieľom a identitám sa proces ešte môže dostať.

Obe tvrdenia majú rôznych vlastníkov, poskytujú rôzne dôkazy a zlyhávajú nezávisle. Tím identity môže prvé doložiť testom relácie; druhé potrebuje sieťovú politiku, revíziu servisného účtu a ovládacie prvky hostiteľa. Návrh, ktorý zaznamenáva len polovicu návštevníka, vyzerá úplne na prezentačnom slide a slabo počas incidentu, pretože ovládacie prvky, na ktorých po kompromitácii záleží, nikdy neboli v rozsahu. Pomenujte, ktoré tvrdenie každý prvok podporuje, inak sa jedno pravidlo brány pripíše obom.

Spracovaný príklad výdavkovej služby a dva spôsoby, ako prehráva

Vezmite výdavkovú službu: verejná brána na 10.60.4.10 overuje zamestnancov a posiela schválené požiadavky počúvajúcemu procesu aplikácie na porte 8443 a táto aplikácia dosahuje jedného počúvajúceho PostgreSQL na 10.60.4.20:5432 ako rola expenses_app. Zamestnanci nemajú dostávať všeobecný interný prístup. Pri normálnej prevádzke návrh skutočne poskytuje vstup špecifický pre aplikáciu bez toho, aby počúvajúceho databázy niekde zverejnil. Adresy sú dôležité, pretože každá ďalšia kontrola v tomto článku ich pomenúva.

Teraz odstráňte bránu z dôveryhodnej množiny. Ku ktorým cieľom sa môže 10.60.4.10 dostať, keď jeho proces patrí útočníkovi? Filter URL, ktorý obmedzoval návštevníkov, nehovorí nič o spojení, ktoré hostiteľ brány otvára smerom k podsieti databázy.

Odstráňte namiesto toho proces aplikácie a oprávnenia menia tvar: rola expenses_app, služby, ku ktorým sa tento server môže dostať, a súbory, ktoré tento účet môže čítať. V oboch prípadoch môžu predné dvere zostať len webové, zatiaľ čo hranica backendu chýba. Označenie na predných dverách preto nie je odpoveďou na žiadnu z dvoch otázok.

Zmapujte oprávnenia, ktoré každá strana skutočne má

Zmluva napísaná ako zamýšľané povolenia má vo zvyku opakovať vám návrh. Napíšte ju ako držané oprávnenie, kontrolu, ktorá vyvracia prebytok, a vlastníka tejto kontroly, a každý riadok sa stane testovateľným. Táto tabuľka je návrh pre uvedený príklad, nie tvrdenie o produkte:

ComponentAuthority it actually holdsCheck that proves the denialOwner of the check
Identity providerIssues assertions and session cookies, and holds no network path of its ownA request to the application URL without a session is redirected to the login pageIdentity team
Public gateway hostTCP reachability to whatever its routing table and egress rules permitAn egress rule drops 10.60.4.20:5432 and the probe reports the port filteredNetwork platform team
Application roleSQL privileges granted to expenses_app inside the expenses databaseA privilege query shows no ownership or create right on any other schemaApplication team
Database listenerAccepts connections only from the source ranges named in its host-based rulesA connection from an unlisted address is refused before authenticationDatabase administrator
Management pathAdministrative access reserved for patching, monitoring and recoveryA staff workstation cannot reach the administrative port or jump through itPlatform owner

Vlastníctvo nasleduje oprávnenie. Tím identity vlastní tvrdenia, tím sieťovej platformy vlastní trasy, aplikačný tím vlastní rolu databázy, správca databázy vlastní počúvajúceho a jeho pravidlá založené na hostiteľovi a vlastník platformy vlastní rovinu správy. Zamietnutie bez vlastníka je veta v dokumente, nie kontrola.

Rozdelenie tiež zabraňuje dvojitému započítaniu. Obmedzenie portu nemôže vyjadriť privilegium tabuľky a rola databázy nemôže zabrániť hostiteľovi otvoriť socket k nesúvisiacej podsieti.

Vymenujte, čo môže brána dosiahnuť, namiesto toho, aby ste to tvrdili

Tvrdenie o hranici je len také dobré, aký dobrý je výpočet za ním. Na hostiteľovi brány tri príkazy pokrývajú výber trasy, živú sondu a výstupnú politiku:

ip route get 10.60.4.20
nc -zv 10.60.4.20 5432
sudo nft list chain inet filter output

Čítajte výstup v tomto poradí. Trasa hovorí, či sa 10.60.4.20 z tohto hostiteľa vôbec vyberá; sonda hovorí, či počúvajúci odpovedá; výpis pravidiel ukazuje, či politika paket zastaví, alebo či v jeho ceste nikdy nič nebolo.

Zopakujte výpočet z hostiteľa aplikácie. Odtiaľ je strana databázy jediným dotazom spusteným ako rola aplikácie:

psql -h 10.60.4.20 -U expenses_app -d expenses -c 'select rolname, rolsuper, rolcreatedb from pg_roles'

Úspešné spojenie pod rolou, ktorá nemôže čítať inú schému, je iný výsledok než úspešné spojenie pod rolou vlastníka. Iba druhé je zistenie.

Zaznamenajte zamietnutia a potom revíziu datujte

Prijatie sa píše ako výsledky, nie ako zámery: relácia zamestnanca nemôže dosiahnuť počúvajúceho, hostiteľ brány nemôže dosiahnuť nesúvisiacu podsiet a rola aplikácie nemôže vytvoriť databázu. Každá je samostatná kontrola s pomenovaným vlastníkom a dátumom.

Udržujte monitorovanie, záplatovanie a obnovu dostupné cez cestu správy, ktorá je pre ne určená. Hranica, ktorá blokuje aj svojho vlastníka, sa stáva výpadkom a obvyklou prvou reakciou na taký výpad je pravidlo znova rozšíriť. Pokyny CISA k perimetru žiadajú obmedziť prichádzajúci a odchádzajúci prístup na odôvodnené porty a protokoly vrátane prevádzky medzi internými sieťami, čo je smer iniciovaný backendom, ktorý väčšina diagramov vynecháva.

Revíziu datujte a pomenujte jej vlastníka. Po každej zmene image brány, smerovacej tabuľky alebo roly aplikácie znova spustite výpočet a dotaz na privilegiá.

Súvisiace články