تولید نرم افزار بصورت ایمن یا امن
در اغلب موارد، اشتباهات برنامه نویسی که به سادگی قابل اجتناب هستند منجر به بروز آسیب پذیری های قابل سوءاستفاده در نرم افزارها می شوند. گروه پاسخگویی به فوریتهای رایانه ای (CERT) در تحلیل هایی که بر روی هزاران آسیب پذیری گزارش شده به این گروه انجام داده، به این نتیجه رسیده است که اکثر آسیب پذیری ها از تعداد کمی خطاهای برنامه نویسی مشترک ناشی می شوند. در صورت آشنایی برنامه نویسان و توسعه دهندگان نرم افزار با روش های نا امن برنامه نویسی و جایگزین کردن آنها با روش های امن، می توان گام بزرگی را برای کاهش و یا حذف آسیب پذیری های یک نرم افزار، قبل از انتشار آن، برداشت. برای تست و ارزیابی برنامههای کاربردی از روشهای زیر استفاده میگردد:
روش تست جعبه سفید (White Box)
تفاوت اصلی تست جعبه سفید و جعبه سیاه در میزان اطلاعاتی از سیستم مورد تست است که در اختیار تست کننده قرار میگیرد. در تست جعبه سفید به تست کننده اطلاعات کاملی از ساختار مورد تست، شامل دیاگرامهای شبکه، کد منبع، و اطلاعات آدرس دهی IP داده میشود. یکی از روش های تست جعبه سفید آورده شده است بازبینی کد منبع می باشد. بازبینی کد منبع، فرایند بررسی دستی کد منبع برنامهی کاربردی برای مراقبت از نکات امنیتی ميباشد. در بسیاری موارد در کدهای نوشته شده آسیبپذیریهای عمده مشاهده میشود، با از بین بردن این خطاها میتوان برنامهی خود را در برابر نفوذ، از دست دادن اطلاعات و فاش شدن اطلاعات حساس مربوط به سازمان محافظت کرد.
روش تست جعبه سیاه (Black Box)
در فرایند تست جعبه سیاه، یک برنامه ی کاربردی بدون هیچگونه اطلاعی از عملکرد داخلی آن اجرا ميشود و سعی ميشود یک آسیب پذیری پیدا شده و سپس از این آسیب پذیری برای نفوذ به سیستم بهره برداری شود. معمولا تیم تستکننده نفوذ همانند دیگر کاربران به برنامه کاربردی دسترسی دارند. تست کننده همانند یک نفوذگر عمل کرده و تلاش می کند که یک آسیب پذیری را پیدا نموده و از آن بهره برداری نماید.
اطلاعات فنی درمورد تست نفوذ
تلاش براي بهبود وضعيت كنوني در هر زمان و مكان و هرموقعيتي به يك اصل تبديل شده است. در واقع يكي از اصول مهم در تمامي سطوح و گرايشهاي كليه استانداردها، در پيش گرفتن فرآيندهايي است كه بهبود وضعيت را در پي داشته باشد. بخصوص اين امر در تكنولوژي اطلاعات يكي از اصول تخطي ناپذير و غير قابل اجتناب است. حال اگر وارد حيطه شبكه هاي كامپيوتر و نيز نرم افزارهاي گوناگون شويم، بايد براي اين فرآيند، راههاي متناسب با آن را در اتخاذ كنيم. يكي از عمومي ترين و مهمترين این راه حلها دراين بخش به معرفی آن میپردازد، استفاده از فرآيند تست نفوذ است.
نفوذ كردن به شبكه هاي كامپيوتري و دسترسي به منابع يک شبكه، در حالت معمول، امري غير قانوني تلقي مي شود اما يك متخصص امنيت، با بستن قراردادي با صاحبان و مديران شبكه و يا يك نرم افزار ، علاوه بر قانوني كردن آن، نتايج آن را به نفع شما باز مي گرداند. او از ديد يك هكر به برنامه يا شبكه شما نگريسته و تلاش مي كند تا كليه مشكلات و شكافهاي امنيتي آن را شناسايي و به شما ارائه دهد. بدين وسيله، شما با رفع اين معايب، علاوه بر بالابردن ميزان امنيت سرويسهاي خود و جلب رضايت بيشتر مشتريان، راه را بر نفوذگران مخرب سد مي كنيد .
معرفی انواع رايج راهکارهای های امنيتی
برخی از راهکارهای امنيتی که بيشتر شناخته شده اند :
آنچه شما با خريد نرم افزار يا سخت افزار به آنها نخواهيد رسيد
اهداف آزمون نفوذ
جنبههاي مختلف يك آزمون نفوذ
پويش شبكه : در اين مرحله، متخصصین با استفاده از ابزارهاي گوناگون پويش شبكه و سرويسهاي شبكهاي، ليست ميزبانها و سرويسهاي فعال و درگاههاي باز مشخص ميشود. با مقايسه نتايج پويش با سياستهاي امنيتي مورد نظر ميتوان موارد مغاير با سياستهاي امنيتي را تشخيص داده و آنها را برطرف نمود. اين موارد انحراف ميتواند ناشي از وجود ميزبانهاي غير مجاز يا بالابودن سرويسهاي غيرضروري بر روي ماشينهاي موجود باشد. همچنين در صورت استفاده از ابزارهاي ويژه پويش، ميتوان نوع سيستمعاملها برنامههاي كاربردي فعال بر روي آنها را نيز بدست آورد.
پويش آسيبپذيريها: در اين مرحله با استفاده از برنامههاي گوناگون پويش آسيبپذيريها، علاوه بر شناخت ميزبانها و سرويسهاي فعال بر روي آنها، نقاط آسيبپذيري موجود نيز كشف و گزارشی توسط متخصصین ارائه ميشود. ابزارهاي پويش آسيبپذيريها، به دو دسته مختلف تقسيم ميشوند: مبتني بر ميزبان و مبتني بر شبكه. ابزارهاي مبتني بر ميزبان، با نصب و اجرا بر روي ميزبان مورد نظر، اقدام به جستجو و كشف نقاط آسيبپذيري مينمايند. با توجه به سطح دسترسي ويژهاي كه اين ابزارها از آن برخوردار ميباشند، امكان كشف آسيبپذيريهاي يك ميزبان را در سطح بالايي فراهم ميآورند. از طرف ديگر، ابزارهاي پويش مبتني بر شبكه، با پويش ميزبان مورد نظر و ارسال ترافيك سعي در كشف نقاط آسيبپذيري مينمايند. براي رسيدن به نتايج مطلوب، هر دو دسته ابزارهاي پويش آسيبپذيري مورد استفاده واقع ميشوند. از طرف ديگر، با توجه به وجود خطاي مثبت غلط در خروجي اين ابزارها نياز به بررسي و تحليل خروجي آنها توسط كارشناسان خبره وجود دارد. خروجي اين مرحله از ارزيابي در برگيرنده اطلاعات مناسبي راجع به آسيبهاي موجود، علت بروز آسيبپذيري و شيوه برطرف كردن يا كاهش مشكلات آنها ميباشد. در حال حاضر، علاوه بر استفاده از ابزارهاي پويش آسيبپذيريها، به منظور شناخت و كشف آسيبپذيري سرويسهاي رايج و مشهور موجود، چكليستهاي ويژهاي نيز توسط كارشناسان اين شركت توليد شده است كه استفاده از آنها كمك فراواني به شناخت آسيبپذيريهاي يك ميزبان يا سرويس خاص نموده و نقاط ضعف ابزارهاي پويش را ميپوشاند.
آزمون گذرواژهها: امنيت گذرواژهها ارتباط مستقيمي با امنيت ميزبانها و سرويسهاي كاربردي دارد. چنانچه گذرواژههاي مورد استفاده به راحتي قابل حدسزدن باشد و يا به صورت ساده و رمزنشده بر روي كانالهاي ارتباطي انتقال يابد، امكان كشف و سوءاستفاده از آنها را فراهم ميآورد. در اين مرحله از ارزيابي، امکان استخراج گذرواژهها با شنود کانالهاي ارتباطي بررسي ميشود. همچنين امکان حدس يا استخراج گذرواژهها از روي فايلهاي ذخيره گذرواژهها مورد بررسي قرار ميگيرد. خروجي اين مرحله، اطلاعات كاملي را راجع به ميزان قوت گذرواژههاي انتخابي و يا چگونگي شنود گذرواژهها ارائه ميدهد.
آزمون رويدادنامهها: سيستمعاملها و برنامههاي كاربردي گوناگون امكانات مختلفي را براي رويدادنگاري اطلاعات فراهم ميآورند. مطالعه و تحليل فايلهاي رويدادنگاري، اطلاعات مناسبي را راجع به عملكرد سيستم و مشكلات موجود در اختيار ارزياب امنيتي قرار ميدهد.
آزمون بررسي جامعيت: بررسي جامعيت فايلها زمينه مناسب را براي پيدا كردن فايلهاي تغييريافته در اختيار ارزياب امنيتي يا مدير سيستم قرار ميدهد.
آزمون برنامههاي مخرب: در حال حاضر بخش عمدهاي از مشكلات كامپيوتري ناشي از گسترش ويروسها و كرمهاي كامپيوتري ميباشد. در اين مرحله، چگونگي و سطح برخورد با برنامههاي مخرب (اعم از ويروس، کرم و اسبتراوا)، قوت آنتيويروس مورد استفاده و مكانيزم بهروز رساني آن مورد بررسي قرار ميگيرد.
آزمون كنترلهاي امنيتي: بررسي قابليتهاي كنترلهاي امنيتي، چگونگي پيكربندي و مديريت آنها، در اين مرحله از ارزيابي انجام ميشود. اين كنترلهاي امنيتي ميتواند شامل تجهيزات شبكهاي (مسيرياب، سوئيچ)، حفاظ و سيستم تشخيص تهاجم باشد.
آزمون حملات از كاراندازي خدمات: با توجه به عوارض سوء حملات از كاراندازي خدمات در برپايي سيستمها، در اين مرحله از ارزيابي، امكان انجام حملات از كاراندازي خدمات بر روي ماشينها و سرويسهاي مختلف مورد بررسي قرار ميگيرد.
استانداردهای تست نفوذ
موسسه های مرتبط برای انجام تست نفوذ از استاندارد های زیر استفاده میکنند:
ISO/IEC ۲۷۰۰۱
ISO/IEC 27002
OSTTMM (Open Source Security Testing Methodology Manual)
OWASP (Open Web Application Security Project) ۲۰۱۳
LPT (Licensed Penetration Tester methodology from EC-Council)