قواعد YARA
قواعد YARA هي الطبقة الثانية في خط أنابيب الكشف في PRX-SD. بينما تلتقط مطابقة الهاش النسخ الدقيقة للبرامج الضارة المعروفة، تكشف قواعد YARA عائلات البرامج الضارة ومتغيراتها وأنماطها السلوكية عن طريق مطابقة تسلسلات البايت والسلاسل النصية والشروط الهيكلية داخل الملفات.
يأتي PRX-SD مع أكثر من 38,800 قاعدة YARA مجمَّعة من 8 مصادر ويستخدم محرك YARA-X -- إعادة الكتابة من الجيل التالي بلغة Rust للـ YARA توفر أداءً محسناً وأماناً وتوافقاً.
محرك YARA-X
يستخدم PRX-SD YARA-X بدلاً من مكتبة YARA التقليدية المستندة إلى C. المزايا الرئيسية:
| الميزة | YARA (C) | YARA-X (Rust) |
|---|---|---|
| اللغة | C | Rust (آمن للذاكرة) |
| الأداء | جيد | أسرع 2-5x على مجموعات القواعد الكبيرة |
| توافق القواعد | أساسي | توافق كامل للأسفل + ميزات جديدة |
| أمان الخيوط | يتطلب معالجة دقيقة | آمن بالتصميم |
| دعم الوحدات | وحدات مدمجة | معياري، قابل للتوسعة |
مصادر القواعد
يجمع PRX-SD القواعد من 8 مصادر:
| المصدر | القواعد | المحتوى | تغطية المنصة |
|---|---|---|---|
| القواعد المدمجة | 64 | برامج الفدية وأحصنة طروادة والباب الخلفي وrootkit وعمال المنجم والـ webshells | لينكس + ماك أو إس + ويندوز |
| Yara-Rules/rules (GitHub) | ~12,400 | Emotet وTrickBot وCobaltStrike وMirai وLockBit | متعدد المنصات |
| Neo23x0/signature-base | ~8,200 | APT29 وLazarus وتعدين العملات المشفرة والـ webshells وبرامج الفدية | متعدد المنصات |
| ReversingLabs YARA | ~9,500 | أحصنة طروادة وبرامج الفدية والباب الخلفي وأدوات الاختراق | ويندوز + لينكس |
| ESET IOC | ~3,800 | Turla وInterception والتهديدات المستمرة المتقدمة | متعدد المنصات |
| InQuest | ~4,836 | مستندات OLE/DDE الضارة، حمولات الماكرو | متعدد المنصات |
| JPCERT/CC | ~500+ | التهديدات المستهدفة في منطقة آسيا والمحيط الهادئ | متعدد المنصات |
| مخصص/مُستورد | متغير | قواعد يوفرها المستخدم | أي منصة |
الإجمالي: أكثر من 38,800 قاعدة (بعد إزالة التكرار)
القواعد المدمجة
القواعد الـ 64 المدمجة مُجمَّعة في الملف الثنائي لـ PRX-SD ومتاحة دائماً، حتى بدون تنزيل مجموعات قواعد خارجية. تغطي أكثر فئات التهديدات شيوعاً:
| الفئة | القواعد | أمثلة |
|---|---|---|
| برامج الفدية | 12 | WannaCry وLockBit وConti وREvil وBlackCat وRyuk |
| أحصنة طروادة | 10 | Emotet وTrickBot وDridex وQakBot |
| الباب الخلفي | 8 | Cobalt Strike Beacon وMetasploit Meterpreter والـ reverse shells |
| Rootkit | 6 | Reptile وDiamorphine وJynx2 (لينكس) |
| عمال المنجم | 6 | XMRig وCGMiner وإعدادات التعدين المخفية |
| Webshells | 8 | China Chopper وWSO وB374K وشيلات PHP/ASP/JSP |
| RATs | 6 | njRAT وDarkComet وAsyncRAT وQuasar |
| ثغرات الاستغلال | 4 | EternalBlue وPrintNightmare وحمولات Log4Shell |
| توقيعات الاختبار | 4 | متغيرات ملف اختبار EICAR |
عملية مطابقة القواعد
عند وصول ملف إلى الطبقة 2، يعالجه YARA-X كالتالي:
- تجميع القواعد -- عند بدء التشغيل، تُجمَّع جميع القواعد في تمثيل داخلي محسَّن. يحدث هذا مرة واحدة ويُخزَّن مؤقتاً في الذاكرة.
- استخلاص الذرات -- يستخلص YARA-X تسلسلات بايت قصيرة (ذرات) من أنماط القواعد لبناء فهرس بحث. يمكّن هذا التصفية المسبقة السريعة.
- الفحص -- يُفحص محتوى الملف مقابل فهرس الذرات. تُقيَّم فقط القواعد التي تتطابق ذراتها بالكامل.
- تقييم الشرط -- لكل قاعدة مرشحة، يُقيَّم الشرط الكامل (منطق بوليني، عدد السلاسل، فحوصات هيكل الملف).
- النتيجة -- تُجمَّع القواعد المطابقة ويُعلَّم الملف بـ
MALICIOUSمع أسماء القواعد في التقرير.
الأداء
| المقياس | القيمة |
|---|---|
| تجميع القواعد (38,800 قاعدة) | ~2 ثانية (مرة واحدة عند بدء التشغيل) |
| وقت فحص لكل ملف | متوسط ~0.3 مللي ثانية |
| استخدام الذاكرة (قواعد مُجمَّعة) | ~150 MB |
| الإنتاجية | ~3,000 ملف/ثانية/خيط |
تحديث قواعد YARA
تُحدَّث القواعد جانباً مع توقيعات الهاش:
# تحديث كل شيء (الهاشات + قواعد YARA)
sd update
# تحديث قواعد YARA فقط
sd update --source yaraعملية التحديث:
- تنزيل أرشيفات القواعد من كل مصدر
- التحقق من صحة بناء القواعد بـ YARA-X
- إزالة تكرار القواعد بالاسم وهاش المحتوى
- تجميع مجموعة القواعد المدمجة
- استبدال مجموعة القواعد النشطة ذرياً
تحديثات بدون توقف
تحديثات القواعد ذرية. تُجمَّع مجموعة القواعد الجديدة والتحقق منها قبل استبدال المجموعة النشطة. إذا فشل التجميع (مثل خطأ في بناء الجملة في قاعدة مجتمعية)، تبقى مجموعة القواعد الموجودة نشطة.
القواعد المخصصة
يمكنك إضافة قواعد YARA الخاصة بك بوضع ملفات .yar أو .yara في دليل القواعد المخصصة:
# دليل القواعد المخصصة الافتراضي
~/.config/prx-sd/rules/مثال على قاعدة مخصصة:
rule custom_webshell_detector {
meta:
description = "Detects custom PHP webshell variant"
author = "Security Team"
severity = "high"
strings:
$eval = "eval(base64_decode(" ascii
$system = "system($_" ascii
$exec = "exec($_" ascii
condition:
filesize < 100KB and
($eval or $system or $exec)
}بعد إضافة القواعد المخصصة، أعد تحميل مجموعة القواعد:
sd reload-rulesأو أعد تشغيل وحيد خدمة الشاشة لاستيعاب التغييرات تلقائياً.
أدلة القواعد
| الدليل | المصدر | سلوك التحديث |
|---|---|---|
~/.local/share/prx-sd/rules/builtin/ | مُجمَّع في الملف الثنائي | يُحدَّث مع الإصدارات |
~/.local/share/prx-sd/rules/community/ | يُنزَّل من المصادر | يُحدَّث بـ sd update |
~/.config/prx-sd/rules/ | قواعد مخصصة من المستخدم | يدوي، لا يُكتب فوقها أبداً |
التحقق من القواعد
التحقق من عدد القواعد المحملة حالياً ومصادرها:
sd infoYARA Rules
==========
Built-in: 64
Community: 38,736
Custom: 12
Total compiled: 38,812
Rule sources: 8
Last updated: 2026-03-21 10:00:00 UTCسرد القواعد المطابقة لكلمة مفتاحية محددة:
sd rules list --filter "ransomware"الخطوات التالية
- التحليل الاكتشافي -- الكشف السلوكي للملفات التي تتهرب من التوقيعات
- مطابقة الهاش -- أسرع طبقة كشف
- نظرة عامة على محرك الكشف -- كيف تعمل جميع الطبقات معاً
- أنواع الملفات المدعومة -- أنواع تنسيقات الملفات التي تستهدفها قواعد YARA