GNU/Linux >> Belajar Linux >  >> Panels >> Docker

10 Praktik Terbaik Keamanan Docker

Pendahuluan

Kontainer Docker dan Kubernetes adalah kekuatan pendorong siklus hidup pengembangan perangkat lunak modern. Meskipun Docker adalah opsi yang lebih aman daripada bekerja di mesin host secara langsung, banyak potensi masalah keamanan yang mungkin muncul saat bekerja dengan container.

Artikel ini mencakup sepuluh praktik terbaik keamanan container yang dapat membantu Anda mencegah serangan dan pelanggaran keamanan.

1. Perbarui Docker dan Host Secara Teratur

Pastikan Host dan Docker Anda mutakhir. Gunakan rilis OS terbaru dan perangkat lunak penampung untuk mencegah kerentanan keamanan. Setiap pembaruan menyertakan patch keamanan penting yang penting untuk melindungi host dan data.

Menjaga agar Docker diperbarui tidak terbatas pada platform itu sendiri. Wadah yang berjalan tidak diperbarui secara otomatis. Anda juga harus memperbarui wadah dan gambar yang menjadi dasarnya.

2. Konfigurasikan Kuota Sumber Daya

Untuk menghindari penampung yang disusupi yang menghabiskan sumber daya secara berlebihan, setel memori Docker dan batas penggunaan CPU.

Tanpa mengonfigurasi kuota sumber daya, Anda memberi wadah akses ke RAM penuh dan sumber daya CPU host. Karena ini adalah setelan default, disarankan untuk membatasi jumlah resource yang dapat digunakan oleh container, sehingga tidak mengganggu layanan lain.

Ini tidak hanya mencegah container menggunakan semua sumber daya, tetapi juga membantu menjaga lingkungan Docker tetap efisien. Kuota sumber daya memastikan container berjalan dengan kecepatan yang diantisipasi dan meningkatkan keamanan.

3. Gunakan Pengguna Non-Root

Docker memungkinkan menjalankan wadah dalam mode istimewa. Meskipun ini mungkin cara yang lebih cepat untuk melewati beberapa protokol keamanan, Anda harus selalu menahan diri untuk tidak menggunakan praktik ini.

Bahaya menjalankan wadah istimewa adalah membuka pintu untuk potensi aktivitas berbahaya. Pengguna Docker yang memiliki hak istimewa memiliki hak yang sama dengan root. Ini berarti ia memiliki akses ke fitur kernel dan perangkat lain di host. Pengguna jahat dapat memasuki sistem host Anda melalui penampung dan membahayakan semua yang ada di dalamnya.

Berpegang teguh pada pengguna non-root secara eksklusif itu sederhana, karena ini adalah pengaturan default Docker. Untuk mengubah konfigurasi default, Anda harus menambahkan --privileged tandai ke docker run memerintah. Namun, ini adalah bahaya keamanan yang signifikan dan tidak boleh digunakan.

4. Batasi Kemampuan

Kontainer memiliki serangkaian kemampuan Linux yang terbatas. Misalnya, mereka dapat mengizinkan pengguna untuk menjalankan wadah dengan efisiensi seperti root tetapi tanpa hak root penuh.

Kemampuan terbatas Docker adalah pengaturan keamanan default dan sama untuk setiap wadah. Oleh karena itu, disarankan untuk memodifikasi kapabilitas agar hanya menyertakan apa yang diperlukan. Administrator mengelolanya menggunakan --cap-add dan --cap-drop pilihan.

Cara teraman untuk mengonfigurasi kemampuan container adalah dengan menghapus semua (menggunakan --cap-drop=ALL pilihan) dan kemudian tambahkan yang diperlukan.

Untuk daftar semua kapabilitas dan singkatan, lihat bagian kapabilitas halaman manual Linux.

5. Melarang Hak Istimewa Baru

Seperti yang terlihat pada contoh di atas, Docker memungkinkan mengubah kemampuan dan hak istimewa container setelah diluncurkan. Untuk mencegah serangan eskalasi hak istimewa, sebaiknya tentukan hak istimewa container.

Untuk menonaktifkan proses penampung agar tidak mendapatkan hak istimewa baru, gunakan --security-opt tandai dengan nilai no-new-privileges:true . Menambahkan bendera ke docker run perintah menimpa aturan apa pun yang Anda tetapkan menggunakan --cap-add dan --cap-drop pilihan..

Selain itu, Anda dapat menghapus atau menonaktifkan setuid dan setgid binari dalam gambar. Melakukannya memastikan fitur tersebut tidak digunakan untuk traversal/injeksi jalur, buffer overruns, dan serangan eskalasi hak istimewa.

6. Gunakan Gambar Tepercaya

Saat menarik gambar dari pendaftar online, pastikan itu dari sumber yang aman dan tepercaya. Opsi teraman adalah tetap menggunakan hub Docker resmi. Hindari registry pihak ketiga publik yang tidak memiliki kebijakan kontrol.

Jika menggunakan perpustakaan online, selalu tinjau konten di dalam gambar. Selain itu, gunakan alat pemindaian gambar untuk mencari kerentanan sebelum mengunduh apa pun di sistem host.

Yang terbaik adalah memeriksa Docker Hub dan melihat apakah Anda dapat menemukan gambar yang diinginkan di sana. Ini adalah perpustakaan dan komunitas terbesar di dunia untuk Docker dengan lebih dari 100.000 gambar kontainer.

7. Jaga agar Gambar dan Wadah Tetap Ringan

Minimalkan permukaan serangan kontainer Docker dengan menggunakan gambar dasar minimal dan kurangi jumlah komponen kontainer. Menjaga ukuran gambar tetap kecil membantu mencegah pelanggaran keamanan dan mempercepat kinerja container.

Untuk tips tentang cara mengurangi ukuran gambar, lihat Cara Menjaga Gambar Docker Tetap Kecil.

8. Registri Aman

Registri Docker adalah sistem pengiriman konten yang digunakan untuk menyimpan dan menyediakan gambar untuk container Anda. Anda dapat menggunakan registri online resmi Docker atau menyiapkan registri pribadi di host Anda.

Untuk solusi penyimpanan gambar tingkat perusahaan, Anda harus menggunakan Docker Trusted Registry (DTR) . Anda dapat menginstal registri di belakang firewall untuk membantu mencegah potensi pelanggaran.

9. Jangan Buka Soket Daemon Docker

Docker berkomunikasi dengan soket domain UNIX yang disebut /var/run/docker.sock . Ini adalah titik masuk utama untuk Docker API. Siapa pun yang memiliki akses ke soket daemon Docker juga memiliki akses root tidak terbatas.

Mengizinkan pengguna menulis ke /var/run/docker.sock atau mengekspos soket ke wadah adalah risiko keamanan yang besar ke seluruh sistem. Melakukannya pada dasarnya memberikan hak akses root.

Memasang soket Docker di dalam wadah tidak membatasinya untuk akses istimewa di dalam wadah. Hal ini memungkinkan wadah kontrol penuh dari tuan rumah dan semua wadah lainnya. Oleh karena itu, ini bukan praktik yang disarankan.

10. Pantau API dan Aktivitas Jaringan

API dan jaringan memainkan peran penting dalam keamanan Docker. Kontainer Docker berkomunikasi melalui API dan jaringan. Oleh karena itu, untuk menghindari intrusi, arsitektur harus dikonfigurasi dengan aman.

Administrator keamanan baru-baru ini menemukan jenis serangan baru yang mengeksploitasi API Docker yang salah dikonfigurasi. Peretas memanfaatkan API dan keamanan jaringan yang tidak dikonfigurasi dengan baik, menggunakannya untuk menyebarkan gambar, dan menjalankan wadah berbahaya di sistem host.

Selain menyiapkan jaringan dan API dengan aman, Anda juga perlu memantau aktivitas untuk menangkap potensi anomali.


Docker
  1. Praktik Terbaik Keamanan OpenSSH

  2. Beberapa Perintah DOCKER

  3. Pengantar Docker

  1. Cara Menjalankan MySQL Dalam Wadah Docker

  2. Cara SSH Ke Wadah Docker

  3. Praktik terbaik keamanan server Windows

  1. Pemantauan Docker Containers:Manfaat, Praktik Terbaik, dan Alat yang Harus Dimiliki

  2. Cara Menetapkan IP Statis ke Wadah Docker

  3. Praktik terbaik keamanan Wordpress di Linux