Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
iac-scan-runner — आपके इन्फ्रास्ट्रक्चर एज़ कोड में सामान्य कमजोरियों की स्कैन करने वाली सेवा | Kitploit
उपकरण/GitHubGitHub/xlab-si/iac-scan-runner
क्लाउड इन्फ्रास्ट्रक्चर सुरक्षाभेद्यता स्कैनरकॉन्फ़िगरेशन ऑडिटिंगDevSecOpsAPI सुरक्षा
GitHubxlab-si/iac-scan-runner

iac-scan-runner

आपके इन्फ्रास्ट्रक्चर एज़ कोड में सामान्य कमजोरियों की स्कैन करने वाली सेवा

रिपॉजिटरी देखें
49352 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
वेबसाइट
साझा करें

IaC Scan Runner

एक सेवा जो आपके Infrastructure as Code को सामान्य कमजोरियों के लिए स्कैन करती है।

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

पहलूजानकारी
टूल नामIaC Scan Runner
डॉकर इमेजxscanner/runner
PyPI पैकेजiac-scan-runner
दस्तावेज़ीकरणdocs
हमसे संपर्क करें[email protected]

विषय सूची

  • विवरण
  • चलाना
    • डॉकर से चलाएं
    • CLI से चलाएं
    • स्रोत से चलाएं
  • लाइसेंस
  • संपर्क
  • स्वीकृति

उद्देश्य और विवरण

IaC Scan Runner एक REST API सेवा है जिसका उपयोग IaC (Infrastructure as Code) पैकेज को स्कैन करने और संभावित कमजोरियों और सुधारों को खोजने के लिए विभिन्न कोड जांच करने के लिए किया जाता है। अधिक जानकारी के लिए docs देखें।

चलाना

यह अनुभाग REST API को चलाने का तरीका बताता है।

डॉकर से चलाएं

आप सार्वजनिक xscanner/runner डॉकर इमेज का उपयोग करके REST API को इस प्रकार चला सकते हैं:

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 CLI का उपयोग करके चलाने के लिए:

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

इसके बाद आप localhost:8000 पर कॉल करके विभिन्न API एंडपॉइंट का उपयोग कर सकते हैं। आप localhost:8000/swagger या localhost:8000/redoc पर भी जा सकते हैं और वहां सभी API एंडपॉइंट का परीक्षण कर सकते हैं। इस उदाहरण में, हम API एंडपॉइंट को कॉल करने के लिए curl का उपयोग करेंगे।

  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 के काम करने के लिए फ़ाइलों को संपीड़ित आर्काइव (आमतौर पर ज़िप फ़ाइलें) होने की उम्मीद है। इस मामले में प्रतिक्रिया प्रकार 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 – चेक्स निर्देशिका में टूल-विशिष्ट क्लास जोड़ना
पहले, 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 कहा जाता है, के स्रोत कोड को संशोधित करना भी आवश्यक है। जब इस क्लास के संशोधनों की बात आती है, तो पहले टूल-विशिष्ट क्लास को आयात करना, एक नया चेक टूल-विशिष्ट क्लास इंस्टेंस बनाना और इसे def init_checks(self) के अंदर IaC चेक्स के शब्दकोश में जोड़ना आवश्यक है। A. चेक टूल क्लास आयात करना

root@kitploit:~
from iac_scan_runner.checks.tfsec import TfsecCheck

B. init_checks के अंदर चेक टूल ऑब्जेक्ट का नया इंस्टेंस बनाना

root@kitploit:~
"""Initiate predefined check objects"""
        new_tool = NewToolCheck() 

C. इसे init_checks के अंदर self.iac_checks शब्दकोश में जोड़ना

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

चरण 3 – कम्पैटिबिलिटी क्लास के अंदर कम्पैटिबिलिटी मैट्रिक्स में चेक टूल जोड़ना
दूसरी ओर, फ़ाइल src/iac_scan_runner/compatibility.py के अंदर, शब्दकोश जो कम्पैटिबिलिटी मैट्रिक्स का प्रतिनिधित्व करता है, उसे भी विस्तारित किया जाना चाहिए। दो संभावित मामले हैं: a) नई फ़ाइल प्रकार को एक कुंजी के रूप में जोड़ा जाना चाहिए, साथ में प्रासंगिक उपकरणों की सूची मान के रूप में b) मौजूदा फ़ाइल प्रकार के लिए कम्पैटिबिलिटी सूची में नया उपकरण जोड़ा जाना चाहिए।

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) को संशोधित करना है। सटीक रूप से, इसके method 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) के तहत वित्त पोषण प्राप्त हुआ है।

टूल डाउनलोड करें