Falco adalah alat keamanan runtime open source yang dapat membantu Anda mengamankan berbagai lingkungan. Sysdig membuatnya dan telah menjadi proyek CNCF sejak 2018. Falco membaca log kernel Linux waktu nyata, log kontainer, log Kubernetes, dll. Terhadap mesin aturan yang kuat untuk memperingatkan pengguna tentang perilaku jahat.
Ini sangat berguna untuk keamanan kontainer - terutama jika Anda menggunakan Kubernetes untuk menjalankannya - dan sekarang secara de facto menjadi mesin pendeteksi ancaman Kubernetes. Ini menyerap log audit Kubernetes API untuk deteksi ancaman waktu proses dan untuk memahami perilaku aplikasi.
Ini juga membantu tim memahami siapa yang melakukan apa di cluster, karena dapat berintegrasi dengan Webhooks untuk meningkatkan peringatan dalam sistem tiket atau mesin kolaborasi seperti Slack.
Falco bekerja dengan menggunakan aturan deteksi yang menentukan perilaku tak terduga. Meskipun dilengkapi dengan aturan defaultnya sendiri yang berguna, Anda dapat memperluasnya untuk menentukan aturan kustom guna memperkuat cluster Anda lebih lanjut.
Nah, beberapa hal yang bisa dideteksi Falco adalah sebagai berikut:
- Pembukaan sesi shell dari penampung
- Pemasangan volume jalur host
- Membaca file rahasia dan sensitif seperti
/etc/shadow - Penginstalan paket baru di container yang sedang berjalan
- Proses baru muncul dari penampung yang bukan bagian dari CMD
- Pembukaan port baru atau koneksi jaringan yang tidak terduga
- Membuat penampung dengan hak istimewa
- dan banyak lagi…
Semua fitur ini membuatnya sangat berguna untuk mengurangi pemahaman tentang apakah Anda memiliki keamanan yang sesuai dan lebih banyak lagi untuk memastikan Anda tahu ketika ada potensi pelanggaran sehingga Anda dapat menghentikannya sebelum sesuatu yang buruk terjadi. Oleh karena itu, Falco melengkapi langkah-langkah keamanan native Kubernetes yang sudah ada seperti RBAC dan Kebijakan Keamanan Pod yang membantu mencegah masalah daripada mendeteksinya.
Ada banyak cara untuk menjalankan Falco dalam klaster Kubernetes. Anda dapat menginstal Falco di setiap node Kubernetes, memanggang Falco sebagai container kedua di pod, atau Anda dapat menggunakan Daemon Set untuk memasukkan pod Falco di dalamnya.
Menggunakan DaemonSet adalah opsi yang lebih baik dan lebih fleksibel, karena memerlukan sedikit perubahan dalam fungsi Dev dan juga tidak mengurangi fungsi Ops seperti yang diperlukan oleh opsi pertama. Juga, ini adalah asli Kubernetes, jadi ini adalah cara yang lebih disukai.
Going Hands-On
Sekarang mari kita lanjutkan dan lihat Falco beraksi. Untuk prasyarat, Anda memerlukan cluster Kubernetes yang sedang berjalan.
Pasang Helm
Helm adalah pengelola paket untuk Kubernetes, dan akan sangat membantu jika Anda telah menginstalnya. Kita akan menginstal Falco menggunakan diagram Helm, jadi kita perlu menginstal Helm terlebih dahulu di cluster kita. Abaikan langkah di bawah ini jika Anda telah menginstal Helm di cluster Anda.
Memasang Helm itu sederhana. Unduh paket terbaru untuk OS Anda, urungkan, dan pindahkan ke jalur Anda:
wget https://get.helm.sh/helm-v3.3.4-linux-amd64.tar.gz
tar -xvf helm-v3.3.4-linux-amd64.tar.gz
chmod + x linux-amd64 / helm
mv linux -amd64 / helm / usr / local / bin /Pasang Falco
Sekarang mari instal Falco menggunakan grafik Helm resmi.
Tambahkan falcosecurity repo Helm terlebih dahulu dan perbarui repo:
$ helm repo add falcosecurity https://falcosecurity.github.io/charts
"falcosecurity" telah ditambahkan ke repositori Anda
$ helm repo update
Tunggu sebentar sementara kami mengambil yang terbaru dari repositori bagan Anda ...
... Berhasil mendapat pembaruan dari repositori bagan "falcosecurity"
Pembaruan Selesai. ⎈Selamat Membantu! ⎈Sekarang, mari instal Falco menggunakan bagan Helm:
$ helm install falco falcosecurity / falco
NAMA: falco
TERAKHIR DEPLOYED: Jum 16 Okt 07:06:24 2020
NAMESPACE: default
STATUS: diterapkan
REVISI: 1
TEST SUITE: Tidak ada
CATATAN:
Agen Falco berputar di setiap node di cluster Anda. Setelah beberapa
detik, mereka akan mulai memantau penampung Anda untuk mencari
masalah keamanan.Tidak ada tindakan lebih lanjut yang diperlukan.
Helm memutar Falco DaemonSet, dan kita akan melihat pod Falco di setiap node. Mari kita cari tahu polongnya:
$ kubectl dapatkan pod -o lebar
NAMA READY STATUS RESTARTS USIA NODE
falco-cgvxc 1/1 Berjalan 0 6m53s kind-control-plane
falco-f9526 1/1 Berjalan 0 6m53s kind-worker2
falco-rx2gj 1/1 Running 0 6m53s kind- pekerjaSelamat! Kami telah berhasil menginstal Falco dan berjalan di semua node.
Menguji
Waktunya untuk beberapa pengujian! Kami akan membuat pod NGINX dan mencoba melakukan beberapa aktivitas yang biasanya tidak kami lakukan.
Buat pod NGINX:
kubectl jalankan nginx --image = nginxSekarang mari kita lihat pod untuk melihat node mana yang telah diluncurkan:
kubectl dapatkan pod nginx -o wide
NAMA READY STATUS RESTARTS AGE NODE
nginx 1/1 Berjalan 0 2m kind-workerSeperti yang kita ketahui, pod NGINX ada di node kind-worker. Pod Falco yang sesuai adalah falco-rx2gj.
Mari buka jendela duplikat dan lakukan hal berikut di jendela kiri sambil mengikuti log kontainer Falco menggunakan kubectl logs falco-rx2gj di jendela kanan:
- Luncurkan shell di container NGINX.
- Cat file sensitif
/etc/shadow. - Keluar dari shell.

Seperti yang Anda lihat, log muncul di jendela sebelah kanan setiap kali kami melakukan aktivitas yang berpotensi melanggar keamanan.
Anda juga dapat mengekspor log ini ke alat pemantauan seperti Prometheus atau Grafana, dan Anda juga dapat memicu webhook ke Slack untuk pemberitahuan langsung.
Kesimpulan
Falco adalah alat keamanan runtime yang lazim untuk Kubernetes, dan saya merekomendasikan untuk menggunakannya di semua lingkungan - terutama produksi. Fitur yang berguna adalah Anda juga dapat mengubah aturan agar sesuai dengan kebutuhan Anda, dan oleh karena itu, Anda dapat menyelamatkan diri dari banyak peringatan palsu.
Terima kasih sudah membaca! Saya harap Anda menikmati artikelnya!
