
Stringsifter هي أداة تعلم آلي تصنف الأوتار تلقائيًا بناءً على أهميتها لتحليل البرامج الضارة.
يتطلب Stringsifter Python الإصدار 3.9 أو الأحدث. قم بتشغيل الأوامر التالية للحصول على الكود ، وتشغيل اختبارات الوحدة ، واستخدم الأداة:
pip install stringsifterللتنمية ، استخدم الشعر:
git clone https://github.com/mandiant/stringsifter.git
cd stringsifter
poetry install --with devلتشغيل اختبارات الوحدة من دليل تثبيت StringSifter:
poetry run tests -v يقوم أمر pip install flarestrings اثنين من البرامج النصية القابلة للتشغيل و rank_strings في بيئة Python الخاصة بك. عند التطور من المصدر ، استخدم pipenv run flarestrings و pipenv run rank_strings .
يقدّر flarestrings ميزات strings Gnu BinuTils ، ويقبل rank_strings إدخال الأنابيب ، على سبيل المثال:
flarestrings < my_sample > | rank_strings rank_strings يدعم عدد من وسيطات سطر الأوامر. تحدد الوسيطة الموضعية input_strings ملفًا من السلاسل إلى الترتيب. الحجج الاختيارية هي:
| خيار | معنى |
|---|---|
| -الدرجات (-S) | تشمل درجات الترتيب في الإخراج |
| -محدد (-L) | الحد من الإخراج إلى limit الأعلى في المرتبة |
| -درجة الحمل (-M) | الحد من الإخراج إلى السلاسل مع درجة> = min-score |
| -دفعة (-b) | حدد مجلد من مخرجات strings لمعالجة الدُفعات |
تتم كتابة السلاسل المرتبة إلى الإخراج القياسي ما لم يتم تحديد خيار --batch ، مما تسبب في كتابة المخرجات المرتبة إلى الملفات المسماة <input_file>.ranked_strings .
يدعم flarestrings خيار- -n (أو-- --min-len ) لطباعة تسلسلات الأحرف التي تتراوح ما لا يقل عن أحرف min-len طويلة ، بدلاً من الافتراضي 4. على سبيل المثال:
flarestrings -n 8 < my_sample > | rank_stringsسوف تطبع وترتيب سلاسل الطول فقط 8 أو أكثر.
docker build -t stringsifter -f docker/Dockerfile .flarestrings أو rank_strings لاستخدام الأمر المعني. يمكن استخدام أوامر الحاويات في خطوط الأنابيب: cat < my_sample > | docker run -i stringsifter flarestrings | docker run -i stringsifter rank_strings-v لفضح دليل المضيف إلى الحاوية: docker run -v < my_malware > :/samples -it stringsifter حيث يحتوي <my_malware> على عينات للتحليل ، على سبيل المثال:
docker run -v $HOME /malware/binaries:/samples -it stringsifterflarestrings /samples/ < my_sample > | rank_strings < options >يتم دعم جميع وسيطات سطر الأوامر في البرامج النصية.
يمكن تطبيق StringSifter على قوائم تعسفية للسلاسل ، مما يجعلها مفيدة للممارسين الذين يتطلعون إلى جمع رؤى من مصادر تجميع الذكاء البديلة مثل مقالب الذاكرة الحية أو تشغيل صندوق الرمل أو الثنائيات التي تحتوي على سلاسل مملوءة. على سبيل المثال ، تقوم FireEye Labs بتخليص السلاسل (Floss) سلاسل قابلة للطباعة مثلما تفعل الأوتار ، ولكنها تكشف بالإضافة إلى ذلك عن سلاسل مشفرة أو معبأة أو تم بناؤها يدويًا على المكدس. يمكن استخدامه كبديل في الخط للسلاسل ، مما يعني أنه يمكن استدعاء StringSifter بالمثل في إخراج الخيط باستخدام الأمر التالي:
$PY2_VENV /bin/floss –q < options > < my_sample > | rank_strings < options >ملحوظات:
–q الرؤوس وتنسيقها لإظهار السلاسل المستخرجة فقط. لمعرفة المزيد حول خيارات الخيط الإضافية ، يرجى الاطلاع على مستندات الاستخدام.floss أو rank_strings مسارًا نسبيًا يشير إلى enviroment الظاهري Python.strings الجري يتضمن هذا التوزيع برنامج flarestrings لضمان الإخراج المتوقع عبر المنصات. إذا اخترت تشغيل strings المثبتة لنظامك ، لاحظ أن خياراته ليست متسقة عبر الإصدارات والمنصات:
تشمل معظم توزيعات Linux برنامج strings من Gnu BinuTils. لاستخراج سلاسل "واسعة" و "ضيقة" ، يجب تشغيل البرنامج مرتين ، ويقوم بالأنابيب إلى ملف الإخراج:
strings < my_sample > > strs.txt # narrow strings
strings -el < my_sample > >> strs.txt # wide strings. note the ">>" بعض إصدارات strings BSD المعبأة مع MacOS لا تدعم سلاسل واسعة. لاحظ أيضًا أن خيار -a للسلاسل لمسح الملف قد يتم تعطيله في التكوين الافتراضي. -a سلاسل مفيدة قد تضيع. نوصي بتثبيت GNU BinuTils عبر homebrew أو macports للحصول على إصدار من strings التي تدعم أحرف واسعة. استخدم الرعاية لاستدعاء الإصدار الصحيح من strings .
لا يتم تثبيت strings افتراضيًا على Windows. نوصي بتثبيت حزمة محلل Windows Sysinternals أو Cygwin أو Malcode للحصول على strings عمل.
تم تدريب هذا الإصدار من Stringsifter باستخدام مخرجات السلاسل من ثنائيات البرامج الضارة التي تم أخذ عينات منها المرتبطة بمجموعة بيانات EMBER الأولى. تم إنشاء الملصقات الترتيبية باستخدام إجراءات الإشراف الضعيفة ، ويتم تنفيذ التعلم الخاضع للإشراف عن طريق الأشجار التي تعززها التدرج مع وظيفة موضوعية التعلم. انظر الروابط السريعة لمزيد من التفاصيل الفنية. يرجى ملاحظة أنه لا تتوفر حاليًا البيانات المسمى أو رمز التدريب ، على الرغم من أننا قد نعيد النظر في هذا النهج في الإصدارات المستقبلية.
نستخدم مشكلات github لنشر الأخطاء وطلبات الميزات.
flarestrings مشتقة من خيط الأداة الممتازة.