تست نفوذ خارجی (External Penetration Test) چیست؟
برای درک بهتر تست نفوذ خارجی، ابتدا باید با مفهوم اولیه تست نفوذ آشنا شوید. همانطور که در مقاله تست نفوذ چیست؟ توضیح دادیم، تست نفوذ (pentest)، فرایندی است که در آن یک هکر قانونمند، با ارسال کدهای مخرب به یافتن آسیبپذیریها میپردازد و هدف اصلی آن، دسترسی غیرمجاز به سیستم به تقلید از یک هکر غیرقانونی است.
حال با توجه به تعریف اصلی تست نفوذ، تستی که توسط یک تیم امنیتی خارجی انجام شود، تست نفوذ خارجی نام دارد. این تست میتواند شامل بررسی سورس کد، بازرسی دستی و غیره باشد. همچنین طبق الزامات، تنها روی تجهیزات عمومی سیستم و یا شبکه یک سازمان تمرکز دارد.
نوع دیگری از تست نفوذ، به نام تست نفوذ داخلی نیز وجود دارد که ما در مقاله تست نفوذ داخلی چیست؟ ، توضیحات کاملی برای آن ارائه کردیم.
تست نفوذ سیستمهای خارجی (سیستمهایی که ازطریق اینترنت قابل دسترسی هستند) نیز گاهی تست نفوذ خارجی نامیده میشود. سیستمهای خارجی معمولا شامل برنامههای تحت وب، شبکهها، روترها، سوئیچها، زیردامنهها، سیستمهای لاگین و غیره هستند. این نوع به «تست نفوذ شبکه» معروف است.
تفاوت بین تست نفوذ خارجی و داخلی
با توجه به تفاوتهای این دو نوع تست، میتوانیم درک بهتری از آنها داشته باشیم:
تست نفوذ خارجی | تست نفوذ داخلی | |
این نوع تست توسط یک تیم مستقل از محققان امنیتی انجام میگیرد. | توسط محققان داخلی انجام میشود. | |
برونسپاری تست امنیتی، مقرونبهصرفه است. | بهکارگیری یک تیم امنیتی تماموقت برای سازمان پرهزینه است. | |
این تست، یک دید تازه نسبت به امنیت سیستم میدهد و برای شبیهسازی رفتار یک هکر در سیستم هدف، بسیار مناسب است. | از آنجایی که محققان امنیتی داخلی، ورودی و خروجی یک سیستم را میدانند، بررسی آن از دید یک هکر برایشان دشوارتر خواهد بود. | |
بدلیل اینکه این نوع تست، یک همکاری خارجی است، اجرای مکرر آن، زمان زیادی را صرف خواهد کرد. | برنامهریزی زیادی نمیخواهد و میتوان در تعداد دفعات بیشتری آن را انجام داد. | |
ملزم به پیروی از توافقات مختلف بین طرفین قرارداد است. | از الزامات توافق پیروی نمیکند. |
تفاوت بین تست نفوذ خارجی و اسکن آسیبپذیری
معمولا وقتی از تست نفوذ صحبت میکنیم، اصطلاح دیگری بهنام «اسکن آسیبپذیری» به میان میآید. اسکن آسیبپذیری (تست نفوذ خودکار)، فرایند اسکن برنامه با کمک ابزارهای امنیتی است. این اسکن اصولا یک فرایند خودکار است، البته بهجز فرایند تایید دستی که در پایان اسکن انجام میگیرد.
بیایید چند تفاوت دیگر را باهم مرور کنیم:
اسکن آسیبپذیری | تست نفوذ خارجی | |
یک فرایند کاملا خودکار است که تمام سطوح احتمالی قابل نفوذ را در یک سیستم شناسایی میکند. | یک ارزیابی از وضعیت امنیتی فعلی ازطریق تعدادی تست اصولی دستی و خودکار است. | |
اسکن آسیبپذیری، تنها یک فهرست از آسیبپذیریهای اصلی را بررسی کرده و از آنها استفاده نمیکند. درنتیجه نمیتواند اثر مخرب آنها را تعیین کند. | این تست یک فرایند کامل شناسایی آسیبپذیریها و تعیین اثر مخرب آنهاست. همچنین با بهرهبرداری از آسیبپذیریها، تصویر کاملی را ارائه میدهد. | |
انجام آن کاری بسیار ساده است. با یک درک ابتدایی از ابزارها و مراحل درست، میتوان این کار را انجام داد. | فرایندی پیچیده و ظریف دارد. همچنین انجام موفق آن، نیاز به آموزش صحیح و البته تجربه کافی دارد. | |
انجام اسکن آسیبپذیری، چند ثانیه تا چند دقیقه طول میکشد. بنابراین میتوان مرتبا، به آسانی و بدون برنامهریزی زیاد، آسیبپذیریها را شناسایی کرد. | انجام این تست، کاری زمانبر است و میتواند چند روز تا چند هفته طول بکشد. تکرار کل این فرایند بهصورت هفتهای یا بر اساس درخواست، کار دشواری خواهد بود. | |
این اسکن مقرونبهصرفه است. | این تست، به ساعات زیادی از کار دستی نیاز داشته و همچنین هوش انسانی بالایی را میطلبد. بنابراین هزینه بالایی دارد. | |
گزارشات اسکن آسیبپذیری معمولا فقط آسیبپذیریها را براساس شدت، فهرست میکند و توضیحات دقیقی از هر آسیبپذیری ارائه نمیدهد. | گزارش حاصل از این تست دارای جزئیات و توضیحات بیشتری از آسیبپذیریهای کشفشده است. ازجمله آزمون اثبات ایده، امتیاز CVSS (سیستم امتیازدهی آسیبپذیری رایج)، نقصهای گزارششده در باگ بانتی (کشف و گزارش باگ برای دریافت جایزه) و مراحل بازتولید و برطرفکردن این نقصها. |
انجام چنین تستهایی به تجربه کافی و همچنین تخصص بالا نیاز دارند، اسکنر تست استاتیک امنیت اپلیکیشن (SAST) دغدغه کارشناسان امنیت و مدیران بخش توسعه محصول را تا حد قابل قبولی مرتفع خواهد کرد. برای آشنایی بیشتر با محصول SAST، میتوانید مقاله تست استاتیک امنیت اپلیکیشن چیست را نیز مطالعه کنید.
پنج گام برای انجام تست نفوذ خارجی
با برنامهریزی میتوان از وقوع بینظمی جلوگیری کرد. برای انجام یک تست موفق و اصولی، باید یک فرایند را طی کنید. بهطور کلی، این تست را میتوان به پنج مرحله تقسیم کرد:
تعهد قبلی
در این مرحله، آزمونگر (هکر) و مشتری درباره شرایط همکاری، روشهای تست نفوذ، انواع تستها، اهداف امنیتی و خروجی کار تصمیمگیری میکنند تا از هرگونه ناهماهنگی در آینده، پیشگیری نمایند.
برای انجام یک تست نفوذ خارجی موثر، شما بهعنوان یک مشتری باید ابتدا به سوالات زیر پاسخ دهید:
- چرا به آزمون نفوذ نیاز دارم؟
- این کار برای من چه دستاوردی خواهد داشت؟
- آیا به تستهای اضافی نیاز دارم؟
- چه رویکردی را درنظر دارم؟ جعبه سیاه، جعبه سفید، جعبه خاکستری
- چه تجهیزاتی برای سازمان من حیاتی است و باید در اولویت قرار گیرد؟
- آیا الزامات گواهینامه را دارم؟ و … .
پس از انجام گفتگو و رسیدن به یک ارزیابی مساعد، میتوانید با امضای یک «توافقنامه عدم افشا»، عملیات آزمون نفوذ خود را آغاز کنید.
تعریف گستره و شناسایی اولیه
مرحلهای است که شما در آن، داراییهایی که تحت آزمون نفوذ قرار میگیرند (صفحات وب، نقش کاربران، APIها، شبکهها) را شناسایی میکنید. همچنین در این بخش، هر دو طرف قرارداد، جزئیات و دسترسیهای ضروری را باهم به اشتراک میگذارند. بهطور کلی محققان امنیتی و مدیران سازمان، نوع تست نفوذ را در این مرحله انتخاب میکنند.
مثلا اگر شبکه سازمان شما نیاز به تست دارد، باید آزمون نفوذ شبکه انجام شود اما از آنجایی که بیشتر سازمانها ساختار نسبتا پیچیدهتری دارند، برای رسیدن به اهداف امنیتی خود، احتمالا به ترکیبی از این تستها نیاز خواهید داشت.
اکسپلویت کردن (سوء استفاده از باگها)
اکسپلویت کردن، جذابترین و مهمترین بخش تست نفوذ خارجی است. در این مرحله، تستکنندهها با انجام یک سری حملات سعی میکنند به سیستم شما نفوذ کنند. برنامه یا شبکه شما با حملاتی مانند SQLi، افزایش دسترسی، XSS و دیگر حملات، تست میشود. نفوذگرها در طول انجام تست، از چند ابزار پیشرفته برای سرعت دادن به کارهای مربوط به اسکن، استفاده میکنند.
علاوه بر اسکنر تست نفوذ، ابزارهای زیر طی این فرایند میتواند مفید باشد:
- SQLmap
- Nikito
- Nmap
- Burpsuite
- Arachini
تستهای این مرحله از یک برنامه به برنامه دیگر متفاوت است. ممکن است برای تطابق با الزامات خاص یک سازمان، لازم باشد که بعضی ابزارهای خاص را اضافه یا حذف کنید. درصورتی که خودتان آزمون نفوذ را انجام میدهید، از داشتن دسترسیهای ضروری و ابزارهای مناسب اطمینان حاصل کنید.
گزارش و اصلاح
آزمونگر یا هکر پس از انجام تست، یافتههای خود را در گزارشی دقیق و با جزئیات کامل مستند میکند. یک گزارش ایدهآل آزمون نفوذ، باید دارای جزئیات آسیبپذیریها، امتیاز CVSS، مراحل بازتولید و رفع باگها و غیره باشد. همچنین این گزارش باید اطلاعات کلی خود را در یک چکیده کوتاه و قابل فهم ارائه کند تا بتوان با یک نگاه به راحتی آن را مرور کرد.
در مرحله اصلاح، آسیبپذیریهای گزارششده سازمان باید برطرف شود. رفع آسیبپذیریها در مدت اعتبار توافقنامه به این معنی است که آزمونگر، اصلاحات انجامشده را مجددا تست خواهد کرد. با پایان مهلت انجام پروژه، اگر اهداف هنوز محقق نشده باشد، بایستی توافق جدیدی انجام شود یا اینکه هزینه اضافی برای اسکن مجدد پرداخت گردد.
بیشتر گزارشهای تست نفوذ خارجی دارای راهنمای رفع باگ هستند. حتی بعضی شرکتهای آزمون نفوذ مانند اسکنر امنیتی اسکوریا، به توسعهدهندگان برای رفع این آسیبپذیریها مستقیما کمک میکنند. این اصلاحات را انجام دهید و بهترین تدابیر امنیتی را طبق توصیهها، پیادهسازی کنید.
اسکن مجدد و صدور گواهینامه
تست نفوذ خارجی، با آزمودن اصلاحات و تدابیری که شما پیادهسازی کردهاید، به پایان میرسد. اگر آسیبپذیریها بهدرستی برطرف شده باشد، تیم یا شرکت امنیتی فوق، یک گواهینامه آزمون نفوذ برای سازمان شما صادر خواهد کرد.
برخی از ویژگیهای آزمون نفوذ اسکنر اسکوریا:
- تست به سبک هکرها (با بیش از 3000 تست)
- داشبورد ساده و قابل فهم برای توسعهدهندگان
- گزارش لحظهای و همزمان آسیبپذیریها (اولین مجموعه از آسیبپذیریها طی 24 ساعت افزوده میشود)
- تعامل و همکاری مستقیم (نه با ایمیل)
- PoCها (آزمونهای اثبات ایده) و اسکریپتهای سلنیوم برای آسیبپذیریها
- توصیهها درباره انجام اصلاحات
- اسکنهای مجدد
- گزارشهای دقیق و جزئی
- گواهینامههای قابل تایید عمومی
چرا آزمون نفوذ خارجی مهم است؟
تست نفوذ خارجی به معنای تست تجهیزات اینترنتی از زاویه دید یک عنصر خارجی است. به عبارت دیگر یعنی شما میتوانید بفهمید که نفوذ به سیستم شما توسط یک عنصر خارجی تا چه حد دشوار است.