تحقیق اصول امنيت برنامه های وب
دسته بندي :
دانش آموزی و دانشجویی »
دانلود تحقیق
لینک دانلود و خرید پایین توضیحات
دسته بندی : وورد
نوع فایل : word (..doc) ( قابل ويرايش و آماده پرينت )
تعداد صفحه : 126 صفحه
قسمتی از متن word (..doc) :
2
اصول امنيت برنامه های وب ( بخش اول )
اينترنت و به دنبال آن وب ، دنيای نرم افزار را دستخوش تحولات فراوانی نموده است . ظهور نسل جديدی از برنامه های كامپيوتری موسوم به "برنامه های وب " از جمله اين تحولات عظيم است . پس از ارائه سرويس وب در سال 1991، وب سايت های متعددی ايجاد گرديد . اينگونه سايت ها به منظور ارائه اطلاعات به مخاطبان خود از صفحات وب ايستا استفاده می كردند . در چنين وب سايت هائی ، امكان تعامل كاربر با برنامه وجود نداشت .
با توجه به اين كه رويكرد فوق با ماهيت و يا روح نرم افزار چندان سازگار نمی باشد ، تلاش های گسترده ای در جهت ايجاد محتويات پويا انجام و متعاقب آن ، فن آوری های متعددی ايجاد گرديد . به عنوان نمونه ، با پياده سازی فن آوری CGI ( برگرفته از Common Gateway Interface ) ، امكان استفاده از برنامه های خارجی به منظور توليد محتويات پويا فراهم گرديد . بدين ترتيب ، كاربران قادر به درج اطلاعات و ارسال آنها برای يك برنامه خارجی و يا اسكريپت سمت سرويس دهنده شدند . برنامه موجود در سمت سرويس دهنده پس از دريافت اطلاعات و انجام پردازش های تعريف شده ، نتايج را توليد و آنها را برای كاربر ارسال می نمود .
رويكرد فوق ، به عنوان نقطه عطفی در برنامه های وب تلقی می گردد چراكه برای اولين مرتبه امكان توليد محتويات پويا در وب سايت ها فراهم گرديد . از آن زمان تاكنون فن آوری های متعددی به منظور توليد برنامه های وب ايجاد شده است . PHP و ASP.NET نمونه هائی در اين زمينه می باشند . صرفنظر از اين كه از كدام فن آوری به منظور ايجاد برنامه های وب استفاده می گردد ، ايمن سازی آنان از جمله اهداف مشترك تمامی پياده كنندگان است .
امنيت برنامه های وب و برداشت های اوليه
زمانی كه در رابطه با امنيت برنامه های وب سخن به ميان می آيد ، تهاجم عليه يك سايت ، سرقت كارت های اعتباری ، بمباران وب سايت ها در جهت مستاصل كردن آنان به منظور ارائه خدمات و سرويس های تعريف شده ، ويروس ها ، تروجان ها ، كرم ها و ... در ذهن تداعی می گردد . صرفنظر از نوع برداشت ما در رابطه با موارد فوق ، می بايست بپذيريم كه تهديدات امنيتی متعددی متوجه برنامه های وب با توجه به ماهيت آنان می باشد . سازمان ها و يا موسساتی كه از اينگونه برنامه ها استفاده می نمايند و يا در صدد طراحی و پياده سازی آنان می باشند ، می بايست به اين نكته مهم توجه نمايند كه ايمن سازی يك برنامه وب ، محدود به بكارگيری يك فن آوری خاص نبوده و فرآيندی است مستمر كه عوامل انسانی و غيرانسانی متعددی می توانند بر روی آن تاثيرگذار باشند .
3
امنيت برنامه های وب را می بايست با توجه به
نوع معماری و رفتار آنان بررسی نمود .
برداشت های غيرواقعی از امنيت برنامه های وب
متاسفانه به دليل عدم شناخت لازم در خصوص ماهيت برنامه های وب از يك طرف و از سوی ديگر عدم آشنائی لازم با مفاهيم امنيت ، شاهد برداشت های نادرست در خصوص امنيت برنامه های وب می باشيم . اجازه دهيد به چند نمونه در اين خصوص اشاره نمائيم :
ما ايمن هستيم چون از يك فايروال استفاده می نمائيم . اين تصور كاملا" اشتباه است و به نوع تهديد بستگی خواهد داشت . مثلا" يك فايروال قادر به تشخيص داده ورودی مخرب جهت ارسال به يك برنامه وب نمی باشد . فايروال ها دارای عملكردی قابل قبول در رابطه با اعمال محدوديت بر روی پورت ها می باشند و برخی از آنان می توانند همزمان با بررسی اطلاعات مبادله شده ، امكانات برجسته حفاظتی را ارائه نمايند . فايروال ها جزء لاينفك در يك فريمورك امنيتی می باشند ولی نمی توان آنان را به عنوان يك راهكار جامع به منظور ايجاد و برپائی يك محيط ايمن در نظر گرفت .
ما ايمن هستيم چون از SSL ( برگرفته ازSecure Sokets Layer ) استفاده می نمائيم . SSL برای رمزنگاری ترافيك موجود بر روی شبكه يك گزينه ايده آل است ولی قادر به بررسی داده ورودی يك برنامه نمی باشد .
ما ايمن هستيم چون از سيستم عاملی استفاده می نمائيم كه نسبت به ساير سيستم های عامل دارای امنيت بيشتری است . استدلال فوق با فرض درست بودن اصل قضيه ، نادرست و غيرمنطقی است چراكه امنيت يك فرآيند است نه يك محصول . بنابراين با بكارگيری يك محصول خاص ( به عنوان نمونه يك سيستم عامل ) نمی توان اين ادعا را داشت كه ما به يك محيط ايمن به منظور ايجاد برنامه های وب دست يافته ايم .
با رد امنيت يك سيستم عامل نمی توان امنيت يك سيستم عامل ديگر را تائيد نمود.
4
( من خوبم چون شما بد هستيد ! )
امنيت چيست ؟
اولين رسالت امنيت ، حفاظت از سرمايه های يك سازمان است كه ممكن است شامل آيتم های ملموسی نظير يك صفحه وب و يا بانك اطلاعاتی مشتريان و يا آيتم های غيرملموسی نظير شهرت و اعتبار يك سازمان باشد. امنيت يك مسير است نه يك مقصد و به موازات تجزيه و تحليل زيرساخت و برنامه های موجود ، می بايست اقدام به شناسائی تهديدات و خطرات ناشی از آنان نمود . در واقع ، امنيت به مديريت خطرات و پياده سازی يك سيستم به منظور پاسخگوئی و مقابله با تهديدات اشاره داشته و در ارتباط با عتاصر كليدی زير است :
Authentication ، فرآيندی است كه به كمك آن به صورت منحصربفرد سرويس گيرندگان يك برنامه شناسائی می گردند . كاربران ، سرويس ها ، فرآيندها و كامپيوترها ، نمونه هائی از سرويس گيرندگان يك برنامه می باشند . در واقع ، authentication هويت استفاده كنندگان يك برنامه را بررسی می نمايد .
Authorization ، فرآيندی است كه به كمك آن دستيابی سرويس گيرندگان تائيد شده به منابع و عملياتی كه قصد انجام آن را دارند بررسی و مجوز لازم صادر می گردد. فايل ها ، بانك های اطلاعاتی ، جداول ، سطرها ، منابع موجود در سطح سيستم نظير كليدهای ريجتسری و داده پيكربندی ، نمونه هائی از منابع مورد درخواست سرويس گيرندگان می باشند . انجام تراكنش هائی خاص نظير خريد يك محصول ، واريز و انتقال پول از يك حساب به حساب ديگر و يا افزايش اعتبار يك كارت اعتباری از جمله عملياتی می باشند كه می بايست مجوز استفاده از آنان برای سرويس گيرندگان صادر گردد . در واقع ، authorization محدوده مجاز عملياتی را كه يك سرويس گيرنده می تواند انجام دهد را مشخص می نمايد .
Auditing : مميزی موثر و ثبت عمليات انجام شده يكی از اصول مهم در جلوگيری از انجام اعمال خلاف قانون است . بدين ترتيب اين اطمينان ايجاد خواهد شد كه يك كاربر نمی تواند باعث عدم انحام يك كار و يا فعاليت در سيستم گردد و يا يك تراكنش را مقداردهی اوليه نمايد . مثلا" در يك سيستم e-commerce می بايست از مكانيزم هائی استفاده گردد تا اين اطمينان حاصل گردد كه يك مصرف كننده نمی تواند سفارش انجام شده برای خريد يكصد نسخه از يك كتاب را انكار نمايد .
4
Confidentiality ، كه از آن با نام privacy نيز نام برده می شود ، فرآيندی است كه به كمك آن اين اطمينان ايجاد می گردد كه حريم خصوصی داده رعايت و امكان مشاهده آن توسط كاربران غيرمجاز و يا ساير افرادی كه قادر به رديابی ترافيك يك شبكه می باشند ، وجود نخواهد داشت .
Integrity ، فرآيندی است كه به كمك آن اين اطمينان ايجاد می گردد كه داده در مقابل تغييرات تصادفی و يا تعمدی حفاظت خواهد شد . همانند privacy ، يكپارچگی اطلاعات يك فاكتور اساسی در خصوص امنيت داده محسوب می گردد ، خصوصا" در مواردی كه داده در طول شبكه مبادله خواهد شد . يكپارچگی داده در حال حمل ،عموما" با استفاده از روش هائی نظير hashing و يا كدهای تائيد پيام انجام می شود .
Availability ، فرآيندی است كه به كمك آن اين اطمينان ايجاد خواهد شد كه همواره داده برای كاربران مجاز در دسترس و قابل استفاده خواهد بود . در اغلب حملات از نوع DoS ، مهاجمان اين هدف را دنبال می نمايند كه بتوانند امكان استفاده و در دسترس بودن برنامه برای كاربران مجاز را غيرممكن و عملا" آن را از كار بيندازند .
تعاريف اوليه برخی از اصطلاحات امنيتی : تهديدات ، نقاط آسيب پذير و حملات
تهديد ( threat ) : به هرگونه پتانسيل بروز يك رويداد مخرب و يا ساير موارد ديگر كه می تواند به سرمايه های يك سازمان آسيب برساند ، تهديد گفته می شود . به عبارت ديگر، هر رويدادی كه بتواند به سرمايه های يك سازمان آسيب برساند ، در زمره تهديدات محسوب می گردد .
نقاط آسيب پذير (vulnerability) : ضعف های موجود در يك سيستم می باشند كه پتانسيل اوليه بروز يك رويداد مخرب را فراهم می نمايند . ضعف در طراحی ، پيكربندی اشتباه ، استفاده از روش های كدينگ غيرايمن مهمترين دلايل ايجاد يك ضعف در سيستم می باشند . ضعف در بررسی صحت داده ورودی توسط كاربر ، نمونه ای از يك لايه آسيب پذير در يك برنامه است كه می تواند زمينه بروز يك تهاجم را فراهم نمايد .