تست نفوذ رویهای است که برای ارزیابی امنیت نرم افزاری یک شبکه، سامانه وب یا سیستمهای داخل یک سازمان استفاده میشود. کارشناسان تست نفوذ که عمدتا دانش برنامهنویسی بالایی دارند، با استفاده از تکنیکهای نفوذ، یک حمله واقعی را روی بستر هدف شبیهسازی میکنند تا به این وسیله سطح امنیت یک سیستم را مشخص کنند. در حقیقت، در روند آزمون تست نفوذپذیری، کارشناسان تست نفوذ به دنبال یافتن آسیب پذیریهای امنیتی هستند که یک مهاجم میتواند از آن سواستفاده کند.
آزمون تست نفوذ پذیری میتواند با برنامههای نرم افزاری به صورت خودکار یا به صورت دستی توسط کارشناسان تست نفوذ انجام شود. در هر صورت، این فرایند، شامل جمع آوری اطلاعات در مورد هدف قبل از آزمون، شناسایی نقاط ورود احتمالی، تلاش برای شکستن لایههای دفاعی (یا به صورت مجازی یا واقعی) و گزارش روند آزمون است. آزمون تست نفوذ به سازمان کمک می کند که ضعف های شبکه ساختارهای اطلاعاتی خود را بهتر بشناسد و درصدد اصلاح آنها برآید.
هدف اصلی تست نفوذ، شناسایی نقاط ضعف امنیتی است. تست نفوذپذیری نیز میتواند برای تست سیاست امنیتی سازمان، پیروی از آن در مورد الزامات انطباقپذیری، آگاهی از امنیت کارمندان و توانایی سازمان در شناسایی و پاسخ به حوادث امنیتی استفاده شود. به طور معمول، اطلاعات مربوط به نقاط ضعف امنیتی که از طریق تست نفوذ پذیری جمعآوری میشوند، در اختیار مدیران IT سیستم و شبکه سیستم قرار می گیرند. این اطلاعات آنها را قادر میسازد تصمیمهای استراتژیک بگیرند و با اولویت بندی این نقاط، اقدام به اصلاح و برطرف کردن آنها کنند.
هدف از انجام تست نفوذ چیست؟
هدف اصلی آزمون نفوذ، شناسایی نقاط ضعف در وضعیت امنیتی سازمان، اندازهگیری رعایت سیاستهای امنیتی آن، آزمایش آگاهی کارکنان در مورد مسائل امنیتی و تعیین نحوه پاسخگویی سازمان به نقاط ضعف احتمالی است. یک آزمون نفوذ پذیری همچنین میتواند نقاط ضعف در سیاستهای امنیتی یک سازمان را برجسته کند. به عنوان مثال، اگرچه یک سیاست امنیتی بر جلوگیری و کشف حمله به سیستمهای سازمانی متمرکز است، اما این سیاست ممکن است شامل فرایندی برای مسدودسازی فعالیتهای هکر نباشد.
گزارشهای جمعآوری شده توسط یک آزمون تست نفوذ پذیری، بازخورد مورد نیاز یک سازمان را برای اولویت بندی سرمایه گذاریهایی که قصد دارد در امنیت خود داشته باشد، فراهم میکند. این گزارشها همچنین میتوانند به توسعهدهندگان برنامه کمک کنند تا برنامههای ایمنتری ایجاد کنند.
قصد انجام تست نفوذ برای سنجش راهکارهای امنیتی سازمان خود را دارید؟ کار را به متخصصان لیان بسپارید:
انواع آزمونهای تست نفوذ
یکی از جنبههای مهم هر برنامه آزمون تست نفوذپذیری، تعیین محدودهای است که کارشناسان تست نفوذ باید در آن فعالیت کنند. معمولاً دامنه مشخص میکند که از چه سیستمها، مکانها، تکنیکها و ابزارهایی میتوان در فرایند تست نفوذ استفاده کرد. انواع روشهای انجام آزمون تست نفوذ عبارتند از:
- تست نفوذ جعبه سفید (White Box)
- تست نفوذ جعبه خاکستری (Gray Box)
- تست نفوذ جعبه سیاه (Black Box)
در ادامه، هر کدام از این موارد را با هم بررسی میکنیم.
تست نفوذ جعبه سفید (White Box)
در این نوع تست نفوذ که تست نفوذ جعبه پاک هم نامیده می شود، کارشناس تست نفوذ، دانش و دسترسی کامل به تمام اطلاعات شبکه هدف از جمله نرمافزارهای تحت وب، وب سرورها، میل سرورها، سرورهای اتوماسیون داخلی و خارجی را دارد. به همین دلیل، این نوع تست نفوذ در مقایسه با تست نفوذ جعبه سیاه در مدت زمان سریعتری انجام میشود. مزیت دیگر این روش این است که تست نفوذ به دلیل دسترسی به اجزا و کدها، بسیار دقیقتر انجام میشود.
تست نفوذ جعبه خاکستری (Gray Box)
این نوع تست نفوذ، ترکیبی از تست جعبه سیاه و جعبه سفید است. بهعبارت دیگر کارشناس تست نفوذ دانش اندکی راجع به کارهای درونی نرم افزارها و برنامهها دارد. یک متخصص تست نفوذ میتواند تلاشهایش را روی این بخشها، متمرکز کرده و بدین ترتیب هرگونه آسیبپذیری یا ضعفی را در آنجا شناسایی کند.
تستنفوذ جعبه سیاه (Black Box)
در این نوع تست نفوذ، مهاجم هیچ اطلاعاتی درباره عملیاتهای درونی سرویسها، کد منبع یا ساختار سرویسها، ندارد. در نتیجه مدت زمان زیادی طول میکشد تا این نوع خاص از تست نفوذ کامل شود.
مراحل انجام آزمون نفوذ پذیری
روند انجام آزمون نفوذپذیری را میتوان در پنج مرحله تقسیم بندی کرد:
۱- برنامهریزی و شناسایی (Planning and Reconnaissance)
مرحله اول شامل موارد زیر است:
- تعیین دامنه و اهداف یک آزمون از جمله سیستمهایی که باید مورد بررسی قرار گیرند و روشهایی که باید در روند انجام تست نفوذپذیری استفاده شوند.
- جمع آوری اطلاعات (به عنوان مثال، نام شبکه و دامنه، سرور ایمیل) برای درک بهتر نحوه عملکرد یک هدف و آسیب پذیریهای احتمالی آن.
۲- اسکن (Scanning)
مرحله بعدی، درک چگونگی پاسخ برنامه کاربردی به اقدامات مختلف نفوذی است. این موضوع به طور معمول با استفاده از روشهای زیر انجام میگیرد:
– Static Analysis: بررسی کد برنامه برای برآورد نحوه رفتار در هنگام اجرا.
– Dynamic Analysis: بررسی کد برنامه در حال اجرا. این یک روش عملیتر برای اسکن است، زیرا نمای واقعی را به عملکرد برنامه میدهد.
۳- گرفتن دسترسی (Gaining Access)
در این مرحله کارشناسان تست نفوذ با بهره گیری از آسیبپذیریهای احتمالی موجود در سامانههای تعریف شده، اقدام به ایجاد دسترسی میکنند. بهعنوان مثال، در هنگام تست نفوذ بر روی سامانههای تحت وب، با استفاده از آسیبپذیریهایی مانند SQL Injection، Cross-Site Scripting و …، اقدام به ایجاد دسترسی میکنند. آزمایش کنندگان سپس از این آسیبپذیریها برای افزایش امتیازات دسترسی، سرقت دادهها، رهگیری ترافیک و غیره استفاده میکنند تا آسیبهای ناشی از آنها را بفهمند.
۴- حفظ دسترسی (Maintaning Access)
هدف از این مرحله این است که ببینیم آیا میتوان از این آسیبپذیری برای دستیابی به حضور پایدار در سیستم نفوذ شده استفاده کرد یا خیر. این ایده به منظور تقلید از تهدیدهای مداوم پیشرفته است که اغلب برای سرقت حساسترین دادههای سازمان، ماهها در یک سیستم باقی میمانند.
۵- تجزیه و تحلیل و گزارش
نتایج حاصل از آزمون نفوذ سپس در گزارشی تشریح میشود:
- آسیب پذیریهای خاص که اکسپلویت شدهاند.
- دادههای حساسی که دسترسی به آنها گرفته شده است.
- مقدار زمانی که آزمون تست نفوذ انجام شده است.
مزایای انجام آزمون تست نفوذ:
- مدیریت آسیبپذیریها و برطرف کردن آنها
- بررسی توان زیرساختهای شبکه
- جلوگیری از هزینههای خارج شدن دسترسیهای شبکه
- حفظ اطلاعات سازمان یا شرکت
چه ابزارهایی در تست نفوذ استفاده میشوند؟
کارشناسان تست نفوذ معمولاً از در کنار انجام دستی تست نفوذ، از ابزارهای خودکار برای کشف آسیب پذیریهای کاربردی استاندارد استفاده میکنند. ابزارهای تست نفوذ به منظور شناسایی هویت کد مخرب در برنامههایی که میتواند منجر به نقض امنیت شود، کد را اسکن میکند. این ابزارها، تکنیکهای رمزگذاری داده را بررسی کرده و میتوانند مقادیر کدگذاری که بهصورت هاردکد هستند، مانند نام کاربری و کلمه عبور را برای شناسایی آسیب پذیریهای امنیتی در سیستم شناسایی کنند.
ابزار تست نفوذ باید دارای ویژگیهای زیر باشد:
- نصب، پیکربندی و استفاده از آن آسان باشد.
- سیستم را به راحتی اسکن کند.
- آسیب پذیریها را بر اساس شدت طبقه بندی کند.
- قادر به خودکارسازی صحت آسیب پذیریها باشد.
- گزارشهای مربوط به آسیب پذیری بهصورت دقیق تهیه شده باشد.
خوشبختانه بسیاری از محبوبترین ابزارهای آزمون تست نفوذپذیری، نرم افزارهای رایگان یا متن باز هستند. این امر به کارشناسان تست نفوذ امکان تغییر کد ابزار به منظور برطرف کردن نیازهای خود را میدهد. برخی از پرکاربردترین ابزارهای تست نفوذ رایگان یا متن باز شامل موارد زیر است:
- Metasploit
- Nmap
- Nessus
- Wireshark
- John the Ripper
- Burp Suite
- OpenVAS