titanium

Plus Hacker
إنضم
15 يوليو 2019
المشاركات
346
مستوى التفاعل
452
النقاط
63
العمر
32
ماهو Entropy وكيف يتم كشف الفيروسات المضغوطة و المشفرة بخوارزمية
السلام عليكم ورحمة الله وبركاته

موضوع اليوم مهم جدا لكل من يقوم بالتشفير فهو يساعد في اطالة عمر التشفيرة
لكن للاسف لم أرى شخص تحدث عنه من قبل في المنتديات العربية رغم ان المقال من 2014.
قد ترى أن في بداية قراءتك للموضوع انه معقد لكن في الاخير سأعطيك خلاصة لكشف الانتروبيا بواسطة برنامج وانت قم بتخفيضها لاقصى حد ممكن.
هناك عدة عوامل تعتمد عليها الانتي فيروس في كشف Malware
الفحص الاولي او ما يسمى ScanTime اي Static بدون تشغيل
نذكر منها
  1. حجم الملف يجب ان يتجاوز 1 ميجا
  2. التوقيع
  3. الايقونة او بدون ايقونة
  4. الانتروبيا Entropy وهي موضوعنا اليوم
الفحص الثاني وهو ما نطلق عليه الدفاع الاستباقي ProActive Defence ويسمى Runtime اي وقت التشغيل ويسمى ايضا بالسلوك Behaviour
حيث يقوم الانتي فيروس بتشغيل الملف في بيئة وهمية ويلاحظ اي تغيرات تطرأ على الجهاز مثل
  1. مكان تشغيل الملف اغلب التروجان يستهدف Appdata و Temp
  2. الحقن لمن يستخدم Runpe في التشفير وتخطي Firewall
  3. نسخ الملف لمكان اخر واستخدام اسماء عشوائية
  4. أماكن تثبيت التروجان مثل Registry و مجلد Sturtup لكن المهام المجدولة تقريبا غير مكشوفة بكثرة
malware-detection-using-machine-learning-21-638.jpg


ماهو Entropy وكيف يتم كشف الفيروسات المضغوطة و المشفرة بخوارزمية

قام Javier Nieto في مقالته بتحليل 1000 عينة عشوائية من البرامج الضارة. تم إجراء التحليل أولاً بتوقيعات برنامج PEID ، ثم بتوقيعات برنامج DIE .
بناءً على هذا العمل ، توصل إلى استنتاج مفاده أن غالبية البرامج الضارة ليست معبأة. ولكن هل هذا هو الحال فعلا؟

يحدد كل من برنامج PEID و DIE أدوات الحماية والتعبئة المعروفة فقط وغالبًا ما يستخدم الهكر أدوات خاصة غير قابلة للتحديد باستخدام التوقيعات (signatures) الشائعة.
دعنا نحاول استكشاف هذه المشكلة بشكل أكثر شمولاً.
لفهم بعض الجوانب ، نحتاج إلى فكرة عامة على الأقل حول بنية ملفات PE .

سنستخدم الأدوات التالية لتحليلنا:
PeStudio يعرض الخصائص الرئيسية لملفات PE ، وأيضًا ، قبل كل شيء ، يسمح بتصدير هذه المعلومات في شكل ملف XML.
1.png

DieSоrt يمسح الملفات ويعرض معلومات إحصائية مختلفة.
2.png


برنامج PEID و DIE يحدد كل من أدوات الحماية والتعبئة المعروفة

يتم تقديم المعلومات في شكل جدول ، يمكنك حفظه لتحليلها لاحقًا.
3.png


4.png



سنقوم بفحص ثلاث مجموعات من الملفات.
  • "ملفات النظام System" - الملفات الموجودة في مجلد Windows حوالي 21127 ملف
  • "ملفات نظيفة Clear" - الملفات من مجلد ملفات البرنامج (Program files) حوالي 9109 ملفات
  • "برامج ضارة Malware" - نماذج حديثة من البرامج الضارة، تم تنزيلها من الموقع http: //mаlwаretips.соm حوالي 20668 ملف
5.png

مقدمة صغيرة عن Packer و Protectors
برامج الضغط "Packer"
هو اسم شائع للبرامج التي تقوم بضغط الملفات القابلة للتنفيذ EXE.
مثال UPX . VMProtect. Themida. ASPack

برامج الحماية "Protectors" هو برنامج يستخدم لحماية تشفير الملفات القابلة للتنفيذ وتقنيات مكافحة تصحيح الأخطاء
مثل Eziriz: .NET Code Protection و .NET Reactor و...

سنقوم أولاً بفحص الملفات من المجموعة الثالثة ("البرامج الضارة") باستخدام برنامج DieSсаn بحثًا عن برامج الحزم والحماية المعروفة:

تم العثور على 6449 ملفًا تم معالجتها بواسطة برامج الحزم / أدوات الحماية المعروفة.
وهو ما يعني حوالي ثلث 20668 ملفًا. حسنًا ، ماذا عن البقية؟

للإجابة على هذا السؤال ، نحتاج إلى تحديد الميزات المميزة التي تجعل الملفات المحزومة / المشفرة مختلفة عن البقية Anomalous.

بعض هؤلاء هم:
  1. أسماء الأقسام غير القياسية - Non-standard names of sections
  2. مواصفات الأقسام - Specifications of sections
  3. عنوان نقطة الدخول - Address of the entry point
  4. وجود وظائف معينة في الاستيراد - Presence of certain functions in the import
  5. زيادة الانتروبيا - Increased entropy

في الواقع ، هناك الكثير من الميزات ولكننا سنأخذها في الاعتبار فقط وسنتحدث أكثر عن الإنتروبيا.
الجدير بالذكر أن بعض أدوات الحماية تحاول إخفاء هذه الأعراض ، وهذا ينطبق بشكل خاص على أدوات الحماية المصممة خصيصًا لتشفير البرامج الضارة.

أسماء الأقسام غير القياسية
الملفات التي تم تجميعها باستخدام مترجم نموذجي (MS linker, Borland linker ...) لها أسماء معتادة.
على سبيل المثال
.text
.data
.rsrc
.rdata
.reloc

توفر بعض أدوات الضغط والحماية أقسامًا بأسماء محددة.
على سبيل المثال
.UPX0
.UPX1
.vmp0
8 (1).png

البعض الآخر ، وهو ينطبق بشكل خاص على أدوات الحماية المصممة خصيصًا لتشفير البرامج الضارة ، يعطي أسماء أقسام تتكون من تسلسل عشوائي من الأحرف.
وهناك أيضًا من يستخدمون الأسماء القياسية للمترجمين.
في الأساس ، يمكن أن تكون أسماء الأقسام أي شيء: هذا لا يؤثر على وظيفة ملف PE. الاستثناء الوحيد هو قسم الموارد "rsrс".

يمكن العثور هنا على قائمة بأسماء الأقسام المستخدمة بشكل متكرر أو يمكنك استخدام
برنامج DieSоrt.


مواصفات الأقسام
قد يكون للأقسام خصائص مختلفة .
أهم القيم التالية:
يحتوي القسم 0x00000020 على رمز
يحتوي قسم 0x00000040 على بيانات تمت تهيئتها
يحتوي قسم 0x00000080 على بيانات غير مهيأة
يمكن تنفيذ قسم 0x20000000 كرمز
0x40000000 يمكنك قراءة البيانات من هذا القسم
0x80000000 يمكنك كتابة البيانات في هذا القسم
على سبيل المثال ، 0x60000020 - يحتوي القسم على تعليمات برمجية يمكن قراءتها وتنفيذها.
نادرًا ما يتم العثور على الموقف الذي يمكن فيه تنفيذ القسم كرمز ويمكن كتابة البيانات فيه في الملفات "العادية" ، ولكن يمكن أن يكون هذا هو الحال في الملفات المشفرة أو المعبأة.
7.png



عنوان نقطة الدخول
في ملفات PE العادية ، يكون قسم الكود الذي يشير إلى نقطة الدخول هو الأول.
يمكن أن يكون الأمر مختلفًا تمامًا في الملفات المحزومة / المشفرة. لديهم محمل الإقلاع (فك التشفير ، أونباكر). من الناحية الفنية ، من الأسهل وضع محمل التمهيد في قسم جديد أو توسيع القسم الأخير حتى الحجم المطلوب. ستوجه نقطة الدخول ، على التوالي ، إلى محمل التمهيد وليس القسم الأول.
8.png

وجود وظائف معينة في الاستيراد
عند تفريغ / فك تشفير ملف قابل للتنفيذ ، يقوم المُحمل بتخصيص الذاكرة ، ومعالجة البيانات ، وملء جدول الاستيراد ، وبعد ذلك فقط ينقل التحكم إلى نقطة الدخول الأصلية. هذا هو السبب في استيراد مثل هذه الملفات قد توجد وظائف معينة للتلاعب مع الذاكرة الافتراضية والمكتبات والحصول على عناوين الوظائف الضرورية من تلك المكتبات.
وظائف للعمل مع الذاكرة الافتراضية:
VirtualAlloc
VirtualAllocEx
VirtualFree
VirtualLock
VirtualProtect
VirtualQuery

وظائف العمل مع المكتبات والحصول على العناوين الضرورية:
LoadLibraryA
LoadLibraryW
LoadLibraryExA
LoadLibraryExW
FreeLibrary
GetProcAddress
9.png

ومع ذلك ، يمكن أن تحتوي الملفات العادية تمامًا أيضًا على مثل هذه الوظائف في الاستيراد ، بينما قد يتلقى بعض برامج التنزيل عناوين هذه الوظائف ديناميكيًا ، وبالتالي ، قد لا تتوفر هذه الوظائف في الاستيراد. لذلك لا يمكنك الوثوق تمامًا بهذه الميزة.

زيادة الانتروبيا
تعد قيمة الانتروبيا علامة موثوقة للغاية على أن الملف القابل للتنفيذ قد تمت معالجته باستخدام أداة حزم أو واقي. لشرح ماهية الانتروبيا ، سأقتبس مقتطفًا من مقال " مرة واحدة للجميع على الحزم ".
دعنا نعرّف كلمة "إنتروبيا" كمقياس لكفاءة تخزين المعلومات.
لتوضيح هذا المفهوم (لا يهم التفاصيل يوجد برنامج DIE جاهز يعطي النتيجة مباشرة)
دعنا نتفق على أن الملف عبارة عن سلسلة من البايتات ، يتم تحديد نهايتها بطريقة غامضة بواسطة نظام التشغيل نفسه.
افترض أن لدينا سلسلة:
abcdcdaad
لخص عدد تكرارات كل بايت. في هذا الطريق:
a = 3
b = 1
c = 2
d = 3
------
9 total

وبالتالي ، يمكننا القول أن التردد (أي الاحتمال ) لهذا البايت المعين في هذا التسلسل المعين هو:
a = 3/9 = 0.33
b = 1/9 = 0.11
c = 2/9 = 0.22
d = 3/9 = 0.33

حيث 9 هو الطول العام للتسلسل. الآن دعونا نحدد إنتروبيا كل حرف من خلال الصيغة:

إنتروبيا = | لوغاريتم 2 (تواتر_منح_البايت) | ،
حيث log2 - لوغاريتم للأساس 2.
كود:
قانون حساب الانتروبيا
 entropy = |log2(frequency_of_given_byte)|,
where log2—logarithm to base 2.


وهكذا لدينا:

a: |log2(3/9)| = 1,5849625007211561814537389439478
b: |log2(1/9)| = 3,1699250014423123629074778878956
c: |log2(2/9)| = 2,1699250014423123629074778878956
d: |log2(3/9)| = 1,5849625007211561814537389439478

تلخيصًا لكل الانتروبيا ، لدينا:

1.5849625007211561814537389439478 A
1.5849625007211561814537389439478 A
1.5849625007211561814537389439478 A
3.1699250014423123629074778878956 B
2.1699250014423123629074778878956 C
2.1699250014423123629074778878956 C
1.5849625007211561814537389439478 D
1.5849625007211561814537389439478 D
1.5849625007211561814537389439478 D
----------------------------------------------
17.019550008653874177444867327367 bits of information

من الناحية النظرية ، هذا يعني أنه يمكننا تخزين هذه السلسلة في ذاكرة الكمبيوتر باستخدام 17 بتًا فقط من المعلومات. في الواقع ، نستخدم 72 - أي لدينا 9 أحرف ، كل حرف هو بايت ، والبايت 8 بت. إجمالي 72 = 8 * 9.
لها علاقة مباشرة بالتعبئة الضغط. عندما يتم ضغط جزء من الكود في الملف ، فإن الانتروبيا الإجمالي ستزداد أثناء العد (وهنا دورك كـ هكر ان لا تسمح بذلك)، أي أنها ستقترب من المجموع القياسي لجميع البتات - وهذا يعني كفاءة أعلى في تخزين المعلومات ، أي الضغط المحتمل لقسم من الكود

برامج مثل PEiD و DIE و PrоteсtiоnID يمكنها القيام بذلك.
عادةً ما يستخدمون خوارزمية تعطي النتيجة في شكل كمية من البتات لكل بايت.
نظرًا لوجود 8 بتات في البايت ، سيكون الحد الأقصى للإنتروبيا 8.0.

نتيجة معالجة DIE لملف ، تم حزمه مع UPX. كما يمكن رؤيته ، فإن الانتروبيا قريبة من القيمة القصوى.
10.png

لمن يهتم هذا كود لحساب الانتروبيا بشكل عام كما يلي:

C++:
float CalculateEntropy(char *pData,int nDataSize)
{
    float fEntropy=0; // mb fEntropy=1.4426950408889634073599246810023;
    float bytes[256]={0.0};
    float temp;

    for(int i=0;i<nDataSize;i++)
    {
        bytes[(unsigned char)pData[i]]+=1;
    }

    for(int j=0;j<256;j++)
    {
        temp=bytes[j]/(float)nDataSize;
        if(temp)
        {
            fEntropy+=(-log(temp)/log(2))*bytes[j];
        }
    }

    fEntropy=fEntropy/(float)nDataSize;

    return fEntropy;
}


كما سبق ذكره ، فإن الإنتروبيا هي علامة موثوقة للغاية. ومع ذلك ، يجب أن نذكر أن بعض أدوات الحزم والحماية الجيدة جدًا للبرامج الضارة تحاول تقليل الانتروبيا التي تقوم بإدخال صفر بايت في البيانات. والسبب هو أن الماسحات الضوئية للفيروسات تتفاعل مع الملفات ذات الانتروبيا العالية.
قيمة الانتروبيا الحدودية عندما تكون البيانات على وشك اعتبارها معبأة غير واضحة. بعض البرامج تقدره 6.0 ، والبعض الآخر - 6.5 أو 7.0 (على مقياس من 0 إلى 8).
بمجرد أن ننتهي من الانتروبيا ، سنحاول فحص مجموعاتنا الثلاث من الملفات باستخدام DieSоrt وإنشاء رسومات (إنتروبيا عبر ، عدد الملفات التي تحتوي على إنتروبيا أسفل).

المجموعة الأولى ("النظام")
11.png


متوسط الانتروبيا 5.0

المجموعة الثانية ("برامج نظيفة")

12.png


متوسط الانتروبيا 5.4

المجموعة الثالثة ("البرامج الضارة")

13.png


متوسط الانتروبيا 6.8

من الواضح أن معظم الملفات من مجموعة "البرامج الضارة" مضغوطة أو مشفرة ببرامج مساعدة للتشفير وهنا مربط الفرس.

الآن ، دعنا نفحص جميع مجموعات الملفات الثلاث لتحديد الوظائف العشر الأكثر شيوعًا للاستيراد. ونقصد بها الدوال المستخدمة API

المجموعة الأولى ("النظام")
[kernel32.dll]QueryPerformanceCounter
[kernel32.dll]GetSystemTimeAsFileTime
[kernel32.dll]GetTickCount
[kernel32.dll]GetCurrentThreadId
[kernel32.dll]SetUnhandledExceptionFilter
[kernel32.dll]Sleep
[kernel32.dll]UnhandledExceptionFilter
[kernel32.dll]GetCurrentProcess
[kernel32.dll]GetCurrentProcessId
[kernel32.dll]TerminateProcess

المجموعة الثانية ("برامج نظيفة")
[kernel32.dll]Sleep
[kernel32.dll]GetCurrentThreadId
[kernel32.dll]GetCurrentProcess
[kernel32.dll]GetTickCount
[kernel32.dll]GetCurrentProcessId
[kernel32.dll]QueryPerformanceCounter
[kernel32.dll]GetSystemTimeAsFileTime
[kernel32.dll]TerminateProcess
[kernel32.dll]SetUnhandledExceptionFilter
[kernel32.dll]UnhandledExceptionFilter

المجموعة الثالثة ("البرامج الضارة")
[kernel32.dll]GetProcAddress
[kernel32.dll]ExitProcess
[kernel32.dll]VirtualAlloc
[kernel32.dll]LoadLibraryA
[kernel32.dll]GetModuleHandleA
[kernel32.dll]WriteFile
[kernel32.dll]GetLastError
[kernel32.dll]VirtualFree
[kernel32.dll]Sleep
[kernel32.dll]CloseHandle

لا يخلو اي برنامج حقن او رانبي RunPE من هذه الدوال (المجموعة الثالثة) وهي تتسبب بكشفه حتى لو كان مشفر كلين

كما رأينا ، تسود الميزات النموذجية للملفات المحزومة / المشفرة في استيراد البرامج الضارة. هذا يؤكد مرة أخرى استنتاجنا.

كخلاصة ما يهمك كهكر اثناء تشفير الملف حاول تجنب خوارزميات التي تقم بضغط الملف مثل Gzip وغيرها .
بعد تشفير الملف قم بفحصه ببرنامج Die
حمله من هنا
Detect It Easy
3.02.png


وقم بسحب وافلات التروجان على البرنامج ثم اضغط على Entropy يجب ان تجد القيمة اقل من 5 والا تشفيرتك ضعيفة
Capture2.PNG


ارجوا ان تعذروني ان كانت هناك اخطاء كتابية.
 

المرفقات

  • 13.png
    13.png
    11.9 KB · المشاهدات: 14

Story

Plus Hacker
إنضم
25 مارس 2019
المشاركات
321
مستوى التفاعل
435
النقاط
63
ماهو Entropy وكيف يتم كشف الفيروسات المضغوطة و المشفرة بخوارزمية
جازاك الله كل خير اخي @titanium
سوف اقرا المقال في وقت لاحق ان شاء الله لانني اعلم جودتها مسبقاً

سوف اتعلم الكثير .. انا واثق تمام الثقة ❤️ ❤️ ❤️
 

titanium

Plus Hacker
إنضم
15 يوليو 2019
المشاركات
346
مستوى التفاعل
452
النقاط
63
العمر
32
ماهو Entropy وكيف يتم كشف الفيروسات المضغوطة و المشفرة بخوارزمية
جازاك الله كل خير اخي @titanium
سوف اقرا المقال في وقت لاحق ان شاء الله لانني اعلم جودتها مسبقاً

سوف اتعلم الكثير .. انا واثق تمام الثقة ❤️ ❤️ ❤️
ان شاء الله اخي واتمنى بعد قراءتك للموضوع
ان تفيدنا بما لديك من معلومات او تعقيب على الموضوع
تحياتي لك اخي الغالي ❤️
 
  • احببته
التفاعلات: Story

Story

Plus Hacker
إنضم
25 مارس 2019
المشاركات
321
مستوى التفاعل
435
النقاط
63
ماهو Entropy وكيف يتم كشف الفيروسات المضغوطة و المشفرة بخوارزمية
ان شاء الله اخي واتمنى بعد قراءتك للموضوع
ان تفيدنا بما لديك من معلومات او تعقيب على الموضوع
تحياتي لك اخي الغالي ❤️
ان شاء الله اخي لو وجدت اي اضافة او تصحيح (مع انني اشك بذلك ههه) سوف لن اتردد بكتابته ..
 

𝔼ᐯ꒒Ϝ

EVIL WOLF
ExpErt Hacker
إنضم
30 مايو 2020
المشاركات
546
مستوى التفاعل
745
النقاط
93
نظام التشغيل
windows_10
ماهو Entropy وكيف يتم كشف الفيروسات المضغوطة و المشفرة بخوارزمية
شكرا على المعلومات ♥
 

𝔼ᐯ꒒Ϝ

EVIL WOLF
ExpErt Hacker
إنضم
30 مايو 2020
المشاركات
546
مستوى التفاعل
745
النقاط
93
نظام التشغيل
windows_10
ماهو Entropy وكيف يتم كشف الفيروسات المضغوطة و المشفرة بخوارزمية
هذه تشفيرة ل انجيرات معدل
انا قمت بتعديل الست اب
شبه كلين مكشوفة من 4 حمايات
وتتخطا حماية ويندوز دفندر
قما تقوم بتثبيت عند بدء التشغيل والتعدين
int.PNG

ولو حزفت الاضافة لبدء تشغيل ستصبح كلين
بنسبة لتعدين الاداة فقط
تقوم بتحميل برنامج التعدين وتقوم بمراقبته
 
  • ادهشني
التفاعلات: Story

Story

Plus Hacker
إنضم
25 مارس 2019
المشاركات
321
مستوى التفاعل
435
النقاط
63
ماهو Entropy وكيف يتم كشف الفيروسات المضغوطة و المشفرة بخوارزمية
من الواضح أن معظم الملفات من مجموعة "البرامج الضارة" مضغوطة أو مشفرة ببرامج مساعدة للتشفير وهنا مربط الفرس.
اثناء قراءتي للمقالة قلت هذه الجملة ههههه
فعلا سطور غنية بمعلومات هندسة عكسية رائعة
رغم انني اكره المقاات الطويلة لكن جذبني شيء و هو انني قبل سنوات صممت برنامج يفعل هذا الشي (فحص استدعاءات الملفات المشبوهة)
و بعد ذلك يعطيها تقييم من 5 اظن او حاجة زي كدة لا اذكر .. و والله العظيم لا اعلم ان هنالك برامج تفعل نفس الفكرة .. كل عملي كان اجتهاد و تسلية
حسيت اني عملت شي عظيم الان بعد قراءة المقال لانني كنت ماشي صح و الله ولا كنت ادري ههههه

فتحت برنامج Die و قعدت اجرب على ملفات مضغوطة وفعلاً اعطاها تقييم ملف ضار بسبب الضغط مما يثبت الكلام المكتوب

سوف ارجع للقراءة مرة او مرتين اضافيتين لانها فعلا كلام ثقيل و يحتاج تركيز

اكثر شيء ازعجني هو حاسس ان فيها ترجمة كوكل مما يشوه قليلاً بعض المصطلحات الي عارفينها كلنا لكن ترجمتها تخليها غريبة ههههه

❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️ ❤️
 

iEvNr

:: إدارة :: CyberTeaM
طاقم الإدارة
إنضم
29 مايو 2018
المشاركات
800
مستوى التفاعل
757
النقاط
93
الإقامة
Cyber City
نظام التشغيل
linux
ماهو Entropy وكيف يتم كشف الفيروسات المضغوطة و المشفرة بخوارزمية
بارك الله فيك مقال قيم جدا بالمعلومات , محتاج للقراءة اكثر من مرة '
جزاك الله كل خير على الطرح
 

عصام حبى

Plus Hacker
إنضم
4 فبراير 2020
المشاركات
592
مستوى التفاعل
654
النقاط
93
العمر
39
ماهو Entropy وكيف يتم كشف الفيروسات المضغوطة و المشفرة بخوارزمية

titanium


معلومات قيمة جدا ممتاز
 
  • اعجبني
التفاعلات: Story

Magma

Beginner Hacker
إنضم
19 نوفمبر 2019
المشاركات
47
مستوى التفاعل
35
النقاط
18
ماهو Entropy وكيف يتم كشف الفيروسات المضغوطة و المشفرة بخوارزمية
الله أكبر ايه الحلاوة دي بجد ربنا يجزيك كل خير ياارب بصراحة المنتدي بقي ف غاية الروعة وهي دي الموضيع اللي هترفعنا لفوووق والله ♥
 
أعلى