تست نفوذ پذیری یا پن تست چیست؟ و انواع آن کدامند؟

0 383
۵/۵ - (۳۱ امتیاز)

فهرست

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

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

در سال ۱۹۶۰ میلادی که محبوبیت سیستم های اشتراک زمانی یا Time-Sharing که می توانستند منابع را روی کانال های ارتباطی در اختیار سایرین قرار دهند، چالش امنیت جدیدی ایجاد شد. به گفته ی راسل و گنگمی سال ۱۹۶۰ شروع واقعی امنیت سیستم های کامپیوتری بود.
نفوذ در امنیت سایبری به معنای دسترسی به یک مولفه با روشی غیرمعمول می باشد. غیرمعمول بودن یک روش دسترسی با میزان انحراف مدل دسترسی به سیستم با مدلی که طراح و توسعه دهنده برای آن مولفه در نظر گرفته است مشخص می شود. برای مثال وارد شدن یک فرد مجاز به یک سامانه با استفاده از نام کاربری و کلمه عبور مجاز یک روش دسترسی به حساب سامانه است که طراح و توسعه دهنده برای استفاده از سیستم توسط کاربران در نظر گرفته اند. حال فرض کنید یک مهاجم مثلا با استفاده از حمله XSS اقدام به ربودن نشست یک کاربر مجاز کرده و وارد سامانه می شود. این روش ورود به سامانه و دسترسی به حساب کاربری یک کاربر مجاز توسط یک مهاجم یک دسترسی غیرمعمول است. برخی از فعالان حوزه امنیت عملیات تخریب، مثلا تخریب توسط حملات داس را هم نوعی نفوذ در نظر می گیرند.

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

با روشن شدن معنی نفوذ در امنیت سایبری، تست نفوذ یا تست نفوذپذیری به عملیات سیستماتیک مجازی گفته می شود که در آن یک متخصص تست نفوذ یا Pentester، سعی در نفوذ به یک چارچوب مشخص را دارد. این چارچوب می تواند یک شبکه، سرور، وب اپلیکیشن، نرم افزار، وب سایت و… باشد. هدف از این عملیات بررسی نقاظ ضعف امنیتی مولفه های مختلف پیش از وقوع حادثه واقعی می باشد. مجاز بودن این عملیات به معنای درخواست پن تست توسط مالک سیستم می باشد. در واقع در یک تست نفوذ، حملات سایبری روی یک سیستم کامپیوتری، به منظور ارزیابی امنیتی سیستم مورد نظر، شبیه سازی می شوند. پن تست روشی برای محک زدن برنامه نویسان، توسعه دهندگان و… نیست بلکه یک متخصص Pentest همراه با نیروهای دیگر از جمله برنامه نویسان و توسعه دهندگان سعی در ارائه محصولی قابل اعتماد دارند.

تفاوت تست نفوذ با ارزیابی آسیب پذیری و هک قانونمند

تست نفوذ با ارزیابی آسیب پذیری یا Vulnerability Assessment و هک قانونمند یا Ethical Hacking متفاوت است. در ارزیابی آسیب پذیری یک ارزیاب سعی در پیدا کردن آسیب پذیری های شناخته شده و میزان در معرض خطر نفوذ قرار گرفتن دارد حال آنکه در پن تست سعی می شود از آسیب پذیری ها در جهت نفوذ بهره برداری شود تا میزان دسترسی مهاجم به سیستم مشخص شود. همچنین در هک قانونمند یک هکر می تواند بدون محدودیت نفوذ خود را انجام دهد و از هر متدی که بتواند توسط آن نفوذ را انجام دهد استفاده کند اما در تست نفوذ تمرکز بر روی ضعف های امنیتی می باشد. برای مثال در هک قانومند، هکر می تواند از انواع مختلف فیشینگ، نقض محدودیت های مربوط به محیط فیزیکی، حملات بروت فورث یا Brute Force، استفاده از حمله مرد میانی یا Man in the Middle، حملات جعل مثلا جعل DHCP و هر متد دیگری برای نفوذ استفاده کند.

تست نفوذ جعبه سفید، جعبه خاکستری و جعبه سیاه چیست؟

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

مراحل تست نفوذ

جیمز اندرسون در مطالعات خود روی امنیت سیستم های اشتراک زمانی در سال ۱۹۷۱ در پنتاگون، عوامل و عملیات اساسی در یک تست نفوذ را ارائه داد. این عوامل عبارتند از:

  • پیدا کردن یک آسیب پذیری قابل بهره برداری
  • طراحی حمله برای آن
  • آزمایش حمله
  • نهایی کردن یک متد حمله
  • اجرای حمله
  • استفاده از نفوذ انجام شده برای هدف نهایی (دسترسی به اطلاعات)

این عوامل، مراحل کلی و سطح بالای یک نفوذ به یک سیستم کامپیوتری را مشخص می کند. اما در مورد تست نفوذ باید بگوییم تست نفوذ یک عملیات تکراری است که از فازهای مختلف تشکیل شده است. شاید بتوان گفت پرتکرارترین فاز یک عملیات پن تست، فاز جمع آوری اطلاعات با روش های مختلف به منظور بدست آوردن حداکثر اطلاعات مربوط به سیستم است. توجه شود جمع آوری اطلاعات تنها محدود به اطلاعات عمومی موجود در اینترنت نیست بلکه برای این مرحله می توان از توسعه برنامه های قدرتمند برای بررسی ویژگی های شبکه تا کسب اطلاعات از دارک وب (Dark Web) و دیپ وب (وب عمیق یا Deep Web) استفاده کرد.

اگر از قرارداد و مراحل اداری اولیه برای انعقاد یک قرارداد تست نفوذ عبور کنیم (در مقالات بعدی این موارد را موشکافی خواهیم کرد) می توان مراحل تست نفوذ را به دسته های زیر تقسیم کرد:

  • جمع آوری اطلاعات یا Information Gathering و شناسایی یا Reconnaissance: بدست آوردن اطلاعات مهم و اساسی از هدف. این کار با بررسی اطلاعات موجود در اینترنت یا شناسایی دستی و غیرعمومی انجام می شود. برای مثال در این فاز می توان از اسپایدر فوت یا SpiderFoot استفاده کرد.
  • اسکن یا Scanning: تحلیل سیستم به منظور دریافت اطلاعات دقیق تر (برای مثال پورت های باز، سرویس های در حال فعالیت و…). در این فاز از اسکنرهای آسیب پذیری رایگان یا تجاری و یا اسکریپت های دستی استفاده می شود.
  • بدست آوردن دسترسی یا Gaining Access: در این فاز متخصص با استفاده از قسمت های قبلی اقدام به نفوذ به سیستم می کند. در این مرحله می توان با اکسپلویت کردن یک آسیب پذیری به سیستم یا شبکه وارد شد. فریم ورک معروف و قدرتمند متاسپولیت برای این فاز کارآمد است.
  •  پایداری دسترسی یا Maintaining Access: در این مرحله متخصص اقدام به تثبیت دسترسی می کند. برای مثال از یک بکدور یا Backdoor استفاده می کند.
  • بهره برداری نهایی یا Post Exploitation: در این مرحله متخصص اقدام به بهره برداری از حمله می کند. برای مثال برای اثبات امکان سرقت اطلاعات چند نمونه از دسترسی به اطلاعات را ارائه می کند. این ویدئو آموزشی را ببینید.
  • پاک کردن رد پا یا Covering Tracks: در این فاز متخصص باید کلیه ردپاهای خود از حافظه، لاگ ها و… پاک کند.
  • تحلیل نهایی و ارائه گزارش (و احتمالا راهکارهای ابتدایی برای جلوگیری) یا Reporting: یک سند شامل آسیب پذیری ها، درجه آسیب پذیری ها، اثبات و راهکار جزئی به مشتری ارائه می شود.
مراحل تست نفوذ
مراحل Pentest

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

تست نفوذ خودکار، دستی و ترکیبی

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

مقایسه تست نفوذ خودکار و تست نفوذ دستی

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

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

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

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

در این قسمت به معرفی چند ابزار، سیستم عامل و فریم ورک مشهور و قوی در زمینه تست نفوذ می پردازیم:

سیستم عامل ها:

  • کالی لینوکس (Kali Linux) جایگزین Backtrack بر پایه Debian
  • بلک آرچ (Black Arch) بر پایه آرچ لینوکس (Arch Linux)
  • پروت (Parrot) بر پایه Debian
  • بک باکس (Back Box) بر پایه اوبونتو (Ubuntu)
  • پنتو (Pentoo) بر پایه جنتو (Gentoo)
  • WHAX بر پایه اسلک ور (Slackware)

فریم ورک های نرم افزاری و ابزارها: 

سخن پایانی

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

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

درباره ما

ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
دوره‌های آکادمی ترجنس | courses.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence

ارسال یک پاسخ