
ماسح إنتروبيا لنظام لينكس لكشف الملفات الثنائية المضغوطة أو المشفرة المتعلقة بالبرامج الضارة. يجد الملفات الخبيثة وعمليات لينكس ويقدم مخرجات تحتوي على تجزئات تشفيرية.
sandfly-entropyscan هي أداة لمسح الملفات أو العمليات الجارية بسرعة والإبلاغ عن الإنتروبيا الخاصة بها (مقياس العشوائية) وما إذا كانت ملفات تنفيذية من نوع ELF في لينكس/يونكس. بعض البرامج الضارة للينكس تكون معبأة (مضغوطة) أو مشفرة وتظهر إنتروبيا عالية جدًا. يمكن لهذه الأداة العثور بسرعة على الملفات والعمليات التنفيذية ذات الإنتروبيا العالية والتي غالبًا ما تكون ضارة.
الإنتروبيا هي مقياس للعشوائية. بالنسبة للبيانات الثنائية، 0.0 يعني غير عشوائي و8.0 يعني عشوائي تمامًا. التشفير الجيد يبدو مثل ضوضاء بيضاء عشوائية ويكون قريبًا من 8.0. الضغط الجيد يزيل البيانات المكررة مما يجعلها تبدو أكثر عشوائية مما لو كانت غير مضغوطة وعادةً ما تكون 7.7 أو أعلى. الكثير من الملفات التنفيذية الضارة تكون معبأة لتجنب الكشف وجعل الهندسة العكسية أصعب. معظم الثنائيات القياسية في لينكس غير معبأة لأنها لا تحاول إخفاء ماهيتها. البحث عن الملفات ذات الإنتروبيا العالية هو طريقة جيدة للعثور على برامج قد تكون ضارة فقط من خلال امتلاك هاتين الخاصيتين: الإنتروبيا العالية والتنفيذية.
استخدام sandfly-entropyscan:
-csv
إخراج النتائج بصيغة CSV (اسم الملف، المسار، الإنتروبيا، ملف_ELF [صحيح|خاطئ]، 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 لمستخدم). على سبيل المثال:
هل ظهر ملف ثنائي عالي الإنتروبيا تحت دليل /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
git clone https://github.com/sandflysecurity/sandfly-entropyscan.git
go build
./sandfly-entropyscan
هناك بعض سكريبتات البناء الأساسية التي تبني لمنصات متعددة. يمكنك استخدامها للبناء أو التعديل حسب الحاجة. بالنسبة للمستجيبين للحوادث، قد يكون من المفيد الاحتفاظ بثنائيات مترجمة مسبقًا جاهزة للاستخدام على صندوق التحقيق الخاص بك.
build.sh - بناء لنظام التشغيل الحالي الذي تقوم بتشغيله عند تنفيذه.
نستخدم طريقة بسيطة لمعرفة ما إذا كان الملف قد يكون من نوع ELF قابل للتنفيذ. يمكننا اكتشاف ملفات بصيغة ELF لمنصات متعددة. حتى إذا كانت البرامج الضارة تحتوي على ثنائيات إسقاط لـ Intel/AMD و MIPS و Arm، سنظل قادرين على اكتشافها جميعًا.
من الممكن أن يتم وضع علامة على ثنائي شرعي ذو إنتروبيا عالية بسبب طريقة تجميعه، أو لأنه تم تعبئته لأسباب مشروعة. الملفات الأخرى مثل .zip و .gz و .png و .jpg وما شابه ذلك لها أيضًا إنتروبيا عالية جدًا لأنها صيغ مضغوطة. الضغط يزيل التكرار في الملف مما يجعله يبدو أكثر عشوائية وذو إنتروبيا أعلى. في لينكس، قد تجد بعض أنواع المكتبات (ملفات .so) يتم وضع علامة عليها إذا قمت بمسح دلائل المكتبات. ومع ذلك، من تجربتنا أن الثنائيات التنفيذية التي تحتوي أيضًا على إنتروبيا عالية غالبًا ما تكون ضارة. هذا صحيح بشكل خاص إذا وجدتها في مناطق حيث لا ينبغي أن تكون الملفات التنفيذية عادةً (مثل دلائل tmp أو html مرة أخرى).
حساب الإنتروبيا يتطلب قراءة جميع بايتات الملف وإحصائها للحصول على رقم نهائي. يمكن أن يستهلك الكثير من وحدة المعالجة المركزية وإدخال/إخراج القرص، خاصة على أنظمة الملفات الكبيرة جدًا أو الملفات الكبيرة جدًا. يحتوي البرنامج على حد داخلي حيث لن يحسب الإنتروبيا لأي ملف يتجاوز 2 جيجابايت، ولن يحاول حساب الإنتروبيا لأي ملف ليس من نوع ملف عادي (على سبيل المثال، لن يحاول حساب الإنتروبيا على أجهزة مثل /dev/zero).
ثم نقوم بحساب تجزئات MD5 وSHA1 وSHA256 وSHA512. كل واحد من هذه يتطلب المرور على الملف أيضًا. السرعة معقولة على الأنظمة الحديثة، ولكن إذا كنت تتصفح نظام ملفات كبير جدًا فقد يستغرق الأمر بعض الوقت لإكماله.
إذا أخبرت البرنامج بالنظر فقط إلى ملفات ELF، فلن تحدث حسابات الإنتروبيا/التجزئة إلا إذا كان من نوع ELF، وهذا سيوفر الكثير من الوقت (على سبيل المثال، سيتجاهل ملفات قواعد البيانات الضخمة غير القابلة للتنفيذ).
إذا كنت ترغب في أتمتة هذا البرنامج، فمن الأفضل عدم جعله يزحف على نظام الملفات الجذر بأكمله إلا إذا كنت تريد ذلك تحديدًا. النهج المستهدف سيكون أسرع وأكثر فائدة للفحوصات الموضعية. أيضًا، استخدم علامة ELF لأن ذلك سيقلل بشكل كبير من أوقات البحث عن طريق معالجة أنواع الملفات التنفيذية فقط.
بالنسبة للمستجيبين للحوادث، قد يكون تشغيل sandfly-entropyscan على الدليل الجذر "/" بأكمله فكرة جيدة فقط للحصول بسرعة على قائمة بالمرشحين المحتملين المعبأين للتحقيق. هذا سيرفع استخدام وحدة المعالجة المركزية وإدخال/إخراج القرص. ومع ذلك، ربما لا تهتم في تلك المرحلة لأن الجهاز كان يقوم بتعدين العملات الرقمية لمدة 598 ساعة على أي حال بحلول الوقت الذي لاحظ فيه المسؤولون. مرة أخرى، استخدم علامة ELF للوصول إلى الملفات التنفيذية المرشحة للمشكلة المحتملة وتجاهل الضوضاء.
هناك سكريبت يسمى scripts/testfiles.sh سينشئ ملفين. واحد سيكون مليئًا ببيانات عشوائية والآخر لن يكون عشوائيًا على الإطلاق. عند تشغيل السكريبت، سينشئ الملفات ويشغل sandfly-entropyscan في وضع كشف الملفات التنفيذية. يجب أن ترى ملفين. واحد بإنتروبيا عالية جدًا (عند أو قرب 8.0) وآخر مليء ببيانات غير عشوائية يجب أن يكون عند 0.00 للإنتروبيا المنخفضة. مثال:
./testfiles.sh
Creating high entropy random executable-like file in current directory.
Creating low entropy executable-like file in current directory.
high.entropy.test, entropy: 8.00, elf: true
low.entropy.test, entropy: 0.00, elf: true
يمكنك أيضًا تحميل أداة upx وضغط ملف تنفيذي ورؤية القيم التي يعيدها.
تنتج Sandfly Security منصة كشف نقاط النهاية والاستجابة للحوادث (EDR) بدون وكيل للينكس. الفحوصات الآلية للإنتروبيا هي مجرد واحدة من آلاف الأشياء التي نبحث عنها للعثور على المتسللين دون تحميل أي برامج على نقاط النهاية الخاصة بك في لينكس.
احصل على ترخيص مجاني وتعلم المزيد أدناه:
https://www.sandflysecurity.com @SandflySecurity