Kube-Hunter tidak lagi dalam pengembangan aktif. Jika Anda tertarik untuk memindai cluster Kubernetes untuk kerentanan yang diketahui, kami sarankan untuk menggunakan Trivy. Secara khusus, pemindaian kesalahan konfigurasi Kubernetes Trivy dan pemindaian kerentanan KBOM. Pelajari lebih lanjut di Dokumen Trivy.
Kube-Hunter Hunts for Security Weaknesses di kluster Kubernetes. Alat ini dikembangkan untuk meningkatkan kesadaran dan visibilitas untuk masalah keamanan di lingkungan Kubernetes. Anda tidak boleh menjalankan Kube-Hunter pada kluster Kubernetes yang tidak Anda miliki!
Jalankan Kube-Hunter : Kube-Hunter tersedia sebagai wadah (Aquasec/Kube-Hunter), dan kami juga menawarkan situs web di Kube-hunter.aquasec.com di mana Anda dapat mendaftar secara online untuk menerima token yang memungkinkan Anda melihat dan membagikan hasilnya secara online. Anda juga dapat menjalankan kode Python sendiri seperti yang dijelaskan di bawah ini.
Jelajahi Kerentanan : Basis Pengetahuan Kube-Hunter mencakup artikel tentang kerentanan dan masalah yang dapat ditemukan. Ketika Kube-Hunter melaporkan masalah, itu akan menunjukkan vid-nya (ID kerentanan) sehingga Anda dapat mencarinya di KB di https://aquasecurity.github.io/kube-hunter/
Jika Anda tertarik dengan integrasi Kube-Hunter dengan Kubernetes Att & CK Matrix Lanjutkan Membaca
Video demo pemburu Kube
Kube-Hunter sekarang mendukung format baru Kubernetes Att & CK Matrix. Sementara kerentanan Kube-Hunter adalah kumpulan teknik kreatif yang dirancang untuk meniru penyerang di kluster (atau di luarnya) Mitre's ATT & CK mendefinisikan kategori teknik standar yang lebih umum untuk melakukannya.
Anda dapat menganggap kerentanan pemburu-Kube sebagai langkah kecil untuk penyerang, yang mengikuti jejak teknik yang lebih umum yang akan ia tuju. Sebagian besar pemburu dan kerentanan Kube-Hunter dapat dengan dekat berada di bawah teknik-teknik itu, itulah sebabnya kami pindah untuk mengikuti standar matriks.
Beberapa kerentanan pemburu-kube yang tidak dapat kami petakan ke teknik mitra, diawali dengan kata kunci General 
Ada tiga cara berbeda untuk menjalankan Kube-Hunter, masing-masing memberikan pendekatan yang berbeda untuk mendeteksi kelemahan di cluster Anda:
Jalankan Kube-Hunter di mesin apa pun (termasuk laptop Anda), pilih pemindaian jarak jauh dan berikan alamat IP atau nama domain dari cluster Kubernetes Anda. Ini akan memberi Anda pandangan penyerang tentang pengaturan Kubernetes Anda.
Anda dapat menjalankan Kube-Hunter langsung pada mesin di cluster, dan memilih opsi untuk menyelidiki semua antarmuka jaringan lokal.
Anda juga dapat menjalankan Kube-Hunter di pod di dalam cluster. Ini menunjukkan seberapa terbuka cluster Anda jika salah satu pod aplikasi Anda terganggu (melalui kerentanan perangkat lunak, misalnya). ( --pod )
Pertama-tama periksa prasyarat ini.
Secara default, Kube-Hunter akan membuka sesi interaktif, di mana Anda akan dapat memilih salah satu opsi pemindaian berikut. Anda juga dapat menentukan opsi pemindaian secara manual dari baris perintah. Ini adalah pilihan Anda:
Untuk menentukan mesin jarak jauh untuk berburu, pilih Opsi 1 atau gunakan opsi --remote . Contoh: kube-hunter --remote some.node.com
Untuk menentukan pemindaian antarmuka, Anda dapat menggunakan opsi --interface (ini akan memindai semua antarmuka jaringan mesin). Contoh: kube-hunter --interface
Untuk menentukan CIDR spesifik untuk memindai, gunakan opsi --cidr . Contoh: kube-hunter --cidr 192.168.0.0/24
Set --k8s-auto-discover-nodes Bendera untuk meminta Kubernetes untuk semua node di cluster, dan kemudian mencoba memindai semuanya. Secara default, itu akan menggunakan konfigurasi in-cluster untuk terhubung ke API Kubernetes. Jika Anda ingin menggunakan file KubeConfig eksplisit, atur --kubeconfig /location/of/kubeconfig/file .
Perhatikan juga, bahwa ini selalu dilakukan saat menggunakan mode --pod .
Untuk meniru penyerang di tahap awalnya, Kube-Hunter tidak memerlukan otentikasi untuk perburuan.
Menyamar sebagai Token Akun Layanan Kube-Hunter untuk digunakan saat berburu dengan secara manual melewati token pembawa JWT dari rahasia akuntan layanan dengan bendera --service-account-token .
Contoh:
$ kube-hunter --active --service-account-token eyJhbGciOiJSUzI1Ni... Saat berjalan dengan --pod Flag, Kube-Hunter menggunakan token akun layanan yang dipasang di dalam pod untuk mengotentikasi layanan yang ditemukannya selama perburuan.
--service-account-token menjadi prioritas saat berjalan sebagai podPerburuan aktif adalah opsi di mana Kube-Hunter akan mengeksploitasi kerentanan yang ditemukannya, untuk mengeksplorasi kerentanan lebih lanjut. Perbedaan utama antara perburuan normal dan aktif adalah bahwa perburuan normal tidak akan pernah mengubah keadaan cluster, sementara perburuan aktif berpotensi dapat melakukan operasi yang mengubah negara pada cluster, yang bisa berbahaya .
Secara default, Kube-Hunter tidak melakukan perburuan aktif. Untuk berburu acak, cluster, gunakan -bendera --active . Contoh: kube-hunter --remote some.domain.com --active
Anda dapat melihat daftar tes dengan opsi --list : Contoh: kube-hunter --list
Untuk melihat tes perburuan aktif serta pasif: kube-hunter --list --active
Untuk melihat hanya pemetaan jaringan node Anda, jalankan dengan -opsi --mapping . Contoh: kube-hunter --cidr 192.168.0.0/24 --mapping Ini akan menghasilkan semua node Kube-Hunter Kubernetes yang telah ditemukan.
Untuk mengontrol penebangan, Anda dapat menentukan level log, menggunakan opsi --log . Contoh: kube-hunter --active --log WARNING Level Log Tersedia adalah:
Secara default, laporan akan dikirim ke stdout , tetapi Anda dapat menentukan metode yang berbeda dengan menggunakan opsi --dispatch . Contoh: kube-hunter --report json --dispatch http Metode pengiriman yang tersedia adalah:
Saat berjalan sebagai pod di lingkungan Azure atau AWS , Kube-Hunter akan mengambil subnet dari instance Metadata Service. Secara alami ini membuat proses penemuan memakan waktu lebih lama. Untuk pemindaian subnet HardLimit ke A /24 CIDR, gunakan opsi --quick .
Perburuan khusus memungkinkan pengguna tingkat lanjut untuk memiliki kendali atas apa yang akan didaftarkan oleh pemburu pada awal perburuan. Jika Anda tahu apa yang Anda lakukan , ini dapat membantu jika Anda ingin menyesuaikan proses perburuan dan penemuan Kube-Hunter untuk kebutuhan Anda.
Contoh:
kube-hunter --custom <HunterName1> <HunterName2>
Mengaktifkan Perburuan Kustom Menghapus semua pemburu dari proses perburuan, kecuali para pemburu daftar putih yang diberikan.
Bendera --custom membaca daftar nama kelas pemburu, untuk melihat semua nama kelas Kube-Hunter, Anda dapat menggabungkan bendera --raw-hunter-names dengan bendera --list .
Contoh:
kube-hunter --active --list --raw-hunter-names
PEMBERITAHUAN : Karena desain arsitektur Kube-Huner, "pemburu inti/kelas" berikut akan selalu mendaftar (bahkan saat menggunakan perburuan khusus):
Ada tiga metode untuk menggunakan Kube-Hunter:
Anda dapat menjalankan Kube-Hunter langsung di mesin Anda.
Anda akan membutuhkan yang diinstal berikut:
Memasang:
pip install kube-hunter
Berlari:
kube-hunter
Klon Repositori:
git clone https://github.com/aquasecurity/kube-hunter.git
Pasang dependensi modul. (Anda mungkin lebih suka melakukan ini dalam lingkungan virtual)
cd ./kube-hunter
pip install -r requirements.txt
Berlari:
python3 kube_hunter
Jika Anda ingin menggunakan pyinstaller/py2exe, Anda harus terlebih dahulu menjalankan skrip install_imports.py.
Aqua Security memelihara versi Kube-Hunter di aquasec/kube-hunter:aqua . Wadah ini mencakup kode sumber ini, ditambah plugin pelaporan tambahan (sumber tertutup) untuk mengunggah hasil ke dalam laporan yang dapat dilihat di Kube-hunter.aquasec.com. Harap dicatat, bahwa menjalankan wadah aquasec/kube-hunter dan mengunggah data laporan tunduk pada syarat dan ketentuan tambahan.
DockerFile di repositori ini memungkinkan Anda untuk membangun versi yang dikemas tanpa plugin pelaporan.
Jika Anda menjalankan wadah Kube-Hunter dengan jaringan host, itu akan dapat menyelidiki semua antarmuka pada host:
docker run -it --rm --network host aquasec/kube-hunter
Catatan untuk Docker untuk Mac/Windows: Perhatikan bahwa "host" untuk Docker untuk Mac atau Windows adalah VM yang Docker menjalankan wadah di dalamnya. Oleh karena itu menentukan --network host memungkinkan akses Kube-Hunter ke antarmuka jaringan VM itu, daripada mesin Anda. Secara default, Kube-Hunter berjalan dalam mode interaktif. Anda juga dapat menentukan opsi pemindaian dengan parameter yang dijelaskan di atas misalnya
docker run --rm aquasec/kube-hunter --cidr 192.168.0.0/24
Opsi ini memungkinkan Anda menemukan apa yang menjalankan wadah jahat yang dapat dilakukan/ditemukan di cluster Anda. Ini memberikan perspektif tentang apa yang bisa dilakukan penyerang jika mereka mampu mengkompromikan pod, mungkin melalui kerentanan perangkat lunak. Ini mungkin mengungkapkan lebih banyak kerentanan.
File Contoh job.yaml mendefinisikan pekerjaan yang akan menjalankan Kube-Hunter di pod, menggunakan pengaturan akses pod Kubernetes default. (Anda mungkin ingin memodifikasi definisi ini, misalnya untuk dijalankan sebagai pengguna non-root, atau berjalan di namespace yang berbeda.)
kubectl create -f ./job.yamlkubectl describe job kube-hunterkubectl logs <pod name> Untuk membaca pedoman kontribusi, klik di sini
Repositori ini tersedia di bawah Lisensi Apache 2.0.