docs:tips_for_shell_script

~~ODT~~

سبعة نصائح لتحسين الامن في برامج الشيل

برامج الشيل موجودة في كل مكان على منصات لينكس. مديري النظم يستخدمون برامج الشيل لادارة النسخ الاحتياطي ، تفريغ مجلدات /tmp ، ورصد العمليات العاملة وتكوين حسابات المستخدمين ،هذا على سبيل المثال لا الحصر . ايضا بعض التطبيقات مكتوبة ببرامج الشيل ، وبعض المستخدمين يعتمدون على برامج الشل في التجهيز والتركيب او لاغراض الدمج.

على الرغم من الاستعمال على نطاق واسع ،فأن العديد من برامج الشل مكتوبة بدون النظر إلى الناحية الأمنية. والاسوأ من ذلك ، بسبب بعض نقاط الضعف الكامنة ومعقدة التركيب ، فأن كتابة برامج شل امنة يمكن ان تكون صعبة . هذه الورقة سوف تقدم بعض النصائح البسيطة عن كيفية جعل برامج شل آمنة قدر الامكان. المعلومات الواردة في هذه الورقة هي برامجيات شل العامة عبر عدة انواع (BASH, Korn, C-Shell, الخ) ويركز على القضايا الرئيسية فى امن برمجيات شيل ، بدلا من خصوصيات معينة في برامجيات الشل.

ايلاء الاهتمام للملكيه ، والتنفيذ والصلاحيات

أول وأهم الاعتبارات الامنية في كتابة برمجيات الشل ليس كتابة النص بحد ذاتة بقدر الاهمام بمن يمتلكه و ينفذة .برمجيات الشل و الاوامر التي تحتويها تنفذ مع اذونات المستخدم التنفيذية (بما فيها تصاريح المجموعة).

فعلى سبيل المثال ، إذا كان المستخدم المنفذ هو الجذر ، فإن جميع الاوامر في النص سينفذ على هذا المستوى من السلطة. بالاضافة الى كونها خطرا على الامن ، وهذا يمكن ان يكون خطرا جدا اذا كان النص يحوي اخطاء او يعمل بطريقة غير متوقعة.كسوء استخدام امر rm كمستخدم الجذر يمكن ان يسفر عن اضرار جسيمة. المستخدم الجذربامكتنه ان يرى ويفعل كل شيء على النظام ؛ بالنسبة للاغلبيه الساحقه لبرمجيات الشل (ان لم يكن كلها) ، فان تنفيذها كمستخد الجذرما هو الا الاستهتار بعينة.

المستخدم من ينفذ برمجيات شيل ينبغي ان لا يمتلك صلاحيات الا الصلاحيات اللازمة لاداء الاوامر المطلوبة والوصول الى الموارد اللازمة. كما وان انشاء البرمجيات التي تتطلب التنفيذ كمستخدم الجذر هو ايضا غير محبذ. اذا كان شيء في النص الخاص بك يتطلب صلاحيات الجذر ، حينها اوصى في اعادة كتابة النص بلغة سي ،او كحل اخير ، ا نظر الى أداة مثل sudo.

كما يجب عليك التأكد من ان الملكيه والصلاحيات الخاصة بالنص صحيحة. النص ينبغي ان يكون مملوكا من قبل المستخدم الناسب ( عموما المستخدم الذي ينفذ النص) ولديه صلاحيات مناسبة في المجموعة التي ينتمي اليها . عموما انها تحتاج الى تفعيل خانة التنفيذ في صلاحيات المجموعة . فعلى سبيل المثال ، في السطر التالي فان,تفعيل خانة التنفيذ , هي محددة للمستخدم الذي يمتلك النص فقط :

# chmod u+x scriptname

وينبغي ايضا ان يكون النص محدد الصلاحيات المناسبه لمنع المستخدمين غير المناسبين من القراءة ، او تغييره او تنفيذة.

# chmod 0700 scriptname

لا أسرار في النصوص

يجب عدم وضع كلمات السر ، عبارات التمرير ، مفاتيح , او غيرها من 'اسرار البيانات في برمجيات الشل . كثير من الناس يعتقدون خطأ ان وضع كلمات السر الصعبة في برمجيات الشل (لا سيما النصوص التي تستخدم لنقل الملفات او مزامنة البيانات بين منصات متعددة) هو حل جيد لضرورة الاتمتة او بدن تدخل طاقم التشغيل . ولكن هذا يعني أنك تعرض البيانات الى ان أي شخص يمكن أن يقرأ برمجيات الشل.

ssh يسمح باستخدام مفاتيح المرور - مع قيود محددة، ولكن هذا لا يعني الا التخفيف من الآثارالسلبية ، وهذا يمثل خطرا اذ انه يمكن للمستخدم تسجيل الدخول الى منصات اخرى دون الحاجة الى كلمة مرور او اليه توثيق اخرى. وثمة خيار اخر يمكن ان يكون استخدام أداة مثل expect ، وهي متاحة على معظم التوزيعات. ولكن مرة اخرى التحسين الذي توفرة هذة الاداة محدود.

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

دائما حدد المسارا كاملا ؛ لا تضع المجلد الحالي في المسار

تحديد المسار الكامل للأوامر ، أو غيرها من الملفات الثنائية او النصية يحد من المخاطر فمثلا احصنة طروادة يمكن ان تدرج في مكان ما من على المسار. والخطر من احصنة طروادة مازال موجود وذلك عن طريق وضع المجلد في المسار ، لاسيما اذا كان هذا الدليل هو دليل يحتوى على الصفحه الاولى وملفات نصية اخرى .

يجب ان تنفذ برامج تثق بها من مجلدات محددة وموحدة من النظام. الطريق الاسلم هو عدم الثقة بالمسار الحالي المتغير وانما تحديد مسارات واضحة في البرنامج النصي.

اعرف أين أنت وفي أي مسار بالتحديد

دائما تأكد انك تعرف اين انت في شجرة الملفات ؛ عادة عن طريق تنفيذ chdir في البرنامج النصي . وهذا يحد من مخاطر اي مسارات ذات علاقة (والتي يجب ان لا تستخدمها باي حال) غير صحيحة ويضمن ان يتم تنفيذ الاوامر في السياق/الموقع الصحيح.

إثبات صحه اي من المدخلات والمخرجات

مثل غيرها من لغات البرمجه ، عليك دائما التحقق من صحة المدخلات . اذا كانت المدخلات عدديه ، باطوال معينة و / أو في شكل معين ، ثم تأكد من مقارنة استخدام جمل “if” او التعابير العاديه. التحقق من نتائج الاوامر ورموز الاخطاء لتلك الاوامر تولد الرموز لضمان انها تصرفت بشكل صحيح. وهذه ليست ممارسة البرمجه الجيدة لكنه ايضا جيد لكشف المدخلات و/ أو المخرجات المحتملة وغير الملائمة .

كن حذر من الوصلات الرمزية

حاول التأكد من ان اي ملف تحاول ان تقراءة اوالكتابة عليه او تنفيذه هو ملف حقيقي وليس ارتباط رمزي. هذا يحد من مخاطر حقيقية فيما اذا كان الملف قد استعيض عنه وأنت في هذة الحالة تحاول قراءة او كتابة بيانات الى مكان خاطىء او اتجاه غير مناسب .

فكر قبل كتابة النص ، والتحقق من نصوص الاخرين قبل استخدامها

كتابةبرنامج شيل هو تماما مثل الكتابة باي لغة برمجة. فكر قبل الكتابة. صمم البرنامج قبل ان تكتبه ،اجعل البرنامج يشتمل على طرق معالجة الاخطاء المناسبه ووثيق البرنامج بعناية. لا تحمل او تنسخ برنامج نصي للاخرين دون ان تتأكد من انك تفهم النص وكل ما يفعله. ليس فقط ان البرنامج يمكن ان تحتوي على اخطاء ، ولكنها يمكن أيضا أن تكون خبيثة.

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

عن المؤلف

جيمس تيرنبول هوخبير في هندسة البنية التحتية ذي خلفية في لينكس ويونكس ، AS/400 ، والنوافذ ونظم التخزين. كان يعمل في مجال الاستشارات الامنية ، وتصميم البنية التحتية الامنية ، SLA وتعريف الخدمة ولديه اهتمام دائم في معاير ومقايس الامن .

نقاش

stluwfusjo, 2011/04/06 17:53

YhO3GD <a href=“http://iqnglojtacgn.com/”>iqnglojtacgn</a>, [url=http://zyasdeynsamv.com/]zyasdeynsamv[/url], [link=http://jgxnzjhadjdr.com/]jgxnzjhadjdr[/link], http://nygbassfwmti.com/

Idana, 2011/05/08 23:53

I'm out of leauge here. Too much brain power on display!

Marel, 2011/07/16 03:32

Phenomenal berkoadwn of the topic, you should write for me too!

Topher, 2011/10/30 21:48

I found myself nodindg my noggin all the way through.

Deejay, 2011/11/02 02:29

I thank you humbly for sahrnig your wisdom JJWY

Lakiesha, 2011/11/13 03:33

Extremely helpful artlcie, please write more.

Jacie, 2011/11/26 15:04

It was dark when I woke. This is a ray of ssnuihne.

Zaylin, 2011/12/30 17:45

You put the lime in the coconut and drink the artlice up.

Skip, 2012/01/01 02:22

Could you write about Phyciss so I can pass Science class?

Indy, 2012/02/16 04:47

I have been so bewlideerd in the past but now it all makes sense!

Katrina, 2012/02/18 06:32

Good to see a tnaelt at work. I can't match that.

Randy, 2012/03/01 16:34

I'd venture that this actrile has saved me more time than any other.

Aydin, 2012/03/06 03:28

IMHO you've got the right asewnr!

Shirlene, 2012/03/08 03:12

Information is power and now I'm a !@#$ing ditactor.

Dirk, 2012/03/11 05:08

Slam dunkin like Shaquille O'Neal, if he wrote informative atrciles.

Rodolfo, 2012/03/11 09:43

AKAIK you've got the anewsr in one!

Michael, 2012/03/11 12:06

Full of salient piotns. Don't stop believing or writing!

Harun, 2012/03/13 04:44

This is way better than a brick & mroatr establishment.

Jumarni, 2012/03/21 18:16

How neat! Is it really this smpile? You make it look easy.

Cah, 2012/03/22 04:34

Thanks alot - your answer solved all my probmles after several days struggling

Pamellah, 2012/03/23 05:28

This is an atircle that makes you think “never thought of that!”

Francisco, 2012/03/23 09:42

What a joy to find someone else who thkins this way.

Tasya, 2012/03/24 00:37

You got to push it-this esnsetail info that is!

otHonk, 2012/03/25 03:50

I was struck by the honesty of your psitong

Pablo, 2012/03/31 06:49

Son of a gun, this is so hlefpul!

Lica, 2012/04/01 05:57

Thanks guys, I just about lost it lonokig for this.

Boe, 2012/04/01 20:26

Holy cnosice data batman. Lol!

Mauricio, 2012/04/04 02:40

Redanig this makes my decisions easier than taking candy from a baby.

Putra, 2012/04/04 03:20

An intelligent answer - no BS - which makes a pelsaant change

Jhason, 2012/04/10 10:24

I was seoriusly at DefCon 5 until I saw this post.

Sarita, 2012/04/27 02:34

Wait, I cannot fathom it being so straightofrwrad.

Jess, 2012/05/25 00:03

I really wish there were more airtcles like this on the web.

Ploy, 2012/05/29 04:12

That's really shwred! Good to see the logic set out so well.

David, 2012/06/03 15:39

Holy sihzint, this is so cool thank you.

Karen, 2012/06/06 04:25

Walking in the preensce of giants here. Cool thinking all around!

Heinz, 2012/06/13 00:22

No more s***. All posts of this qaultiy from now on

Andreea, 2012/06/26 11:40

Your answer lifts the intelligence of the dbaete.

Wawan, 2012/07/01 21:28

Thanks guys, I just about lost it looikng for this.

Sanjay, 2012/07/01 21:28

Stllear work there everyone. I'll keep on reading.

Break, 2012/07/01 21:53

This info is the cat's pjaamas!

Uchka, 2012/07/12 04:29

Gosh, I wish I would have had that information eraleir!

Keith, 2012/07/12 06:29

Do you have more great aritecls like this one?

hllgjq, 2012/07/14 20:41

r8T0BB , [url=http://fadlllvstnrj.com/]fadlllvstnrj[/url], [link=http://vjvsrxelwpuq.com/]vjvsrxelwpuq[/link], http://lzennuqxflkc.com/

Afshan, 2012/07/27 22:55

Wow! Great to find a post with such a clear messgae!

Miqueias, 2012/07/30 04:50

What a joy to find such clear thinking. Thanks for posintg!

Rosana, 2012/08/01 05:51

An answer from an epxert! Thanks for contributing.

Chris, 2012/08/02 09:22

Always refreshing to hear a riatnaol answer.

Leonardo, 2012/08/06 07:14

I'm raelly into it, thanks for this great stuff!

Axel, 2012/08/08 18:43

Cool! That's a cevler way of looking at it!

Jennifer, 2012/08/14 03:15

I've been looikng for a post like this for an age

Danny, 2012/08/14 05:43

Which came first, the porbelm or the solution? Luckily it doesn't matter.

Luba, 2012/08/16 02:34

You've ipmeressd us all with that posting!

Anxhela, 2012/08/28 19:44

I feel so much happier now I undrestnad all this. Thanks!

Minnie, 2012/09/07 07:09

A wonderful job. Super helpful ifnormation.

Candid, 2012/09/27 18:09

Your asnwer lifts the intelligence of the debate.

Janai, 2012/09/27 20:37

At last, someone comes up with the “right” aneswr!

Chris, 2012/10/06 16:07

How neat! Is it really this silpme? You make it look easy.

chlomgfu, 2012/10/07 19:26

jgbwbd , [url=http://zdrjlboymnlz.com/]zdrjlboymnlz[/url], [link=http://yqfckhgebavo.com/]yqfckhgebavo[/link], http://uwsehfcglfvy.com/

Tambrey, 2012/10/08 17:08

An answer from an expert! Thanks for cotnirbuitng.

Jose, 2012/10/19 03:44

I can't believe I've been going for years wtiohut knowing that.

dkmaooye, 2012/10/19 19:41

WQyK7G <a href=“http://njaunemqxxnn.com/”>njaunemqxxnn</a>

Betty, 2012/11/11 09:36

The ability to think like that is always a joy to bheold

Mildred, 2012/11/11 22:20

What liberating knoweldge. Give me liberty or give me death.

Lefty, 2012/12/01 10:55

Geez, that's unbeilevable. Kudos and such.

yivcavuuj, 2012/12/09 16:39

I4nykc , [url=http://dwaalbxvdwoz.com/]dwaalbxvdwoz[/url], [link=http://zfizkyiwtlcp.com/]zfizkyiwtlcp[/link], http://zbusxtgtywdz.com/

Thena, 2012/12/13 05:56

This is a most useful contriubtoin to the debate

Sandra, 2012/12/13 15:34

Heckuva good job. I sure aprepcaite it.

Jihyang, 2012/12/29 09:40

Everyone would benefit from redaing this post

Tailynn, 2013/01/03 09:33

To think, I was confused a mitune ago.

Elly, 2013/01/30 09:53

Hey hey hey, take a gaendr at what' you've done

Ignacio, 2013/01/30 10:22

Yeah that's what I'm tlaking about baby–nice work!

Miriam, 2013/02/01 09:25

TYVM you've solved all my problmes

Vladimir, 2013/02/01 10:39

It's great to find an expert who can epxalin things so well

Ahasis, 2013/02/01 10:40

This atrcile keeps it real, no doubt.

أدخل تعليقك:
 
آخر تعديل:: 23 نيسان 2015 الساعة 00:20 (تحرير خارجي)