Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
kubesec — تحليل المخاطر الأمنية لموارد Kubernetes | Kitploit
أدوات/GitHubGitHub/controlplaneio/kubesec
أمن البنية التحتية السحابيةأدوات دفاعيةالتحليل الثابتأمن الحاوياتتدقيق التكوينأمن السحابةDevSecOpsسوء التكوين
GitHubcontrolplaneio/kubesec

kubesec

تحليل المخاطر الأمنية لموارد Kubernetes

عرض المستودع
1.5k108منذ شهر واحدتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني

Kubesec

Testing Workflow Security Analysis Workflow Release Workflow

Go Report Card PkgGoDev

🚨 واجهة برمجة التطبيقات v1 قديمة، يرجى قراءة ملاحظات الإصدار 🚨

تحليل مخاطر الأمان لموارد Kubernetes

🎬 عرض توضيحي

عرض Kubesec CLI

لمزيد من الأمثلة، قم بزيارة Kubesec.io، الذي يستخدم واجهة برمجة التطبيقات المستضافة من ControlPlane على v2.kubesec.io/scan.


  • بدء سريع
  • تنزيل Kubesec
  • أمثلة الاستخدام
    • المسح
      • استخدام Docker
      • تنسيقات الإخراج
    • طباعة القواعد
    • المخططات المخصصة
  • وضع خادم HTTP
  • Kubesec كخدمة
  • المساهمة
  • الحصول على المساعدة
  • سجل التغييرات

🚀 بدء سريع

1. جهّز ملف البيان الخاص بك

أنشئ ملف موارد Kubernetes (على سبيل المثال، kubesec-test.yaml) لفحصه. لإجراء اختبار سريع، يمكنك حفظ ملف البيان التالي الخاص بـ Pod:

root@kitploit:~
$ cat <<EOF > kubesec-test.yaml
apiVersion: v1
kind: Pod
metadata:
  name: kubesec-demo
spec:
  containers:
  - name: kubesec-demo
    image: gcr.io/google-samples/node-hello:1.0
    securityContext:
      readOnlyRootFilesystem: true
EOF

2. نفّذ أول عملية فحص

نفّذ فحصًا على ملف البيان الخاص بك:

root@kitploit:~
# Using the local binary
kubesec scan kubesec-test.yaml

# Or using Docker
docker run -i kubesec/kubesec:v2 scan /dev/stdin < kubesec-test.yaml

# Using the local binary with a human-readable table output format
kubesec scan kubesec-test.yaml --format table

[!TIP] لعرض النتائج في جدول قابل للقراءة البشرية بدلاً من تنسيق JSON الافتراضي، استخدم علامة --format table

سيقوم kubesec بإخراج درجة أمان وتحليل مفصّل لموردك.

📦 تنزيل Kubesec

يتوفر Kubesec كـ:

  • صورة حاوية Docker على docker.io/kubesec/kubesec:v2
  • ثنائي لأنظمة Linux/MacOS/Win (احصل على أحدث إصدار)
  • وحدة تحكم القبول في Kubernetes
  • إضافة Kubectl

أو ثبّت أحدث commit من GitHub باستخدام:

Go 1.16+

root@kitploit:~
$ go install github.com/controlplaneio/kubesec/v2@latest

إصدار Go < 1.16

root@kitploit:~
$ GO111MODULE="on" go get github.com/controlplaneio/kubesec/v2

📖 أمثلة الاستخدام

المسح

افحص موارد Kubernetes من ملفات محلية أو من الإدخال القياسي.

يمكن لـ Kubesec فحص مستندات YAML متعددة في ملف إدخال واحد، أو فحص مستندات من عدة ملفات دفعة واحدة، طالما كانت منسّقة بشكل صحيح كمستندات متعددة مفصولة بـ ---.

root@kitploit:~
# Scan a specific local YAML file
kubesec scan ./deployment.yaml

# Scan from standard input (JSON or YAML)
cat file.json | kubesec scan -

# Scan a rendered Helm chart
helm template -f values.yaml ./chart | kubesec scan /dev/stdin

# Scan multiple YAML documents separated by '---'
{ cat test/asset/multi.yml; echo "---"; cat test/asset/critical.yml; } | kubesec scan -

استخدام Docker

يمكنك تشغيل أوامر الفحص نفسها باستخدام صورة Docker الرسمية:

root@kitploit:~
# Scan a file via Docker using standard input
docker run -i kubesec/kubesec:v2 scan /dev/stdin < kubesec-test.yaml

تنسيقات الإخراج

يدعم Kubesec ثلاثة تنسيقات إخراج مختلفة، يتم تحديدها عبر علامة --format / -f: json (الافتراضي)، table، وtemplate، ويمكنه فحص مستندات YAML متعددة في ملف إدخال واحد.

root@kitploit:~
# JSON array output (default behaviour)
kubesec scan ./deployment.yaml --format json

# Human-readable table output
kubesec scan ./deployment.yaml --format table

# Use a custom template for the output
kubesec scan ./deployment.yaml --format template --template report-template.tmpl

فحص قواعد محددة

root@kitploit:~
# One rule
kubesec scan --rules CapSysAdmin kubesec-test.yaml

# Multiple rules
kubesec scan --rules RunAsNonRoot,SeccompAny,ApparmorAny kubesec-test.yaml
مثال على إخراج JSON
root@kitploit:~
[
  {
    "object": "Pod/security-context-demo.default",
    "valid": true,
    "message": "Failed with a score of -30 points",
    "score": -30,
    "scoring": {
      "critical": [
        {
          "selector": "containers[] .securityContext .capabilities .add == SYS_ADMIN",
          "reason": "CAP_SYS_ADMIN is the most privileged capability and should always be avoided",
          "points": -30
        }
      ],
      "advise": [
        {
          "selector": "containers[] .securityContext .runAsNonRoot == true",
          "reason": "Force the running image to run as a non-root user to ensure least privilege",
          "points": 1
        },
        {
          // ...
        }
      ]
    }
  }
]
مثال على إخراج جدول

مخرجات الجدول

طباعة القواعد

root@kitploit:~
# Print all scanning rules with their associated point scores
kubesec print-rules

# Print all scanning rules with their associated point scores as a table
kubesec print-rules --format table

مثال على إخراج قواعد JSON

root@kitploit:~
[
  {
    "id": "AllowPrivilegeEscalation",
    "selector": "containers[] .securityContext .allowPrivilegeEscalation == true",
    "reason": "Ensure a non-root process can not gain more privileges",
    "kinds": [
      "Pod",
      "Deployment",
      "StatefulSet",
      "DaemonSet"
    ],
    "points": -7,
    "advise": 0
  },
...
]

المخططات المخصصة

يستفيد Kubesec من kubeconform (شكرًا لـ @yannh) للتحقق من صحة البيانات (manifests) التي سيتم فحصها. هذا يعني أن تحديد مواقع مخططات مختلفة يتبع القواعد كما هو موضح في README الخاص بـ kubeconform.

root@kitploit:~
# Usees the latest schema from upstream
# Schema will be fetched from: https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/master-standalone-strict/pod-v1.json
kubesec scan ./pod.yaml

# Use a specific schema version from upstream (format x.y.z with no v prefix)
# Schema will be fetched from: https://raw.githubusercontent.com/yannh/kubernetes-json-schema/master/v1.25.3-standalone-strict/pod-v1.json
kubesec scan ./pod.yaml --kubernetes-version 1.25.3

# Use a specific schema version in an airgapped environment over HTTP
# Schema will be fetched from: `https://host.server/v<version>-standalone-strict/pod-v1.json`
kubesec scan ./deployment.yaml --kubernetes-version <version> --schema-location https://host.server

# Use a specific schema version in an airgap environment with local files
# Schema will be read from: `/opt/schemas/v<version>-standalone-strict/pod-v1.json`
kubesec scan ./deployment.yaml --kubernetes-version <version> --schema-location /opt/schemas

ملاحظة: من أجل تقليل استدعاءات الشبكة الخارجية والسماح بالاستخدام في البيئات المعزولة (airgap)، تقوم صورة kubesec بتضمين المخططات. إذا كنت تبحث عن تغيير موقع المخطط، فستحتاج إلى تغيير متغيري البيئة K8S_SCHEMA_VER و SCHEMA_LOCATION في وقت التشغيل.

وضع خادم HTTP

يتضمن Kubesec خادم HTTP مدمجًا يمكنك تشغيله محليًا أو داخل حاوية لقبول طلبات الفحص عبر الشبكة.

استخدام CLI

root@kitploit:~
# Start the HTTP server in the background on port 8080
kubesec http 8080 &

# Send a file to the running server via POST
curl -sSX POST --data-binary @deployment.yaml http://localhost:8080/scan

# Stop the background local server when finished
kill %

استخدام Docker

root@kitploit:~
# Start the HTTP server using Docker
docker run -d -p 8080:8080 kubesec/kubesec:v2 http 8080

# Send a file to the running server via POST
curl -sSX POST --data-binary @deployment.yaml http://localhost:8080/scan

لا تنسَ إيقاف الخادم.

Kubesec كخدمة

يتوفر Kubesec أيضًا عبر HTTPS على v2.kubesec.io/scan.

لا ترسل YAML حساسًا إلى هذه الخدمة العامة.

تُدار الخدمة على أساس حسن النية وبذل أفضل جهد.

root@kitploit:~
# Submit a manifest directly to the hosted v2 API
curl -sSX POST --data-binary @"deployment.yaml" https://v2.kubesec.io/scan

# Parse the API output using jq to return a non-zero exit code if the score is <= 10
curl -sSX POST --data-binary @"deployment.yaml" https://v2.kubesec.io/scan | jq --exit-status '.score > 10'

# Use the "rule" query parameter to scan only specific rules (multiple supported)
curl -sSX POST --data-binary @test/asset/score-0-cap-sys-admin.yml "http://localhost:8080/scan?rule=SeccompAny&rule=ApparmorAny"

يمكنك أيضًا تعريف دالة Bash، على سبيل المثال:

root@kitploit:~
# Define a BASH function
$ kubesec ()
{
    local FILE="${1:-}";
    [[ ! -e "${FILE}" ]] && {
        echo "kubesec: ${FILE}: No such file" >&2;
        return 1
    };
    curl --silent \
      --compressed \
      --connect-timeout 5 \
      -sSX POST \
      --data-binary=@"${FILE}" \
      https://v2.kubesec.io/scan
}


# POST a Kubernetes resource to v2.kubesec.io/scan
$ kubesec ./deployment.yml

# Return non-zero status code is the score is not greater than 10
$ kubesec ./score-9-deployment.yml | jq --exit-status '.score > 10' >/dev/null
# status code 1

المساهمة

اطلع على CONTRIBUTING.md لمزيد من المعلومات.

الحصول على المساعدة

إذا كانت لديك أي أسئلة حول Kubesec وأمان Kubernetes:

  • اقرأ وثائق Kubesec
  • تواصل عبر تويتر مع @sublimino أو @controlplaneio
  • أنشئ issue

ملاحظاتك مرحّب بها دائمًا!


صُنع بكل ❤ بواسطة ControlPlane

تنزيل الأداة