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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
iac-scan-runner — خدمة تقوم بفحص Infrastructure as Code الخاص بك بحثًا عن الثغرات الأمنية الشائعة | Kitploit
أدوات/GitHubGitHub/xlab-si/iac-scan-runner
أمن البنية التحتية السحابيةماسحات الثغرات الأمنيةتدقيق التكوينDevSecOpsأمن واجهات برمجة التطبيقات
GitHubxlab-si/iac-scan-runner

iac-scan-runner

خدمة تقوم بفحص Infrastructure as Code الخاص بك بحثًا عن الثغرات الأمنية الشائعة

عرض المستودع
4935منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

IaC Scan Runner

خدمة تقوم بفحص البنية التحتية كرمز (Infrastructure as Code) لديك بحثًا عن الثغرات الشائعة.

GitHub Workflow Status Docker Image Version (latest by date) PyPI Test PyPI

الجانبالمعلومات
اسم الأداةIaC Scan Runner
صورة Dockerxscanner/runner
حزمة PyPIiac-scan-runner
التوثيقdocs
اتصل بنا[email protected]

Table of Contents

  • الوصف
  • التشغيل
    • التشغيل باستخدام Docker
    • التشغيل من واجهة الأوامر
    • التشغيل من المصدر
  • الترخيص
  • الاتصال
  • الإقرار

الغرض والوصف

IaC Scan Runner هي خدمة REST API تُستخدم لفحص حزمة IaC (البنية التحتية كرمز) وإجراء فحوصات متنوعة للكود من أجل العثور على الثغرات والتحسينات المحتملة. استكشف docs لمزيد من المعلومات.

التشغيل

يشرح هذا القسم كيفية تشغيل REST API.

التشغيل باستخدام Docker

يمكنك تشغيل REST API باستخدام صورة Docker العامة xscanner/runner كما يلي:

root@kitploit:~
# run IaC Scan Runner REST API in a Docker container and 
# navigate to localhost:8080/swagger or localhost:8080/redoc
$ docker run --name iac-scan-runner -p 8080:80 xscanner/runner

أو يمكنك بناء الصورة محليًا وتشغيلها كما يلي:

root@kitploit:~
# build Docker container (it will take some time) 
$ docker build -t iac-scan-runner .
# run IaC Scan Runner REST API in a Docker container and 
# navigate to localhost:8080/swagger or localhost:8080/redoc
$ docker run --name iac-scan-runner -p 8080:80 iac-scan-runner

التشغيل من واجهة الأوامر

لتشغيل باستخدام CLI لـ IaC Scan Runner:

root@kitploit:~
# install the CLI
$ python3 -m venv .venv && . .venv/bin/activate
(.venv) $ pip install iac-scan-runner
# print OpenAPI specification
(.venv) $ iac-scan-runner openapi
# install prerequisites
(.venv) $ iac-scan-runner install
# run IaC Scan Runner REST API
(.venv) $ iac-scan-runner run

التشغيل من المصدر

لتشغيل محليًا من المصدر:

root@kitploit:~
# Export env variables 
export MONGODB_CONNECTION_STRING=mongodb://localhost:27017
export SCAN_PERSISTENCE=enabled
export USER_MANAGEMENT=enabled

# Setup MongoDB
$ docker run --name mongodb -p 27017:27017 mongo

# install prerequisites
$ python3 -m venv .venv && . .venv/bin/activate
(.venv) $ pip install -r requirements.txt
(.venv) $ ./install-checks.sh
# run IaC Scan Runner REST API (add --reload flag to apply code changes on the way)
(.venv) $ uvicorn src.iac_scan_runner.api:app

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

سيعرض هذا الجزء أحد عمليات النشر الممكنة وأمثلة مختصرة حول كيفية استخدام استدعاءات API.

أولاً سنقوم باستنساخ مستودع iac scan runner وتشغيل API.

root@kitploit:~
$ git clone https://github.com/xlab-si/iac-scan-runner.git
$ docker compose up

بعد ذلك، يمكنك استخدام نقاط نهاية API مختلفة عن طريق الاتصال بـ localhost:8000. يمكنك أيضًا الانتقال إلى localhost:8000/swagger أو localhost:8000/redoc واختبار جميع نقاط نهاية API هناك. في هذا المثال، سنستخدم curl لاستدعاء نقاط نهاية API.

  1. لنقم بإنشاء مشروع باسم test.
root@kitploit:~
curl -X 'POST' \
  'http://0.0.0.0/project?creator_id=test' \
  -H 'accept: application/json' \
  -d ''

سيتم إرجاع معرف المشروع إلينا. في هذا المثال، معرف المشروع هو 1e7b2a91-2896-40fd-8d53-83db56088026.

  1. على سبيل المثال، لنفترض أننا نريد بدء جميع الفحوصات باستثناء ansible-lint. دعنا نعطله.
root@kitploit:~
curl -X 'PUT' \
  'http://0.0.0.0:8000/projects/1e7b2a91-2896-40fd-8d53-83db56088026/checks/ansible-lint/disable' \
  -H 'accept: application/json'
  1. الآن بعد تكوين المشروع، يمكننا ببساطة اختيار الملفات التي نريد فحصها وضغطها. لكي يعمل IaC-Scan-Runner، من المتوقع أن تكون الملفات أرشيفات مضغوطة (عادةً ملفات zip). في هذه الحالة، سيكون نوع الاستجابة json، ولكن من الممكن تغييره إلى html. يُرجى تغيير YOUR.zip إلى مسار ملفك.
root@kitploit:~
curl -X 'POST' \
  'http://0.0.0.0:8000/projects/1e7b2a91-2896-40fd-8d53-83db56088026/scan?scan_response_type=json' \
  -H 'accept: application/json' \
  -H 'Content-Type: multipart/form-data' \
  -F '[email protected];type=application/zip'

هذا كل شيء.

توسيع سير عمل الفحص بأدوات فحص جديدة

في مرحلة معينة، قد يكون من الضروري تضمين أدوات فحص جديدة في سير عمل الفحص، بهدف توفير تغطية أوسع لمعايير IaC وأنواع المشاريع. لذلك، في هذا القسم الفرعي، يتم تحديد ووصف تسلسل الخطوات المطلوبة لهذا الغرض. ومع ذلك، يجب تنفيذ الخطوات يدويًا كما سيتم وصفه، ولكن من المخطط أتمتة هذه العملية في المستقبل عبر API وتوفير واجهة سهلة الاستخدام ستساعد المستخدم أثناء استيراد الأدوات الجديدة التي ستصبح جزءًا من الكتالوج المتاح الذي يشكل سير عمل الفحص. يوضح الشكل 16 الخطوات المطلوبة التي يجب اتخاذها لتوسيع سير عمل الفحص بأداة جديدة.

الخطوة 1 – إضافة فئة خاصة بالأداة إلى دليل الفحوصات أولاً، من المطلوب إضافة فئة Python جديدة خاصة بالأداة إلى دليل الفحوصات داخل الكود المصدري لـ IaC Scan Runner: iac-scan-runner/src/iac_scan_runner/checks/new_tool.py
ترث فئة الأداة الجديدة فئة Check الموجودة، والتي توفر تعميمًا لأدوات سير عمل الفحص. علاوة على ذلك، من الضروري توفير تنفيذ للطرق التالية:

  1. def configure(self, config_filename: Optional[str], secret: Optional[SecretStr])
  2. def run(self, directory: str) بينما تهدف الأولى إلى توفير المعلمات الخاصة بالأداة اللازمة لإعدادها (مثل كلمات المرور ومعرفات العميل والرموز المميزة)، تحدد الأخرى كيفية استدعاء الأداة نفسها عبر API أو CLI وإرجاع مخرجاتها الأولية.

الخطوة 2 – إضافة نسخة فئة أداة الفحص داخل مُنشئ ScanRunner بمجرد إضافة الفئة الجديدة المشتقة من Check إلى الكود المصدري لـ IaC Scan Runner، يلزم أيضًا تعديل الكود المصدري للفئة الرئيسية المسماة ScanRunner. فيما يتعلق بتعديلات هذه الفئة، يلزم أولاً استيراد الفئة الخاصة بالأداة، ثم إنشاء نسخة جديدة من الفئة الخاصة بأداة الفحص وإضافتها إلى قاموس فحوصات IaC داخل def init_checks(self). أ. استيراد فئة أداة الفحص from iac_scan_runner.checks.tfsec import TfsecCheck ب. إنشاء نسخة جديدة من كائن أداة الفحص داخل init_checks """Initiate predefined check objects""" new_tool = NewToolCheck() ج. إضافتها إلى قاموس self.iac_checks داخل init_checks

root@kitploit:~
    self.iac_checks = {
        new_tool.name: new_tool,
        …
    }

الخطوة 3 – إضافة أداة الفحص إلى مصفوفة التوافق داخل فئة Compatibility على الجانب الآخر، داخل الملف src/iac_scan_runner/compatibility.py، يجب أيضًا توسيع القاموس الذي يمثل مصفوفة التوافق. هناك حالتان محتملتان: أ) يجب إضافة نوع ملف جديد كمفتاح، مع قائمة بالأدوات ذات الصلة كقيمة ب) يجب إضافة أداة جديدة إلى قائمة التوافق لنوع الملف الموجود.

root@kitploit:~
    compatibility_matrix = {
        "new_type": ["new_tool_1", "new_tool_2"],
        …
        "old_typeK": ["tool_1", …  "tool_N", "new_tool_3"]
    }

الخطوة 4 – توفير الدعم لتلخيص النتائج أخيرًا، الخطوة الأخيرة في تسلسل التعديلات المطلوبة لتوسيع سير عمل الفحص هي تعديل فئة ResultsSummary (src/iac_scan_runner/results_summary.py). بالضبط، يلزم إلحاق جزء من الكود بطريقة summarize_outcome الخاصة بها والتي ستبحث عن سلاسل محددة خاصة بالأداة ويمكن استخدامها لتحديد ما إذا كان الفحص قد نجح أو فشل. داخل الحلقة التي تجتاز الفحوصات المتوافقة، لكل أداة جديدة يجب تضمين هيكل if-else التالي:

root@kitploit:~
        if check == "new_tool":
            if outcome.find("Check pass string") > -1:
                self.outcomes[check]["status"] = "Passed"
                return "Passed"
            else:
                self.outcomes[check]["status"] = "Problems"
                return "Problems"

الترخيص

هذا العمل مرخص بموجب Apache License 2.0.

الاتصال

يمكنك الاتصال بفريق xOpera عن طريق إرسال بريد إلكتروني إلى [email protected].

الإقرار

تلقى هذا المشروع تمويلاً من برنامج البحث والابتكار Horizon 2020 التابع للاتحاد الأوروبي بموجب اتفاقية المنحة رقم 101000162 (PIACERE).

تنزيل الأداة