
स्वचालित सुरक्षा विश्लेषण पाइपलाइन जो GitHub रिपॉजिटरी पर CodeQL क्वेरी चलाती है और सही भेद्यता को झूठी सकारात्मकता से वर्गीकृत और फ़िल्टर करने के लिए LLM का उपयोग करती है।
Vulnhalla के पीछे के शोध और प्रेरणा के विस्तृत अवलोकन के लिए, आधिकारिक CyberArk Threat Research ब्लॉग पोस्ट देखें:
Vulnhalla: CodeQL Haystack से सही भेद्यताओं का चयन
आरंभ करने से पहले, सुनिश्चित करें कि आपके पास है:
Python 3.10 – 3.13 (Python 3.11 या 3.12 अनुशंसित)
CodeQL CLI
codeql आपके PATH में है, या आप .env में पथ सेट करेंगे (चरण 2 देखें)(वैकल्पिक) GitHub API टोकन
LLM API कुंजी
सभी कॉन्फ़िगरेशन एक ही फ़ाइल में है: .env
git clone https://github.com/cyberark/Vulnhalla
cd Vulnhalla
.env.example को .env में कॉपी करें:cp .env.example .env # macOS / Linux
Copy-Item .env.example .env # Windows (PowerShell)
.env को संपादित करें और अपने मान भरें:OpenAI के लिए उदाहरण:
CODEQL_PATH=codeql
GITHUB_TOKEN=ghp_your_token_here
PROVIDER=openai
MODEL=gpt-4o
OPENAI_API_KEY=your-api-key-here
LLM_TEMPERATURE=0.2
LLM_TOP_P=0.2
# Optional: Logging Configuration
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERROR
LOG_FILE= # Optional: path to log file (e.g., logs/vulnhalla.log)
LOG_FORMAT=default # default or json
# LOG_VERBOSE_CONSOLE=false # If true, WARNING/ERROR use full format (timestamp - logger - level - message)
📖 पूर्ण कॉन्फ़िगरेशन संदर्भ के लिए: सभी समर्थित प्रदाताओं (OpenAI, Azure, Gemini, Bedrock), आवश्यक/वैकल्पिक वेरिएबल्स, और विस्तृत उदाहरणों के लिए नीचे कॉन्फ़िगरेशन संदर्भ देखें।
Windows (PowerShell):
# List available Python versions
py -0p
# Pick any supported Python: 3.10 / 3.11 / 3.12 / 3.13
py -3.12 -m pip install --user -U pipx
py -3.12 -m pipx ensurepath
# Close and reopen terminal (required)
pipx install poetry
poetry --version
macOS / Linux:
# Check your Python version
python3 --version
# Use any supported Python: 3.10 / 3.11 / 3.12 / 3.13
python3 -m pip install --user -U pipx
python3 -m pipx ensurepath
# Restart terminal (required)
pipx install poetry
poetry --version
Windows (PowerShell):
# Pick one supported version you have: 3.10 / 3.11 / 3.12 / 3.13
poetry env use 3.12 # Force Poetry to use a supported Python version if you have multiple versions installed
poetry install
poetry run vulnhalla-setup
macOS / Linux:
# Pick one supported version you have: 3.10 / 3.11 / 3.12 / 3.13
poetry env use 3.12 # Force Poetry to use a supported Python version if you have multiple versions installed
poetry install
poetry run vulnhalla-setup
# Analyze a specific repository, for example:
poetry run vulnhalla redis/redis
# Re-download even if database already exists
poetry run vulnhalla redis/redis --force
# Show help
poetry run vulnhalla --help
यह स्वचालित रूप से:
output/results/ में सहेजेगायदि आपके पास पहले से डिस्क पर CodeQL डेटाबेस है (जैसे, मैन्युअल रूप से या पिछले रन से बनाया गया), तो आप --local / -l फ़्लैग का उपयोग करके GitHub फ़ेच चरण को छोड़ सकते हैं:
Windows (PowerShell):
poetry run vulnhalla --local C:\path\to\my-codeql-db
macOS / Linux:
poetry run vulnhalla --local /path/to/my-codeql-db
नोट:
--localफ़्लैग एक CodeQL डेटाबेस निर्देशिका की अपेक्षा करता है, स्रोत कोड फ़ोल्डर की नहीं। आप यह जांच कर सत्यापित कर सकते हैं कि फ़ोल्डर मेंcodeql-database.ymlफ़ाइल है।
# Open UI to view existing results (without running analysis)
poetry run vulnhalla-ui
# Validate configuration: CodeQL, LLM, Logging (without running analysis)
poetry run vulnhalla-validate
# List analyzed repositories and their issue counts
poetry run vulnhalla-list
# Run example pipeline (analyzes videolan/vlc and redis/redis)
poetry run vulnhalla-example
Vulnhalla में विश्लेषण परिणामों को ब्राउज़ करने और एक्सप्लोर करने के लिए एक पूर्ण-विशेषताओं वाला यूज़र इंटरफ़ेस शामिल है।
poetry run vulnhalla-ui
UI नीचे एक नियंत्रण पट्टी के साथ दो-पैनल वाला शीर्ष क्षेत्र प्रदर्शित करता है:
शीर्ष क्षेत्र (साथ-साथ, आकार बदलने योग्य):
बायाँ पैनल (समस्याओं की सूची):
दायाँ पैनल (विवरण):
नीचे नियंत्रण पट्टी:
↑/↓ - समस्या सूची में नेविगेट करें (पंक्ति-दर-पंक्ति)Tab / Shift+Tab - पैनलों के बीच फ़ोकस बदलेंEnter - चयनित समस्या के लिए विवरण दिखाएं/ - सर्च इनपुट बॉक्स पर फ़ोकस करें (बाएँ पैनल में)Esc - सर्च साफ़ करें और समस्याओं की तालिका पर फ़ोकस लौटाएंr - डिस्क से परिणाम पुनः लोड करें[ / ] - बाएँ/दाएँ पैनल का आकार बदलें (विभाजन स्थिति समायोजित करें)q - एप्लिकेशन से बाहर निकलें