Kube-Hunter لم يعد تحت التطوير النشط. إذا كنت مهتمًا بمسح مجموعات Kubernetes للضغوط المعروفة ، فإننا نوصي باستخدام Trivy. على وجه التحديد ، المسح الضوئي لتكوين تريفي في الكوبنيتس ومسح الضعف KBOM. تعرف على المزيد في مستندات Trivy.
الصيد Kube Hunter للحصول على نقاط الضعف الأمنية في مجموعات Kubernetes. تم تطوير الأداة لزيادة الوعي والرؤية لقضايا الأمن في بيئات Kubernetes. يجب ألا تدير Kube-Hunter على مجموعة Kubernetes التي لا تملكها!
Run Kube-Hunter : يتوفر Kube-Hunter كحاوية (Aquasec/Kube-Hunter) ، ونحن نقدم أيضًا موقعًا على شبكة الإنترنت في Kube-Hunter.aquasec.com حيث يمكنك التسجيل عبر الإنترنت لتلقي رمزًا يتيح لك رؤية النتائج ومشاركتها عبر الإنترنت. يمكنك أيضًا تشغيل رمز Python بنفسك كما هو موضح أدناه.
استكشاف نقاط الضعف : تتضمن قاعدة المعرفة Kube Hunter مقالات حول نقاط الضعف والقضايا القابلة للاكتشاف. عندما تقارير Kube Hunter مشكلة ، ستظهر VID (معرف الضعف) حتى تتمكن من البحث عنها في KB على https://aquasecurity.github.io/kube-hunter/
إذا كنت مهتمًا بتكامل Kube-Hunter مع مصفوفة Kubernetes ATT & CK متابعة القراءة
فيديو تجريبي Kube-Hunter
يدعم Kube-Hunter الآن التنسيق الجديد لمصفوفة Kubernetes ATT & CK. في حين أن نقاط الضعف في Kube-Hunter هي مجموعة من التقنيات الإبداعية المصممة لتقليد مهاجم في المجموعة (أو خارجها) ، يحدد Miter's ATT & CK فئات موحدة أكثر عمومية من التقنيات للقيام بذلك.
يمكنك التفكير في نقاط الضعف في Kube كخطوات صغيرة للمهاجم ، والتي تتبع مسار تقنية أكثر عمومية التي يهدف إليها. يمكن لمعظم صيادي ومواطن الضعف في Kube Hunter أن يندرجوا بشكل وثيق تحت هذه التقنيات ، ولهذا السبب انتقلنا إلى اتباع معيار المصفوفة.
بعض الضعفات التي لم نتمكن من تعيينها إلى تقنية miter ، وهي مسبوقة بالكلمة الرئيسية General
هناك ثلاث طرق مختلفة لتشغيل kube hunter ، كل منها يوفر نهجًا مختلفًا لاكتشاف نقاط الضعف في مجموعتك:
قم بتشغيل kube-hunter على أي جهاز (بما في ذلك الكمبيوتر المحمول) ، وحدد المسح البعيد وقم بإعطاء عنوان IP أو اسم المجال لمجموعة Kubernetes الخاصة بك. سيعطيك هذا عرضًا للمهاجمين لإعداد Kubernetes الخاص بك.
يمكنك تشغيل Kube-Hunter مباشرة على جهاز في المجموعة ، وتحديد خيار التحقيق في جميع واجهات الشبكة المحلية.
يمكنك أيضًا تشغيل Kube-Hunter في جراب داخل الكتلة. يشير هذا إلى مدى تعرض المجموعة الخاصة بك إذا تعرض أحد قرون التطبيق للخطر (من خلال ثغرة البرمجيات ، على سبيل المثال). ( --pod البود )
تحقق أولاً من هذه المتطلبات المسبقة .
افتراضيًا ، سيفتح Kube-Hunter جلسة تفاعلية ، حيث ستتمكن من تحديد أحد خيارات المسح التالية. يمكنك أيضًا تحديد خيار المسح يدويًا من سطر الأوامر. هذه هي خياراتك:
لتحديد الآلات البعيدة للصيد ، حدد الخيار 1 أو استخدم خيار --remote . مثال: kube-hunter --remote some.node.com
لتحديد المسح الضوئي للواجهة ، يمكنك استخدام خيار --interface (سيؤدي ذلك إلى مسح جميع واجهات شبكة الجهاز). مثال: kube-hunter --interface
لتحديد CIDR محدد للمسح ، استخدم خيار --cidr . مثال: kube-hunter --cidr 192.168.0.0/24
SET --k8s-auto-discover-nodes Flag للاستعلام عن kubernetes لجميع العقد في الكتلة ، ثم محاولة مسحها جميعًا. بشكل افتراضي ، ستستخدم التكوين داخل الكتلة للاتصال بأجهزة API Kubernetes. إذا كنت ترغب في استخدام ملف kubeconfig الصريح ، فقم بتعيين --kubeconfig /location/of/kubeconfig/file .
لاحظ أيضًا أن هذا يتم دائمًا عند استخدام -وضع --pod .
من أجل تقليد مهاجم في مراحله المبكرة ، لا يتطلب Kube-Hunter أي مصادقة للصيد.
انتحال شخصية -يمكنك تزويد Kube-Hunter برمز حساب خدمة محدد لاستخدامه عند الصيد عن طريق تمرير رمز Bearer JWT يدويًا لسر حساب الخدمة مع --service-account-token .
مثال:
$ kube-hunter --active --service-account-token eyJhbGciOiJSUzI1Ni... عند الجري مع-العلم- --pod ، يستخدم Kube-Hunter رمز حساب الخدمة المثبت داخل الجراب للمصادقة على الخدمات التي يجدها أثناء البحث.
--service-account-token الحامل تأخذ الأولوية عند التشغيل كجنةالصيد النشط هو خيار ستستغل Kube Hunter نقاط الضعف التي تجدها ، لاستكشاف المزيد من نقاط الضعف. الفرق الرئيسي بين الصيد الطبيعي والنشط هو أن البحث الطبيعي لن يغير أبدًا حالة الكتلة ، في حين أن الصيد النشط يمكن أن يقوم بعمليات تغيير الدولة على المجموعة ، والتي قد تكون ضارة .
بشكل افتراضي ، لا يقوم Kube-Hunter بصيد نشط. لتطارد مجموعة مجموعة ، استخدم العلم --active . مثال: kube-hunter --remote some.domain.com --active
يمكنك رؤية قائمة الاختبارات مع خيار --list : مثال: kube-hunter --list
لرؤية اختبارات الصيد النشطة وكذلك السلبي: kube-hunter --list --active
لرؤية فقط رسم خرائط لشبكة العقد الخاصة بك ، قم بتشغيله باستخدام خيار --mapping . مثال: kube-hunter --cidr 192.168.0.0/24 --mapping ذلك إلى إخراج جميع العقد Kube-Hunter التي وجدتها Kube.
للتحكم في التسجيل ، يمكنك تحديد مستوى السجل ، باستخدام خيار --log . مثال: kube-hunter --active --log WARNING هي:
بشكل افتراضي ، سيتم إرسال التقرير إلى stdout ، ولكن يمكنك تحديد طرق مختلفة باستخدام خيار --dispatch . مثال: kube-hunter --report json --dispatch http أساليب الإرسال المتاحة هي:
عند التشغيل كجنة في بيئة Azure أو AWS ، ستجلب Kube-Hunter شبكات فرعية من خدمة بيانات التعريف. بطبيعة الحال ، هذا يجعل عملية الاكتشاف تستغرق وقتًا أطول. إلى الشبكة الفرعية الصلبة إلى A /24 CIDR ، استخدم الخيار --quick .
يتيح الصيد المخصص للمستخدمين المتقدمين السيطرة على ما يتم تسجيل الصيادين في بداية البحث. إذا كنت تعرف ما تفعله ، فقد يساعد ذلك إذا كنت ترغب في ضبط عملية الصيد والاكتشاف الخاصة بـ Kube-Hunter لاحتياجاتك.
مثال:
kube-hunter --custom <HunterName1> <HunterName2>
إن تمكين الصيد المخصص يزيل جميع الصيادين من عملية الصيد ، باستثناء الصيادين المعينين في القائمة البيضاء.
يقرأ العلم --custom العلم قائمة بأسماء فئات الصيادين ، من أجل عرض جميع أسماء فصول Kube-Hunter ، يمكنك الجمع بين العلم --raw-hunter-names with- --list .
مثال:
kube-hunter --active --list --raw-hunter-names
إشعار : بسبب التصميم المعماري لـ Kube-Huner ، سيتم دائمًا تسجيل "الصيادين/الفصول الأساسية" التالية (حتى عند استخدام الصيد المخصص):
هناك ثلاث طرق لنشر Kube-Hunter:
يمكنك تشغيل Kube-Hunter مباشرة على جهازك.
ستحتاج إلى التثبيت التالي:
ثَبَّتَ:
pip install kube-hunter
يجري:
kube-hunter
استنساخ المستودع:
git clone https://github.com/aquasecurity/kube-hunter.git
تثبيت تبعيات الوحدة النمطية. (قد تفضل القيام بذلك في بيئة افتراضية)
cd ./kube-hunter
pip install -r requirements.txt
يجري:
python3 kube_hunter
إذا كنت ترغب في استخدام Pyinstaller/Py2Exe ، فيجب عليك تشغيل البرنامج النصي install_imports.py أولاً.
يحتفظ Aqua Security بنسخة حاوية من Kube-Hunter في aquasec/kube-hunter:aqua . تتضمن هذه الحاوية هذا الرمز المصدر ، بالإضافة إلى مكون إضافي للإبلاغ (مصدر مغلق) لتحميل النتائج في تقرير يمكن عرضه على kube-hunter.aquasec.com. يرجى ملاحظة أن تشغيل بيانات تقارير aquasec/kube-hunter وتحميل التقارير تخضع لشروط وأحكام إضافية.
يتيح لك Dockerfile في هذا المستودع إنشاء إصدار حاوية بدون مكون إضافي للإبلاغ.
إذا قمت بتشغيل حاوية Kube-Hunter مع الشبكة المضيفة ، فستكون قادرًا على التحقيق في جميع الواجهات الموجودة على المضيف:
docker run -it --rm --network host aquasec/kube-hunter
ملاحظة لـ Docker for Mac/Windows: كن على علم بأن "المضيف" لـ Docker for Mac أو Windows هو VM الذي يقوم Docker بتشغيل الحاويات داخلها. لذلك ، يتيح تحديد --network host الوصول إلى Kube-Hunter إلى واجهات الشبكة لهذا VM ، بدلاً من تلك الموجودة في جهازك. بشكل افتراضي ، يعمل Kube-Hunter في الوضع التفاعلي. يمكنك أيضًا تحديد خيار المسح مع المعلمات الموضحة أعلاه على سبيل المثال
docker run --rm aquasec/kube-hunter --cidr 192.168.0.0/24
يتيح لك هذا الخيار اكتشاف ما يمكن أن يقوم به تشغيل حاوية خبيثة/اكتشافه على المجموعة الخاصة بك. هذا يعطي منظورًا حول ما يمكن أن يفعله المهاجم إذا تمكنوا من تسوية جراب ، ربما من خلال ضعف البرمجيات. هذا قد يكشف أكثر بكثير من نقاط الضعف.
يعرّف ملف job.yaml وظيفة تعمل على تشغيل Kube-Hunter في جراب ، باستخدام إعدادات الوصول إلى POD الافتراضية Kubernetes. (قد ترغب في تعديل هذا التعريف ، على سبيل المثال لتشغيله كمستخدم غير الجذر ، أو لتشغيله في مساحة اسم مختلفة.)
kubectl create -f ./job.yamlkubectl describe job kube-hunterkubectl logs <pod name> لقراءة إرشادات المساهمة ، انقر هنا
هذا المستودع متاح بموجب ترخيص Apache 2.0.