العودة إلى التحديثات
New releaseJul 31, 2026

macnoise v0.2.0

مولّد تليمتري نظام MacOS قابل للتوسيع.

مشاركة
Description of image

CI Release

MacNoise

يولّد MacNoise تليمتري macOS حقيقيًا: اتصالات الشبكة، وكتابات الملفات، وإطلاق العمليات، وطفرات plist، وفحوصات TCC، والمزيد. وجّهه إلى جهاز يعمل عليه حلاً من EDR أو SIEM أو جدار حماية لديك، وشاهد ما يتم إطلاقه فعليًا - وليس ما تدّعي ورقة بيانات البائع أنه سيتم إطلاقه.

للاطلاع على الخلفية المتعلقة بالدوافع والتصميم، راجع مقالة المدونة الخاصة بالإصدار.

البدء السريع

# البناء (أضف build-amd64 / build-arm64 للترجمة المتقاطعة لـ Darwin، أو release لكليهما)
make build

# سرد الوحدات المتاحة
./macnoise list

# تشغيل وحدة واحدة
./macnoise run net_connect --param target=127.0.0.1 --param port=8080

# معاينة بدون تنفيذ
./macnoise run svc_launch_agent --dry-run

# تشغيل جميع وحدات الشبكة
./macnoise run --category network

# تشغيل سيناريو
./macnoise scenario configs/scenarios/edr_validation.yaml

# إصدار مخرجات JSONL منظمة
./macnoise run --category file --format jsonl --output /tmp/events.jsonl

فئات التليمتري

الفئةالوصفالوحدات
networkاتصالات صادرة، DNS، إشارات beaconing، مستمعون، قذائف عكسية، استخراج بياناتnet_connect, net_listen, net_beacon, net_revshell, net_dns, net_exfil
processإطلاق عمليات، توصيل إشارات، حقن dylib، استكشاف، تجاوز Gatekeeper، osascriptproc_spawn, proc_signal, proc_inject, proc_discovery, proc_gatekeeper, proc_osascript
fileإنشاء ملفات، تعديلها، قراءات بيانات اعتماد المتصفح، أرشفة، إخفاءfile_create, file_modify, file_browser_creds, file_archive, file_hide
tccفحوصات أذونات TCC (FDA، جهات الاتصال، سلسلة المفاتيح)tcc_fda, tcc_contacts, tcc_keychain
endpoint_securityمشغلات أحداث إطار عمل ESes_file, es_process
serviceاستمرارية LaunchAgent/Daemon، cron، ملف تعريف الصدفةsvc_launch_agent, svc_launch_daemon, svc_cron, svc_shell_profile
plistإنشاء وتعديل plistplist_create, plist_modify
xpcتعداد خدمات XPCxpc_connect

الأوامر

macnoise run <module> [--param key=val ...]   تشغيل وحدة محددة
macnoise run --category <cat>                 تشغيل جميع الوحدات في فئة
macnoise run --all                            تشغيل جميع الوحدات
macnoise list [--category <cat>]              سرد الوحدات
macnoise info <module>                        عرض تفاصيل الوحدة والمعاملات وMITRE
macnoise scenario <file.yaml>                 تشغيل سيناريو YAML
macnoise categories                           سرد الفئات مع الأعداد
macnoise version                              طباعة الإصدار

العلامات العامة

العلامةالافتراضيالوصف
--formathumanصيغة الإخراج: human أو jsonl
--output(لا شيء)كتابة الإخراج إلى ملف (بالإضافة إلى stdout)
--verbosefalseإخراج مفصّل بما في ذلك أخطاء التنظيف
--dry-runfalseمعاينة الإجراءات بدون تنفيذ
--timeout30مهلة كل وحدة بالثواني
--audit-log(لا شيء)كتابة سجلات تدقيق OCSF 1.7.0 إلى ملف JSONL
--config(لا شيء)تحميل الافتراضيات من ملف إعدادات YAML

تسجيل التدقيق

يكتب MacNoise مسارين منفصلين. أحداث التليمتري - ما يراه EDR/SIEM فعليًا - تذهب إلى stdout أو إلى --output. أما المسار الثاني الاختياري فيسجّل ما فعله MacNoise نفسه: أي الوحدات تم تشغيلها، ونتائج المتطلبات الأساسية/التنظيف، وخرائط MITRE، بصيغة OCSF 1.7.0 JSONL.

./macnoise scenario configs/scenarios/amos_atomic_stealer.yaml --audit-log /tmp/audit.jsonl

يُفتح سجل التدقيق في وضع الإلحاق، لذلك تتراكم السجلات من عمليات تشغيل متعددة في ملف واحد لتحليل الدُفعات. إذا كنت تضيف وحدة وتريد معرفة كيف يُصنَّف نوع حدث جديد في OCSF، فانظر CONTRIBUTING.md.

مرجع الوحدات

توثيق الوحدات موجود بجانب كل فئة:

السيناريوهات

تربط السيناريوهات الوحدات في تسلسلات مرتبة - ملف YAML واحد يعيد تشغيل نمط اختراق متعدد المراحل ضد كشفك.

الملفالوصف
network_only.yamlجميع وحدات الشبكة
edr_validation.yamlتغطية شاملة لكشف EDR
full_sweep.yamlجميع الفئات
lazarus_group.yamlمجموعة Lazarus: حقن dylib، اكتشاف الخدمات، قذيفة عكسية، استمرارية plist
amos_atomic_stealer.yamlAMOS / Atomic Stealer: مسرّب معلومات MaaS، تجاوز Gatekeeper، تفريغ سلسلة المفاتيح، استخراج ZIP، استمرارية باب خلفي

يتبع سيناريو APT الاثنان تسلسلات اختراق حقيقية موثقة، تقنية بتقنية - كل ملف YAML يستشهد باستخبارات التهديدات الفعلية التي بُني منها ويعلّق على كل خطوة بتقنية MITRE التي يمارسها، لذا ابدأ هناك للحصول على التفصيل الكامل بدلاً من إعادة سردها هنا.

جرّب المعاينة أولاً:

./macnoise scenario configs/scenarios/<scenario>.yaml --dry-run

طابق ذلك مع SIEM/EDR لديك: كل تعليق خطوة يسمّي التقنية التي يجب أن تؤدي إلى إطلاقها. غياب تنبيه مطابق بعد تشغيل فعلي هو فجوة في تغطيتك.

كتابة السيناريو الخاص بك:

name: My Custom Scenario
steps:
  - module: net_connect
    params:
      target: "192.168.1.1"
      port: "443"
  - category: file
    params:
      base_dir: "/tmp/test"

المساهمة

انظر CONTRIBUTING.md لإضافة وحدات جديدة وأسلوب الكود وعملية طلب السحب الكاملة.

الإصدارات مؤتمتة - release-please يصدر نسخة جديدة مباشرة من عنوان Conventional Commit لطلب السحب الخاص بك، لذلك فإن feat: add net_tls module أو fix: correct beacon jitter هو عنوان طلب السحب وإدخال سجل التغييرات معًا.

إخلاء المسؤولية

MacNoise مخصص لاختبار الأمان المصرّح به، والتحقق من صحة EDR، وهندسة الكشف على الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها. لا يتحمل المؤلفون أي مسؤولية عن سوء الاستخدام.

سياسة كود الذكاء الاصطناعي

المساهمات بكود الذكاء الاصطناعي مرحّب بها، ولكن يرجى تذكّر أن مراجعة الكود حاليًا ستكون عملية يقودها البشر، مما يعني أن هناك حدودًا لما يمكننا مراجعته من كود. يرجى قصر طلبات السحب على إصلاح محدد أو وحدة تليمتري جديدة. طلبات السحب ذات التغييرات الواسعة النطاق سيُرجَّح إغلاقها.

الفئات