Gaia - आक्रमण सतह खोज और AI-सहायक ट्राइएज
Gaia एक CLI-प्रथम आक्रमण सतह विश्लेषण उपकरण है जो एंडपॉइंट्स और पैरामीटर्स की खोज करता है, शोर कम करता है, और स्थिर ह्यूरिस्टिक्स और वैकल्पिक AI तर्क का उपयोग करके सुरक्षा-संबंधी जोखिमों को उजागर करता है। यह Katana, gau, arjun, linkfinder, और uro को एकीकृत करता है ताकि कच्चे URL संग्रह को एक सामान्यीकृत, जोखिम-जागरूक दृश्य में बदल सके जो बग बाउंटी, AppSec, और सुरक्षा इंजीनियरिंग कार्यप्रवाहों के लिए उपयुक्त हो।
Gaia एक स्वचालित भेद्यता स्कैनर नहीं है। यह आक्रमण सतह का मानचित्रण करता है, नियतात्मक ह्यूरिस्टिक्स लागू करता है, और परीक्षण संकेत उत्पन्न करने के लिए LLM का उपयोग कर सकता है। निष्कर्ष मार्गदर्शन हैं, पुष्टि की गई भेद्यताएँ नहीं। मैन्युअल सत्यापन आवश्यक है। AI आउटपुट सलाहकार है और आधिकारिक नहीं; इसका उपयोग यह तय करने के लिए करें कि कहाँ ध्यान केंद्रित करना है और कैसे परीक्षण करना है।

Gaia क्या करता है
Gaia शोर पर संकेत पर ध्यान केंद्रित करता है। यह:
- लाइव एप्लिकेशन को क्रॉल करता है
- ऐतिहासिक URL एकत्र करता है
- पैरामीटर निकालता है
- एंडपॉइंट को सामान्यीकृत और डिडुप्लिकेट करता है
- JavaScript का विश्लेषण करता है एंडपॉइंट, URL, रहस्य, ईमेल और फ़ाइलों के लिए
- नियतात्मक सुरक्षा ह्यूरिस्टिक्स लागू करता है
- वैकल्पिक रूप से LLM-आधारित तर्क (सीमित और अनुकूलित) के साथ निष्कर्षों को समृद्ध करता है
परिणाम एक तेज़, पढ़ने योग्य मानचित्र है जो किसी एप्लिकेशन की आक्रमण सतह में महत्वपूर्ण चीज़ों को दर्शाता है।
यह किसके लिए है
- तेज़ रिकॉन और ट्राइएज करने वाले बग बाउंटी हंटर्स
- आक्रमण सतहों का मानचित्रण करने वाले AppSec इंजीनियर
- प्रारंभिक-चरण विश्लेषण को स्वचालित करने वाले सुरक्षा इंजीनियर
- उजागर एंडपॉइंट और पैरामीटर्स में दृश्यता चाहने वाले डेवलपर
मुख्य विशेषताएँ
- Katana के माध्यम से लाइव क्रॉलिंग
- gau के माध्यम से ऐतिहासिक URL खोज
- arjun + क्वेरी पार्सिंग के माध्यम से पैरामीटर खोज
- uro के साथ URL सामान्यीकरण और डिडुप्लिकेशन
- शोर-कम JS निष्कर्षण के लिए JS विश्लेषक
- स्थिर जोखिम ह्यूरिस्टिक्स (IDOR, SSRF, प्रमाणीकरण, ट्रैवर्सल, इंजेक्शन, आदि)
- वैकल्पिक LLM-सहायता प्राप्त विश्लेषण (सीमित, संघनित, तेज़)
- शोर में कमी: स्थिर संपत्ति फ़िल्टरिंग, ट्रैकिंग/जंक पैरामीटर फ़िल्टरिंग
- प्रदर्शन-केंद्रित डिज़ाइन: सीमित AI कॉल, संक्षिप्त पेलोड, पतला प्रतिक्रिया स्नैपशॉट
यह कैसे काम करता है (पाइपलाइन)
- बाहरी उपकरणों को हल करें
- लक्ष्य क्रॉल करें (Katana)
- ऐतिहासिक URL एकत्र करें (gau)
- JS विश्लेषण
- पैरामीटर निकालें (arjun + पार्सिंग)
- URL को सामान्यीकृत और डिडुप्लिकेट करें (uro)
- विश्लेषण करें (स्थिर + वैकल्पिक AI)
- रिपोर्ट प्रस्तुत करें
प्रत्येक चरण रिपोर्ट करता है कि उसने कितने URL या पैरामीटर खोजे।
उपयोग
बुनियादी स्कैन
gaia -u https://example.com
विशिष्ट चरणों को अक्षम करें
gaia -u https://example.com --no-gau --no-ai
stdin से URL पढ़ें
cat urls.txt | gaia --stdin
क्ली रन का उदाहरण
Gaia CLI डेमो – क्रॉलिंग, सामान्यीकरण, और AI-सहायता प्राप्त विश्लेषण
स्थापना
आवश्यकताएँ
- Python 3.10+
- (वैकल्पिक) virtualenv
- Go टूलचेन (katana / gau ऑटो-इंस्टॉल के लिए)
सेटअप
python3 -m venv venv
source venv/bin/activate
pip install -e .
बाहरी उपकरण (katana, gau, arjun, linkfinder, uro) सक्षम होने पर स्वचालित रूप से स्थापित किए जा सकते हैं।
CLI फ़्लैग्स
- -u, --url लक्ष्य URL
- --stdin stdin से URL पढ़ें
- --no-gau ऐतिहासिक URL संग्रह अक्षम करें
- --no-arjun arjun पैरामीटर खोज अक्षम करें
- --no-linkfinder linkfinder JS खोज अक्षम करें
- --no-uro URL सामान्यीकरण अक्षम करें
- --no-js-analyzer JS विश्लेषक चरण अक्षम करें
- --js-max-fetches N विश्लेषण के लिए लाने के लिए अधिकतम JS फ़ाइलें
- --no-ai AI तर्क अक्षम करें
- --show-assets आउटपुट में स्थिर संपत्तियाँ दिखाएँ
- --only-params केवल पैरामीटर वाले एंडपॉइंट दिखाएँ
- --auto-install लापता उपकरणों को स्वचालित रूप से स्थापित करें
- --max-urls N एकत्रित URL को सीमित करें
- --format console|md|json आउटपुट प्रारूप
- --output PATH रिपोर्ट को फ़ाइल में लिखें
- -h, --help सहायता दिखाएँ
पर्यावरण चर
AI / LLM
- GAIA_LLM_MODEL LiteLLM के लिए मॉडल नाम (AI सक्षम करने के लिए आवश्यक)
- GAIA_LLM_MAX_ENDPOINTS LLM को भेजे जाने वाले अधिकतम एंडपॉइंट (डिफ़ॉल्ट: 15)
- GAIA_LLM_INCLUDE_RESPONSES HTTP प्रतिक्रिया स्नैपशॉट शामिल करें (डिफ़ॉल्ट: true)
- GAIA_LLM_MAX_RESPONSES लाने के लिए अधिकतम स्नैपशॉट (डिफ़ॉल्ट: 50)
- GAIA_LLM_MAX_BODY_CHARS अधिकतम प्रतिक्रिया बॉडी अक्षर (डिफ़ॉल्ट: 4000)
सुविधा टॉगल
- GAIA_DISABLE_AI
- GAIA_DISABLE_GAU
- GAIA_DISABLE_ARJUN
- GAIA_DISABLE_LINKFINDER
- GAIA_DISABLE_URO
- GAIA_DISABLE_JS_ANALYZER
डीबगिंग
- GAIA_VERBOSE
- GAIA_DEBUG
- GAIA_LLM_DEBUG
- GAIA_JS_MAX_FETCHES
- GAIA_JS_MAX_CHARS
नोट्स और मोड:
- फ़ास्ट मोड: त्वरित रिकॉन के लिए AI और ऐतिहासिक उपकरण अक्षम करें (--no-ai --no-gau)।
- डीप मोड: GAIA_LLM_MODEL सेट करके सभी उपकरण और AI सक्षम करें; यदि आपको व्यापक AI कवरेज चाहिए तो GAIA_LLM_MAX_ENDPOINTS बढ़ाएँ।
- ट्राइएज मोड: AI को चालू रखें लेकिन संतुलित गति और कवरेज के लिए डिफ़ॉल्ट (सीमित एंडपॉइंट, संक्षिप्त पेलोड) पर भरोसा करें।
LiteLLM / AI कॉन्फ़िगरेशन
AI वैकल्पिक है। Gaia इसके बिना भी पूरी तरह काम करता है।
OpenAI का उपयोग करना:
- GAIA_LLM_MODEL (उदाहरण: gpt-4o-mini या gpt-4.1)
- OPENAI_API_KEY: LiteLLM इन वेरिएबल्स के आधार पर OpenAI को अनुरोध रूट करता है।
Google Gemini का उपयोग करना
- GAIA_LLM_MODEL (उदाहरण: gemini/gemini-1.5-pro)
- GOOGLE_API_KEY: LiteLLM इन वेरिएबल्स के आधार पर Gemini को अनुरोध रूट करता है।
स्थानीय मॉडल का उपयोग करना (Ollama / LM Studio)
- GAIA_LLM_MODEL (उदाहरण: ollama/llama3 या ollama/qwen2.5)
- LiteLLM स्थानीय एंडपॉइंट से जुड़ता है; स्थानीय मॉडल के लिए कोई API कुंजी आवश्यक नहीं है।
आउटपुट
कंसोल आउटपुट
- एंडपॉइंट तालिका (फ़िल्टर्ड, पढ़ने योग्य)
- प्रति पैरामीटर जोखिम टैग
- सारांश आँकड़े
- AI प्रगति संकेतक (एक-पंक्ति)
पैरामीटर नोट्स
रिपोर्ट के अंत में, Gaia एकत्रित पैरामीटर नोट्स प्रिंट करता है:
- एक पैरामीटर जोखिम भरा क्यों दिखता है
- यह कहाँ देखा गया
- व्यावहारिक परीक्षण विचार
अन्य प्रारूप
- JSON (मशीन-पठनीय)
- Markdown (रिपोर्ट-तैयार)
प्रदर्शन नोट्स
- AI कॉल सख्ती से सीमित हैं
- पेलोड संक्षिप्त और कुंजी-संक्षिप्त हैं
- स्थिर संपत्तियाँ और जंक पैरामीटर छोड़े जाते हैं
- 2xx प्रतिक्रियाएँ केवल content-type + छोटा स्निपेट भेजती हैं
- बड़ी सतहों पर भी तेज़ बने रहने के लिए डिज़ाइन किया गया
योगदान
योगदान का स्वागत है। कृपया PR को केंद्रित और पढ़ने योग्य रखें। ह्यूरिस्टिक्स, प्रदर्शन, फ़िल्टरिंग, AI प्रॉम्प्ट और दस्तावेज़ीकरण में सुधार को प्रोत्साहित किया जाता है। बड़े बदलावों के लिए, पहले चर्चा के लिए एक इश्यू खोलें।
लाइसेंस
MIT
अस्वीकरण
Gaia एक रिकॉन और विश्लेषण उपकरण है। हमेशा जिम्मेदारी से परीक्षण करें और केवल उन सिस्टमों के विरुद्ध करें जिनका मूल्यांकन करने के लिए आप अधिकृत हैं।