Devops, News, Software, Tutorial

Belajar Docker Bagian 11

Eko Susilo Harjo October 4, 2024
docker part 11
docker part 11

Keamanan Docker merupakan hal krusial yang tidak boleh diabaikan dalam setiap proses pengembangan dan deployment aplikasi. Meskipun Docker menawarkan isolasi container yang baik, ada beberapa langkah penting yang harus diterapkan untuk melindungi lingkungan Anda dari risiko keamanan. Artikel ini akan membahas best practices dalam keamanan Docker, penggunaan Docker Bench for Security, serta penerapan prinsip least privilege dalam mengelola Docker containers.

Menjaga Keamanan Docker Containers

Docker container memungkinkan kita untuk menjalankan aplikasi di lingkungan yang terisolasi. Meskipun begitu, container tidak otomatis aman tanpa penerapan praktik-praktik keamanan yang baik. Beberapa langkah dasar yang bisa dilakukan untuk menjaga keamanan container Anda adalah sebagai berikut:

1. Menggunakan Image yang Terpercaya

Image Docker adalah komponen inti yang digunakan untuk menjalankan containers. Pastikan image yang Anda gunakan berasal dari sumber terpercaya seperti Docker Hub atau repository resmi lainnya. Menggunakan image dari sumber tidak terpercaya bisa membahayakan karena potensi adanya malware atau kerentanan dalam image tersebut.

Contoh:

  • Gunakan image resmi: docker pull nginx:alpine
  • Hindari menggunakan image yang tidak dikenali atau tidak diverifikasi.

Selain itu, pastikan Anda selalu memperbarui image untuk mendapatkan patch keamanan terbaru.

2. Update Docker Secara Berkala

Seperti perangkat lunak lainnya, Docker juga menerima pembaruan berkala yang biasanya mencakup patch keamanan. Pastikan Docker di host Anda selalu menggunakan versi terbaru untuk menghindari kerentanan yang dapat dieksploitasi oleh attacker.

Untuk memperbarui Docker, Anda dapat menggunakan perintah berikut di Linux:

bashCopy codesudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

3. Batasi Hak Akses dengan User Non-root

Secara default, container Docker berjalan sebagai user root, yang berisiko tinggi jika container dieksploitasi oleh attacker. Disarankan untuk menjalankan container sebagai user non-root untuk membatasi hak akses.

Contoh Dockerfile untuk menjalankan container dengan user non-root:

dockerfileCopy codeFROM ubuntu:20.04
RUN groupadd -r mygroup && useradd -r -g mygroup myuser
USER myuser

Dengan cara ini, jika terjadi eksploitasi, attacker tidak memiliki akses root ke sistem host.

Menggunakan Docker Bench for Security

Docker Bench for Security adalah tool open-source yang membantu mengidentifikasi konfigurasi Docker host Anda yang mungkin memiliki potensi risiko keamanan. Ini sangat berguna untuk memastikan bahwa konfigurasi Docker Anda sesuai dengan best practices keamanan.

1. Apa itu Docker Bench for Security?

Docker Bench for Security adalah skrip yang menjalankan serangkaian tes keamanan pada instalasi Docker Anda. Tes-tes ini mencakup pemeriksaan terhadap pengaturan Docker daemon, container, network, dan konfigurasi lainnya.

2. Cara Menggunakan Docker Bench for Security

Anda dapat menjalankan Docker Bench for Security di host Docker dengan cara sebagai berikut:

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

Setelah dijalankan, Docker Bench akan menampilkan laporan yang merinci temuan-temuan terkait keamanan, serta memberikan rekomendasi untuk memperbaiki konfigurasi yang tidak aman.

Contoh hasil yang bisa Anda dapatkan:

  • Pengaturan Docker Daemon: Jika daemon Docker dijalankan dengan parameter yang tidak aman, alat ini akan memberitahu Anda untuk mengubah konfigurasinya.
  • Kontainer Tanpa Batasan Resource: Docker Bench akan mengingatkan jika container dijalankan tanpa membatasi resource CPU atau memori, yang bisa menjadi titik serangan.

Menerapkan Least Privilege di Docker Containers

Prinsip least privilege adalah memberikan hak akses paling minimal yang diperlukan oleh aplikasi atau proses untuk melakukan tugasnya. Ini penting diterapkan di Docker untuk mengurangi risiko jika ada container yang berhasil dieksploitasi.

1. Batasi Kapabilitas yang Tidak Diperlukan

Docker memberikan banyak kapabilitas kernel kepada container secara default. Anda bisa membatasi kapabilitas tersebut hanya pada yang benar-benar diperlukan menggunakan flag --cap-drop dan --cap-add.

Contoh:

bashCopy codedocker run --cap-drop ALL --cap-add NET_ADMIN nginx

Dalam contoh di atas, semua kapabilitas di-drop kecuali NET_ADMIN, yang dibutuhkan untuk konfigurasi jaringan.

2. Jalankan Container dengan Filesystem Read-Only

Jika aplikasi Anda tidak memerlukan hak akses tulis ke filesystem, Anda bisa menjalankan container dengan filesystem read-only. Ini akan mempersulit attacker dalam mengubah file di dalam container.

Contoh perintah untuk menjalankan container dengan read-only filesystem:

bashCopy codedocker run --read-only nginx

Dengan cara ini, aplikasi di dalam container tetap dapat berjalan, tetapi attacker tidak bisa memodifikasi file di dalam container.

3. Batasi Akses ke Network

Jika container tidak membutuhkan akses ke jaringan eksternal, Anda bisa memisahkannya dari jaringan untuk meningkatkan keamanan. Docker menyediakan beberapa opsi networking yang bisa Anda gunakan untuk membatasi akses container.

Contoh perintah untuk menjalankan container tanpa akses ke internet:

bashCopy codedocker run --network none nginx

Dengan isolasi jaringan ini, container tetap bisa berkomunikasi dengan container lain di dalam host yang sama, namun tidak dapat terhubung ke internet.

Best Practices Tambahan dalam Keamanan Docker

  1. Jangan Menggunakan Container yang Sudah Dikonfigurasi Sebagai Root
    • Jalankan semua aplikasi di dalam container dengan user yang memiliki hak akses minimal.
  2. Gunakan Docker Secrets untuk Menyimpan Data Sensitif
    • Hindari menyimpan password atau secret langsung di dalam environment variable. Gunakan Docker Secrets untuk mengelola data sensitif dengan aman.
  3. Selalu Scanning Image untuk Kerentanan
    • Gunakan tools seperti Trivy atau Clair untuk memindai image Docker dari potensi kerentanan sebelum menggunakannya.

Kesimpulan

Menjaga keamanan Docker container memerlukan pendekatan yang disiplin dan konsisten. Dengan menggunakan image terpercaya, membatasi hak akses, dan menerapkan tools seperti Docker Bench for Security, Anda bisa meminimalkan risiko dan menjaga aplikasi Anda tetap aman. Penerapan prinsip least privilege dan pembatasan resource container adalah langkah-langkah penting untuk memperkuat keamanan secara menyeluruh. Dengan mengikuti best practices ini, Anda dapat menjaga container Docker Anda aman dari ancaman eksternal dan potensi serangan.


Discover more from teknologi now

Subscribe to get the latest posts sent to your email.

Pengenalan Go 1.25 baru saja rilis dan bawa banyak peningkatan yang bikin hidup developer lebih gampang. Di artikel ini, kita bakal bahas tiga fitur paling menonjol: DWARF v5 untuk debugging yang lebih ringan, go doc -http yang menyiapkan server dokumentasi lokal dalam hitungan detik, serta interface XOF untuk hash yang output‑nya bisa diperpanjang. Semua dijelaskan dengan […]

News

Change Data Capture (CDC)

Eko Susilo Harjo

28 August 2025

Di era digital, sistem ERP (Enterprise Resource Planning) menjadi tulang punggung perusahaan. Semua proses – mulai dari keuangan, HR, inventori, hingga produksi – bertumpu pada data yang terus berubah setiap detik.Tantangannya: bagaimana cara menampilkan data yang selalu up-to-date tanpa membebani server? Jawabannya ada pada teknologi Change Data Capture (CDC). Apa itu CDC? Change Data Capture […]

Pengantar MLOps (Machine Learning Operations) adalah gabungan praktik DevOps yang diterapkan pada seluruh siklus hidup model AI. Dengan MLOps, tim dapat memindahkan model dari notebook eksperimen ke produksi secara reliable, terukur, dan otomatis. Artikel ini bakal ngasih blueprint praktis untuk developer, data scientist, dan platform engineer yang mau membangun sistem ML produksi. Siklus Hidup MLOps […]

Discover more from teknologi now

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

Continue reading