المكتبة الأمبوابة البحث والمعرفة
زائر للمكتبة—
← العودة إلى المكتبةقراءة أو تحميل الكتاب

أمن المعلومات وإدارة مخاطر تقنية المعلومات

غير معروف

صفحة ٣٦ من ٤٩

البرمجة النصية لقشرة نظام التشغيل أمن المعلومات وإدارة مخاطر تقنية المعلومات56( :)قائمة bin/bash for number in }1..5{ do if [ $number -eq 4 ] then echo »Stop!« break fi echo »$number« done echo »This command runs AFTER the loop is complete.« [alice@sunshine ~]$ /opt/book/scripting/break_example 1 2 3 Stop! This command runs AFTER the loop is comp lete. لاحظ أنه تمت معالجة الحلقة كما هو متوقع وذلك للأرقام الثلاثة الأولى من السلسلة فقد تم عرض كلمة)number –e q4 ( )if في جملةط�فعندم break الشاش�ع الأرقام وذلك لإعطاء نالحلقة. وفي مثال آخر س الرقم الصحيح. ن الرقم ويتوقف إذا تم تخمنالمستخدم خمس فرص لتخم

عدد الصفحات ٥٦٢

الفصل العا 562 :)قائمة bin/bash number=$)) ) $RANDOM % 100 ( + 1 (( #Give the user 5 guesses for loop in }1..5{ do #Prompt for user input echo »Enter a number between 1 and 100 and press [ENTER]: « read guess echo »« #Is the guess correct? if [ $guess -eq $number ] then echo »Correct guess: The number is $number« echo »You guessed it in $loop tries« break # Is the guess high? elif [ $number -lt $guess ] then echo »Guess number $loop« echo »Guess lower: The number is less than $guess« # Is the guess low? elif [ $number -gt $guess ] then echo »Guess number $loop« echo »Guess higher: The number is greater than $guess« fi end [alice@sunshine ~]$ /opt/book/scripting/number_guess_v4 Enter a number between 1 and 100 and press [ENTER]: 15 Guess number 1 Guess lower: The number is lower than 15 Enter a number between 1 and 100 and press [ENTER]: 3 Guess number 2 Guess higher: The number is higher than 3 Enter a number between 1 and 100 and press [ENTER]: 5 Correct guess: The number is 5 You guessed it in 3 tries

عدد الصفحات ٥٦٣

البرمجة النصية لقشرة نظام التشغيل 563 ) فتقوم بتجاوز الأوامر المتبقية في الدورة الحالية منأما الكلمة المفتاحي الحلق ) لكن سنقوم باستخدام الكلمة المفتاحية(8لقائمة break( قائمة bin/bash for number in }1..5{ do if [ $number -eq 4 ] then echo »Stop!« continue fi echo »$number« done echo »This command runs AFTER the loop is complete.« [alice@sunshine ~]$ /opt/book/scripting/continue_example 1 2 3 Stop! 5 ويعمل هذا الأمر بعد اكتمال الحلقة

عدد الصفحات ٥٦٤

الفصل العا 564 ن مخرجات النص البرمجي في قائمة� مخرجات هذا النص البرمجي وبنلاح طث الأولى مرة أخرى كما هو متوقع، كما تم تحقيق شر���تم .)(8( جمل الخامسة (والأخيرة) من الحلقة. حلقات ً م �� ب . وقبل البدء في دورة الحلقة يتم ن معط) تسwhile( صحيحاً فإنه يتم تنفيذ الأوامر داخل الحلقة. أما إذا كانط . فإذا كان الشرطاختب خاطئاً فإنه يتم تجاوز الحلقة، ويتم تنفيذ ما تبقى من النص البرمجي. قائمة bin/bash counter=1 while [ $counter -le 5 ] do echo $counter $)) counter=$counter + 1 (( done [alice@sunshine ~]$ /opt/book/scripting/while_loop_example1 1 2 3 4 5 وكما ترى فإن مخرجات هذا الأمر مشابهة لمخرجات بعض أمثلة الحلقات التي عرضناها س أنه وعلى عكس اس counter(

عدد الصفحات ٥٦٥

البرمجة النصية لقشرة نظام التشغيل 565 )، يتBashة نظام التش�عندم الحالية للعداد. فإذا كانت أقل من أو تس الحلق بواح ثانية وإذا كانت قيمته أقل من أو تساوي وعند كتابة نص برمجي قد تحتاج لإنشاء حلقة لا نهائية، وهي حلقة تستمر حتى يقوم المس الذين قاموا بتسجيل الدخول. ويمكن نفترات منتظمة مثل حجم الملف، أو عدد المستخدم طإنش دا الس الملف وحجم ملف الس عاً أو عن طريق إغلاق بالخروج منه إما عن طريق الضغط على مفتاحي النافذة الطرفية التي يعمل فيها النص البرمجي.

عدد الصفحات ٥٦٦

الفصل العا 566 :)قائمة bin/bashecho »This script will loop forever. Hit Control+C )CTRL+C( to exit.«while [ true ]do sleep 2 echo »« date echo »$)wc -l /var/log/httpd/access_log(«done [alice@sunshine~]$ /opt/book/scripting/while_loop_example2This script will loop forever. Hit Control+C )CTRL+C( to exit. Fri Jan 4 08:11:00 EST 2013 7 /var/log/httpd/access_log Fri Jan 4 08:11:02 EST 2013 7 /var/log/httpd/access_log Fri Jan 4 08:11:04 EST 2013 8 /var/log/httpd/access_log Fri Jan 4 08:11:06 EST 2013 9 /var/log/httpd/access_log http://www.و�ويمك sunshine.edu السجل يزداد في كل مرة تقوم فيها بتحميل صفحة الشبكة نظرة عامة لما سبق: لقد اس نستعرض نص برمجي يستخدم العديد من تلك الأجزاء وذلك لأتمتة إحدى العمليات لجميع مس دعمها يدوياً. ويقوم هذا النص البرمجي حس(000من باستخراج المعلومات الهامة لكل حساب كما يقوم بعرضها بشكل يمكن قراءتها بسهولة.

عدد الصفحات ٥٦٧

البرمجة النصية لقشرة نظام التشغيل 567 :)قائمة bin/bash#This script returns import information about all users on the system #Example line from /etc/passwd#alice:x:501:501:Alice Adams:/home/alice:/bin/bashfor user in $)cut -d: -f1 /etc/passwd(do IFS=$’\n’ #G rab the line from the password file that #contains this user’s inf o. We append the #delimiter ):( to ensure we only get results #for this username and not similar users userinfo=$)grep $user: /etc/passwd( comment=$)echo $userinfo | cut -d: -f5( home=$)echo $userinfo | cut -d: -f6( groups=$)groups $user | cut -d: -f2( #We only want this to run on »regular« users, #not system accounts. Skip users that do not #have ‘/home’ in the path to their home directory if [ $)echo »$home« | grep -v ‘/ho me/’( ] then continue fi echo »Username: $user« echo »User Info: $comment« echo »Home Directory: $home« echo »Groups: $groups« echo »Disk usage: $)du -sh $home(« last=$)last $user | head -1( if [ $)echo $last | wc -c( -gt 1 ] then echo »Last login: « echo »$last« else echo »User has never logged in!« fi echo »« echo »--« echo »«done [alice@sunshine ~]$ /opt/book/scripting/user_infoUsername: alice User Info: Alice Adams Home Directory: /home/alice Groups: alice sys Disk Usage: 75M /home/alice Last login: alice pts/3 sunshine.edu Sun Jan 13 12:22 - 13:00 )0:48(-- Username: bob User Info: Bob Brown Home Directory: /home/bob Groups: bob Disk Usage: 1.1M /home/bob Last login: bob pts/6 sunshine.edu Sun Jan 6 16:48 - 18:46 )1:58(

عدد الصفحات ٥٦٨

الفصل العا 568 وبإلقاء نظرة تفصيلية على هذا النص البرمجي، نلاحظ أنه في الس في النظام، إذ إن اسم المستخدم يكون دائماً في نحلقة باس العمود الأول من ملف for user in $)cut -d: -f( /etc/passwd( do ت الحساب لكل مستخدم. IFS=$’\n’ userinfo=$)grep $user: /etc/passwd( أما القس الحسابات إلى متغيرات قابلة للاستخدام. كما استخدم الأمر المجموعات التي ينتمي إليها المس لكل مستخدم. يالتخزينية التي يستخدمها الدليل الرئي omment=$)echo $userinfo | cut -d: -f5( home=$)echo $userinfo | cut -d: -f6( groups=$)groups $user | cut -d: -f2( echo »Username: $user« echo »User Info: $comment« echo »Home Directory: $home« echo »Groups: $groups« echo »Disk usage: $)du -sh $home(« وفي الجزء الأخير من النص البرمجي تم استخدام الأمر يقم المستخدم بتسجيل الدخول مطلقاً، فإن نتيجة أمر لمللمستخدم. وإذا سطراً فارغاً، كما سيعرض النص البرمجي رسالة بحدوث خطأ. أما إذا قام المستخدم بتسجيل الدخول فإنه يُعرَض آخر تسجيل دخول للمستخدم ومدة تسجيل الدخول.

عدد الصفحات ٥٦٩

البرمجة النصية لقشرة نظام التشغيل 569 last=$)last $user | head -1( if [ $)echo $last | wc -c( -gt 1 ] then echo »Last login:« echo $last else echo »User has never logged in!« fi نموذج حالة-ماكس بتلر من العمرغ كان ماكس بتل(998في ع دولار في الس(00ن للحاس�أحد المتحمس في مكتن كان أحد المتطوع�كات التي يتعامل معها، ك�أم بس BIND ( �) الشائعة الاستخدام على الإنترنت والمفتوحة المصدر والمعروفة بالمجال ويُس URLS( ). وتس(3(.247. 88.80( كام ن). ولحماية هذه الخوادم من المهاجمخ لابد من القيام بعمليات التصحيح المطلوبة قبل أن يصل المهاجمون إليها. لكن البيروقراطية نوعاً ما. كيف لخبير أمني مهتم بهذا الموضوع، مع ما يحمله من براءة العس شاب ذي عشرين عاماً، أن يصلح هذا الخلل في أسرع وقت ممكن؟ الدخول للبرمجة النصية. النص البرمجي يمكنه العمل بنفس سرعة جهاز الحاسب الآلي، كما ومن ثم نيمكن

عدد الصفحات ٥٧٠

الفصل العا 570 ) قام بفعل ذلك حيث قام بتجهيزقيام الأجهزة بإصلاح نفسها. ماكس بتلر BIND محدث من�نص برمجي يس وم باباً خفياً لا أحد يعلم عنه. ويعتقد ماكس بهذه ئButler ن أنه في الوقت ذاته يُتيح�، في ح نالطريق لنفس في المرة القادمة التي يتم فيها الإبلاغ عن ثغرة ما. وبناء على ذلك لا حاجة لإضاعة الوقت في التواصل مع مسؤولي وزارة الدفاع. يُعد عملاً حسناً. لموهذا العمل تم بش من 2(فعندما علم مسؤولو وزارة الدفاع عن الباب الخفي، قاموا بمحاكمة ماكس. وفي يوم شهراً بسبب هذا العمل. (8 أُرسل ماكس إلى السجن لمدة200(شهر مايو من عام تكن الحالة الأخيرة لماكس مع جرائم الإنترنت أو السلموه اير ماكس بقيادة غالبية س عاماً له(3 تم الحكم على ماكس بالس20(0م مدة تم الحكم فيها في جرائم الحاسب الآلي. لكن هذه الحالة جرى التفوق عليها من قبل جي ماكستيفي قضية Albert Gonzales ألبرت غونزالي�الحك Yankton Federal Prison Camp ماكس عقوبته في س�). وحالي Maxx من الأمن في ولاية جنوب داكوتنىويتصف هذا الس . وقد أنتجت محطة20(9ومن المقرر أن يُفرج عنه في الأول من يناير من عام American greed( »كيالتلفزيونية ملفاً عن هذه الحالة باسم المراجع: http://www.wired.com/techbiz/people/magazine/17-01/ff _max_ butler?currentPage=all Poulsen, K. »Kingpin: how one hacker took over the billion-dollar cybercrime underground,« Random House. http://www.cnbc.com/id/100000049

عدد الصفحات ٥٧١

البرمجة النصية لقشرة نظام التشغيل أمن المعلومات وإدارة مخاطر تقنية المعلومات57( الملخص اس تقنية المعلومات، وخصوصاً �البرمجية تُعد واحدة من أقوى الأدوات في ترس أمن المعلومات. ويس�متخص النصوص البرمجية، وذلك لإعادة استخدامها في اللحظة المناسبة. ولقد حاولنا في هذا الفصل اس لتطوير النصوص البرمجية الخاصة بك لأتمتة المهام المتكررة في عملك اليومي. وتحتوي مكتبة المطور التابعة لشركة أبل . )6عن البرمجة النصية لقشرة نظام التشغيل وعنوان ذلك الفصل أسئلة مراجعة للفصل: ( .ما البرمجة النصية لقشرة نظام التشغيل؟ 2 .فيمَ تُستخدم البرمجة النصية لقشرة نظام التشغيل؟ وما فائدة هذا الاستخدام؟ 3 . لغات البرمجة النصية ولغات الحاسب الآلي الأخرى؟نما الفرق المهم ب 4 .ما السطر الأول في النص البرمجي لقشرة نظام التشغيل 5 . يملك ملف النص البرمجي أذونات التنفيذ وذلك للمسلمما الذي يحدث إذا الذي يحاول تشغيل النص البرمجي؟ 6 .ما إعادة توجيه المخرجات؟ وما فائدته؟ 7 .ما الرمز الذي يعيد توجيه مخرجات أحد الأوامر ليكون مدخلاً لأمر آخر؟ 8 .كيف يمكن إرسال مخرجات النص البرمجي إلى ملف ما؟ وما فائدة ذلك؟ 9 .) إلى المخرجات نفسها؟echo »$P ATH)، وecho »$P ATHهل يؤدي الأمران التاليان )6( http://developer.apple.com/library/mac/#documentation/OpenSource/Conceptual/ ShellScripting/Introduction/Introduction.html )accessed 07/19/2013(

عدد الصفحات ٥٧٢

الفصل العا 572 (0 .ب الحسابي؟ضرما الرمز الذي تستخدمه قشرة نظام التشغيل ((. م BASH( (2 .ما الذي يقوم به الأمر (3 .فيم يُستخدم الأمر (4 .فيم يُستخدم الأمر (5 .في العبارات التالية التي تحدد قيمة المتغير، أي منها يُعتبر صحيحاً؟ •myVariable = 35( • )myVariable = 35( • )myVariable= 35( • )myVariable =35( (6 .ما الرمز الذي يقرأ البيانات من الملف ويستخدمها كمُدخل لأمر آخر؟ (7 .ما متغيرات البيئة؟ وما فائدتها؟ (8 . متغيرات البيئة؟نما المتغيرات المدمجة؟ وما الفرق بينها وب (9 .$) إذا تم تنفيذ آخر أمر بنجاح؟? (�ما القيمة المُفترضة ل 20 .كيف يمكن جمع مُدخلات المُستخدم من النص البرمجي؟ 2( .عند العمل على معاملات س second argument( 22 .؟ وما قيمتيم الافتراضية؟ ولماذا نقوم بتغيير القيمة الافتراضية؟ 23 .؟}3..(0..({ما سلسلة الأرقام الناتجة عن

عدد الصفحات ٥٧٣

البرمجة النصية لقشرة نظام التشغيل 573 24 .ما الحلقات؟ وما فائدتها؟ 25 .متى تنتهي حلقة أسئلة على نموذج الحالة: ( .Max Butler ماكس بتلر�ما هي بعض المؤسسات التي تأثرت بالنص البرمجي ل 2 .يدّعي ماكس بتلر الآلي المُصابة بنية حسنة وذلك حتى يتمكن من إصلاح الأجهزة بنفسه في المستقبل. كيف ترد على هذا الادعاء. وبمعنى آخر، إلى أي مدى تعتقد أن هذا الادعاء يعفيه من الذنب؟ نشاط التدريب العملي - أساسيات البرمجة النصية: تهدف هذه الأنشطة لتطبيق المعارف المكتسبة من هذا الفصل والمتعلقة بأوامر وآليات البرمجة النصية. باس ه تحت قائمة التطبيقات من شاشة المخرجات إلى أستاذ المادة. ( .احفظ مخرجات الملف هذا الملف الجديد الاسم التا 2 .اكت :ي)، حيث يقوم هذا النص البرمجي بما يexercise2 • ذكر جميع الملفات في دليل •حفظ قائمة الملفات السابقة في ملف •عرض عدد الملفات التي تم العثور عليها للمستخدم.

عدد الصفحات ٥٧٤

الفصل العا 574 3 .اكت :ي)، حيث يقوم هذا النص البرمجي بما يexercise3 • سؤال المستخدم عن طول وعرض غرفة مستطيلة الشكل (بالقدم •حساب مساحة الغرفة. •عرض النتيجة للمستخدم. 4 .اكت :ي)، حيث يقوم هذا النص البرمجي بما يexercise4 • .( إ(0 منيالعد العك •عرض الرقم الحالي. • الأرقام.نالتوقف لثانية واحدة ب •.(عرض النص التا 5 .اعمل نسخة لملف التا •اطلب من المستخدم إدخال الرقم الأعلى. •اعرض جميع الأرقام الزوجية انتهاءً بالعدد الأعلى. 6 .اعمل نس الت الرقم.نيعطي المستخدم العديد من الفرص اللازمة لتخم 7 .اعمل نسخة لملف book/scripting/results/exercise7 • يقبل اسم المستخدم كمعامل لسطر الأوامر •بدلاً من عرض معلومات جميع الحسابات، يقوم بعرض مخرجات هذا الحساب فقط.

عدد الصفحات ٥٧٥

البرمجة النصية لقشرة نظام التشغيل 575 opt/book/scripting/النتائج المطلوب تسليمها: قم بتسليم جميع الملفات في دليل results تمرين التفكير النقدي - أمن النص البرمجي •تُعد البرمج إلى المخاوف الأمنية الهامة ذات العلاقة ئ نلفت انتباه القار لمين إذا صرسنكون مق بالبرمج :يمعلومات عن أمن البرمجة النصية لقشرة نظام التشغيل والتي من أهمها ما ي • يتلمإذا تعليمات برمجية ضارة لها اسم الأمر نفسه الذي يتم تنفيذه من قبل النص البرمجي. •في ح استغلال امتيازات النص البرمجي. لذلك فإن مدخلات المستخدم يجب أن تُستخدم القيم فق المسموح بها. •لا ينبغي للنصوص البرمجية أن تحدد ما إذا كان لدى المستخدم الامتيازات المطلوبة لتنفي تلك الفحوصات. طمتغيرات البيئة لإحبا المراجع: Apple Corp., »Shell scripting primer, « http://developer.apple.com/ library/mac/#documentation/OpenSource/Conceptual/ShellScripting/ ShellScriptSecurity/ShellScriptSecurity.html#//apple_ref/doc/uid/ TP40004268-CH8-SW1 )accessed 072013/19/( أسئلة على البرمجة النصية لقشرة نظام التشغيل ( .إذا كان أصحاب الخبرة، فلماذا يجب أن نهتم بأمن النصوص البرمجية؟

عدد الصفحات ٥٧٦

الفصل العا 576 2 .لماذا يُعد تنفيذ النصوص البرمجية من قبل مستخدم تصميم حالة: ك للتحقيق في خؤتم اس الحال مقطع من ملف ي(وهي خدمة تس auth. log( .)scripting/desing_cas/auth.log Feb 17 08:00:08 inigo sshd[7049]: Failed password for root from 61.136.171.198 port 59146 ssh2 Feb 17 08:00:09 inigo sshd[7049]: Received disconnect from 61.136.171.198: 11: Bye Bye [preauth] Feb 17 08:00:16 inigo sshd[7051]: pam_ unix)sshd:auth(: authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=61.136.171.198 user=root Feb 17 08:00:18 inigo sshd[7051]: Failed password for root from 61.136.171.198 port 59877 ssh2 Feb 17 08:00:19 inigo sshd[7051]: Connection closed by 61.136.171.198 [preauth] Feb 17 08:17:01 inigo CRON[7296]: pam_ unix)cron:session(: session opened for user root by )uid=0( Feb 17 08:17:01 inigo CRON[7296]: pam_ unix)cron:session(: session closed for user root

عدد الصفحات ٥٧٧