Шлюз хостының сертификаты әлі жарамды кезде ол бұзылды делік. Келуші қандай беттерді сұрай алатынын реттейтін әрбір ереже күшінде қалады және бұл ережелердің ешқайсысы шабуылдаушының қазір сол хосттан дерекқор ішкі желісіне қарай ашатын байланысын шектемейді. Дәл осы олқылық сегменттелген желі емес, тек веб-кіру нүктесі басқа мәлімдеме екенін көрсетеді. Екі мәлімдеме де әртүрлі бастау нүктелерінен жеке сараптамаларды қажет етеді, бұрын олардың ешқайсысын адал түрде айтуға болмайды.

Екі мәлімдеме, және олардың тек біреуі келушіден басталады

Бірінші мәлімдеме адам туралы: браузері мен жарамды сессиясы бар келуші бір қолданбаны аша алады, басқа ештеңе емес. Тек веб-кіру нүктесі бұл мәлімдемеге жақсы жауап береді, өйткені келуші маршрут емес, бет алады. Бұл жауаптың құны бар, және бұл көптеген диаграммалар жазатын жалғыз мәлімдеме де.

Екінші мәлімдеме компонент туралы: шлюз немесе оның артындағы қолданба процесі басқа біреудің бақылауында деп болжанады. Осы болжамнан сұрақ қандай URL рұқсат етілгенінен процесс әлі қандай мақсаттар мен сәйкестіктерге жете алатынына ауысады.

Екі мәлімдеменің иелері әртүрлі, олар әртүрлі дәлелдер береді және тәуелсіз сәтсіздікке ұшырайды. Сәйкестік тобы біріншісін сессия сынағымен көрсете алады; екіншісіне желілік саясат, қызметтік тіркелгіні қарау және хостты бақылау қажет. Тек келушінің жартысын жазатын жобалау шолу слайдында толық, оқиға кезінде жұқа көрінеді, өйткені бұзылудан кейін маңызды бақылаулар ешқашан ауқымда болмаған. Әрбір бақылау қандай мәлімдемені қолдайтынын атаңыз, әйтпесе бір шлюз ережесі екеуіне де есептеледі.

Істелген шығыс қызметі және оның ұтылуының екі жолы

Шығыс қызметін алайық: 10.60.4.10 мекенжайындағы жария шлюз қызметкерлерді аутентификациялайды және мақұлданған сұраныстарды 8443 портындағы қолданба тыңдаушысына жібереді, ал бұл қолданба expenses_app рөлі ретінде 10.60.4.20:5432 мекенжайындағы бір PostgreSQL тыңдаушысына жетеді. Қызметкерлерге жалпы ішкі қатынас берілуі тиіс емес. Қалыпты жұмыста жобалау шынымен дерекқор тыңдаушысын еш жерде жарияламай-ақ қолданбаға тән кіруді береді. Мекенжайлар маңызды, өйткені осы мақаладағы әрбір кейінгі тексеру оларды атайды.

Енді шлюзді сенімді жиынтықтан шығарыңыз. 10.60.4.10 процесі шабуылдаушыға тиесілі болған соң қандай мақсаттарға жете алады? Келушілерді шектеген URL сүзгісі шлюз хостының дерекқор ішкі желісіне қарай ашатын байланысы туралы ештеңе айтпайды.

Оның орнына қолданба процесін шығарыңыз, және өкілеттік пішінін өзгертеді: expenses_app рөлі, сол сервер жете алатын қызметтер және сол тіркелгі оқи алатын файлдар. Екі жағдайда да алдыңғы есік тек веб болып қала алады, ал backend шекарасы жоқ. Сондықтан алдыңғы есіктегі жазу екі сұрақтың ешқайсысына жауап емес.

Әр тараптың іс жүзіндегі өкілеттігін картаға түсіріңіз

Мақсатты рұқсаттар ретінде жазылған шарт жобалауды сізге қайталауға бейім. Оны ұсталған өкілеттік, артықшылықты жоққа шығаратын тексеру және сол тексерудің иесі ретінде жазыңыз, сонда әрбір жол тексерілетін болады. Бұл кесте жоғарыдағы мысалға арналған ұсыныс, өнім мәлімдемесі емес:

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

Меншік өкілеттікке ереді. Сәйкестік тобы мәлімдемелерге, желілік платформа тобы маршруттарға, қолданба тобы дерекқор рөліне, дерекқор әкімшісі тыңдаушыға және оның хостқа негізделген ережелеріне, ал платформа иесі басқару жазықтығына ие. Иесіз бас тарту құжаттағы сөйлем, бақылау емес.

Бөлу қос есепті де болдырмайды. Порт шектеуі кесте артықшылығын білдіре алмайды, ал дерекқор рөлі хосттың байланыссыз ішкі желіге сокет ашуына кедергі бола алмайды.

Шлюз қайда жете алатынын мәлімдеудің орнына санаңыз

Шекара мәлімдемесі оның артындағы санақ қаншалықты жақсы болса, соншалықты жақсы. Шлюз хостта үш команда маршрут таңдауын, тірі сынақты және шығу саясатын қамтиды:

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

Шығысты сол тәртіппен оқыңыз. Маршрут 10.60.4.20 сол хосттан тіпті таңдала ма, соны айтады; сынақ тыңдаушы жауап бере ме, соны айтады; ережелер тізімі саясат пакетті тоқтата ма, әлде оның жолында ешқашан ештеңе болмағанын көрсетеді.

Санақты қолданба хосттарынан қайталаңыз. Ол жақтан дерекқор жағы қолданба рөлі ретінде орындалатын бір сұраныс:

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

Басқа схеманы оқи алмайтын рөл астындағы сәтті байланыс ие рөлі астындағы сәтті байланыстан өзгеше нәтиже. Тек екіншісі ғана табылым.

Бас тартуларды жазып алыңыз, содан кейін шолуға күн қойыңыз

Қабылдау ниет емес, нәтиже ретінде жазылады: қызметкер сессиясы тыңдаушыға жете алмайды, шлюз хост байланыссыз ішкі желіге жете алмайды, ал қолданба рөлі дерекқор құра алмайды. Әрқайсысы аталған иесі мен күні бар жеке тексеру.

Мониторингті, патчтауды және қалпына келтіруді олар үшін жасалған басқару жолы арқылы қолжетімді ұстаңыз. Өз иесін де бөгейтін шекара іркіліске айналады, ал сол іркіліске әдеттегі бірінші жауап ережені қайта кеңейту болып табылады. CISA периметрлік нұсқаулығы кіріс және шығыс қатынасты негізделген порттар мен протоколдармен шектеуді талап етеді, оның ішінде ішкі желілер арасындағы трафик, яғни көптеген диаграммалар қалдыратын backend бастаған бағыт.

Шолуға күн қойыңыз және оның иесін атаңыз. Шлюз бейнесіне, маршруттау кестесіне немесе қолданба рөліне кез келген өзгерістен кейін санақ пен артықшылық сұранысын қайта іске қосыңыз.

Қатысты мақалалар