شما عضو نیستید, برای دسترسی کامل به سایت لطفا از طریق این لینک ثبت نام نمائید.     close
 

تالارهای گفتمان جی تاک

جدیدترین موضوعات انجمنها دانلود تولبار جی تاک


بازگشت   تالارهای گفتمان جی تاک برنامه نویسی , طراحی وب و موضوعات مرتبط برنامه نویسی
ارسال موضوع جدید  پاسخ
 
لینک مستقیم ابزارهای موضوع جستجو در موضوع
قدیمی 11th July 2010   #1

Mr.Ahmad

همکار بازنشسته

 Mr.Ahmad آواتار ها

تاریخ عضویت: Apr 2010
محل سکونت: خاکی که دیگر ایران نیست.ایران نماست
نوشته ها: 493
تشکر از دیگران: 3,310
تشکر شده 648 بار در 309 پست

حالت
Balanced

 

29 اصول برنامه نويسي امن

اصول برنامه نويسي امن
در اغلب موارد، اشتباهات برنامه نويسي كه به سادگي قابل اجتناب هستند منجر به بروز آسيب پذيري هاي قابل سوءاستفاده در نرم افزارها مي شوند. گروه پاسخگويي به فوريتهاي رايانه اي (CERT) در تحليل هايي كه بر روي هزاران آسيب پذيري گزارش شده به اين گروه انجام داده، به اين نتيجه رسيده است كه اكثر آسيب پذيري ها از تعداد كمي خطاهاي برنامه نويسي مشترك ناشي مي شوند. در صورت آشنايي برنامه نويسان و توسعه دهندگان نرم افزار با روش هاي نا امن برنامه نويسي و جايگزين كردن آنها با روش هاي امن، مي توان گام بزرگي را براي كاهش و يا حذف آسيب پذيري هاي يك نرم افزار، قبل از انتشار آن، برداشت.

به همين منظور در اين مقاله مهمترين نكاتي را كه بايد براي برنامه نويسي امن به آنها توجه شود، توضيح مي دهيم.



1. اعتبارسنجي ورودي

تمام ورودي ها از منابع داده نامطمئن را اعتبارسنجي كنيد. اعتبارسنجي صحيح ورودي، گستره وسيعي از آسيب پذيري ها نرم افزار را حذف مي كند. بهتر است به اكثر منابع داده خارجي همچون خط دستور، واسطهاي شبكه، متغيرهاي محيطي و فايل هاي تحت اختيار كاربر، مشكوك باشيد. اعتبار سنجي ورودي تا حد زيادي از بروز حملات تزريق SQL جلوگيري به عمل مي آورد.



2. جدي گرفتن هشدارهاي كامپايلر

كد خود را با استفاده از بالاترين سطح هشدار ممكن، كامپايل كنيد و هشدارها را با اعمال تغييرات در كد از بين ببريد.



3.معماري و طراحي براي به كارگيري سياست هاي امنيتي

يك معماري نرم افزار ايجاد كرده و نرم افزار خود را به گونه اي طراحي كنيد كه سياست هاي امنيتي در آن پياده سازي و اجرا شود. براي مثال، در صورتي كه سيستم شما نيازمند حقوق دسترسي متفاوت در زمان هاي متفاوتي است، سيستم را به زيرسيستم هاي مجزا تقسيم كنيد به طوري كه هر زير سيستم داراي حق دسترسي مناسب باشد.



4. سادگي

تا جايي كه امكان دارد طراحي را ساده و كوچك نگاه داريد. طراحي هاي پيچيده احتمال بروز خطا را در پياده سازي، تنظيمات و به كارگيري افزايش مي دهند. به علاوه طراحي پيچيده تلاش لازم براي رسيدن به سطح مطلوب تضمين امنيت را به طرز قابل توجهي بالا مي برد، زيرا مكانيزم هاي امنيتي نيز به همان نسبت پيچيده تر مي شوند.



5.انكار پيش فرض

اساس همه دسترسي ها را بر مبناي اجازه دادن به افراد مجاز به جاي مستثني كردن افراد غيرمجاز قرار دهيد. يعني به صورت پيش فرض از دسترسي ها جلوگيري شود و تنها تعيين كننده شرايطي كه تحت آنها اجازه دسترسي صادر مي شود، الگوي حفاظت باشد.



6. وفادار بودن به اصل حداقل حق دسترسي

هر پردازه اي بايد با كمترين حقوق دسترسي كه براي كامل كردن آن مورد نياز است، اجرا شود. هر حق دسترسي بالاتري بايد در كمترين زمان ممكن در اختيار پردازه قرار گيرد. اين راهكار فرصت هاي مهاجم را براي اجراي كد دلخواه با حق دسترسي ارتقا يافته، كاهش مي دهد.



7. محافظت از داده هايي كه به سيستم هاي ديگر فرستاده مي شوند

از تمام داده هايي كه به زيرسيستم هاي پيچيده همچون واسط هاي فرمان، پايگاه داده هاي رابطه اي و برنامه هاي آماده فرستاده مي شوند، محافظت به عمل آوريد. مهاجمان ممكن است بتوانند از قابليت هاي استفاده نشده در زير سيستم هاي مذكور، با استفاده از SQL، دستور (command) و يا ديگر حمله هاي تزريق، سوءاستفاده كرده و زيرسيستم هاي مذكور را فراخواني كنند. البته دقت كنيد كه اين مشكل لزوماً مشكل اعتبار سنجي داده هاي ورودي نيست زيرا زيرسيستم هاي پيچيده قادر به تشخيص زمينه اي كه در آن درخواست ها انجام مي شود، نيستند. از آنجايي كه پردازه اي كه زيرسيستم ها را فراخواني مي كند، قادر به تشخيص زمينه است، بنابراين پردازه مذكور، مسئول محافظت از داده ها، قبل از فراخواني زير سيستم هاي پيچيده است.



8.اجراي دفاع در عمق

مديريت خطر را با استفاده از استراتژي دفاع چندلايه انجام دهيد، در اين صورت اگر يكي از لايه هاي دفاعي نتواند به خوبي كار كند، لايه دفاعي ديگري از تبديل شدن يك نقص امنيتي به يك آسيب پذيري قابل سوءاستفاده جلوگيري به عمل مي آورد و يا نتايج سوء يك حمله موفق را كاهش مي دهد. براي مثال، تركيب تكنيك هاي برنامه نويسي امن با محيط اجراي امن منجر به كاهش احتمال سوءاستفاده از آسيب پذيري هاي باقيمانده در كد، در زمان اجراي برنامه و در محيط عملياتي مي شود.



9. استفاده از روش هاي موثر تضمين كيفيت

تكنيك هاي تضمين كيفيت خوب، در شناسايي و حذف آسيب پذيري ها بسيار مؤثر عمل مي كنند. تست نفوذ، تست fuzz (يك تكنيك تست نرم افزار كه در آن از ورودي هاي دور از انتظار، غيرمعمول و تصادفي استفاده ميشود) و مميزي هاي كد منبع همگي بايد به عنوان قسمتي از يك برنامه تضمين كيفيت مؤثر در نظر گرفته شوند. همچنين مرور امنيتي نرم افزار توسط يك گروه كه مستقل از توليد كنندگان هستند، مي تواند منجر به امنيت بالاتر سيستم شود. در واقع مرورگران بيروني ديدگاه جديدي را با خود مي آورند و در نتيجه براي حل برخي مشكلات همچون شناسايي و اصلاح پيش فرض هاي نادرست بسيار مفيد واقع مي شوند.



10. اتخاذ يك استاندارد كدنويسي امن

لازم است يك استاندارد كدنويسي امن را بر مبناي زبان برنامه نويسي و سكويي كه براي توسعه نرم افزار استفاده مي شود، ايجاد كرده و يا از انواع موجود آن استفاده كنيد. در سري مقالات بعدي در مورد استاندارد CERT براي كدنويسي امن با زبان هاي برنامه نويسي C، C++ و جاوا صحبت خواهيم كرد.



11.تعريف نيازمندي هاي امنيتي

نيازمندي هاي امنيتي را هر چه زودتر در چرخه حيات توسعه نرم افزار مشخص كرده و وارد كنيد. سپس در مراحل بعدي توليد نرم افزار از همخواني آنها با نيازمندي هاي امنيتي اطمينان حاصل كنيد. زماني كه نيازمندي هاي امنيتي تعريف نشده اند، امنيت سيستم توليد شده نمي تواند به صورت مؤثر ارزيابي شود.



12. مدلسازي تهديدها

از مدلسازي تهديد براي پيش بيني تهديدهايي كه نرم افزار در آينده با آن مواجه خواهد شد استفاده كنيد. مدلسازي تهديد شامل مشخص كردن دارايي هاي كليدي، تجزيه برنامه كاربردي، تعيين و دسته بندي تهديدهاي مربوط به هر دارايي و بخش، درجه بندي تهديدها بر اساس يك معيار درجه بندي خطر و سپس توسعه استراتژي هاي كاهش تهديدها مي شود كه بايد در قسمت هاي طراحي، كد و تست پياده سازي شوند.

----------------------------------------------------------------------------------------------------------------------

به یزدان اگر ما خرد داشتیم
کجا این چنین عاقبت داشتیم
Mr.Ahmad آفلاين است  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiTweet this Post!
پاسخ با نقل قول
پاسخ


کاربران در حال دیدن موضوع: 1 نفر (0 عضو و 1 مهمان)
 
ابزارهای موضوع جستجو در موضوع
جستجو در موضوع:

جستجوی پیشرفته

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
کد HTML غیر فعال است
Trackbacks are فعال
Pingbacks are فعال
Refbacks are فعال



پد از بين برنده سـموم بدن كينوكي

مزیت های کینوکی:
پد دفع سموم بدن کینوکی - Kinoki (فیلترینگ بدن انسان ) از بین برنده سموم مضر موجود در خون تهیه شده از سرکه طبیعی گیاه اعجاب آور بامبو



» برای مشاهده توضیحات و تصاویر بیشتر اینجا را کلیک کنید ...
 

روش خرید: برای خرید پس از کلیک روی دکمه زیر و تکمیل فرم سفارش، ابتدا محصول مورد نظر را درب منزل یا محل کار تحویل بگیرید، سپس وجه کالا و هزینه ارسال را به مامور پست بپردازید. جهت مشاهده فرم خرید، روی دکمه زیر کلیک کنید.

قیمت: 16000 تومان

 


Powered by vBulletin Version 3.8.6 & Our Members
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO 3.5.2
Host & Support By Kimiahost Co
© Copyright 2005-2010 Gtalk.ir
سایت سرگرمی و تفریحی * ثبت هاستینگ و دامنه * سایت سرگرمی و عکس های جالب * فروشگاه تکچین ، فروشگاه اینترنتی تکچین هدایای جالب و لوکس * ست مروارید عشق * سایت یک در یک ، فال و طالع بینی ، عکس ، مقالات آموزشی، پیامک های جالب *آموزش لاغری در 10 دقیقه *شارژ موبایل با باطری قلمی *بهترین هدیه روز مادر و روز زن *راه های افزایش قد + حرکات جادویی *ساعت LED آدیداس adidas *ساعت بدون عقربه Gucci *دستگاه کپی SMS و شماره تلفن *ست چاقوی میراکل بلید *دماسنج عشق *سایت هدفمند سازی یارانه ها *برچسب ضد اشعه امواج مضر موبایل * ساعت و گردنبند جادویی آرامبخش *پک سفیدکننده دندان اصل Whitelight * کرم موبر باله آ اصل - Balea Cream *هاست ایرانی ، میزبانی ملی *خرید زیور آلات ، بدلیجات ، مروارید *پنل ارسال sms *تبادل لینک با ما - رنک 3 به بالا