
أداة تحليل ثابت وديناميكي للكشف عن التعليمات البرمجية الضارة والملفات الثنائية المشبوهة وانتهاكات الخصوصية
تثبيت - استخدام - تحليل ديناميكي - قواعد YARA - CI/CD
المستندات: English | Tiếng Việt
أداة تحليل ثابت وديناميكي لكشف الشيفرات الخبيثة والملفات الثنائية المشبوهة وانتهاكات الخصوصية. تقوم بتحليل شيفرة المصدر، الملفات التنفيذية المترجمة (.exe, .dll, .elf)، حزم macOS (.app, .dmg, .pkg)، تطبيقات الجوال (.apk, .ipa)، وحزم التطبيقات باستخدام قواعد YARA، وتحليل السلوك في حاويات Docker، وتحليل الجوال عبر MobSF، وإزالة التعتيم عن الحمولات، وإعداد تقارير متعددة التنسيقات (JSON, HTML, SARIF).
pip install malware-check
pipx install malware-check
git clone https://github.com/momenbasel/malware-check.git
cd malware-check
pip install -e ".[dev]"
هذا يُثبت واجهة سطر الأوامر الأساسية. تحليل الملفات الثنائية عبر pefile/lief، كشف الملفات بالذكاء الاصطناعي عبر magika، ومسح YARA عبر yara-python هي إضافات اختيارية.
# أساسي + تحليل ثنائي + كشف ملفات بالذكاء الاصطناعي + YARA
pip install malware-check[full]
# أو تثبيت ما تحتاجه فقط
pip install malware-check[binary]
pip install malware-check[detect]
pip install malware-check[yara]
# أو تثبيت الإضافات يدويًا
pip install pefile lief magika yara-python
pip install malware-check[detect]
عند تثبيته، يستخدم malware-check Magika لتحسين تحديد الملفات عبر المنصات، وإثراء البيانات الوصفية file_type، وتوجيه الملفات بدون امتداد أو المقنعة إلى المحلل الصحيح بناءً على المحتوى بدلاً من اسم الملف وحده.
# يتطلب Docker - https://docs.docker.com/get-docker/
# بناء صورة الحماية (مرة واحدة)
malware-check build-sandbox
malware-check info
عرض الأمر info ما إذا كان كشف الملفات المدعوم بـ Magika متاحًا.
قم بتثبيته كمهارة Claude Code ليتمكن Claude من تحليل الملفات نيابةً عنك:
# تثبيت المهارة من GitHub
npx skills install momenbasel/malware-check --skill malware-check
# أو يدويًا: انسخ skill/SKILL.md إلى دليل المهارات الخاص بك
cp -r skill/ ~/.claude/skills/malware-check/
ثم في Claude Code، قل: "امسح هذا الملف بحثًا عن برمجيات خبيثة" أو "هل هذا الملف الثنائي آمن؟" وسيستخدم Claude malware-check تلقائيًا.
تحتاج أيضًا إلى تثبيت أداة CLI:
pip install malware-check pefile lief yara-python
قم بتثبيت الأداة وأضفها إلى تعليمات وكيل Codex الخاص بك:
# 1. تثبيت CLI
pip install malware-check pefile lief yara-python
# 2. أضف إلى تعليمات Codex (codex.md أو موجه النظام)
echo 'استخدم `malware-check scan <path> --verbose` لتحليل الملفات بحثًا عن برمجيات خبيثة.' >> AGENTS.md
# 3. أو قم بتثبيتها كمهارة Codex
cp -r skill/ .codex/skills/malware-check/
لأي وكيل برمجي ذكي يدعم استخدام الأدوات أو التعليمات المخصصة:
# 1. التثبيت
pip install malware-check
# 2. أضف إلى تعليمات الوكيل:
# "عند الطلب للتحقق من الشيفرة/الملفات الثنائية بحثًا عن برمجيات خبيثة، استخدم: malware-check scan <target> --verbose"
# "للتقارير: malware-check scan <target> --format html -o report.html"
# "لـ CI/CD: malware-check scan <target> --format sarif -o report.sarif --exit-code"
malware-check scan suspicious_file.py
# أفضل النتائج عند تثبيت malware-check[detect]
malware-check scan suspicious_payload --verbose
malware-check scan /path/to/project --verbose
# بناء الحماية أولاً (مرة واحدة)
malware-check build-sandbox
# مسح مع تحليل سلوكي
malware-check scan malware.exe --dynamic
malware-check scan /Applications/SuspiciousApp.app --dynamic --verbose
# تقرير JSON
malware-check scan target/ --format json -o report.json
# لوحة تحكم HTML
malware-check scan target/ --format html -o report.html
# SARIF لـ CI/CD
malware-check scan target/ --format sarif -o results.sarif
# الخروج برمز خطأ غير صفري عند وجود نتائج (لبوابات CI)
malware-check scan . --format sarif -o results.sarif --exit-code
malware-check info
name: فحص أمني
on: [push, pull_request]
jobs:
malware-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: إعداد بايثون
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: تثبيت malware-check
run: pip install malware-check
- name: تشغيل المسح
run: malware-check scan . --format sarif -o results.sarif --exit-code
- name: رفع SARIF
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
malware-check/
├── src/malware_check/
│ ├── cli.py # نقطة الدخول CLI (Click)
│ ├── scanner.py # المنسق + كشف الملفات الاختياري عبر Magika
│ ├── models.py # نماذج بيانات Finding, FileAnalysis, ScanResult
│ ├── analyzers/
│ │ ├── code.py # مطابقة أنماط الشيفرة المصدرية (40+ قاعدة)
│ │ ├── binary.py # تحليل PE/Mach-O/ELF
│ │ ├── privacy.py # المعلومات الشخصية، التتبع، الأذونات
│ │ ├── yara_engine.py # تجميع ومسح قواعد YARA
│ │ └── dynamic.py # تحليل سلوكي في حاوية Docker
│ └── reporters/
│ ├── console_reporter.py # إخراج طرفية غني
│ ├── json_reporter.py # تصدير JSON
│ ├── html_reporter.py # لوحة تحكم HTML (Jinja2)
│ └── sarif_reporter.py # SARIF 2.1.0 لـ CI/CD
├── rules/yara/ # قواعد YARA المضمنة
├── tests/ # مجموعة اختبارات pytest
└── pyproject.toml # بيانات المشروع
أضف القواعد المخصصة إلى أي دليل وقم بتمريرها عبر --yara-rules:
malware-check scan target/ --yara-rules /path/to/my/rules/
تدعم القواعد حقول البيانات الوصفية للخطورة، الفئة، الثقة، CWE، وتخطيط MITRE ATT&CK:
rule My_Custom_Rule {
meta:
description = "كشف نمط برمجية خبيثة مخصصة"
severity = "critical"
category = "backdoor"
confidence = "0.90"
mitre = "T1059"
cwe = "CWE-94"
recommendation = "إزالة الشيفرة الخبيثة"
strings:
$pattern = "suspicious_string"
condition:
$pattern
}
يوفر حماية Docker تحليلًا سلوكيًا مع عزل كامل:
السلوكيات المراقبة:
# استنساخ وتثبيت تبعيات التطوير
git clone https://github.com/momenbasel/malware-check.git
cd malware-check
pip install -e ".[dev]"
# اختياريًا: تضمين إضافات Magika و YARA والثنائية أثناء التطوير
pip install -e ".[dev,full]"
# تشغيل الاختبارات
pytest
# التدقيق
ruff check src/ tests/
رخصة MIT - راجع LICENSE للتفاصيل.
| الفئة | أمثلة الكشف |
|---|
| الأصداف العكسية | بايثون socket+subprocess، باش /dev/tcp، netcat، بوويرشيل TCPClient، socat |
| الأبواب الخلفية | أصداف الويب (PHP/JSP/ASP.NET)، حقن الأوامر (بايثون/JS/جافا/روبي/Go/C)، أصداف مقيدة، مسارات مخفية، تحميل شيفرة عن بُعد، إنشاء مستخدم، SSTI، إلغاء تسلسل غير آمن |
| التعتيم | سلاسل Base64+eval، بناء شيفرة الأحرف، حمولات سداسية عشرية، استيرادات ديناميكية |
| برمجيات التعدين | اتصالات تجمعات Stratum، APIs التعدين، عناوين المحافظ (BTC/ETH/XMR) |
| الفدية | تجوال لتشفير الملفات، رسائل الفدية، أنماط تشفير+إعادة تسمية |
| سرقة بيانات الاعتماد | أسرار مضمنة، سرقة الحافظة، استخراج المتغيرات البيئية، ملفات بيانات الاعتماد في المتصفحات |
| سلسلة التوريد | خطافات تثبيت npm/pip مشبوهة، التباس التبعيات، مستودعات مخصصة |
| الاستمرارية | إنشاء cron/schtasks، مفاتيح التسجيل Run، LaunchAgent/Daemon، التلاعب بـ SUID |
| رفع الصلاحية | التلاعب بتة SUID، setuid(0)، chown root |
| مكافحة التحليل | كشف المصحح، كشف الآلة الافتراضية، استدعاءات TLS، استخدام ptrace |
| مسجّلات المفاتيح | GetAsyncKeyState، SetWindowsHookEx، pynput، CGEventTapCreate |
| الخصوصية | مجموعات تطوير التتبع (40+)، حقول المعلومات الشخصية (SSN، بطاقات الائتمان، القياسات الحيوية، الصحة)، أذونات تطفلية، بصمة الجهاز |
| مؤشرات الملفات الثنائية | ملفات مضغوطة (UPX، انتروبيا عالية)، أقسام RWX، استيرادات مشبوهة، شيفرة غير موقّعة أو معدلة |
| الحماية | التنفيذ |
|---|
| عزل الشبكة | --network none (افتراضي) |
| حد الذاكرة | 512MB |
| حد وحدة المعالجة | 1 نواة |
| حد العمليات | 100 PID |
| نظام ملفات للقراءة فقط | --read-only مع tmpfs لـ /tmp و /evidence |
| الصلاحيات | تم إسقاط الكل (--cap-drop=ALL) |
| رفع الصلاحية | محظور (--security-opt=no-new-privileges) |
| المهلة | قابلة للتخصيص (افتراضي 30 ثانية) |
| التقنية | المعرف | الكشف |
|---|
| Command and Scripting Interpreter | T1059 | الأصداف العكسية، أنماط eval/exec |
| Server Software Component: Web Shell | T1505.003 | أصداف ويب PHP/JSP/ASP |
| Obfuscated Files or Information | T1027 | Base64، شيفرة الأحرف، الترميز السداسي عشر |
| Resource Hijacking | T1496 | تجمعات وأدوات التعدين |
| Data Encrypted for Impact | T1486 | تشفير ملفات الفدية |
| Input Capture: Keylogging | T1056.001 | خطافات ومسجّلات لوحة المفاتيح |
| Scheduled Task/Job | T1053 | Cron، schtasks، LaunchAgent |
| Boot or Logon Autostart | T1547 | مفاتيح التسجيل Run |
| Process Injection | T1055 | VirtualAllocEx + WriteProcessMemory |
| Credentials from Password Stores | T1555 | الوصول إلى ملفات بيانات اعتماد المتصفح |
| Abuse Elevation Control | T1548 | التلاعب بتة SUID |
| Debugger Evasion | T1622 | استدعاءات واجهات برمجة مكافحة التصحيح |
| Supply Chain Compromise | T1195 | خطافات التثبيت الخبيثة |