تست نفوذ

یکی از مهمترین مسائلی که در سال­های اخیر امنیت اطلاعات در سازمان ها را به چالش کشانده است، نبود سازوکار مناسب و اقداماتی است که مشخص کننده وضعیت امنیت و پایداری آن در سازمان­ها باشد. از این رو تست نفوذ (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. تهیه گزارش تست نفوذ و ارائه راه کارها

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

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

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

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

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

Nmap- wireshark- BackTrack- Superscan- NetScanTools

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

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

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

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