Professional Documents
Culture Documents
ملخص
16نٌسان 2009
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
لمحة..
فً هذا العصر ,عصر المعلومات ,وبعد انتشار تقنٌة المعلومات واالتصاالت اصبح هناك ماٌسمى بـ , global vision
ومعنى ذلك توجه النظرة نحو العالمٌة globallyبعد ان كانت محلٌة locallyوذلك قبل ظهور الشبكات واالتصاالت
الحدٌثة ,حتى أنه اطلق على العالم اآلن وصف "القرٌة الصغٌرة".
قدٌما ًا ,كانت هذه النظرة مقتصرة على أشخاص محددٌن دون غٌرهم ,ولكن ومع استمرار التطور فً مجال المعلومات
واالتصاالت أصبح من الالزم للجمٌع استخدام هذه التقنٌة وأن تتؤقلم مع الشكل الجدٌد للحٌاة
أما الشركات فقد اصبح لزاما ًا علٌها أن تستخدم هذه التقنٌة لتبقى ضمن جو المنافسة ,التً اقتصرت سابقا ًا على نطاقات
محلٌة ,لتتوسع هذا النطاق اآلن لٌشمل العالم بؤسره!
كل ذلك صب فً مصلحة الجمٌع ,حٌث أصبح باالمكان ألي شخص من خالل شبكة االنترنت أن ٌحصل على ماٌرٌده مهما
كان ذلك بعٌداًا عنه ,فعامل "المسافة" اآلن قد الغً من قائمة "التحدٌات" التً كانت تواجههم.
اآلن ,أصبح أهم وأكبر تحدي للشركات حالٌا ًا ه و كٌف ستحافظ على مكانها التنافسً فً السوق العالمً باالعتماد على هذه
التقنٌات للتفوق فً تحقٌق المثالٌة المطلوبة وذلك على الصعٌد االداري واالنتاجً على حد سواء.
إن "أمن المعلومات" – " "information securityهو علم حدٌث فً مجال تقنٌة المعلومات ظهر لٌكون مسإوالًا عن
حماٌة المعلومات وحماٌة انظمة المعلومات " "information systemsم ماٌسمى بـ "قرصنة المعلومات" –
" "information hackingوهً ماٌشمل :
ًا
اضافة لمحاوالت التخرٌب والتدمٌر. محاوالت الدخول أو االستخدام غٌر المصرح به,
2
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
كان ظهور أول شبكة الكترونٌة موسعة على مستوى المدن فً ستٌنٌات القرن العشرٌن ممثلة بشبكة الهواتف االلكترونٌة
بداٌة لعصر الشبكات والمشاركة المفتوحة .
انتشار واسع ألساليب جديدة في القرصنة بشكل مطرد وظهور طرق للتصدي :
فً ثمانٌنٌات القرن الماضً بدأ انتشار القرصنة االلكترونٌة باالزدٌاد مع مرور الزمن متوازٌا ًا مع انتشار الحواسٌب
وتطورها المستمر و ظهور تقنٌات جدٌدة فً مجال االتصاالت والشبكات حٌث التطور بالسرعة العالٌة والكلفة األقل مما
زاد من عدد المستخدمٌن لهذه التقنٌات ومنها االقبال الكبٌر على شبكة االنترنت العالمٌة .
فً تلك الفترة لم ٌكن هناك اي اهتمام او اخذ بالحسبان لهذا التحدي الجدٌد ,حٌث لم تتخذ فً ذلك اي اجراءات مناسبة تطبق
على المعدات التً ٌتم وضعها فً الشبكة ,مما أدى اال حصول كوراث كبٌرة لشركات اعتمدت على االنترنت كجزء أساسً
من عملها ,فكانت محاوالت النهب والسلب او التدمٌر لتلك المواد.
سرق
ة اع غٌر مسبوق لنسبة
وكان أكثر من تضرر الشركات المصرفٌة حٌث سجلت االحصائٌات فً تلك الفترة عن ارتف
بطاقات االئتمان وكان %90من هذه السرقات تتم من خالل شبكة االنترنت.
حٌنها بدأ التفكٌر جدٌا ًا فً خطورة هذا التحدي وأضحى من الضروري لهذه البنوك والشركات العالم ة
ي ع لى الشبكة
ي ان تفرض اجراءات وقائٌة أمنٌة وبجدٌة عالٌة لكل ما تملكه على الشبكة .
العنكبوتة
فً هذه الفترة ظهرت اولى االجراءات الوقائٌة ضد القرصنة االلكترونٌة ,سوف ٌكون التكلم عن هذه االجراءات محور
حدٌثنا فً هذا المقال.
3
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
هذه االجراءات تعتبر من ابجدٌات العمل بالنسبة للعاملٌن فً مجال ادارة الشبكات واالتصاالت.
بما أن أكثر السٌرفرات المستخدمة فً مخدمات المواقع االلكترونٌة تعتمد على انظمة تشغٌل Linuxو Unix
لقوتها ودعمها الكبٌر الجراءات الحماٌة ,اصبح من الالزم علٌنا التركٌز علٌها فً موضوعنا ,بٌد أن األساس
واحد بالنسبة لجمٌع أنواع أنظمة التشغٌل
عندما تضع ملفا ًا ما على شبكتك الداخلٌة باعطائه خاصٌة المشاركة ,sharingتجد أنه البد لك أن تعطً لهذا الملف
خصائص تحدد العملٌات الممكن اجراءها علٌه ,وهذا األمر هو ماٌسمى بالصالحٌات المحددة للملف.
صالحٌة القراءة :حٌث تعطى للمجلدات لجعله قابل للدخول ومشاهدة محتواه ,وباعطاءه للملف ٌصبح باالمكان
نسخه او قراءة محتواه.
ات ًاة
قابل الضافة محتوٌات داخلها أو حذفها ,كما تعطى لملف صالحٌة الكتابة :هذه الخاصٌة ُت
تحدد للمجلدات لجعلها
لجعلهل ًاة
قابل للتعدٌل علٌها.
صالحٌة التنفٌذ :تمنح هذه الخاصٌة للملفات التنفٌذٌة لتكون قابلة للتشغٌل والتنفٌذ.
4
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
حٌث ٌ permissionشٌر للصالحٌات الموكلة للملف او الدلٌل ,وهناك طرٌقتٌن لكتابة الصالحٌات :
فمثالًا العطاء الملف file.exeامكانٌة القراءة والتنفٌذ مع اعطاء الملكٌة للجمٌع يكون األمر :
chmod a+rx file.exe
ولتمثٌل الملكٌة جعلت لكل من األنواع الثالث (الكل,المستخدم,المجموعة) خانة خاصة بها ,بحٌث :
واذا اردناها للمستخدم الحالً مع اعطاء امكانٌة التنفٌذ للبقٌة ٌصبح األمر :
Chmod 151 file.exe
وهكذا ..
طرٌقة الملكٌة ٌتم من خاللها اعطاء كل مستخدم او مجموعة مستخدمٌن ملكٌات خاصة بهم بحٌث ٌحدد لكل فرد او
مجموعة أفراد صالحٌات معٌنة بحسب الوظٌفة الموكلة له .
5
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
ٌستخدم هذا المستوى إذا ما أردنا منح مجموعة كاملة نفس صالحٌات الملكٌة لجمٌع اعضاءها.
فمثالًا فً أحد شركة ٌوجد لدٌها قسم للموارد البشرٌة ,فلو أردنا لجمٌع المستخدمٌن او الموظفٌن العاملٌن فً هذا القسم أن
ٌكون لهم نفس الصالحٌات فً الدخول الى الدلٌل /Employersفً المخدم والمخزن علٌه سجالت الموظفٌن فً الشركة
بغٌة التعامل معها
وضعنا الرمز Rلتنفٌذ األمر بشكل عودي لجمٌع األدلة الفرعٌة والملفات داخله
ومن ثم ننفذ األمر chmodلمنح امكانٌة قراءة المجلد من قبل هذه المجموعة :
Chmod 400 /Employers
المستوى السابق كما الحظنا ٌطبق على مجموعة كاملة ,لكن ماذا لو كان األفراد فً هذه المجموعة لهم تخصصات مختلفة
داخل نفس القسم ,أو أن أحدهم لدٌه رتبة أعلى من غٌره.
ئ نحتاج لمستوى أخفض وهو مستوى المستخدمٌن ,بحٌث ٌتم اعطاء كل مستخدم ملكٌة خاصة تكون مضافة لملكٌة
حٌن ٍذذ
المجموعة األكبر (ولٌست بدٌلة عنها).
6
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
بالعودة للمثال السابق ,رئٌس قسم الموارد البشرٌة ٌملك صالحٌات اضافٌة وهً امكانٌة حذف او تعدٌل مابداخل الدلٌل
ٌ , /Employersصبح األمر حٌنها بهذا الشكل:
Chown –R 500:Department /Employers
ّق
تبقى إعطاء هذا المجلد امكانٌة التعدٌل من قبل رئٌس القسم
Chmod 460 /Employers
فً حال أردنا لمجلد ما متاح للضٌف نستخدم الكلمة المحجوزة nobody
مثال:
Chown nobody /tmp
جدار الحماٌة أو الجدار الناري عبارة عن مجموعة متكاملة من اجراءات الحماٌة المصممة لمنع الدخول غٌر المجاز الى
الشبكة أو النظام المطبق علٌه.
جدران الحماٌة هً إما أن تكون أجهزة مادٌة أو برمجٌات ,وجمٌع هذه األنواع هدفها األساسً رفض الغٌر المصرح له
بالدخول.
هذا االجراء ٌعتبر من أهم االجراءات الواجب اتخاذها خاصة عند العمل داخل األنظمة الشبكٌة ومنها الشبكة العالمٌة
"االنترنت"
ومن أشهر الجداران النارٌة المستخدمة فً االنترنت عبارة عن برمجٌات بسٌطة تعمل على انظمة Linuxوتدعى بـ
. htpasswd
هذا الملف ٌمكن كتابته بواسطة أي محرر نصً ومن ثم ٌحفظ بالحقة " htpasswd.دون اعطائه اي اسم" بعد ذلك ٌتم
وضعه فً المكان "مجلد" المراد تطبٌق هذا االجراء علٌه وعند الدخول الى هذا المجلد سوف تظهر رسالة تطلب ادخال اسم
المستخدم وكلمة المرور.
7
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
- 2نبدأ بالخطوة األولى 1. .htaccess Toolسنجد هناك عدة خٌارات لنؤخذ الخٌار األساسً لدٌنا وهو Password
,Protectionنقم باختٌاره ومن ثم بؤسف هذا الجدول نضغط على زر create itلتظهر صفحة فٌها مجموعة
من أسطر اوامر ننسخها بملف نصً ومن ثم نحفظها على هٌئة htaccess
- 3ننتقل اآلن للخطوة الثانٌة 2. .htpasswd Toolسنجد حقلٌن األول usernameحٌث اسم المستخدم والثانً
passwordحٌث كلمة السر ,هناك عدة أسطر فً حال أردنا صنع عدة حسابات وٌمكن االكتفاء بحساب واحد,
بعد االنتهاء نضغط على زر create itوستظهر صفحة تحوي االسم ومن ثم كلمة المرور مشفرة بمقٌاس DES
ننسخ المحتوى فً ملف نصً ونحفظه على هٌئة htpasswd
- 4فً النهاٌة نضع هذٌن الملفٌن فً الم كان المراد حماٌته بالجدار الناري.
من أخطر نقاط الضعف التً ٌمكن للمخترق استغاللها فً الوصول والسٌطرة على النظام هو الثغرات األمنٌة للبرمجٌات
والتطبٌقات المستخدمة فً ذلك النظام .
حالٌا ًا هناك الكثٌر من الثغرات ٌتم اكتشافها ٌومٌا ًا لمختلف برمجٌات السٌرفرات والمواقع ونجد ذلك جلٌا ًا فً مواقع مختصة,
مثل الموقع www.securityfocus.com
ماهي الثغرات ؟
الثغرة البرمجٌة هً ضعف امنً فً النظام ,هذا الضعف ٌجعل من ذلك النظام قابالًا لالستغالل "."Vulnerability
ٌمكن الثغرات األمنٌة بشكل عام اعتماداًا على أخطاء أو عٌوب أو رسائل خارجة عن صائد األخطاء .Error Exception
عملٌا ًا ,هذه األخطاء تظهر للعٌان عن طرٌق االتصال بالبرنامج بواسطة البورت المخصص له فً السيرفر والذي ٌعمل من
خالله ,من ثم ترسل شٌفرات خاصة تإثر فً عمل التطبٌق بحٌث ٌظهر الخطؤ البرمجً .
8
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
اظهار األخطاء البرمجٌة هً من أهم الخطوات التً تساعد المخترق على اكمال استغالله للبرنامج بالشكل المطلوب
تدعى هذه األخطاء بـ Input validation errorsأي اخطاء االدخاالت المإثرة .
تتنوع هذه االدخاالت "الشفرات" تبعا ًا لتنوع اللغات البرمجٌة التً تكتب بها وغٌرها من األمور سنذكرها االن.
ٌعتمد استغالل هذه الثغرات على تنفٌذ اكواد برمجٌة من خالل احد نوعً ارسال البٌانات للتطبٌق " "GET , POSTوهذه
األكواد ٌختلف نوعها باختالف اللغة البرمجٌة للملف المصاب اضافة لنوع نظام التشغٌل الذي ٌعمل علٌه و نوع قاعدة
البٌانات المتصل بها .
فً هذه الثغرة ٌتم تنفٌذ تعلٌمات لغة االستعالمات البنٌوٌة SQLالخاصة بالتعامل مع قواعد البٌانات من جلب واضافة
وتعدٌل وحذف سجالت ,انشاء وحذف بنى معطٌات.
هناك الكثٌر من طرق الحماٌة من ثغرة حقن االستعالمات وجمٌعها ٌعتمد على مبدأ فلترة المدخالت ,أي أن أي قٌمة قبل أن
تدخل فً االستعالم ٌجب أوالًا أن تمرر على عملٌة فلترة من أي مدخالت ممنوعة . illegal input
سنذكر طرٌقتٌن للحماٌة وجدتها األفضل واألسهل ,الطرٌقة األولى هً للقٌم الرقمٌة , integerالثانٌة هً للتعامل مع القٌم
المحرفٌة . string
9
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
حٌث ٌعرض مجموعة من عناوٌن المقاالت وبالضغط على اي رابط,لدٌنا تطبٌق لعرض مجموعة من المقاالت فً الموقع
ٌتم عرض المقالة فً الصفحة وٌتغٌر الرابط تبعا ًا لرقم المقال
1 <?php
2 $dbc=mysql_connect('localhost','root','toor');
3 $sql=mysql_select_db('articldb',$dbc);
4 ?> <!-- ########### Start Articles List########### -->
5 <table align="left" border="0"><tr><td colspan=2><h2>Article's List</h2></td></tr>
7 <?
8 $res=mysql_query("select * from articles");
9 while($row=mysql_fetch_row($res)){
10 ?>
11 <tr><td><? echo "$row[0]"; ?></td>
12 <td><a href="inject.php?id=<? echo "$row[0]"; ?>"><? echo "$row[1]"; ?></a></td>
14 <tr><? } ?></table><!-- ########### End Articles List ########### -->
15 <?php // ########### Start Selected Article ###########
16 if(isset($_GET['id'])){
18 while($data=mysql_fetch_object($res)){
19 echo"$data->title";?></td></tr>
21 <? echo"$data->content";?></td></tr>
10
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
و نالحظ بؤن تحدٌد رقم المقال اعتمد ع الرقم المرسل من الرابط URLبالتالً أصبح اي ادخال لعالمة او تعلٌمة خاصة
بلغة SQLسوف تصل للقاعدة وبالتالً حصول التؤثٌر المطلوب .
فلو فرضنا أننا ادخلنا التعلٌمة and 1=0فً الرابط بهذا الشكل
http://site.com/file.php?id=1 and 1=0
والنتٌجة هو عدم ظهور اي مقالة بسبب التعلٌمة and 1=0التً تعٌد falseدوما ًا
تعتبر هذه الخطوة أساسٌة بالنسبة للمخترق لٌكشف الثغرة فً الموقع اذا كانت موجودة أم ال
بعد ذلك ٌمكن للمخترق أن ٌشكل استعالم خاص به ٌدخله مع ] $_GET[idمن خالل الرابط وبالتالً جلب على اي شًء
من القاعدة.
لحماٌة الكود من هذا النوع نستخدم دالة )( intvalووظٌفتها الحصول على الرقم الصحٌح Integerمن المتحول المدخل,
فلو تم ادخال القٌمة 11abcdفسوف نحصل على القٌمة ,11وكذا لو ادخلنا القٌمة 3.5لنحصل على القٌمة ,3وهكذا ..
لنعد للمثال ,القٌمة المستخدمة عددٌة ,اذا نستطٌع أن نضٌف قبل السطر 17السطر التالً :
;)]$id=intval($_GET[id
11
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
لنفرض تطبٌقا ًا آخر ٌتعامل مع السالسل المحرفٌة ولٌكن لوحة تسجٌل دخول ٌحوي حقلٌن األول السم الحساب والثانً للرقم
,السري
: ًالكود كالتال
9 $sql=mysql_select_db('test',$db);
12 if($_POST['query']){
14 else{
18 if($num > 0){ // a record that similar to the submitted information is exist
20 exit;}
12
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
السطر المصاب 15و 16حٌث استعالم جلب السجل الذي ٌطلب تطابق المعلومات المدخلة فً لوحة التسجٌل مع تلك التً
فً قاعدة البٌانات .
لنفرض اآلن أن المخترق ادخل هذا الشًء ' or '1'='1فً حقل االسم وحقل كلمة السر ,لنرى كٌف سٌكون منظره فً
االستعالم :
'select * from login where adm_uname='' or '1' = '1' and adm_upass='' or '1' = '1
انظر فً االستعالم جٌداًا وسوف تالحظ أنه صحٌح ,بعبارة أخرى شرط السطر 18سٌتم عبوره بنجاح وظهور رسالة
الترحٌب ,أي تخطً اللوحة !
الدالة التً تقوم بهذه المهمة تدعى ,mysql_escape_stringحٌث وسٌط هذه الدالة هو النص الذي ٌحوي عالمة الـ
, quotesوٌعود بالنص بعد تطبٌق الفلترة.
لنعد لتطبٌقنا حٌث تشغٌل هذه الدالة على السطر 10لٌصبح كالتالً :
13
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
هذه الثغرة ال تقل خطورة عن ثغرة حقن االستعالمات حٌث ٌمكن للمخترق من خاللها تنفٌذ الكثٌر من الخطط مثل سرقة
الكوكٌز أو بناء صفحة مزٌفة أو تطبٌق أكواد خبٌثة تخرب الصفحة أو تغٌر من محتوٌاتها.
لنفرض محرك بحث فٌه حقل تضع فٌه العبارة المراد البحث عنها وبالضغط على الزر تظهر رسالة كهذه :
ٌمكنه اآلن أن ٌقوم بالكثٌر من األمور كما قلنا ال ٌسعنا ذكرها اآلن
الفكرة األساسٌة لجمٌع طرق الحماٌة من هذه الثغرة هً فلترة أي عالمة ذات تؤثٌر برمجً سواء بلغة Javascriptاو
.html
14
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
فً لغة phpتوجد دالة تقوم بتحوٌل هذه الرموز الى الشكل الموافق بالصٌغة العشرٌة.
تدعى هذه الدالة )(.htmlentities
والنتٌجة :
;Your search for '" ) alert( &aposHello admin ! &apos) </b>
script> <! - -' returned the following results:
الكود كما الحظنا ظهر بعد التشفٌر دون أن ٌفسر من قبل المتصفح
اذا كانت الحقنة محصورة داخل وسم ,spanفالمخترق ٌمكنه حقن الكود التالً:
Onclick=document.cookie
15
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
: داخل الكود
…….. <span onclick=document.cookie >……….
علىjavascript اذا فً هذه الحالة نحن بحاجة ألن نصمم دالة خاصة بنا نقم فٌه بتحوٌل التعلٌمات المإثرة الخاصة بلغة
الموجودة ضمن لغةreplace سنحتاج فً التحوٌل الى الدالة,وجه الخصوص الى الشٌفرة الموافقة لتعطٌل ذلك التؤثٌر
: javascript
1 <script type="text/javascript">
2 function killXSS() {
3
4 var text = document.getElementById('secure').innerHTML;
5 text = text.replace(/\n/m,"<br>");
6 text = text.replace(/\r/m,"<br>");
7 text = text.replace(/\<s/gi,"<s"); // stop <script and <style
8 text = text.replace(/\<i/gi,"<i"); // stop <iframe and <import
9 text = text.replace(/\<o/gi,"<o"); // stop <object
10 text = text.replace(/\<e/gi,"<e"); // stop <embed
11 text = text.replace(/\<l/gi,"<l"); // stop <link
12 text = text.replace(/\<m/gi,"<m"); // stop <meta
13 text = text.replace(/\<f/gi,"<f"); // stop <frame
14 text = text.replace(/on(.*)\b[(.*)=]/gi,"");
15 text = text.replace(/eval\((.*)\)/gi, "");
16 text = text.replace(/\(/g,"("); // (
17 text = text.replace(/\)/g,")"); // )
18 text = text.replace(/\:/g,":"); // :
19 text = text.replace(/\@/g,"@"); // @
20 text = text.replace(/\=/g,"="); // =
21 text = text.replace(/\</g,"<"); // <
22 text = text.replace(/\>/g,">"); // >
23 document.getElementById('secure').innerHTML = text;
24 }
25 </script>
16
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
تعتبر هذه الثغرة األخطر من ناحٌة سهولة التنفٌذ وخطورة النتائج ,حٌث تمكن المخترق من استعراض مجلدات وملفات
موجودة ع المخدم اٌا ًا كان مكانها.
ٌمكن من خالل هذه الثغرة تخطً الموقع الحالً والدخول الى أدلة أخرى فً المخدم
ملف الحسابات ,/etc/passwdالذي ٌحوي مسارات واسماء حسابات أصحاب المواقع فٌستفٌد منها المخترق فً القٌام
بالتخمٌن بواسطة ادوات خاصة لكشف كلمات السر لهذه الحسابات ..تسمى هذه العملٌة ب . Brute Force
ملف الشادو ,/etc/shadowوٌحوي أسماء الحسابات مع كلمات السر مشفرة بمقٌاس ٌ ,DESمكن للمخترق أن ٌستخدم
برامج خاصة لفك التشفٌر .
ملفات الجدران النارٌة ,.htpasswdحٌث ٌمكن تخطً هذه الملفات بسهولة وحتى ٌمكن قراءة محتواها ,أي االسم
وكلمة المرور المشفرة بمقٌاس .DES
اضافة لملفات أخرى قد تحوي معلومات هامة مثل ملفات االتصال بقاعدة البٌانات التً تحوي على اسم وكلمة مرور االتصال
بقاعدة بٌانات السٌرفر ونحوها.
لنفرض فً احد المواقع ٌوجد عرض كتب الكترونٌة حٌث ٌتم عرضها من الموقع مباشرة بحٌث شكل الرابط كالتالً:
http://site.com/files.php?get=ebook.pdf
المبرمج سوف ٌطبق هذا االسلوب بواسطة دالة )( includeفً لغة phpووظٌفتها استٌراد ملفات خارجٌة اٌا ًا كان امتدادها.
17
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
1 <?php
2 ;) include ( "/home/users/public_html/pdfiles/" . $pdfile_include
3 >?
فً هذا الكود ٌتم استٌراد الملفات داخل الدلٌل pdfilesباالعتماد على القٌمة المسندة الى المتغٌر $pdfiles
مثال :
http://site.com/files.php?pdfile_include=security.pdf
هنا تكمن الثغرة ,حٌث ٌمكن التحكم بمحتوى هذا المتغٌر كٌفما نرٌد فمثالًا ٌمكن أن نستعرض أي ملف حتى لو كان خارج
المسار المحدد ,وهنا ٌتم االعتماد على العالمة ../التً تساعدة فً الخروج من المسار الحالً
هذه القٌمة ستدخل فً المتغٌر pdfile_includeومن ثم الى الرابط المحدد ضمن )( includeلٌتشكل المسار :
/home/users/public_html/pdfiles/../index.php
وهذا ٌكافئ:
home/users/public_html/index.php
اذا ٌمكن للمخترق اٌضا ًا أن ٌعرض أي ملف فً المخدم اٌا ًا كان مكانه باالستفادة مما سبق.
18
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
http://site.com/files.php?pdfile_include=../../../../etc/passwd
وهكذا..
وتعبر هذه الثغرة أخطر من السابقة ,وٌعود ذلك فً امكانٌة استدعاء وتشغٌل ملفات من خارج النظام فً هذا النوع.
أما برمجٌا ًا فتختلف هذه عن سابقتها فً كون دالة االستٌراد تستقبل متغٌراًا فً بداٌتها وهذا ٌكفً ألن ٌصبح باالمكان استٌراد
ملفات من الخارج سواء تم تحدٌد مسار بعد المتغٌر أم ال ألنه باالمكان الغاء ماسٌؤتً بعده ا بوضع عالمة ? او عالمة
" %00تكافئ برمجٌا ًا الكلمة . "Null
1 <?php
2 ;)"include ($pdfile_include . "/home/users/public_html/pdfiles/
3 >?
كما الحظنا تعدٌالًا بسٌطا ًا على المثال السابق ٌعنً تغٌر فً نوع الثغرة من مستوى الى مستوى هو األعلى واألعنف على
االطالق .
19
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
الحظنا فٌما سبق أن المخترق اعتمد على نقطتٌن رئٌسٌتٌن وهما :
- 1استخدام متغٌرات عامة Global variableغٌر محددة عند التعامل مع دوال االستٌراد .
- 2استخدام العالمة ../للتنقل فً المخدم بحرٌة .
استٌعاب تلك النقاط ٌساعد المخترق كما ٌساعد مإمن الموقع على حد سواء.
أفضل اسلوب ٌتبع للتصدي لتلك النقاطهو تثبٌت اسماء الملفات والمجلدات المراد استٌرادها
ولجعل األمر أكثر دٌنامٌكٌا ًا ٌمكن مثالًا تسمٌة الملفات بهذا الشكل file_1.pdf , file_2.pdfوهكذا بحٌث نثبت هنا
جزء ونغٌر فً الجزء الثانً والنتٌجة نفسها اي الحصول على الملفات المطلوبة ,نالحظ فً هذه االسماء ان المتغٌر هنا
الترقٌم والثابت الكلمة _ fileواالمتداد pdf
بالتالً نجعل هذا الرقم هو الوحٌد المسند للمتغٌر ,ونبثت الباقً ,اٌضا ًا هنا ٌمكن استخدام الدالة )( Intvalلقصر أي قٌم ة
داخله لتبقى رقمٌة وحٌنئ ٍذذ ٌستحٌل تغٌٌر المحتوى الى غٌر الملفات المطلوب عرضها.
1 <?php
2 ;)"include ("/home/users/public_html/pdfiles/file_" . intval($pdfile_include) . "pdf
3 >?
20
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
أسرد لكم ماجتهدته من نصائح تعتبر من األبجدٌات التً على الشخص أن ٌتعلمها وأن ال ٌغفل عنها لضرورتها فً حماٌة كل
ماٌخصك من معلومات ومقتنٌات ضد أي هجوم أو استهداف خارجً .
)1الحرص على وضع الملفات الهامة أو الخاصة فً أماكن بعٌدة عن اي اتصال خارجً (كالمشاركة المحلٌة ,sharing
أو المجلدات المعروضة على ,)ftpواذا احتاج األمر فالضٌر من اقفال هذه المجلدات بكلمة مرور (كاستخدام الجدار
الناري).
)2االنتباه من وجود برامج ضارة على الجهاز الخاص من فٌروسات أو تروجونات أو ملفات اتصال عن بعد .
)3تحمٌل برنامج internet securityالذي ٌعتبر حالٌا ًا أفضل من برامج anti-virusلوجود خاصٌة مراقبة البٌانات
الداخلة والخارجة ومراقبة البورتات المفتوحة فً الحاسب المتصل بشبكة سواء محلٌة أو شبكة االنترنت ,كم ٌنصح
بشدة التحدٌث الدوري لهذا البرنامج .
)4االنتباه من وجود اي ثغرات أمنٌة فً موقعك الخاص أو حتى السٌرفر المستضٌف لك وٌنصح االستعانة بشركة مختصة
لفحص الثغرات .
)5من األفضل أن تتابع األخبار األمنٌة المتعلقة بآخر الثغرات والفٌروسات ونحوه ,والطرق الجدٌدة والتحذٌرات المتبعة
للحماٌة من هذه األمور .
)6الحرص على عدم قراءة الرسائل المجهولة القادمة الى برٌدك االلكترونً فبعضها قد ٌعرض برٌدك أو حتى حاسبك
للخطر .
)7القٌام بالنسخ االحتٌاطً المستمر لملفات حاسبك وموقعك تحسبا ًا ألي طار ٍذ
ئ ٌؤتٌك من حٌث ال تعلم .
)8الحذر من أسلوب ٌدعى Social Engineeringوهو أحد طرق واسالٌب المخترقٌن التً تعتبر األخطر على االطالق
ألنها ال تعتمد على ثغرة برمجٌة أو برمجٌات خبٌثة ,بل تعتمد على خداع الضحٌة والحصول على المراد منه ,وهنا
ٌرجع لطرق كثٌرة فً هذا النوع من االختراقات توصف بعضها بالخطٌرة للغاٌة نظراًا لنجاحها مع الكثٌر من الحاالت
خاصة الشركات ,والشركات الضخمة منها.
21
www.7rs.cc security@7rs.cc
7rs Group| 4Best Security مجموعة حرس الحدود| لحماية أفضل
References:
http://en.wikipedia.org universal encyclopedia
http://www.owasp.org open community for webapp security
http://sla.ckers.org Security Forum
http://www.acunetix.com/websitesecurity specialist of security issues
22
www.7rs.cc security@7rs.cc