Tybiwch fod gwesteiwr y porth wedi'i gyfaddawdu tra bod ei dystysgrif yn dal yn ddilys. Mae pob rheol a lywodraethai pa dudalennau y gallai ymwelydd eu gofyn yn parhau mewn grym, ac nid oes unrhyw un o'r rheolau hynny'n cyfyngu ar y cysylltiad y mae'r ymosodwr yn ei agor nawr o'r gwesteiwr hwnnw tuag at is-rwydwaith y gronfa ddata. Y bwlch hwnnw yw'r rheswm nad yw pwynt mynediad gwe yn unig yr un haeriad â rhwydwaith segmentiedig. Mae angen adolygiadau ar wahân ar y ddau haeriad, o wahanol fannau cychwyn, cyn y gellir gwneud y naill na'r llall yn onest.

Dau haeriad, a dim ond un ohonynt yn cychwyn gyda'r ymwelydd

Mae'r haeriad cyntaf yn ymwneud â pherson: gall ymwelydd â phorwr a sesiwn ddilys agor un cymhwysiad a dim arall. Mae pwynt mynediad gwe yn unig yn ateb y haeriad hwnnw'n dda, oherwydd mae'r ymwelydd yn cael tudalen yn hytrach na llwybr. Mae'r ateb hwnnw'n werth ei gael, a dyma hefyd yr unig haeriad y mae'r rhan fwyaf o ddiagramau'n ei gofnodi.

Mae'r ail haeriad yn ymwneud â chydran: tybir bod y porth, neu'r broses gymhwysiad y tu ôl iddo, o dan reolaeth rhywun arall. O'r dybiaeth honno mae'r cwestiwn yn newid o ba URLau a ganiateir i ba gyrchfannau a hunaniaethau y gall y broses eu cyrraedd o hyd.

Mae gan y ddau haeriad berchnogion gwahanol, maent yn cynhyrchu tystiolaeth wahanol, ac maent yn methu'n annibynnol. Gall tîm hunaniaeth ddangos yr un cyntaf gyda phrawf sesiwn; mae'r ail angen polisi rhwydwaith, adolygiad cyfrif gwasanaeth a rheolaethau gwesteiwr. Mae dyluniad sy'n cofnodi hanner yr ymwelydd yn unig yn edrych yn gyflawn ar sleid adolygu ac yn denau yn ystod digwyddiad, oherwydd ni fu'r rheolaethau sy'n bwysig ar ôl cyfaddawd erioed o fewn cwmpas. Enwch pa haeriad y mae pob rheolaeth yn ei gefnogi, neu bydd un rheol porth yn cael ei chyfrif ar gyfer y ddau.

Gwasanaeth treuliau wedi'i weithio, a'r ddwy ffordd y mae'n colli

Cymerwch wasanaeth treuliau: mae porth cyhoeddus yn 10.60.4.10 yn dilysu staff ac yn anfon ceisiadau a gymeradwywyd at wrandawr cymhwysiad ar borth 8443, ac mae'r cymhwysiad hwnnw'n cyrraedd un gwrandawr PostgreSQL yn 10.60.4.20:5432 fel y rôl expenses_app. Nid yw gweithwyr i gael mynediad mewnol cyffredinol. O dan weithrediad arferol mae'r dyluniad yn wir yn darparu mynediad sy'n benodol i'r cymhwysiad heb gyhoeddi'r gwrandawr cronfa ddata yn unman. Mae'r cyfeiriadau yn bwysig, oherwydd mae pob gwiriad yn ddiweddarach yn yr erthygl hon yn eu henwi.

Nawr tynnwch y porth o'r set ymddiried. Pa gyrchfannau all 10.60.4.10 eu cyrraedd unwaith y bydd ei broses yn perthyn i ymosodwr? Nid yw'r hidlydd URL a gyfyngai ar ymwelwyr yn dweud dim am gysylltiad y mae gwesteiwr y porth yn ei agor tuag at is-rwydwaith y gronfa ddata.

Tynnwch y broses gymhwysiad yn lle hynny, ac mae'r awdurdod yn newid siâp: y rôl expenses_app, y gwasanaethau y gall y gweinydd hwnnw eu cyrraedd, a'r ffeiliau y gall y cyfrif hwnnw eu darllen. Yn y ddau achos gall y drws ffrynt aros yn we yn unig tra bo ffin y backend yn absennol. Felly nid yw'r label ar y drws ffrynt yn ateb i'r naill na'r llall o'r ddau gwestiwn.

Mapio'r awdurdod y mae pob parti yn ei ddal mewn gwirionedd

Mae contract a ysgrifennwyd fel caniatâd arfaethedig yn tueddu i ailadrodd y dyluniad yn ôl i chi. Ysgrifennwch ef fel awdurdod a ddelir, y gwiriad sy'n gwrthbrofi'r gormodedd, a pherchennog y gwiriad hwnnw, ac mae pob rhes yn dod yn brofadwy. Cynnig ar gyfer yr enghraifft uchod yw'r tabl hwn, nid haeriad cynnyrch:

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

Mae perchnogaeth yn dilyn yr awdurdod. Mae'r tîm hunaniaeth yn berchen ar honiadau, mae'r tîm platfform rhwydwaith yn berchen ar lwybrau, mae'r tîm cymhwysiad yn berchen ar y rôl gronfa ddata, mae'r gweinyddwr cronfa ddata yn berchen ar y gwrandawr a'i reolau sy'n seiliedig ar westeiwr, ac mae perchennog y platfform yn berchen ar yr awyren reoli. Mae gwadiad heb berchennog yn frawddeg mewn dogfen yn hytrach na rheolaeth.

Mae'r rhaniad hefyd yn atal cyfrif dwbl. Ni all cyfyngiad porth fynegi braint tabl, ac ni all rôl gronfa ddata atal gwesteiwr rhag agor soced i is-rwydwaith anghysylltiedig.

Rhestrwch yr hyn y gall y porth ei gyrraedd yn hytrach na'i honni

Nid yw haeriad ffin yn well na'r rhestru y tu ôl iddo. Ar westeiwr y porth mae tair gorchymyn yn ymdrin â dewis llwybr, prawf byw a'r polisi allanfa:

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

Darllenwch yr allbwn yn y drefn honno. Mae'r llwybr yn dweud a yw 10.60.4.20 hyd yn oed yn cael ei ddewis o'r gwesteiwr hwnnw; mae'r prawf yn dweud a yw'r gwrandawr yn ateb; mae'r rhestr rheolau yn dangos a yw polisi'n atal y pecyn neu a oedd dim byth yn ei lwybr.

Ailadroddwch y rhestru o westeiwr y cymhwysiad. Oddi yno mae ochr y gronfa ddata yn un ymholiad a redir fel rôl y cymhwysiad:

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

Mae cysylltiad llwyddiannus o dan rôl na all ddarllen sgiema arall yn ganlyniad gwahanol i gysylltiad llwyddiannus o dan rôl berchennog. Dim ond yr ail un sy'n ddarganfyddiad.

Cofnodwch y gwadiadau, yna dyddiwch yr adolygiad

Ysgrifennir derbyniad fel canlyniadau yn hytrach na bwriadau: ni all sesiwn gweithiwr gyrraedd y gwrandawr, ni all gwesteiwr y porth gyrraedd is-rwydwaith anghysylltiedig, ac ni all rôl y cymhwysiad greu cronfa ddata. Mae pob un yn wiriad ar wahân gyda pherchennog a enwir a dyddiad.

Cadwch fonitro, clytio ac adferiad yn gyrraeddadwy trwy'r llwybr rheoli a ddyluniwyd ar eu cyfer. Mae ffin sy'n blocio ei pherchennog hefyd yn dod yn doriad gwasanaeth, a'r ymateb cyntaf arferol i'r toriad hwnnw yw lledu'r rheol eto. Canllaw perimedr CISA yn gofyn am gyfyngu mynediad i mewn ac allan i borthladdoedd a phrotocolau cyfiawn, gan gynnwys traffig rhwng rhwydweithiau mewnol, sef y cyfeiriad a gychwynnir gan y backend y mae'r rhan fwyaf o ddiagramau yn ei hepgor.

Dyddiwch yr adolygiad ac enwch ei berchennog. Ailredwch y rhestru a'r ymholiad braint ar ôl unrhyw newid i ddelwedd y porth, y tabl llwybro neu rôl y cymhwysiad.

Erthyglau cysylltiedig