x32x01
أدارة أكتب كود
- بواسطة x32x01 ||
تقنيات حقن البرمجيات الخبيثة Malware Process Injection Techniques
يمكن للبرامج الضارة تنزيل ملفات جديدة على النظام، وإنشاء مفاتيح Registers وقيم جديدة، وبدء اتصالات عبر الشبكة، وإنشاء عمليات جديدة، وما إلى ذلك.
يمكن للبرامج الضارة أيضاً حقن اي إدراج نفسها في العمليات (process) الجارية الحالية وتعديلها، بما في ذلك عمليات نظام التشغيل والنواة الأساسية، لكن معظم هذه التقنيات التي تستخدمها البرامج الضارة لهذا الغرض فقط ولكنها تقنيات مستخدمة من قبل العديد من البرامج الشرعية، وخاصة منتجات مكافحة البرامج الضارة على سبيل المثال عندك BitDefender يقزم بحقن ملف DLL داخل كل عملية تتم عبر المستخدم في النظام للتحقق منها اذا كانت ضارة أم لا، الفكرة ان الحقن ليس فقط لشيء ضار وايضاً تستخدم لشئ شرعي.
ما هو حقن الكود؟
حقن الكود هو تقنية حيث يمكن لعملية إدخال جزء من أو كل كودها من عملية التشغيل الخاصة بها إلى عملية هدف أخرى والحصول على العملية المستهدفة لتنفيذ الكود المحقون.
دوافع حقن الكود؟
يتم إجراء حقن الكود في وضع المستخدم ووضع النواة، تستخدم البرامج الضارة بشكل أساسي حقن الشفرة للأسباب التالية:
إخفاء:
الهدف هو تجنب التعرف السهل، مثال إذا قام شخص ما بالتحقق من قائمة العمليات التي تعمل على النظام بإستخدام إدارة المهام (task Manager) ورأى عملية ذات مظهر غريب سوف تلفت انتباه المستخدم مثال ransomware..exe والهدف الأخر أيضاً في الإختباء من منتجات مكافحة البرامج الضارة، لتحقيق إخفاء وجودها، فتقوم بذلك عن طريق حقن كل أو جزء من التعليمات البرمجية الخاصة بها في عمليات شرعية أخرى تعمل على النظام (على سبيل المثال ، Explorer ، و svchost ، و winlogon) والخروج من عملية البرامج الضارة الأساسية الخاصة بها.
فعلى الرغم من انتهاء عملية البرامج الضارة الأساسية الآن، إلا أن البرنامج الضار لا يزال قيد التشغيل ولكن كجزء من عملية شرعية أخرى عبر الكود الذي تم إدخاله مسبقاً، نتيجة لذلك يتجنب الآن التدقيق والتحقيق من قبل كل من المستخدمين الذين يبحثون في إدارة المهام عن العمليات الغريبة، ومنتجات مكافحة البرامج الضارة التي قد تتخطى التحقيق والمسح الضوئي لعمليات النظام المشروعة هذه.
السبب الاخر للحقن إذا أرادت البرامج الضارة الاتصال بالإنترنت، فقد يمنع جدار الحماية الموجود على النظام حدوث ذلك، إذا حاول الاتصال من العملية التي أنشأها، قد يكون السبب هو أن جدار الحماية على النظام قد يسمح فقط لعدد قليل من العمليات المعروفة على النظام بالاتصال بالإنترنت.
فكيف يمكن للبرامج الضارة تجاوز جدار الحماية؟..
يمكن للبرامج الضارة حقن التعليمات البرمجية الخاصة بها وتشغيلها من عمليات أصلية مشروعة أخرى مثل Explorer و svchost و winlogon وما إلى ذلك، والتي لديها إذن بالاتصال بالإنترنت، لذلك من خلال الاعتماد على إذن وامتيازات هذه العمليات المشروعة الأخرى، تتمكن البرامج الضارة من تجاوز القيود التي وضعتها سياسات نظام التشغيل في عمليتها الخاصة.
الدافع الآخر لحقن الكود هو تغيير وظائف عمليات معينة، يتم استخدام هذا إلى حد كبير بواسطة البرامج الضارة لربط التعليمات البرمجية، والجذور الخفية، واعتراضات واجهة برمجة التطبيقات (API hooking) في هجمات مثل man-in-the-browser.
تقنيات حقن الكود..
هناك العديد من تقنيات حقن الكود، بعض هذه التقنيات شائعة، و بعضها عبارة عن مزيج من طريقتين أو أكثر من التقنيات الأخرى، هذه بعض المصطلحات الشائعة والميزات والتقنيات المتعلقة بحقن الكود.
يمكن للبرامج الضارة تنزيل ملفات جديدة على النظام، وإنشاء مفاتيح Registers وقيم جديدة، وبدء اتصالات عبر الشبكة، وإنشاء عمليات جديدة، وما إلى ذلك.
يمكن للبرامج الضارة أيضاً حقن اي إدراج نفسها في العمليات (process) الجارية الحالية وتعديلها، بما في ذلك عمليات نظام التشغيل والنواة الأساسية، لكن معظم هذه التقنيات التي تستخدمها البرامج الضارة لهذا الغرض فقط ولكنها تقنيات مستخدمة من قبل العديد من البرامج الشرعية، وخاصة منتجات مكافحة البرامج الضارة على سبيل المثال عندك BitDefender يقزم بحقن ملف DLL داخل كل عملية تتم عبر المستخدم في النظام للتحقق منها اذا كانت ضارة أم لا، الفكرة ان الحقن ليس فقط لشيء ضار وايضاً تستخدم لشئ شرعي.
ما هو حقن الكود؟
حقن الكود هو تقنية حيث يمكن لعملية إدخال جزء من أو كل كودها من عملية التشغيل الخاصة بها إلى عملية هدف أخرى والحصول على العملية المستهدفة لتنفيذ الكود المحقون.
دوافع حقن الكود؟
يتم إجراء حقن الكود في وضع المستخدم ووضع النواة، تستخدم البرامج الضارة بشكل أساسي حقن الشفرة للأسباب التالية:
إخفاء:
الهدف هو تجنب التعرف السهل، مثال إذا قام شخص ما بالتحقق من قائمة العمليات التي تعمل على النظام بإستخدام إدارة المهام (task Manager) ورأى عملية ذات مظهر غريب سوف تلفت انتباه المستخدم مثال ransomware..exe والهدف الأخر أيضاً في الإختباء من منتجات مكافحة البرامج الضارة، لتحقيق إخفاء وجودها، فتقوم بذلك عن طريق حقن كل أو جزء من التعليمات البرمجية الخاصة بها في عمليات شرعية أخرى تعمل على النظام (على سبيل المثال ، Explorer ، و svchost ، و winlogon) والخروج من عملية البرامج الضارة الأساسية الخاصة بها.
فعلى الرغم من انتهاء عملية البرامج الضارة الأساسية الآن، إلا أن البرنامج الضار لا يزال قيد التشغيل ولكن كجزء من عملية شرعية أخرى عبر الكود الذي تم إدخاله مسبقاً، نتيجة لذلك يتجنب الآن التدقيق والتحقيق من قبل كل من المستخدمين الذين يبحثون في إدارة المهام عن العمليات الغريبة، ومنتجات مكافحة البرامج الضارة التي قد تتخطى التحقيق والمسح الضوئي لعمليات النظام المشروعة هذه.
السبب الاخر للحقن إذا أرادت البرامج الضارة الاتصال بالإنترنت، فقد يمنع جدار الحماية الموجود على النظام حدوث ذلك، إذا حاول الاتصال من العملية التي أنشأها، قد يكون السبب هو أن جدار الحماية على النظام قد يسمح فقط لعدد قليل من العمليات المعروفة على النظام بالاتصال بالإنترنت.
فكيف يمكن للبرامج الضارة تجاوز جدار الحماية؟..
يمكن للبرامج الضارة حقن التعليمات البرمجية الخاصة بها وتشغيلها من عمليات أصلية مشروعة أخرى مثل Explorer و svchost و winlogon وما إلى ذلك، والتي لديها إذن بالاتصال بالإنترنت، لذلك من خلال الاعتماد على إذن وامتيازات هذه العمليات المشروعة الأخرى، تتمكن البرامج الضارة من تجاوز القيود التي وضعتها سياسات نظام التشغيل في عمليتها الخاصة.
الدافع الآخر لحقن الكود هو تغيير وظائف عمليات معينة، يتم استخدام هذا إلى حد كبير بواسطة البرامج الضارة لربط التعليمات البرمجية، والجذور الخفية، واعتراضات واجهة برمجة التطبيقات (API hooking) في هجمات مثل man-in-the-browser.
تقنيات حقن الكود..
هناك العديد من تقنيات حقن الكود، بعض هذه التقنيات شائعة، و بعضها عبارة عن مزيج من طريقتين أو أكثر من التقنيات الأخرى، هذه بعض المصطلحات الشائعة والميزات والتقنيات المتعلقة بحقن الكود.
- Process hollowing
- Thread injection
- DLL injection
- Classical DLL injection
- Reflective DLL injection
- Shellcode injection
- Code cave
- QueueUserAPC
- Atom bombing