روال اجرای تست نفوذ(1)
در طی سالهای اخیر بسیاری از شركت ها برای راحتی بیشتر مشتریان و كارمندان خود، برخی امكانات اضافی را به برنامه های كاربردی موجود اضافه كرده و یا برنامه های كاربردی جدیدی را پیاده سازی كرده اند.
از طرف دیگر بسیاری از شركت ها به ضرورت حضور در اینترنت برای جذب مشتریان بالقوه و حفظ مشتریان فعلی پی برده اند. در هر دو مورد، زمانی كه بحث حضور در اینترنت پیش می آید، عنصر امنیت به خصوص امنیت سرورها اهمیت ویژه ای پیدا می كند. سرورهای وب ، در كنار سرویس های مفید خود، مجموعه جدیدی از آسیب پذیری ها را نیز پدید آورده اند كه لازم است دست اندركاران سیستم های رایانه ای، به خصوص سیستم های مبتنی بر وب، آنها را جدی تلقی كنند. البته آسیب پذیری ها به سرورها محدود نمی شوند و ممكن است به صورت عمدی یا غیر عمدی در طراحی و پیاده سازی برنامه های كاربردی، حتی برنامه هایی كه مدتهاست در حال كار هستند، ایجاد شده باشند. به همین جهت شناسایی آسیب پذیری ها و میزان نفوذ و تأثیر آنها بر روی سیستم از اهمیت ویژه ای برخوردار است. لذا بسیاری از شركت ها برای نیل به هدف فوق از تست نفوذ استفاده می كنند.
پیش نیاز اجرای تست نفوذ
هر شركت یا سازمان، پیش از اجرای تست نفوذ، به یك سیاست امنیتی كامپیوتر نیاز دارد. سیاست امنیتی، یك آئین نامه رسمی از قوانینی است كه باید توسط افرادی كه دسترسی به دارایی های اطلاعاتی و فناوری یك شركت یا سازمان دارند، رعایت شوند. تدوین سیاست امنیتی باید با توجه به ارزش دارایی ها و منابع اطلاعاتی شركت انجام شده و سپس رویه های امنیتی مناسب با آنها ایجاد شوند. فاكتور اصلی در تعیین رویه ها و كنش های امنیتی مناسب در سیاست امنیتی كامپیوتر، هزینه ای است كه شركت در صورت از دست دادن داده ها متحمل می شود. برای مثال، در صورتی كه شركتی با اطلاعات دولتی و یا مالی سر و كار داشته باشد، روند غیر فعال كردن یك حساب كاربری (User ID) در آن، متفاوت از یك دانشكده خواهد بود. به علاوه اگر شركتی دارای اطلاعات خصوصی، اسرار تجاری و یا لیست مشتریانی است كه رقبا نباید از آن اطلاع حاصل كنند، لازم است ارزش امنیتی بالاتری را برای اطلاعات مذكور قائل شده و گام های امنیتی مناسب برای حفاظت از آنها برداشته شود.
یك سیاست امنیتی كامپیوتر باید موارد زیر را پوشش دهد:
-
اتصالات از/به اینترنت
-
اتصالات از طریق خط تلفن (dial-up)
-
امنیت دسترسی فیزیكی
-
مدیریت كلمه عبور
-
مسئولیت ها و حقوق كاربران
-
مسئولیت ها و حقوق مدیران
-
محافظت از اطلاعات حساس
-
روال های پاسخگویی به فوریت ها
-
مستند سازی
-
پشتیبان گیری از اطلاعات
-
گزارش ها و ثبت وقایع (logs)
-
رسیدگی به رخدادها
-
چگونگی گزارش یك مشكل یا رخداد امنیتی
-
تخلفاتی كه باید گزارش شوند
-
اجرای سیاست
-
مسئول نهایی
برنامه ریزی تست نفوذ
قبل
از اجرای تست نفوذ لازم است برای آن برنامه ریزی شده و میزان آزادی عمل
تست و قلمروی آن دقیقاً معین شود. همچنین در این مرحله در مورد اجرای تست
به شیوه جعبه سفید و یا جعبه سیاه تصمیم گیری صورت می گیرد، اعضای تیم مشخص
می گردند، معیارهای موفقیت تست تعریف می شوند و مجوز مدیریت دریافت می
گردد. در این مرحله با توجه به حوزه تست نفوذ، پارامترهای ضروری برای تشخیص
آسیب پذیری ها تعیین می گردد. مواردی كه در زمینه برنامه ریزی تست نفوذ
باید مورد توجه قرار گیرند عبارتند از:
-
مدت زمان انجام تست چقدر است؟
-
چه كسانی از انجام تست اطلاع دارند؟
-
چه كسی تأیید كننده دسترسی غیر مجاز است؟
-
چه منابع و سیستم هایی و چگونه تست شوند ؟
-
تنظیمات فایروال
-
اطلاعات كامل
-
بدون اطلاعات
-
-
سیستم های میزبان
-
وب سرورها
-
انتخاب كلمات عبور
-
چگونگی به اشتراك گذاری
-
سرورهای FTP
-
سیستم تشخیص نفوذ
-
-
سرورهای DNS
-
مودم ها Dial in
-
دسترسی های بی سیم
-
Public Branch Exchange(PBX)
-
غیر فعال سازی UserID و یا روند خارج شدن یك كارمند از سیستم
-
دسترسی های فیزیكی
-
مهندسی اجتماعی
-
كامپیوترهای رومیزی
-
انتخاب كلمات عبور
-
تنظیمات مودم ها برای پاسخگویی اتوماتیك و یا دسترسی به نرم افزارهای خارجی
-
-
-
چگونگی ارائه نتایج
-
بعد از چه مدت زمانی، تست دیگری برای اطمینان از نتایج تغییرات انجام می شود؟
جمع آوری اطلاعات (شناسایی)
پس
از تعیین قلمروی تست نفوذ، نوبت به جمع آوری اطلاعات درباره شركت هدف تست
می رسد. تست نفوذ معمولاً با سه مرحله پیش تست آغاز می شود. footprinting،
scanning و enumerating. این سه مرحله پیش تست بسیار مهم هستند زیرا تفاوت
بین یك تست موفق كه تصویری كامل از شبكه هدف را فراهم می سازد و یك تست
ناموفق كه این كار را انجام نمی دهد، از این سه مرحله ناشی می شود. این سه
با یكدیگر به عنوان گام شناسایی یا reconnaissance شناخته می شوند. در این
گام سعی می شود تا حد امكان اطلاعات در مورد شبكه هدف جمع آوری گردد و شامل
هفت زیر مرحله می شود:
-
جمع آوری اطلاعات اولیه
-
مشخص كردن دامنه آدرس های IP شبكه
-
شناسایی رایانه های فعال
-
كشف پورت های باز و نقاط دسترسی
-
شناسایی سیستم عامل
-
شناسایی سرویس های ارائه شده در هر پورت
-
نگاشت شبكه
در زیر در مورد هر كدام از گام های پیش تست بیشتر توضیح می دهیم:
Footprinting
در
این مرحله دو گام اول مرحله شناسایی یعنی جمع آوری اطلاعات اولیه و مشخص
كردن دامنه آدرس های IP شبكه هدف صورت انفعالی انجام می پذیرد. این مرحله
بسیار مهم است زیرا هكرها می توانند اطلاعات به دست آمده در این مرحله را
بدون آگاهی سازمان هدف جمع آوری كنند. در این زمینه تعدادی منابع و ابزار
رایگان و تجاری وجود دارند كه می توانند در به دست آوردن اطلاعات اولیه كمك
خوبی باشند. دسترسی به بعضی از این منابع مانند خبرنامه های شركت بسیار
آسان است. تست كنندگان با استفاده از این منبع به اطلاعات مفیدی دست پیدا
می كنند كه كارمندان حتی بدون آنكه متوجه باشند آنها را بروز می دهند. دیگر
روش ها برای جمع آوری اطلاعات استفاده از Whois، Nslookup، Smart Whois و
SamSpade است. برای مثال Whois با استفاده از سرویس های دایركتوری،
اطلاعاتی را در مورد دامنه ها و ثبت كنندگان آنها در اختیار می گذارد و
Nslookup یك پرس و جوی تعاملی را با سرورهای نام دامنه انجام می دهد.
Scanning
چهار
مرحله بعدی گام شناسایی (شناسایی رایانه های فعال، كشف پورت های باز و
نقاط دسترسی، شناسایی سیستم عامل و شناسایی سرویس های ارائه شده در هر
پورت) به عنوان بخشی از مرحله پویش یا Scanning در نظر گرفته می شوند. در
این مرحله هدف جمع آوری اطلاعات در مورد پورت های باز، پویش برنامه های
كاربردی، ping كردن دستگاه ها، مشخص كردن حدود شبكه و پویش پورت های هر
دستگاه به تنهایی است. این مرحله نسبت به footprinting پویاتر بوده و
اطلاعات جزئی تری از هدف جمع آوری می شود. مانند مرحله قبل برخی ابزارها در
این مرحله یاری رسانند مانند NMap، ping، Telnet ،Traceroute، SuperScan،
Netcat، NeoTrace و Visual Route. برای مثال با استفاده از Ping می توان یك
تقاضای ICMP ECHO را به یك میزبان شبكه مشخص ارسال كرد. در دستور ping می
توان یك پورت را نیز تعیین كرد كه دریافت پاسخ، نشان دهنده باز بودن پورت
مذكور برای ارتباط TCP/IP است. همچنین با استفاده از Telnet می توان یك
ارتباط تعاملی را با یك میزبان مشخص برقرار كرده و یك پورت را در این دستور
وارد كرد. دریافت پاسخ نشان دهنده باز بودن پورت مذكور برای ارتباط TCP/IP
است. Traceroute ابزار دیگری است كه مسیرهای ارتباطی اینترنت را بین دو
سیستمی كه ارتباط TCP/IP دارند، مشخص می سازد.