Devops, News, Software, Tutorial

Belajar Docker bagian 10

Eko Susilo Harjo October 3, 2024
docker part 10
docker part 10

Keamanan adalah aspek penting dalam semua proses pengembangan perangkat lunak, termasuk penggunaan Docker containers. Meskipun Docker memudahkan pengelolaan dan deployment aplikasi, ada beberapa langkah yang harus diambil untuk memastikan bahwa container Anda aman dari potensi serangan atau eksploitasi. Artikel ini akan membahas security best practices yang harus diterapkan ketika bekerja dengan Docker, serta bagaimana menggunakan tools seperti Docker Bench for Security dan menerapkan konsep least privilege untuk memperkuat keamanan.

Menjaga Keamanan Docker Containers

Container adalah lingkungan terisolasi, namun ini tidak berarti mereka kebal dari serangan. Beberapa praktik keamanan yang baik perlu diterapkan untuk menjaga container tetap aman.

1. Gunakan Image dari Sumber yang Terpercaya

Image Docker adalah komponen dasar dari setiap container. Memastikan Anda menggunakan image resmi dari Docker Hub atau registry terpercaya sangat penting untuk mengurangi risiko menggunakan image yang berisi malware atau kerentanan keamanan.

  • Selalu gunakan image yang telah diverifikasi.
  • Pastikan image yang Anda gunakan selalu diperbarui dengan patch keamanan terbaru.
  • Gunakan image minimalis untuk meminimalkan permukaan serangan.

Sebagai contoh, daripada menggunakan ubuntu:latest, Anda bisa memilih image yang lebih ringan seperti alpine:latest, yang memiliki footprint lebih kecil dan lebih sedikit dependensi, sehingga risiko keamanan juga lebih rendah.

2. Jangan Jalankan Container sebagai Root

Secara default, container Docker dijalankan dengan hak akses root, yang berpotensi membuka celah keamanan. Disarankan untuk selalu menjalankan container dengan user yang tidak memiliki hak akses root.

Untuk mengatur user non-root di Dockerfile, Anda bisa menambahkan perintah berikut:

USER nonrootuser

Dengan langkah ini, jika ada eksploitasi atau serangan terhadap container, dampaknya dapat diminimalkan karena attacker tidak akan memiliki hak akses root.

3. Batasi Resource Usage dengan Cgroups

Docker memungkinkan Anda untuk membatasi penggunaan resource (CPU, memory) oleh container. Ini dapat mencegah overuse resource dan mencegah potensi serangan yang menggunakan container untuk menghabiskan resource server Anda.

Berikut adalah contoh bagaimana Anda dapat membatasi penggunaan CPU dan memory:

docker run --cpus="1.0" --memory="512m" nama_image

Dengan cara ini, Anda dapat memastikan bahwa container tidak mengambil alih semua resource host, sehingga host tetap stabil dan aman.

Menggunakan Docker Bench for Security

Untuk membantu memverifikasi bahwa konfigurasi Docker Anda aman, Anda dapat menggunakan Docker Bench for Security, alat open-source yang memeriksa apakah Docker host Anda mengikuti best practices keamanan.

1. Apa Itu Docker Bench for Security?

Docker Bench for Security adalah skrip yang menjalankan serangkaian tes pada instalasi Docker Anda untuk mengidentifikasi potensi risiko keamanan. Tes ini mencakup aspek-aspek seperti konfigurasi daemon Docker, permission, dan pengaturan container.

2. Cara Menggunakan Docker Bench for Security

Untuk menjalankan Docker Bench for Security, Anda bisa menjalankan perintah berikut di host Docker:

docker run -it --net host --pid host --cap-add audit_control \
--label docker_bench_security \
docker/docker-bench-security

Docker Bench for Security akan memberikan laporan yang berisi hasil tes dan rekomendasi perbaikan untuk mengamankan sistem Anda.

Sebagai contoh, jika tes menemukan bahwa Docker Daemon berjalan dengan permission yang terlalu longgar, Anda bisa segera memperbaikinya untuk mencegah celah keamanan.

Menerapkan Least Privilege di Docker Containers

Prinsip least privilege adalah praktik yang memberikan hak akses seminimal mungkin kepada user atau proses untuk melakukan tugas tertentu. Ini sangat penting untuk mengurangi dampak serangan.

1. Gunakan Kapabilitas yang Minimal

Docker memungkinkan Anda untuk memberikan container akses ke kapabilitas tertentu dari kernel. Namun, secara default, container diberi terlalu banyak kapabilitas, yang mungkin tidak dibutuhkan oleh aplikasi Anda.

Dengan menggunakan flag --cap-drop dan --cap-add, Anda dapat membatasi akses container hanya ke kapabilitas yang dibutuhkan. Contoh:

docker run --cap-drop ALL --cap-add NET_ADMIN nama_image

Contoh ini menghapus semua kapabilitas kecuali yang diperlukan untuk mengelola jaringan (NET_ADMIN).

2. Gunakan Read-Only Filesystem

Jika aplikasi Anda tidak memerlukan akses tulis ke filesystem, sebaiknya Anda menjalankan container dengan filesystem read-only. Ini dapat mencegah attacker menulis file berbahaya ke dalam container jika terjadi serangan.

Contoh menjalankan container dengan read-only filesystem:

docker run --read-only nama_image

Dengan filesystem yang hanya bisa dibaca, aplikasi masih dapat berjalan, namun attacker tidak bisa menyuntikkan file berbahaya ke dalam container.

Best Practices dalam Pengelolaan Docker

Berikut adalah beberapa best practices tambahan yang perlu diperhatikan untuk menjaga keamanan Docker container Anda:

  1. Update Secara Berkala: Pastikan Docker, image, dan container Anda selalu diperbarui dengan patch terbaru.
  2. Scanning Image: Gunakan tools seperti Clair atau Trivy untuk melakukan scanning image terhadap kerentanan keamanan sebelum menggunakannya dalam production.
  3. Jangan Gunakan Bind Mounts: Hindari penggunaan bind mounts (mounting direktori dari host ke container) kecuali benar-benar diperlukan, karena ini bisa memberikan akses tidak aman ke filesystem host.
  4. Gunakan Network Isolation: Pisahkan container-container yang tidak memerlukan akses langsung ke jaringan yang sama. Dengan Docker Network, Anda bisa membuat jaringan yang lebih aman dan terisolasi untuk container-container sensitif.

Kesimpulan

Keamanan Docker container harus menjadi perhatian utama ketika Anda mengelola aplikasi dalam production. Dengan mengikuti best practices, seperti menggunakan image yang terpercaya, membatasi hak akses, dan memanfaatkan tools seperti Docker Bench for Security, Anda bisa memastikan bahwa container tetap aman dari ancaman luar.

Penerapan prinsip least privilege dan resource limiting juga memberikan lapisan keamanan tambahan yang memperkuat proteksi container Anda. Dengan langkah-langkah ini, Anda bisa mengurangi risiko keamanan dan menjaga lingkungan Docker Anda tetap aman dan efisien.


Discover more from teknologi now

Subscribe to get the latest posts sent to your email.

Polars adalah pustaka open-source untuk pemrosesan data yang ditulis dalam bahasa Rust, yang terkenal dengan efisiensi dan kecepatan. Polars dirancang untuk menangani analisis data secara paralel, memanfaatkan arsitektur modern komputer yang memiliki banyak inti CPU.

“Pelajari konsep Docker persistence dan teknik seperti Docker volumes, bind mounts, dan tmpfs untuk memastikan data tetap aman dan persisten dalam container. Dapatkan panduan lengkap di sini!”

AI dalam dunia fintech telah berkembang pesat, bukan sekadar teknologi baru yang tiba-tiba muncul. Teknologi ini telah lama digunakan untuk membantu pengambilan keputusan keuangan dan mendeteksi penipuan. Kini, AI dan subdomainnya, yaitu Machine Learning (ML), memberikan nilai tambah signifikan dalam berbagai aspek industri fintech. Apa saja manfaat utama teknologi ini bagi sektor keuangan dan perbankan? […]

Discover more from teknologi now

Subscribe now to keep reading and get access to the full archive.

Continue reading