Oletame, et lüüsi host on kompromiteeritud, kui selle sertifikaat kehtib veel. Iga reegel, mis määras, milliseid lehti külastaja võib nõuda, jääb kehtima ja ükski neist reeglitest ei piira ühendust, mille ründaja nüüd sellelt hostilt andmebaasi alavõrgu suunas avab. Just see lünk on põhjus, miks ainult veebi ligipääsupunkt ei ole sama väide kui segmenteeritud võrk. Need kaks väidet nõuavad eraldi ülevaatusi, erinevatest lähtepunktidest, enne kui kumbagi saab ausalt esitada.

Kaks väidet ja ainult üks neist algab külastaja juures

Esimene väide puudutab inimest: brauseri ja kehtiva sessiooniga külastaja saab avada ühe rakenduse ega midagi muud. Ainult veebi ligipääsupunkt vastab sellele väitele hästi, sest külastaja saab lehe, mitte marsruudi. See vastus on väärt omamist ja see on ka ainus väide, mille enamik diagramme fikseerib.

Teine väide puudutab komponenti: eeldatakse, et lüüs või selle taga olev rakendusprotsess on kellegi teise kontrolli all. Sellest eeldusest muutub küsimus sellest, millised URL-id on lubatud, selleks, milliseid sihtkohti ja identiteete suudab protsess veel saavutada.

Kahel väitel on erinevad omanikud, need annavad erinevaid tõendeid ja ebaõnnestuvad sõltumatult. Identiteedimeeskond saab esimest tõestada sessioonitestiga; teine vajab võrgupoliitikat, teenusekonto ülevaatust ja hosti kontrolle. Kujundus, mis fikseerib ainult külastaja poole, näeb ülevaatuse slaidil täielik välja ja on intsidendi ajal hõre, sest kompromiteerimise järel olulised kontrollid ei olnud kunagi ulatuses. Nimetage, millist väidet iga kontroll toetab, muidu arvestatakse üks lüüsireegel mõlemale.

Läbitöötatud kulutusteenus ja kaks viisi, kuidas see kaotab

Võtame kulutusteenuse: avalik lüüs aadressil 10.60.4.10 autendib personali ja edastab kinnitatud taotlused rakenduse kuulajale pordil 8443 ning see rakendus jõuab ühe PostgreSQL-i kuulajani aadressil 10.60.4.20:5432 rollina expenses_app. Töötajad ei peaks saama üldist sisemist juurdepääsu. Tavalises töös annab kujundus tõepoolest rakendusepõhise sissepääsu, avaldamata andmebaasi kuulajat kusagil. Aadressid on olulised, sest iga hilisem kontroll selles artiklis nimetab neid.

Nüüd eemaldage lüüs usaldusväärsest hulgast. Milliseid sihtkohti saab 10.60.4.10 saavutada, kui selle protsess kuulub ründajale? URL-filter, mis külastajaid piiras, ei ütle midagi ühenduse kohta, mille lüüsi host andmebaasi alavõrgu suunas avab.

Eemaldage selle asemel rakendusprotsess ja volitused muudavad kuju: roll expenses_app, teenused, mida see server saab saavutada, ja failid, mida see konto saab lugeda. Mõlemal juhul võib esiuks jääda ainult veebiks, samal ajal kui tagarakenduse piir puudub. Seega ei ole esiukse silt vastus kummalelegi kahest küsimusest.

Kaardistage volitused, mis igal osapoolel tegelikult on

Kavatsetud lubadustena kirjutatud leping kipub teile kujundust kordama. Kirjutage see omatud volitusena, kontrollina, mis ülejäägi ümber lükkab, ja selle kontrolli omanikuna, siis muutub iga rida testitavaks. See tabel on ülaltoodud näite ettepanek, mitte tooteväide:

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

Omand kuulub volitusele. Identiteedimeeskond omab väiteid, võrguplatvormi meeskond omab marsruute, rakendusmeeskond omab andmebaasi rolli, andmebaasi administraator omab kuulajat ja selle hostipõhiseid reegleid ning platvormi omanik omab haldustasandit. Omanikuta keeldumine on lause dokumendis, mitte kontroll.

Jagamine hoiab ära ka topeltarvestuse. Pordipiirang ei saa väljendada tabeliõigust ja andmebaasi roll ei saa takistada hosti avamast soklit seostamata alavõrku.

Loetlege, mida lüüs saab saavutada, selle asemel et seda väita

Piiriväide on ainult nii hea kui selle taga olev loetelu. Lüüsi hostis katavad kolm käsku marsruudi valiku, reaalajas sondi ja väljundpoliitika:

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

Lugege väljundit selles järjekorras. Marsruut ütleb, kas 10.60.4.20 üldse sellest hostist valitakse; sond ütleb, kas kuulaja vastab; reeglite loend näitab, kas poliitika peatab paketi või ei olnud selle teel kunagi midagi.

Korrake loetelu rakenduse hostist. Sealt on andmebaasi pool üks päring, mis käivitatakse rakenduse rollina:

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

Edukas ühendus rolli all, mis ei saa teist skeemi lugeda, on teine tulemus kui edukas ühendus omaniku rolli all. Ainult teine on leid.

Registreerige keeldumised, seejärel dateerige ülevaatus

Vastuvõtt kirjutatakse tulemustena, mitte kavatsustena: töötaja sessioon ei saa kuulajani jõuda, lüüsi host ei saa seostamata alavõrku jõuda ja rakenduse roll ei saa andmebaasi luua. Igaüks on eraldi kontroll, millel on nimetatud omanik ja kuupäev.

Hoidke jälgimine, paikamine ja taastamine kättesaadavana nende jaoks kavandatud haldustee kaudu. Piir, mis blokeerib ka oma omanikku, muutub katkestuseks ja selle katkestuse tavaline esimene vastus on reeglit uuesti laiendada. CISA perimeetri juhised nõuavad sissetuleva ja väljuva juurdepääsu piiramist põhjendatud portide ja protokollidega, sealhulgas liiklus sisemiste võrkude vahel, mis on tagarakenduse algatatud suund, mille enamik diagramme välja jätab.

Dateerige ülevaatus ja nimetage selle omanik. Käivitage loetelu ja õiguste päring uuesti pärast mis tahes muudatust lüüsi kujutises, marsruutimistabelis või rakenduse rollis.

Seotud artiklid