السلام عليكم ورحمة الله وبركاته
أحببت ان أشارك بمقالة كتبت في مجلة Information Security Magazine عام 2000 (قديمة) ... لكن فائدتها ستبقى مابقي لأمن المعلومات وجود. هذه المقالة كتبها Bruce schneier المعروف وترجمها أحد الأخوة جزاه الله خيرا وقد نقلتها لكم هنا لتعم الفائدة بإذن الله.
بسم الله نبدا:
( اذا تعلمنا اي شئ من السنوات القليلة الماضية, هو ان الثغرات الامنية في اجهزة الحاسب وتطبيقاتها هو امر حتمي. الانظمة تخترق, الثغرات الامنية تنشر في الاخبار, ومع هذا فان الكثيرين من الناس يضعون ثقتهم في المنتج القادم, او التحديث القادم, او الترقيعة القادمة, "هذه المرة انا بامان"... لكن حتى الان, لم نكن كذلك ).
اريد ان اخرج عند هذه النقطة من المقال للقول, هل فعلا نحن في امان ان قمنا بتحديث منتجاتنا والحصول على اخر ترقيعة لانظمتنا وقمنا حتى بشراء انظمة وتطبيقات متطورة؟
لاحظوا معي ان الكاتب ذكر هذه الكلمات عام 2000 فالسؤال هنا, هل من وجهة نظرنا كاشخاص متفوقين في مجال الحاسب، نرى بان هذا الامر قد تغير؟
من وجهة نظري اقول "لا".. لا لم يتغير, لا من ناحية ضعف التطبيقات والانظمة, ولا من ناحية المستخدمين.. فنحن ما زلنا نعتمد على اخر ما توصله الينا المواقع من تحديثات وترقيعات وننسى اننا انفسنا بحاجة الى ترقيعة وتحديث!
ارجو الا يحزن احد والا ياخذ الاخر كلماتي القادمة باسلوب مغاير للفكرة التي احاول ايصالها, فما اريد قوله اننا نحن البشر الذين نسيّر ونضع تلك التطبيقات والانظمة في خدمتنا اولا وخدمة غيرنا ثانيا.. لنفكر قليلا, Bill Gates وهو صاحب شركة Microsoft، ماذا برايكم نظام التشغيل الذي يستخدمه لجهازه الشخصي؟ قد يقول البعض Windows والاخر (من متعصبي اللينوكس) يجيب Linux اكيد لانه يعلم بضعف وثوقية نظامه والاخر (من مصممي المواقع) يرى بانه يستخدم Mac.. واختلفت الاراء، لكن السؤال الاهم يبقى هو, هل يقبل بيل بان يستخدم نظاما يحوي على ثغرة امنية تعرض جميع ممتلكاته للخطر؟ هل يقبل بان ينتظر حتى تقوم الشركة المنتجة (سواء كانوا مبرمجيه او مبرمجي *nix) بطرح الترقيعة مثلا؟ ام يقوم بنفسه بسد تلك الثغرة مؤقتا او نهائيا؟؟
طبعا الحال بالنسبة لاشخاص مثل Bill مختلفة عنا, لا اقول بانه افضل (كوني من مشجعي هتلر ارى باني افضل منه!!), لكنه يملك من الخبرة البرمجية (على الاقل) القدر الكافي لاكتشاف, فهم الخطا, وتصحيحه.. بالتالي، اشخاص مثل Bill لا يقلقون بشان الثغرات الجديدة لانهم يسكنون في قلعة شبه حصينة لا يصل اليها الزوار قبل ان يتجاوزوا سبع بوابات و جدار من النار.. لكن ماذا بشاننا نحن؟
برايي المتواضع اننا قادرون على ان نكون بافضل من Bill وغيره, كيف؟ يكفي ان نبحث, نقرا ونتعلم.. دون ان ننسى المحاولة, حتى ولو فشلنا فاننا يجب ان نلتزم بالمحاولة فان لم تحاول كيف لك ان تفشل؟ وان فشلت ماذا يمنع ان تحاول من جديد؟ اقول لك ان فشلت, اتلف جميع اوراقك السابقة وابدا من جديد بافكار ومنظور آخر.
(حسنا, الموضوع يتحدث عن الامن, فلم خرجت عن الموضوع؟)
ومن قال باني خرجت عن الموضوع, ازيد, كم شخصا منا يستطيع ان يقوم بتعريف الـ crack بشكل صحيح.. لم اقل كم شخصا يستطيع ان يفسر لي ما هو التوضع النجمي في الشبكات ولم اسال عن اخر X'box اصدره الـ phreakers.. سؤال عن شئ نتعامل معه بشكل شبه يومي.. الـ crack، ما هو, ما هو اشكاله, كيف نستخدمه وكيف يكتبونه؟ اعتقد ان الغالبية من قراء الموضوع الذين وصلوا في قراءتهم الى هذه النقطة سيخطئون التقدير في الاجابة لان ما يعرفونه عن هذا المصطلح هو القشور.. لكن ماذا بشان اللب؟
اذن نعود, ان لم نكن نعلم ماذا نقوم باستخدامه فكيف لنا ان ندير هذا النظام الضخم؟ ألمجرد انه User Friendly ويملك GUI سنكون قادرين على ادارته؟؟ ارى حتى اليوم اشخاصا يسالون عن امور من المفترض ان تكون قد اصبحت شبه معروفة بالنسبة اليهم نظرا للفترة التي يقضونها امام شاشة الحاسب.. ام اننا ان استخدمنا الحاسب نستخدمه في الالعاب وان قمنا بدخول الانترنيت نسرع الى مواقع الـ chat والـ "علاك المصدّي" !!
لم لا نقوم بانفسنا بالبحث عن الجواب قبل ان نطرح السؤال حتى!؟ كيف؟ ببساطة لم لا نقوم بالبحث عن معنى كلمة FAT التي نراها عندما نقوم بتقسيم الهارد مثلا.. لم لا نبحث عما اذا كان هناك اشكال اخرى منها.. لم لا نسال عمّاهيتها وعما تقوم به؟ ام يجب ان ننتظر الى ان نقوم بالانتقال الى NT حتى يتبادر الى ذهننا السؤال السابق.. طيب ما هو الـ HPFS؟ هل يعلم القارئ بالاجابة.
دعونا نعود الى المقال..
( الامن واجرائياته هو عجلة تدور, وليس تطبيق برمجي. التطبيقات البرمجية تزود بعض الاجرائيات الامنية لكن الطريقة الوحيدة التي يمكن من خلالها ان نقوم بالبدء بمشروع تجاري في عالم غير آمن بنجاح هو ان نضع كافة الاجرائيات التي سنقوم بها في مجال يقوم بالتعرف على النقاط غير الامنة في تلك التطبيقات وتفاديها!
وبالتالي فان الحيلة تكمن في التقليل من خطر الثغرات بغض النظر عن المنتجات والترقيعات.
( - هل سنتعلم ابدا؟
لننظر الى هجمات الـ Buffer OverFlow المعروفة ايضا باسم BOF. تم التحدث عن هذا النوع من الهجمات عام 1960 عندما عانت الانظمة التي اعتمدت على المشاركة الزمنية time-sharing systems منها رغم انها كانت معروفة حتى قبل هذا من قبل خبراء الامن. في عام 1970, تم استخدامها كاسلوب هجوم ضد شبكات الحاسوب التي كانت منتشرة انذاك. عام 1988, دودة Morris قامت باستغلال خطا BOF في امر الـ finger الخاص بـ Unics (المعروف ايضا بـ Unix).
اليوم, بعد اكثر من عقد على دودة Morris و 35 سنة على اكتشاف هذه الثغرات واستغلالها، ستظن بان مجتمع الامن قام بحل هذه المشكلات من المشاكل الامنية العديدة والمبنية مثلا على ثغرات الـ BOF. فكر مرة اخرى, اكثر من ثلثي انذارات CERT (who is CERT anyway!) عام 1998 كانت بخصوص ثغرات مبنية على الـ BOF. خلال المتوسط الاسبوعي عام 1999, وجدت ثغرات في نظام RSA الخاص بالتشفير, انظمة مثل HP, Solaris, MS IIS 4.0, Site Server 3.0, WinNT و Internet Explorer (IE). دراسة حديثة ذكرت بان ثغرات الـ BOF من اكثر الثغرات انتشارا في عالم امن المعلومات."
همممم.. اذن نخلص الى القول بانه عندما تتواجد الانظمة فان الثغرات موجودة (when there is a patch there is a flow -- قول جديد يمكنني ان اضيفه الى توقيعي!)، وليس هناك نظام متكامل في بنائه لا يحوي ولو على ثغرة واحدة، وان وجد، فهذا لا ينفي وجود ثغرة غير مكتشفه فيه حتى يومنا هذا. بالتالي هل نقف على الحقيقة المرة ان كل نظام قابل للاختراق والتلاعب فيه؟ ام اننا نقف على كارثة، وهي ان هذه الانظمة مكتوبة من قبل البشر وبالتالي ان لم "نتخلص" من ضعفنا البرمجي, من اتكالنا على شفرات الغير, من عدم بحثنا واكتفائنا بما هو متوفر, من جهلنا بحقيقة الكارثة..... فاننا لن نتخلص يوما من الثغرات. فهل سنرى ذلك اليوم؟ ). انتهى كلام الكاتب.
انظر بعين حيادية وشخصية الى مبرمجي اليوم لارى فيهم مبرمجي امس.. ومبرمجي الغد؟ فكل ما اراه في المواقع والمنتديات العربية والانكليزية لان الموضوع لا يمس العرب فقط على الرغم من انهم النسبة الاكبر المتضررة, هو مبرمجين اما انهم يبحثون عن شئ جاهز ياخذونه كما هو لا يريدون تطويره او على الاقل فهمه (ناسين حقيقة انه قد يحوي على خطا برمجي قد يؤدي الى انهيار انظمة برمتها بسبب غبائهم وكسلهم), او ارى مبرمجين يريدون الطيران قبل ان يتعلموا المشي فيبحثون عن اساليب كتابة انظمة حماية من الفيروسات وكان هذه الانظمة كبرنامج يقوم باظهار الرقم الاكبر بين n عدد.. او مبرمجين يبحثون في كيفية بناء مجمع assembler او مترجم compiler, وكان هذه البرامج من النوع File -> Open -> Click there.. yes there -> you go for it! وما يسئ اكثر الى هذا الواقع هو وجود خبراء قد يسايرون هؤلاء ويريدون ان يساعدوهم. عظيم, النخوة موجودة والهمة عالية.. لكن هل نقوم بالشئ الصحيح؟ وهل نسمح لشخص لا يعرف الاساسيات ان يقدم لغيره ممن هم ابسط منه شيئا قد يدمر مستقبلهم؟
انا بصراحة اتفاجئ دائما بالاشياء التي تقوم باخلال توازن انظمة الحماية او تطبيقاتها. هناك تطبيق تقوم بتشفير الملفات وتضع المفتاح عن غير قصد بصورة غير مشفرة!! VPNs مثلا (الشبكة الخاصة الظاهرية Virtual Private Network) التي كان ملف الاعدادات فيها يسمح لاي شخص بان يقوم بالمصادقة على نفسه للمخدم! او التي تسمح لذلك الشخص بان يقوم بالاطلاع على ملفات شخص اخر متصل. هناك عدد لا يحصى من الطرق لرفع لافتة "غير آمن" في وجه التطبيقات العديدة المتوفرة اليوم, والشركات المصنعة دوما تنجح في تفادي رؤية كل هذه اللافتات المرفوعة مجددا ومجددا.
لا احد يعير الاهتمام ويلقي بالا الى الموضوع لان لا احد بحاجة الى ذلك -- تقليد انتشر حاليا بشكل واسع"
فهل هذا صحيح؟ هل صحيح ان لا احد يعير بالا للامر؟ هل صحيح ان الشركات تغض النظر عن الموضوع بقصد.. ام انه لا يوجد حل جذري لكل هذه المشاكل؟ هل صحيح باننا سنبقى تحت رحمة من يمتلك الخبرة الكافية لاكتشاف تلك الثغرة ليسدد لنا الضربة القاضية او طعنة في الظهر؟ ام ان الاصح منه ان لا احد بحاجة لان يعير بالا للموضوع لان هناك اشخاص يقومون بالعمل نيابة عنه؟
"المنتجات الامنة, كالبرامج بشكل عام, لديها ميزة غريبة تفرقها عن غيرها من المنتجات. انها تختلف بشكل تام عن المنتجات المطروحة في السوق العادية كالاغذية, وسائط النقل, او ناطحات السحاب!
ان اشتريت منتجا وتاذيت نتيجة استخدامه امكنك ان تقاضي الشركة المسؤولة .. وستربح!. صانعو السيارات لا يمكنهم الافلات ان قاموا بصناعة سيارات تنفجر عند الاصتدام, منتجو قطع الدجاج المعلبة لا يمكنهم الافلات من جراء بيع علبة قطع دجاج مع بعض القطع المصنوعة من لحم الفئران!! لا يمكن ابدا لمتعهدي البناء ان يقولوا شيئا مثل (اوبس! ها قد سقط بناء آخر.. اسفون, لكن عليك الانتظار حتى صدور تصميم جديد لناطحة السحاب تلك الاصدار 1.1, سيكون منيعا 100% ضد الانهيار!!).
فيما يخص التطبيقات البرمجية فالامر مختلف. فهي تباع بدون اي ضمانات من اي شكل. قاعدة بيانات حساباتك قد تضيع, وتضيع معها شركتك وكافة القائمين عليها والعاملين فيها, ولا يمكن لاحد ان ينبس بحرف ضد الجهة المسؤولة نتيجة ذلك الخطا. معالج النصوص لديك قد يتعرض لاي خطا وبالخطا ايضا يتلف مستنداتك ولن يكون لديك مشروع تخرج! الجدار الناري الذي تستخدمه قد يتضح ليكون غير منيع او بشكل اسوا غير قادر ابدا على صد اي هجمة ضد جهازك -- ومع هذا, فانه خطؤك!
شركة MS غلفت بريد Hotmail بثغرة والتي سمحت لاي كان بقراءة الحسابات لحوالي 40 مليون مشترك, بكلمة سر او بغيرها, ولم تتعب نفسها بان تعتذر او تقدم اي تعويض.
ان شركات البرمجيات لا تحتاج الى انتاج تطبيقات على قدر عالي من الجودة لانه لا يوجد من يحاسب في حال لم يفعلوا. وبالتالي فان النتيجة من هذا ان هذه الشركات ان ارادت طرح منتجات تمس الامن بشكل او باخر فانها ليست بحاجة الى طرح منتجات آمنة بشكل كامل, لان لا احد يستطيع مقاضاتهم ان ارتكبوا مجموعة من الاخطاء في ناحية التطبيق الامنية.
ان النتيجة من هذا ان السوق لا يكافئ التطبيق الآمن.التركيز على الاجراءات الامنية بشكل جدي امر صعب, بطئ في تقدمه ومكلف اكثر, سواء لتصميمه او تنفيذه. وبما ان القطاع المستهلك لا يملك القدرة على التفريق بين الاجرائيات الامنية الجيدة والسيئة, فان سر النجاح في قطاع التسويق البرمجي هو ان تكون قادرا على كتابة تطبيقات برمجية تكون غير آمنة بالقدر الذي تستطيع فيه الافلات من العقاب!
شركة Microsoft تعلم بان التطبيق الموثوق لا يؤثر بالضرورة في زيادة السعر. نتيجة الدراسات, 90 الى 95% من الثغرات غير مؤذية. معظم هذه الثغرات لا يكتشف من قبل المستخدمين, ولا تؤثر حتى في الاداء. انه من الارخص ان نقوم بطرح منتج يحوي على ثغرات ونقوم باصلاح 5% - 10% من الثغرات التي يكتشفها المستخدمون!
ايضا تعلم مايكروسوفت بان الاجرائيات الامنية الحقيقية لا تؤثر في السعر. فمايكروسوفت تتعرض اسبوعيا الى اكتشاف ثغرات جديدة في منتجاتها. وتقوم باصلاح ما تقدر عليه, تقوم بنشر اخبار مضللة عن الثغرات التي لا تستطيع السيطرة عليها, وتنتظر حتى تنطفئ حماسة كاتبي المقالات وناشري الاخبار في الصحف (والتي غالبا ما تفعل). وبعد 6 اشهر, تقوم بطرح الاصدار الجديد من المنتج مع باقة جديدة من الميزات وكافة اشكال الثغرات, لان المستخدمين بشكل عام يفضلون الميزة الجديدة والتي لطالما انتظروها على وثوقية التطبيق"
اعتقد ان المقال يوضح نفسه بنفسه ولا يحتاج الى تعليق، لكني اريد ان اذكر تعريف الـ Upgrade من وجهة نظر خبراء الامن:
The definition of an "Upgrade": Take old bugs out, put new
ones in!
اعجبتني جملة جميلة جدا "Either you avoid the threat, or you dont" وهذا كلام سليم تماما، ففي اي طرف نحن الان؟ السنا نقف في الطرف الذي يقبل "بجميع" التهديدات مرغمين لاننا لا نبحث عن الطرق المثلى لتوفير الاجرائيات الامنية الافضل؟ الا يقوم على حماية موقعنا شركات او مجموعات تطلق على انفسها مجموعات مختصة وهي في الاصل ليست كذلك؟ اليس من المفترض ان نكون على قدر من الحرص بشان خصوصية المستخدمين لدينا؟
الى متى سيبقى من يحمل الـ sub-7 في يمينه و اي scanner للشبكات يعتقد انه قادر على اختراق اكثر من 10 مواقع ضمن مجال IPs من 172.50.xx.xx حتى 172.60.xx.xx ؟ الا نعتقد اننا نهمل الجزء الخاص بخصوصية المستخدمين.. السنا في الاصل مستخدمين في اعين شركات اخرى! ---- وما زالت الثغرات موجودة |:
- الوقاية:
قم بالحد من الصلاحيات الممنوحة. لا تقم بمنح اي مستخدم عادي اكثر من السماحيات الضرورية له لاتمام عمله. كما لو كنت لن تمنح اي موظف في شركتك مفاتيح مكتبك, لا تقم باعطاء كلمات السر لاي كان.
قم بحماية وتغليف الحلقة الضعيفة. اصرف كل ميزانية الاجرائيات الامنية لديك على ازالة التهديدات الكبرى.
قم باقامة بوابات امنية وعقبات في وجه من قد يحاول الوصول الى شبكتك بصورة غير شرعية, عن طريق تمرير مستخدميك عبر هذه البوابات فانت قادر على ان تقوم بحمايتها بصورة اكبر من ان تقوم بحماية جميع اجزاء الشبكة. بالطبع فان الانظمة والخدمات التي من المفترض بها ان تتجاوز هذه الانظمة الدفاعية تجعل موضوع الحماية اصعب.
حقق الامان في العمق. لا تعتمد على الحلول الوحيدة والحلول الوسط. استخدم اكثر من نظام امني متكامل, وبالتالي الخلل في احدها لا يؤدي الى انهيار المنظومة الدفاعية بالكامل في شبكتك. هذا قد يعني جدار ناري, IDS, مصادقة قوية على المخدمات الهامة.
افشل بشكل آمن! صمم شبكتك بشكل لو حدث خلل فيها وانهارت ان تنهار بشكل آمن لا يعرض اجزائها السرية للكشف والخطر. عندما يحدث اي خلل في صراف آلي مثلا تجد بانه يغلق اوتوماتيكيا, لا يقوم مثلا ببصق الاموال على الرصيف!
انت تعلم شبكتك جيدا, في حين المهاجم لا يملك هذه الميزة. هذه ميزة كبيرة في صالحك. اجعل عمله اصعب عن طريق تمويه الاشياء, اضافة افخاخ honey pots وما يخطر في بالك من امور تجعل مهمته ان لم تكن مستحيلة, اصعب ما يمكن كي يتفادى افخاخك.
قم بتلقين العاملين لديك الاجرائيات الامنية باصولها, معظم الهجمات الناجحة تعتمد في اصلها على ضعف قدرة الموظف وقلة خبرته في المجال الامني وبالتالي تجد بان هجمات الهندسة الاجتماعية social engineering هجمات جد خطيرة في هذا المجال وخصوصا لمن لا يعلم الاجرائيات الاساسية الامنية.
كن بسيطا, اجعل الامور بسيطة قدر المستطاع. الاجرائيات الامنية هي سلسلة, اضعف حلقة فيها يؤدي الى انهيار السلسلة باكملها. البساطة تعني عدد حلقات اقل!
- اكتشاف الاقتحام والرد:
اكتشف محاولات الاقتحام. راقب التطبيقات الامنية. ابحث عن آثار اختراق. في اكثر الاوقات يتم تجاهل تنبيهات مهمة من التطبيقات الامنية بكل بساطة.
قم بالرد على محاولة الاختراق. لا يكفي فقط ان تكتشفه. يجب عليك ايضا ان تغلق المنفذ الذي ادى اليه, قم بالتحقيق في الحوادث وقم بمقاضاة المخترقين. يجب ان نبني عالما حيث يتم فيه معاملة المجرمين بالشكل نفسه.
كن متيقظا. الوقاية تحتاج الى مراقبة دائمة, لا يكفي فقط ان تقرا التقرير الاسبوعي. اقرا حول الثغرات والهجمات الجديدة كلما سنحت لك الفرصة. قم بتثبيت كافة الترقيعات الامنية والتحديثات بصورة مباشرة. لا تترك شيئا الى الغد.
راقب المراقبين, قم بمراقبة اجرائياتك الخاصة. بانتظام"
اذن بعد هذا المقال الذي اعتقد ان كل من قرا الموضوع ويحمل شيئا يعمل داخل تلك الجمجمة سيجد انه يلمس الواقع المتخلف للامن العربي بصورة مباشرة او غير مباشرة -- ماذا نستخلص؟
اعتذر عن الاطالة في هذا الموضوع الذي همّي الاول والاخير من ورائه هو التنبيه الى واقع مرير كاد الكثير منا ان ينسوه, اما البقية فهم القلة القليلة الذين لم يستطيعوا ان يتابعوا وحدهم ففضلوا ان يشربوا من ماء البئر ويكونوا مجانين كالملك الذي اصاب بئر مملكته داء ادى الى اصابة كل من يشرب منه بالجنون ففضل ان يشرب من ماء البئر لان القوم اتفقوا عن انه هو المجنون لا هم ويجب عليهم التخلص منه!!!
تحياتي للجميع