۱ ارزیابی امنیتی و تست نفوذ
تست نفوذ یا ارزیابی امنیتی روشی است که توسط آن قادر خواهیم بود تا آسیبپذیریهای موجود در شبکه، وبسایت و بانکهای اطلاعاتی و … خود را شناسایی کرده و پیش از آنکه نفوذگران واقعی به سیستم وارد شوند، امنیت شبکه خود را افزایش دهیم. این روش با استفاده از ارزیابی جنبههای مختلف امنیتی کمک میکند تا با کاهش دادن ریسکهای امنیتی موجود در شبکه، سیستمعاملها، بانکهای اطلاعاتی و برنامههای کاربردی، احتمال نفوذ غیرمجاز به شبکه را کاهش دهیم ؛ البته همیشه نفوذگر فرد یا افراد خاطی داخلی و خارجی نیستند , در بسیاری از موارد حملات گسترده و مخاطره آمیز تنها با انتشار یک بدافزار(worm) انجام می پذیرد و در این گونه حملات حجم وسیعی از شبکه مورد تهدید قرار خواهد گرفت .
جهت آشنایی بیشتر با روال اجرایی ارزیابی امنیتی ابتدا باید با حوزه ها , اهداف و فازهای اجرایی ان آشنا شویم :
حوزه های ارزیابی امنیتی و تست نفوذ پذیری عبارتند از :
۱- شبکه های رایانه ای
- شبکه متصل به اینترنت
- § سرویس دهنده ها
- § کاربران
- شبکه داخلی
- § سرویس دهنده ها
- § کاربران
۲- شبکه های ارتباطی
- شبکه های کابلی
- § مبتنی بر Ethernet
- § مبتنی بر فیبر نوری
- شبکه های بیسیم
- § شبکه های بیسیم مبتنی بر پروتکل ۸۰۲٫۱۱
- § شبکه های بیسیم مبتنی بر پروتکل ۸۰۲٫۱۶
- § شبکه های مبتنی بر بلوتوث
- § شبکه های دریافت و ارسال دیجیتال(DVB)
- § شبکه های ماهواره ای
- § شبکه های مخابراتی مبتنی بر GSM و ۳G
3- نرم افزار
- مبتنی بر سیستم عامل
- مبتنی بر وب
۴- سخت افزار
- ارزیابی کارایی
- ارزیابی امنیتی
- شناسایی آسیب پذیری
۵- پروتکلهای ارتباطی و رمزنگاری
- تحلیل پروتکل
- ارزیابی امنیتی
- شناسایی الگورتیم
- رمزگشایی الگوریتم مبتنی بر تحلیل اماری
2 اهداف ارزیابی امنیتی و تست نفوذ
هدف از تست نفوذ , یافتن آسیبپذیری سیستم قبل از نفوذگران و افراد مغرض در زمینههای زیر میباشد:
- امنیت فیزیکی سیستمها و سیاست های امنیتی
- مانیتورینگ سرویسها
- سیاستهای کلمات عبور و کلید های رمزنگاری
- سیاستهای تقسیم بندی مناسب ناحیه های سرویس دهی
- معماری شبکه و پروتکلهای ارتباطی
- طراحی زیرساخت مناسب
- طراحی معماری لایه ای
- امنیت پروتکلهای ارتباطی
- سیستمعامل
- پیکربندی صحیح سیستم عامل
- استفاده از سیستم عامل مناسب با کاربرد
- به روزرسانی و تنظیمات امنیتی
- سرویسهای شبکه و بانکهای اطلاعاتی
- پیکربندی صحیح سرویس دهنده
- پیکربندی امنیتی متناسب با سرویس
- استفاده از سرویس دهنده متناسب با سرویس
- برنامههای کاربردی تحت شبکه و وب
- شناسایی آسیب پذیری های برنامه نویسی
- ارزیابی امنیتی نرم افزار های کاربردی
- امنیت نرم افزارهای تحت شبکه
- شناسایی آسیب پذیری های سمت کلاینت
- شناسایی میزان آسیب پذیری کلاینتهای شبکه
- طراحی سامانه های فراگیر آنتی ویروس
- مانیتورینگ و کنترل دسترسی کاربران
تست نفوذ را از دیدگاه میزان اطلاعاتی که در اختیار تیم نفوذ است میتوان به سه دسته White-Box ،Black-Box و Gray-Box و از دیدگاه مکان انجام تست نفوذ میتوان به Internal و External تقسیم نمود.
3 روشهای ارزیابی
Black-Box ، White-Box و Gray-Box
تستهای نفوذ قابل انجام به روشهای متفاوتی است. بیشترین تفاوت بین این روشها در میزان اطلاعاتی است که از جزییات پیادهسازی سیستمی که در حال تست است در اختیار کسانی که تست نفوذ را انجام میدهند، قرار دارد. با توجه به این موضوع تست نفوذ را میتوان به سه دسته Black-Box، White‑Box و Gray-Box تقسیم نمود.
تست Black-Box با فرض نبود هیچ دانش قبلی از زیر ساختهایی است که قرار است مورد تست قرار گیرند. متخصصان باید ابتدا مکان و گستره سیستمها را قبل از آنکه آنالیز و بررسی خود را انجام دهند به طور دقیق مشخص کنند. تست Black-Box در واقع شبیهسازی کردن حملهای است که توسط نفوذگری انجام میشود که در ابتدا با سیستم آشنایی ندارد.
از سوی دیگر در تست White-Box اطلاعات ضروری مانند معماری شبکه ، سورس کد و اطلاعات آدرس IP در اختیار تیم ارزیابی امنیتی قرار میگیرد. تست White-Box حملهای را شبیه سازی میکند که ممکن است در اثر افشای اطلاعات محرمانه از شبکه داخلی یا حضور نفوذگر در داخل سازمان، بوجود آید. در این حالت تست نفوذ با پیشفرض دسترسی نفوذگر به سورس کد و معماری شبکه و شاید حتی دسترسی به بعضی از کلمات عبور، انجام میشود. تست White-Box دارای گستردگی وسیعی میباشد و محدوده آن از یک بررسی روی شبکه محلی تا جستجوی کامل سورس نرم افزار کاربردی به منظور کشف آسیبپذیری هایی که تا کنون از دید برنامه نویسان مخفی مانده میباشد.
روش های متنوع دیگری نیز وجود دارد که در واقع مابین دو روش ذکر شده در بالا قرار میگیرند که معمولا از آنها به تست های Gray-Box تعبیر میشود.
۴ تست External و Internal
تست External به انواع تستهایی اطلاق میشود که در خارج از محدوده سازمانی که قرار است مورد تست نفوذ قرار بگیرد، انجام میشود و تستهای Internal در حوزه مکانی آن سازمان و در میان افرادی که آن سازمان فعالیت میکنند انجام می شود.
نوع اول در واقع سناریویی را بررسی میکند که مهاجم با دسترسی داشتن به منابع مورد نیاز خود از جمله آدرس های IP که از سازمان مورد نظر در اختیار دارد و یا با در اختیار داشتن سورس کد نرم افزار هایی که در سازمان استفاده می شوند و در اینترنت موجود می باشد ؛ اقدام به پویش و کشف آسیب پذیری نماید.
در نوع دوم سناریویی بررسی میشود که مهاجم به هر طریق ممکن موفق به ورود به سازمان مورد نظر شده و با جمع آوری داده های مورد نظر اقدام به حمله میکند. با ورود به محدوده مکانی یک سازمان مهاجم می تواند سناریو های مختلفی را پیاده سازی نماید برای نمونه با استفاده از شبکه بیسیم داخلی و بررسی داده های به اشتراک گذاشته شده که می تواند اطلاعات کارمندان باشد، حدس زدن کلمات عبور اصلی برای مهاجم سادهتر خواهد شد.
۵ تست نفوذ برنامههای کاربردی تحت وب
امروزه بسیاری از خدمات الکترونیکی در اینترنت با استفاده از نرمافزارهای تحت وب ارائه میشود و امنیت این نرم افزارهای از اهمیت بسیاری برخوردار است. تستنفوذ برنامههای وب به مجموعه ای از رویههایی که برای نمایان ساختن اشکالات امنیتی مربوط به برنامه های وب انجام میشود اطلاق میگردد. از آنجاییکه آسیبپذیریهای موجود در نرمافزارهای تحت وب با آسیبپذیریهای سایر نرمافزارهای متفاوت است، در تست نفوذ رویههای خاصی برای تست امنیت نرمافزارهای تحت وب و Web Service ها وجود دارد. این رویهها به شناسایی و رفع این اشکالات کمک شایانی خواهد کرد.
۶ تست نفوذ در لایه سیستم عامل
تست نفوذ سیستمعامل شامل تست کامل سیستمعاملهای استفاده شده در ساختار شبکه سازمان مورد نظر از جمله سرویسهای راه اندازی شده روی سیستم عاملها میباشد.
در ابتدا تنظیمات امنیتی سرویسهای مختلف مورد بررسی قرار می گیرند ، و سپس آسیب پذیری های مختلفی که تاکنون روی این سرویس ها پیدا شده به طور دقیق تست خواهد شد. سناریوهای جدیدی که مختص شبکه و سازمان مورد نظر است نیز، مورد بررسی قرار خواهند گرفت .
در مرحله بعد تمرکز بر روی تنظیمات خود سیستم عامل و همچنین هسته آن خواهد بود . بررسی کاملی از وصله های امنیتی نصب شده بر روی سیستم ها و وضعیت کارآمد بودن آنها انجام خواهد شد تا از نفوذ در سیستم عامل با آسیب پذیریهایی که هم اکنون در سیستم عامل مورد نظر موجود است، جلوگیری به عمل آید.
۷ تست نفوذ در لایه کلاینت
در این فاز از تست امنیتی جدید ترین آسیب پذیری های سمت کاربر و اپراتورهای سایت تست خواهد شد تا میزان آسیب پذیری مدیران و تیم پشتیبانی در مقابل حملات سمت کاربر تا چه اندازه می باشد , همانطور که می دانیم بسیاری از حملات اینترنتی به سایتهای بزرگ و حتی مراکز داده توسط روش هایی صورت می پذیرد که به آن مهندسی اجتماعی گفته می شود اما این روش ها فراتر از حرف است .
بسیاری از نفوذگرها با ارسال نامه های آلوده به تیم مدیریت یا پشتیبانی سایتها اقدام به آلوده سازی سیستم های کاربران نموده و از آن طریق اقدام به نصب انواع تروجان ها و کیلاگرها خواهند نمود و سپس به سادگی کلمات عبور را استخراج و به سایت وارد خواهند شد.
این آسیب پذیری های می تواند بر روی نرم افزار آفیس یا نمایشگر اینترنت IE یا … باشد و بررسی آنها نیازمند کنترل های دقیق امنیتی می باشد.
۸ فازینگ و مهندسی معکوس
ارزیابی امنیتی و تست نفوذ در برخی از موارد کارایی مناسبی ندارد به عنوان مثال روالهای مناسبی جهت شناسایی آسیب پذیری در سخت افزارهای صنعتی توسط تست نفوذ پوشش داده نمی شود همچنین آنالیز برخی از نرم افزاری که کد و سورس آنها در اختیار نیست.
در این شرایط تکنیک های پیشرفته ای مانند مهندسی معکوس و فازینگ راه گشا خواهند بود این تکنیکها برای ارزیابی سخت افزارهای صنعتی و مخابراتی و همچنین نرم افزارهای خارجی که کد آنها در اختیار مشتری قرار ندارد مفید خواهند بود .