pada ekosistem kontainer salah satu hal yang perlu dipertimbangkan adalah melindungi aplikasi/layanan dan infrastruktur. pada tulisan ini kita akan membahas terkait StackRox Kubernetes Security Platform dimana ini akan mengotomasi dan menerapkan complaiance/standar pada deployment kontainer.
StackRox merupakan salah satu produk container security yang cukup populer, mungkin selain itu ada Aquasec dll, dimana pada bulan Februari 2021 Red Hat sudah mengakuisisi StackRox dan berubah namanya menjadi Red Hat Advanced Cluster Security (RHACS).
Biasanya kalau kita membahas tentang kontainer maka biasanya berikatan dengan DevOps atau agile, dimana itu biasanya hanya memfokuskan pada kecepatan development dan deployment dengan memanfaatkan CI/CD Automation, namun kurang memperhatikan dari faktor keamanan atau dengan kata lain (DeSecOps), maka untuk mengatasi hal tersebut kita bisa memanfaatkan tools container security seperti StackRox (RHACS) dimana fungsinya lumayan banyak seperti :
- Visibility
- Vulnerability Management
- Compliance
- Network Segmentation
- Risk Profiling
- Configuration Management
- Threat Detection
- Incident Response
namun pada tulisan ini saya akan memfokuskan hanya pada instalasi RHACS diatas Openshift 4.8 mengunakan operator, mungkin nanti lebih detailnya akan saya bahas dilain waktu.
Aristektur RHACS/StackRox
Pada gambar diatas merupakan arsitektur di arsitektur dari stackrox, dimana lebih detailnya seperti dibawah ini
Central
Komponen utama pada StackRox merupakan Central dan ini akan diinstall sebagai deployment di kubernetes. Central akan menangani persisten data, interaksi API (API Server) dan akses ke UI. Kita bisa mengunakan instance Central yang sama untuk multi kluster kubernetes / openshift.
Sensor
Pada StackRox terdapaat komponen Sensor untuk monitor kubernetes/openshift cluster. Sensor akan mengangani interaksi dengan API Kubernetes untuk policy detection dan enforcement serta berkoordinasi dengan Collector
Scanner
Stackrox memasukan komponen scanning image vulnerability dengan nama Scanner. ini akan menganalisa semua layer pada image dan memastikan untuk vulnerability yang diketahui berdasarkan dari list Common Vulnerabilities and Exposures (CVEs).
Coolector
Collector berfungsi untuk mengumpulkan dan memonitor informasi terkait container runtime dan aktifitas network.
Admission Controller
pada Admission Controller mencegah user untuk membuat workload yang tidak sesuai dengan aturan pada StackRox
RESOURCE REQUIREMENT
Central layanan berbentuk single container yg menangani data persistent, interaksi API, akses UI dan fungsi lainnnya. hanya Central yang mengunakan persisten storage.
Berikut requirement persisten storage pada Centra:
- Persistent volume claim (pvc) atau hostPath
- sangat direkomendasi mengunakan SSD untuk mendapatkan performance yang baik, tapi bisa mengunakan jenis storage yang lain jika tidak memiliki SSD
Sesuaikan spesifikasi resource berdasarkan jumlah node yg kita miliki seperti dibwah ini:
Sensor berfungsi untuk memonitor kubernetes dan openshift cluster. service ini akan dideploy dalam bentuk single deployment dengan spek seperti dibawah ini:
Admission Controller secara default akan direplica menjadi 3 pod dengan spek seperti ini:
Per-Node Service (Collector) akan mengirimkan setiap informasi pada setiap node, dimana collector akan di deploy dalam bentuk daemonset, dengan spek seperti ini:
Selain itu pada Collector terdapat fungsi untuk mengambil data compliance, dengan spek seperti ini:
INSTALASI STACKROX (RHACS) MENGUNAKAN OPERATOR
Pada operator Advance Cluster Security terdapat 2 custom resource:
- Central
Pada custom resource ini terdapat Central dan Scanner
- SecuredCluster
Pada custom resource ini terdapat 3 bagian Sensor, Collector dan Admission Control
Akses Openshift Web Console > OperatorHub > pilih RHACS
kemudian pilih install pada Advanced Cluster Security operator.
secara default operator Advanced Cluster Security akan diinstall pada project openshift-operators, jika instalasi selesai, pilih installed operators
secara default, pada operator ini terdapat 2 custom resource, nantinya kita akan menginstall 2 custom resource tersebut namun disarankan diinstall di project lain (sebagai contoh project stackrox), dimana untuk central, hanya diinstall pada salah satu cluster saja, sedangkan untuk secure cluster wajib diinstall pada semua cluster yang ingin dimonitor
buat project stackrox home > project > create project
create instance pada central didalam operator tersebut pada project stackrox
kemudian verifikasi instance central, pastikan pod central dan scanner sudah terbentuk nantinya pada bagian ini membutuhkan pvc untuk central
untuk verifikasi masuk kedalam instance central stackrox-central-services, kemudian jalankan perinta pada admin credential info untuk mendapatkan password
kemudian akses dashboard stackrox dengan melihat route
Instal Secured Cluster
ini harus diinstal pada semua cluster yang ingin di monitor oleh stackrox, pada saat install securedcluster, namun sebelum install securedcluster kita perlu membuat init bundle secret pada dashboard stackrox Platform Configuration > Cluster > Manage Token > Cluster init Bundle
kemudian pilih new integration dan isikan namanya menjadi example-cluster, setelah itu download kubernetes secret, kemudian secret tersebut jalankan didalam project stackrox
kemudian jalankan secret diatas dengan perintah oc
1 |
oc create -f example-cluster-init-secret.yaml -n stackrox |
Seteleah menjalankan secret, maka tahap selanjutnya adalah install instance securedcluster seperti dibawah ini
untuk verifikasi, pastikan semua pod running (sensor, admission control dan collector)
untuk verifikasi memastikan fungsi stackrox sudah sesuai dengan fungsinya kita perlu deploy sampel apps
1 2 3 |
kubectl create ns test kubectl run shell --labels=app=shellshock,team=test-team --image=vulnerables/cve-2014-6271 -n test kubectl run samba --labels=app=rce --image=vulnerables/cve-2017-7494 -n test |
nantinya stackrox akan melakukan scan terhadap deployment yang sudah dijalankan untuk memastikan ada security risk atau tidak, berikut adalah info hasil scan dari stackrox
Ref:
- https://help.stackrox.com/docs/get-started/quick-start-openshift/
System Engineer
Komentar