هر شركت یا سازمان، پیش از اجرای تست نفوذ، به یك سیاست امنیتی كامپیوتر نیاز دارد. سیاست امنیتی، یك آئین نامه رسمی از قوانینی است كه باید توسط افرادی كه دسترسی به دارایی های اطلاعاتی و فناوری یك شركت یا سازمان دارند، رعایت شوند. تدوین سیاست امنیتی باید با توجه به ارزش دارایی ها و منابع اطلاعاتی شركت انجام شده و سپس رویه های امنیتی مناسب با آنها ایجاد شوند. فاكتور اصلی در تعیین رویه ها و كنش های امنیتی مناسب در سیاست امنیتی كامپیوتر، هزینه ای است كه شركت در صورت از دست دادن داده ها متحمل می شود. برای مثال، در صورتی كه شركتی با اطلاعات دولتی و یا مالی سر و كار داشته باشد، روند غیر فعال كردن یك حساب كاربری (User ID) در آن، متفاوت از یك دانشكده خواهد بود. به علاوه اگر شركتی دارای اطلاعات خصوصی، اسرار تجاری و یا لیست مشتریانی است كه رقبا نباید از آن اطلاع حاصل كنند، لازم است ارزش امنیتی بالاتری را برای اطلاعات مذكور قائل شده و گام های امنیتی مناسب برای حفاظت از آنها برداشته شود.
یك سیاست امنیتی كامپیوتر باید موارد زیر را پوشش دهد:
- اتصالات از/به اینترنت
- اتصالات از طریق خط تلفن (dial-up)
- امنیت دسترسی فیزیكی
- مدیریت كلمه عبور
- مسئولیت ها و حقوق كاربران
- مسئولیت ها و حقوق مدیران
- محافظت از اطلاعات حساس
- روال های پاسخگویی به فوریت ها
- مستند سازی
- پشتیبان گیری از اطلاعات
- گزارش ها و ثبت وقایع (logs)
- رسیدگی به رخدادها
- چگونگی گزارش یك مشكل یا رخداد امنیتی
- تخلفاتی كه باید گزارش شوند
- اجرای سیاست
- مسئول نهایی
برنامه ریزی تست نفوذ
قبل از اجرای تست نفوذ لازم است برای آن برنامه ریزی شده و میزان آزادی عمل تست و قلمروی آن دقیقاً معین شود. همچنین در این مرحله در مورد اجرای تست به شیوه جعبه سفید و یا جعبه سیاه تصمیم گیری صورت می گیرد، اعضای تیم مشخص می گردند، معیارهای موفقیت تست تعریف می شوند و مجوز مدیریت دریافت می گردد. در این مرحله با توجه به حوزه تست نفوذ، پارامترهای ضروری برای تشخیص آسیب پذیری ها تعیین می گردد. مواردی كه در زمینه برنامه ریزی تست نفوذ باید مورد توجه قرار گیرند عبارتند از:
-
مدت زمان انجام تست چقدر است؟
-
چه كسانی از انجام تست اطلاع دارند؟
-
چه كسی تأیید كننده دسترسی غیر مجاز است؟
-
چه منابع و سیستم هایی و چگونه تست شوند ؟
-
تنظیمات فایروال
-
اطلاعات كامل
-
بدون اطلاعات
-
-
سیستم های میزبان
-
وب سرورها
-
انتخاب كلمات عبور
-
چگونگی به اشتراك گذاری
-
سرورهای FTP
-
سیستم تشخیص نفوذ
-
-
سرورهای DNS
-
مودم ها Dial in
-
دسترسی های بی سیم
-
Public Branch Exchange)PBX)
-
غیر فعال سازی UserID و یا روند خارج شدن یك كارمند از سیستم
-
دسترسی های فیزیكی
-
مهندسی اجتماعی
-
كامپیوترهای رومیزی
-
انتخاب كلمات عبور
-
تنظیمات مودم ها برای پاسخگویی اتوماتیك و یا دسترسی به نرم افزارهای خارجی
-
-
-
چگونگی ارائه نتایج
-
بعد از چه مدت زمانی، تست دیگری برای اطمینان از نتایج تغییرات انجام می شود؟
جمع آوری اطلاعات (شناسایی)
پس از تعیین قلمروی تست نفوذ، نوبت به جمع آوری اطلاعات درباره شركت هدف تست می رسد. تست نفوذ معمولاً با سه مرحله پیش تست آغاز می شود. footprinting، scanning و enumerating. این سه مرحله پیش تست بسیار مهم هستند زیرا تفاوت بین یك تست موفق كه تصویری كامل از شبكه هدف را فراهم می سازد و یك تست ناموفق كه این كار را انجام نمی دهد، از این سه مرحله ناشی می شود. این سه با یكدیگر به عنوان گام شناسایی یا reconnaissance شناخته می شوند. در این گام سعی می شود تا حد امكان اطلاعات در مورد شبكه هدف جمع آوری گردد و شامل هفت زیر مرحله می شود:
2. مشخص كردن دامنه آدرس های IP شبكه
3. شناسایی رایانه های فعال
4. كشف پورت های باز و نقاط دسترسی
5. شناسایی سیستم عامل
6. شناسایی سرویس های ارائه شده در هر پورت
7. نگاشت شبكه
در زیر در مورد هر كدام از گام های پیش تست بیشتر توضیح می دهیم:
Footprinting
در این مرحله دو گام اول مرحله شناسایی یعنی جمع آوری اطلاعات اولیه و مشخص كردن دامنه آدرس های IP شبكه هدف صورت انفعالی انجام می پذیرد. این مرحله بسیار مهم است زیرا هكرها می توانند اطلاعات به دست آمده در این مرحله را بدون آگاهی سازمان هدف جمع آوری كنند. در این زمینه تعدادی منابع و ابزار رایگان و تجاری وجود دارند كه می توانند در به دست آوردن اطلاعات اولیه كمك خوبی باشند. دسترسی به بعضی از این منابع مانند خبرنامه های شركت بسیار آسان است. تست كنندگان با استفاده از این منبع به اطلاعات مفیدی دست پیدا می كنند كه كارمندان حتی بدون آنكه متوجه باشند آنها را بروز می دهند. دیگر روش ها برای جمع آوری اطلاعات استفاده از Whois، Nslookup، Smart Whois و SamSpade است. برای مثال Whois با استفاده از سرویس های دایركتوری، اطلاعاتی را در مورد دامنه ها و ثبت كنندگان آنها در اختیار می گذارد و Nslookup یك پرس و جوی تعاملی را با سرورهای نام دامنه انجام می دهد.
در این مرحله دو گام اول مرحله شناسایی یعنی جمع آوری اطلاعات اولیه و مشخص كردن دامنه آدرس های 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 دارند، مشخص می سازد.
Enumerating
آخرین مرحله گام شناسایی نگاشت شبكه است كه با استفاده از اطلاعات Scanning انجام شده و مرحله Enumerating را تشكیل می دهد. در این مرحله هدف طراحی یك تصویر نسبتاً كامل از شبكه هدف است. در این مرحله اطلاعات نام كاربران و گروه ها، منابع شبكه به اشتراك گذاشته شده و برنامه های كاربردی جمع آوری می گردد. مخصوصاً اطلاعات مربوط به سیستم عامل مورد استفاده (همراه با نسخه آن) و برنامه های كاربردی نصب شده و نسخه آنها اطلاعات باارزشی در این زمینه محسوب می شوند. با دانستن نوع سیستم عامل و برنامه های كاربردی می توان از آسیب پذیری های شناخته شده موجود در آنها جهت پیاده سازی نفوذ استفاده كرد. در این مرحله می توان از تكنیك های زیر استفاده كرد:
- به دست آوردن اطلاعات Active Directory و شناسایی كاربران آسیب پذیر
- شناسایی NetBIOS با استفاده از Nbscan
- استفاده از SNMPutil برای SNMP
- به كارگیری پرس و جوهای DNS
- ایجاد ارتباطات و نشست هایnull
هر كدام از ابزارها و تكنیك های فوق می توانند در مورد ارتباطات شبكه و یا سیستم میزبان نیز اطلاعات بیشتری را در اختیار بگذارند. در این مرحله از تست كه اولین مرحله است، توصیه به جمع آوری هر چه بیشتر اطلاعات می شود. اطلاعات مذكور از طرفی انتخاب تست های قابل انجام را راحت تر می كنند و از طرف دیگر تست را بیشتر به شبیه سازی یك نفوذ واقعی هدایت می كنند. هكرهای واقعی قبل از انجام حمله تا جایی كه می توانند به مطالعه و تحقیق در مورد سیستم مورد حمله می پردازند و لذا یك انجام دهنده تست نفوذ نیز بایستی با اطلاعاتی مشابه یك هكر واقعی به انجام تست بپردازد. هر چقدر اطلاعات كمتری توسط ابزارهای فوق به دست آید، نشان دهنده امنیت بالاتر سیستم است.
به كارگیری آسیب پذیری ها با هدف نفوذ
در مرحله سوم تست نفوذ، برای شناسایی مشكلات مربوط به تنظیمات سیستم، از ابزارهای پویش كردن آسیب پذیری ها و Password Crackers استفاده می شود. برخی از ابزارهای قابل استفاده در این زمینه عبارتند از:
Nessus – ابزاری برای تشخیص آسیب پذیری ها در سیستم های Unix
SARA – دومین نسل از ابزار پویش آسیب پذیری SATAN
Whisker – ابزار پویش آسیب پذیری در CGI
Hping2 – یك ابزار شبكه است كه می تواند بسته های دلخواه ICMP، UDP و TCP را ارسال كند و برای آزمودن قوانین فایروال و بررسی قطعات (fragments) بسته ها استفاده می شود.
Firewalk - یك ابزار شبیه دنبال كننده های مسیر است كه اجازه دسترسی به Access Control List یك فایروال را می دهد و همچنین امكان در آوردن نقشه شبكه را نیز فراهم می كند.
(NAT(NetBIOS Auditing tool – یك ابزار برای مشخص كردن آسیب پذیری ها در تنظیمات NetBIOS یك سیستم NT است.
Toneloc – ابزاری برای بررسی مودم سیستم های رومیزی است كه برای جواب دهی اتوماتیك و یا اجرای نرم افزار از راه دور به كار می روند.
برخی ابزارهای تجاری نیز در این زمینه وجود دارند كه عبارتند از:
(Internet Security Server (ISS – این محصول بسیار پر كاربرد است و بسیاری از شركت های انجام دهنده تست نفوذ از آن برای شناسایی آسیب پذیری ها استفاده می كنند.
CyberCop – این ابزار نیز برای پویش آسیب پذیری ها به كار می رود.
Phonesweep - ابزاری برای بررسی مودم سیستم های رومیزی است كه برای جواب دهی اتوماتیك و یا اجرای نرم افزار از راه دور به كار می روند.
به غیر از موارد ذكر شده در بالا ابزارهایی نیز برای تشخیص نفوذ و مدیریت داده های تولید شده در روند تشخیص نفوذ وجود دارند. البته مبحث تشخیص نفوذ با اینكه مرتبط با تست نفوذ است ولی نیازمند بررسی جداگانه و مفصلی است و لذا از آوردن ابزارهای مرتبط با آن خودداری كرده ایم.
بعد از انتخاب ابزارهای ارزیابی آسیب پذیری، باید از آنها بر روی سیستم ها و شبكه استفاده كرد. اطلاعاتی كه از ابزارهای فوق به دست می آید، به روشنی آسیب پذیری های اصلی را مشخص می كنند. در این مرحله لازم است با توجه به نوع نفوذ، كاری انجام داد تا وجود آسیب پذیری را به اثبات رساند. برای مثال باید فایلی را در منطقه كنترل شده قرار داد و یا كلمه عبور مربوط به نام كاربری مهمان را تغییر داد. همچنین در موارد دسترسی های فیزیكی باید بخشی از پرونده ای را برداشت و یا در شبیه سازی حملات مهندسی اجتماعی می توان به شماره تلفن منزل مدیر سیستم دسترسی پیدا كرد.
در این مرحله برخی از حملات مانند حملات تزریق SQL، XSS، سرریز بافر و تروجان ها نیز بر روی شبكه شبیه سازی می شوند.
پاكسازی
در این مرحله تمام فایل هایی كه در حین تست نفوذ انجام شده اند پاك شده و تمام تنظیمات و یا پارامترهایی كه تغییر یافته اند به حالت اولیه باز می گردند. همچنین تمام ردپاها پاك شده و تمام سیستم هایی كه به آنها نفوذ شده است به حالت پیش از تست نفوذ بر می گردند.
No comments:
Post a Comment