كيف تم اختراق موقع soriagate

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

بما أن المخدم جديد، فكرنا باختبار إعدادات الأمن عليه، وأجرينا اختبارا كاملا لكل فعالياته، وشمل هذا الاختبار التأكد من سماحيات كل برنامج ينصت على أي منفذ، وتمت العملية كما يلي:
#netstat -panoe
تعطيك المنافذ المفتوحة، مع البرامج التي تنصت عليها.
لنأخذ مثلا أحد البرامج، وهو xxxx الذي ينصت على المنفذ nn على جميع عناوين IP للمخدم.
الأمر netstat لا يعطي العنوان الكامل للبرنامج، ولكنه يعطي رقم العملية التي يشغلها Process ID. تتم مراقبة أرقام العمليات بالأمر ps الذي تختلف صيغته حسب كل نظام تشغيل. يعطي الأمر ps اسم المستخدم الذي يشغل العملية Process، ويجب الانتباه إلى عدم وجود عمليات غير سليمة يشغلها مدير النظام root.
قد لا يعطي الأمر ps مسار البرنامج الذي تشغله العملية كاملا، ولذلك علينا أن نبحث عن كل ملف تنفيذي اسمه xxxx على المخدم، ونتأكد منها واحدا واحدا، ونحذف الملفات التي نراها غير سليمة.
الأمر هو
#find / -name xxxx -ls

 

هذا الأمر يعطيك لائحة بالبرامج التي اسمها xxxx. عليك أن تعرف ماذا يفترض أن يعمل البرنامج الأصلي، وبجميع الأحوال أغلب برامج Linux تعطي معلومات إضافية عند تشغيلها مع الأمر -v أو -V، مثلا
$/..../xxxx -v
أو
$/...../xxxx -Vانتبه إلى عدم تشغيل برنامج لا تعرفه بصلاحيات root
نفذ الأمر لكل برنامج تنفيذي في خرج الأمر find وتأكد من النتيجة.
بإجراء فحص كامل لكل البرامج التي تنصت على المنافذ المفتوحة، تأكدنا أنه لا يوجد أية ثغرات على المخدم.
أصبح علينا البحث عن الثغرات في البرامج الطبيعية على المخدم، وأهمها طبعا PHP و CGI. تأكدنا أن CGI تعمل بنظام suexec ولذلك لا يمكن أن تعبث بالملفات المحمية، وتأكدنا أن PHP تعمل بنظام Safe Mode.
بقي أن نتأكد أن مخدم MySql لا يقبل الأوامر من الخارج، ويقبل الاتصال من عناوين IP الداخلية. وهذه هي حالتنا.
تأكدنا الآن أن مخدمنا آمن تماما، وتأكدنا أيضا أن من اخترق الموقع هو خائن استطاع الوصول إلى الإدارة بطريقة ما.
قمنا بتغيير كل كلمات السر، وأخذنا نراقب عمل قاعدة البيانات التي تم العبث بها، فوجدنا أنها مازالت تتعرض للعبث.
تأكدنا الآن أن هناك من يستطيع معرفة كلمات السر بعد تغييرها، ويستطيع التلاعب بقاعدة البيانات على المخدم عندما يريد.
قمنا بفحص كل الأجهزة التي نعمل عليها وتأكدنا أنها لا تحوي فيروسات أو برامج تجسس يمكن أن تكشف كلمات السر التي ندخلها في المواقع. وأصبحنا متأكدين أن كشف كلمات السر يتم عبر المخدم.
ملف تسجيل حركة المخدم LogFile ضخم جدا. حجمه 1500 ميغابايت، ولذلك البحث فيه يحتاج لخوارزمية معقدة. حاولنا البحث عن عدد من العبارات، ولكن العبارة التي أعطت نتيجة هي
#grep "/home2/" soriagate.com
تعني هذه العبارة البحث عن أوامر أعطيت لمخدم Apache تحوي المجلد /home2/. هذا النوع من الأوامر يستخدم للوصول إلى الملفات عن بعد، ويفترض أن لا يحتاج زائر الموقع العادي إلى الوصول إلى ملفات الموقع. النتيجة كانت كشف ملفين يمكنان من الوصول إلى ملفات الموقع عن بعد. وتأكدنا أن زرع هذين الملفين قديم جدا، ويعود إلى خيانة أحد مدراء الموقع الذي استلم الموقع فترة قصيرة فقط عندما كان الموقع مستضافا لدى شركة استضافة سورية.
وجدنا أيضا نفس البصمة التي وجدناها عندما تم حذف الموقع من المخدم تمام الذي استضافه منذ إطلاقه وحتى تعرضه للخيانة.
بتحليل هذه الملفات وجدناها ثغرات حقيقية مخصصة للتجسس على الموقع والعبث به. وتم تحييدها.
قمنا بأخذ مقاطع برمجية من هذه الملفات، وبحثنا عنها في كل ملفات المخدم، فوجدنا ملفا ثالثا يحوي نفس البصمة، وموجودا في نفس المجلد الذي يحوي الثغرات. وعند البحث في ملف تسجيل حركة الموقع تأكدنا أن جميع الطلبات إلى هذه الملفات أتت من سورية، ومن وصلتي الجمعية المعلوماتية أساسا، ثم من وصلة مؤسسة الاتصالات أحيانا.
كررنا عملية التنقيب في ملف تسجيل حركة الموقع عدة مرات، وحصلنا على ثغرة إضافية غير مؤذية في صفحة الموطن، وتبين أن زرعها يعود لزمن ليس بعيدا، وأن استخدام هذه الثغرة تم من قبل عناوين IP سعودية. هذه الثغرة لم تستخدم في أعمال مؤذية على المخدم، ولكنها استخدمت في اختراق خصوصيته ومحاولة التجسس على كلمات السر.
مازال التنقيب في ملف تسجيل حركة الموقع مستمرا، وأصبح لدينا الآن برامج تحلل السجلات الجديدة فيه، وترسل إلينا تقارير عن كل نشاط غير سليم يمكن أن يحصل عليه.
بعد اكتشاف هذه الثغرات، كان ممكنا أن نستخدمها لضرب من يحاول استخدامها، عن طريق زرع برامج تجسس فيها، وانتظار القرصان ليشغل برامج التجسس على حاسبه، ولكننا فضلنا أن لا نقوم بأي عمل غير قانوني، وأن نحيل القضية إلى القضاء السوري. ويجري الآن إعداد ملف الدعوى.
لا نستطيع أن نصرح بأية معلومات حول شخصية المخترق أو سلوكه أو تفاصيل الأعمال التي نفذها، وذلك لكي نضمن أننا لا نسيء إلى أحد بدون براهين ثابته بقرار محكمة. ولكن لابد أن نعلن لكم الأخبار فور توجيه الاتهام إلى شخص محدد.

الخلاصة: تم اختراق موقع soriagate عبر خيانة من قبل أحد المدراء السابقين للموقع. وقام مدير آخر للموقع بزرع ثغرة والاستفادة منها لمحاولة كشف كلمات السر لبعض الخدمات.

نصائح لمدراء المخدمات:
  • ابحثوا في كل ملفات تسجيل حركة كل موقع لديكم عن كل محاولة وصول إلى ملف عن طريق العنوان الكامل له، وتأكدوا من البرنامج الذي ينفذه.
  • كل من يقول أنه هاكر ويخترق مواقع هو قرصان لا يملك الحد الأدنى من الأخلاق التي تجعله أهلا للتعامل بحضارة مع البشر. لا تثقوا بالقراصنة.
  • ما يقال أن CGI و PHP و SSH و Telnet هي ثغرات أمنية غير صحيح. هذه البرامج آمنة عندما:
    1. تعرف كيف تضبط إعداداتها.
    2. تشغلها على مخدم آمن.
    3. لا توجد ثغرات أمنية أخرى يمكن أن تجعل هذه البرامج غير آمنه.
    4. يدرك مستخدمو المخدم ضرورة حماية ملفاتهم، ويستطيعون حمايتها.

    وكل ما يقوله القراصنة عن عدم أمن هذه البرامج هو في الحقيقة محاولة لتغطية الخيانات التي يرتكبونها بمجرد أمسكوا بتلابيت أي موقع أو مخدم لديكم.
  • لا تشركوا أكثر من شخص واحد في مسؤولية أمن المخدم. عليكم أن تتأكدوا أنكم تسلمون المخدم للشخص الصحيح، ولا تمكنوا أي شخص آخر من العبث فيه.

الأيهم صالح

بحسب إحصائية موثوقة (وليس بين يدي المصدر الآن -الرابط-) بأن احصائيا اكثر من 70% من المخاطر الأمنية (و عمليات الإختراق على وجه الخصوص هنا) عامة هيي من على طبقة البرمجية النهائية (Web application layer ) _او بالمفهوم الدارج "برمجية الموقع" _ ، اما بتقديري انا فأكثر من 95% من الإختراقات في الويب العربي هيي من طبقة البرمجية نفسها .. لهذا اعتقد مفتاحي الأمان الأولين (في الحماية في المخدمات) ال open_basedir protection (لا بد منه في حال كان المخدم تشاركي ) و ال mod_security (لا غنى عنه ) و خاصة ان من خلال "القواعد - الرولز" تستطيع التغطية على الثغرات الموجودة ، والتي قد تظهر او تطفو بوقت ما ، اي ببعض المهارة يمكن منع استخدام ثغرات موجودة ، او ستظهر .. وهذا شيئ جدا مريح .. بعد ذلك يأتي ما يأتي.. فإقفال دوال php (والتنفزي منها خاصة) ، او إعمال php في ال safe mode او جدران نارية او غيره ).. فائق الإحترام