Firewall di antara porta bukan batas host
Dua porta terbuka dan satu aturan firewall melewatkan bagian penting: apa yang dapat dibaca dan dikendalikan pekerja web. Uji penolakannya, bukan hanya layanannya.
Situs web menjawab di 443, VPN menjawab di 1194, firewall mengizinkan tepat keduanya, dan tinjauan lolos. Tidak ada dalam urutan itu yang menanyakan apa yang dapat dibaca pekerja web atau berkas mana yang dapat ia tulis ulang. Pekerja yang telah dikompromikan tidak membutuhkan porta terbuka jika ia dapat mencapai soket kendali atau direktori konfigurasi yang dapat ditulis. Batasnya adalah kewenangan, dan pendengar hanyalah bagian yang mudah terlihat.
Nama layanan terpisah adalah label; identitas terpisah adalah sifat keamanan.
Hitung kewenangan pekerja, bukan porta
Mulailah dari pengguna runtime, grup-grupnya, kemampuannya, dan pandangannya atas sistem berkas. Akun layanan yang kebetulan berada dalam grup VPN dapat membaca materi kunci tanpa ada porta yang terbuka. Mount yang dapat ditulis adalah separuh lainnya: unggahan dan cache harus jauh dari berkas kebijakan dan rahasia, dan direktori dapat tulis yang dibagikan tanpa perlu menggagalkan penamaan yang rapi. Periksa proses yang akan melakukan operasi itu, karena induk yang berhak istimewa dan pekerja tanpa hak istimewa tidak berbagi satu kewenangan.
Kunci VPN yang dapat dibaca saat daemon mulai tidak berarti pekerja web membutuhkannya. Pisahkan pembacaan yang dilakukan daemon dari akses yang diberikan kepada aplikasi.
Soket yang memberi lebih dari penampilannya
Sebagian titik akhir adalah API administratif yang menyamar sebagai umpan metrik. Antarmuka manajemen VPN dapat mengubah sesi, memutus klien, dan membaca status. Soket runtime kontainer bahkan lebih luas: akses ke sana pada praktiknya adalah kendali host, jauh melebihi kebutuhan aplikasi web. Keduanya tidak termasuk dalam kumpulan mount aplikasi biasa, dan keduanya tidak muncul saat Anda menghitung porta yang mendengarkan.
Mengikat pendengar manajemen ke alamat lokal adalah awal, bukan pembatasan menyeluruh, karena setiap jalur masuk ke alamat itu tetap penting. Izinkan hanya sumber dan antarmuka yang dimaksud.
Kontainer berbagi satu kernel
Kontainer menambahkan batas proses, sistem berkas, dan jaringan, dan mereka berbagi satu kernel dengan host. Itu membuat pilihan kemampuan, mount host, dan akses daemon menjadi menentukan: me-mount rahasia host atau memberikan kendali runtime istimewa menghapus batas yang disiratkan label kontainer. VM terpisah memang memberi kernel tamu terpisah, sementara hypervisor, identitas administratif, penyimpanan, dan cadangan tetap dibagi. Pilih batas yang konfigurasi dan pembaruannya memiliki pemilik bernama.
Penyusunan yang lebih rumit yang tidak dirawat siapa pun lebih buruk daripada yang sederhana yang benar-benar ditinjau.
Uji penolakannya, lalu layanannya
Gunakan pemeriksaan yang disetujui dalam konteks nyata pekerja untuk memastikan ia tidak dapat mengubah kebijakan VPN, membaca rahasia yang tidak perlu, atau menyentuh antarmuka manajemen. Pembacaan yang berhasil sebagai administrator tidak menguji apa pun tentang penolakan itu. Lalu verifikasi situs web, operasi VPN biasa yang diizinkan, dan apa yang terjadi pada masing-masing saat mulai ulang. Pertahankan jalur pemulihan yang tidak bergantung pada perbaikan VPN, agar kesalahan tetap dapat dipulihkan.
Kedua peran tetap berbagi CPU, memori, kapasitas uplink, dan peristiwa pemeliharaan. Sumber daya bersama itu masuk dalam rencana bahkan ketika batas kewenangan bersih.
Catat apa yang dapat dilakukan setiap proses, apa yang gagal jika berhenti, dan batas mana yang tetap dibagi. Jumlah porta bukan catatan itu.