
LLMs का उपयोग करके PDF, DOCX और TXT दस्तावेज़ों से संरचित साइबर खतरा खुफिया (CTI) निकालता है। MITRE ATT&CK हमले के प्रवाह, पता लगाने के अवसर और व्यापक इकाई-संबंध ग्राफ़ उत्पन्न करता है।
एक शक्तिशाली, स्टैंडअलोन कमांड-लाइन टूल जो उन्नत संरचित आउटपुट क्षमताओं वाले बड़े भाषा मॉडल (LLM) का उपयोग करके दस्तावेज़ों से साइबर खतरा खुफिया (CTI) निकालने के लिए है।
# Clone या standalone-tdo फ़ोल्डर डाउनलोड करें
cd standalone-tdo
# वर्चुअल वातावरण बनाएँ (अनुशंसित)
python -m venv .venv
source .venv/bin/activate # Windows पर: .venv\Scripts\activate
# निर्भरताएँ स्थापित करें
pip install -r requirements.txt
टूल कॉन्फ़िगरेशन के लिए .env फ़ाइल से लोड किए गए पर्यावरण चर का उपयोग करता है:
# उदाहरण कॉन्फ़िगरेशन कॉपी करें
cp env.example .env
# अपनी सेटिंग्स के साथ .env संपादित करें
# आवश्यक चर:
GEMINI_API_KEY=your-google-ai-api-key-here
GEMINI_MODEL=gemini-2.5-flash
Gemini API कुंजी प्राप्त करना:
.env फ़ाइल में कॉपी करेंउपलब्ध मॉडल:
gemini-2.5-flash-preview-05-20 (अनुशंसित - तेज़ और लागत प्रभावी)gemini-2.5-pro-preview-06-05 (अधिक शक्तिशाली, धीमा)# सभी सुविधाओं के साथ एक फ़ाइल प्रोसेस करें
python tdo_bulk.py report.pdf --flow --opps
# कई फ़ाइलें प्रोसेस करें
python tdo_bulk.py file1.pdf file2.docx file3.txt
# समानांतर कार्यकर्ताओं के साथ एक निर्देशिका में सभी फ़ाइलें प्रोसेस करें
python tdo_bulk.py reports/ -j 4
# मूल्यांकन के साथ व्यापक विश्लेषण उत्पन्न करें
python tdo_bulk.py report.pdf --flow --opps --eval-opps
usage: tdo_bulk.py [options] FILE [FILE ...]
Positional Arguments:
FILE प्रोसेस करने के लिए एक या अधिक फ़ाइलें या निर्देशिकाएँ
Core Options:
-o, --output DIR आउटपुट निर्देशिका (डिफ़ॉल्ट: ./extracted_data)
--csv FILE CSV फ़ाइल में सारांश निर्यात करें
-j, --jobs N समानांतर कार्यकर्ताओं की संख्या (डिफ़ॉल्ट: 1)
--retries N LLM पुनर्प्रयास संख्या (डिफ़ॉल्ट: 2)
--backoff SEC घातांकीय बैक-ऑफ़ आधार (डिफ़ॉल्ट: 1.5)
Analysis Features:
--flow Attack-Flow JSON उत्पन्न करें
--opps खतरा पहचान अवसर उत्पन्न करें
--eval-opps पहचान अवसरों की गुणवत्ता का मूल्यांकन करें
--debug-opps अवसर निर्माण के लिए डीबग जानकारी दिखाएँ
Output Control:
-q, --quiet न्यूनतम कंसोल आउटपुट
-v, --verbose डीबग-स्तरीय लॉगिंग
-h, --help सहायता संदेश दिखाएँ और बाहर निकलें
# बुनियादी CTI निष्कर्षण
python tdo_bulk.py threat_report.pdf
# सभी सुविधाओं के साथ पूर्ण विश्लेषण
python tdo_bulk.py apt_report.pdf --flow --opps --eval-opps
# समानांतर कार्यकर्ताओं के साथ बैच प्रसंस्करण
python tdo_bulk.py reports_folder/ -j 8 --flow --opps
# परिणाम CSV में निर्यात करें
python tdo_bulk.py *.pdf --csv results.csv
# ऑटोमेशन के लिए शांत मोड
python tdo_bulk.py reports/ -q -o /var/soc/cti --opps
प्रत्येक प्रोसेस की गई फ़ाइल के लिए, टूल उत्पन्न करता है:
{filename}_extracted.json: व्यापक स्कीमा के साथ संरचित CTI डेटा{filename}_{timestamp}.md: सभी विश्लेषण के साथ मानव-पठनीय मार्कडाउन रिपोर्ट--flow के साथ)--opps के साथ)आरोपण और अभिनेता संबंध:
USES_TOOL, USES_TECHNIQUE, CONDUCTS, ATTRIBUTED_TO, TARGETSतकनीकी संबंध:
TOOL_IMPLEMENTS_TECHNIQUE, HOSTS_ON, COMMUNICATES_WITH, VARIANT_OFDROPS, DOWNLOADS, INDICATES, OBSERVED_ON, EXPLOITSउन्नत संबंध:
MITIGATES, DETECTS, IS_SUBTECHNIQUE_OF, FLOW_CONTAINS_STEPFLOW_USED_BY_ACTOR, OBSERVES, SOURCED_FROMसभी संबंध confidence, source, first_seen, last_seen जैसे गुणों का समर्थन करते हैं।
टूल साक्ष्य-आधारित पहचान अवसर उत्पन्न करता है:
{
"id": "opp-001",
"name": "पावरशेल प्रक्रिया इंजेक्शन का पता लगाएं",
"technique_id": "T1055",
"artefacts": ["WriteProcessMemory कॉल के साथ powershell.exe"],
"behaviours": ["वैध प्रक्रियाओं में प्रक्रिया इंजेक्शन"],
"rationale": "APT समूह आमतौर पर प्रक्रिया इंजेक्शन के लिए पावरशेल का उपयोग करते हैं",
"confidence": 0.8,
"source": "प्रक्रिया इंजेक्शन के लिए पावरशेल का उपयोग (T1055)",
"evidence": [
"• पावरशेल WriteProcessMemory कॉल निष्पादित करता है (पंक्ति 45)",
"• संबंध: ThreatActor USES_TECHNIQUE T1055"
]
}
उन्नत हमला प्रवाह प्रदान करता है:
{
"flow": {
"label": "AttackFlow",
"pk": "attack-flow--uuid",
"properties": {
"name": "APT29 बहु-चरणीय हमला",
"description": "डेटा निष्कासन प्रवाह के लिए परिष्कृत फ़िशिंग"
}
},
"steps": [
{
"order": 1,
"entity": {"label": "Technique", "pk": "T1566.001"},
"description": "फ़िशिंग अटैचमेंट वितरण",
"reason": "रिपोर्ट के अनुभाग 2.1 में उल्लिखित प्रारंभिक पहुँच विधि"
}
]
}
tdo_bulk.py)python-dotenv का उपयोग करके .env कॉन्फ़िगरेशन लोड करता हैtdo_bulk_runner.py)tdo_core/extractors/report_processor.py)tdo_core/detection/opportunity_generator.py)tdo_core/flows/attack_flow_synthesizer.py)tdo_core/report/md_export.py)tdo_core/llm/prompts.py)दस्तावेज़ इनपुट → पाठ निष्कर्षण → एलएलएम प्रसंस्करण → संरचित आउटपुट
↓ ↓ ↓ ↓
PDF/DOCX स्वच्छ पाठ Gemini API JSON + फ़ॉलबैक
↓ ↓ ↓ ↓
बहु-प्रारूप पूर्व-प्रसंस्करण Pydantic स्कीमा सत्यापन
↓ ↓ ↓ ↓
फ़ाइल समर्थन पाठ सफाई संरचित डेटा CTI ग्राफ़
↓
पोस्ट-प्रसंस्करण
↓ ↓
हमला प्रवाह पहचान अवसर
↓ ↓
मार्कडाउन रिपोर्ट निर्यात
| चर | आवश्यक | विवरण | उदाहरण |
|---|---|---|---|
GEMINI_API_KEY | ✅ | Google AI API कुंजी |
Error: Required environment variables missing: GEMINI_API_KEY, GEMINI_MODEL
समाधान: दोनों आवश्यक चरों के साथ .env फ़ाइल बनाएँ
Skipping unsupported file: document.rtf
समाधान: PDF, DOCX, TXT, या MD प्रारूप में बदलें
Structured Gemini API error: ...
समाधान:
--verbose का उपयोग करेंटूल स्वचालित रूप से JSON पार्सिंग समस्याओं को संभालता है:
-j फ़्लैग का उपयोग करें-q का उपयोग करें# वर्बोज़ लॉगिंग सक्षम करें
python tdo_bulk.py report.pdf -v
# पहचान अवसरों को डीबग करें
python tdo_bulk.py report.pdf --opps --debug-opps
# विस्तृत लॉग निर्यात करें
python tdo_bulk.py report.pdf -v > processing.log 2>&1
टूल को Python 3.9+ और इन प्रमुख पैकेजों की आवश्यकता है:
google-generativeai: संरचित आउटपुट के साथ Google AI (Gemini) API क्लाइंटPyMuPDF: उच्च-प्रदर्शन PDF पाठ निष्कर्षणpython-docx: माइक्रोसॉफ्ट वर्ड दस्तावेज़ प्रसंस्करणpandas: डेटा हेरफेर और CSV निर्यातpydantic: स्कीमा सत्यापन और संरचित आउटपुटpython-dotenv: पर्यावरण चर प्रबंधनcleantext: पाठ पूर्व-प्रसंस्करण उपयोगिताएँयह स्टैंडअलोन संस्करण:
हालाँकि, इसमें अधिकांश उपयोग मामलों के लिए आवश्यक सभी मुख्य CTI निष्कर्षण और विश्लेषण क्षमताएँ शामिल हैं।
.env फ़ाइल प्रबंधन में स्थानांतरित.env फ़ाइल कभी भी commit न करें - यह .gitignore द्वारा बाहर रखी गई हैGEMINI_API_KEY को पर्यावरण चर का उपयोग करके सुरक्षित रूप से संग्रहीत करेंनिकाली गई JSON और मार्कडाउन फ़ाइलों में शामिल हो सकता है:
सार्वजनिक रूप से साझा करने से पहले हमेशा आउटपुट की समीक्षा करें।
कृपया सुरक्षा कमजोरियों की जिम्मेदारीपूर्वक रिपोर्ट करें। विवरण के लिए SECURITY.md देखें।
यह प्रोजेक्ट MIT लाइसेंस के तहत लाइसेंस प्राप्त है - विवरण के लिए LICENSE देखें।
योगदान का स्वागत है! दिशानिर्देशों के लिए कृपया CONTRIBUTING.md पढ़ें।
सहायता चाहिए? त्वरित संदर्भ के लिए python tdo_bulk.py --help चलाएँ या ऊपर समस्या निवारण अनुभाग देखें।
| इकाई प्रकार | विवरण | मुख्य गुण |
|---|
| ThreatActor | साइबर खतरा समूह | aliases, primary_motivation, first_seen |
| Tool | वैध सॉफ़्टवेयर | family, capabilities, kill_chain_phases |
| Malware | दुर्भावनापूर्ण सॉफ़्टवेयर | family, capabilities, first_seen, last_seen |
| Technique | MITRE ATT&CK तकनीकें | id (T1234), description, kill_chain_phases |
| Tactic | MITRE ATT&CK रणनीतियाँ | id (TA0001), description |
| Infrastructure | IPs, डोमेन, URLs | type, tags, first_seen, last_seen |
| Indicator | फ़ाइल हैश, पैटर्न | value, pattern, valid_from, valid_until |
| Vulnerability | CVE प्रविष्टियाँ | id, cvss_score, affected_software |
| Campaign | नामित हमला अभियान | objective, status, first_seen |
| Identity | लक्ष्य संगठन | type, description |
| CourseOfAction | शमन, पैच | type, description |
| Source | दस्तावेज़ उत्पत्ति | filename, document_title, file_size_mb |
AIza... |
GEMINI_MODEL | ✅ | उपयोग करने के लिए Gemini मॉडल | gemini-2.5-flash-preview-05-20 |
| मॉडल | गति | गुणवत्ता | लागत | उपयोग का मामला |
|---|
gemini-2.5-flash-preview-05-20 | ⚡ तेज़ | 🎯 अच्छा | 💰 कम | उत्पादन, बल्क प्रसंस्करण |
gemini-2.5-pro-preview-06-05 | 🐌 धीमा | 🏆 उत्कृष्ट | 💸 उच्च | जटिल विश्लेषण, शोध |