امنيت چيست ؟
اولين رسالت امنيت، حفاظت از سرمايه هاي يك سازمان است كه ممكن است شامل آيتم هاي ملموسي نظير يك صفحه وب و يا بانك اطلاعاتي مشتريان و يا آيتم هاي غيرملموسي نظير شهرت و اعتبار يك سازمان باشد. امنيت يك مسير است نه يك مقصد و به موازات تجزيه و تحليل زيرساخت و برنامه هاي موجود ، مي بايست اقدام به شناسائي تهديدات و خطرات ناشي از آنان نمود . در واقع ، امنيت به مديريت خطرات و پياده سازي يك سيستم به منظور پاسخگوئي و مقابله با تهديدات اشاره داشته و در ارتباط با عناصر كليدي زير است :
Authentication ، فرآيندي است كه به كمك آن به صورت منحصربفرد سرويس گيرندگان يك برنامه شناسائي مي گردند . كاربران ، سرويس ها ، فرآيندها و كامپيوترها ، نمونه هائي از سرويس گيرندگان يك برنامه مي باشند . در واقع ، authentication هويت استفاده كنندگان يك برنامه را بررسي مي نمايد .
Authorization ، فرآيندي است كه به كمك آن دستيابي سرويس گيرندگان تائيد شده به منابع و عملياتي كه قصد انجام آن را دارند بررسي و مجوز لازم صادر مي گردد. فايل ها ، بانك هاي اطلاعاتي ، جداول ، سطرها ، منابع موجود در سطح سيستم نظير كليدهاي ريجتسري و داده پيكربندي ، نمونه هائي از منابع مورد درخواست سرويس گيرندگان مي باشند . انجام تراكنش هائي خاص نظير خريد يك محصول ، واريز و انتقال پول از يك حساب به حساب ديگر و يا افزايش اعتبار يك كارت اعتباري از جمله عملياتي مي باشند كه مي بايست مجوز استفاده از آنان براي سرويس گيرندگان صادر گردد . در واقع ، authorization محدوده مجاز عملياتي را كه يك سرويس گيرنده مي تواند انجام دهد را مشخص مي نمايد .
Auditing ، مميزي موثر و ثبت عمليات انجام شده يكي از اصول مهم در جلوگيري از انجام اعمال خلاف قانون است . بدين ترتيب اين اطمينان ايجاد خواهد شد كه يك كاربر نمي تواند باعث عدم انحام يك كار و يا فعاليت در سيستم گردد و يا يك تراكنش را مقداردهي اوليه نمايد .
Confidentiality ، كه از آن با نام privacy نيز نام برده مي شود ، فرآيندي است كه به كمك آن اين اطمينان ايجاد مي گردد كه حريم خصوصي داده رعايت و امكان مشاهده آن توسط كاربران غيرمجاز و يا ساير افرادي كه قادر به رديابي ترافيك يك شبكه مي باشند ، وجود نخواهد داشت .
Integrity ، فرآيندي است كه به كمك آن اين اطمينان ايجاد مي گردد كه داده در مقابل تغييرات تصادفي و يا تعمدي حفاظت خواهد شد. همانند privacy ، يكپارچگي اطلاعات يك فاكتور اساسي در خصوص امنيت داده محسوب مي گردد ، خصوصا" در مواردي كه داده در طول شبكه مبادله خواهد شد . يكپارچگي داده در حال حمل ،عموما" با استفاده از روش هائي نظير hashing و يا كدهاي تائيد پيام انجام مي شود .
Availability ، فرآيندي است كه به كمك آن اين اطمينان ايجاد خواهد شد كه همواره داده براي كاربران مجاز در دسترس و قابل استفاده خواهد بود . در اغلب حملات از نوع DoS ، مهاجمان اين هدف را دنبال مي نمايند كه بتوانند امكان استفاده و در دسترس بودن برنامه براي كاربران مجاز را غيرممكن و عملا" آن را از كار بيندازند .
تعاريف امنيتي :
تهديد ( threat ) :به هرگونه پتانسيل بروز يك رويداد مخرب و يا ساير موارد ديگر كه مي تواند به سرمايه هاي يك سازمان آسيب برساند ، تهديد گفته مي شود . به عبارت ديگر، هر رويدادي كه بتواند به سرمايه هاي يك سازمان آسيب برساند ، در زمره تهديدات محسوب مي گردد .
نقاط آسيب پذير (vulnerability) : ضعف هاي موجود در يك سيستم مي باشند كه پتانسيل اوليه بروز يك رويداد مخرب را فراهم مي نمايند . ضعف در طراحي ، پيكربندي اشتباه ، استفاده از روش هاي كدينگ غيرايمن مهمترين دلايل ايجاد يك ضعف در سيستم مي باشند . ضعف در بررسي صحت داده ورودي توسط كاربر ، نمونه اي از يك لايه آسيب پذير در يك برنامه است كه مي تواند زمينه بروز يك تهاجم را فراهم نمايد .
تهاجم (attack) : عملياتي است كه محوريت آن سوء استفاده از نقاط آسيب پذير و پتانسيل هاي بروز يك رويداد مخرب مي باشد . ارسال ورودي مخرب به يك برنامه و يا flooding يك شبكه به منظور از كار انداختن يك سرويس ، نمونه هائي در اين زمينه مي باشد .
يك تهديد پتانسيل بروز يك رويداد مخرب را فراهم مي نمايد كه مي تواند به سرمايه هاي يك سازمان آسيب برساند
در حالي كه در يك تهاجم موفقيت آميز از نقاط آسيب پذير موجود در سيستم استفاده مي گردد .
ایجاد برنامه ایمن
تا زماني كه شناخت مناسبي نسبت به تهديدات وجود نداشته باشد ، امكان ايجاد يك برنامه وب ايمن وجود نخواهد داشت . بنابراين قبل از هر چيز لازم است كه با "مدل تهديدات " موجود آشنا شويم . هدف مدل فوق، آناليز معماري و نحوه طراحي برنامه به منظور شناسائي نقاط آسيب پذيري است كه ممكن است به صورت تصادفي توسط يك كاربر ناآگاه و يا مهاجمان با اهداف مخرب مورد سوء استفاده قرار گرفته تا با استناد به آنان بتوانند موجوديت و امنيت سيستم را با خطر مواجه نمايند .
پس از آسنائي با تهديدات ، مي بايست با بكارگيري مجموعه اي از اصول امنيتي اقدام به طراحي سيستم نمود . در ادامه ، پياده كنندگان مي بايست از روش هاي ايمن به منظور نوشتن كدهاي مطمئن ، مستحكم و قابل اعتماد استفاده نمايند . پس از طراحي و پياده سازي برنامه ، مي بايست از يك شبكه ايمن ، يك host مطمئن و يك پيكربندي مناسب بر روي سرويس دهنده ، استفاده گردد .
ايجاد يك برنامه وب ايمن ، مستلزم اقدامات امنيتي چند جانبه اي است كه موفقيت در تمامي آنان ، ايمن بودن برنامه هاي وب را تضمين خواهد كرد . ايمن سازي شبكه ، host و برنامه ، رئوس مثلث امنيتي ايجاد برنامه هاي وب ايمن را تشكيل مي دهند .
ايمن سازي شبكه ، host و برنامه
به منظور ايجاد برنامه هاي وب ايمن ، تبعيت از يك رويكرد جامع امري است الزامي . بنابراين ، مي بايست امنيت برنامه هاي وب را در سه لايه متفاوت بررسي و اقدامات لازم را در هر لايه با توجه به جايگاه آن انجام داد . شكل زير سه لايه مهم به منظور ايجاد برنامه هاي وب ايمن را نشان مي دهد .
وجود يك نقطه آسيب پذير در شبكه به يك مهاجم اجازه مي دهد تا كنترل يك host و يا برنامه را بدست بگيرد .
وجود يك نقطه آسيب پذير در host به يك مهاجم اجازه مي دهد تا بتواند كنترل يك شبكه و يا برنامه را بدست بگيرد .
وجود يك نقطه آسيب پذير در برنامه به يك مهاجم اجازه مي دهد تا كنترل يك host و يا شبكه را بدست بگيرد .