Supozoni se hosti i gateway-it është komprometuar ndërsa certifikata e tij është ende e vlefshme. Çdo rregull që përcaktonte cilat faqe mund të kërkojë një vizitor mbetet në fuqi, dhe asnjë prej këtyre rregullave nuk e kufizon lidhjen që sulmuesi hap tani nga ai host drejt nënrrjetit të bazës së të dhënave. Ky boshllëk është arsyeja pse një pikë hyrjeje vetëm web nuk është i njëjti pretendim si një rrjet i segmentuar. Dy pretendimet kërkojnë rishikime të veçanta, nga pika të ndryshme nisjeje, përpara se ndonjëra prej tyre të mund të bëhet me ndershmëri.

Dy pretendime, dhe vetëm njëri prej tyre fillon te vizitori

Pretendimi i parë ka të bëjë me një person: një vizitor me shfletues dhe sesion të vlefshëm mund të hapë një aplikacion dhe asgjë tjetër. Një pikë hyrjeje vetëm web i përgjigjet mirë atij pretendimi, sepse vizitori merr një faqe dhe jo një rrugë. Ajo përgjigje ia vlen të mbahet, dhe është gjithashtu pretendimi i vetëm që regjistrojnë shumica e diagrameve.

Pretendimi i dytë ka të bëjë me një komponent: supozohet se gateway-i, ose procesi i aplikacionit pas tij, është nën kontrollin e dikujt tjetër. Nga ky supozim pyetja ndryshon nga cilat URL lejohen në cilat destinacione dhe identitete procesi mund të arrijë ende.

Dy pretendimet kanë pronarë të ndryshëm, prodhojnë prova të ndryshme dhe dështojnë në mënyrë të pavarur. Një ekip identiteti mund të tregojë të parin me një test sesioni; i dyti kërkon politikë rrjeti, rishikim të llogarisë së shërbimit dhe kontrolle hosti. Një dizajn që regjistron vetëm gjysmën e vizitorit duket i plotë në një slide rishikimi dhe i hollë gjatë një incidenti, sepse kontrollet që kanë rëndësi pas kompromisit nuk ishin kurrë në fushëveprim. Emërtoni cilën pretendim mbështet secili kontroll, ose një rregull gateway do t'u kreditohet të dyve.

Një shërbim shpenzimesh i përpunuar, dhe dy mënyrat se si humbet

Merrni një shërbim shpenzimesh: një gateway publik në 10.60.4.10 vërteton stafin dhe përcjell kërkesat e miratuara te një dëgjues i aplikacionit në portën 8443, dhe ai aplikacion arrin një dëgjues të vetëm PostgreSQL në 10.60.4.20:5432 si roli expenses_app. Punonjësit nuk kanë për qëllim të marrin akses të përgjithshëm të brendshëm. Në funksionimin normal dizajni me të vërtetë ofron një hyrje specifike për aplikacionin pa publikuar dëgjuesin e bazës së të dhënave askund. Adresat kanë rëndësi, sepse çdo kontroll më vonë në këtë artikull i emërton ato.

Tani hiqni gateway-in nga grupi i besuar. Cilat destinacione mund të arrijë 10.60.4.10 kur procesi i tij i përket një sulmuesi? Filtri i URL-ve që kufizonte vizitorët nuk thotë asgjë për një lidhje që hosti i gateway-it hap drejt nënrrjetit të bazës së të dhënave.

Hiqni në vend të tij procesin e aplikacionit, dhe autoriteti ndryshon formë: roli expenses_app, shërbimet që ai server mund të arrijë dhe skedarët që ai llogari mund të lexojë. Në të dyja rastet dera e përparme mund të mbetet vetëm web ndërsa kufiri i backend mungon. Prandaj etiketa në derën e përparme nuk është përgjigje për asnjërën nga dy pyetjet.

Hartoni autoritetin që secila palë mban në të vërtetë

Një kontratë e shkruar si leje të synuara tenton t'ju përsëritë dizajnin. Shkruajeni si autoritet i mbajtur, kontrolli që hedh poshtë tepricën dhe pronari i atij kontrolli, dhe çdo rresht bëhet i testueshëm. Kjo tabelë është një propozim për shembullin e mësipërm, jo një pretendim produkti:

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

Pronësia ndjek autoritetin. Ekipi i identitetit zotëron pohimet, ekipi i platformës së rrjetit zotëron rrugët, ekipi i aplikacionit zotëron rolin e bazës së të dhënave, administratori i bazës së të dhënave zotëron dëgjuesin dhe rregullat e tij të bazuara në host, dhe pronari i platformës zotëron planin e menaxhimit. Një mohim pa pronar është një fjali në një dokument, jo një kontroll.

Ndarja parandalon gjithashtu numërimin e dyfishtë. Një kufizim porte nuk mund të shprehë një privilegj tabele, dhe një rol i bazës së të dhënave nuk mund të pengojë një host të hapë një socket drejt një nënrrjeti të palidhur.

Numëroni deri ku mund të arrijë gateway-i në vend që ta pretendoni

Një pretendim kufiri vlen aq sa numërimi pas tij. Në hostin e gateway-it, tre komanda mbulojnë zgjedhjen e rrugës, një provë të drejtpërdrejtë dhe politikën e daljes:

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

Lexoni daljen në atë rend. Rruga thotë nëse 10.60.4.20 zgjidhet fare nga ai host; prova thotë nëse dëgjuesi përgjigjet; lista e rregullave tregon nëse politika e ndalon paketën apo nëse nuk kishte kurrë asgjë në rrugën e saj.

Përsëriteni numërimin nga hosti i aplikacionit. Nga atje ana e bazës së të dhënave është një pyetësor i ekzekutuar si roli i aplikacionit:

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

Një lidhje e suksesshme nën një rol që nuk mund të lexojë një skemë tjetër është një rezultat i ndryshëm nga një lidhje e suksesshme nën një rol pronari. Vetëm e dyta është një gjetje.

Regjistroni mohimet, pastaj datojeni rishikimin

Pranimi shkruhet si rezultate dhe jo si qëllime: sesioni i një punonjësi nuk mund të arrijë dëgjuesin, hosti i gateway-it nuk mund të arrijë një nënrrjet të palidhur, dhe roli i aplikacionit nuk mund të krijojë një bazë të dhënash. Secili është një kontroll i veçantë me një pronar të emërtuar dhe një datë.

Mbani monitorimin, patch-et dhe rikuperimin të arritshme përmes rrugës së menaxhimit të projektuar për to. Një kufi që bllokon edhe pronarin e tij bëhet ndërprerje, dhe përgjigja e parë e zakonshme ndaj asaj ndërprerjeje është ta zgjerojmë përsëri rregullin. Udhëzimi i perimetrit të CISA kërkon që aksesi hyrës dhe dalës të kufizohet në porta dhe protokolle të justifikuara, duke përfshirë trafikun midis rrjeteve të brendshme, që është drejtimi i nisur nga backend dhe që shumica e diagrameve e lënë jashtë.

Datojeni rishikimin dhe emërtoni pronarin e tij. Ekzekutoni përsëri numërimin dhe pyetësorin e privilegjeve pas çdo ndryshimi në imazhin e gateway-it, tabelën e rrugëzimit ose rolin e aplikacionit.

Artikuj të ngjashëm