
يستخرج معلومات استخباراتية عن التهديدات السيبرانية المنظمة (CTI) من مستندات PDF و DOCX و TXT باستخدام نماذج اللغة الكبيرة (LLMs). يولّد تدفقات هجوم MITRE ATT&CK، وفرص الكشف، ورسومات بيانية شاملة للعلاقات بين الكيانات.
أداة سطر أوامر قوية ومستقلة لاستخراج معلومات التهديدات السيبرانية (CTI) من المستندات باستخدام نماذج اللغة الكبيرة مع إمكانيات مخرجات منظمة متقدمة.
# استنساخ أو تنزيل مجلد standalone-tdo
cd standalone-tdo
# إنشاء بيئة افتراضية (موصى به)
python -m venv .venv
source .venv/bin/activate # على ويندوز: .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 توليد 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: تقرير Markdown قابل للقراءة البشرية مع كل التحليلات--flow)--opps)| Entity Type | Description | Key Properties |
|---|---|---|
| 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 | عناوين IP، نطاقات، روابط | 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 |
علاقات الإسناد والممثل:
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": "كشف حقن عملية PowerShell",
"technique_id": "T1055",
"artefacts": ["powershell.exe مع استدعاءات WriteProcessMemory"],
"behaviours": ["حقن العملية في العمليات المشروعة"],
"rationale": "تستخدم مجموعات APT بشكل شائع PowerShell لحقن العملية",
"confidence": 0.8,
"source": "PowerShell المستخدمة لحقن العملية (T1055)",
"evidence": [
"• ينفذ PowerShell استدعاءات 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).env باستخدام python-dotenvtdo_bulk_runner.py)tdo_core/extractors/report_processor.py)tdo_core/detection/opportunity_generator.py)