مدیریت حفره های امنیتی

باگ ،حفره یا همان ضعف امنیتی است که در برنامه های سیستمی ، کاربردی و تحت وب است که به دلیل اشتباهات در سورس برنامه ها رخ میدهد.

وقتی در دنیای سیستم های دیجیتالی و کامپیوتری از باگ صحبت می کنیم، مقصودمان بیشتر یک نقص نرم افزاری است و کمتر پیش می آید یک نقص دیجیتالی سخت افزاری را باگ بنامیم هرچند این لغت از نظر تاریخی در مهندسی مکانیک و ادوات سخت افزاری ریشه دارد. بنابراین آن دسته از وسایل دیجیتالی که فاقد نرم افزارند، اصولاً در این بحث جای نمی گیرند.

برخی از انواع باگ های متعارف عبارتند از :

[XSS] [DBD] [LFI] [RFI] [RFD] [RFU] [RPD] [SQLi] [BSQLi] [DBSQLi] [RLTD] [SCRF] [RCE] [RPC]

zero-day چیست؟

به حفره ها و اکسپلویت های نوین و محرمانه که در دنیای زیرزمینی نفوذگران کشف و استفاده می شود می گویند و جون مسئولان امنیتی از آنها آگاه نیستند نمی تواندد سیستم ها را در برابر آن ها مقاوم و ایمن سازی کنند ، لذا به نفوذگر اجازه حمله و نفوذ را میدهد.

چگونه می توان يك برنامه وب ايمن را ايجاد نمود ؟

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

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

 

به منظور  ايجاد برنامه های وب ايمن ، تبعيت از يك رويكرد جامع امری است الزامی . بنابراين ، می بايست امنيت برنامه های‌ وب را در سه لايه متفاوت بررسی و اقدامات لازم را در هر لايه با توجه به جايگاه آن انجام داد . شكل زير سه لايه مهم به منظور ايجاد برنامه های وب ايمن را نشان می دهد .

 وجود يك نقطه آسيب پذير در شبكه به يك مهاجم اجازه می دهد تا كنترل يك host  و يا برنامه را بدست بگيرد .

وجود يك نقطه آسيب پذير در host  به يك مهاجم اجازه می دهد تا بتواند كنترل يك شبكه و يا برنامه را بدست بگيرد .

وجود يك نقطه آسيب پذير در برنامه به يك مهاجم اجازه می دهد تا كنترل يك host  و يا شبكه را بدست بگيرد .

 

اصول امنیت برنامه های وب

اينترنت و به دنبال آن وب ، دنيای نرم افزار را دستخوش تحولات فراوانی نموده است . ظهور نسل جديدی از برنامه های كامپيوتری موسوم به "برنامه های وب " از جمله اين تحولات عظيم است . پس از ارائه سرويس وب در سال 1991، وب سايت های متعددی ايجاد گرديد .  اينگونه سايت ها به منظور ارائه اطلاعات به مخاطبان خود از صفحات وب ايستا استفاده می كردند .در این وب سايت ها ، امكان تعامل كاربر با برنامه وجود نداشت .

رويكرد فوق ،‌ به عنوان نقطه عطفی در برنامه های وب تلقی می گردد چراكه برای اولين مرتبه امكان توليد محتويات پويا در وب سايت ها فراهم گرديد . از آن زمان تاكنون فن آوری های متعددی به منظور توليد برنامه های وب ايجاد شده است .  PHP و ASP.NET نمونه هائی در اين زمينه می باشند .  صرفنظر از اين كه از كدام فن آوری به منظور ايجاد برنامه های وب استفاده می گردد ، ايمن سازی آنان از جمله اهداف مشترك تمامی پياده كنندگان است .

با توجه به اين كه رويكرد فوق با ماهيت و يا روح  نرم افزار چندان سازگار نمی باشد ، تلاش های گسترده ای در جهت ايجاد محتويات پويا انجام و متعاقب آن ، فن آوری های متعددی ايجاد گرديد . به عنوان نمونه ، با پياده سازی فن آوری CGI ( برگرفته از Common Gateway Interface  ) ، امكان استفاده از برنامه های خارجی به منظور توليد محتويات پويا فراهم گرديد . بدين ترتيب ، كاربران قادر به درج اطلاعات و ارسال آنها برای يك برنامه خارجی و يا اسكريپت سمت سرويس دهنده شدند . برنامه موجود در سمت سرويس دهنده پس از دريافت اطلاعات و انجام پردازش های تعريف شده ، نتايج را توليد و آنها را برای كاربر ارسال می نمود .