Misalkan host gateway disusupi sementara sertifikatnya masih berlaku. Setiap aturan yang mengatur halaman mana yang boleh diminta pengunjung tetap berlaku, dan tidak satu pun aturan itu membatasi koneksi yang kini dibuka penyerang dari host tersebut menuju subnet basis data. Celah itulah sebabnya titik masuk khusus web bukan klaim yang sama dengan jaringan tersegmentasi. Kedua klaim memerlukan tinjauan terpisah, dari titik awal yang berbeda, sebelum salah satunya dapat dibuat dengan jujur.

Dua klaim, dan hanya satu yang dimulai dari pengunjung

Klaim pertama tentang seseorang: pengunjung dengan peramban dan sesi yang valid dapat membuka satu aplikasi dan tidak yang lain. Titik masuk khusus web menjawab klaim itu dengan baik, karena pengunjung menerima halaman, bukan rute. Jawaban itu layak dipertahankan, dan itu juga satu-satunya klaim yang dicatat sebagian besar diagram.

Klaim kedua tentang sebuah komponen: gateway, atau proses aplikasi di belakangnya, dianggap berada di bawah kendali orang lain. Dari anggapan itu pertanyaannya berubah dari URL mana yang diizinkan menjadi tujuan dan identitas mana yang masih dapat dijangkau proses tersebut.

Kedua klaim memiliki pemilik berbeda, menghasilkan bukti berbeda, dan gagal secara mandiri. Tim identitas dapat menunjukkan klaim pertama dengan uji sesi; klaim kedua membutuhkan kebijakan jaringan, tinjauan akun layanan, dan kontrol host. Desain yang hanya mencatat separuh pengunjung tampak lengkap di slide tinjauan dan tipis saat insiden, karena kontrol yang penting setelah penyusupan tidak pernah masuk cakupan. Sebutkan klaim mana yang didukung setiap kontrol, atau satu aturan gateway akan dikreditkan untuk keduanya.

Layanan biaya yang dikerjakan, dan dua cara ia kalah

Ambil layanan biaya: gateway publik di 10.60.4.10 mengautentikasi staf dan meneruskan permintaan yang disetujui ke pendengar aplikasi pada port 8443, dan aplikasi itu menjangkau satu pendengar PostgreSQL di 10.60.4.20:5432 sebagai peran expenses_app. Karyawan tidak dimaksudkan menerima akses internal umum. Dalam operasi normal desain memang memberikan pintu masuk khusus aplikasi tanpa mempublikasikan pendengar basis data di mana pun. Alamatnya penting, karena setiap pemeriksaan selanjutnya dalam artikel ini menyebutnya.

Sekarang keluarkan gateway dari himpunan tepercaya. Tujuan mana yang dapat dijangkau 10.60.4.10 setelah prosesnya dimiliki penyerang? Filter URL yang membatasi pengunjung tidak mengatakan apa pun tentang koneksi yang dibuka host gateway menuju subnet basis data.

Keluarkan proses aplikasinya, dan otoritas berubah bentuk: peran expenses_app, layanan yang dapat dijangkau server itu, dan berkas yang dapat dibaca akun itu. Dalam kedua kasus pintu depan dapat tetap khusus web sementara batas backend tidak ada. Karena itu label di pintu depan bukan jawaban atas salah satu dari dua pertanyaan.

Petakan otoritas yang sebenarnya dipegang setiap pihak

Kontrak yang ditulis sebagai izin yang dimaksudkan cenderung mengulang desain kepada Anda. Tuliskan sebagai otoritas yang dipegang, pemeriksaan yang menyangkal kelebihan, dan pemilik pemeriksaan itu, maka setiap baris menjadi dapat diuji. Tabel ini adalah usulan untuk contoh di atas, bukan klaim produk:

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

Kepemilikan mengikuti otoritas. Tim identitas memiliki asersi, tim platform jaringan memiliki jalur, tim aplikasi memiliki peran basis data, administrator basis data memiliki pendengar dan aturan berbasis host-nya, dan pemilik platform memiliki bidang manajemen. Penolakan tanpa pemilik adalah kalimat dalam dokumen, bukan kontrol.

Pemisahan itu juga mencegah penghitungan ganda. Pembatasan port tidak dapat menyatakan hak istimewa tabel, dan peran basis data tidak dapat mencegah host membuka soket ke subnet yang tidak terkait.

Hitung apa yang dapat dijangkau gateway alih-alih mengklaimnya

Klaim batas hanya sebaik penghitungan di belakangnya. Pada host gateway, tiga perintah mencakup pemilihan rute, uji langsung, dan kebijakan keluar:

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

Baca keluaran dalam urutan itu. Rute mengatakan apakah 10.60.4.20 bahkan dipilih dari host itu; uji mengatakan apakah pendengar menjawab; daftar aturan menunjukkan apakah kebijakan menghentikan paket atau tidak pernah ada apa pun di jalurnya.

Ulangi penghitungan dari host aplikasi. Dari sana sisi basis data adalah satu kueri yang dijalankan sebagai peran aplikasi:

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

Koneksi berhasil di bawah peran yang tidak dapat membaca skema lain adalah hasil berbeda dari koneksi berhasil di bawah peran pemilik. Hanya yang kedua merupakan temuan.

Catat penolakan, lalu beri tanggal tinjauan

Penerimaan ditulis sebagai hasil, bukan niat: sesi karyawan tidak dapat menjangkau pendengar, host gateway tidak dapat menjangkau subnet yang tidak terkait, dan peran aplikasi tidak dapat membuat basis data. Masing-masing adalah pemeriksaan terpisah dengan pemilik bernama dan tanggal.

Jaga pemantauan, penambalan, dan pemulihan tetap terjangkau melalui jalur manajemen yang dirancang untuknya. Batas yang juga memblokir pemiliknya menjadi gangguan, dan respons pertama yang biasa terhadap gangguan itu adalah memperlebar aturan lagi. Panduan perimeter CISA meminta akses masuk dan keluar dibatasi pada port dan protokol yang dibenarkan, termasuk lalu lintas antarjaringan internal, yaitu arah yang dimulai backend yang dilewatkan sebagian besar diagram.

Beri tanggal tinjauan dan sebutkan pemiliknya. Jalankan kembali penghitungan dan kueri hak istimewa setelah setiap perubahan pada image gateway, tabel rute, atau peran aplikasi.

Artikel terkait