Sandfly-Entropyscan - أداة للكشف عن الثنائيات المعبأة أو المشفرة المتعلقة بالبرامج الضارة ، والعثور على الملفات الضارة وعمليات Linux وإعطاء مخرجات مع تجزئة التشفير
ما هو انتروبيسكان ذبابة الرمل؟
ما هو انتروبيسكان ذبابة الرمل؟
sandfly-entropyscan
هي أداة لفحص الملفات بسرعة أو تشغيل العمليات وإعداد تقرير عن إنتروبياها (قياس العشوائية) وإذا كانت من نوع Linux / Unix ELF القابل للتنفيذ.
تكون بعض البرامج الضارة لنظام التشغيل Linux معبأة أو مشفرة وتظهر نسبة عالية جدًا من الانتروبيا.
يمكن لهذه الأداة العثور بسرعة على الملفات والعمليات القابلة للتنفيذ عالية الإنتروبيا والتي غالبًا ما تكون ضارة.
لماذا تفحص إنتروبيا؟
الانتروبيا هو مقياس العشوائية. بالنسبة إلى البيانات الثنائية ، فإن 0.0 ليست عشوائية و 8.0 عشوائية تمامًا. يبدو التشفير الجيد وكأنه ضوضاء بيضاء عشوائية وسيكون بالقرب من 8.0.
يزيل الضغط الجيد البيانات الزائدة مما يجعلها تظهر بشكل عشوائي أكثر مما لو كانت غير مضغوطة وعادة ما تكون 7.7 أو أعلى.
يتم تعبئة الكثير من البرامج الضارة التنفيذية لتجنب الاكتشاف وجعل الهندسة العكسية أكثر صعوبة.
معظم ثنائيات Linux القياسية غير معبأة لأنها لا تحاول إخفاء ما هي عليه.
يعد البحث عن ملفات إنتروبيا عالية طريقة جيدة للعثور على البرامج التي يمكن أن تكون ضارة فقط من خلال امتلاك هاتين السمتين من إنتروبيا عالية وقابلة للتنفيذ.
كيف أستخدم هذا؟
إستعمال sandfly-entropyscan
:
-csv
نتائج الإخراج بتنسيق CSV (اسم الملف ، المسار ، الانتروبيا ، elf_file [صحيح | خطأ] ، MD5 ، SHA1 ، SHA256 ، SHA512)
-delim
تغيير المحدد الافتراضي لملفات CSV لـ "،" إلى واحد من اختيارك ("|" ، وما إلى ذلك)
-dir string
اسم الدليل للتحليل
-file string
المسار الكامل إلى ملف واحد لتحليله
-proc
تحقق من العمليات الجارية (الاختيار الافتراضي لـ ELF فقط)
-elf
تحقق فقط من الملفات التنفيذية ELF
-entropy float
عرض أي ملف / عملية ذات إنتروبيا أكبر من أو تساوي هذه القيمة (0.0 دقيقة - 8.0 كحد أقصى ، الإعدادات الافتراضية 0 لإظهار جميع الملفات)
-version
عرض الإصدار والخروج
أمثلة
ابحث عن أي ملف قابل للتنفيذ تحت / tmp:
sandfly-entropyscan -dir /tmp -elf
ابحث عن الملفات التنفيذية عالية الإنتروبيا (7.7 أو أعلى) (غالبًا ما تكون معبأة أو مشفرة) ضمن / var / www:
sandfly-entropyscan -dir /var/www -elf -entropy 7.7
يولد تجزئات إنتروبيا وتشفير لجميع العمليات الجارية بتنسيق CSV:
sandfly-entropyscan -proc -csv
ابحث عن أي عملية ذات إنتروبيا أعلى من 7.7 تشير إلى أنه من المحتمل أن تكون معبأة أو مشفرة:
sandfly-entropyscan -proc -entropy 7.7
قم بإنشاء قيم تجزئة إنتروبي وتشفير لجميع الملفات الموجودة ضمن / bin وإخراجها إلى تنسيق CSV (على سبيل المثال لحفظ التجزئة ومقارنتها):
sandfly-entropyscan -dir /bin -csv
مسح دليل لجميع الملفات (ELF أو لا) مع إنتروبيا أكبر من 7.7: (يحتمل أن تكون قائمة كبيرة من الملفات المضغوطة ، png ، jpg ، ملفات الكائنات ، إلخ.)
sandfly-entropyscan -dir /path/to/dir -entropy 7.7
تحقق سريعًا من ملف وإنشاء إنتروبيا وتجزئات تشفير وإظهار ما إذا كان قابلاً للتنفيذ:
sandfly-entropyscan -file /dev/shm/suspicious_file
استخدم حالات
قم بإجراء فحوصات فورية للأنظمة التي تعتقد أنها بها مشكلة في البرامج الضارة.
أو يمكنك أتمتة الفحص بحيث تحصل على مخرجات إذا وجدنا شيئًا ما يمثل نسبة عالية من الانتروبيا في مكان لم تكن تتوقعه.
أو قم ببساطة بوضع علامة على أي ملف من نوع ELF قابل للتنفيذ يكون غريبًا في مكان ما (على سبيل المثال ، معلق في / tmp أو تحت دليل HTML الخاص بالمستخدم).
على سبيل المثال:
هل ظهر ثنائي إنتروبيا مرتفع ضمن دليل system / var / www؟ يمكن أن يكون شخص ما قد وضع قطارة برامج ضارة على موقع الويب الخاص بك:
sandfly-entropyscan -dir /var/www -elf -entropy 7.7
قم بإعداد مهمة cron لمسح الدلائل / tmp و / var / tmp و / dev / shm الخاصة بك لأي نوع من الملفات القابلة للتنفيذ سواء كانت إنتروبيا عالية أم لا.
يمكن أن تكون الملفات القابلة للتنفيذ ضمن أدلة tmp في كثير من الأحيان أداة قطارة للبرامج الضارة.
sandfly-entropyscan -dir /tmp -elf
sandfly-entropyscan -dir /var/tmp -elf
sandfly-entropyscan -dir /dev/shm -elf
قم بإعداد cron آخر أو عملية مسح أمان آلية للتحقق من أنظمتك بحثًا عن الثنائيات شديدة الضغط أو المشفرة التي تعمل:
sandfly-entropyscan -proc -entropy 7.7
يبني
- قم بتثبيت أحدث إصدار من golang ( www.golang.org )
استنساخ الريبو:
git clone https://github.com/sandflysecurity/sandfly-entropyscan.git
انتقل إلى دليل الريبو وقم ببنائه:
go build
قم بتشغيل الثنائي بخياراتك:
./sandfly-entropyscan
بناء البرامج النصية
هناك بعض البرامج النصية الأساسية للبناء التي يتم إنشاؤها لمنصات مختلفة.
يمكنك استخدام هذه لبناء أو تعديل لتناسب.
بالنسبة إلى المستجيبين للحوادث ، قد يكون من المفيد إبقاء الثنائيات المجمعة مسبقًا جاهزة للعمل في مربع التحقيق الخاص بك.
build.sh
- أنشئ لنظام التشغيل الحالي الذي تعمل عليه عند تنفيذه.
كشف ELF
نستخدم طريقة بسيطة لمعرفة ما إذا كان الملف من نوع ELF القابل للتنفيذ. يمكننا تحديد ملفات بتنسيق ELF لمنصات متعددة.
حتى إذا كانت البرامج الضارة تحتوي على ثنائيات Intel / AMD و MIPS وقطارة Arm ، فلا يزال بإمكاننا اكتشافها جميعًا.
ايجابيات مزيفة
من الممكن وضع علامة على ثنائي شرعي يحتوي على نسبة عالية من الانتروبيا بسبب كيفية تجميعه ، أو لأنه تم تعبئته لأسباب مشروعة.
تحتوي الملفات الأخرى مثل .zip و. gz و. png و. jpg ومثل هذه أيضًا على نسبة عالية جدًا من الانتروبيا لأنها تنسيقات مضغوطة.
يزيل الضغط التكرار في الملف مما يجعله يبدو أكثر عشوائية وله إنتروبيا أعلى.
في Linux ، قد تجد بعض أنواع المكتبات (ملفات .so) يتم وضع علامة عليها إذا قمت بمسح أدلة المكتبة.
ومع ذلك ، فمن خبرتنا أن الثنائيات القابلة للتنفيذ التي تحتوي أيضًا على نسبة عالية من الانتروبيا غالبًا ما تكون ضارة.
هذا صحيح بشكل خاص إذا وجدتها في مناطق لا يجب أن تكون فيها الملفات التنفيذية عادةً (مثل مرة أخرى tmp
أو html
أدلة).
أداء
يتطلب حساب الانتروبيا قراءة جميع بايتات الملف وتجميعها للحصول على الرقم النهائي.
يمكن أن تستخدم الكثير من وحدة المعالجة المركزية و I / O القرص ، خاصة على أنظمة الملفات الكبيرة جدًا أو الملفات الكبيرة جدًا.
يحتوي البرنامج على حد داخلي حيث لن يقوم بحساب الانتروبيا على أي ملف يزيد حجمه عن 2 غيغابايت ، ولن يحاول حساب الانتروبيا على أي ملف ليس من نوع ملف عادي (على سبيل المثال ، لن يحاول حساب الكون على أجهزة مثل /dev/zero
).
ثم نحسب تجزئات MD5 و SHA1 و SHA256 و SHA512. كل من هذه تتطلب مراجعة الملف أيضًا.
إنها سرعة معقولة على الأنظمة الحديثة ، ولكن إذا كنت تقوم بالزحف إلى نظام ملفات كبير جدًا ، فقد يستغرق الأمر بعض الوقت حتى يكتمل.
إذا طلبت من البرنامج أن ينظر فقط إلى ملفات ELF ، فلن تحدث حسابات الانتروبيا / التجزئة إلا إذا كان من نوع ELF وسيوفر هذا الكثير من الوقت (على سبيل المثال ، سيتجاهل ملفات قاعدة البيانات الضخمة غير القابلة للتنفيذ) .
إذا كنت تريد أتمتة هذا البرنامج ، فمن الأفضل عدم قيامه بالزحف إلى نظام الملفات الجذر بالكامل إلا إذا كنت تريد ذلك على وجه التحديد.
سيكون النهج المستهدف أسرع وأكثر فائدة لعمليات الفحص الفوري.
أيضًا ، استخدم علامة ELF لأن ذلك سيؤدي إلى تقليل أوقات البحث بشكل كبير من خلال معالجة أنواع الملفات القابلة للتنفيذ فقط.
الاستجابة للحادث
بالنسبة إلى المستجيبين للحوادث ، sandfly-entropyscan
قد يكون التنافس على دليل "/" ذو المستوى الأعلى فكرة جيدة فقط للحصول بسرعة على قائمة بالمرشحين المحتملين المحتملين للتحقيق.
سيؤدي هذا إلى زيادة وحدة المعالجة المركزية والقرص I / O.
ومع ذلك ، ربما لا تهتم في هذه المرحلة لأن الصندوق كان يقوم بتعدين العملة المشفرة لمدة 598 ساعة على أي حال بحلول الوقت الذي لاحظ فيه المسؤولون.
مرة أخرى ، استخدم علامة ELF للوصول إلى الملفات التنفيذية المرشحة للمشكلة المحتملة وتجاهل الضوضاء.
اختبارات
هناك برنامج نصي يسمى scripts/testfiles.sh
الذي سينشئ ملفين.
سيكون أحدهم مليئًا بالبيانات العشوائية ولن يكون الآخر عشوائيًا على الإطلاق.
عند تشغيل البرنامج النصي ، سيتم إنشاء الملفات وتشغيلها sandfly-entropyscan
في وضع الكشف القابل للتنفيذ.
يجب أن تشاهد ملفين.
واحد يحتوي على نسبة عالية جدًا من الانتروبيا (عند أو بالقرب من 8.0) والآخر مليء بالبيانات غير العشوائية التي يجب أن تكون عند 0.00 للإنتروبيا المنخفضة. مثال:
./testfiles.sh
إنشاء ملف يشبه إنتروبيا عشوائي قابل للتنفيذ في الدليل الحالي.
إنشاء ملف شبه قابل للتنفيذ غير قابل للتنفيذ في الدليل الحالي.
high.entropy.test ، إنتروبيا: 8.00 ، قزم: صحيح
low.entropy.test ، إنتروبيا: 0.00 ، قزم: صحيح
يمكنك أيضًا تحميل upx
الأداة المساعدة وضغط ملف قابل للتنفيذ ومعرفة القيم التي ترجعها.
أمان Linux بدون وكيل
تنتج Sandfly Security نظامًا أساسيًا لاكتشاف نقاط النهاية والاستجابة للحوادث (EDR) لنظام Linux.
عمليات فحص الانتروبيا الآلية هي مجرد واحد من آلاف الأشياء التي نبحث عنها للعثور على الدخلاء دون تحميل أي برنامج على نقاط نهاية Linux الخاصة بك.
احصل على ترخيص مجاني وتعلم المزيد أدناه: