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

اصطلاح تست نفوذ (پنتستینگ) به فرآیندها ابزارها و خدماتی اطلاق میشود که برای شبیهسازی حملات و نقضهای داده و پیدا کردن آسیبپذیریهای امنیتی طراحی و پیادهسازی شدهاند. شما میتوانید یک پنتست را برای یک سیستم کامپیوتری یک شبکه کامل یا یک برنامه وب انجام دهید.
هدف اصلی از یک پنتست کشف آسیبپذیریهایی است که مهاجمین میتوانند از آنها بهرهبرداری کنند. روشهای مختلفی برای کشف این آسیبپذیریها وجود دارد. شما میتوانید به پنتستهای دستی که توسط تیمی از هکرهای کلاه سفید انجام میشود یا پنتستهای خودکار که توسط یک راهحل نرمافزاری انجام میشود روی بیاورید.
فرآیند تست نفوذ معمولاً شامل چندین مرحله است. ابتدا تستر یا راهحل اطلاعاتی در مورد هدف جمعآوری کرده و نقاط ورودی ممکن را شناسایی میکند. سپس تستر تلاش میکند تا به محیط آزمایش شده نفوذ کند. در نهایت تستر گزارشی تهیه میکند که جزئیات آسیبپذیریهای پیدا شده و پیشنهادات برای بهبود امنیت محیط آزمایش شده را شرح میدهد.
چرا تست نفوذ امنیتی مهم است؟
تست نفوذ تلاش میکند تا سیستم سازمان را به خطر بیندازد تا آسیبپذیریهای امنیتی را کشف کند. اگر سیستم محافظت کافی داشته باشد تیمهای امنیتی باید در حین آزمایش مطلع شوند. در غیر این صورت سیستم در معرض خطر قرار دارد. بنابراین تست نفوذ میتواند به بهبود شیوههای امنیت اطلاعات کمک کند.
تست نفوذ کور به این معناست که تیمهای امنیتی و عملیاتی از انجام آن آگاه نیستند بهترین آزمون برای ارزیابی دفاعهای یک سازمان است. با این حال حتی اگر آزمایش برای تیمهای داخلی شناخته شده باشد میتواند به عنوان یک تمرین امنیتی عمل کند که ارزیابی میکند چگونه ابزارها افراد و شیوههای امنیتی در یک وضعیت واقعی با هم تعامل دارند.
تست نفوذ معمولاً غیرساختاریافته و خلاقانه است. به عنوان مثال در حالی که یک تست ممکن است از حمله brute force استفاده کند تست دیگری ممکن است مدیران شرکت را از طریق فیشینگ هدف قرار دهد. این خلاقیت مهم است زیرا مهاجمان پیشرفته از همان مهارتها و خلاقیتها برای شناسایی ضعفهای امنیتی سازمان استفاده خواهند کرد.
یکی دیگر از مزایای آزمونهای نفوذ این است که توسط پیمانکاران خارجی انجام میشود و این امکان وجود دارد که تعیین شود چه میزان اطلاعات در مورد سیستمهای داخلی فاش شود. تست نفوذ میتواند شبیهسازی یک مهاجم خارجی باشد که هیچ دانشی از شبکه داخلی ندارد یا یک کارمند دارای دسترسیهای خاص باشد.
فرآیند تست نفوذ
تست نفوذ شامل پنج مرحله زیر است:
برنامهریزی: ابتدا هدف و دامنه آزمون را تعریف کنید. برای درک بهتر هدف باید اطلاعاتی در مورد نحوه عملکرد آن و هرگونه آسیبپذیری احتمالی جمعآوری کنید.
اسکن: از تحلیلهای ایستا یا پویا برای اسکن شبکه استفاده کنید. این به تستکنندگان نفوذ اطلاع میدهد که چگونه برنامه به تهدیدات مختلف واکنش نشان میدهد.
دستیابی به دسترسی: آسیبپذیریها را در برنامه هدف شناسایی کنید با استفاده از استراتژیهای تست نفوذ مانند تزریق SQL و کراس سایت اسکریپتینگ.
حفظ دسترسی: توانایی یک مجرم سایبری برای حفظ حضور دائمی از طریق یک آسیبپذیری بهرهبرداریشده یا دستیابی به دسترسی عمیقتر را بررسی کنید.
تحلیل: نتیجه تست نفوذ را ارزیابی کنید و گزارشی تهیه کنید که شامل آسیبپذیریهای بهرهبرداریشده دادههای حساس دسترسیشده و زمان لازم برای پاسخ سیستم به نفوذ تستکننده باشد.
موارد استفاده از تست نفوذ
سازمانها از تست نفوذ برای عملیاتهای بزرگ و پیچیده کسبوکار که بحرانی هستند و همچنین برای اجزای سفارشی استفاده میکنند. پنتستینگ زمانی ضروری است که نرمافزاری که دادههای حساس مانند داراییهای مالی اطلاعات مشتریان و دادههای تراکنش را مدیریت میکند توسعه مییابد. بخشهای حساس از جمله دولت پزشکی و خدمات مالی به شدت تحت نظارت هستند و بنابراین نیاز به تدابیر امنیتی قوی دارند.
اگر سازمان شما نفوذ شده است میتوانید از پنتستینگ برای شناسایی ضعفهایی که امکان نفوذ را فراهم کردهاند استفاده کنید و بیاموزید چگونه آنها را اصلاح کنید. همچنین میتوانید آسیبپذیریهای دیگری را شناسایی کنید که ممکن است بهرهبرداری نشده باشند تا از حملات بیشتر در آینده جلوگیری کنید.
۶ نوع تست نفوذ
برای ارزیابی امنیت سیستمها و شناسایی آسیبپذیریها تست نفوذ (Penetration Test) در شش حوزه اصلی انجام میشود:
تست نفوذ خدمات شبکه
اصطلاح آزمون خدمات شبکه که به عنوان آزمون زیرساخت نیز شناخته میشود به نوعی از پنتست اطلاق میشود که به منظور حفاظت از سازمان در برابر حملات رایج شبکه انجام میشود.
هدف از پنتست خدمات شبکه کشف آسیبپذیریها و ضعفهای امنیتی بیشتر در معرض خطر در شبکه است پیش از آنکه مهاجمان بتوانند از این نقاط کور بهرهبرداری کنند.
یک پنتست خدمات شبکه معمولاً اجزای مختلف زیرساخت را بررسی میکند از جمله سرورها و فایروالها سوئیچها و روترها ایستگاههای کاری و پرینترها.
به طور ایدهآل آزمون خدمات شبکه میتواند به شما کمک کند تا در برابر حملات رایج شبکه مانند پیکربندی نادرست فایروال حملات روتر حملات مبتنی بر سوئیچ یا مسیریابی حملات پایگاه داده حملات مرد در میانه (MITM) حملات سرور پروکسی و دیگر حملات مشابه محافظت کنید.
از آنجا که سیستمهای بحرانی به سلامت شبکه برای در دسترس بودن مداوم وابسته هستند سازمانها باید پنتست خدمات شبکه خارجی و داخلی را حداقل به طور سالانه انجام دهند.
تست نفوذ برنامههای وب
هدف از پنتست برنامههای وب شناسایی ضعفهای امنیتی یا آسیبپذیریها در برنامههای وب و اجزای آنها از جمله کد منبع پایگاه داده و هر شبکه بکاند مرتبط است.
فرآیند تست نفوذ برنامه وب معمولاً شامل سه مرحله زیر است:
شبیهسازی: جمعآوری اطلاعات در مورد برنامه. به عنوان مثال سیستم عامل (OS) و منابعی که برنامه استفاده میکند.
کشف: تلاش برای شناسایی آسیبپذیریها.
بهرهبرداری: استفاده از آسیبپذیریهای شناسایی شده برای دسترسی غیرمجاز به برنامه و دادههای آن.
نتایج یک پنتست برنامه وب باید اطلاعاتی در مورد آسیبپذیریهای شناسایی شده و هرگونه بهرهبرداری موفقیتآمیز ارائه دهد. این اطلاعات میتواند به سازمان کمک کند تا آسیبپذیریها را اولویتبندی کرده و نحوه اعمال اصلاحات را تعیین کند.
تست نفوذ فیزیکی
یک پنتست فیزیکی به منظور کشف هرگونه آسیبپذیری و مشکلات در داراییهای فیزیکی مانند قفلها دوربینها حسگرها و موانع که ممکن است منجر به نقض امنیتی شوند انجام میشود.
برای مثال یک پنتست فیزیکی میتواند ارزیابی کند که آیا مهاجمان میتوانند دسترسی غیرمجاز به اتاق سرور پیدا کنند. این دسترسی میتواند به عنوان نقطهای برای نفوذ به شبکه شرکتی عمل کند.
تست نفوذ فیزیکی همچنین میتواند ارزیابی کند که سازمان چگونه با تهدیدات امنیتی فیزیکی مانند مهندسی اجتماعی کپی کارت شناسایی دنبال کردن افراد (Tailgating) و سایر تهدیدات مشابه مقابله میکند.
در پایان این پنتست سازمان اطلاعاتی در مورد نقایص امنیتی فیزیکی کشف شده و پیشنهاداتی برای کاهش آنها دریافت میکند.
تست نفوذ مهندسی اجتماعی
یک حمله مهندسی اجتماعی هدفش کارکنان شرکت یا افرادی است که به داراییهای شرکت دسترسی دارند و سعی دارد آنها را متقاعد فریب یا تهدید کند تا اطلاعات و مجوزهای دسترسی را فاش کنند.
یک پنتست مهندسی اجتماعی تلاش میکند تا ارزیابی کند که سازمان چگونه در برابر یک حمله مهندسی اجتماعی واکنش نشان میدهد. در پایان این آزمون سازمان اطلاعاتی دریافت میکند که میتواند به ایجاد یا بهبود یک برنامه آگاهی از مهندسی اجتماعی و پروتکلهای امنیتی مرتبط کمک کند.
تست نفوذ سمت مشتری
یک پنتست سمت مشتری به منظور شناسایی آسیبپذیریهای نرمافزاری انجام میشود که میتوانند به راحتی روی دستگاههای مشتری مانند ایستگاههای کاری و مرورگرهای وب بهرهبرداری شوند.
یک پنتست سمت مشتری معمولاً میتواند حملات خاصی را شناسایی کند. به عنوان مثال حملات کراسسایت اسکریپتینگ (XSS) سرقت فرم تزریق HTML حملات کلیکجکینگ و عفونتهای بدافزاری.
تست نفوذ برنامههای موبایل
یک پنتست برنامه موبایل تلاش میکند تا آسیبپذیریها را در برنامههای موبایل شناسایی کند. این آزمون شامل سرورها و APIهای موبایل نمیشود.
تست نفوذ برنامههای موبایل معمولاً شامل استفاده از دو نوع تست زیر است:
تحلیل ایستا شامل استخراج عناصری مانند کد منبع و دادههای متا به منظور انجام مهندسی معکوس.
تحلیل پویا شامل جستجو برای آسیبپذیریها در حین اجرای برنامه است. برای مثال تستر ممکن است تلاش کند تا دادهها را از حافظه RAM استخراج کند یا کنترلها را دور بزند.
خدمات تست نفوذ
دو نوع خدمات تست نفوذ وجود دارد: دستی و خودکار.
تست نفوذ دستی گسترده و سیستماتیک است. این نوع آزمون معمولاً توسط یک پیمانکار یا مشاوره امنیتی انجام میشود که با مشتری بر سر دامنه خاصی از آزمونها توافق میکنند. در این دامنه یک هکر اخلاقی به جستجوی آسیبپذیریها میپردازد تلاش میکند تا سیستمهای سازمان را نفوذ کند و گزارشی دقیق تهیه میکند که آنچه کشف کرده و پیشنهاداتی برای اصلاح آسیبپذیریها را نشان میدهد.
تست نفوذ به عنوان خدمت (PTaaS) یک مدل جدید است که یک پلتفرم خودکار را فراهم میکند که سازمانها میتوانند برای انجام تست نفوذ روی سیستمهای خود از آن استفاده کنند. سیستمهای PTaaS از فناوریهایی مانند اسکن خودکار آسیبپذیریها آزمون امنیتی پویا (DAST) و فازینگ برای شناسایی ضعفهای امنیتی و تلاش برای بهرهبرداری از آنها بدون دخالت انسان استفاده میکنند.
مزایا و معایب آزمون دستی
تست نفوذ دستی یکی از روشهای ارزیابی امنیتی است که توسط متخصصان و بدون تکیه کامل بر ابزارهای خودکار انجام میشود. در ادامه مهمترین مزایا و معایب این روش را بررسی میکنیم:
مزایای تست نفوذ دستی
کشف آسیبپذیریهای منطقی کسبوکار برخلاف آسیبپذیریهای عمومی که به راحتی از طریق ابزارهای خودکار کشف میشوند.
هکرهای اخلاقی دستی هنوز از ابزارهای خودکار استفاده میکنند بنابراین قادرند اسکنهای خودکار را با کاوش و تحلیل دستی ترکیب کنند.
نگرانی از مثبتهای کاذب وجود ندارد زیرا تستر نفوذ تمامی یافتهها را قبل از تولید گزارش خود تأیید میکند.
قابلیت شبیهسازی حملات پیچیده که شامل چندین بردار تهدید است.
قابلیت شناسایی آسیبپذیریهای صفر روز.
معایب تست نفوذ دستی
به شدت به مهارتهای تستر بستگی دارد. یک تستر بیتجربه یا کسی که تجربه مرتبط با صنعت یا تکنولوژی خاص سازمان ندارد میتواند آسیبپذیریها و نکات مهم را از دست بدهد.
راهاندازی پیچیده از دیدگاه سازمان که نیاز به قراردادها تعریف دقیق دامنه و هماهنگی با ذینفعان داخلی دارد.
هزینه بالا و تلاش زیادی که برای انجام هر تست نفوذ لازم است.
معمولاً فقط امکان انجام آزمونها به صورت فصلی یا سالانه وجود دارد که سازمان را در معرض تهدیدات صفر روز یا آسیبپذیریهایی که از تغییرات در سیستمهای تولید ناشی میشود قرار میدهد.
مزایا و معایب تست نفوذ به عنوان خدمت (PTaaS)
PTaaS یا Penetration Testing as a Service یک مدل ارائه خدمات امنیتی است که در آن تست نفوذ به صورت مستمر و مبتنی بر ابر انجام میشود. در ادامه نقاط قوت و ضعف این رویکرد را بررسی میکنیم:
مزایای PTaaS
مدل خودخدماتی که به مشتری اجازه میدهد تا از طریق رابط وب سیستمها و فرکانس انجام هر آزمون را مشخص کند.
انجام تست نفوذ را برای شرکتهایی که تیم امنیتی کوچکتری دارند یا هیچ تیم امنیتی ندارند عملی میسازد.
هزینههای پایینتر و مدلهای پرداخت انعطافپذیر اکثر خدمات قیمتگذاری اشتراکی یا پرداخت به ازای استفاده را ارائه میدهند.
پلتفرمهای PTaaS میتوانند گزارشهای خودکار ارائه دهند که نیازهای سازمان از جمله الزامات خاص رعایت قوانین را برآورده کند.
معایب PTaaS (تست نفوذ به عنوان خدمت)
مسئولیت بیشتری را بر عهده سازمان میگذارد زیرا باید برنامه زمانبندی آزمونها را تعیین کرده و یافتهها را بهطور مستقل بررسی کند.
برخی ارائهدهندگان خدمات ابری برای انجام تست نفوذ خودکار روی زیرساختهای خود نیاز به مجوز دارند و زمان آزمون را به یک بازه زمانی خاص محدود میکنند.
اگر برای سیستمهای تحت آزمون از رمزنگاری استفاده شود این موضوع میتواند استفاده از خدمات PTaaS را پیچیده کند.
اکثر خدمات نمیتوانند آسیبپذیریهای منطق کسبوکار را شناسایی کنند.
در مقایسه با آزمونهای دستی مثبتهای کاذب بیشتری تولید میشود.