تست نفوذ

یکی از مهمترین مسائلی که در سال­های اخیر امنیت اطلاعات در سازمان ها را به چالش کشانده است، نبود سازوکار مناسب و اقداماتی است که مشخص کننده وضعیت امنیت و پایداری آن در سازمان­ها باشد. از این رو تست نفوذ (penetration test) شبکه و سامانه ها یکی از اقدامات کنترلی است که وضعیت امنیتی شبکه و برنامه های کاربردی را بررسی و تحلیل می کند و به سازمان ها کمک می کند تا با شناخت نقاط آسیب پذیر، راه حل های مناسبی را برای بهبود وضعیت امنیت بکار گیرند.در این مقاله سعی شده است تعاریف و اصطلاحات بکار رفته در تست نفوذ را بیان کرده و مراحل و برخی ابزارهای مورد استفاده  در این تست ارائه گردد.

تعریف:

تست نفوذ فرآیندی برای شبیه سازی حملات یک هکر یا یک گروه هکر جهت ارزیابی آسیب پذیری های یک رایانه/سرور یا شبکه صورت می­گیرد، این فرآیند بسته به گستردگی شبکه متغیر بوده و می­تواند شامل تست تمام ضعف های امنیتی سرویس ها، معایب فنی یا آسیب پذیری های مختلف باشد. پس از بررسی و استخراج اطلاعات، این اطلاعات در اختیار مدیر سیستم یا تولیدکنندگان آن قرار می­گیرد تا به موقع برای مقابله با آسیب­پذیری های احتمالی، اقدام های لازم صورت گیرد.

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

چرا تست نفوذپذيري انجام مي­شود؟

تست نفوذ پذيري در سازمان به دلايل زير انجام مي شود:

  1. يافتن حفره هاي امنيتي سيستم هاي مورد استفاده پيش از بهره برداری غیرمجاز ديگران
  2. هكر ها از هر موقعيت زماني و حفره اي امنيتي، براي نفوذ استفاده مي كنند. برخی از آنها به zero-day دسترسي دارند و اغلب از حملات مشخص و قابل جلوگيري استفاده مي كنند. تست نفوذ پذيري ، امنيت شبكه را از ديدگاه هكر مورد بررسي قرار مي دهد ضعف هاي امنيتي كه در تست نفوذ پذيري مشخص مي شود، براي جلوگيري از دسترسي هكرها پوشش داده شده و بر طرف مي شوند.
  3. ارائه گزارشاتي از مشكلات به مديريت سازمان
  4. گروه امنيت در سازمان به نقاط ضعف سيستم آشنايي كافي دارند و تست نفوذ پذيري مي تواند اين نقاط ضعف را در قالب گزارش و بعنوان فرد سومی كه از نتايج اين تست سودي نخواهد برد، به مديريت ارشد سازمان ارائه كرده و تصميم گيري هاي امنيتي سازمان را سرعت بخشد.
  5. بازرسي تنظيمات امنيتي
  6. اگر گروهی، كار امن سازي سيستم هاي سازمان را انجام دهد، تست نفوذپذيري مي تواند گزارشي را در مورد نحوه عملكرد اين گروه امنیتی ارائه دهد. تست نفوذ پذيري، امنيت شبكه را بيشتر نمي كند، بلكه کنترل کننده وضعیت پياده سازي امن سیستم ها در سازمان است.
  7. دوره هاي امنيتي براي كارشناسان بخش شبكه
  8. در جریان تست نفوذ وضعیت امنیت شبکه بررسی شده و مشخص می گردد که كارشناسان شبكه و امنيت سازمان از چه سطح دانشی برخوردار بوده و برای امن سازی از چه روش ها و ابزارهایی استفاده کرده اند همچنین میزان آشنایی کارشناسان با انواع حملات و روش های مقابله سنجیده می شود. لذا می توان به منظور ارتقای دانش و معلومات امنیتی این دسته از کارشناسان سازمان دوره های آموزشی برگزار نمود. این آموزش ها شامل پیکربندی امن شبکه و سیستم ها، شناخت فعاليت ها و ترافيك هاي مشكوك و مخرب و استفاده از ابزارهای امنیتی خواهد بود.
  9. سنجش امنيتي فناوری جديد
  10. بهترين زمان براي تست فناوری جديد، در هنگام توليد آن است. تست نفوذ پذيري روي فناوری ها و نرم افزار های جديد قبل از ارائه شدن در بازار تجاري، اغلب صرفه زماني و اقتصادي را به دنبال داشته و موجب کاهش رویه ارتقا و توزیع در بازار می گردد.

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

از جمله تست های نفوذ که باید صورت گیرد شامل تست ها و ارزیابی های زیر است:

  • سنجش امنيت فيزيكي

 امنيت فيزيكي و محيطي اتاق سرور و سایت ها يکي از جنبه‌هاي‌ بسيار مهمي است که بايد در امنيت شبکه‌هاي‌ رایانه ای، مدنظر قرار گيرد. متاسفانه در طراحي امنيت شبکه‌هاي‌ رایانه ای اغلب به اين اولين لايه امنيتي توجه نمي شود. ايمن کردن نواحي جهت جلوگيري از دسترسي هاي غير مجاز و آسيب رساني به اطلاعات سازمان ها ضروري مي باشد. اطلاعات حياتي و حساس سازمان ها و نيز ابزارهاي پردازش آن ها بايد در نواحي ايمن و محافظت شده که داراي محيط و موانع امنيتي و کنترل هاي ورودي است، قرار گيرند.

  • تست نفوذ شبكه

 امنیت شبکه های داخلی از دو جهت مورد اهمیت است. اول به دلیل احتمال وجود مخاطرات داخلی نظیر کارمندان ناراضی، انتشار کدهای مخرب، سرقت تجهیزات و… . دوم از این منظر که نفوذگران خارجی به هر روشی توانسته باشند به شبکه های داخلی سازمان، شرکت و… نفوذ نمایند و اقدام به تخریب، تعویض، سرقت یا افشای اطلاعات گردند .

  • تست نفوذ شبكه‌هاي بي سيم

 استفاده از شبکه های بی سیم در سازمان ها به عنوان یک راه حل کم هزینه و قابل انتقال رو به افزایش است اما قرار دادن اطلاعات سازمانی و یا اینترنت روی این فناوری با خطراتی همراه است. در واقع نفوذگران قادرند در صورت شکستن موانع امنیتی نه‌چندان قدرتمند این شبکه‌ها، خود را به‌عنوان عضوی از این شبکه‌ها قرارداده و در صورت تحقق این امر، امکان دست‌یابی به اطلاعات حیاتی، حمله به سرویس دهنده‌گان سازمان ، تخریب اطلاعات، ایجاد اختلال در ارتباطات گره‌های شبکه با یکدیگر، تولید داده‌های غیرواقعی و گمراه‌کننده و حتی سوءاستفاده از پهنای ‌باند اینترنت میسر شود.

  • مهندسي اجتماعي

 در این تست کاربران با استفاده از روش های مختلف مانند فریب، جا زدن خود به جای مسئول امنیت یا شبکه یا مدیر بالادستی از نظر سطح آگاهی مورد ارزیابی قرار می گیرند تا سازمان متوجه شود کاربران تا چه میزان از تهدیدات و روش های امنیتی آگاهی دارند و آیا این سطح از دانش منجر به افشای اطلاعات می گردد یا خیر.

  • ارزيابي امنيتی برنامه‌هاي كاربردي

 استفاده روز افزون از وب سایت های اینترنتی همچون بانکداری اینترنتی، فروشگاه های اینترنتی و… نیاز به امنیت را در این زمینه افزوده است. کوچکترین آسیب پذیری ها در سیستم های پرداخت آنلاین می تواند خسارت های سنگین مالی و اعتباری را متحمل بانک و يا شرکت مذکور و… نماید. همانطور که در استانداردهای امنیتی بیان می شود، تست های آزمون نفوذپذیری برنامه های کاربردی به صورت دوره ای، چاره حل این مشکل است. این نوع از آزمون نفوذ در برنامه های کاربردی مبتنی بر زبان­هایPHP، ASP، ASP.Net،JAVA و بانک های اطلاعاتیMSSQL،MYSQLوOracleانجام می گیرد. به منظور این تست می توان از الگوی OWASP استفاده نمود.

  • کنترل و آزمون سيستم‌هاي امنيتي

 با توجه به گسترش تهدیدات باید به صورت دوره ای تمامی تجهیزات و سیاست های امنیتی نیز کنترل شود و مورد ارزیابی قرار گیرد. این سیاست ها روی نرم افزار ها و سخت افزارهای امنیتی اعمال می شود. که در فرآیند تست نفوذ این موارد نیز چک و تست می شود.

انواع تست نفوذ:

تست های نفوذ از دو رویکرد طبقه بندی می شوند:

  1. از نظر میزان اطلاعاتی که در اختیار نفوذکننده قرار می­گیرد.
  2. از نظر مکانی که تست نفوذ از آنجا انجام می شود.

در رویکرد اول سه نوع طبقه بندی وجود دارد :

  • تست جعبه سفید(White-Box Hacking)در این نوع حمله متقاضی حمله اطلاعات کاملی از سیستم را در اختیار تست نفوذ کننده قرار می دهد. حتی ممکن است نقشه شبکه و برنامه ها را داشته باشد.
  • تست جعبه خاکستری(Gray-Box Hacking) در این نوع حمله متقاضی حمله اطلاعات نسبتا مناسبی برای انجام حمله در اختیار تست نفوذ کننده قرار می دهد. در این تست، تست کننده در قالب یک کارمند داخلی سازمان قرار گرفته و برخی دسترسی ها را دارد.
  • تست جعبه سیاه(Black-Box Hacking)در این نوع حمله هیچگونه اطلاعاتی به تیم تست نفوذ کننده یا مهاجمان قرار داده نمی شود.

در رویکرد دوم نیز به دو دسته حمله از داخل سازمان یاInternal Penetration Testو حمله از خارج سازمان یاExternal Penetration Test دسته بندی می شود. در حالت دوم باید سیستم های سازمان به اینترنت یا اینترانت گسترده متصل باشند.

استانداردها و متدولوژی تست نفوذ:

 در حال حاضر شرکت ها و موسسات مختلفی از جمله  EC-Councilدوره هایی را که بر روی تکنیک‌ها و فناوری های هک از دیدگاه حمله تکیه دارد، ارائه می کنند. در این دوره ها، مخاطبین با چک لیست‌های امنیتی آشنا شده و توانایی بررسی سیستم‌های امنیتی موجود را کسب می‌نمایند و قادر به شناسایی آسیب پذیری‌های سیستم و تعیین وضعیت امنیتی یک سازمان با استفاده از تست‌های نفوذ هستند. همچنین با استفاده از حمله به سیستم‌ها، روش‌های دفاعی نیز مورد بررسی قرار خواهند گرفت. از جمله دوره هکر شرافتمند (CEH) یکی از این قبیل دوره ها است که بر پنج مرحله شناسایی، پویش، دسترسی به هدف، حفظ دسترسی و پاک کردن ردپا تکیه دارد. همچنین برخی موسسات از جمله موسسه روش های باز و امن (ISECOM)، موسسه ملی استاندارد و تکنولوژی ایلات متحده (NIST)، گروه امنیتی سیستم های اطلاعاتی باز (OISSG) و پروژه امنیت برنامه های کاربردی وب باز (OWASP) و استاندارد اجرای سنجش نفوذپذیری (PTES) نیز استانداردها و روش های سنجش نفوذ و ارزیابی امنیتی را ارائه کرده اند و تحقیقات مختلفی در این زمینه انجام شده است که نتیجه آن منجر به روش های بهینه، تاکتیک ها و تکنیک های مشخصی برای تست نفوذ شبکه های رایانه ای باسیم و بی سیم، نرم افزار ها و وب سایت ها شده است. از آن جمله می توان به روش و استاندارد OSSTMM، ISAFF، OWASP، NIST و PTES و دوره CEH نیز اشاره نمود.

مراحل تست نفوذ و ابزارها:

مراحل تست نفوذ شامل موارد زیر است:

  1. شناسایی مقدماتی نوع و مشخصات دامنه
  2. جمع آوري اطلاعات در مورد هدف و پویش سیستم ها
  3. ارزيابي آسيب پذيري‌های هدف
  4. نفوذ به سيستم برای اثبات ادعا و ارائه به مسئولان (شبیه سازی)
  5. تهيه گزارش تست نفوذ و ارائه راه کارها

در حقیقت در تست نفوذ به دو مرحله حفظ دسترسی و پاک کردن ردپا که در عملیات هک سیستم ها بسیار پرکاربرد و مورد توجه است، کمتر از مراحل دیگر پرداخته می شود و شاید در بسیاری از تست نفوذها این دو مرحله استفاده نشود.

در هر مرحله از ابزارها و روش های خاصی استفاده می شود که منجر به نتیجه گردد از جمله ابزارهای معروف هر مرحله می توان به موارد زیر اشاره نمود:

1- شناسایی مقدماتی نوع و مشخصات دامنه مورد تست

Google hacking- Ping/telnet/traceroute/whois/netstat

2- جمع آوري اطلاعات و پویش در خصوص شبکه، سیستم ها و سرویس ها

Nmap- wireshark- BackTrack- Superscan- NetScanTools

3- ارزيابي آسيب پذيري‌ها و شناسایی نقاط ضعف

Nessus- Acunetix Web Vulnerability Scanner – openvas – Nexpose- GFI LanGuard

4- نفوذ به سيستم برای اثبات ادعا و ارائه به مسئولان (شبیه سازی)

Metasploit- w3af – Core Impact- Canvas- sqlininja-hydra-burpsuite-cain-aircrack