راهنمای جامع تست نفوذ، انواع و نحوه اجرای تست نفوذ

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

تست نفوذ چیست؟

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

آسیب‌پذیری‌ها چگونه ایجاد می‌شوند؟

آسیب‌پذیری‌های امنیتی

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

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

مزایای یک ابزار تست نفود ایده‌آل شامل موارد زیر است.

سپس نیروهای داخلی که آموزش‌های لازم را هم در این رابطه کسب نموده‌اند یا کارشناسان و متخصصین امنیتی باید تست‌های مورد نیاز را اجرا کنند.

ابزارهای تست نفوذ توصیه شده

Acunetix WVS یک بسته کامل را که شامل مجموعه‌ای از امکانات کاربردی و مفید است و به راحتی نیز قابل استفاده می‌باشد در اختیار مهندسان نرم‌افزار و کارشناسان امنیت سایبری قرار می‌دهد.

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

امکانات کلیدی:

شرکت‌های توصیه شده برای اجرای تست نفوذ

تیم‌های توسعه در سازمان‌های ارایه‌دهنده نرم‌افزار به صورت سرویس (SaaS[1]) با استفاده از خدمات «تست نفوذ به صورت سرویس» شرکت Software Secured می‌توانند نرم‌افزارهایی امن به مشتریانشان تحویل دهند. Software Secured امکان اجرای تست‌های مکرر بر روی قطعه کدهای ثابت را برای سازمان‌هایی که کدهای حجیم تولید می‌کنند فراهم می‌نماید. بنا بر نتایج تحقیقات و ارزیابی‌ها، چنین تست‌هایی نسبت به تست‌های نفوذی که فقط یکبار در سال انجام می‌شوند حداقل دو برابر بیشتر خطاهای امنیتی را شناسایی می‌کنند.

امکانات کلیدی:

سایر ابزارهای رایگان:

سرویس‌های تجاری:

چرا باید تست نفوذ را اجرا کنیم؟

امروزه اجرای حملات باج‌افزاری بر علیه سازمان‌های بزرگ بسیار متداول شده و از محبوبیت بسیار زیادی در بین مجرمان سایبری برخوردار است. برای مثال در سال 2017 میلادی عوامل باج‌افزار WannaCry سیستم‌های رایانه‌ای بسیاری از سازمان‌های بزرگ را از کار انداخته و از قربانیان درخواست باج‌های سنگین کردند. یکی از راهکارهای دفاعی کاربردی جهت حفاظت از سیستم‌های اطلاعاتی در برابر نفوذهای امنیتی و حملات باج‌افزاری اجرای منظم تست‌های نفوذ در شبکه‌های سازمانی است .

چه زمان‌هایی تست‌های نفوذ باید انجام شوند؟

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

در تست نفوذ چه مواردی باید تست شوند؟

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

انواع تست‌های نفوذ شامل دو گروه دسته‌بندی متفاوت هستند. در ادامه هر یک از این گروه‌ها را مورد بررسی قرار می‌دهیم.

گروه اول
  1. تست مهندسی اجتماعی: عامل اصلی آسیب‌پذیری‌های امنیتی خطاهای انسانی و روش‌های مهندسی اجتماعی هستند. از این رو همه کارمندان باید از سیاست‌ها و استانداردهای امنیتی پیروی نموده و از ارایه هر گونه اطلاعات حساس از طریق تلفن یا ایمیل جداً خودداری کنند. یکی از روش‌های اجرای بازرسی‌های امنیتی، شناسایی رفتارهای نادرست کارمندان و اصلاح آنها از طریق انجام تست‌های مهندسی اجتماعی است. این تست‌های نفوذ از طریق تلفن یا اینترنت و بر روی یکسری از کاربران، فرایندها و اعضای تیم پشتیبانی انجام می‌شوند. در این فرایند فرد مدنظر باید متقاعد به ارایه یکسری اطلاعات حساس مثل کلمات عبور، اطلاعات کاری مهم و غیره شود.
  2. تست برنامه‌های کاربردی: می‌توانید با استفاده از روش‌های نرم‌افزاری آسیب‌پذیری‌های امنیتی برنامه‌های کاربردی تحت وب و نرم‌افزارهای موجود در محیط هدف را بررسی نموده و مشخص کنید که آیا یک برنامه کاربردی دچار آسیب‌پذیری‌های امنیتی هست یا خیر.
  3. تست نفوذ فیزیکی: امکان بررسی تجهیزات فیزیکی شبکه و نقاط دسترسی جهت شناسایی رخنه‌های امنیتی و همچنین حفاظت از داده‌های حساس توسط روش‌های امنیتی فیزیکی قوی وجود دارد. تست نفوذ فیزیکی ارتباط چندان زیادی با تست نرم‌افزاری ندارد.
  4. تست سرویس‌های شبکه: این تست بسیار رایج است و جهت شناسایی حفره‌های امنیتی موجود در شبکه، به صورت محلی یا از راه دور انجام می‌شود.
  5. تست سمت کلاینت: این تست با هدف شناسایی  آسیب‌پذیری‌های موجود در نرم‌افزارهای سمت کلاینت و سوءاستفاده از آنها اجرا می‌گردد.
  6. شماره‌گیری جنگی (war dial) از راه دور: در این روش مودم‌های موجود در محیط جستجو و شناسایی می‌شود. سپس اجرا کننده تست سعی می‌کند از طریق جستجوی فراگیر یا حدس کلمه عبور به سیستم‌های متصل به این مودم‌ها نفوذ کند.
  7. تست امنیت بی‌سیم: این تست جهت شناسایی نقاط اتصال باز یا شبکه‌های وای‌فای که از ایمنی چندان بالایی برخوردار نیستند انجام می‌شود.

گروه دوم

تکنیک‌های تست نفوذ

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

فرآیند تست نفوذ

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

در مرحله جمع‌آوری داده‌ها از روش‌های مختلف مثل جستجوی گوگل برای کسب اطلاعات درباره سیستم مدنظر استفاده می‌شود. همچنین می‌توانید از فنون تحلیل کد صفحات وب برای کسب اطلاعات بیشتر درباره سیستم، نسخه پلاگین‌ها و نرم‌افزارها استفاده کنید. ابزارها و سرویس‌های رایگان بسیار زیادی هم موجود هستند که اطلاعات کاربردی درباره پایگاه‌های داده، نسخه نرم‌افزارها، نرم‌افزارهای مورد استفاده و پلاگین‌های شخص ثالث مختلف موجود در سیستم‌های هدف را به شما ارایه می‌دهند. در مرحله دوم می‌توانید بر اساس اطلاعات جمع‌آوری شده از مرحله اول نقطه ضعف‌های امنیتی و نقاط نفوذ سیستم هدف را شناسایی کنید. در مرحله اجرای حمله کارشناسان مجرب تست نفوذ و با استفاده از نقاط نفوذ شناسایی شده در مرحله قبل، می‌توانند حملات شبیه‌سازی را بر ضد سیستم‌ها اجرا کنند. مرحله آخر نیز شامل آماده‌سازی گزارش‌های کامل برای انجام اقدامات اصلاحی است. همه آسیب‌پذیری‌های شناسایی شده و روش‌های اصلاحی پیشنهادی در این گزارش‌ها ثبت می‌شوند. می‌توانید متن گزارش آسیب‌پذیری را متناسب با نیازهای سازمان و در یکی از قالب‌های HTML، XML، PDF یا Word انتخاب کنید.

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

هدف اصلی از اجرای تست نفوذ، شناسایی حفره‌های امنیتی سیستم است. در این بخش یکسری از مواردی که نیازمند تست‌های نفوذ هستند را مورد بررسی قرار می‌دهیم.

  1. آیا برنامه کاربردی تحت وب قابلیت شناسایی حملات اسپم صورت گرفته از طریق فرم‌های تماس را دارد.
  2. سرور پروکسی از سیستم در برابر حملات بیرونی و دسترسی هکرها به اطلاعات محرمانه جلوگیری می‌کند. بررسی کنید آیا ترافیک شبکه تحت نظارت تجهیزات پروکسی قرار دارد یا خیر.
  3. مطمئن شوید که ترافیک ورودی و خروجی ایمیل به خوبی فیلتر شده و ایمیل‌های ناخواسته مسدود می‌شوند.
  4. کلاینت‌های ایمیل معمولاً مجهز به فیلترهای داخلی هستند. باید آنها را متناسب با نیازتان پیکربندی کنید. می‌توانید قوانین پیکربندی را به متن، بدنه یا عنوان ایمیل اعمال نمایید.
  5. فایروال‌ها در قالب برنامه‌های نرم‌افزاری و ابزارهای سخت‌افزاری از دسترسی غیرمجاز به یک سیستم و ارسال داده‌ها به خارج از شبکه جلوگیری می‌کنند. تنظیمات فایروال‌های‌تان را بررسی نموده و صحت عملکردشان اطمینان یابید.
  6. سعی کنید به همه سرورها، رایانه‌ها، چاپگرها، دستگاه‌های شبکه و سایر تجهیزات فیزیکی سیستم‌تان نفوذ کنید.
  7. از رمزنگاری کلیه نام‌های کاربری و کلمات عبور و انتقال آنها از طریق کانال‌های امن مثل https اطمینان کسب کنید.
  8. اطلاعات ذخیره شده در کوکی‌های وب‌سایت را بررسی کنید. توجه کنید که این اطلاعات نباید به صورت خوانا ذخیره شوند.
  9. بررسی کنید آیا راهکارهای دفاعی تأثیری در رفع آسیب‌پذیری‌ها دارند یا خیر؟
  10. اطمینان یابید که هیچ پورت بازی در شبکه وجود ندارد.
  11. همه دستگاه‌های تلفن را بررسی کنید.
  12. امنیت شبکه وای‌فای را محک بزنید.

  1. همه متدهای HTTP را بررسی کنید. متدهای PUT و Delete نباید بر روی یک سرور وب فعال باشند.
  2. بررسی کنید آیا کلمات عبور از استادنداردهای تعیین و تنظیم کلمه عبور پیروی می‌کنند یا خیر؟
  3. نام کاربری نباید Admin یا administrator باشد.
  4. پس از چند تلاش ناموفق برای ورود به یک برنامه کاربردی، صفحه ورود باید مسدود گردد.
  5. پیام‌های خطا باید کلی بوده و اطلاعات دقیقی «نام کاربری اشتباه است» یا «کلمه عبور اشتباه است» مثل ارایه نکنند.
  6. بررسی کنید آیا ورودی‌هایی مثل کاراکترهای ویژه، تگ‌های HTML و اسکریپت‌ها کنترل و مدیریت می‌شوند یا خیر.
  7. پیام‌های هشدار یا خطا، نباید حاوی اطلاعات داخلی سیستم باشند.
  8. در صورت بروز مشکل در عملکرد یک صفحه وب، پیام‌های خطای مخصوصی باید به کاربران نمایش داده شود.
  9. استفاده از رکوردهای رجیستری را بررسی کنید. اطلاعات حساس نباید در رجیستری حفظ شوند.
  10. همه فایل‌ها باید پیش از بارگذاری به سرور اسکن شوند.
  11. در هنگام برقراری ارتباط با پیمانه‌های داخلی مختلف برنامه‌های کاربردی، داده‌های حساس نباید از طریق نشانی وب ارسال شوند.
  12. هیچ نام کاربری یا کلمه عبور نباید برای طولانی مدت در سیستم وجود داشته باشد.
  13. همه فیلدهای ورودی را با رشته‌های ورودی طولانی (شامل فاصله و بدون فاصله) بررسی کنید.
  14. بررسی کنید آیا قابلیت بازنشانی کلمه عبور، ایمن هست یا خیر.
  15. آسیب‌پذیری برنامه‌های کاربردی را در برابر تزریق SQL بررسی کنید.
  16. آسیب‌پذیری برنامه‌های کاربردی را در برابر تزریق اسکریپت بین درگاهی بررسی کنید.
  17. اعتبارسنجی‌های مهم باید در سمت سرور انجام شوند و نه با استفاده از جاوا اسکریپت و در سمت کلاینت.
  18. منابع مهم سیستم تنها باید در اختیار افراد و سرویس‌های مجاز باشند.
  19. همه گزارش‌های دسترسی باید با دقت و توجه فراوان و با دسترسی‌های مناسب حفظ شوند.
  20. مطمئن شوید که پس از خروج کاربر، نشست فعال خاتمه می‌یابد.
  21. مطمئن شوید که مرور دایرکتوری در سرور غیرفعال باشد.
  22. همه نسخه‌های پایگاه داده و برنامه‌های کاربردی باید به روز باشند.
  23. دستکاری نشانی وب را امتحان نموده و مطمئن شوید که برنامه‌های کاربردی تحت وب هیچ اطلاعات حساسی را نمایش نمی‌دهند.
  24. نشت حافظه و سرریز بافر را بررسی کنید.
  25. بررسی کنید آیا ترافیک ورودی شبکه برای تشخیص حملات تروجانی اسکن می‌شود یا خیر.
  26. ایمن بودن سیستم در برابر حملات جستجوی فراگیر  (مثل روش آزمون و خطا برای شناسایی کلمات عبور و سایر اطلاعات حساس) را بررسی کنید.
  27. ایمن بودن سیستم را در برابر حملات محروم‌سازی از سرویس بررسی کنید.
  28. آسیب‌پذیری برنامه‌های کاربردی در برابر حملات تزریق اسکرپیت HTML را بررسی کنید.
  29. آسیب‌پذیری در برابر حملات اکتیوایکس و COM را بررسی کنید.
  30. مقاومت سیستم در برابر حملات جعل (جعل آی‌پی، آدرس ایمیل، جعل ARP، جعل ارجاع‌دهنده، جعل شناسه تماس‌گیرنده، مسوم‌سازی شبکه‌های به اشتراک‌گذاری فایل، جعل جی‌پی‌اس و غیره) را بررسی کنید.
  31. مقاومت سیستم در برابر حمله با رشته‌هایی دارای قالب کنترل نشده را بررسی کنید. چنین حملاتی می‌توانند منجر به از کار افتادگی برنامه کاربردی یا اجرای کدهای مخرب بر روی آن شود.
  32. مقاومت سیستم در برابر حمله تزریق XML(که از آن برای تغییر منطق اصلی برنامه کاربری استفاده می‌شود) را بررسی کنید.
  33. حملات متعارف‌سازی (canonicalization) را امتحان کنید.
  34. بررسی کنید که آیا صفحه خطا اطلاعاتی که برای هکرها کاربردی باشند را نمایش می‌دهند یا خیر.
  35. بررسی کنید که آیا داده‌های مهمی مثل کلمات عبور در فایل‌های خاصی ذخیره می‌شوند یا خیر.
  36. بررسی کنید که آیا یک برنامه کاربردی داده‌هایی بیش از آنچه که تقاضا شده را ارایه می‌دهد یا خیر.
  37. موارد ذکر شده از جمله اقدامات ساده‌ای هستند که در هنگام اجرای تست نفوذ انجام می‌شوند. صدها روش پیشرفته تست نفوذ وجود دارد که می‌توانید آنها را به صورت دستی یا با کمک ابزارهای خودکارسازی اجرا کنید.

نتیجه‌گیری

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

[1] Software as a Service

 

منبع: softwaretestinghelp

خروج از نسخه موبایل