
منصة أبحاث أمن البرامج الثابتة تجمع بين تحليل الثنائيات، وتتبع التلوث، والمحاكاة عبر إنترنت الأشياء، والذكاء الاصطناعي الطرفي، والأجهزة المحمولة، والروبوتات.
مجموعة أدوات تحليل البرامج الثابتة هي مجموعة أدوات بحث أمني للتحقيق في أمن البرامج الثابتة لأجهزة إنترنت الأشياء والذكاء الاصطناعي الفيزيائي والأجهزة المحمولة والروبوتات. وهي مبنية بشكل أساسي لدورة تدريب "Offensive IoT Exploitation" التي تقدمها Attify.
تم بناؤها بناءً على خبرة ميدانية عملية حقيقية حول ما يهم فعلاً عندما يتعلق الأمر بالتحقيقات الحقيقية في أمن البرامج الثابتة.
هدف FAT ليس فقط بناء مجموعة أدوات استثنائية عالمية المستوى لأبحاث أمن البرامج الثابتة، بل أيضاً تكوين محترفين وممارسين يعملون بأقصى إمكاناتهم، حيث تصبح الأداة قوة إدراكية فائقة إذا استُخدمت بطرق معينة، مع بقائها سهلة بما يكفي لمن هم جدد في هذا المجال.
تتضمن بعض الميزات تصنيف البرامج الثابتة غير المعروفة، واستخراج أنظمة الملفات، ورسم خرائط الكود ذي الصلة بالثقة، وتتبع تدفق البيانات، وتنسيق محاكاة QEMU.
استنسخ المستودع، ثم ابنِ باستخدام Rust 1.90 أو أحدث، ثم ثبّت:
git clone https://github.com/attify/firmware-analysis-toolkit.git
cd firmware-analysis-toolkit
cargo build --release --locked
cargo install --path crates/fat_cli --locked
fat doctor
مثبّت بنقرة واحدة:
./scripts/install.sh --install-system-deps
راجع INSTALL.md لمزيد من التخصيص في عملية التثبيت.
fat -hfat $firmware أو fat identify --file $firmwarefat new $firmwarefat extract $firmwarefat analyze $firmwarefat emulate --project $firmwarefat ./firmware.bin
fat inspect update --file ./firmware.bin --rootfs ./rootfs --reference ./older.bin
خط الأنابيب من البداية السريعة، من البداية إلى النهاية:
fat new ./firmware.bin
fat extract .fat-projects/firmware
fat analyze .fat-projects/firmware
fat preflight .fat-projects/firmware
fat emulate --project .fat-projects/firmware
fat r2-triage --file ./usr/sbin/httpd --json
fat taint --file ./www/cgi-bin/diag.cgi --summary
fat taint-query --file ./www/cgi-bin/diag.cgi
fat taint-cross --rootfs ./rootfs
fat taint-cross --rootfs ./rootfs --source-profile ./my-target-models.yaml --state-profile ./my-target-state.yaml
fat taint --lang shell --file ./app/init/wifi.sh --summary
fat taint --lang shell --rootfs ./extracted-rootfs --json
fat taint --lang shell --rootfs ./extracted-rootfs --source-profile ./my-target-shell.yaml --severity high
ابحث عن نقاط التسرب بشكل ثابت، ثم جهّز خطافات وقت التشغيل لنفس العناوين:
fat r2-triage --file ./usr/sbin/httpd --json
fat sink-discovery --file ./usr/sbin/httpd --json > sinks.json
fat handler-table --file ./usr/sbin/httpd --json > handlers.json
fat taint --file ./usr/sbin/httpd --sink-candidates sinks.json --json > taint.json
fat instrument-hooks --from-sinks sinks.json --output hooks.yaml
fat emulate --project .fat-projects/firmware --instrument hooks.yaml
fat tree --rootfs ./rootfs --profile inventory --summary --json
fat search --rootfs ./rootfs --profile credentials -I --context 2
fat startup-map --rootfs ./rootfs --profile cloud-tls
fat crypto-census --rootfs ./rootfs
fat trust-map --rootfs ./rootfs
fat invariant query \
--fixture tests/fixtures/query/source/invariant-permission \
--rule 'Every privileged override method must call enforcePermission()'
fat patch check --help
fat verify --help
تم تأليف FAT بواسطة adi0x90، وهو أيضاً المشرف الحالي والمساهم الرئيسي. تتم صيانة المشروع تحت Attify.
FAT 2.0 متاح المصدر بموجب FSL-1.1-ALv2. راجع LICENSING.md و THIRD_PARTY_NOTICES.md لمزيد من التفاصيل.
| المستند | ماذا يحتوي؟ |
|---|
| INSTALL.md | الأدوات الخارجية وإعداد المكونات الاختيارية |
| docs/commands.md | مرجع كامل للأوامر، مجمّع حسب المهمة |
| docs/capabilities.md | تصدير الرسوم البيانية، البحث عن النصوص، التشفير، الذكاء الاصطناعي الطرفي، نية بدء التشغيل، حزم إعادة الاستضافة |
| docs/epistemics.md | كيفية قراءة مخرجات FAT: ما تثبته النتائج وما لا تثبته |
| docs/architecture.md | حزم مساحة العمل ونقاط التوسعة |
| DEVELOPMENT.md | سير عمل البناء والاختبار |
| CONTRIBUTING.md | الإعداد، قائمة مراجعة PR، ودليل المساهمة |