Kali ini saya akan memberikan beberapa tips mengenai Docker Container Security. Docker kontainer, merupakan sebuah proyek open source (Apache License 2.0). Kontainer memungkinkan developer untuk package up aplikasi mereka tanpa mengkhawatirkan library dan dependensi, headache.
Hal tersebut memungkinkan untuk ship aplikasi di antara sistem yang menjalankan sistem operasi Linux. Kamu dapat melihat ini seperti mesin virtual, namun tanpa perlu menciptakan sistem operasi virtual secara keseluruhan.
Docker ini dilengkapi dengan beberapa keamanan. Tapi kamu juga perlu menyadari ada beberapa ancaman yang mengancam Docker ini.
1. KERNEL EXPLOITS
Bin setuid dan setgid dapat dieksploitasi oleh penyerang. Jadi, kamu perlu menonaktifkan hak setuid dengan menambahkan baris ini ke Dockerfile:
FROM debian:Xenial RUN find / -perm +6000 -type f -exec chmod a-s {} ; || true
2. DENIAL OF SERVICE (DOS) Threats
Untuk mencegah upaya denial of service, Docker menggunakan sumber kernel. Kamu perlu memastikan bahwa kontainer tergabung ke banyak pengguna dan berbeda VMs. Serta memodifikasi share CPU kontainer (1.024 by default) selain membatasi memori maksimum yang dikonsumsi oleh setiap kontainer.
$ docker run -d -c 512 someimage $ docker run -m 512m someimage
3. BREAKOUT dan akses ke Host:
Jangan lupa untuk mematikan INTER-CONTAINER COMMUNICATION, karena settingan default nya ini enabled.
$ docker -d –icc=false –iptables
4. POISONED IMAGES
Untuk mempertahankan diri poisoned images (misalnya gambar yang di injeksi), Kamu harus memverifikasi hal tersebut. Karena kamu perlu memastikan bahwa gambar itu terpercaya dan signed.
Contoh:
$ docker pull [email protected]:a25306f3850e1bd44541976aa7b5fd0a29be (succeed if the image is signed)
Aktifkan konten trust ini di bash shell:
export DOCKER_CONTENT_TRUST=1
5. Sandi Database dan pencurian data:
Untuk mencegah penyerang mengambil kendali dan mendapatkan akses, kamu harus mengikuti langkah-langkah ini:
- Membuat Filesystem Read-Only dengan menetapkan CONTAINER FILE SYSTEM TO READ-ONLY:
$ docker run –read-only debian touch x
- Jangan menjalankan Docker sebagai root dan set menjadi User:
RUN groupadd -r user && useradd -r -g user user USER user
- Yang terakhir, jangan menggunakan environment variabel untuk berbagi rahasia. Dan jangan menjalankan kontainer dengan privileged FLAG.