RSSمحتويات التصنيف: "الحماية"

شرح ثغرات Unvalidated Redirects وتطبيقها علي موقع Kaspersky

Kaspersky from Unvalidated redirection to Malware spreading

قبل أن أبدأ بشرح ثغرات ال Unvalidated Redirects

دعونا نعطي مثال بسيط حتي نفهم فكرة ال  (التحويل)Redirection

المستخدم تلقي رسالة علي بريده الإلكتروني بالمحتوي التالي:

عزيزي المستخدم .. يمكنك زيارة المدونة الخاصة بموقعنا من خلال الرابط التالي:

http://www.goodsite.com/link.php?url=http://blog.goodsite.com

إذا عندما يقوم المستخدم بالضغط علي الرابط بالإعلي فإنه سيتم توجيهة إلي http://blog.goodsite.com

إذا كيف يمكن إستغلال الرابط أعلاه؟

الأمر بسيط جدا .. حيث سيقوم المهاجم/المخترق بإستبدال الرابط الذي سيتم تحويل المستخدم إليه برابط آخر تابع له حتي يتم تحويل المستخدم إلي موقع المهاجم.

مثال:

عزيزي المستخدم .. يمكنك زيارة المدونة الخاصة بموقعنا من خلال الرابط التالي:

http://www.goodsite.com/link.php?url=http://blog.attacker.com

إذا عندما يقوم المستخدم بالضغط علي الرابط بالإعلي فإنه سيتم توجيهة إليhttp://blog.attacker.com

ولكن كما تري فقد تم تحويل المستخدم من خلال موقع goodsite.com والذي يفترض به ان يكون موقع موثوق لدي المستخدمين.

ما هي الخطورة التي ستقع علي المستخدم من خلال هذا النوع من الثغرات؟

1- تحويل المستخدم إلي صفحات تسجيل دخول مزورة شبيهه تماما لنفس صفحة تسجيل الدخول الخاصة بالموقع الأصلي وربما يكون إسم النطاق(Domain name)  أيضا شبيه لنفس إسم النطاق الخاص بالموقع الأصلي وبالتالي سرقة بيانات تسجيل الدخول الخاصة بالمستخدم.
مثال: بدلا من أن يتم تحويلك لموقع الفيس بوك www.facebook.com يتم تحويلك لموقع www.faecbook.com   هل لاحظت الفارق؟

2- تنزيل ملفات خبيثة (Trojans) علي أجهزة المستخدمين .. حيث يمكن للمهاجم تحويل المستخدم علي صفحه تستغل ثغرة في البرمجيات المنصبة علي جهاز المستخدم .. برمجيات مثل Java, Flash Player, Adobe Reader وغيرها

إذا ما السبب في حدوث تلك الثغرة؟ وكيف للمبرمج أن يحمي نفسه منها؟

الخطأ ان المبرمج لا يستخدم أي نوع من أنواع التحقق(validation) حتي يتأكد من الرابط الذي سيتم تحويل المستخدم إليه!

بعض طرق الحماية من تلك الثغرة:

1- Security Tokens

ما هي ال Security tokens

هي أرقام يتم تكوينها بنوع ما من التشفير(علي حسب المبرمج) وكمثال فهي تكون تجميعه من رابط الموقع + التوقيت الحالي + Salt

مثال:

“TRIffZRIE_yke-3Z1pxFaHaDC5FOPEXEGx6LpRZdjW”

فيصبح الرابط بالشكل التالي:

http://www.goodsite.com/link.php?url=http://blog.goodsite.com&token=TRIffZRIE_yke-3Z1pxFaHaDC5FOPEXEGx6LpRZdjW

اذا وظيفة الToken في هذه الحالة هي التأكد من أن الرابط الذي سيتم تحويل المستخدم إليه هو رابط موثوق منه ومسجل في قاعدة بيانات الموقع ولم يتم التلاعب به لان كل رابط يكون له Security Token واحد فقط.

2- Black & White List

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

نأتي هنا لمثال عملي علي موقع شركة Kaspersky عملاق شركات إنتاج برمجيات الأمن المعلوماتي .. حيث كان الموقع مصاب بثغرة من هذا النوع الذي نتحدث عنه اليوم

وفي الفيديو التالي نجد انه تم إستغلال الثغرة بطريقة المحاكاة لمحاكاة إستغلال الثغرة من قبل الهاكرز واستخدامها في نشر الملفات الخبيثة (Trojans) مستغلين إسم وثقة Kaspersky لدي المستخدمين.

تخيل معي عزيزي القارئ  رابط يأتيك من شركة كاسبرسكي(وهي مصدر موثوق لا محاله) ويطلب منك تحميل ملف! أو صفحه يتم تحويلك إليها من موقع كاسبركي وتطلب منك بيانات معينه او تعرض عليك تنزيل آخر إصدار من برنامج كاسبرسكي المدفوع وبشكل مجاني!

“أكثر المصادر ثقة لك .. قد يكون هو عدوك الأسوء!”

الفيديو للمزيد من التفاصيل:

الثغرة في الفيديو تم إكتشافها من قبل كاتب الموضوع وتم إبلاغها لشركة كاسبرسكي فور إكتشافها وهي مرقعه في الوقت الحالي.

بصمة البرمجيات الخبيثة و كفائة برامج مكافحة الفيروسات

قد يتساءل الكثير حول ما هي الطريقة التي تعتمدها برمجيات مكافحة البرمجيات الخبيثة Anti-malware  في التعرف على هذه الأنواع من البرمجيات الخبيثة كالفيروسات و برامج التجسس و خلافهما. الحل يكمن في العامل الأقوى في التمييز بين برمجيات مكافحة البرمجيات الخبيثة و يستطيع وحده أن يهوي بإحدى هذه  البرمجيات الى الهوة أو يصعد بها عنان السماء. انه “بصمة البرمجيات الخبيئة” أو ما يعرف بـ malware signature

تستطيع من كلمة “بصمة signature” ان تأخذ فكرة أولية عن كون هذه المصطلح يشير الى علامة مميزة تميز هذه البرمجية الخبيثة عن غيرها من البرمجيات كما تميز بصمات الأصابع و قرنية العين أي إنسان عن آخر. و لكن كيف نستطيع تمميز بصمة للبرمجيات الخبيثة ؟ بل ما البصمة البرمجية software signature في الأساس؟

لفهم هذه الجزئية يتوجب علينا الاشارة الى طريقة برمجيات مكافحة البرمجيات الخبيثة في فحص الملفات, حيث أنها تعتمد في الاساس الى قراءة الملف في صورة أدق من التي كتب بها كفرائته في صورة الكود الثنائي Binary code لكون هذه الوسيلة تعطيه القدرة على تحديد معالم الملف المفحوص بصورة أدق. و هنا تأتي البصمة و هي التي يتم تعريفها بأنها مجموعة من الخانات المتتالية sequence bits التي تميز كود هذه البرمجية عن قريناتها. أي أن الطريقة تقتضي أن كل برمجية ضارة لا بد أن يتم تعريفها عن طريق مجموعة من الخانات bits التي يصعب تواجدها بنفس الترتيب في أي برمجية أخرى. و للتعرف أكثر على بصمات البرمجيات الخبيثة يمكننا أخذ مثال على برمجية klez من نوع الدودة worm و التي يتم التعرف عليه فور العثور على هذه الشيفرة ضمن أي ملف

33be732d4000bd08104000e89eeaffff80bd08104000be7d2d4000e849eaffff6a00e83500000064756d6d792
e65786500653a5c77696e646f77735c53795374656d33325c644c6c63616368655c6464642e65786500ff25
4c404000ff25544040

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

الى أي درجة تبلغ دقة البصمة ؟

كلما زادت حجماً كلما كان افضل لتحديد البرمجية المستهدفة و كذلك أسهل على برمجية المكافحة في البحث و التدقيق. لنفترض أن بصمة عبارة عن خانات bits محدودة كما B6A51152, المشكلة هنا أننا قد نصادف آلاف البرمجيات التي تحتوى على هذا الكود نظراً لكونه قصير و احتمالية تكراره كبيرة و هو ما يؤدي بنا الى حالة “التحديد الخاطيء false positive” و التي تعني ان تقوم برمجية المكافحة بالتبليغ عن برمجية صالحة على أنها خبيثة لمجرد احتوائها على بصمة برمجية خبيثة, و هو ما كان يتكرر كثيراً في الماضي نظراً لصعوبة استخلاص بصمات بحجم اكبر من البرمجيات الخبيثة و النتيجة أن تجد ملفات بالجملة قد تم حذفها أو اعطابها من قبل برمجية المكافحة بعد كل مرة تقوم بها بفحص ذاكرة جهازك

هل يجب توفر بصمة فريدة لكل برمجية خبيثة تظهر على الساحة ؟

نظراً لانه في العموم يكون تطوير البرمجيات الخبيثة من قبل أفراد لا مؤسسات, فغالباً ما ترى تكراراً في الخوارزميات المستخدمة في تلك البرمجيات لأن أغلبها ينتج عن أفراد غير متخصصين بدرجة عالية و يستعينون بخبرات سابقة في صنع تلك البرمجيات. و لذلك فلربما اشتركت بصمة واحدة مع آلاف البرمجيات الخبيثة لاشتراكها في جزء من نفس الخوارزمية, و على النقيض لربما نجد بصمة فريدة  لبرمجية خبيثة واحدة و هي تلك التي تخرج على فترات متباعدة و من قبل متخصصين يستطيعون ابتكار خوارزمية جديدة لم يتم التعرف عليها من قبل برمجيات المكافحة, و هنا يحدث ما يسمى بـ”التجاهل الخاطئ false negative” و هو ما يعني فحص برمجية خبيثة و عدم التعرف عليها نظراً لعدم توافر بصمة لها. و لذلك يعتمد أصحاب هذه الأنواع من البرمجيات الخبيثة على الاستفادة من الضربة الأولى لأنها تقريباً تكون الأكثر ربحاً نظراً لأنها –عادة- ليست سوي أيام و يستطيع خبراء مكافحة هذه البرمجيات في التعرف على البصمة و يتعطل عمل البرمجية الضارة على نطاق واسع.   ايضاً من الجدير بالذكر ان بعض اصحاب البرمجيات الخبيثة يلجأون دائماً إلى استخدام تنقيات التشفير Encryption و التشويش Obfuscation  لتغير شكل بصمة البرمجيات الخبيثة حتى لا يستطيع اي من برامج الحماية التعارف عليها .

هل هذه الطريقة مستخدمة الى الآن ؟

نظراً لأن هذه الطريقة تم الكشف عنها لأول مرة في الثمانينات, و على الرغم من قدمها و بدائيتها. فأنها لا زالت الطريقة الأمثل في التعامل مع البرمجيات الخبيثة و المعتمدة الى الآن في كبرى شركات برمجيات المكافحة.

هل يمكنني كمطور الكشف عن بصمة أي برمجية ؟

هناك العديد من الخوارزميات الخاصة بتحدد بصمة أي برمجية و من أشهرها تلك التي اعتمدها باحثو IBM و التي تتطب منك معرفة بالرياضيات و علوم تأمين الحواسب computer security  بشكل جيد. و يمكنك البحث عن طرق آخرى تستخدم برمجيات جاهزة كما في هذه التدوينة البسيطة

هل تنصيب برنامج مكافحة على جهازي كاف ؟

عادة. فإن نقطة القوة التي قد تميز أي برنامج مكافحة برمجيات خبيثة عن الآخر هي عكوف فريق عمله على تحديث قاعدة بيانات البرنامج بشكل أسرع كلما ظهر على الساحة أي برمجية ضارة, و لذا فلا نر أي فائدة لبرنامج مكافحة دون تحديث دورى لقاعدة بياناته, و هو لا يتأتي غالباً الا لأصحاب النسخ المرخصة غير المسروقة.
و لكن نظراً لأن البرمجيات الخبيثة منها ما يظهر منه أنواع جديدة يومياً كالفيروسات viruses و تلك ربما تطلب أكثر من تحديث يومياً في حالات الذورة و هي التي كثرت في ظل الهجمات الشرسة التي تعتمد الشبكة العالمية internet  لجنى الأرباح بسرعة شديدة قبل الكشف عنها من قبل باحثي برمجيات المكافحة. و منها ما يتطلب منك التحديث على فترات متباعدة كما في برمجيات مكافحة ملفات التجسس و الاعلانات anti-spyware & anti-adware. لذلك عليك الانتباه الى نوعية الملفات التي يكافحها برنامج المكافحة لديك قبل استخدامه.

و أخيراً. فإن مجال مكافحة الفيروسات يعتبر من  أسرع المجالات التي تطرأ عليها تغييرات سريعة على فترات متقاربة  خصوصاً في ظل هذه الهجمات الشرسة الأخيرة بعد أن أصبح الوصول بالبرمجية الضارة الى مئات الآلاف من الاجهزة خلال دقائق ضرباً من السهولة piece of cake مما يحعلنا معرضين و ملفاتنا و حساباتنا الشخصية على المواقع و أرقام بطافاتنا الائتمانية و خصوصيتنا و غير ذلك مهدد بالانتهاك في أي لحظة هفوة تفتح فيها رابطاً أو تستخدم ذاكرة محمولة تحوى برمجية خبيثة لا يبلغ عنها برنامج المكافحة لديك .. لذلك عزيزى المستخدم لا تملك الا أن تتأكد من حيازتك نسخة مرخصة من برنامج مكافحة فيروسات ذي سمعة حسنة يعكف فريق باحثيه على فحص البرمجيات الخبيثة الحديثة بسرعة شديدة, و حينها لا تنس انت أن تسارع الى تحديث برنامجك  كلما طلب منك ذلك , ايضاً لا يجب ان تقوم فقط بالاعتماد على برنامج مكافحة الفيروسات لأنه لا يوفر حماية بنسبة 100% لذلك يجب ان تعتمد على انواع و اساليب اخرى من الحماية مثل الجوء إلى إستخدام Virtualization Envoriment  مثل  Vmware   لتشغيل اي ملفات مشكوك فيها  و إستخدام الجدران النارية و انظمة كشف و مكافحة التسلل IDS / IPS  و التعرض فقط للروابط و الملفات الموثوق فيها, حيث أن التجربة قد تكلفك الكثير.

كيف تقوم بزيادة الحماية لمتصفح Firefox

متصفح Firefox أصبح واحد من اشهر متصفحات الإنترنت فهو يأتي في المرتبة الثانية مباشرة بعد متصفح Google Chrome حسب احصائية موقع w3schools لعام  2012 . فهو المتصفح الأساسي لجميع توزيعات Linux و يستخدمه الملاين حول العالم لسهولته و سرعته الملحوظة بالتصفح و توفر له الكثير من الإضافات ( add-ons ) التى تميزه عن باقي المتصفحات .

لكن متصفح فايروفكس قد يعاني للأسف القليل من بعض المشاكل و الضعف في الوصول إلى مستوى حماية متقدم فهو لا يحتوى على نظام حماية قوي مثل متصفح الـ Google Chrome الذي يتفوق و يتميز بقوة  في الحماية عن باقي المتصفحات الأخرى لاستخدامه تقنية الـSandbox التى تعطي دفاع استباقي و تمنع تشغيل اي ثغرات قد تصيب المستخدم من خلال المتصفح .

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

كيف قد يتم إختراق نظامي من خلال المتصفح ؟

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

كيف يتم ذلك … ؟

يتم ذلك ببساطة عن طريق استغلال لثغرات قد تظهر في المتصفحات مثل متصفح Internet Explorer الذي عانى كثيراً من ظهور ثغرات له تسمح بتنفيذ اكواد ضارة و تشغيل Shellcode يؤدي إلى تحميل و تشغيل ملف ضار على نظام المستخدم . ايضاً  قد لا يكون الاختراق من خلال ثغرة او ضعف في المتصفح نفسه و لكن من خلال اضافات تعمل مع المتصفح مثل Adobe FlashPlayer , Adobe Reader, Java , Real Player و غيرهم .

مثلا كما نعلم ان شركة Adobe عانت كثيراً من مشاكل امنية و ثغرات في منتجاتها مثل Adobe Reader و  Adobe Flashplayer فمثلا اذا كنت تستخدم إصدار قديم نوعاً ما لمشغل ملفات PDF الـ  Adobe Reader 9.3.0 و الذي قد ظهرت فيه عده ثغرات فأنت بمجرد تنصيبك له على نظامك يتم اضافة Plugin في المتصفح لديك ليسهل عليك تشغيل ملفات الـPDF مباشرة من خلال المتصفح دون الحاجة إلى تحميلها ثم تشغيلها . لكن في هذة الحالة فأن نظامك سوف يكون معرض لاختراق في اي لحظة حتى و ان كنت تستخدم اخر إصدار و تحديث للمتصفح  .

لأنه ببساطة عند زيارتك لموقع او صفحة ملغمة تحتوى على ملف PDF خبيث يستغل ثغرة في اصدار الـAdobe Reader لديك سوف يقوم المتصفح تلقائياً بمحاولة عرض و تشغيل ملف الـPDF مباشرة  و ذلك من خلال برنامج Adobe Reader متجاهلاً بذلك حماية المتصفح و سوف يتم تنفيذ الثغرة و تحميل ملف خبيث ثم يتم اختراق النظام بالكامل . لذلك فالإضافات التي تعمل مع المتصفح قد تكون هي سبب اساسي في الاختراق حتى و ان كان المتصفح نفسه أمن بنسبة 100%

لمزيد من المعلومات عن كيفية الاختراق من المتصفح و الأنظمة التي تستخدم لذلك انصح بقراءة المقال التالي

نقاط ضعف الحماية لدى متصفح Firefox

متصفح فايروفكس يعد من المتصفحات الآمنة فعلى مدار الخمسة سنين الأخيرة لم يكتشف فيه الا القليل من الثغرات و التي لا تتعدى اصابع اليد الواحدة . لكن للأسف في رأي المتصفح يحتوى على 3 نقاط ضعف امنية .

1) المتصفح لا يوفر حماية من Third-party plug-ins التى تعمل مع المتصفح مثل اضافات Java , Adobe و التي تسمح بتنفيذ ثغرات قد تصيب المستخدمين و تؤدي إلى اختراق النظام كما هو موجود في متصفح غوغل كروم  .
2) المتصفح لا يحتوى على نظام للحماية من هجمات Client-side Attacks مثل cross site scripting او xss كما هو موجود في متصفحات Internet explorer و google chrome .

3) المتصفح لا يعطي تحذير عند وجود اضافات غير محدثة تعمل مع المتصفح

ملحوظة : الشيء الوحيد الذي قامت به شـركة Mozilla بعد الإنتشار الواسع  لاستغلال ثغرات الـJava لإصابة العديد من المستخدمين , بدء من اصدار firefox 12 قامت بتعطيل اضافة java لدي المستخدمين اذا كانت غير محدثة إلى اخر اصدار حتى تتجنب الإصابة لكن مازل الإضافات الأخرى مثل Adobe Reader  Flashplayer , Adobe Shockwave تعمل بدون مشاكل .

 

كيف تقوم بزيادة الحماية لـمتصفح Firefox

يمكنك زيادة حماية متصفح Firefox و تجنب نقاط الضعف الذي تم ذكرها عن طريق عمل 3 خطوات بسيطة و لكنها سوف تساعدك بشكل كبير .

أول خطوة

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

و ايضاً اذا كان لديك مشغل ملفات PDF الـAdobe reader لكنك لست في حاجة لعرض ملفات PDF مباشرة بداخل المتصفح فمن الأفضل تعطيل الإضافة  و اذا قمت بمحاولة عرض اي ملف PDF بعد ذلك سوف يطلب منك المتصفح تحميل الملف بدلاً من تشغيله  .

لعمل ذلك اتبع الخطوات التالية :

  • افتح متصفح Firefox ثم اختار قائمة Tools ثم Add-ons
  • ثم قم باختيار الPlugins او الإضافات كما في الصورة :

 

  • قم بالضغط على تعطيل او Disable لإضافات التي لا تحتاج اليها . مثلاً انا اقوم بتعطيل كل الإضافات الا اضافة Adobe Shockwave Flashplayer للسماح فقط بعرض ملفات الفلاش مثل مقاطع Youtube
  • بعد تعطيل الإضافات تصبح بهذا الشكل :

ثاني خطوة

كما نعلم ان اغلبية المخترقون يقوموا بأستخدام انظمة الـ Browser Exploit Packs لإختراق الضحايا و التى هي انظمة مجهزة تقوم بتجربة الكثير من الثغرات على المستخدم بشكل تلاقئ و سريع فأن اول شئ تقوم به  Exploit Pack قبل تنفيذ الثغرات هو تحديد نظام الضحية و نوع المتصفح لدية , و بما ان  كل الـExploit Packs لا تقوم الا بمهاجمة مستخدمي وندوز و تتجاهل مستخدمي لينوكس و ماك.

فبأمكانك ان تقوم بعمل حركة بسيطة تتحايل بها على Browser Exploit Packs و تجعلها تتعرف على نظامك كانه نظام مختلف مثل Linux او ماكنتوش و بالتالي لن تقوم بتنفيذ اي من الثغرات عليك حتى و ان كانت هذة الأنظمة تستخدم ثغرة غير معلن عنها  في طور الـ0day .

لعمل ذلك اتبع الخطوات التالية :

  • قم بفتح متصفح Firefox ثم قم بالكتابة في Address Bar كلمة “about:config “

  • بعد ذلك يأتيك تحذير قم بالموافقة عليه
  • قم بالضغط كليك يمين ثم اختيار new ثم String

  • ثم قم بكتابة الأسم : general.useragent.override

  • ثم ادخل اي agent string كما تحب لأي متصفح . مثلا لجعل النظام Linux Ubuntu و المتصفح Firefox 15

قم بكتابة :

Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:10.0.2) Gecko/20100101 Firefox/15.0.1

بعد ذلك للـتأكد من ان الخطوات صحيحة قم بزيارة موقع www.mybrowserinfo.com

و سوف يظهر نوع المتصفح لديك و نظام التشغيل , بالطبع سوف تجده أصبح لينوكس 🙂

› يمكنك ان تجد هنا قائمة agent-string بأشهر المتصفحات و الأنظمة :
http://www.useragentstring.com/pages/useragentstring.php

 ثالث خطوة

كما ذكرت مسبقاً ان متصفح Firefox لا يحتوى على نظام للتصدى للهجمات Client Side Attacks مثل Xss و Clickjacking على عكس متصفح Internet Explorer الذي يتسخدم تقنية حديثة جداً و قوية للتصدي لهجمات XSS و ايضاً متصفح Google Chrome .

لكن من الممكن ايضاً  ان تحصل على حماية قوية للمتصفح Firefox عن طريق إستخدام اضافة Noscript و التي هي تعد اشهر اضافة للمتصفح يستخدمها اكثر من 2 مليون مستخدم حول العالم و التي تقوم بالتحكم في تشغيل ملفات Javascript , Flash , Java و ايضاً توفر حماية قوية للتصدى لهجمات Xss .

يمكنك تحميل الأضافة من الرابط التالي :

https://addons.mozilla.org/en-US/firefox/addon/noscript

و اخيرأ نصيحة أخيرة : يمكنك عمل فحص لإضافات Plugins التى تستخدمها في المتصفح عن طريق خدمة Qualys BrowserCheck و الذي تقوم بعمل فحص للإضافات و تقوم بتحذيرك اذا كنت تستخدم لأي اضافة غير محدثة و تحتوى على ثغرات امنية .

يمكنك تجربة الخدمة من الرابط التالي : https://browsercheck.qualys.com

و دمتم سالمين 🙂

البنك العربي- سياسة امن المعلومات (الوعي العربي في الحماية ج3)

من أهم العوامل التي تجعل العميل يفضل بنكا على اّخر: عامل الأمان. ما زلت أحاول أن أفهم كممثل عن مجتمع الحماية العربي مدى وعينا في هذا المجال. أخترت البنك العربي لأنه أحد أقدم المؤسسات المالية عربيأ (تأسس 1930). ولابد أن الشعور بالامان لعب دورا كبيرا حتى يبقى البنك مستمرا. http://www.arabbank.jo
لا أدعي الخبرة المالية ولا أعرف التاريخ المالي للبنك ولكن قررت أن ادرس اهتمام البنك بأمن المعلومات وحمايتها.  باستخدام جوجل والبحث عن ” البنك العربي و أمن المعلومات ” وجدت الصفحة التالية:

http://www.arabbank.jo/ar/securitystatment.aspx

 

عند قراءة الصفحة ستجد أن البنك يوجه هذه الصحة إلى عملاء البنك

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

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

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

1- حماية كلمة السر

2- التحذير  من سرقة بياناتك الشخصية عبر الإنترنت “Phishing” .

3-استخدام المواقع الالكترونية الموثوقة

4-  تأكد ان المتصفح يستخدم HTTPS عن الدفع ببطاقة الائتمان

5- استخدام firewall شخصي

6- إغلاق المتصفح بعد أي عملية شراء ( أعتقد القصد مسح الكوكيز وتاريخ التصفح والكاش)

نصائح مهمة وتهم مستخدمي الانترنت خلال القيام بأي عمليات تبادل اموال عبر الانترنت.

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

طبعا  كما تلاحظ عزيزي القارئ يتحدث البنك عن  أدوات تقنية في أمن الشبكات والانظمة. , و لكن كمهتمين بالموضوع فنحن نعرف ان الموضوع لايقتصر على ذلك . فأمن المعلومات يعتمد على 1- التقنية 2- الناس 3- الطريقة . أنا لا أطلب من البنك وصع اسما موظفين أو ان يحصلوا على ISO 27001. ولكن اتمنى ان يهتموا بهذه التفصيلة الصغيرة .

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

http://www.arabbank.jo/ar/privacypolicy.aspx

طبعا كأي بنك..يقدم البنك العربي بروتوكول HTTPS  و captcha…

لنلخص ما حصلت عليه :

1- البنك العربي يتعهد بأمن و خصوصية و دقة المعلومات

2- يقدم التوعية الازمة للمستخدمين

3- يستخدم أدوات لحماية الشبكة والانظمة

4- يستخدم بروتوكول HTTPS للعمليات المصرفية على الشبكة

ما لا م يعد البنك بتوفيره :

1- الاجراءات الامنية القياسية على مستوى الموظفيين و المستخدمين

2- توافرية المعلومات  (مثلا خدمة مصرفية على الشبكة لاتتوقف الا بنسبة 0.000009 %

3-  الإجراءات التي على المستخدم اتباعها في حالة حصول سرقة لبطاقته او حسابه او اي خرق

4- لم يذكر البنك اعتماده على أي من المواصفات العالمية لأدارة أمن المعلومات (مثلا 27001)

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

الرجاء مشاركتنا في هذا الموضوع عن البنوك والمصارف العربية لزيادة وعي الناس ولتعم الفائدة …

ودمتم بود….

تفعيل المصادقة المزدوجة على نظام ابنتو

مع ازدياد الطرائق التي يستخدمها المهاجمون في عمليات الإختراق التي يقومون بها، يحتاج مدراء الانظمة الى رفع مستوى الحماية الخاص بأنظمتهم. إحدى هذه الطرائق هي عبر المصادقة المزدوجة أو ما يعرف ب Two-Factor Authentication.

ما هي المصادقة المزدوجة؟

كلمات المرور هي شيء يعرفه المستخدم (something you know). هنا العديد من الوسائل التي يتم من خلالها مهاجمة كلمات المرور. وكون كلمات المرور هي الحماية الأكثر استخداما والتي بمعرفتها (او الحصول عليها) يمكن للمهاجم اختراق الأنظمة، تعتبر اضافة شيء آخر لعملية المصادقة أمراً مهماً من أجل جعل مهمة المهاجم أمراً أصعب. الإضافة هنا هي عبارة عن شيء في حوزة المستخدم (something you have) وهو في حالتنا هذه الهاتف النقال.

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

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

الخطوات

تفعيل المصادقة المزدوجة

اذهب الى لوحة ادارة نطاقك (او ادارة بريدك في حال لم تكن تمتلك نطاق) واختر الأدوات المتقدمة (Advanced Tools) ثم اختر “Allow users to turn on two-factor authentication”. بعد ذلك اذهب الى حسابي (My Account) واضغط على استخدام المصادقة المزدوجة (Using 2-step verification).

تثبيت مصادق جوجل (Google Authenticator) على ابنتو

ملاحظة: الخطوات التالية تم تنفيذها على نظام ابنتو 10.04

١- قم بتحميل مكتبة libpam0g-dev والتي يحتاجها Google Authenticator


apt-get install libpam0g-dev#

٢- قم بتحميل Google Authenticator من هنا https://code.google.com/p/google-authenticator/downloads/list

ملاحظة: لحظة كتابة هذا المقال كان اسم الملف هو  libpam-google-authenticator-1.0-source.tar.bz2

٣- قم بتثبيت برنامج gcc


#apt-get install gcc

ملاحظة: وجود برنامج gcc على خادمك له محاذير أمنية لذلك قم بإزالته بعد الانتهاء من تثبيت Google Authenticator

٤- قم بفك ضغط البرنامج وتثبيته


$bunzip2 libpam-google-authenticator-1.0-source.tar.bz2
$tar xvf libpam-google-authenticator-1.0-source.tar
$cd libpam-google-authenticator-1.0-source
$sudo make install

٥- نقوم الآن بتحرير ملف common-auth حتى يشمل إضافة Google Authenticator


vim /etc/pam.d/common-auth

وإضف السطر التالي


auth required pam_google_authenticator.so

بحيث يصبح شكل الملف النهائي هو


# here are the per-package modules (the "Primary" block)
auth required pam_google_authenticator.so
auth [success=1 default=ignore] pam_unix.so nullok_secure
# here's the fallback if no module succeeds

ملاحظة: لا تقم بأي تعديل على الملف عدا عن اضافة سطر  Google Authenticator قبل سطر pam_unix.so

٦- قم بتفعيل خاصية ChallengeResponseAuthentication في برنامج SSH حتى يصبح Google Authenticator جزءا منه.

 

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication yes

ملاحظة: هنا قمت فقط بغير القيمة من no إلى yes

الآن نقوم بإعادة تشغيل خدمة SSH من أجل أن تصبح التغييرات التي قمنا بها مفعلة.


service ssh restart

لا تقم بالخروج من النظام أبداً في هذه المرحلة وإلا فلن تتمكن من الدخول مرة أخرى

٧- لتفيعل Google Authenticator على حساب

 

[email protected]:~$ google-authenticator
Do you want authentication tokens to be time-based (y/n) y
https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/[email protected]%3Fsecret%
Your new secret key is:
Your verification code is
Your emergency scratch codes are:
***55**
***22**
***77**
***22**
***11**
Do you want me to update your “/home/bashar/.google_authenticator” file (y/n) y
Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y
By default, tokens are good for 30 seconds and in order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with poor
time synchronization, you can increase the window from its default
size of 1:30min to about 4min. Do you want to do so (y/n) y
If the computer that you are logging into isn’t hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y

 

٨- قم بنسخ العنوان إعلاه في متصفحك

https://www.google.com/chart?chs=200×200&chld=M|0&cht=qr&chl=otpauth://totp/[email protected]%3Fsecret%<USERS_KEY>

 

٩- قم بعملية مسح لكود الذي سيظهر (كود يعرف ب QR) من خلال تطبيق Google Authenticator على هاتفك النقال.

التطبيق متوفر في اسواق هواتف اندوريد، ايفون، وبلاك بيري بالإسم Google Authenticator وفي سوق هاتف ويندوز فون بالإسم Authenticator وهو اصدار غير رسمي بخلاف Google Authenticator المدعوم من قبل غوغل.

مثال للصورة التي ستظهر عند زيارة الموقع

١٠- جرب من شاشة سطر أوامر أخرى الوصول الى الخادم حتى تتأكد من أن المصادقة المزدوجة تعمل الآن


$ssh [email protected]
Verification code:
Password:
Linux s4a 2.6.32-41-server #88-Ubuntu SMP Thu Mar 29 14:32:47 UTC 2012 x86_64 GNU/Linux
Ubuntu 10.04.4 LTS
[email protected]:~$

كما تلاحظون هناك شيء جديد يسبق كلمة المرور وهو Verification Code والذي تحتاج إليه بالإضافة إلى كلمة المرور من أجل الوصول الى خادمك عبر خدمة SSH

 

فحص خادم الـSMTP و خطورة فتح الـ Relay

نعلم جميعا أنه من أهم مراحل الاختراق و من أكثرها فائدة هي مرحلة الـ Service Enumeration  و التي قد تصل بنا من مرحلة جمع معلومات إلى مرحلة اختراق أسهل و أكثر فعالية. في هذا الموضوع سأعطي مثال بسيط عن خادم بريد(Mail Server) يسمح لخاصية الـ Relay و التي -باختصار- تسمح لأجهزة أخرى أن تتصل بخادم البريد على المنفذ 25 لإرسال بريد عن طريقه. هذه المشكلة لا تعتبر ثغرة نظام أو تطبيق , بل عيب في إعداد الـ Mail Server  من قبل مدير النظام.

كل ما علينا هو الاتصال بالمنفذ 25/tcp و من ثم تنفيذ الأوامر الأساسية التي يستخدمها بروتوكول الـSMTP  في إرسال بريد.

 

[[email protected] ~]$ nc -nv Mail-ServerIP 25

Connection to Mail-ServerIP 25 port [tcp/*] succeeded!
220 mail1.domain.com ESMTP Sendmail X.xx.y/X.xx.y; Sun, 25 Mar 2012 11:03:27 +0300

EHLO google.com

250-mail1.domain.com Hello Hacker-PubIP.rev.home.ne.jp [Hacker-PubIP], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP

MAIL FROM: [email protected]

250 2.1.0 [email protected]… Sender ok

RCPT TO: [email protected]

250 2.1.5 [email protected]… Recipient ok

DATA

354 Enter mail, end with “.” on a line by itself


Hi please  ,,
please find my Pic on
http://badSite.com/profile.html

Thanks
.

250 2.0.0 q2P83R4D009362 Message accepted for delivery

QUIT

221 2.0.0 mail1.domain.com closing connection

نفذنا أوامر بسيطة جدا لكن هناك الكثير لتفعله(اترك الباقي لكم), لتتعرف على المزيد من أوامر البروتوكول SMTP

و الرسالة ستصل إلى  بريد الضحية..

للحماية من هذا النوع من الهجمات , يجب أت تقفل أو تحدد الـ Relay في خادم البريد و من الجدار الناري.

سلسلة تعلم كاشف الدخلاء (Snort IDS/IPS) خطوة بخطوة: الجزء الثاني:- التثبيت

[toc]

1. معلومات النظام

– نظام التشغيل: Linux – CentOS 6.2

– المنصة: 64-bit

– إصدار الكيرنال: 2.6.32-220.2.1.el6.x86_64

 

2. المتطلبات و الاعتماديات

سأقوم بتنصيب المتطلبات كلها مرة واحدة لتسهيل الأمر (قد تحتاج مخازن إضافية كـ EPEL و rpmfusion)

yum -y install gcc gcc-c++.x86_64 httpd mysql-server mysql-bench mysql-devel mysql++-devel.x86_64  mysqlclient10 libpcap libpcap-devel pcre-devel bison flex libdnet.x86_64  libdnet-devel.x86_64

 

3. التحميل

ملاحظات:

– التحميل من Snort موقع  يشترط التسجيل

– عند تحميل الـRules  يجب أن تكون متوافقة مع إصدار Snort . مثال: (إصدار Snort هو snort-2.9.2 إذن يجب أن تنيزل الـRules   صاحبة الإصدار 2920 تجدها بهذا الشكل  snortrules-snapshot-2920.tar.gz )

Snort: وهو البرنامج نفسه
DAQ: اختصارا لـ Data Acquisition library وهو برنامج لتحسين إدخال و إخراج الحزم
Rules: وهي القواعد أو بالأصح التواقيع التي يعتمد عليها Snort  في كشف الأحداث
barnyard2: مشروع تم برمجته خصيصا لدعم (تعامل و تحليل) المخرجات على هيئة unified2 من برنامج Snort

 

 

4. التثبيت

لاحظ في التثبيت يجب أن تتبع الترتيب نفسه

4.1 تثبيت DAQ

tar -xzf daq-0.6.2.tar.gz ; cd daq-0.6.2

./configure
make ; make install ; cd ..

 

4.2 تثبيت Snort

2.4.a تثبيت Snort كـ IDS

tar -xzf snort-2.9.2.tar.gz ; cd snort-2.9.2

./configure --with-mysql --with-mysql-libraries=/usr/lib64/mysql/ --with-mysql-includes=/usr/include/mysql/ --enable-sourcefire

make ; make install

ln -s  /usr/local/bin/snort  /usr/sbin/snort

 

2.4.b تثبيت Snort كـ IPSطبقها فقط إن أردت تحويله إلى  IPS  و شرحنا سيكون على الـ IDS mode

./configure --enable-inline --with-mysql --with-mysql-libraries=/usr/lib64/mysql/ --with-mysql-includes=/usr/include/mysql/ --enable-sourcefire

make ; make install

modprobe ip_queue

– لنتأكد من تحميل الموديول

lsmod | grep -i ip_queue

ln -s  /usr/local/bin/snort  /usr/sbin/snort

حيث أن:

–with-mysql: لدعم MySQL أي أن مخرجات Snort  ستخزن في قاعدة بيانات

–with-mysql-includes / –with-mysql-libraries: لدعم مكتبات الـMySQL ربنا لا تحتاج هذا الاختيار على منصة 32-bit لأن Snort  يبحث هناك في الأمكان الصحيحة

–enable-sourcefire: لدعم عدة إضافات تفضلها شركة Sourcefire.

– لمعرفة المزيد من خيارات التثبيت

./configure --help

– إنشاء مجلدات Snort

mkdir -p /etc/snort/rules mkdir /var/log/snort/

– مازلنا في المجلد(snort-2.9.2)
cp etc/* /etc/snort/
cp -r preproc_rules/ /etc/snort/

– إنشاء مستخدم باسم Snort

useradd snort -s /sbin/nologin

– إعطاء التصاريح لمجلد السجلات

chown -R snort:snort /var/log/snort/

2.4.c  إضافة قواعد Snort

– نخرج من مجلد (snort-2.9.2) ثم نفك ضغط القواعد بداخل (/etc/snort)
tar xzf snortrules-snapshot-2920.tar.gz -C /etc/snort/
– نسخ الـ Dynamicrules لتفادي الخطأ(ERROR: parser.c(5161) Could not stat dynamic module path “/usr/local/lib/snort_dynamicrules”: No such file or directory.)
mkdir /usr/local/lib/snort_dynamicrules
cp -a /etc/snort/so_rules/* /usr/local/lib/snort_dynamicrules
chown -R snort:snort /usr/local/lib/snort_dynamicrules

4.3 تثبيت Barnyard2

– تحميل barnyard2 و فك ضغطه
wget -c http://www.securixlive.com/download/barnyard2/barnyard2-1.9.tar.gz
tar -xzf barnyard2-1.9.tar.gz ; cd barnyard2-1.9
– التثبيت مع دعم MySQL
./configure --with-mysql --with-mysql-libraries=/usr/lib64/mysql/ --with-mysql-includes=/usr/include/mysql/
make ; make install
-ما زلنا في مجلد(barnyard2-1.9), ننسخ ملف إعدادات barnyard2
cp etc/barnyard2.conf /etc/snort/ ; cd ..

 

 

5. الإعدادات الأولية

5.1 إعداد MySQL

– شغل خدمة MYSQL
service mysqld start
– أنشئ قاعدة بيانات باسم snort
– ثم أنشئ مستخدم للقاعدة باسم snort و كلمة مرور (في شرحنا كلمة المرور 123123)
– ثم اعطه الصلاحيات الازمة
mysql -u root -p
Enter password:>

Mysql> create database snort;
Query OK, 1 row affected (0.00 sec)

mysql> grant create, insert, select, delete, update on snort.* to [email protected]”localhost”;
Query OK, 0 rows affected (0.00 sec)

mysql> set password for [email protected]”localhost”=password(‘123123’);
Query OK, 0 rows affected (0.00 sec)

mysql> exit

– استورد السكيما الخاصة بـ Snort

cd snort-2.9.2/schemas
mysql -usnort -p < create_mysql snort
Enter password:

– تأكد من عملية الاستيراد عن طريق عرض الجداول
mysql -usnort -p
Enter password:
mysql> use snort;
Database changed
mysql> show tables ;
+------------------+
| Tables_in_snort |
+------------------+
| data |
| detail |
| encoding |
| event |
| icmphdr |
| iphdr |
| opt |
| reference |
| reference_system |
| schema |
| sensor |
| sig_class |
| sig_reference |
| signature |
| tcphdr |
| udphdr |
+------------------+
16 rows in set (0.01 sec)
mysql> exit

رائع!!

5.2 إعداد Snort

– افتح ملف إعدادات Snort
vim /etc/snort/snort.conf
– اذهب إلى الاختيارات التالية
var RULE_PATH ../rules
var SO_RULE_PATH ../so_rules
var PREPROC_RULE_PATH ../preproc_rules
– بدل المسارات إلى التالي
var RULE_PATH /etc/snort/rules
var SO_RULE_PATH /etc/snort/so_rules
var PREPROC_RULE_PATH /etc/snort/preproc_rules
– اذهب إلى الاختيار
# output database: log, , user= password= test dbname= host=
– استبدله بالتالي
output database: log, mysql, user=snort password=123123 dbname=snort host=localhost
\!/ تنبيهات:
– لاحظ أننا أزلنا test يجب أن تترك مسافة واحدة فقط بين كلمة المرور و المعامل dbsname إن زادت عن مسافة واحدة ستواجه خطأ عند التشغيل.
– إذا واجهك الخطأ التالي عند تشغيل الخدمة
ERROR: /etc/snort/snort.conf(490) => Unable to open address file /etc/snort/rules/white_list.rules, Error: No such file or directory
– الرجاء تهميش (وضع علامة # أول السطر) للتالي
preprocessor reputation: \
memcap 500, \
priority whitelist, \
nested_ip inner, \
whitelist $WHITE_LIST_PATH/white_list.rules, \
blacklist $BLACK_LIST_PATH/black_list.rules

– لتصبح كالتالي
#preprocessor reputation: \
# memcap 500, \
# priority whitelist, \
# nested_ip inner, \
# whitelist $WHITE_LIST_PATH/white_list.rules, \
# blacklist $BLACK_LIST_PATH/black_list.rules

 

5.3 إعداد Barnyard2

سأقوم بتأجيل إعدادات Barnyard لمرحلة أخرى

 

6. تشغيل الخدمات

التشغيل سيشمل بدء الخدمة و ضمان عملها بشكل تلقائي بعد إعادة التشغيل.

6.1 تشغيل MySQL

– شغل الخدمة و تأكد أنه ستعمل تلقائيا بعد إعادة تشغيل الخادم
service mysqld start ; chkconfig mysqld on

 

6.2 تشغيل Barnyard

لن نقوم بتشغل الخدمة الأن

6.3 تشغيل Snort

– حمل سكريبت خدمة سنورت و اعطه تصريح
wget -c http://internetsecurityguru.com/snortinit/snort -O /etc/init.d/snortd ; chmod 755 /etc/init.d/snortd
– شغل الخدمة و تأكد أنه ستعمل تلقائيا بعد إعادة تشغيل الخادم
service snortd start ; chkconfig snortd on

سلسلة تعلم كاشف الدخلاء (Snort IDS/IPS) خطوة بخطوة: الجزء الأول:- المقدمة

[toc]

Intrusion Detection System

مقدمة

في موضوعنا اليوم سنتكلم عن واحده من أكثرالتكنولوجيات أهمية في حماية الشبكات , ألا وهي تكنولوجيا نظام كشف أو مراقبة البيانات المتسللة من/إلى الشبكة. هذ النظام اللذي يعمل بامتزاج مع الجدار الناري Firewall , هذا النظام تكمن وظيفته عندما يحدث أي تلاعب مع الجدار الناري خاصة .

ملاحظة هامة: في هذا الموضوع سنتعرض للمفاهيم اللتي تؤهلك للتعامل مع كل برامج IDS مهما كان إسمها فلا تعتقد –حفظك الله – أن المفاهيم مبنية على برنامج معين بل العكس تماما.

أهداف استخدام Intrusion Detection System

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

# هناك ثلاث مكونات يجب أن نضعهم في حسابنا عند تأمين الشبكات

كيف تتخلص من ملفاتك الهامة بأمان

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

كيف يحدث ذلك ؟

دعونا نتخيل الملفات كأنها صفحات في كتاب , عندما تقوم بحذف ملف فانك تقوم بحذف صفحة من الكتاب و لكنها تبقى خارج الكتاب لذلك فان الصفحة مازلت موجودة و لكنها غير معروفة في أي مكان كانت موجودة في الكتاب . هذا المكان هنا هو بمثابة الـ sector فالقرص الصلب لا يعرف شئ يسمى ملفات و لكنه يتعامل مع sectors فقط و الـ sectors هي أجزاء صغيرة من data غالبا تكون 512 بايت و نظام الملفات مثل نظام NTFS مهمته هو ترجمة هذه الـ sectors لملفات حتى يستطيع التعامل معها  نظام التشغيل .

نظام الملفات يعمل على بناء جدول للملفات , هذا الجدول يحتوى في كل صف أو الـ row على اسم الملف و مكان sector الخاص بيه على القرص الصلب .لذلك عندما تقوم بحذف ملف ما من نظام التشغيل فكل ما تم حذفه هو معلومات هذا الملف من نظام الملفات الـfile system و تنرك فراغ في الجدول لملف أخر .

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

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

 ما هي الطريقة التي يتم بها حذف الملفات بصورة نهائية ؟

طريقة التخلص و حذف الملفات نهائيا و بشكل امن من القرص الصلب هي عن طريق عمل إعادة كتابة على نفس sector بمعلومات أخرى تحل محل القديمة . بمعنى انك تقوم بعمل overwrite لـ data القديمة بأخرى جديدة . فهذا يجعل من استعادة الملفات القديمة مرة أخرى عملية مستحيلة .

إذا كيف أتخلص من ملفاتي بشكل تام و أمن تماماً ؟

تستطيع التخلص من ملفاتك بشكل أمن و تام عن طريق بعض البرامج التي تقوم بهذه المهمة و عمل shredding لملفات بشكل امن و سريع .

في أنظمة Linux يوجد أمر ” shred ” و هو يقوم بحذف الملفات بشكل نهائي بديلا عن أمر ” rm ” التقليدي .

مثال على حذف ملف تاريخ الأوامر في الشيل او الـ bash history من على خادم centos يكون بهذا الشكل :

 [email protected] [~]# shred -f -v -z -u /root/.bash_history
shred: /root/.bash_history: pass 1/26 (random)…
shred: /root/.bash_history: pass 2/26 (222222)…
shred: /root/.bash_history: pass 3/26 (eeeeee)…
shred: /root/.bash_history: pass 4/26 (333333)…
shred: /root/.bash_history: pass 5/26 (cccccc)…
shred: /root/.bash_history: pass 6/26 (924924)…
shred: /root/.bash_history: pass 7/26 (dddddd)…
shred: /root/.bash_history: pass 8/26 (888888)…
shred: /root/.bash_history: pass 9/26 (777777)…
shred: /root/.bash_history: pass 10/26 (ffffff)…
shred: /root/.bash_history: pass 11/26 (444444)…
shred: /root/.bash_history: pass 12/26 (666666)…
shred: /root/.bash_history: pass 13/26 (random)…
shred: /root/.bash_history: pass 14/26 (aaaaaa)…
shred: /root/.bash_history: pass 15/26 (999999)…
shred: /root/.bash_history: pass 16/26 (555555)…
shred: /root/.bash_history: pass 17/26 (249249)…
shred: /root/.bash_history: pass 18/26 (db6db6)…
shred: /root/.bash_history: pass 19/26 (492492)…
shred: /root/.bash_history: pass 20/26 (bbbbbb)…
shred: /root/.bash_history: pass 21/26 (000000)…
shred: /root/.bash_history: pass 22/26 (b6db6d)…
shred: /root/.bash_history: pass 23/26 (6db6db)…
shred: /root/.bash_history: pass 24/26 (111111)…
shred: /root/.bash_history: pass 25/26 (random)…
shred: /root/.bash_history: pass 26/26 (000000)…
shred: /root/.bash_history: removing
shred: /root/.bash_history: renamed to /root/0000000000000
shred: /root/0000000000000: renamed to /root/000000000000
shred: /root/000000000000: renamed to /root/00000000000
shred: /root/00000000000: renamed to /root/0000000000
shred: /root/0000000000: renamed to /root/000000000
shred: /root/000000000: renamed to /root/00000000
shred: /root/00000000: renamed to /root/0000000
shred: /root/0000000: renamed to /root/000000
shred: /root/000000: renamed to /root/00000
shred: /root/00000: renamed to /root/0000
shred: /root/0000: renamed to /root/000
shred: /root/000: renamed to /root/00
shred: /root/00: renamed to /root/0
shred: /root/.bash_history: removed

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

من مميزات الأداة أنها تحتوى على الكثير من algorthims المختلفة الخاصة بمسح الملفات و التي تم استخدامها في الكثير من المؤسسات الهامة مثل الجيش الأمريكي و سلاح الطيران الأمريكي و غيرهم  . و هنا صورة توضيحية تظهر الطرق المستخدمة و  كم مرة تقوم بعمل overwrite على الملف .

الطرق المختلفة لحذف الملفات و عدد عمليات إعادة الكتابة على الملف

طريقة استخدام برنامج eraser سهله للغاية , كل ما عليك هو تحميل البرنامج و تنصيبه بالطريقة التقليدية و بعد ذلك يكون جاهز لحذف ملفاتك بصورة أمنة .

أسهل و أسرع طريقة للحذف هو  الذهاب للملف الذي تريد أن تحذفه و تضغط بزر الفارة كليك يمين على الملف و تختار من قائمة eraser -> erase

كيفية حذف ملف او مجلد بالطريقة السريعة

 

بعدها سيقوم برنامج Eraser بحذف الملف حسب algorthim أو الطريقة الافتراضية المجهزة لحذف الملفات .
و يمكنك تعديل الطريقة الافتراضية لحذف الملفات عن طريق البرنامج بهذه الخطوات :

اضغط على الصورة للمشاهدة بالحجم الكامل

اضغط على الصورة للمشاهدة بالحجم الكامل

يمكنك أيضا إضافة tasks او مهام لحذف ملفات أو مجلدات عن طريق البرنامج في توقيت معين او عند عملية إعادة النظام .

اضغط على الصورة للمشاهدة بالحجم الكامل

اضغط على الصورة للمشاهدة بالحجم الكامل

اضغط على الصورة للمشاهدة بالحجم الكامل

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

قد يسألني احد , الآن أنا قد أخطأت من قبل و قمت بحذف ملفات هامة عن طريق نظام التشغيل بالطريقة التقليدية و أخاف أن يسترجعها احد و يتطلع عليها , هل يوجد حل لحذف الملفات التي تم حذفها من قبل عن طريق نظام التشغيل و بشكل نهائي  ؟ 

الجواب نعم بالطبع برنامج Eraser يحتوى على خاصية حذف تسمى unused disk space .
بمعنى انها تقوم بحذف المساحة الفارغة من القرص مع الإبقاء على ملفاتك الحالية دون ضرر و تقوم بحذف جميع الملفات التي تم حذفها من قبل من نظام التشغيل لديك و الحماية من أسترجعها مرة أخرى .

و لكن هذه العملية قد تأخذ وقت طويل عند تنفيذها و تختلف مع طريقة الـ algorthim المستخدمة و كم مرة سوف يتم إعادة الكتابة على كل ملف . لذلك إذا كنت  سوف تقوم ببيع حاسوبك القديم او الاب توب الخاص بك لا تنسى ان تستخدم خاصية unused disk space الموجودة في برنامج Eraser فهي مفيدة للغاية .

و هكذا نكون قد غطينا مفهوم استرجاع الملفات و شرحنا كيفية التخلص من الملفات بأمان و بصورة نهائية 🙂

تحميل البرنامج | الموقع الرئيسي

 

خطوات عملية لتأمين خدمة SSH

إذا كنت مسؤولاً عن إدارة خوادم في شركتك، أو كنت تدير موقعاً على الإنترنت فلا بد وأنّك قد تعاملت مع خدمة SSH.  قديماً كان الاتصال يتمّ في أغلب الأحيان عبر خدمة Telnet. هذه الخدمة تقوم بنقل معلومات الدخول (كاسم المستخدم وكلمة المرور) بدون تشفير، وبالتالي إذا كان هناك طرف يستمع على هذا الاتصال فسوف يتمكن من رؤية هذا المعلومات. من هنا جاءت الحاجة لخدمة SSH. حيث أن خدمة SSH أو Secure Shell تسمح بالدخول للخادم بطريقة آمنة تمنع أي طرف من استراق السمع على الاتصال الذي تمّ إنشاؤه بين حاسوبك وخادمك، كون المعلومات التي يتمّ تبادلها بين حاسوبك والخادم قد تمّ تشفيرها.

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

في هذه المقالة سنتناول خطوات عملية يمكنك استخدامها في خادمك تساعدك على رفع درجة أمان الخادم وتحديداً خدمة SSH.

تغيير المنفذ الإفتراضي

عند تثبيت خدمة SSH فإن المنفذ الإفتراضي المسجّل لهذه الخدمة هو 22. العديد من اطفال السكريبت والشبكات الآلية (BotNets) تقوم باستهداف هذا المنفذ. لذلك تغييره على خادمك إلى أي منفذ آخر (رقم المنفذ الجديد يفضل أن يكون أكبر من 1024)، سيساعد في التخلص من الغالبية الساحقة من الهجمات. هذا لا يعني انّه لن يتم استهدافك ولكن عندما يتمّ استهدافك ستعلم ان الطرف المهاجم يستهدفك بشكل مباشر وليس عبر عملية مسح عشوائي.

لتغيير المنفذ نقوم بتحرير الملف sshd_config والموجود عادة في مجلد /etc/ssh

ملاحظات هامة: 1) غالبية التغييرات التي سنقوم بها ستتم من خلال تحرير هذا الملف. 2) التوزيعة التي نستخدمها كمثال في هذا المقال هي توزيعة Ubuntu. قد ترى بعض الإختلاف إذا كنت تستعمل توزيعة اخرى ولكن الاختلافات لن تكون اختلافات جوهرية.

بعد فتحك لملف /etc/ssh/sshd_config

غير قيمة المنفذ من 22 إلى قيمة أخرى على سبيل المثال 7722 لتصبح النتيجة النهائية هكذا

Port 7722

غير برتوكول الاتصال

هناك برتوكولا اتصال لخدمة SSH. برتوكول 1، وهو برتوكل قديم وبه كثير من الثغرات. برتوكول 2 وهو برتوكول آمن أكثر بكثير من برتوكول 1. غالبية التوزيعات الحديثة تأتي مع برتوكول 2 مفعل بشكل افتراضي. تأكد من ذلك عبر فتحك لملف /etc/ssh/sshd_config وابحث عن

Protocol 2

عطل صلاحيات دخول المستخدم الجذر

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

لتعطيل دخول المستخدم الجذر

PermitRootLogin no

حدد من يمتلك صلاحيّات الدخول إلى الخادم

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

لتحديد المستخدمين قم بإضافة الخاصية AllowUsers على الشكل الآتي

AllowUsers Ahamd Security4Arabs Abdu*

السطر أعلاه يقصر استخدام الخدمة على المستخدم احمد والمستخدم Security4Arabs وأي مستخدم يبدأ اسمه ب Abdu مثل Abdul Salam أو Abdulr Rahman

يمكنك كذلك حصر الخدمة على مجموعة من المستخدمين من خلال استخدام الخاصية AllowGroups

AllowGroups sec4arteam

تحديد العناوين التي يسمح لها بإنشاء اتصال

بالإضافة إلى تحديد مَن مِن المستخدمين يمكنه استخدام الخدمة. يمكنك تحديد العناوين التي يمكن لهؤلاء المستخدمين الدخول إلى الخادم من خلالها. يتم ذلك من خلال استخدام خاصية TCPWrappers. هذه الميزة رائعة في حماية خدمات ليس لها حماية افتراضية في اعدادتها ولكن يمكن استخدامها لأي خدمة موجودة على الخادم.

لنفرض مثلاً أننا نريد جعل الدخول إلى الخادم مقتصراً على العنوان 192.168.1.254 و مجموعة العناوين 172.16.0.0

قبل تحديد الدخول لهذه العناوين نحتاج إلى ان نمنع أي اتصال إلى الخادم عبر خدمة SSHD وذلك من خلال تحرير /etc/hosts.deny ومن ثمّ التّاكد من احتوائه على القيمة التالية

sshd:all

هذا سوف يقوم بتفعيل خاصية المنع.

بعد ذلك نقوم بتحرير الملف /etc/hosts.allow ومن ثمّ وضع العناوين التي نريد السماح لها باستخدام خدمة SSH للدخول إلى الخادم كالتالي:

sshd: 192.168.1.254

sshd: 172.16.0.0/255.255.0.0

ملاحظة هامة جدّاً جدّاً: تأكد من أن العناوين التي قمت بإدخالها صحيحة 100%. أي خطأ في هذه العناوين سيمنعك من الدخول إلى الخادم.

قصر التوثيق على المفاتيح وليس على كلمات المرور

خدمة SSH تدعم خاصية المفاتيح. سنقوم بعمل شرح مفصل في كيفية استخدامها، ولكن ما يهمنا هنا هو ذكر الآلية.

عند استخدامك للمفاتيح سيقوم الخادم بالسماح لك بالدخول إذا قمت باستخدام المفتاح الصحيح. كلمة المرور في حال منعنا استخدامها ستصبح بدون قيمة وهذا يجعل من عملية كسر كلمات المرور من أجل الدخول عملية بدون جدوى.

لتعطيل استخدام كلمة المرور من أجل الدخول تأكد من أن ملف /etc/ssh/sshd_config يحتوي على القيمة التالية

PasswordAuthentication no

ملاحظة هامة: لا تقم بتغيير القيمة قبل التّأكد من أن المفتاح الذي قمت بإنشائه لغرض الدخول للخادم يعمل 100%.

ثبّت خدمة fail2ban

خدمة fail2ban هي خدمة اكثر من رائعة. فهي تقوم بمراقبة سجلات الخدمات لديك مثل خدمة SSH أو خدمة رفع الملفات وفي حال كشفها عن عدد من المحاولات الفاشلة تقوم أنت (المستخدم) بتحديده ضمن فترة زمنية معنية، تقوم بإنشاء قاعدة في الجدار الناري تمنع عنوان المهاجم من الوصول إلى الخدمة.

أخيراً

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

حماية الخادم والنّظام تبدأ بك اولاً.