بسم الله الرحمن الرحيم
البرامج الخبيثه خطر كبير على الناس عامه وعلى الشركات و المنظمات خاصة فكم من معلومات مهمه فقدت و مصانع ومستشفيات توقف عملها ومفاعلات كادت ان تنفجر وتقتل الابرياء جراء هجوم هذه البرامج .
لهذا السبب يجب ان يكون هنالك مهندسين و محللين لهذه البرامج لفهم كيفيه عملها و ما تاثيرها ليسهل القضاء عليها واكتشافها .
ان شاء الله ساحاول ان اغطي اساسيات ومنهجية تحليل البرامج الخبيثه ليسهل عليكم البحث و تطوير انفسكم في هذا المجال .
اولا لماذا نقوم بعملية تحليل البرامج الخبيثه :
1) اغلب مضادات الفيروسات لا يمكن الاعتماد عليها .
2) 50%-97% من الاختراقات تتضمن برامج خبيثة .
3) 70%-90% من البرامج الخبيثه تكون مميزه (غير معروفه) و مستهدفه لشركه او منظمه معينه .
4) اساس للخطوات القادمه في الطريق لتحديد الجهه المسؤوله وكيفية ازاله تأثير البرنامج الخبيث .
ثانيا ما هي المتطلبات المعرفيه لمحلل البرامج الخبيثة :
1) اساسيات الشبكات TCP/IP
2) معرفه كيفيه عمل انظمه التشغيل
3) اساسيات البرمجة
4) اساسيات الهندسه العكسيه
ثالثا ما هي البرامج الخبيثة ؟
هي برامج تعمل بدون معرفة واذن المستخدم و يمكن ان تسبب الضرر لنظام التشغيل او ان تقوم بسرقه المعلومات او استخدام موارد الجهاز لصالح المخترق .
رابعا ما هي انواع البرامج الخبيثه ؟
1) Virus : هو برنامج خبيث يقوم بالانتشار عن طريق حقن نفسه في الملفات الموجوده داخل النظام و له مهمه معينه يحدهها صانعه ( نادر الوجود حاليا )
2) Trojan : هو برنامج خبيث يدخل النظام على انه برنامج موثوق به وغير ضار لكن عند تشغيله يقوم بتشغيل البرنامج الضار الذي يتم تجهيزه به ( موجود بكثره ).
3) Worm : هو برنامج خبيث يقوم بالانتشار عن طريق الشبكه حيث يقوم بالاتصال بالاجهزه على الشبكه وتجربه الثغره المجهز بها ليدخل على الجهاز ثم يقوم بنشر نفسه مره اخرى ( نادر الوجود )
4) bot : هو برنامج خبيث يقوم بالاتصال مع المخترق لايخذ منه الاوامر (موجود بكثره ) .
5) RootKit : هو برنامج خبيث يقوم باخفاء نفسه او اخفاء برنامج خبيث اخر باستخدام دوال لنظام التشغيل تعمل على مستوى منخفض او باستخدام دوال غير معلن عنها او مشروحه من قبل صانع النظام لهذا لا يمكن لمضاد الفيروسات ان يعلم بوجودها ( موجود لكن ليس بكثره ) .
6) RAT (remote administration tool) : هو اداه تم عملها لاداره النظام عن بعد لكن تم استخدامها من قبل المخترقين لاختراق والتحكم بالضحيه بدون معرفتها (موجود بكثره ) .
خامسا طرق تحليل البرامج الخبيثه:
1) Dynamic analysis : وهو عمليه تشغيل البرنامج الخبيث داخل نظام وهمي وتتبع ما يقوم به البرنامج من اتصالات عبر الشبكه , التعديل على الملفات , التعديل على المسجلات ( سهله ولا تحتاج لوقت طويل لكنها لن تعطيك كافه المعلومات عن امكانيات البرنامج الخبيث ) .
2) Static Analysis : هو القيام بهندسه عكسيه للبرنامج الخبيث لمعرفه امكانياته ( تتطلب خبره عميقه و تحتاج وقت كبير ) .
3) استخدام كلتا الطريقتين لفهم البرنامج الخبيث و التاكد من النتائج .
سادسا ماذا سنحتاج في هذه الدوره ؟
جميع البرامج التي سنقوم باستخدامها موجوده في قائمه الادوات في الموقع وننصح باستخدام نظام اللينكس كنظام اساسي ان امكن ذلك .
ايضا هنالك قائمه الكتب وهي تحتوي على جميع الكتب التي ستعطيك معلومات متقدمه في هذا المجال .
هنالك قائمه العينات التي تحتوي على اغلب مصادر التي يمكن الحصول من خلالها على عينات حقيقيه من البرامج الخبيثه
بسم الله الرحمن الرحيم
في هذا الدرس سنقوم بتجهيز بيئه العمل لنبدا عمليه تحليل البرامج الخبيثه .
بيئه التحليل يجب ان تكون معزوله و على انظمه وهميه حتى لا تسبب الضرر للنظام الاساسي لمحلل البرامج الخبيثه .
سنقوم بتجهيز البيئه الوهميه وتثبيت البرامج التي سنقوم باستخدامها خلال الدوره .
اولا ما هي الانظمه الوهمية ؟
الانظمه الوهميه هي عباره عن نظام كامل يتم تنصيبه داخل برنامج يقوم بمحاكاه عمل جهاز الحاسوب بحيث يكون معزول عن النظام الذي يعمل عليه برنامج المحاكاه !
تكمن فائده الانظمه الوهميه بسهوله عملها والتحكم بها بحيث يمكنك التحكم فهي توفر لك بيئه لتجريب كل ما تريده بدون الخوف من عمليه ال format لنظامك الاساسي اذا حصل اي خطأ .
يوجد برنامجين يقومان بعمل اجهزه افتراضيه :
vmware : وهو برنامج غير مجاني وله ميزات كثيره ( يمكنك ان تحصل على مفتاح التفعيل له بسهوله بالبحث على جوجل )
virtualbox : وهو برنامج مجاني له ميزات وعيوب ولكنه اصعب في العمل عليه بالمقارنه مع vmware .
روابط التحميل من الموقع الرسمي ( ملاحظه يمكنك العمل على البرنامجين على اي نظام تشغيل ان كان وندوز او لينكس ) :
ثانيا الانظمه التي سنقوم باستخدامها :
سنقوم باستخدام نظامي :
windows XP : سبب اختيار هذا النظام انه جميع انواع البرامج الخبيثه تعمل عليه و لا يوجد به نظام تقييد الصلاحيات فتعمل جميع البرامج بكامل فاعليتها و يستطيع البرنامج الخبيث القيام بكل خصائصه بدون مشاكل واهم خاصيه هي انه خفيف ولا يحتاج موارد كبيره حتى يعمل بفعاليه .( يجب استخدام معماريه x64 حتى تقوم بعمل تحليل اي برنامج بغض النظر عن نوع معماريته 32 او 64 )
يفضل تحميل هذه النسخة من معمارية 32 : WIndows XP SP3 x86
Serial number : M6TF9-8XQ2M-YQK9F-7TBB2-XGG88
remnux : وهي توزيعه لينكس مخصصه لتحليل البرامج الخبيثه تحتوي على ادوات ستساعدنا في عملنا .
رابط التحميل : Remnux
ملاحظه ( مستخدمي نظام الكالي لينكس كنظام اساسي يمكنهم الاستغناء عن remnux )
ثالثا البرامج التي سنقوم باستخدامها :
جميع البرامج التي سنقوم باستخدامها موجوده في قائمه الادوات
ملاحظه ( رابط تحميل النسخه المفتوحه ل ida pro موجود على 4shared يمكنك البحث عنه او التعليق بطلبه و وضع الايميل لابعثه لك )
رابعا ترتيب البيئه و كيفيه وصول الى الانترنت :
سنقوم باستخدام ال remnux كموجه router للبيانات التي تخرج من خلال وندوز xp حتى نستطيع التحكم بها و توجيهها الى حيث نريد .
enable ip forwarding
nano /proc/sys/net/ipv4/ip_forward
نغير القيمه الى 1 ثم نضغط ctrl+x ثم نكتب yes ثم enter
nating from eth0 to eth1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth1 -j ACCEPT
ملاحظة مهمه جدا في الشرح التوضيحي تكلمت عن معمارية x64 انها افضل من 32 لكن ليس في جميع الحالات واغلب البرامج الخبيثه التي تم تصميمها لمعمارية 32 لن تعمل بكافه امكانيتها لذا ننصح بتحميل النسختين حتى تستطيع العمل على كلا المعماريتين .
بسم الله الرحمن الرحيم
في هذا الموضوع سنقوم بعمل تحليل ديناميكي للبرنامج الخبيث باستخدام برامج متنوعه حتى نحصل على النتائج التي نريدها و التي ستساعدنا في عمليات التحليل الستاتيكيه static في الدروس القادمه .
اولا ما هو التحليل الديناميكي ؟
التحليل الديناميكي dynamic analysis : نقصد في التحليل الديناميكي ان طريقه التحليل تكون من خلال تشغيل البرنامج الخبيث واعطائه حريه القيام بما يريده داخل النظام الوهمي الذي قمنا بتجهزيه ثم نقوم بجمع المعلومات عن المهام التي قام بها .
ثانيا ما هي ميزات وسلبيات التحليل الديناميكي ؟
ميزات هذه الطريقه :
1- اسهل الطرق للحصول على معلومات حول البرنامج الخبيث : لا تتطلب هذه الطريقه معرفه عميقة في البرمجه او الهندسه العكسيه او انظمه التشغيل لانه هنالك برامج تقوم بجمع المعلومات لك بكل سهوله .
2- لا تحتاج لوقت طويل للحصول على المعلومات : لان العملية تتم عن طريق البرامج فلن تاخذ الكثير من الوقت حتى تجمع المعلومات .
سلبيات هذه الطريقة :
1- عدم عمل البرنامج والقيام بمهماته بسبب تجهيزه بخاصية الحماية من التحليل anti-analysis ( سنتكلم عن الحمايات في الدروس القادمه ان شاء الله
2- بعض البرامج الخبيثة تحتاج انظمه معينة للعمل وفي هذه الحاله نلجأ لطريقة التحليل عن طريق الهندسة العكسية .
3- بعض البرامج الخبيثة تنهي عملها اذا اكتشفت انه النظام يستخدم معمارية غير التي صممت لها .
ثالثا ما هي اهداف التحليل الديناميكي ؟
1- الحصول على مؤشرات الاصابه (indication of compromise) : هي ايجاد دلائل على انه الاصابه لهذا النوع من البرامج الخبيثة ( تعد من اهم الاهداف لمحلل البرامج الخبيثة لانه برامج مضادات الفيروسات يمكن ان تستخدم هذه الدلائل لايجاد البرامج الخبيثة الجديده )
2- معرفة نوع البرنامج الخبيث وتصنيفه لاحد الانواع الاساسية .
3- معرفة قدرات البرنامج الخبيث و مستوى الخطورة على الانظمة .
رابعا ما هي مؤشرات الاصابه IOC ؟
هنالك الكثير من مؤشرات الاصابه نذكر منها الاساسي :
1- اسماء الملفات المنشئة والهاش الخاص بها (md5 or sh256 hash ) : لكل ملف هاش مميز خاص به لا يوجد له شبيه يتم حسابه عن طريق اكثر من خوارزمية والهدف هنا حساب الهاش للملف الناتج عن البرنامج الخبيث حتى نقوم بمقارنته مع الملفات الموجود في الانظمة التي يتم فحصها ليتم الكشف عن الاصابه .
2- مكان اخفائه File path : كل مبرمج للبرامج الخبيثه يقوم بحقن برامج خبيثه في مكان معين بالنظام وهذا قد يكون احد الادله على الاصابه .
3- التعديل على المسجلات registers : حيث يقوم البرنامج الخبيث بزرع نفسه في المسجلات حتى يقوم مثلا بعملية تشغيل البرنامج الخبيث عندما يتم تشغيل الجهاز او يقوم بحقن بعض المعلومات حتى اذا قام المستخدم بتشغيله مره اخرى ان لا يقوم بالاصابه لانه بالاصل موجود .
4- اسم العمليه process ( اسم البرنامج عند عمله الذي يتم تسجيله في task manager) .
5- عنوان الانترنت IP address : حيث يقوم البرنامج الخبيث بالتواصل مع المخترق عن طريق الانتنرت باستخدام عنوانه و لكل برنامج خبيث عنوان او اكثر ليتصل به مع المخترق .
6- اسماء نطاقات التي يتصل بها : حيث يقوم المخترق بتسجيل نظاقات خاصه ليقوم البرنامج الخبيث بالاتصال بها مثل serv.contact.me ويقوم المخترق باستخدام النطاقات حتى لا يحصر البرانمج الخبيث بعنوان انترنت معين فاسم النطاق يوفر له تغير ال ip متى اراد و ستقوم خدمه dns بترجمه الاسم لعنوانه الجديد .
7- البيانات الخارجه عبر الشبكه : حيث يمكننا اخذ البيانات التي ترسل و استخدامها كمؤشر على الاصابه لان اغلب البرامج الخبيثه تقوم بارسال بيانات البدأ بالمحادثه التي تحوي على كلمه المرور الى خدمة المخترق التي غالبا ما تكون عباره عن هاش ( hash كلمه المرور مشفره باحدى الخوارزميات ) .
8- روابط المواقع التي يحاول البرنامج الوصول لها : حيث تقوم بعض البرامج الخبيثة بالاتصال بصفحه على موقع معين لتاخذ منها الاوامر لذا يمكننا الحصول على اسم الرابط على انه مؤشر للاصابه .
هنالك الكثير من المؤشرات على الاصابه و هذه الصوره تمثل البعض منها :
خامسا ما هي القدرات التي تتمتع بها بعض البرامج الخبيثه ؟
1- القدره على اكتشاف وتحديد وجودها في نظام وهمي .
2- القدره على تحديد وجود برامج التحليل عند استخدامها .
3- القدره على تحديد وجود برامج الحماية .
4- القدره على تحديد اذا ما كان النظام مجهز لتحليل البرامج الخبيثة عن طريق استخراج اسم الجهاز واسم المستخدم فاغلب المحللين يقومون بتسمية النظام ب analysis system و غيرها من الاسماء التي تدل على انه نظام ليس للمستخدمين .
ملاحظات :
سنقوم باستخدام برنامج خبيث من نوع bot يسمى illusion_bot تجدونه هنا : Illusion_Bot
الاوامر التي سوف تحتاجونها :
iptables -t nat -A PREROUTING -i eth1 -j REDIRECT
بسم الله الرحمن الرحيم
تكلمنا في الموضوع السابق عن التحليل الديناميكي للبرامج الخبيثة و من خلال التحليل كشفنا عن الكثير من المعلومات المهمه الخاصه بالبرنامج الخبيث المسمى ب illusion , في هذا الموضوع سنقوم باستخادم طريقة التحليل الساكن لنؤكد ما تم ايجاده و نبحث عن مؤشرات للاصابه التي تهمنا في الدرجه الاولى .
اولا ما هو التحليل الساكن للبرنامج الخبيث ؟
هو عملية البحث و استخراج معلومات عن البرنامج الخبيث بدون تشغيله حيث يتضمن استخدام علم الهندسه العكسيه لمحاوله فهم خصائص البرنامج الخبيث و فهم ما يحدث من داخل البرنامج وليس مثل التحليل الديناميكي الذي يظهر لنا فقط ما يقوم البرنامج باظهاره و لا يصل الى ما تم اخفائه .
ثانيا ما هو هدفنا في التحليل الساكن ؟
1) الحصول على قيمه الhash الخاص بالبرنامج الخبيث باستخدام خوارزميه md5 و sha1 .
2) استخدام مضاد فيروسات لنتأكد اذا ما تم اكتشاف البرنامج الخبيث من قبل .
3) الحصول على معلومات لتركيب ونوع البرنامج الخبيث و لغه البرمجه المتسخدمه واذا ما تم استخدام برامج معينه لتشفير محتواه .
4) الحصول على جميع الكلمات والجمل المقروئة داخل البرنامج التي يمكن انت تتضمن عناوين بريد الكتروني خاص بالمخترق او كلمات سر او عناوين IP او اسماء نطاقات يمكن ان تفيدنا في تميز البرنامج الخبيث و غيرها من الجمل التي كتبت لتسهيل حل مشاكل البرنامج من قبل المبرمج .
5) الحصول على جميع المكتبات والدوال التي يستخدمها البرنامج الخبيث واذا ما كان يحمل استغلال لثغرات داخل البرنامج .
6) عمل هندسة عكسيه و ارجاع البرنامج من ارقام بلغه الاله الى كود بلغه ال Assembly يمكن فهمه وتتبعه .
7) الحصول على خوارزميات انشاء اسماء النطاقات التي يقوم البرنامج الخبيث بالاتصال بها ( تقوم بعض البرامج الخبيثة باستخدام هذه الخوارزميات حتى لا يتم كتابة اسماء النطاقات بشكل صريح داخل البرنامج وانما يتم انتجاها بشكل ديناميكي اثناء عمل البرنامج .
8) الحصول على خوارزميات تشفير البيانات المرسله عبر الشبكه ليتم فك تشفيرها لاحقا .
9) تحديد تقنيات الحماية من الهندسة العكسية او الحماية من التشغيل داخل الانظمه الوهمية .
ثالثا ما هو ال hash ؟
هو رقم يمثل بالنظام السداسي ال Hex مميز لكل بيانات يتم انتاجه منها ولا يمكن ارجاعه لاصله . يتم انتاجه عن طريق ادخال المعلومات باحدى خوارزميات التشفير التي تقوم بعمل عمليات حسابية بطريقه معينه لينتج هذا الرقم المميز . يستخدم في تمييز البيانات واذا ما تم التعديل عليها لان اي تعديل بسيط يغير القيمه بشكل كبير لذلك نقوم باستخدامه بتميز البرامج الخبيثه عن بعضها . يوجد الكثير من خوارزميات ال hashing منها md5 و sha1 و sha2 وغيرها .
تختلف الخوازميات بقوه التشفير و عدم قدره المخترق على ارجاع القيمه لاصلها او توليد قيمه لبيانات مختلفه بنفس hash لبيانات اخرى مثلا :
لو قمنا باستخدام الخورزميه md5 على باسورد P@ssw0rd سينتج : 161ebd7d45089b3446ee4e0d86dbcf92
لو كانت الخوارزميه ضعيفه ويمكن ارجاع قيمه الهاش لاصله سيتم معرف كلمه السر .
ايضا لو كان هنالك كلمتان بنفس الهاش وكان هنالك نظام يستخدم الهاش للتاكد
من المستخدم سيتم اجتياز التحقق بكلمه سر مختلفه و في مجال عملنا يمكن عمل
برنامج خبيث بنفس الهاش لبرنامج نظيف وهكذا يتم تخطي مضادات الفيروسات .
رابعا ما هو ال Portable Executable Header PEH ؟
هو عباره عن قيم مرتبه بطريقه معينه موجوده في اول الملف التشغيلي تحمل معلومات عن البرنامج يستخدمها النظام ليقوم بتشغيل البرنامج بطريقه صحيحه .
من المعلومات التي يمكن استخراجها من هذا التركيب :
1) وقت انتاج البرنامج (compile time ) .
2) المعمارية التي يدعمها البرنامج 32 او 64 .
3) عدد ال المقاطع (section ) التي يستخدمها البرنامج وهي اماكن في الملف تحوي على الكود الذي سيتم تشغيله مثل .text و المتغيرات و الثوابت التي تم تعريفها مثل .data و المقاطع الاضافيه التي يمكن ان تستخدم لاغراض مختلفه كمان سنتعلم بالدروس القادمة
4) المكتبات و الدوال التي يستخدمها البرنامج خلال عمله
5) البيانات التي يحملها البرنامج معه كمثال من البرامج العاديه عندما تقوم بتحميل لعبة يكون الملف تشغيلي قد تم تضمينه بالصور و الموسيقى وتكون محفوظه في قسم ال resources . كمثال في البرامج الخبيثه يمكن ان يتم تضمين استغلال للثغرات داخل هذا القسم ليقوم البرنامج باستخدامها خلال عمله ( ابحث عن stuxnet ) .
للتعمق في موضوع PEH من هنا فهو موضوع يحتاج لكورس كامل لوحده .
من المهم ان تكون قد تعاملت او درست لغه الاسمبلي و فهمت الاساسيات لانه الموضوع لن يقوم بشرح الاساسيات و لكن سيتم عمل كورس منفصل لتعلم الهندسة العكسية واعطاء الاساسيات فيه .
يمكنك قرائه الكتب المختصه في الاسمبلي الموجوده في لائحه الكتب او يمكنك متابعه هذا الكورس المختص في هذه اللغه من هنا .
يوجد شرح لاساسيات لغه الاسمبلي مع تطبيق عليها خلال الدرس المقسم لخمس اقسام كما ترونها في الاسفل .
تعليقات
إرسال تعليق