Kube-Hunter - البحث عن نقاط الضعف الأمنية في مجموعات Kubernetes


يبحث Kube-hunter عن نقاط الضعف الأمنية في مجموعات Kubernetes. تم تطوير الأداة لزيادة الوعي والرؤية للقضايا الأمنية في بيئات Kubernetes. يجب عدم تشغيل kube-hunter على مجموعة Kubernetes التي لا تملكها!
تشغيل kube-hunter : يتوفر kube-hunter كحاوية (aquasec / kube-hunter) ، كما نوفر موقعًا على الويب في kube-hunter.aquasec.com حيث يمكنك التسجيل عبر الإنترنت للحصول على رمز مميز يتيح لك مشاهدة المحتوى ومشاركته النتائج على الانترنت. يمكنك أيضًا تشغيل شفرة Python بنفسك كما هو موضح أدناه.
ساهم في : نحن نرحب بالمساهمات ، لا سيما وحدات الصياد الجديدة التي تجري اختبارات إضافية. إذا كنت ترغب في تطوير وحداتك الخاصة ، فالرجاء قراءة الإرشادات الخاصة بتطوير أول وحدة من برامج kube-hunter .

الصيد

أين يمكنني تشغيل kube-hunter؟
قم بتشغيل kube-hunter على أي جهاز (بما في ذلك الكمبيوتر المحمول) ، وحدد المسح عن بعد ثم قم بإعطاء عنوان IP أو اسم المجال الخاص بك لمجموعة Kubernetes. سيعطيك هذا عرضًا مهاجمًا للعيان من إعداد Kubernetes.
يمكنك تشغيل kube-hunter مباشرةً على جهاز في المجموعة ، وتحديد خيار فحص جميع واجهات الشبكة المحلية.
يمكنك أيضا تشغيل kube-hunter في جراب داخل الكتلة. هذا يعطي مؤشرا على كيفية تعرض الكتلة الخاصة بك في حالة اختراق أحد تطبيقات قرتك (من خلال ثغرة البرامج ، على سبيل المثال).

خيارات المسح
بشكل افتراضي ، سيفتح kube-hunter جلسة تفاعلية ، حيث ستتمكن من اختيار أحد خيارات الفحص التالية. يمكنك أيضًا تحديد خيار الفحص يدويًا من سطر الأوامر. هذه هي خياراتك:
  1. المسح الضوئي عن بُعد لتحديد الأجهزة البعيدة للصيد ، حدد الخيار 1 أو استخدم خيار --remote . مثال: ./kube-hunter.py --remote some.node.com
  2. الفحص الداخلي لتحديد المسح الداخلي ، يمكنك استخدام - الخيار --internal . (سيؤدي ذلك إلى فحص جميع واجهات شبكة الجهاز) مثال: ./kube-hunter.py --internal
  3. مسح الشبكة لتحديد CIDR معين للمسح ، استخدم الخيار --cidr . مثال: ./kube-hunter.py --cidr 192.168.0.0/24

صيد نشط
الصيد النشط هو الخيار الذي يستغل فيه kube-hunter نقاط الضعف التي يجدها ، من أجل استكشاف المزيد من نقاط الضعف. والفرق الرئيسي بين الصيد الطبيعي والصيد النشط هو أن الصيد العادي لن يغير حالة الكتلة ، بينما يمكن للصيد النشط أن يقوم بعمليات تغيير الحالة على الكتلة ، والتي قد تكون ضارة .
بشكل افتراضي ، لا يقوم kube-hunter بالصيد النشط. لصيد كتلة ، استخدم علامة - --active . مثال: ./kube-hunter.py --remote some.domain.com --active

قائمة الاختبارات
يمكنك الاطلاع على قائمة الاختبارات باستخدام خيار ./kube-hunter.py --list : مثال: ./kube-hunter.py --list
لرؤية اختبارات الصيد النشطة وكذلك السلبية: ./kube-hunter.py --list --active

انتاج |
للتحكم في التسجيل ، يمكنك تحديد مستوى السجل ، باستخدام الخيار --log . مثال: ./kube-hunter.py --active --log WARNING مستويات السجل المتوفرة هي:
  • DEBUG
  • INFO (افتراضي)
  • تحذير
لمشاهدة تعيين شبكة العقد فقط ، قم بتشغيل باستخدام - خيار --mapping . مثال: ./kube-hunter.py --cidr 192.168.0.0/24 --mapping هذا ./kube-hunter.py --cidr 192.168.0.0/24 --mapping كل عقدة Kubernetes kube-hunter.

نشر
هناك ثلاث طرق لنشر kube-hunter:

على الجهاز
يمكنك تشغيل رمز python kube-hunter مباشرةً على جهازك.

المتطلبات الأساسية
سوف تحتاج إلى تثبيت التالي:
  • الثعبان 2.7
  • بذرة
استنساخ المستودع:
 git clone [email protected]:aquasecurity/kube-hunter.git 
تثبيت تبعيات الوحدة النمطية:
 cd ./kube-hunter 
 pip install -r requirements.txt 
 
 In the case where you have python 3.x in the path as your default, and python2 refers to a python 2.7 executable, use "python2 -m pip install -r requirements.txt" 
Run: ./kube-hunter.py

حاوية
تحتفظ أكوا aquasec/kube-hunter بنسخة من حاويات kube-hunter في aquasec/kube-hunter . تتضمن هذه الحاوية هذا الكود المصدري ، بالإضافة إلى ملحق إضافي لإعداد التقارير (مصدر مغلق) لتحميل النتائج في تقرير يمكن مشاهدته على الموقع kube-hunter.aquasec.com . يرجى ملاحظة أن تشغيل aquasec/kube-hunter وتحميل التقارير تخضع لشروط وأحكام إضافية.
يتيح لك Dockerfile في هذا المستودع إنشاء إصدار حاوي بدون مكون إعداد التقارير.
إذا قمت بتشغيل حاوية kube-hunter مع الشبكة المضيفة ، فستتمكن من فحص جميع الواجهات على المضيف:
docker run -it --rm --network host aquasec/kube-hunter
ملاحظة لـ Docker لـ Mac / Windows: يجب أن تدرك أن "المضيف" لـ Docker لـ Mac أو Windows هو VM الذي يقوم Docker بتشغيل حاويات به . وبالتالي ، فإن تحديد --network host يسمح --network host kube-hunter بالوصول إلى واجهات الشبكة الخاصة بـ VM ، بدلاً من تلك الخاصة بجهازك. بشكل افتراضي ، يتم تشغيل kube-hunter في الوضع التفاعلي. يمكنك أيضًا تحديد خيار المسح الضوئي باستخدام المعلمات الموضحة أعلاه على سبيل المثال
docker run --rm aquasec/kube-hunter --cidr 192.168.0.0/24

جراب
يتيح لك هذا الخيار اكتشاف ما تقوم به حاوية خبيثة / اكتشافه على نظام المجموعة. وهذا يعطي منظوراً عما يمكن أن يفعله المهاجم إذا تمكن من اختراق حجرة ، ربما من خلال ثغرة في البرنامج. هذا قد يكشف المزيد من نقاط الضعف بشكل ملحوظ.
يحدد ملف job.yaml مهمة تقوم بتشغيل kube-hunter في جراب ، وذلك باستخدام إعدادات KDPnetes pod access الافتراضية.
  • قم بتشغيل المهمة باستخدام kubectl create ملف yaml هذا.
  • العثور على اسم جراب مع kubectl describe job kube-hunter
  • عرض نتائج الاختبار مع kubectl logs <pod name>



Commentaires

Posts les plus consultés de ce blog