stimulator32
زيزوومى مبدع
غير متصل
من فضلك قم بتحديث الصفحة لمشاهدة المحتوى المخفي

الدرس الممتع حول مصطلح الـ Heuristics
((سهولة في الأفكار .. بساطة في الأمثلة .. تشويق في الطرح))

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

ينقسم الموضوع إلى الفقرات التالية:
1- مقدمة
2- مفهوم عام لمصطلح الهيوريستك
3- اكتشاف محرك بحث برامج الحماية المعتمد على قاعدة البيانات:
- ملاحظة حول الإيجابيات الكاذبة المتعلقة بقاعدة البيانات
- ملاحظة حول الإيجابيات الكاذبة المتعلقة بقاعدة البيانات
4- بعض الأنماط المختلفة للاكتشاف عن طريق الهيوريستك:
أ- التواقيع العامة
ب- الهيوريستك المنفعل
ج- الهيوريستك الفاعل:
- تبسيط لمفهوم ضغط الملفات
- تبسيط لمفهوم تشفير الملفات
- تبسيط لمفهوم الفيروسات متعددة الأشكال Polymorphic viruses
أ- التواقيع العامة
ب- الهيوريستك المنفعل
ج- الهيوريستك الفاعل:
- تبسيط لمفهوم ضغط الملفات
- تبسيط لمفهوم تشفير الملفات
- تبسيط لمفهوم الفيروسات متعددة الأشكال Polymorphic viruses
5- كيفية تفادي الإيجابيات الكاذبة للهيوريستك قدر الإمكان.
6- خاتمة.

1- مقدمة:
الحمد لله رب العالمين، وصلى الله وسلم على خير المرسلين نبينا محمد الصادق الأمين، وعلى آله وصحبه أجمعين ..
أما بعد:
سأقوم في هذا الموضوع إن شاء الله بطرح المفهوم الأساسي لمصطلح الهيوريستك Heuristics وما هو نظامه،
وكيف تتم الاستفادة منه في برامج الحماية، مع طرح أمثلة رائعة تقرب إلى الذهن كثيرا المعنى الحقيقي للمصطلح ..
وكيف تتم الاستفادة منه في برامج الحماية، مع طرح أمثلة رائعة تقرب إلى الذهن كثيرا المعنى الحقيقي للمصطلح ..
ثم بعد ذلك سأفرد فقرة خاصة عن الاكتشاف بواسطة التواقيع الرقمية -قاعدة البيانات- من أجل إحداث مقارنة ذهنية
بين الأسلوبين .. وكيف أنه من الممكن أن يكون فيها -أي الاكتشافات بواسطة قاعدة البيانات- إيجابيات كاذبة أيضا!
بين الأسلوبين .. وكيف أنه من الممكن أن يكون فيها -أي الاكتشافات بواسطة قاعدة البيانات- إيجابيات كاذبة أيضا!
بعد ذلك سأسرد عدة أنماط من نموذج الهيوريستك، وسنمر على مفهوم ضغط الملفات وتشفيرها والفيروسات
متعددة الأشكال .. وكيفية تعامل برنامج الحماية مع هذه الأصناف التي تسبب أحيانا ما يعتبره البعض "مشاكل وعوائق" منصوبة
في طريق عمل تلك المكافحات ..
متعددة الأشكال .. وكيفية تعامل برنامج الحماية مع هذه الأصناف التي تسبب أحيانا ما يعتبره البعض "مشاكل وعوائق" منصوبة
في طريق عمل تلك المكافحات ..
ثم بعد ذلك سأبين حقيقة أن للهيوريستك ((إيجابيات كاذبة)) ولابد، وكيف أن شركات الحماية تعمل على تقليل تلك الإيجابيات قدر الإمكان ..
ومن ثم سأعرض أمثلة على بعض اكتشافات برامج الحماية ومسمياتها ومدلولاتها ..
وأنصح الجميع أن يتمعنوا في الموضوع ويقرؤوه كاملا، فهو جيد في مادته .. سلس ويسير على الفهم .. غير
ممل ولا جامد .. لا تعقيد فيه ولا غموض ولا إبهام .. مشوق ومسل جدا ..
وتجربة قراءته خير برهان ..
وعلى الله الاعتماد والتكلان ..
ممل ولا جامد .. لا تعقيد فيه ولا غموض ولا إبهام .. مشوق ومسل جدا ..
وتجربة قراءته خير برهان ..
وعلى الله الاعتماد والتكلان ..

2- مفهوم عام لمصطلح الهيوريستك:
في الحقيقة جميع برامج الحماية تستخدم أسلوب الهيوريستك المساعد في التحري عن الفيروسات والملفات الخبيثة،
إلا ما يميز أحدها عن الآخر هو نمط وأسلوب الهيوريستك المعتمد من قبل المكافح ..
إلا ما يميز أحدها عن الآخر هو نمط وأسلوب الهيوريستك المعتمد من قبل المكافح ..
فما يميز برنامجا عن الآخر في هذه النقطة شكل الهيوريستك الذي تم إدخاله ضمن المكافح، الأمر الذي سبب -وما زال
يسبب- عند البعض اعتقادا بوجود هذه التقنية عند بعض البرامج وعدم وجودها عند البعض الآخر .. والأمر غير ذلك!
يسبب- عند البعض اعتقادا بوجود هذه التقنية عند بعض البرامج وعدم وجودها عند البعض الآخر .. والأمر غير ذلك!
وعلى الرغم من التعريفات المتعددة لمصطلح الهيوريستك، إلا أنه يضفي عند الكثيرين غموضا على غموض .. وتشوشا
وخلطا .. وعدم وضوح معنى المصطلح بشكل كاف وشاف ..
وخلطا .. وعدم وضوح معنى المصطلح بشكل كاف وشاف ..
ولأجل هذا فسأقوم بتقريب ذلك بمثال، ومن ثم الإتيان بالتعريف التقني الأشمل لهذا المصطلح ..
لنفترض أن أحد الأشخاص طلب مني أن أستخرج له من بين صور الحيوانات التالية صورة كلب ((كاتاهولا ليوبارد)) -أجلكم الله-:

((هذا المثال أتيت به كما هو من أحد خبراء الحماية؛ فهو مناسب جدا لهذه الفقرة))
أنا في الحقيقة لا أعلم أي شيء عن كلب الكاتاهولا ليوبارد -أجلكم الله- ولم أره مرة في حياتي، ومع هذا يجب
علي أن أستخرج صورته من بين الصور السابقة .. لذا ما علي إلا أن أقوم بالتالي:
علي أن أستخرج صورته من بين الصور السابقة .. لذا ما علي إلا أن أقوم بالتالي:
1- أولا سيدفعني العقل الباطن إلى استثناء صورة السمكة، لأني أبحث عن حيوان ثديي!
2- لنفترض أني لم أشاهد مرة في حياتي صورة دب ولا أعرفه، لكن بمجرد مشاهدتي لصورته سأعلم يقينا
أنه ليس كلب -أجلكم الله- .. ولذا سيتم استثناء صورته أيضا!
أنه ليس كلب -أجلكم الله- .. ولذا سيتم استثناء صورته أيضا!
3- صورة كلب الدبرمان -أجلكم الله- الموجودة تحت صورة السمكة سيتم استثناؤها، لأنه حيوان معروف ومشهور!
4- صورة القطة مستثناة بشكل طبيعي ..
5- الترقيعات الموجودة على جسم الكلب -أجلكم الله- الموجود على يمين صورة الدب؛ هي لكلب -أجلكم الله- البيجل المعروف أيضا!
6- بعد ذلك لم تبق إلا الصورة السفلية اليمنى .. وهي التي سأحكم عليها بأنها الصورة المطلوبة!
وبالتالي، لو لاحظتم أني توصلت إلى الصورة المطلوبة بعد مجموعة من عمليات الاستثناءات، وهذه الاستثناءات
لم تكن لتحصل لولا أنه لم يكن عندي بعض مما يسمى بالـ "هيوريستك"!
فالهيوريستك هنا في هذا المثال هو مجموعة القواعد والمعلومات الموجودة عندي مسبقا، والتي جعلتني أستثني
الصور غير المطلوبة الواحدة تلو الأخرى .. إلى أن توصلت أخيرا للصورة المطلوبة ..
لم تكن لتحصل لولا أنه لم يكن عندي بعض مما يسمى بالـ "هيوريستك"!
فالهيوريستك هنا في هذا المثال هو مجموعة القواعد والمعلومات الموجودة عندي مسبقا، والتي جعلتني أستثني
الصور غير المطلوبة الواحدة تلو الأخرى .. إلى أن توصلت أخيرا للصورة المطلوبة ..
بعد هذا المثال الذي قرب لنا الصورة جدا حول المصطلح، سيسهل علينا إيراد التعريف العالمي الشامل له، وهو:
"الهيوريستك عبارة عن مجموعة من الإرشادات والأدلة والقواعد التي يستخدمها مدير النظام الحاسوبي من
أجل التدخل لحل المشكلة عند فشل المقارنة والمطابقة بين شيئين اثنين".
أجل التدخل لحل المشكلة عند فشل المقارنة والمطابقة بين شيئين اثنين".
ومثال على الشيئين اللذين سنقارن بينهما: قاعدة بيانات برنامج الحماية والفيروسات، فعند إصابة ملف ما بفيروس مجهول
الهوية، عندها ستفشل عملية المطابقة بينه وبين قاعدة بيانات البرنامج التي لا تحتوي على توقيع لذلك الفيروس، وبالتالي
لا بد هنا من تدخل تقنية الهيوريستك لاكتشاف الفيروس وتنظيف الملف منه فورا ..
الهوية، عندها ستفشل عملية المطابقة بينه وبين قاعدة بيانات البرنامج التي لا تحتوي على توقيع لذلك الفيروس، وبالتالي
لا بد هنا من تدخل تقنية الهيوريستك لاكتشاف الفيروس وتنظيف الملف منه فورا ..

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

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

1- فإن قلت لك أعطني كلمتين تعرفهما -وهما هنا يقابلان توقيع الفيروسات-، فإنك على الفور تبحث عن كلمتين تعلم
مسبقا أنهما موجودتان عندك -أي موجودتان ضمن قاعدة بياناتك الخاصة-، فتختار على سبيل المثال:
TROJAN
WORM
مسبقا أنهما موجودتان عندك -أي موجودتان ضمن قاعدة بياناتك الخاصة-، فتختار على سبيل المثال:
TROJAN
WORM
2- فإن قلت لك أعطني كلمة لا تعرفها -أي غير موجودة ضمن قاعدة بياناتك الخاصة-، فلن تستطيع أن تعطيني كلمة
لا تعرفها -وهي تمثل هنا الفيروس مجهول الهوية، والذي ليس له توقيع ضمن قاعدة البيانات-.
لا تعرفها -وهي تمثل هنا الفيروس مجهول الهوية، والذي ليس له توقيع ضمن قاعدة البيانات-.
3- فإن قلت لك خذ هذه الكلمة KOAF - أي كأني قمت هنا بتحديث قاعدة بياناتك بإدخال هذه الكلمة إلى قاموسك- وابحث
لي عنها ضمن شبكة الحروف هذه -يعني أنني بعدما حدثت لك قاعدة بياناتك صرت قادرا على إيجاد واكتشاف
الكلمة KOAF والتي تمثل هنا توقيعا لفيروس جديد-.
لي عنها ضمن شبكة الحروف هذه -يعني أنني بعدما حدثت لك قاعدة بياناتك صرت قادرا على إيجاد واكتشاف
الكلمة KOAF والتي تمثل هنا توقيعا لفيروس جديد-.

- ملاحظة حول الإيجابيات الكاذبة المتعلقة بقاعدة البيانات:
عنوان الفقرة قد يكون غريبا لدى البعض، إذ كيف يكون الاكتشاف المعتمد على التواقيع اكتشافا كاذبا؟!
سأضرب مثالا يوضح كيف أن الاكتشاف المعتمد على التواقيع قد يكون اكتشافا حقيقيا، وفي المقابل قد يكون إلى
حد ما اكتشافا كاذبا -أو ما يسمى بالإيجابية الكاذبة- ..
حد ما اكتشافا كاذبا -أو ما يسمى بالإيجابية الكاذبة- ..
وقبل أن أوضح المثال، أقول بأن أحد أسباب الإيجابيات الكاذبة المعتمدة على قاعدة البيانات هي أن التوقيع الموجود
ضمن قاعدة البيانات لا يقوم بالبحث عن كامل الفيروس، وإنما عن جزء منه .. وإليكم الشرح ..
ضمن قاعدة البيانات لا يقوم بالبحث عن كامل الفيروس، وإنما عن جزء منه .. وإليكم الشرح ..
تصور أنك فتحت محرك
البحث الجوجل، وأردت أن تدخل إلى منتديات زيزوم للأمن والحماية، فكتبت في شريط الجوجل كلمة:
البحث الجوجل، وأردت أن تدخل إلى منتديات زيزوم للأمن والحماية، فكتبت في شريط الجوجل كلمة:
"منتديات"
فالنتيجة أنك ستحصل على ملايين النتائج، ورغم أنها ملايين إلا أن مطلبك ضمن هذه الملايين!
وبالتالي كلمتك التي أدخلتها هنا -وهي تمثل توقيع الفيروس- قد سببت الحصول على ملايين الإيجابيات الكاذبة!
وبالتالي سنحاول تضييق النتائج، فنكتب في شريط الجوجل:
"منتديات زيزوم"
هنا سنجد المئات من النتائج -أي المئات من الإيجابيات الكاذبة-، حيث أن هناك العديد من المنتديات المطابقة لاسم زيزوم
ولكنها ليست المنتديات التي نريد، وبالتالي لما أصبحت كلمة البحث أكثر دقة -أي توقيع الفيروس أكثر فعالية- قلت النتائج
التي لا نريدها ضمن البحث في الجوجل -أي قلت الإيجابيات الكاذبة لمحرك بحث برنامج الحماية-.
ولكنها ليست المنتديات التي نريد، وبالتالي لما أصبحت كلمة البحث أكثر دقة -أي توقيع الفيروس أكثر فعالية- قلت النتائج
التي لا نريدها ضمن البحث في الجوجل -أي قلت الإيجابيات الكاذبة لمحرك بحث برنامج الحماية-.
مرة أخرى نكتب:
"منتديات زيزوم للأمن والحماية"
هنا سنجد مطلبنا بالتحديد، وستختفي الإيجابية الكاذبة، بسبب أن كلمة البحث أصبحت دقيقة جدا في الكشف عن
مطلبنا -أي توقيع الفيروس أصبح دقيقا وفعالا، وبالتالي لن يسبب هذا التوقيع إيجابيات كاذبة مربكة-.
مطلبنا -أي توقيع الفيروس أصبح دقيقا وفعالا، وبالتالي لن يسبب هذا التوقيع إيجابيات كاذبة مربكة-.

إذا، من خلال المثال السابق أصبحت لدينا المعادلة التالية:
التوقيع غير الكافي = إيجابيات كاذبة كثيرة
وهذا ما كنت أقصده في نقاشاتي هنا في هذا القسم من المنتدى حول طريقة كتابة التواقيع في مخابر شركة
الإيسيت ESET، حيث قلت بأنهم قالوا لي أن أبعث إليهم أية عينة يتم اكتشافها من قبل برنامج الحماية عن طريق
الهيوريستك، وأكدوا أنه كلما كانت عينات صنف معين من الفيروسات المرسلة إليهم أكبر، كلما كانت هناك احتمالية
أكبر لكتابة توقيع فعال ونظيف من الإيجابية الكاذبة .. ومن هنا تأتي قلة إيجابيات برنامج النود الكاذبة عند التحري والاستكشاف ..
الإيسيت ESET، حيث قلت بأنهم قالوا لي أن أبعث إليهم أية عينة يتم اكتشافها من قبل برنامج الحماية عن طريق
الهيوريستك، وأكدوا أنه كلما كانت عينات صنف معين من الفيروسات المرسلة إليهم أكبر، كلما كانت هناك احتمالية
أكبر لكتابة توقيع فعال ونظيف من الإيجابية الكاذبة .. ومن هنا تأتي قلة إيجابيات برنامج النود الكاذبة عند التحري والاستكشاف ..

::ملاحظة هامة::
لا يعني ما سبق أنه حتى يتم اكتشاف الفيروسات لابد من كتابة كامل كود الفيروس حتى نضمن اكتشافا دقيقا من دون إيجابيات كاذبة!!
لا، هذه طريقة غير فعالة ولا معنى لها أصلا، فهناك قدر معين من الكود لا بد أن يتضمنه توقيع الفيروس،
ولا معنى أبدا من تجاوزه إلى أبعد من ذلك .. بل لا فائدة منه أيضا ..
ولا معنى أبدا من تجاوزه إلى أبعد من ذلك .. بل لا فائدة منه أيضا ..

4- بعض الأنماط المختلفة للاكتشاف عن طريق الهيوريستك:
سأقوم هنا إن شاء الله بتفصيل بعض الطرائق المختلفة التي تستخدم تقنية الهيوريستك في الاكتشاف والتحري عن الفيروسات، فلنبدأ بـ:
أ- التواقيع العامة:
أو Generic Signatures، وتعني مدى تشابه الفيروس مجهول الهوية وتطابقه مع آخر معروف ومشهور، فإن كان
شبيها له كفاية فإنه من الممكن أن نطلق عليه عبارة "صنف من a variant of"، مثال على ذلك:
شبيها له كفاية فإنه من الممكن أن نطلق عليه عبارة "صنف من a variant of"، مثال على ذلك:

لو أنك سألت تلميذا في الابتدائية لما يستكمل الأشكال الهندسية بعد ولم يتعرف سوى على المستطيل، فقلت له:
سم لي الشكلين السابقين ..
فسيقول لك: الشكل اليساري مستطيل، والشكل اليميني مستطيل مختلف قليلا!
فقد تعلم هذا التلميذ أن كل شكل هندسي رباعي مغلق زواياه قائمة هو مستطيل، والقاعدة متحققة في الشكلين، إلا
أنه لم يشاهد الشكل اليميني ولا مرة، فمن الممكن أن يقول، أنه صنف من أصناف المستطيل!
فقد تعلم هذا التلميذ أن كل شكل هندسي رباعي مغلق زواياه قائمة هو مستطيل، والقاعدة متحققة في الشكلين، إلا
أنه لم يشاهد الشكل اليميني ولا مرة، فمن الممكن أن يقول، أنه صنف من أصناف المستطيل!
ومثل ذلك ينطبق على الفيروسات وتواقيعها العامة، والمثال التالي سيوضح الفكرة أكثر:
لنفرض جدلا أن هناك فيروسا معروفا اسمه Win32/Stimulator32 وله توقيع -من يريده فقط على الخاص :d:-، ويتميز بالخصائص التالية:
- يقوم بإضافة ثلاث قيم في الريجستري.
- يقوم بالاتصال بالإنترنت عن طريق متصفح الإكسبلورر.
- يرسل إيميلات للعناوين الموجودة ضمن قائمة البريد الإلكتروني للضحية، عنوانها "راحت عليك يا مسكين".
- يقوم بالاتصال بالإنترنت عن طريق متصفح الإكسبلورر.
- يرسل إيميلات للعناوين الموجودة ضمن قائمة البريد الإلكتروني للضحية، عنوانها "راحت عليك يا مسكين".
وأثناء قيامنا بفحص الملفات عبر مكافح الفيروسات، وجدنا ملفا يتميز بالصفات التالية:
- يقوم بإضافة ثلاث قيم في الريجستري.
- يقوم بالاتصال بالإنترنت عن طريق متصفح الإكسبلورر.
- يرسل إيميلات للعناوين الموجودة ضمن قائمة البريد الإلكتروني للضحية، عنوانها "مبروك، لقد ربحت 10 ملايين دولار".
- يقوم بالاتصال بالإنترنت عن طريق متصفح الإكسبلورر.
- يرسل إيميلات للعناوين الموجودة ضمن قائمة البريد الإلكتروني للضحية، عنوانها "مبروك، لقد ربحت 10 ملايين دولار".
وبالمقارنة بينهما نجد أنهما متشابهان لدرجة كافية تجعلنا نؤكد أن الملف المجهول هو أحد أصناف الفيروس المعروفWin32/Stimulator32:


ب- الهيوريستك المنفعل:
ومعناه فحص ملف ما ومحاولة تحديد مهمته وأسلوبه وماذا يريد أن يفعل، فمثلا أثناء فحص المكافح لملف ما وجد الكود التالي: ((كتابة مباشرة على الهارد)):

وبالتالي عند اكتشاف هذا الكود من قبل الهيوريستك المنفعل فإنه سيعطي إنذارا بوجود خطر ما في الملف، لأن وجود
مثل هذا الكود -الأمر- داخل الملف لهو دليل خباثة، وأن الملف غير سليم.
مثل هذا الكود -الأمر- داخل الملف لهو دليل خباثة، وأن الملف غير سليم.

ج- الهيوريستك الفاعل:
وله مسميات عدة، منها sandboxing و virtualization وemulation وغير ذلك ..
ومهما اختلفت الأسماء يبقى مفهوم الهيوريستك الفاعل واحد، وهو إيجاد بيئة افتراضية "حاسوب افتراضي وهمي" داخل
محرك بحث مكافح الفيروسات، ومن ثم تشغيل الكود من خلال هذه البيئة الافتراضية لتحري وتتبع ومراقبة سلوك الملف
وتحديد مدى خطورته إن تم تشغيله في البيئة الحاسوبية الحقيقية.
محرك بحث مكافح الفيروسات، ومن ثم تشغيل الكود من خلال هذه البيئة الافتراضية لتحري وتتبع ومراقبة سلوك الملف
وتحديد مدى خطورته إن تم تشغيله في البيئة الحاسوبية الحقيقية.
هذا ويكون الهيوريستك حاضرا وموجودا حتى ولو كانت الملفات التي يتم تنفيذها مضغوطة، أو مشفرة،
أو كانت فيروسات متعددة الأشكال ..
أو كانت فيروسات متعددة الأشكال ..

- تبسيط لمفهوم ضغط الملفات:
ليكن لدينا الملف التالي -والذي يتكون بشكل طبيعي من متتاليات للرقمين 1 و 0- والذي نريد أن نضغطه:

الضغط يحتاج لخوارزمية معينة، فلنخترع -جدلا- خوارزمية خاصة بنا للتبسيط، فنقول:
إن خوارزميتنا في ضغط الملفات تعتمد على رقمين اثنين، أحدهما يشير إلى المتتالية الرباعية بالتحديد، والآخر
يشير إلى عدد هذه المتتاليات إن كانت بجوار بعضها، أي:
لنفرض أن المتتالية الرباعية المتكونة من "أربعة أصفار" سنستخدم لها في خوارزمية الضغط الرقم "صفر"، وبالتالي
فإن أول متتاليتين في الملف السابق سيكتب بعد الضغط بالشكل التالي:
يشير إلى عدد هذه المتتاليات إن كانت بجوار بعضها، أي:
لنفرض أن المتتالية الرباعية المتكونة من "أربعة أصفار" سنستخدم لها في خوارزمية الضغط الرقم "صفر"، وبالتالي
فإن أول متتاليتين في الملف السابق سيكتب بعد الضغط بالشكل التالي:

وليكن مفتاح خوارزمية الضغط خاصتنا بالشكل التالي:

وبالتالي، فإنه بعد ضغط الملف السابق سيصبح ملفنا بالأرقام التالية:

لاحظ أنه بعد الضغط تحول الملف من 56 رمزا إلى 10 رموز، وهذا معنى أنه أصبح أقل حجما.
الآن لو أن مكافح الفيروسات يضم في قاعدة بياناته الرمز التالي على أنه كود خبيث:

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

ما علاقة حديثنا عن ملفات الضغط بالهيوريستك الفاعل؟!
انظر إلى الصورة التالية:

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

- تبسيط لمفهوم تشفير الملفات:
في الواقع يعتبر ضغط الملفات نوع من أنواع التشفير، والفرق بين الضغط والتشفير في الهدف والنتيجة كما يلي:

الآن، لنفترض خوارزمية تشفيرنا للملفات كالتالي:

وبالتالي عند تشفير كلمة BAD على سبيل المثال، فإننا سنلاحظ أن تشفير الكلمة سيكبر من حجمها، فبدل أن تكون 3 رموز أصبحت تسعة رموز:

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

- تبسيط لمفهوم الفيروسات متعددة الأشكال Polymorphic viruses:
إن آلية عمل الفيروسات متعددة الأشكال هو أنها تقوم بنفس الفعل، لكن بشكل مختلف!
بمعنى آخر، إذا قلت لك 5 .. ستفهم معنى ذلك.
فإذا قلت لك 2 + 3 .. أكون بذلك قد قمت بنفس الأمر لكن بشكل مختلف!
وإذا قلت لك 2*3+ (9-5)+(66-44)- 8*4+5 .. أيضا أكون قد فعلت نفس الأمر، ولكن بشكل مختلف!
مثال آخر ..
إذا قلت لك امش 5 دقائق، ثم اركض 10 دقائق، ثم ارتح 3 دقائق .. ستقهم ذلك.
وإذا قلت لك امش 5 دقائق، ثم اركض 4 دقائق، ثم تابع الركض 6 دقائق، ثم ارتح 3 دقائق .. أكون بذلك فعلت نفس الشيء، ولكن بقالب مختلف!
كذلك حال الفيروسات متعددة الأشكال، حيث أنها بتنسخها تغير من أكوادها ظاهريا، رغم أنها تقوم بنفس الفعل!
وهذا ما يجعلها قادرة على اختراق قاعدة بيانات المكافح، حيث أن تغيير المظهر سيعجز محرك البحث عن اصطياد
تلك الفيروسات عن طريق قاعدة البيانات!
وهنا يأتي دور البيئة الافتراضية التي يوجدها المكافح ضمن محرك بحثه، حيث يقوم بمراقبة سلوك هذا النوع من
الفيروسات بعد تشغيله، وعليه يقدر مدى خطورته وإصدار الإنذار الملائم له.
تلك الفيروسات عن طريق قاعدة البيانات!
وهنا يأتي دور البيئة الافتراضية التي يوجدها المكافح ضمن محرك بحثه، حيث يقوم بمراقبة سلوك هذا النوع من
الفيروسات بعد تشغيله، وعليه يقدر مدى خطورته وإصدار الإنذار الملائم له.

5- كيفية تفادي الإيجابيات الكاذبة للهيوريستك قدر الإمكان:
هناك العديد من ملفات النظام التي تقوم على سبيل المثال بفتح بورت في الذاكرة، وانتظار الاتصال من هناك، وعلى
الرغم من شرعية هذا الفعل من قبل ذلك الملف، إلا أن مكافح الفيروسات -عن طريق تقنية الهيوريستك- سيقوم باكتشاف
ذلك الملف على أنه Backdoor بسبب سلوكه ذاك ..
الرغم من شرعية هذا الفعل من قبل ذلك الملف، إلا أن مكافح الفيروسات -عن طريق تقنية الهيوريستك- سيقوم باكتشاف
ذلك الملف على أنه Backdoor بسبب سلوكه ذاك ..
فإذا كان الحال كذلك، فإن هناك الكثير الكثير من الملفات النظامية الشرعية سيتم اكتشافها بواسطة الهيوريستك
على أنها تهديدات .. فما العمل؟!
على أنها تهديدات .. فما العمل؟!
إن الحل الوحيد لتفادي هذه المشكلة هو قيام خبراء الحماية بوضع مجموعة من القواعد والإرشادات الدقيقة والذكية، ووضع
نقاط لكل منها، بالإضافة إلى تحديد عتبات معينة متصاعدة لكشف مدى خطورة التهديد حسب هذا المعيار .. وإليكم مثالا يوضح الفكرة أكثر:
نقاط لكل منها، بالإضافة إلى تحديد عتبات معينة متصاعدة لكشف مدى خطورة التهديد حسب هذا المعيار .. وإليكم مثالا يوضح الفكرة أكثر:
إذا شاهدت رجلا يمشي بجانب البنك وأردت أن تعرف أن ذاك الرجل سيء أم لا عليك أن تستخدم مجموعة
من المشاهدات والملاحظات حتى يقوى لديك اليقين بما تبحث عنه!
فإذا كان ذلك الرجل يرتدي قميصا، فإنه سوف يجعل عندك بعض الشك بأنه رجل سيء، لكن إن كان يرتدي قميصا وقناعا فإن
احتمال أن يكون لصا قد ازداد عندك، فإذا شاهدت على جنبه مسدسا وصل الاحتمال لديك قريبا من اليقين أنه لص!
من المشاهدات والملاحظات حتى يقوى لديك اليقين بما تبحث عنه!
فإذا كان ذلك الرجل يرتدي قميصا، فإنه سوف يجعل عندك بعض الشك بأنه رجل سيء، لكن إن كان يرتدي قميصا وقناعا فإن
احتمال أن يكون لصا قد ازداد عندك، فإذا شاهدت على جنبه مسدسا وصل الاحتمال لديك قريبا من اليقين أنه لص!
وهكذا حال الهيوريستك، فلكي يتم تجنب الإيجابيات الكاذبة عن طريقه لابد من وضع قواعد معينة دقيقة لكل واحدة منها
نقاط معينة إن قام بها الملف حسبت عليه تلك النقاط، وهكذا ترتقي نقاط الملف حتى يبلغ العتبة التي من خلالها
نحكم على مدى احتمالية الملف كونه مصاب أم لا ..
نقاط معينة إن قام بها الملف حسبت عليه تلك النقاط، وهكذا ترتقي نقاط الملف حتى يبلغ العتبة التي من خلالها
نحكم على مدى احتمالية الملف كونه مصاب أم لا ..
ولنأخذ مثالا على ذلك:
لنفرض أن الخبراء وضعوا القواعد التالية لهيوريستك محرك بحث أحد برامج الحماية:
:: إن كان الملف المفحوص مشفر، يعطي علامة واحدة
:: إن قام بفتح منفذ وانتظار اتصال، يعطي علامتان
:: إن قام بالكتابة على ملف موجود، يعطى ثلاث علامات
:: إن قام بالكتابة في الريجستري، يعطى علامة واحدة
:: إن قام بفتح منفذ وانتظار اتصال، يعطي علامتان
:: إن قام بالكتابة على ملف موجود، يعطى ثلاث علامات
:: إن قام بالكتابة في الريجستري، يعطى علامة واحدة
وبالتالي فمن خلال هذه القواعد سيتم التقليل من حدوث الإيجابيات الكاذبة بشكل كبير، وذلك بعد وضع عتبات تلك الكشوفات ..
فالعتبات يمكن أن توضع كالتالي -على سبيل المثال-:
:: الملفات التي تحقق نقاطا من 1 - 3 يتم اكتشافها على أنها probably unknown
:: الملفات التي تحقق نقاطا 4-5 يتم اكتشافها على أنها probably a variant of
:: الملفات التي تحقق نقاطا 6-7 يتم اكتشافها على أنها a variant of
:: الملفات التي تحقق نقاطا 4-5 يتم اكتشافها على أنها probably a variant of
:: الملفات التي تحقق نقاطا 6-7 يتم اكتشافها على أنها a variant of
وليعلم الجميع أن الكشوفات عن طريق قاعدة البيانات لا يكون إلا بكلمة اكتشاف ذات مدلول أكيد مصرح على اسم الفيروس، فألفاظ:
Probably
Unknown
A variant
Probably a variant
Suspicious
Unknown
A variant
Probably a variant
Suspicious
كلها لا تدل على حصول المطابقة مع قاعدة البيانات، بل كل ما سبق يتم اكتشافه عن طريق الهيوريستك.

6- خاتمة:
لقد أثبتت التجارب والاختبارات المستقلة أن تقنية الهيوريستك يمكنها اكتشاف ما يقارب أكثر من 80% من الفيروسات الفعلية، بالإضافة
إلى 50 - 60% من الفيروسات الموجودة فقط في مخابر التحليلات والدراسات، ولذا تعتبر تقنية الهيوريستك من طبقات
الحماية الإضافية التي تشكل بمجموعها حماية شاملة لجهاز المستخدم، وهذا لا يعني أن الهيوريستك هو كل شيء في
الحماية! .. بل هو جزء هام من جملة الدفاعات التي تقي الأجهزة من مخاطر تهديدات الشبكة العنكبوتية والتي يجب
على كل مستخدم أن يفعلها جميعها كي يحصل على الأمان اللازم.
إلى 50 - 60% من الفيروسات الموجودة فقط في مخابر التحليلات والدراسات، ولذا تعتبر تقنية الهيوريستك من طبقات
الحماية الإضافية التي تشكل بمجموعها حماية شاملة لجهاز المستخدم، وهذا لا يعني أن الهيوريستك هو كل شيء في
الحماية! .. بل هو جزء هام من جملة الدفاعات التي تقي الأجهزة من مخاطر تهديدات الشبكة العنكبوتية والتي يجب
على كل مستخدم أن يفعلها جميعها كي يحصل على الأمان اللازم.

هذا وصلى الله وسلم على نبينا محمد وعلى آله وصحبه أجمعين
والحمد لله رب العالمين
