اطلاعیه

Collapse
No announcement yet.

روال اجرای "تست نفوذ" چگونه است؟

Collapse
X
 
  • Filter
  • زمان
  • Show
Clear All
new posts

  • روال اجرای "تست نفوذ" چگونه است؟

    در طی سالهای اخیر بسیاری از شركت ها برای راحتی بیشتر مشتریان و كارمندان خود، برخی امكانات اضافی را به برنامه های كاربردی موجود اضافه كرده و یا برنامه های كاربردی جدیدی را پیاده سازی كرده اند. برای مثال می توان به دسترسی آنلاین به خدمات بانكی و یا گسترش شیوه های ارتباط الكترونیك برای كارمندانی كه در خانه كار می كنند، اشاره كرد. از طرف دیگر بسیاری از شركت ها به ضرورت حضور در اینترنت برای جذب مشتریان بالقوه و حفظ مشتریان فعلی پی برده اند. در هر دو مورد، زمانی كه بحث حضور در اینترنت پیش می آید، عنصر امنیت به خصوص امنیت سرورها اهمیت ویژه ای پیدا می كند. سرورهای وب ، در كنار سرویس های مفید خود، مجموعه جدیدی از آسیب پذیری ها را نیز پدید آورده اند كه لازم است دست اندركاران سیستم های رایانه ای، به خصوص سیستم های مبتنی بر وب، آنها را جدی تلقی كنند. البته آسیب پذیری ها به سرورها محدود نمی شوند و ممكن است به صورت عمدی یا غیر عمدی در طراحی و پیاده سازی برنامه های كاربردی، حتی برنامه هایی كه مدتهاست در حال كار هستند، ایجاد شده باشند. به همین جهت شناسایی آسیب پذیری ها و میزان نفوذ و تأثیر آنها بر روی سیستم از اهمیت ویژه ای برخوردار است. لذا بسیاری از شركت ها برای نیل به هدف فوق از تست نفوذ استفاده می كنند.


    پیش نیاز اجرای تست نفوذ

    هر شركت یا سازمان، پیش از اجرای تست نفوذ، به یك سیاست امنیتی كامپیوتر نیاز دارد. سیاست امنیتی، یك آئین نامه رسمی از قوانینی است كه باید توسط افرادی كه دسترسی به دارایی های اطلاعاتی و فناوری یك شركت یا سازمان دارند، رعایت شوند. تدوین سیاست امنیتی باید با توجه به ارزش دارایی ها و منابع اطلاعاتی شركت انجام شده و سپس رویه های امنیتی مناسب با آنها ایجاد شوند. فاكتور اصلی در تعیین رویه ها و كنش های امنیتی مناسب در سیاست امنیتی كامپیوتر، هزینه ای است كه شركت در صورت از دست دادن داده ها متحمل می شود. برای مثال، در صورتی كه شركتی با اطلاعات دولتی و یا مالی سر و كار داشته باشد، روند غیر فعال كردن یك حساب كاربری (User ID) در آن، متفاوت از یك دانشكده خواهد بود. به علاوه اگر شركتی دارای اطلاعات خصوصی، اسرار تجاری و یا لیست مشتریانی است كه رقبا نباید از آن اطلاع حاصل كنند، لازم است ارزش امنیتی بالاتری را برای اطلاعات مذكور قائل شده و گام های امنیتی مناسب برای حفاظت از آنها برداشته شود.
    یك سیاست امنیتی كامپیوتر باید موارد زیر را پوشش دهد:

    اتصالات از/به اینترنت
    اتصالات از طریق خط تلفن (dial-up)
    امنیت دسترسی فیزیكی
    مدیریت كلمه عبور
    مسئولیت ها و حقوق كاربران
    مسئولیت ها و حقوق مدیران
    محافظت از اطلاعات حساس
    روال های پاسخگویی به فوریت ها
    مستند سازی
    پشتیبان گیری از اطلاعات
    گزارش ها و ثبت وقایع (logs)
    رسیدگی به رخدادها
    چگونگی گزارش یك مشكل یا رخداد امنیتی
    تخلفاتی كه باید گزارش شوند
    اجرای سیاست
    مسئول نهایی




    برنامه ریزی تست نفوذ

    قبل از اجرای تست نفوذ لازم است برای آن برنامه ریزی شده و میزان آزادی عمل تست و قلمروی آن دقیقاً معین شود. همچنین در این مرحله در مورد اجرای تست به شیوه جعبه سفید و یا جعبه سیاه تصمیم گیری صورت می گیرد، اعضای تیم مشخص می گردند، معیارهای موفقیت تست تعریف می شوند و مجوز مدیریت دریافت می گردد. در این مرحله با توجه به حوزه تست نفوذ، پارامترهای ضروری برای تشخیص آسیب پذیری ها تعیین می گردد. مواردی كه در زمینه برنامه ریزی تست نفوذ باید مورد توجه قرار گیرند عبارتند از:

    مدت زمان انجام تست چقدر است؟
    چه كسانی از انجام تست اطلاع دارند؟
    چه كسی تأیید كننده دسترسی غیر مجاز است؟
    چه منابع و سیستم هایی و چگونه تست شوند ؟
    تنظیمات فایروال
    اطلاعات كامل
    بدون اطلاعات
    سیستم های میزبان
    وب سرورها
    انتخاب كلمات عبور
    چگونگی به اشتراك گذاری
    سرورهای FTP
    سیستم تشخیص نفوذ
    سرورهای DNS
    مودم ها Dial in
    دسترسی های بی سیم
    Public Branch Exchange)PBX)
    غیر فعال سازی UserID و یا روند خارج شدن یك كارمند از سیستم
    دسترسی های فیزیكی
    مهندسی اجتماعی
    كامپیوترهای رومیزی
    انتخاب كلمات عبور
    تنظیمات مودم ها برای پاسخگویی اتوماتیك و یا دسترسی به نرم افزارهای خارجی
    چگونگی ارائه نتایج
    بعد از چه مدت زمانی، تست دیگری برای اطمینان از نتایج تغییرات انجام می شود؟



    جمع آوری اطلاعات (شناسایی)

    پس از تعیین قلمروی تست نفوذ، نوبت به جمع آوری اطلاعات درباره شركت هدف تست می رسد. تست نفوذ معمولاً با سه مرحله پیش تست آغاز می شود. footprinting، scanning و enumerating. این سه مرحله پیش تست بسیار مهم هستند زیرا تفاوت بین یك تست موفق كه تصویری كامل از شبكه هدف را فراهم می سازد و یك تست ناموفق كه این كار را انجام نمی دهد، از این سه مرحله ناشی می شود. این سه با یكدیگر به عنوان گام شناسایی یا reconnaissance شناخته می شوند. در این گام سعی می شود تا حد امكان اطلاعات در مورد شبكه هدف جمع آوری گردد و شامل هفت زیر مرحله می شود:

    1. جمع آوری اطلاعات اولیه
    2. مشخص كردن دامنه آدرس های IP شبكه
    3. شناسایی رایانه های فعال
    4. كشف پورت های باز و نقاط دسترسی
    5. شناسایی سیستم عامل
    6. شناسایی سرویس های ارائه شده در هر پورت
    7. نگاشت شبكه


    در زیر در مورد هر كدام از گام های پیش تست بیشتر توضیح می دهیم:





    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 دارند، مشخص می سازد.



    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، سرریز بافر و تروجان ها نیز بر روی شبكه شبیه سازی می شوند.



    پاكسازی

    در این مرحله تمام فایل هایی كه در حین تست نفوذ انجام شده اند پاك شده و تمام تنظیمات و یا پارامترهایی كه تغییر یافته اند به حالت اولیه باز می گردند. همچنین تمام ردپاها پاك شده و تمام سیستم هایی كه به آنها نفوذ شده است به حالت پیش از تست نفوذ بر می گردند.





    ارائه نتایج تست

    نتایج تست باید حاوی راه حل هایی برای كاهش و یا حذف آسیب پذیری ها باشد. تفاوت اصلی ممیزی امنیتی و تست نفوذ در نكته مذكور است. باید یك برنامه زمانی برای رفع آسیب پذیری های كشف شده نیز ارائه گردد و بعد از آن دوباره سیستم را برای اطمینان از رفع آسیب پذیری های مذكور بررسی كرد.

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

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


    منبع:
    http://www.netqurd.com

  • #2
    این که خبر نیست !!!

    Comment

    Working...
    X