Shlyuz xosti sertifikati hali amalda bo'lganda buzilgan deb faraz qilaylik. Tashrif buyuruvchi qaysi sahifalarni so'rashi mumkinligini belgilagan har bir qoida kuchda qoladi va bu qoidalarning hech biri hujumchi endi o'sha xostdan ma'lumotlar bazasi quyi tarmog'i tomon ochadigan ulanishni cheklamaydi. Aynan shu bo'shliq veb-eshik nuqtasi segmentlangan tarmoq bilan bir xil da'vo emasligini ko'rsatadi. Ikkala da'vo ham har xil boshlang'ich nuqtalardan alohida ko'rib chiqishni talab qiladi, toki ulardan birini ham halol aytish mumkin bo'lsin.

Ikki da'vo, va ulardan faqat bittasi tashrif buyuruvchidan boshlanadi

Birinchi da'vo inson haqida: brauzeri va amaldagi sessiyasi bo'lgan tashrif buyuruvchi bitta ilovani ocha oladi, boshqa hech narsani emas. Faqat veb-eshik nuqtasi bu da'voga yaxshi javob beradi, chunki tashrif buyuruvchi marshrut emas, sahifa oladi. Bu javob saqlashga arziydi va u ko'pchilik diagrammalar qayd etadigan yagona da'vo hamdir.

Ikkinchi da'vo komponent haqida: shlyuz yoki uning orqasidagi ilova jarayoni boshqa birovning nazorati ostida deb taxmin qilinadi. Bu taxmindan savol qaysi URL ruxsat etilganidan jarayon hali qaysi manzillar va identifikatsiyalarga yetib borishiga o'zgaradi.

Ikkala da'vonning egalari har xil, ular har xil dalillar beradi va mustaqil ravishda muvaffaqiyatsizlikka uchraydi. Identifikatsiya jamoasi birinchisini sessiya sinovi bilan ko'rsata oladi; ikkinchisiga tarmoq siyosati, xizmat hisobini ko'rib chiqish va xost nazorati kerak. Tashrif buyuruvchining yarmini qayd etadigan dizayn ko'rib chiqish slaydida to'liq, hodisa paytida esa nozik ko'rinadi, chunki buzilishdan keyin muhim bo'lgan nazoratlar hech qachon qamrovda bo'lmagan. Har bir nazorat qaysi da'voni qo'llab-quvvatlashini nomlang, aks holda bitta shlyuz qoidasi ikkalasiga ham yoziladi.

Ishlangan xarajat xizmati va uning yutqazishining ikki yo'li

Xarajat xizmatini olaylik: 10.60.4.10 dagi ommaviy shlyuz xodimlarni autentifikatsiya qiladi va tasdiqlangan so'rovlarni 8443 portidagi ilova tinglovchisiga uzatadi, bu ilova esa expenses_app roli sifatida 10.60.4.20:5432 dagi bitta PostgreSQL tinglovchisiga yetib boradi. Xodimlar umumiy ichki kirishga ega bo'lmasligi kerak. Oddiy ishda dizayn ma'lumotlar bazasi tinglovchisini hech qayerda e'lon qilmasdan ilovaga xos kirishni haqiqatan ta'minlaydi. Manzillar muhim, chunki ushbu maqoladagi har bir keyingi tekshiruv ularni nomlaydi.

Endi shlyuzni ishonchli to'plamdan chiqaring. 10.60.4.10 jarayoni hujumchiga tegishli bo'lgach, u qaysi manzillarga yetib borishi mumkin? Tashrif buyuruvchilarni cheklagan URL filtri shlyuz xosti ma'lumotlar bazasi quyi tarmog'i tomon ochadigan ulanish haqida hech narsa demaydi.

Buning o'rniga ilova jarayonini chiqaring, va vakolat shaklini o'zgartiradi: expenses_app roli, o'sha server yetib borishi mumkin bo'lgan xizmatlar va o'sha hisob o'qiy oladigan fayllar. Ikkala holatda ham old eshik faqat veb bo'lib qolishi mumkin, backend chegarasi esa yo'q. Shuning uchun old eshikdagi yorliq ikki savolning hech biriga javob emas.

Har bir tomonning haqiqatda ega bo'lgan vakolatini xaritalang

Mo'ljallangan ruxsatlar sifatida yozilgan shartnoma dizaynni sizga qaytarishga moyil. Uni ushlab turilgan vakolat, ortiqchalikni rad etuvchi tekshiruv va o'sha tekshiruvning egasi sifatida yozing, shunda har bir satr tekshiriladigan bo'ladi. Bu jadval yuqoridagi misol uchun taklif, mahsulot da'vosi emas:

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

Egalik vakolatga ergashadi. Identifikatsiya jamoasi da'volarga, tarmoq platformasi jamoasi marshrutlarga, ilova jamoasi ma'lumotlar bazasi roliga, ma'lumotlar bazasi administratori tinglovchiga va uning xostga asoslangan qoidalariga, platforma egasi esa boshqaruv tekisligiga ega. Egasi yo'q rad etish hujjatdagi gap, nazorat emas.

Bo'linish ikki marta hisoblashning ham oldini oladi. Port cheklovi jadval imtiyozini ifodalay olmaydi, ma'lumotlar bazasi roli esa xostning bog'liq bo'lmagan quyi tarmoqqa soket ochishini to'xtata olmaydi.

Shlyuz qayerga yetib borishini da'vo qilish o'rniga sanang

Chegara da'vosi uning orqasidagi sanoq qanchalik yaxshi bo'lsa, shunchalik yaxshi. Shlyuz xostida uchta buyruq marshrut tanlashni, jonli sinovni va chiqish siyosatini qamrab oladi:

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

Natijani shu tartibda o'qing. Marshrut 10.60.4.20 o'sha xostdan umuman tanlanadimi-yo'qmi, aytadi; sinov tinglovchi javob beradimi-yo'qmi, aytadi; qoidalar ro'yxati siyosat paketni to'xtatadimi yoki uning yo'lida hech qachon hech narsa bo'lmaganini ko'rsatadi.

Sanoqni ilova xostidan takrorlang. U yerdan ma'lumotlar bazasi tomoni ilova roli sifatida bajariladigan bitta so'rov:

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

Boshqa sxemani o'qiy olmaydigan rol ostidagi muvaffaqiyatli ulanish egasi roli ostidagi muvaffaqiyatli ulanishdan boshqa natija. Faqat ikkinchisi topilma.

Rad etishlarni qayd eting, so'ng ko'rib chiqishga sana qo'ying

Qabul natijalar sifatida yoziladi, niyatlar emas: xodim sessiyasi tinglovchiga yetib bora olmaydi, shlyuz xosti bog'liq bo'lmagan quyi tarmoqqa yetib bora olmaydi va ilova roli ma'lumotlar bazasini yarata olmaydi. Har biri nomlangan egasi va sanasi bo'lgan alohida tekshiruv.

Monitoring, yamoqlash va tiklashni ular uchun yaratilgan boshqaruv yo'li orqali ochiq tuting. O'z egasini ham to'sadigan chegara uzilishga aylanadi va bu uzilishga odatiy birinchi javob qoidani yana kengaytirishdir. CISA perimetr yo'riqnomasi ichki tarmoqlar orasidagi trafikni ham qo'shib, kirish va chiqish huquqini asoslangan portlar va protokollar bilan cheklashni talab qiladi, bu backend boshlaydigan va ko'pchilik diagrammalar tashlab ketadigan yo'nalishdir.

Ko'rib chiqishga sana qo'ying va uning egasini nomlang. Shlyuz tasviri, marshrutlash jadvali yoki ilova roliga har qanday o'zgarishdan keyin sanoq va imtiyozlar so'rovini qayta ishga tushiring.

O'xshash maqolalar