كشف التهديدات المضمنة
كيف يفحص باطن المحتوى الخبيث المخفي داخل الملفات.
نظرة عامة
العديد من صيغ الملفات يمكنها احتواء محتوى آخ ر:
- مستندات Office → ماكرو VBA
- ملفات PDF → JavaScript
- الأرشيفات → ملفات تنفيذية
- الصور → بيانات مخفية
المرحلة 4 في باطن تفحص هذه التهديدات المضمنة.
أنواع التهديدات
pub enum ThreatType {
Macro, // ماكرو Office VBA
JavaScript, // PDF/HTML JavaScript
Executable, // EXE/DLL مخفي
Script, // سكربتات Shell/PowerShell
Unknown, // تهديد غير مصنف
}
كشف ماكرو Office
التهديد
ماكرو VBA في مستندات Office يمكنه:
- تحميل وتنفيذ برمجيات خبيثة
- سرقة بيانات الاعتماد/البيانات
- تشفير الملفات (فيروسات الفدية)
- الانتشار إلى مستندات أخرى
ماكرو التنفيذ التلقائي (حرج)
الأكثر خطورة—يعمل تلقائياً عند فتح المستند:
| اسم الماكرو | المحفز |
|---|---|
AutoOpen | فتح المستند |
AutoExec | بدء التطبيق |
Document_Open | فتح مستند Word |
Workbook_Open | فتح مصنف Excel |
تنفيذ الكشف
fn detect_macros(data: &[u8]) -> Vec<EmbeddedThreat> {
let mut threats = Vec::new();
// علامات التنفيذ التلقائي (شدة حرجة)
let auto_exec_markers: [&[u8]; 4] = [
b"AutoOpen",
b"AutoExec",
b"Document_Open",
b"Workbook_Open"
];
for marker in &auto_exec_markers {
if let Some(offset) = find_bytes(data, marker) {
threats.push(EmbeddedThreat {
threat_type: ThreatType::Macro,
offset,
severity: ThreatLevel::Critical,
description: format!(
"ماكرو تنفيذ تلقائي مكتشف: {}",
String::from_utf8_lossy(marker)
),
});
}
}
// علامات VBA العادية (فقط إذا لم يُعثر على تنفيذ تلقائي)
if threats.is_empty() {
let macro_markers: [&[u8]; 3] = [
b"VBA",
b"_VBA_PROJECT",
b"macros/"
];
for marker in ¯o_markers {
if let Some(offset) = find_bytes(data, marker) {
threats.push(EmbeddedThreat {
threat_type: ThreatType::Macro,
offset,
severity: ThreatLevel::Dangerous,
description: "ماكرو Office مكتشف".to_string(),
});
break;
}
}
}
threats
}