تتفق برامج الحماية في تقنيات الكشف عن الفايروسات والبرامج الضارة في العديد من النقاط، ولكن تختلف أيضاً في بعض الأمور المتقدمة في الكشف عنها والإيقاع بها، سوف نطرح بعض التقنيات والأساليب والطرق المتعارف عليها في الكشف عن البرامج الضارة لعدد من برامج الحماية (لو أردنا الحديث عن كيفية عمل برامج الحماية سنحتاج لكتب عديدة، لذلك سنأخذ لمحة صغيرة):
I) On-Access Scanning:
كترجمة تعني الفحص عند الوصول أو Real time protection أي كترجمة الحماية في الوقت الحقيقي أو background scanning كترجمة تعني فحص الخلفية، تختلف الأسماء مع اختلاف برامج الحماية ولكن كلها تشير إلى معنى واحد وهو:
إن أغلب برامج الحماية تعمل في الخلفية (background) وتقوم بفحص كل ملف يقوم المستخدم بفتحه، أي عند قيام المستخدم بالنقر مرتين على ملف exe أو أي شيء آخر يتم فتحه بالوقت ولكن هذا ما يبدو للمستخدم، ولكن في الحقيقة هو عند فتحه لا يتم تشغيله بل يقوم برنامج الحماية بفحصه ويرى ما إذا كان هو ملف نظيف أو برنامج ضار.
إن كيفية أو ماهية عملية الفحص تختلف من برنامج حماية لآخر أيضاً ولكن أغلبها تتبع هذه الخطوات:
1) Signature-based detection:
أي كترجمة تعني الكشف القائم على التوقيع، وهي التقنية الأقدم والأكثر كلاسيكية والأكثر استعمالاً في كل برامج الحماية.
لنفهم كيف تعمل هذه التقنية يجب أن نعود إلى الوراء قليلاً ونفهم بعض الأمور، دعونا نتفق في البداية أن لكل ملف في العالم يوجد شيء اسمه الهاش أو التوقيع MD5 و SHA1 لا يتشارك به مع أي ملف آخر في العالم، وللتبسيط دعونا نقول أن MD5 أو ال SHA مثل الهوية الشخصية للملفات أو البصمة الإلكترونية للملف لا تتكر لأي ملف آخر حول العالم.
وبالتالي عندما يقوم المبرمج بصنع فايروس سوف يكون له قيمة أو هاش أو توقيع MD5 hash ليست موجودة لأي ملف أو برنامج آخر حول العالم، ومع انتشار الفايروس الجديد سوف تكتشفه شركات الحماية وتقوم بتحليله ومن ثم تعمل على إيجاد حلول لإيقاف عمله وحذفه من النظام ومن ثم تضيفه في قائمات الفايروسات لديها (قاعدة بيانات البرامج الضارة)، إن عملية إضافة الفايروسات في قواعد البيانات عبارة عن إضافة قيم MD5 و SHA1 في قاعدة البيانات وليست إضافة الفايروس نفسه، فلو كانت ستضيف الفايروسات بنفسها إلى قواعد البيانات كان سيأتينا أصغر برنامج حماية بحجم لا يقل عن 100 GB، ولكن تقوم فقط بإضافة الهاش MD5 و ال SHA1 في قاعدة بيناتها.
ملاحظة: إن عدد الهاشات للبرامج الضارة بمختلف أنواعها في قواعد البيانات لبرامج الحماية سواء مضادات الفايروسات أو جدران الحماية للحواسيب أو البريد الإلكتروني يفوت مئات الملايين.
وبما أن كل برنامج حماية لديه قاعدة بيانات ضخمة بالبرامج الضارة، فإنه عند فتح المستخدم لأي ملف يقوم برنامج الحماية بأخذ الهاش الخاص بالملف ومقارنته ومطابقته بالهاشات الموجودة لديه بقاعدة البيانات التي لديه، فإذا تطابق الهاش للملف مع هاش موجود في قاعدة البيانات فسوف يتم اعتباره ملف ضار وبالتالي سيقوم بحذفه أو إبلاغ المستخدم على أنه برنامج ضار فهل يريد حذفه أم لا، وإذا كان غير موجود فسيتم اعتباره نظيفا.
هل انتهى كل شيء هنا ؟ بالتأكيد لا هذا الكلام كان من الماضي، فإذا كانت النهاية هنا ستكون برامج الحماية قادرة على كشف كل البرامج الضارة في وقت قياسي وتنتهي حكاية البرامج الضارة، ولكن أصحاب القبعات السوداء لم يعجبهم هذا الشيء بالتأكيد فطوروا أساليب وتقنيات جديدة تمكنهم من تغير هاش MD5 إلى هاش آخر جديد غير معروف أو تزويره أو حجبه وكثرت الطرق لتجاوز هذا النوع من الكشف على البرامج الضارة.
وبالتالي قامت شركات الحماية بتطوير برامج الحماية وتطوير أساليبها في فحص الملفات ولم تعد تقنية Signature-based detection كافية لتقيم الملف على أنه سليم، بل أصبحت تعتمد تقنيات ومعايير أخرى لتقيم الملف هل هو برنامج ضار أم لا.
2) Heuristic-based detection:
كترجمة حرفية تعني الكشف القائم على الحدس أو المنهجية أو الاستدلال، الكشف بهذه الطريقة أفضل من الطريقة السابقة أو مكملة للطريقة السابقة، ولا يمكن الاستغناء عن واحدة منهما.
كما رأينا في الطريقة السابقة قد يقوم البرنامج الضار بتغير الهاش الخاص به كل فترة وبالتالي لن يتم اكتشافه من برامج الحماية وبالتالي برامج الحماية لن تكون برامج حماية ولن تحمي المستخدم، هذا ناهيك عن الوقت الطويل الذي تستغرقه برامج الحماية لاكتشاف البرنامج الضار ومن ثم تحليله وتحليل عمله ومن ثم إضافته في قواعد البيانات ومن ثم إرسال قواعد البيانات الجديدة إلى المستخدمين على شكل تحديثات ثم قيام المستخدم بقبول التحديث (ماذا لو لم يكن له إنترنت) هذا كله سيستغرق وقت طويل ربما أيام أو أسابيع وفي هذا الوقت الطويل سينتشر الفايروس ويصيب آلاف أو عشرات آلاف الأجهزة ومبرمجي الفايروسات قد حققوا كل مكاسبهم من فايروساتهم (سواء تجسس أو فدية أو تعدين إلخ)، ماذا لو كان الفايروس الجديد غير معروف ؟ وانتشر في مدينة صغيرة أو بقعة جغرافية صغيرة ؟ ولم تقم شركة الحماية باكتشافه وبالتالي لن يتم اكتشافه مدى الحياة.
وللأسباب السابقة تم إضافة هذه الطريقة والتي تعتمد بالأساس الكشف على البرامج الضارة بناءً على عدة عوامل مختلفة كسلوكها أو نشاطها أو طريقة عملها أو احتوائها على سطور برمجية خبيثة، هذه العوامل المشتركة يشترك بها عدد كبير من البرامج الضارة، ولا تعتمد على مقارنة الهاشات فقط الذي قد يتغير بكل بساطة، وبالتالي اعتماد برامج الحماية على هذه التقنية في طريقة فحصها أصبح أذكى من العادة وقد يكتشف برامج ضارة غير معروفة لديه في قواعد البيانات أو غير مبرمجة في وقتنا هذا وكل هذا يعتمد على عمل البرنامج الضار، وبالتالي الكشف على برامج ضارة أكثر، حيث أصبح برنامج الحماية لا يعتمد على التحديثات بل أصبح يعتمد على نفسه أكثر، وبالعودة إلى الترجمة (الكشف القائم على الحدس) يعني أن برنامج الحماية أصبح لديه نوع من الحدس في الكشف عن البرامج الضارة وليس مجرد روبوت غبي يفحص الهاشات ويقول برنامج ضار أو لا.
تعتمد هذه الطريقة في الكشف على البرامج الضارة على ثلاثة معايير أساسية:
أ) Behavioral-based recognition:
أي التعرف بناءً على السلوك، وهي واحدة من أهم الخطوات في الكشف عن البرامج الضارة، وهذه التقنية هي العمود الفقري لبرامج الحماية وكلما كانت ذكية ومتطورة كان برنامج الحماية أفضل وسيكشف أسرع عن البرامج الضارة ويبطل عملها ويحذفها بشكل أسرع.
دعونا نعرف كيف تعمل هذه التقنية، عندما قلنا في البداية إن برامج الحماية تعتمد على Real time protection أي الحماية في الوقت الحقيقي أي عند فتح أي ملف وليكن exe مثلاً سيتم فحص الهاش الخاص به فإذا كان سليماً سيمر إلى فحص سلوكه، ماذا يعني فحص سلوكه ؟ إن الكثير من البرامج الضارة تتشارك في السلوك (أي العمل الذي تقوم به عند فتحها)، مثلاً من الأسلاك (جمع سلوك) الشائعة والتي قد تتشارك بها البرامج الضارة:
– تقوم بنسخ نفسها إلى مسارات بدء التشغيل أو تعديل قيم ال registry التي رأيناها سابقاً، وذلك كي يبدأ البرنامج الضار العمل عند كل ولوج إلى الويندوز، أو القيام بإخفاء الملفات وإخفاء ملفات النظام كما رأينا في البداية أيضاً.
– حذف ملفات النظام أو تخريبها أو محاولة الدمج فيها.
– البحث عن برامج الحماية في النظام لكي تقوم بمهاجمتها سواء حذفها أو إيقاف عملها.
– تشفير الملفات (مثل حالات فايروسات الفدية).
وهناك عدد كبير من الأنشطة المتعارف عليها والتي تتبعها أغلب البرامج الضارة، لذلك قامت شركات الحماية باستغلال هذه النقطة وأصبحت برامج الحماية لديها تعتمد هذه المنهجية فإذا رأى برنامج الحماية مثلاً أي برنامج ينسخ نفسه في بدأ التشغيل أو بدأ يقوم بتشفير الملفات، فإنها ستقوم بإيقافه على الفور وحذفه، أو إخبار المستخدم على الفور بأنه تم العثور على برنامج ضار هل تريد حذفه أم لا.
هذا الكشف بالنسبة على السلوك، قد تتمكن برامج الحماية من الإطاحة بالبرامج الضارة بناء على أكواد برمجية خبيثة متعارف عليها ومنتشرة تستخدم ضمن البرامج الضارة، مثل الأكواد المتعلقة بفتح اتصال نشط بين الضحية والمخترق، مثلما رأينا هناك قواعد بيانات ضخمة للتواقيع فهناك قواعد بيانات ضخمة أيضاً للأكواد البرمجية الخبيثة المتعارف عليها ضمن البرامج الضارة فإذا قام أي برنامج باحتوائها أو احتواء جزء منها سيتم تصنيفه كبرنامج ضار.
بعد قيام برنامج الحماية باكتشاف برنامج ضار جديد بناء على سلوكه أو ما شابه سيقوم برنامج الحماية بإرسال البرنامج الضار إلى شركة الحماية مرفقاً بتقرير، وإذا تم تكرار هذا البرنامج الضار لدى شركة الحماية عدد معين من المرات فإن شركة الحماية ستقوم بفحصه وتحليله ثم تصنيفه واعتماده كبرنامج ضار وتقوم بإدراج الهاش الخاص به في قواعد بياناتها، وفي المرة المقبلة عندما يقوم أي مستخدم بفتحه فإن برامج الحماية ستتعرف عليه على أنه برنامج ضار من الفحص الأول أي بناء على التوقيع (الهاش).
إن عملية الفحص والكشف بناء على التوقيع (الهاش) أفضل لشركات الحماية لأن هذه المنهجية تستهلك موارد أقل للجهاز ولا تستهلك جزء كبير من أداء المعالج أو الذاكرة، لأن كل ما سيقوم به برنامج الحماية هو مقارنة الهاشات كما رأينا، وبالتالي لن يؤثر على أداء الحاسوب أو يقوم بتبطيئه.
وبسبب هذه التقنية أصبح من الممكن الآن أن نفهم لم قد يقوم برنامج حماية بإعطائنا إنذار ويخبرنا أن برنامج ما هو برنامج ضار بينما هو برنامج نظيف تسمى هذه الظاهرة بـ False Positives أي إيجابيات مزيفة أو إنذار كاذب أو إنذار مزيف، فمثلاً عند تثبيتك لبرنامج قام بوضع نفسه في بدأ التشغيل فسيقوم برنامج الحماية بإيقافه وإخبارك على أنه برنامج ضار، أو قيام برنامج حماية بالتبليغ على تحديثات ويندوز على أنها برامج ضارة، وهذا ما يفسر أيضاً لم تقوم برامج الحماية بتصنيف برامج الحماية الأخرى على أنها برامج ضارة، حيث أن برنامج الحماية سيرى أن سلوك البرنامج الآخر هو فحص الملفات أي الوصول إلى عدد كبير من الملفات (قد يعتقد برنامج الحماية أنه يقوم بالوصول إلى هذا الكم الهائل من الملفات لتشفيرها) وبالتالي سيقوم برنامج الحماية الآخر بإيقافه ويعتبره برنامج ضار، أو مثلاً تعتبر بعض برامج الحماية برامج مراقبة النظام (مثلاً أب يريد مراقبة ابنه في الحاسوب) برامج ضارة، وذلك يعود إلى نشاطها المريب وهكذا.
إذا اختلط عليك الأمر وقام برنامج الحماية بإيقاف برنامج اعتيادي لك وتم تصنيفه على أنه برنامج ضار قم بتحميل الملف أو البرنامج إلى Virus total وفحصه هناك للحكم في أمره.
ملاحظة: هذا لا يعني أنه لا يجب اعتبار ملف ما كانت نتيجته سليمة وأصبح فجأة برنامج ضار على أنه إنذار مزيف، قم برفعه إلى Virus total وفصحه هناك.
ب) Sandbox detection:
الترجمة الحرفية لمصطلح sandbox هي صندوق الرمل وجاءت التسمية من صندوق الرمل الخاص بالأطفال حيث يمثل الصندوق البيئة الخاصة بالأطفال ولا يمكنهم اللعب خارج الصندوق حتى لا يصابوا بأذى، تسمى هذه التقنية في بعض برامج الحماية باسم container أي الحاوية.
رأينا في الخطوة السابقة كيف أصبحت برامج الحماية أكثر ذكاء وأصبحت تعتمد على فحص سلوك البرامج الضارة، هذه السياسة الجديدة المتبعة في الحماية وجهت ضربة مؤلمة لأصحاب القبعات السوداء لأنها قد تقضي على برامجهم الضارة قبل ولادتها، مما دفعهم للقيام بإجراءات جديدة أكثر ذكاء لكي لا يتم الإطاحة ببرامجهم الضارة منها القيام بتشفير برامجهم الضارة بخوارزميات معقدة أو أن لا يقوم البرنامج الضار بتشغيل سلوكه الضار الخبيث عند الضغط عليه بل يقوم بنشاط عادي في البداية ثم بعد مرور بعض الوقت يقوم ببدأ تنفيذ السلوك الضار ويتم تنفيذه أيضاً على دفعات، أو في بعض الحالات يتم خلط الأمور على برنامج الحماية ولا يعرف هل هو برنامج ضار أم سليم أم برنامج سليم يحتوي على بعض السطور البرمجية الخبيثة يتم تنفيذها، وبسبب كثرة الإنذارات الكاذبة أو الخاطئة وانزعاج المستخدمين في بعض الأحيان، لجأت شركات الحماية إلى إضافة تقنية جديدة وهي ال sandbox وهي عبارة عن تقنية تمكن برنامج الحماية من تشغيل البرمجيات أو البرامج المشكوك في أمرها داخل بيئة عمل افتراضية (وهمية) يتم إنشاؤها من قبل برنامج الحماية لبعض من الوقت ورؤية هل هناك فعلاً نشاط مريب أو سطور برمجية خبيثة سيتم تشغيلها أم لا، وبالتالي يمكن السيطرة على كل ما تسببه هذه البرمجيات من أوامر (إذا كان ضار فعلياً) فلا يتجاوز الضرر تلك البيئة الافتراضية إلى نظام التشغيل الأساسي ويبقى داخل الصندوق الرملي، فإذا كانت هذه البرامج ضارة فلن تسبب ضرر لجهاز المستخدم وإن كانت غير ضارة فسيتم نقلها من البيئة الوهمية إلى البيئة الحقيقية.
وبالتالي تكون هذه الخاصية مفيدة جداً بالنسبة لمن يقومون بتحميل البرامج من الإنترنت وتشغيلها بشكل كبير.
للأسف إن تقنية ال sandbox وكل التقنيات السابقة لا يمكن الاعتماد عليها بشكل كلي، فالبرامج الضارة أذكى من ذلك بكثير وقد تتمكن من تجاوز بيئة ال sandbox بما يسمى بـ sandbox evasion أي التهرب من الصندوق الرملي.
إن كل من تقنية ال sandbox و ال container متشابهتان جداً إلى حد الخلط فيما بينهما، رغم تشابههما في كثير من الأمور والنقاط واعتمادهما على ال (virtualization) أي المحاكاة الافتراضية، إلّا أن هناك بعض الاختلافات الطفيفة بينهما وأهم نقطة فرق بينهما أن الحاويات container عندما يقوم برنامج الحماية بتشغيل برنامج مشكوك في أمره داخل container فإنه سيبقى يعمل داخل ال container إلى الأبد ولن يخرج من البيئة الوهمية إلى البيئة الحقيقة ولا تهتم الحاويات إذا كان البرنامج سليم أم ضار وحتى لو تبين أنه سليم بعد بعض الوقت فسيبقى داخل الحاوية كما قلنا إلى الأبد، بينما ال sandbox يقوم برنامج الحماية بإخراج البرنامج من البيئة الوهمية إذا تم تشغيله فيها وتبين أنه سليم بعد مرور بعض الوقت.
رغم أن تقنية الحاويات هي أحد أكثر التقنيات أماناً في يومنا هذا وأكثرها احترافية في عزل البرامج الضارة والتهديدات الأمنية إلا أنه لكل قاعدة استثناءات وهناك بعض الخرقات للحاويات ولا يمكن اعتمادها كنقطة نهائية في الحماية والأمان وذلك يعود لأصحاب القبعات السوداء وذكائهم وقدراتهم القوية في البرمجة وكشف الثغرات.
ملاحظة: هناك برامج مختصة في توفير البيئة الوهمية لتشغيل البرامج داخلها (أي منفصلة عن برامج الحماية) أشهر هذه البرامج Sandboxie.
ج) Data mining strategies:
استراتيجيات التنقيب على البيانات أو استخراج البيانات، وهي أحد أحدث وأجد الطرق في التعرف على البرامج الضارة إن تقنية استخراج البينات مستمدة من العديد من العلوم مثل علم الإحصاء والرياضيات والمنطق وعلم التعلم والذكاء الاصطناعي والنظم الخبيرة وعلم التعرف على الأنماط وعلم الآلة، وغيرها من العلوم والتي تعتبر من العلوم الذكية وغير التقليدية.
بفضل هذه التقنيات أصبح هناك طفرة نوعية في مجال عمل برامج الحماية، فأصبحت أكثر ذكاء وقدرة على حماية المستخدم ليس فقط من البرامج والملفات الضارة بل من المواقع الضارة والمرفقات الضارة التي تأتي في البريد الإلكتروني أو الإعلانات التضليلية، وحتى من ثغرات اليوم الصفر.
لو أردنا التكلم بالتفصيل عن كيفية قيام برامج الحماية باستخدام هذه التقنية لاحتجنا إلى كتب ضخمة لكي تشرح ماهية وتقنيات التنقيب على البيانات في الكشف على البرامج الضارة.
وهكذا نرى أن الحرب التقنية مستمرة بين المبرمجين وأصحاب القبعة من جهة والخبراء الأمنيين وشركات الحماية من جهة أخرى، وكلما قام أصحاب القبعات السوداء باستخدام تقنية جديدة قامت شركات الحماية باكتشافها وإيجاد حلول لها ليقوم أصحاب القبعات السوداء بتطوير تقنية جديدة، وهكذا … هل سنرى يوماً ما أنظمة من غير تهديدات واختراقات ؟