
محلل قواعد YARA لتحسين جودة القواعد والأداء
محلل قواعد YARA لتحسين جودة القواعد وأدائها
يمكن أن تكون قواعد YARA صحيحة نحويًا ولكنها لا تزال غير فعالة. يحاول yaraQA العثور على هذه المشكلات والإبلاغ عنها لمؤلف أو مشرف مجموعة قواعد YARA.
المشكلات التي يحاول yaraQA اكتشافها هي على سبيل المثال:
2 of them في الشرط)$ = "\\Debug\\" fullword)$ = "AA"؛ يمكن استبعادها من التحليل باستخدام --ignore-performance)سأقوم بتوسيع مجموعة الاختبارات بمرور الوقت. سيتضمن كل إصدار ثانوي ميزات جديدة أو اختبارات جديدة.
pip install -r requirements.txt
usage: yaraQA.py [-h] [-f yara files [yara files ...]] [-d yara files [yara files ...]] [-o outfile] [-b baseline] [-l level]
[--ignore-performance] [--debug]
YARA RULE ANALYZER
optional arguments:
-h, --help show this help message and exit
-f yara files [yara files ...]
Path to input files (one or more YARA rules, separated by space)
-d yara files [yara files ...]
Path to input directory (YARA rules folders, separated by space)
-o outfile Output file that lists the issues (JSON, default: 'yaraQA-issues.json')
-b baseline Use a issues baseline (issues found and reviewed before) to filter issues
-l level Minium level to show (1=informational, 2=warning, 3=critical)
--ignore-performance Suppress performance-related rule issues
--debug Debug output
python3 yaraQA.py -d ./test/
قم بكتم جميع مشكلات الأداء وعرض مشكلات الكشف/المنطق فقط.
python3 yaraQA.py -d ./test/ --ignore-performance
قم بكتم جميع المشكلات ذات الطابع الإعلامي
python3 yaraQA.py -d ./test/ -level 2
استخدم خط الأساس لرؤية المشكلات الجديدة فقط (وليس تلك التي قمت بمراجعتها بالفعل). ملف خط الأساس هو إخراج JSON قديم لحالة تمت مراجعتها.
python3 yaraQA.py -d ./test/ -b yaraQA-reviewed-issues.json
يمكن العثور على أمثلة للقواعد التي تحتوي على مشكلات في المجلد ./test.
يكتب yaraQA المشكلات المكتشفة إلى ملف باسم yaraQA-issues.json افتراضيًا.
يعرض هذا القائمة مثالاً للمخرجات التي يولدها yaraQA بتنسيق JSON: