9 Cara Pengamanan Terbaik Kubernetes tahun 2020





By Sindhuja Cynixit

Pada Januari 2019, Kubernetes, sistem orkestrasi wadah terpopuler di dunia, menemukan kerentanan keamanan utama yang mempengaruhi ekosistem proyek. Kerentanan CVE-2018–1002105 memungkinkan penyerang untuk berkompromi dengan cluster melalui server API Kubernetes, yang memungkinkan kode berbahaya digunakan untuk memasukkan malware, dan lain-lain.

Sebelumnya , konfigurasi yang salah dari panel kontrol Kubernetes menyebabkan pemasangan perangkat lunak penambangan cryptocurrency pada sumber daya Tesla. Kemudian para penyerang mengambil keuntungan dari kenyataan bahwa satu di antara panel Kubernet tidak dilindungi kata sandi, yang memungkinkan mereka untuk mengakses satu di antara pod dengan akun untuk mengakses infrastruktur Tesla yang lebih besar di AWS.

Dapatkan Lebih Banyak Pengetahuan Mengenai Pelatihan Kubernetes Online .

Organisasi yang mempercepat implementasi wadah dan orkestrasi mereka juga perlu untuk mengambil langkah-langkah wajib untuk melindungi bagian penting dari infrastruktur mereka. Berikut adalah sembilan langkah praktik keamanan terbaik Kubernet berdasarkan data pelanggan. Silakan ikuti langkah mereka untuk melindungi infrastruktur Anda dengan lebih baik.

1. Perbarui ke versi terbaru

Tidak hanya ada perbaikan bug di setiap rilis triwulan [Kubernetes] tetapi juga langkah-langkah keamanan baru untuk mengetahu manfaat dari update tersebut . Kami sarankan bekerja dengan versi stabil terbaru.

Pembaruan dan dukungan juga bisa lebih sulit daripada fitur baru yang ditawarkan dalam rilis, jadi rencanakan Anda melakukan update minimal satu kali dalam satu kuartal. Pembaruan yang disederhanakan secara signifikan dapat memanfaatkan penyedia solusi Kubernetes yang dikelola.

2. Aktifkan kontrol akses berbasis peran (RBAC)

Gunakan RBAC (Kontrol Akses Berbasis Peran) untuk mengatur siapa yang dapat mengakses API Kubernetes dan hak apa yang mereka butuhkan. Biasanya, RBAC diaktifkan secara default di Kubernetes versi 1.6 dan yang lebih baru (atau lebih baru untuk beberapa penyedia), tetapi jika Anda memiliki yang tela diperbarui sejak saat itu dan tidak mengubah konfigurasi, Anda harus memeriksa ulang pengaturan Anda.

Namun, mengaktifkan RBAC belum cukup - masih harus digunakan secara efektif. dalam kasus umum, hak atas seluruh cluster (cluster-wide) harus dihindari, memberikan preferensi pada hak dalam ruang nama tertentu. Hindari memberikan hak istimewa administrator cluster seseorang bahkan untuk debugging - jauh lebih aman untuk memberikan hak yang hanya diperlukan dari waktu ke waktu.

Jika alat Anda membutuhkan akses ke API Kubernetes, buat akun layanan terpisah. dan memberi mereka set minimum hak yang diperlukan untuk setiap kasus penggunaan. Pendekatan ini jauh lebih baik daripada memberikan jumlah hak istimewa yang berlebihan ke akun default dalam namespace.

3. Gunakan ruang nama untuk menetapkan batas keamanan

Membuat ruang nama yang terpisah sangat penting karena tingkat pertama komponen isolasi jauh lebih mudah untuk mengatur pengaturan keamanan - misalnya, kebijakan jaringan - ketika berbagai jenis beban kerja digunakan dalam ruang nama yang terpisah.

Untuk mendapatkan pengetahuan mendalam tentang Kubernetes, daftarkan dalam demo di Kubernetes course.

4. Pisahkan beban kerja sensitif

Praktik yang baik untuk membatasi konsekuensi potensial kompromi adalah menjalankan beban kerja dengan data sensitif pada set mesin yang fanatik. Pendekatan ini mengurangi risiko aplikasi yang kurang aman mengakses aplikasi dengan data sensitif yang berjalan di lingkungan yang dapat dieksekusi wadah yang sama atau pada host yang sama.

Misalnya, sebuah kubelet dari node yang dikompromikan biasanya memiliki akses ke konten rahasia hanya jika mereka dipasang pada pod yang dijadwalkan untuk dieksekusi pada node yang sama. Jika rahasia penting sering ditemukan pada beberapa node cluster, penyerang akan memiliki lebih banyak peluang untuk mendesaknya.

Pemisahan dapat dilakukan dengan menggunakan kumpulan node (di cloud atau untuk di tempat), serta mekanisme pengendalian Kubernet, seperti ruang nama, noda, toleransi, dan lainnya.

5. Lindungi akses ke metadata layanan cloud

Metadata sensitif - misalnya, kredensial administratif kubelet, sering kali dicuri atau digunakan dengan niat jahat untuk meningkatkan hak istimewa selama satu cluster. Misalnya, penemuan terbaru dalam karunia bug Shopify menunjukkan secara terperinci bagaimana pengguna dapat melebihi otoritas dengan menerima metadata dari penyedia cloud menggunakan data yang dibuat khusus untuk salah satu layanan microser.

Fungsi penyembunyian metadata GKE mengubah mekanisme untuk menyebarkan cluster sedemikian rupa sehingga menghindari hambatan tersebut. Dan kami sarankan menggunakannya sampai solusi permanen diimplementasikan.

6. Membuat dan menetapkan kebijakan jaringan cluster

Kebijakan Jaringan - memungkinkan Anda untuk mengontrol akses ke jaringan masuk dan keluar dari aplikasi kemas. Untuk menggunakannya, Anda harus memiliki penyedia jaringan dengan dukungan untuk sumber daya tersebut. Untuk penyedia solusi Kubernetes yang dikelola seperti Google Kubernetes Engine (GKE), dukungan harus diaktifkan.

Setelah semuanya siap, mulailah dengan kebijakan jaringan default sederhana - misalnya, memblokir (secara default) lalu lintas dari ruang nama lain.


7. Tetapkan Kebijakan Keamanan Pod untuk kluster

Kebijakan Keamanan Pod menetapkan nilai default yang digunakan untuk memulai beban kerja di kluster dan Pertimbangkan mendefinisikan kebijakan dan mengaktifkan pengontrol penerimaan Kebijakan Keamanan Pod: instruksi untuk langkah-langkah ini bervariasi tergantung pada penyedia cloud atau model penyebaran yang digunakan.

Pada awalnya, Anda mungkin ingin menonaktifkan kemampuan NET_RAW dalam wadah untuk melindungi diri Anda dari jenis serangan spoofing tertentu.

8. Bekerja pada keamanan node

Untuk meningkatkan keamanan host, Anda dapat mengikuti langkah-langkah ini:

    • Pastikan bahwa host dikonfigurasikan dengan aman dan benar. Salah satu caranya adalah Tolok Ukur CIS; Banyak produk memiliki pemeriksa otomatis yang secara otomatis memeriksa sistem untuk kepatuhan dengan standar-standar ini.
    • Monitor ketersediaan jaringan port penting. Pastikan bahwa jaringan memblokir akses ke port yang digunakan oleh kubelet, termasuk 10250 dan 10255. Pertimbangkan untuk membatasi akses ke server API Kubernetes - dengan pengecualian jaringan tepercaya. Dalam kelompok yang tidak memerlukan otentikasi dan otorisasi di kubelet API, penyerang digunakan untuk mengakses port tersebut untuk meluncurkan cryptocurrency miner.
    • Meminimalkan akses administratif ke host Kubernetes. Akses ke node cluster pada prinsipnya harus dibatasi: untuk debugging dan memecahkan masalah lain, sebagai aturan, Anda dapat melakukannya tanpa akses langsung ke node.

9. Aktifkan Audit Logging

Pastikan log audit diaktifkan dan bahwa Anda memantau terjadinya panggilan API yang tidak biasa atau tidak diinginkan, terutama dalam konteks setiap kegagalan otorisasi - entri tersebut akan memiliki pesan dengan status "Terlarang". Kegagalan otorisasi dapat berarti bahwa penyerang berusaha untuk mengambil keuntungan dari kredensial yang diperoleh.

Penyedia solusi terkelola (termasuk GKE) menyediakan akses ke data ini di antarmuka mereka dan dapat membantu Anda mengatur pemberitahuan jika terjadi kegagalan otorisasi.

Kesimpulan

Ikuti panduan ini untuk Kubernetes cluster yang lebih aman. Ingatlah bahwa bahkan setelah cluster dikonfigurasikan dengan aman, Anda perlu memastikan keamanan dalam aspek-aspek lain dari konfigurasi dan pengoperasian kontainer. Untuk meningkatkan keamanan tumpukan teknologi, pelajari alat-alat yang menyediakan sistem pusat untuk mengelola kontainer yang digunakan, terus memantau dan melindungi kontainer dan aplikasi asli cloud

Artikel ini diambil dari: https://medium.com/faun/9-best-security-practices-at-kubernetes-in-2020-3d5c2f4231c8