لست هنا بصدد كتابة مقالة تشرح لك كيف تخترق موقع ، أو كيف تخترق جهاز ضحية ما ، أو كيف تستولي على بريد إلكتروني ، ولكن سأضع بين يدي القارئ الكريم الخطوط العريضة لأهم الثغرات ، الحيل ، الأساليب ، و الأدوات التي يستخدمها الهاكرز في عملياتهم.
أعترف لك عزيزي القارئ بأنني ترددت كثيراً قبل كتابة هذه المقالة ، ترددت لأن هذه المقالة فعلا ستكون سلاح ذو حدين ، سلاح بيد المبرمج و المطور و مستخدمي الحاسب عموما لكي يعرفوا تماما حجم المخاطر المحدقه بهم و يضعوا في حسبانهم كل ما سيقرأونه في هذا المقالة من حيل و خدع و أساليب قد يستخدمها أحد الهاكرز تجاههم ، وهي سلاح أيضاً بيد من يمتلك نوايا سيئه و خبيثه و يريد فقط من يدله على بعض الأساليب و الحيل ليكون قد وضعه قدمه على أول الطريق في مجال تعلم و إحتراف الإختراق. لذا أستأذنك عزيزي القارئ بعدم الخوض في بعض التفاصيل ، فسأكتفي بشرح بعض الأمور شرحاً واضحا يوصل المعلومة بشكل كامل ولكن قدر المستطاع لن يستفيد أي شخص من هذه المعلومه لإستخدامها أغراض سيئه ( أعلم ان ذلك سيكون صعب ، ولكني سأحاول
)
ملاحظة : فليعذرني القارئ الكريم إن كانت هناك مصطلحات عربية غير مفهومه ، فقد إستخدمت مصطلحات التعريب القياسية في بعض أرجاء هذه المقالة ، و أحيانا أخرى أضطررت لتعريب بعض المصطلحات بنفسي لعدم معرفتي بتعريب قياسي لهذا المصطلح !
من هو الهاكر ؟تعارف الناس على إطلاق مصطلح هاكر على الشخص الذي يقوم بإختراق التطبيقات أو الأجهزة أو الشبكات ، أو يقوم بالتحايل للحصول على معلومات حساسة ( مثل بطاقتك الإئتمانية ، حسابك البنكي ، معلومات بطاقة التأمين ... الخ) ، في هذه المقالة سنستخدم هذا المصطلح للدلالة على هذا المفهوم ، ولكن لكي نضع الأمور في نصابها ، أود أن أوضح أن هذا المصطلح بهذا المفهوم خاطئ ، نعم هو كذلك ، مصطلح هاكر يطلق أساساً على الشخص الذي يمتلك قدرات خارقة في مجال البرمجة و التطوير و لديه موهبة عالية في التفكير المنطقي و الرياضي و يستطيع حل أي مشكلة برمجية مهما كانت معقدة بسرعة فائقة و بالطريقة الأمثل ، نذكر على سبيل المثال ، بيل جيتس مؤسس شركة مايكروسوفت و كبير المهندسين فيها ، يصنف هذا الرجل علميا ضمن فئة الهاكرز في المفهوم الصحيح للكلمة ، حيث يمتلك هذا الرجل قدرات برمجية مذهلة ، نذكر منها على سبيل المثال برمجته للغة BASIC في 8 أسابيع فقط ! علما أنه قام بتطوير هذه اللغة لصالح جهاز جديد حينها يطلق عليه ATARI لم يكن بيل جيتس يمتلك هذا الجهاز ، و أعتمد فقط في برمجته للغة على الدليل الورقي لمعمارية الجهاز ، و المذهل أنه قام بعرض اللغة على أحد الشركات و قام بتشغيل برنامج مفسر اللغة ( Interpreter ) لأول مرة بدون أي عملية تجربة سابقة ( لأنه لم يكن يمتلك الجهاز الذي صنع من أجله هذه اللغة ) ، و كانت النتيجة برنامج يتنفذ بدون ظهور أي خطأ ! هذا أمر يعتبر في عرف المبرمجين أمر خرافي ، لأن اي برنامج مهما كان صغير لا بد و أن تظهر فيه (غالبا) أخطاء كثيرة وقت البرمجة و بعد ذلك ، فما بالك حينما يكون البرنامج هو مفسر للغة برمجة جديدة ! حيث تعتبر برمجة المفسرات Compilers or Interpreter من أعلى و أعقد مراتب البرمجة. هذا مثال على شخص يطلق عليه مسمى هاكر بالمفهوم الأساسي لمعنى الكلمة .عموما سنستخدم كلمة هاكر في هذه المقالة للدلالة على المعنى الدارج و المنتشر وهو الشخص الذي يستخدم قدراته التقنية لأغراض خبيثه و غير شرعية.
الهاكرز و جهازك الشخصيعادة تكون أولى خطوات الهاكر المبتدئ هي محاولة إختراق الأجهزة الشخصية ، عملية إختراق الأجهزة الشخصية عملية سهلة نسبياً ، لذا تكون هي الخطوة الأولى في رحلة ذلك الهاكر (إن صح تسميته هاكر ) ، على الرغم من إنتشار برامج الحماية في الفترة الأخيرة و إزدياد الوعي لدى مستخدمي الإنترنت ، الى أنه ما زال هناك من تنطلي عليه حيل بعض هؤلاء الهاكرز ليتمكنوا من السيطرة على جهازه ، بشكل عام لن يتمكن أي هاكر من إختراق جهازك الا اذا كان الجهاز مصاب ببرنامج يفتح باب خلفي Backdoor يسهل دخول الهاكر إلى الجهاز ، هذه البرامج التي تفتح أبواب خلفية في جهازك تسمى أحصنة طرواده Trojan Horses و وظيفتها بالتحديد فتح منفذ Port في جهازك يستخدمه الهاكر عن طريق برنامج إختراق جاهز و معد مسبقاً يحتوي على كافة الخصائص و الخدمات التي تخدم أغراض الهاكر و تسهل عليه مهامه ، على سبيل المثال ، سيتمكن الهاكر من قراءة كل حرف تكتبه على لوحة المفاتيح أثناء إتصالك بالإنترنت ، أيضا سيكون بوسعه سحب كافة كلمات المرور الخزنه في الذاكرة ، سيستطيع أيضا فتح ملفاتك ، قراءة رسائلك ، و مشاهدتك عبر الكاميرا ، بل سيستطيع مشاركتك في المواقع التي تتصفحها و المحادثات التي تجريها !
صورة لبرنامج سب سفن الشهير في مجال إختراق الأجهزة الشخصية تنطلق شرارة المشكلة عندما تقوم بفتح تطبيق أو ملف لا تعرف مصدره سواء كان هذا الملف مرسل اليك عن طريق البريد الإلكتروني أو قمت بنفسك بتحميله على جهازك من أحد المواقع أو أحد الأقراص التي حصلت عليها ، بعض ملفات التجسس (أحصنة طروادة) تكون مضمنه ضمن خلفية شاشة جميله أو لعبة صغيرة أو برنامج تطبيقي آخر مشهور ! عند تشغيلك لهذا التطبيق تكون ببساطة فتحت باب خلفياً Backdoor للهاكرز و سيكون بمقدوره إختراق جهازك و العبث فيه ، كل ما سيحتاجه معرفة رقم الأي بي الخاص بك وقت إتصالك وهذه المعلومة من السهل جداً الحصول عليها بحيل و اساليب لن أسهب في ذكرها خوفاً من أن تستغل إستغلالاً سيئ !
النصيحة : لا تفتح أي ملف أو برنامج يصلك عبر البريد الإلكتروني من شخص غير معروف ، أو تجده في موقع غير مشهور ، و تأكد دائما من تحديث مضاد الفايروسات و ملفات التجسس في جهازك بشكل دوري ( كل أسبوع على الأكثر ) ، كما تأكد من تركيب جدار حماية Firewall جيد مثل برنامج زون ألارم Zone Alarm لحماية منافذ الجهاز و إغلاق المنافذ المشهورة التي تستخدمها بعض تطبيقات الإختراق المنتشرة بين يدي المبتدئين من الهاكرز !
الهاكرز و مواقع الويبهذا الفرع قد يكون متشعب جدا ، و يصعب فعلاً تغطيته في مقالة أو حتى عشرة مقالات لأن هناك العديد من الحالات و الأساليب التي يمكن نصنفها تحت مسمى إختراق المواقع ، فمن الممكن مناقشة هذا الموضوع من جهة مطوري الموقع ، أو من جهة أصحاب و ملاك المواقع ، و نظرا لأهمية الناحيتين ، فسأناقش الموضوع من هذين الجانبين بشكل مختصر و غير مخل بإذن الله.
أصحاب المواقع .. و الإختراقأنت تمتلك موقعا ، اذا بياناتك متاحة لملايين البشر ، يفصلها عنهم فقط زوج من البيانات (إسم مستخدم و كلمة مرور ) ، الحصول على زوج البيانات هذا هو مهمة ذلك الهاكر ، و أحيانا يكون غير مضطر لمعرفة هذه البيانات ، ببساطة يمكن للهاكر إستغلال أحد ثغرات نظام التشغيل في سيرفر الشركة المستضيفة لموقعك ، أو إستغلال ثغرة من ثغرات التطبيقات التي تقوم بتركيبها في موقعك مثل المنتديات أو المجلات الإلكترونية أو أي تطبيق تقوم بتركيبه ، معرفة هذه الثغرات ليس بالأمر الصعب ، يكفي أن يقوم أحد الهاكرز بالإشتراك بالرسائل الإخبارية التي تأتي من شركة VB المنتجه لبرنامج المنتديات الشهير و التي تبلغ عن أي ثغرة تكتشف في النظام ليذهب ذلك الهاكر مسرعا يبحث عن منتدى لم يقم بالترقية بعد و يستغل تلك الثغرة فيه !
نصائح أمنية لأصحاب المواقع :1- تأكد من
شركة الإستضافة التي تتعامل معها من إصدارة نظام التشغيل و لوحات التحكم لديهم و قم بالبحث عن هذه الإصدارات و تأكد ما اذا كانت تحتوي على ثغرات خطيرة أو لا.
2- إستخدم في موقعك فقط البرمجيات التي تحتاج اليها فكرة الموقع فقط، اذا كنت لست بحاجة ماسة إلى سجل زوار ، فلا تضعه ، اذا لم تكن بحاجه لمحرك بحث داخلي ، فلا تضع.
3- ركب دائما أحدث النسخ من البرمجيات التي تستخدمها في الموقع ، سواء المنتديات أو المجلات الإلكترونية.
4- لا تبالغ في تركيب الإضافات الغير أساسية على التطبيقات ، هذه الإضافات ( تعرف أيضاً بالهاكات) تساهم كثيرا في فتح ثغرات في موقعك ، وذلك لأنها صممت و برمجت من قبل هواة ولم تبرمج من قبل الشركة المنتجه لنفس البرنامج ( على سبيل المثال الهاكات المستخدمة في برامج المنتديات هي في الغالب سبب إختراق معظم المنتديات ، و العجيب أننا نرى بعض أصحاب المنتديات يتفاخرون بعدد الهاكات التي يستخدمونها و التي هي في الحقيقة أبواب خلفية مفتوحة لإختراق مواقعهم !! )
5- أحرص دائما على تتبع أخبار البرمجيات التي تستخدمها في موقعك و تأكد من أنك تقوم بالترقية في حالة وجود ثغرة خطيرة وليس فقط في حالة وجود ميزة جديدة في البرنامج ، كثرة الترقيات المبالغ فيها قد تسبب لك المشاكل ايضاً.
6- لا تثق في أحد ، لا تعطي بيانات موقعك لأي جهة غير رسمية ، قد تحتاج الى تركيب برنامج أو تصليح مشكلة في موقعك ، تأكد من أنك تتعامل مع مواقع و جهات على درجة عالية من الموثوقية وليس مع بعض الهواة في المنتديات.
7- راقب سجلات الدخول Logs في موقعك متى ما أحسست أن هناك أمر مريب يجري ، سجلات الدخول كنز من المعلومات يجدر بك إستغلاله للأغراض الأمنية أو الإحصائية
8- حدد صلاحيات المشاركات في موقعك ، اذا كنت تمتلك منتدى فلا تسمح للأعضاء بإضافة وسوم HTML أو جافا سكريبت ، أحدهم قد يسرق ملفات الكوكيز الخاصة بك بهذه الطريقة !!
إذا لم تكن قادرا على تولي تنفيذ هذه النصائح الأمنية بنفسك ، فيمكنك إستئجار جهة خارجية لتقوم بذلك عنك ، أحد أفضل المواقع العربية في هذا المجال هو
موقع الحلول الأمنية و المتخصص بتقديم الخدمات الأمنية لأصحاب المواقع
الهاركز يا مطوري تطبيقات الويب !هل سمعت عن XSS ؟ ، هل تعرف ما هي حقن لغة الإستعلام SQL Injection ، هل قرأت عن إقتحام الجلسات Session Hijacking ، حسنا ، هل قرأت عن الـ CRLF Injection، ماذا عن الـ Directory Traversal ، و ماذا عن التلاعب بالمتغيرات Parameters Manipulation ?
حسناً ... هذه الأسئلة ستعطي إنطباع عن أن الموضوع متشعب جداً ، لم أذكر هنا الا أهم و أشهر أنواع المشاكل و الثغرات التي يستغلها الهاكرز لتدمير التطبيقات التي تبرمجها ، و اذا كنت لم تسمع بواحد أو أكثر من هذه المصطلحات ، فأنت في خطر !
بما أن هذا الجزء من المقالة يهم مطوري المواقع أكثر من غيرهم ، فلن أسهب كثيراً بشرح هذه المصطلحات و طريقة عملها ، أتوقع أنك كمطور قادر على البحث بنفسك عن تفاصيل هذه المصطلحات و معرفة ما هو المعني البرمجي لها بالضبط ، عموما ، سأذكر رؤوس أقلام عن هذه المصطلحات للمهتمين بتنمية ثقافتهم الأمنية في شتى المجالات.
الـ Cross Site Scriptingيطلق عليها إختصاراً xss وليس CSS تميزاً لها عن صفحات الأنماط المتعددة Cascading Style Sheet، بإختصار هي نوع من الهجمات التخريبية على تطبيقك يحدث عندما يتمكن أحدهم من إدخال بيانات مختطلة مع بعض الأوامر في نماذج صفحات موقعك ينتج عن ذلك تشويه شكل صفحة موقعك أو إظهار رسائل خطأ متكررة عند زيارة الصفحة التي تم تخريبها، أو سرقة بعض البيانات الحساسة من الزوار أو صاحب الموقع نفسه ! ، تنتج هذه المشكلة نتيجه عدم فحصك لمدخلات الزوار في النماذج و سماحك لهم بإدخال وسوم HTML أو Java Script في نماذج الموقع مما يجعلهم قادرين على تلويث صفحات موقعك بشيفرات ليست جزء من شيفرة تطبيقك الذي كتبته ! يمكن للهاكر أيضاً العبث في المتغيرات التي يمررها تطبيقك عن طريق عناوين URL و إضافة أجزاء اليها تجعله قادر على السيطرة جزئيا أو كلياً على تطبيقك ، أو على الأقل تشويه شكل التطبيق ، لعلك تتذكر عزيزي القارئ الثغرة التي كان مصاب بها نظام بريد الـ Hotmail قبل سنتين تقريبا ، و التي كانت تسمح للهاكر بقراءة صندوق البريد الوارد للضحية ، تلك الثغرة كانت تصنف تحت الـ XSS !
الـ SQL Injectionتحت هذه النقطة سأحيلك عزيزي القارئ إلى مقالة كتبتها سابقا عن هذا الموضوع بالتحديد ، المقالة هي :
الـ SQL Injection سلاح الدمار الشامل ضد تطبيقات الويب ، أتمنى أن تستمتع بقراءة تلك المقالة ، الموضوع خطير و يستحق مقالة منفردة.
إقتحام الجلسات Session Hijackingإقتحام الجلسات هي عملية السيطرة على جلسة المستخدم Session الذي يقوم بإستخدام النظام ، عملية إقتحام الجلسه تلزم أن يقوم الهاكر بإلتقاط رقم الجلسة Session ID ، أو توليد إجباري لها Brute Force أو إعادة توليد للرقم Reverse Engineering ، قد يبدو المفهوم صعب حالياً لذا سأسترسل بشرحه أكثر.
من المعروف أن هناك نوعين من الجلسات الجلسات الدائمة Persistent وهي التي يتم من أجلها تعريف ملفات الإرتباط (الكوكيز) و حفظها في جهاز المستخدم لكي يتعرف عليه النظام عند عودته في أي وقت مرة أخرى ! ، النوع الثاني هي الجلسات الغير دائمة non-Persistent وهي التي تنتهي بمجرد إغلاق المستخدم للمتصفح ، في كلا النوعين يتم تعريف رقم جلسة Session ID للمستخدم ، رقم الجلسه هذا يستخدم لمعرفة متغيرات المستخدم الذي يرسلها أو يستقبلها خلال جلسته على النظام ، هذا الرقم ينشئ عادة بشكل إفتراضي من لغة البرمجة التي تستخدمها من خلال رقم أي بي المستخدم وقت الجلسه يدمج معها بعض المتغيرات الأخرى ، بعض المبرمجين يكتفي بتوليد هذا الرقم بشكل إفتراضي دون أن يسعى لتشفيره أو إضافة المزيد من العوامل عليه لجعل عملية التوليد الإجباري أو إعادة التوليد له صعبة ، و هنا تكمن المشكلة حيث يقوم الهاكر بمحاولة توليد رقم الجلسه بمعرفة بعض المعطيات اللحظية و يرسلها عن طريق HTTP Request إلى النظام الذي يقرأ رقم الجلسه و يقارنه برقم الجلسه الموجود لديه في الذاكرة ، فإذا تطابق ، فهذا يعني من وجهة نظر النظام أن الهاكر هو المستخدم الحقيقي ، و يمنحه بذلك حق الوصول لمنطقة المستخدم الخاصة ( حسابه البنكي على سبيل المثال !! ) ، الجدير بالذكر أن هجمات الـ xss يمكن أن تستخدم للإستيلاء على الجلسات و ذلك عن طريق تمرير كود جافا سكربت للنظام يقوم بقراءة رقم جلسة المستخدم و ارسال هذا الرقم للهاكر !
نصائح لتجنب هذا النوع من المشاكل1- حاول تشفير رقم الجلسه و تعقيدها قدر المستطاع
2- إستخدم الـ SSL لتشفير كافة البيانات الحساسة المرسلة و المستقبلة من و إلى نظامك
3- برمجياً قم بإنهاء أي جلسه يمضي عليها وقت كافي تقدر بأن المستخدم خلالها قد إنتهى فعلاً من عمله خلالها أو انه قد ترك شاشة النظام مفتوحة و لم يعد يستخدمها
4- حصن نظامك ضد هجمات الـ XSS
الـ CRLF Injectionمصطلح CRLF هو إختصار لـ Carriage Return , Line Feed ، الـ CR هو رمز الأسكي 13 و الـ LF هو رمز الأسكي 10 ، هذان الرمزان يستخدمها الويندوز عند الضغط على زر Enter ( أي للنزول إلى سطر جديد )، نظام لينكس يستخدم فقط الرمز LF ، بإختصار هذا النوع من الهجمات ليس خطير للغاية ، أقصى ما يمكن للهاكر فعله من خلال هذه النوعية من الثغرات هو تشويه شكل الصفحة ، بالتأكيد هذه المشكلة قد تكون حساسه حسب نوعية التطبيق الذي تقوم ببرمجته. هذا النوع من الهجوم يكون أيضا بسبب عدم فحص مدخلات المستخدم ( تماما كالـ SQL Injection و الـ xss ) ، تأكد من أن المستخدم لا يدخل علامة \\\\\\\\n\\\\\\\\r في المدخلات ( الا في الأماكن التي يسمح بها للمستخدم بإستخدام هذه الرموز للنزول الى سطر جديد ) ، مثلا في نص الموضوع الذي يكتبه العضو في المنتدى يجب أن تسمح له بإستخدام زر Enter ( الذي يتحول عند الضغط عليه إلى \\\\\\\\n\\\\\\\\r ولكن غير مرئية ! ) ، ولكن في عنوان الموضوع سيكون السماح للمستخدم بإدخال رمز CRLF مشكلة كبيرة !!
التجول في المجلدات Directory Traversalهذا النوع من الهجمات خطر فعلا ، لن أبالغ اذا قلت انه اخطر أنواع الهجمات على الإطلاق ، ما يخفف من وطئته هو أنه صعب التطبيق لأن التطبيقات التي يمكن إستغلال هذا النوع من الثغرات فيها محدودة جداً ، ولكن هذا لا يمنع من أنه خطر و خطر جداً ! فكرة هذا النوع من الهجمات ببساطة هو أن يتمكن الهاكر من الخروج عن نطاق مجلد الجذر للموقع Root directory إلى مجلدات أخرى تعلو المجلد الجذري في المستوى ، دعني أضرب مثال لتوضيح الصورة ، في سيرفرات الويندوز التي تعمل بالـ IIS يكون مجلد الجذر للموقع عادة هو :
C:\\\\\\\\Inetpub\\\\\\\\wwwrootوهذا المجلد هو الذي تتواجد فيه ملفات موقعك ، و بالتالي فإن الزوار سيتمكنون فقط من تصفح الملفات الموجودة في هذا المجلد و المجلدات الفرعية الموجود بداخله ، ومنها على سبيل المثال مجلد news ، الصورة في الأسقل تعطيك إنطباع عن التسلسل الشجري للمجلدات التي سأضرب مثال عليها .
لتشغيل الأموال في تجارة العملات و تدعي بأنها تملك برنامج مخصص لتبادل العملات العالمية !