بحث هذه المدونة الإلكترونية


استكمالا للتدويته السابقه حول اجهزة الـ IPS & IDS تطرقت الى موضوع ال regular expression هذا و لكن لم اتكلم عنه بالتفصيل , مما دفعنى الى تخصيص تدوينه لهذا الموضوع , فالكثير لا يعلم شىء حول هذا الموضوع بالرغم من ان له بعض التطبيقات فى اجهزة cisco المختلفه سواء كانت IPS & IDS – ASA firwall – Routers , وان كان اقرب لمجال البرمجه عن الشبكات فمن لديه خلفيه برمجيه سيجد الموضوع بسيط .
تعريف الـ Regular Expression
تبسيطا لفكره الـ Regular Expression ساستعين بمثال للتوضيح ,لدينا شبكه يوجد بها FTP server غايه فى الاهميه , و لحمايته تم وضعه خلف جهاز IPS sensor ليقوم بفحص الحزم المرسله اليه , فى احد الايام تم اكتشاف ثغره تستهدف منفذ 21 الخاص بال FTP , الان يجب علينا تامين ال server , ولكن كيف ؟؟ فالجهه المسئوله من سيسكو لم تطرح بعد اى signature تقوم بكشف هذا الهجوم باستخدام ال IPS المتاح لدينا , اذن لا يوجد امامنا حل الا تصميم signature خاص لكشف هذا الهجوم ,الخطوه الاولى هى القيام بعمل بحث حول هذا الهجوم و نفترض اننا وجدنا الاتى ,الحزم التى تحتوى على هذا الهجوم تحتوى على string معينه تقوم بتنفيذ امر خبيث فى السيرفر , و لتكن هذه الكلمه هى ATTACK , الخطوه التاليه بعد ان استطعنا معرفه بصمه تميز هذا الهجوم هى تطبيق الاعدادت configuration اللازمه على ال IPS ليقوم بكشف الهجوم , و الذى سيتعرف عليه عن طريق البحث داخل الحزم عن الكلمه ATTACK ,وأى حزمه تحتوى على سلسله نصيه تتطابق مع ما قمنا بتحديده يتم منعها من المرور , ولكن هل هذا كافى ؟!!
المخترق الذكى لا يعتمد على طريقة واحده فى تنفيذ هجوم ما , بل يقوم بتغيير طريقته ليتفادى الكشف ,لنفترض ان مخترق ما قام بمحاوله تنفيذ الهجوم السابق على ال FTP server الذى نتولى عمليه تامينه , تفاجأ هذا المخترق بأن الهجوم لم ينجح , لذلك فكر فى طريقه لخداع جهاز ال IPS الذى يؤمن السيرفر , فقام هذا الشخص بتعديل بسيط فى الهجوم , فبدلا من ان يحتوى الهجوم على كلمه ATTACK قام بتغييرها الى ATTacK والتى تقوم بتنفيذ نفس الغرض الخبيث , مجرد تغيير حرفين من UPPER-CASE الى LOWER-CASE ولكن النتيجه ستكون مذهله ,عندما يمر هذا الهجوم على ال IPS يقوم هذا الاخير بعرضه على مجموعه من ال signature التى تقوم بفحص البيانات والتى من بينها ال Sig. التى قمنا بتصميمها , عندما بدأت هذه ال sig. فحص الحزم لم تكتشف الهجوم والسبب انها اعتمدت على شكل واحد له وهى احتوائه على كلمه ATTACK ,عندها ستتجاوز الحزم ال IPS وتصل فى النهايه الى السيرفر لتقوم بتنفيذ الهجوم المطلوب .
الان ما الحل لمثل هذه المشكله ؟ قد يقول البعض يمكننا ان نقوم بعمل sig اخرى لتقوم بمنع اى حزمه تحتوى على اى string من الاتى ATTACK او ATTack او ATTack او attaCK او attack الخ … ممتاز ولكن ما هى الطريقة التى نستطيع بها تحديد اى شكل لهذه الكلمه ؟ فمن غير المعقول ان نصمم signature منفصله لكل شكل من هذه الكلمه , فمثلا sig 1 تقوم بكشف attacK و sig 2 تقوم بكشف ATTAck الخ … بالطبع هذا مستحيل لانه فى الهجوم الحقيقى لن تكون مجرد كلمه من ست احرف فقط , هنا يأتى دور Regular Expression لتساعدنا فى تحديد هذه الكلمه باى شكل لها , فال Regular Expression عباره عن notational language او لغه ترميزيه تساعدنا فى عمل وصف ل text pattern ,فمثلا لنقوم بعمل وصف للكلمه ATTACK بكل اشكالها بمساعده ال regular expression سنقوم بترميزها بهذا الشكل “[Aa][Tt][Aa][Cc][Kk]” بهذه الطريقه نستطيع عمل match للكلمه بمختلف اشكالها , وبوضع هذا التص “[Aa][Tt][Aa][Cc][Kk]” فى ال signature ستقوم بمنع اى حزمه تحتوى على اى شكل من هذه الكلمه .
تستخدم ال regular expression مجموعه من الرموز تسمى Metacharacters تعطى مرونه لوصف اى text نريده , فمثلا استخدمنا هذه المثال السابق لمطابقه كلمه attack زوج الاقواس [] وهى تقوم باختيار حرف واحد من ما بينها , مثال اخر لنفهم اكثر
نريد ال regular expression التى تمثل الكلمتين hacker او Hacker الحل هو Hh]acker] نريد ال regular expression التى تمثل الكلمتين hackEr او Hacker الحل هو Hh]ack[Ee]r] نريد ال regular expression التى تمثل الكلمتين hat او hot الحل هو h[oa]t
اعتقد ان الامر اصبح واضحا الان , ولكن هناك رموز اخرى كثيرة تساعدنا فى هذه العمليه سنتعرف عليها فى الفقره التاليه .
الــ Regular Expression Metacharacters
علامة الاستفهام ? – تعنى هذه العلامة احتماليه وجود الحرف الذى يسبقها او عدم وجوده نهائيا .
مثال – he?llo تقوم بعمل match لــ hello او hllo
مثال – pl?ay تقوم بعمل match لـــ play او pay
النجمه * asterisk – تعنى احتماليه تكرار الحرف الذى يسبقها اكثر من مرة او عدم وجوده نهائيا
مثال – lo?se تقوم بعمل match لـــ lse او lose او loose او looose او looooooose الخ …
علامه + – تعنى احتماليه تكرار الحرف الذى يسبقها اكثر من مرة او على الاقل وجودة مرة واحده
مثال – lo+se تقوم بعمل match لـــ lose او loose او looose او looooooose او الخ … (لا تقوم بعمل match لــ lse لانها تشترط وجود الحرف مرة واحده على الاقل)
زوج الاقواس {} – يستخدم هذا النوع لتحديد عدد تكرار حرف معين وذلك بادخال رقم داخله , وهذا الرقم يشير الى عدد مرات التكرار للحرف الذى يسبق القوس
مثال – l{3}ose تقوم بعمل match لـــ lllose
زوج الاقواس () – يقوم بتجميع عدد من الاحرف بداخله ليتم معاملتهم كانهم حرف واحد فقط
مثال – {4}(xyz) تقوم بعمل match لـــ xyzxyzxyzxyz (تم معامله ما داخل الاقواس كانه كيان واحد)
النقطة . – تشير النقطة انه من الممكن ان يكون مكانها اى حرف فيتم تجاهل اى شىء مكانها
مثال – h.t تقوم بعمل match لـــ hat او hot او hit او الخ ….
زوج الاقواس [] – تحديد عدد من الخيارات المتوقعه بداخله
مثال – [Aa] تقوم بعمل match لــ A او a
مثال – [Hh][Ee][Ll][Ll][Oo] تقوم بعمل match لـــ كلمه hello بجميع حالاتها سواء كانت capital or small
العلامه ^ مع زوج الاقواس [] – تساوى هذه العلامه كلمه NOT
مثال – [abc^] تقوم بعمل match لـــ اى حرف ماعدا a و b و c
العلامه ^ منفرده – تستخدم اذا اردنا عمل match لجمله او اى text يبدأ بكلمه معينه
مثال – hello^ تقوم بعمل match لاى سطر يبدأ بكلمه hello مثل hello sherif او hello ali او hello …. الخ
علامه $ – تستخدم اذا اردنا عمل match لجمله او اى text ينتهى بكلمه معينه
مثال – $xyz تقوم بعمل match لاى سطر ينتهى بــ xyz مثل aaaaaxyz او ggggxyz الخ ..
الشرطة “-” – تقوم بتحديد range معين
مثال – بدلا من كتابه [abcdef] يمكننا كتابه [a-f] تقوم بعمل match لاى حرف فى هذا الـ range
مثال – [9-1] تقوم بعمل match لــ اى رقم فى هذا ال range
علامه | – هذه العلامه تساوى كلمه OR
مثال – (magdy)|(sherif) تقوم بعمل match لـ كلمه sherif او magdy (لاحظ استخدام الاقواس)
مثال – [G-Z]|[a-f] تقوم بعمل match لاى حرف small من a الى f او حرف capital من G الى Z (لاحظ الفرق بين هذا النوع من الاقواس و النوع السابق)
اخيرا العلامة \ – هذه لها مدلول مختلف فهى تسمى “escape character” وتقوم بحذف اى معنى لاى metacharacter توضع قبلها
مثال – نريد ان تقوم بعمل match لــ IP address معين لنفترض مثلا 192.168.10.10 , المشكله هنا هو ان هذا string يحتوى على علامة مميزة بالنسبه للـ REG EXP و هى النقطة لذلك لكى نزيل معنى هذه النقطة و نجعلها مثل اى حرف اخر نفعل الاتى 10.\10.\168.\192 حيث قامت الـ \ بجعل النقظة مثل اى حرف اخر , ويمكننا استخدام هذه العلامة مع اى metacharacter اخرى لعمل match لاى نص يحتوى على احد هذه العلامات .
مثال مفصل 
الان ساقوم بشرح REGEX تقوم بعمل match لاى E-mail للتحكم بمدخلات المستخدم
[A-Z0-9a-z_]+@[Nn][Ee][Tt][Ww][Oo][Rr][Ss][Ee][Tt]\.(com)|(net)
نبدأ بالجزء الاول من الـ REGEX
[A-Z0-9a-z_]+
الاقواس من النوع [] تخبرنا انه يمكن اختيار اى شىء من داخلها
اى حرف من ال range الاول و هو من A الى Z
او
اى رقم من ال range الثانى و هو من 0 الى 9
او
اى حرف من ال range الثالث و هو من a الى z
او
علامة  _
بعد ذلك تاتى علامة الـ + تقول لنا انه يمكننا تكرار ما سبق على الاقل مرة واحده او اكثر وذلك لمنع المستخدم من تسجيل مدخلات فارغه , بعد ذلك يجب وجود علامة @ ثم كلمه network بجميع حالاتها ثم النقطة بعد ذلك وتم استخدام الــ \ ليتم معامله النقطة كانها حرف عادى ,اخيرا نترك خيارين فى النهايه وهو ان ينتهى بـ com او net باستخدام | التى تساوى OR .
تطبيقات الــ Regular Expression فى أجهزة Cisco
يوجد العديد من التطبيقات على أجهزة cisco يستخدم فيها الـ Regular Expression مثل
  • - تستخدم فى مواضيع معينه خاصه ببروتوكول BGP .
  • - تستخدم فى تطبيقات الجدران الناريه خاصه على ال ASA وتطبيق ما يسمى MPF .
  • - تستخدم فى MQC على روترات سيسكو .
  • - يستخدم فى تصميم ال Signatures على اجهزه ال IPS .
  • - يستخدم فى فلتره ملف الاعدادات خاصه فى الامر show run على اى جهاز cisco , فأثناء القيام بــ troubleshooting or verifying للاعدادات تحتاج الى تحديد مخرجات معينه للتركيز عليها , فبدلا من مشاهده ملف ال configuration كاملا , يمكننا تحديد جزء معين لنراه هكذا

و كما نرى يمكننا استخدام Regular Expression لتحديد مخرجات معينه
اترككم لتجربوا هذه الطريقه بانفسكم , فهى تسهل العمل اذا كان ال configuration file كبير الحجم .
وبالتوفيق للجميـــع ,,,



By sherif magdy
www.afinis.co.cc : المصدر
إذا أعجبك الموضوع اضغط هنا, أو ضع إيميلك هنا ليصلك كل الجديد


ضع تعليقك

0 commentaires:

إرسال تعليق

 
Copyleft © 2011. مدونة الهكر الاخلاقي العربي - All lefts Reserved
تعريب the3kira