أدوات المستخدم

أدوات الموقع


docs:tips_for_shell_script

اختلافات

عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.

رابط إلى هذه المقارنة

جانبي المراجعة السابقة المراجعة السابقة
المراجعة التالية
المراجعة السابقة
docs:tips_for_shell_script [2008/07/10 11:01]
alsadi
docs:tips_for_shell_script [2015/04/23 00:20] (حالي)
سطر 1: سطر 1:
 +{{tag>​مقالات مترجمة أمن دبش ​ shell script}}
 +~~ODT~~
 +====== سبعة نصائح لتحسين الامن في برامج الشيل ​  ​======
  
 +   * المؤلف :جيمس تيرنبول
 +   * ترجمة : زياد دبش
 +   * الموقع:​ http://​searchenterpriselinux.techtarget.com/​tip/​0,​289483,​sid39_gci1216976,​00.html
 +
 +برامج الشيل موجودة في كل مكان على منصات لينكس. مديري النظم يستخدمون برامج الشيل لادارة النسخ الاحتياطي ، تفريغ مجلدات /tmp  ، ورصد العمليات العاملة وتكوين حسابات المستخدمين ،هذا على سبيل المثال لا الحصر . ايضا بعض التطبيقات مكتوبة ببرامج الشيل ، وبعض المستخدمين يعتمدون على برامج الشل في التجهيز والتركيب او لاغراض الدمج. ​
 +
 +على الرغم من الاستعمال على نطاق واسع ،فأن العديد من برامج ​ الشل مكتوبة بدون النظر إلى الناحية الأمنية. والاسوأ من ذلك ، بسبب بعض نقاط الضعف الكامنة ومعقدة التركيب ، فأن كتابة برامج ​ شل امنة يمكن ان تكون صعبة . هذه الورقة سوف تقدم بعض النصائح البسيطة عن كيفية جعل برامج شل  آمنة قدر الامكان. ​
 +المعلومات الواردة في هذه الورقة هي برامجيات ​ شل العامة عبر عدة انواع (BASH, Korn, C-Shell, الخ) ويركز على القضايا الرئيسية فى امن برمجيات شيل ، بدلا من خصوصيات معينة في برامجيات الشل. ​
 +
 +===== ايلاء الاهتمام للملكيه ، والتنفيذ والصلاحيات =====
 +أول وأهم الاعتبارات الامنية في كتابة برمجيات الشل ليس كتابة النص بحد ذاتة بقدر الاهمام بمن يمتلكه و ينفذة .برمجيات الشل ​ و الاوامر التي تحتويها ​ تنفذ مع اذونات المستخدم التنفيذية ​ (بما فيها تصاريح المجموعة). ​
 +
 +فعلى سبيل المثال ، إذا كان المستخدم المنفذ هو الجذر ، فإن جميع الاوامر في النص سينفذ على هذا المستوى من السلطة. بالاضافة الى كونها خطرا على الامن ، وهذا يمكن ان يكون خطرا جدا اذا كان النص يحوي اخطاء او يعمل بطريقة غير متوقعة.كسوء استخدام امر ''​rm'' ​   كمستخدم الجذر يمكن ان  يسفر عن اضرار جسيمة. المستخدم ​ الجذربامكتنه ان يرى ويفعل كل شيء على ​ النظام ؛ بالنسبة للاغلبيه الساحقه لبرمجيات الشل (ان لم يكن كلها) ​ ، فان تنفيذها كمستخد الجذرما هو الا ​ الاستهتار بعينة. ​
 +
 +المستخدم من ينفذ برمجيات شيل ينبغي ان لا يمتلك صلاحيات ​ الا الصلاحيات اللازمة لاداء الاوامر المطلوبة والوصول الى الموارد اللازمة. كما وان انشاء البرمجيات التي تتطلب التنفيذ كمستخدم ​ الجذر هو ايضا غير محبذ. اذا كان شيء في النص الخاص بك  يتطلب صلاحيات الجذر ، حينها ​ اوصى في اعادة كتابة النص بلغة سي ،او ​ كحل اخير ، ا نظر الى أداة مثل ''​sudo''​. ​
 +
 +كما يجب عليك التأكد من ان الملكيه والصلاحيات الخاصة ​ بالنص ​ صحيحة. النص ينبغي ان يكون مملوكا من قبل المستخدم الناسب ( عموما المستخدم الذي ينفذ النص) ولديه صلاحيات مناسبة في المجموعة التي ينتمي اليها . عموما انها تحتاج الى تفعيل خانة التنفيذ في صلاحيات المجموعة . فعلى سبيل المثال ، في السطر التالي فان,​تفعيل خانة التنفيذ , هي محددة للمستخدم الذي يمتلك النص فقط :
 +<​code>​
 +# chmod u+x scriptname
 +</​code>​
 +وينبغي ايضا ان يكون ​ النص محدد الصلاحيات المناسبه لمنع المستخدمين غير المناسبين من  القراءة ، او تغييره او تنفيذة.
 +
 +<​code>​
 +# chmod 0700 scriptname
 +</​code>​
 +
 +===== لا أسرار في النصوص =====
 + ​يجب عدم وضع كلمات السر ، عبارات التمرير ، مفاتيح , او غيرها من '​اسرار البيانات ​ في برمجيات الشل . كثير من الناس يعتقدون خطأ ان وضع كلمات السر الصعبة في برمجيات الشل ​ (لا سيما النصوص التي ​ تستخدم لنقل الملفات او مزامنة البيانات بين منصات متعددة) هو حل جيد لضرورة الاتمتة او بدن تدخل طاقم التشغيل . ولكن هذا يعني أنك تعرض البيانات الى ان أي شخص يمكن أن يقرأ برمجيات الشل. ​
 +
 +''​ssh''​ يسمح باستخدام مفاتيح المرور ​ - مع قيود محددة، ولكن هذا لا يعني الا ​ التخفيف من الآثارالسلبية ​ ، وهذا يمثل خطرا اذ انه يمكن للمستخدم تسجيل الدخول الى منصات اخرى دون الحاجة الى ​ كلمة مرور او اليه توثيق اخرى. وثمة خيار اخر يمكن ان يكون استخدام أداة مثل ''​expect''​ ، وهي متاحة على معظم التوزيعات. ولكن مرة اخرى التحسين الذي توفرة هذة الاداة محدود. ​
 +
 +ومن الممكن التحويل (تغطية) برمجيات الشل الى ​ نظام ثنائي. هناك ادوات عديدة ،  يمكن تشفير والتحويل نصوص الشيل الى نظام ثنائي. Shc وهو حقيقة ليس مجمع ​ حقيقي ولكنه قد يخفي اي بيانات سرية في نصوص الشل. لكن تذكر ان اي شيء يمكن ان يشفر فمن المحتمل ​ جدا ان يعاد الى وضعه الاصلي. ​
 +
 +===== دائما حدد المسارا كاملا ؛ لا تضع المجلد الحالي ​ في المسار =====
 +تحديد المسار الكامل للأوامر ، أو غيرها من الملفات الثنائية او النصية يحد من المخاطر فمثلا احصنة طروادة يمكن ان تدرج في مكان ما من على المسار. والخطر من احصنة طروادة مازال موجود وذلك عن طريق وضع المجلد في المسار ، لاسيما اذا كان هذا الدليل هو دليل يحتوى على الصفحه الاولى وملفات نصية ​ اخرى . 
 +
 +يجب ان تنفذ برامج تثق بها من مجلدات محددة وموحدة ​ من  النظام. الطريق الاسلم هو عدم الثقة بالمسار الحالي المتغير وانما تحديد مسارات واضحة في البرنامج النصي. ​
 +
 +===== اعرف أين أنت وفي أي مسار بالتحديد =====
 +دائما تأكد انك تعرف اين انت في شجرة الملفات ؛ عادة عن طريق تنفيذ chdir في البرنامج النصي ​ . وهذا يحد من مخاطر اي مسارات ذات علاقة (والتي يجب ان لا تستخدمها باي حال) غير صحيحة ويضمن ان يتم تنفيذ الاوامر في السياق/​الموقع الصحيح. ​
 +
 +===== إثبات صحه اي من المدخلات والمخرجات =====
 +مثل غيرها من لغات البرمجه ، عليك دائما التحقق من صحة المدخلات ​ . اذا كانت المدخلات عدديه ، باطوال معينة و / أو في شكل معين ، ثم  تأكد من مقارنة استخدام جمل "​if” ​  او التعابير العاديه. التحقق من نتائج الاوامر ورموز الاخطاء لتلك الاوامر تولد الرموز لضمان انها تصرفت بشكل صحيح. وهذه ليست ممارسة البرمجه الجيدة لكنه ايضا جيد لكشف المدخلات و/ أو المخرجات المحتملة وغير الملائمة . 
 +
 +===== كن حذر من الوصلات الرمزية =====
 +حاول التأكد من ان اي ملف تحاول ان تقراءة اوالكتابة عليه او  تنفيذه هو ملف حقيقي وليس ارتباط رمزي. هذا يحد من مخاطر حقيقية فيما اذا كان ​ الملف قد استعيض عنه وأنت في هذة الحالة تحاول قراءة او كتابة ​ بيانات الى مكان خاطىء او اتجاه غير مناسب . 
 +
 +===== فكر قبل كتابة النص ، والتحقق من نصوص الاخرين ​ قبل استخدامها =====
 +كتابةبرنامج ​ شيل هو تماما مثل الكتابة باي لغة برمجة. فكر ​ قبل الكتابة. صمم البرنامج قبل ان تكتبه ،اجعل البرنامج يشتمل على طرق معالجة الاخطاء المناسبه ووثيق البرنامج بعناية. لا  تحمل او تنسخ ​ برنامج نصي للاخرين ​ دون ان تتأكد من انك تفهم النص وكل ما يفعله. ليس فقط ان البرنامج يمكن ان تحتوي على اخطاء ، ولكنها يمكن أيضا أن تكون خبيثة. ​
 +
 +اخيرا ، تذكر انه في بعض الاحيان برامج الشيل ليست هي الاداه الصحيحه. في بعض الحالات ، بدلا من عمل المستحيل لجعل برامج الشيل حل كامل وأمن وتعمل بكفائة ،  من المنطقي أن تنظر إلى غيرها من لغات البرمجه التي يمكن ان تخفف من مخاطر بعض النواحي الامنية دون الحاجة الى نفس القدر من الجهد والتصليح. ​
 +
 +===== عن المؤلف =====
 +
 +جيمس تيرنبول هوخبير في هندسة البنية التحتية ذي  خلفية ​ في لينكس ويونكس ، AS/400 ، والنوافذ ونظم التخزين. كان يعمل في مجال الاستشارات الامنية ، وتصميم البنية التحتية الامنية ، SLA وتعريف الخدمة ولديه اهتمام دائم ​ في معاير ومقايس الامن .
docs/tips_for_shell_script.txt · آخر تعديل: 2015/04/23 00:20 (تحرير خارجي)