Buzilgan veb-shlyuz yana qayerga yetib borishi mumkin?
Veb-shlyuz mehmon nima ochishini cheklaydi, buzilgan xost qayerga yetib borishini emas. Ikki ko'rib chiqish, vakolatlar jadvali va yetib borishni o'lchash buyruqlari.
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:
| Component | Authority it actually holds | Check that proves the denial | Owner of the check |
|---|---|---|---|
| Identity provider | Issues assertions and session cookies, and holds no network path of its own | A request to the application URL without a session is redirected to the login page | Identity team |
| Public gateway host | TCP reachability to whatever its routing table and egress rules permit | An egress rule drops 10.60.4.20:5432 and the probe reports the port filtered | Network platform team |
| Application role | SQL privileges granted to expenses_app inside the expenses database | A privilege query shows no ownership or create right on any other schema | Application team |
| Database listener | Accepts connections only from the source ranges named in its host-based rules | A connection from an unlisted address is refused before authentication | Database administrator |
| Management path | Administrative access reserved for patching, monitoring and recovery | A staff workstation cannot reach the administrative port or jump through it | Platform 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 outputNatijani 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.