تست نفوذپذیری

آزمون نفوذپذیری یا آزمون نفوذ (به انگلیسی: Penetration test) روشی برای تخمین میزان امنیت یک کامپیوتر (معمولا سرور) یا یک شبکه است که با شبیه‌سازی حملات یک حمله‌کننده (هکر) صورت می‌گیرد. در این روش تمام سیستم و نرم‌افزارها و سرویس‌های نصب شده روی آن برای یافتن مشکلات امنیتی آزمایش می‌شوند و سپس اقدام به رفع مشکلات موجود می‌شود.
تست نفوذ به راه‌های مختلفی صورت می‌گیرد که عمده‌ترین تفاوت آنها، تفاوت در میزان اطلاعات تست‌کننده درباره سیستم موردنظر است. تست به صورت آزمون جعبه سیاه روشی است که در آن تست‌کننده بدون داشتن هیچگونه اطلاعات قبلی در مورد سیستم انجام می‌دهد و تست جعبه سفید یا تست شفاف (transparent box testing) روشی است که در آن تست‌کننده مشخصات کامل سیستم را در اختیار دارد. در این میان روش‌های دیگری موجوداند که در آن تنها بخشی از اطلاعات در اختیار تست‌کننده قرار می‌گیرد که به جعبه خاکستری (Gray-box) معروف‌است.
با انجام تست شفاف، می‌توان سیستم را به‌طور دقیق‌تر و برای موارد بیشتر تست کرد، در صورتیکه با انجام تست جعبه سیاه، ممکن است تمامی حفره‌های موجود مورد بررسی قرار نگیرند، بنابراین در مواقعی که امنیت نقش کلیدی ایفا می‌کند، لازم است که تست شفاف صورت گیرد.
کیفیت تست نفوذ صورت گرفته ارتباط مستقیمی با میزان دانش امنیتی و کارکردی تست‌کننده از نرم‌افزارها و سرویس‌های موجود روی سیستم دارد و معمولا تست نفوذ توسط یک گروه صورت می‌گیرد چراکه هیچ‌گاه یک شخص نمی‌تواند به تنهایی اطلاعات کامل تمامی برنامه‌ها را داشته باشد.
بنابراین در تست انجام شده توسط گروه، هریک از اعضای گروه مسوول تست بخشی از برنامه‌ها است و این هدف رشد شرکت‌ها و گروه‌های امنیتی است که بتوانند با تعلیم هریک از افراد خود در یک بخش خاص، تمام جزییات و نکات ریز امنیتی هر برنامه را شناسایی و رفع کنند.
هر سیستمی که قابل استفاده توسط عموم باشد، لازم است که قبل از شروع فعالیت، تست نفوذپذیری روی آن صورت گرفته باشد که بعدا دچار مشکل نشود. وب‌سایت‌ها، شبکه‌های بانکی، فایل‌سرورها، ارایه‌دهندگان پست‌های الکترونیک و سایر سیستم‌هایی که از طریق شبکه خدمات ارائه می‌دهند نمونه‌ای از سیستم‌هایی هستند که باید روی آن‌ها تست نفوذپذیری صورت گرفته شود.
هرچند تست نفوذپذیری ممکن است بسیار مفید باشد، اما دارای خطراتی نیز هست، دادن اطلاعات کامل به گروهی غیرقابل اطمینان برای انجام تست شفاف می‌تواند بسیار خطرناک باشد، چراکه همان گروه می‌تواند خود عامل نفوذ به سیستم باشد. در برخی موارد، ایجاد فشار زیاد روی سیستم به دلیل تست‌های فراوان خطر دیگری است که می‌تواند باعث مشکلات سخت‌افزاری، نرم‌افزاری و حتی کند شدن شبکه و سرور مورد نظر شود.
برای جلوگیری از به‌وجود آمدن مشکلات گفته شده، توصیه می‌شود که غیر از موارد خاص، تست شفاف صورت نگیرد و تنها تست جعبه سیاه انجام شود و اگر لازم است تا تست شفاف صورت گیرد، این کار توسط شرکتی رسمی و قابل اطمینان و با گرفتن ضمانت صورت گیرد.
بسیاری از نرم‌افزارها موجوداند که می‌توانند کار تست نفوذ را به صورت خودکار انجام دهند، استفاده از این نرم‌افزارها به‌طور کلی توصیه نمی‌شود زیرا اولا نرم‌افزار موردنظر می‌تواند خود ابزاری مخرب باشد که اطلاعات را در اختیار طراحان آن قرار دهد و ثانیا نرم‌افزار هوش انسان را ندارد و نمی‌تواند تمامی حفره‌های موجود را کنترل کند و تنها قسمت محدودی از حفره‌های موجود در برنامه‌ها را کنترل می‌کند.
از نرم‌افزارها می‌توان در مواقعی استفاده کرد که امنیت نقش مهمی ندارد یا مواقعی که تست توسط گروهی صورت گرفته و فقط برای کنترل بیشتر می‌خواهیم تست انجام دهیم.
پروژه OWASP یا Open Web Application Security Project دارای مطالبی برای کنترل امنیتی وب‌سایت‌ها بوده و برای بسیاری از نکات امنیتی مرجعی مناسب به‌حساب می‌آید. رعایت نکاتی امنیتی گفته شده در این پروژه برای نوشتن هر وب‌سایتی به هر زبان برنامه‌نویسی توصیه می‌شود.
در اجرای موفق یک پروژه تست نفوذ، کلیدی‌ترین موضوع میزان دانش و توانایی شما در مواجهه با انواع مختلفی از سرویس‌ها، پلت فرم‌ها و پروتکل‌های شبکه وب است؛ بنابراین همواره بایستی در حال مطالعه و کسب علم و دانش در این زمینه باشید.
انواع
تحلیل ریسک‌های امنیت
برنامه‌ریزی تست امنیت
طراحی و اجرای تست امنیت
تکنیک‌های جمع‌آوری اطلاعات یک برنامه کاربردی (عمدتا وب سایتها)
تست مدیریت پیکربندی (Configuration Management)
تست منطق کاری (Business Logic)
تست مدیریت نشست (Session Management)
تست احراز هویت (Authentication)
تست کنترل دسترسی (Authorization)
تست‌های مربوط به اعتبارسنجی داده‌های وروردی (Injections, Buffer overflow)
تست نفوذ در ایران
با توجه به اهمیت دادن مسئولین و سران نظام به مسئله امنیت در ایران، امنیت در حوزه فناوری اطلاعات نیز از اهمیت ویژه‌ای برخوردار است. این مسئله سبب شده بر خلاف سایر حوزه‌های تضمین کیفیت و تست نرم‌افزار، برای این حوزه اهمیت خیلی زیادی قائل شوند. علاوه بر این، جذابیت مباحث هک و نفوذ سبب شده افراد زیادی به این موضوع علاقه پیدا کنند.
به دلیل بومی نبودن تکنولوژی مربوطه، دانش سطحی و نبود زیر ساخت‌های لازم، تعداد متخصصین و افراد خبره در این موضوع بسیار اندک است، اما در چند سال اخیر گروه‌های تخصصی و فنی مجرب زیادی شروع به کار کرده‌اند که آینده روشنی را برای ایران در حوزه امنیت تداعی می‌کنند.
ارزیابی امنیتی سامانه‌ها و تست نفوذ
تست نفوذ یا آزمون نفوذپذیری (به انگلیسی: Penetration test) روشی برای تخمین میزان امنیت یک کامپیوتر (معمولا سرور) یا یک شبکه یا یک سایت یا یک نرم‌افزار است که با شبیه‌سازی حملات یک حمله‌کننده (هکر) صورت می‌گیرد. در این روش تمام سیستم و نرم‌افزارها و سرویس‌های نصب شده روی آن برای یافتن مشکلات امنیتی آزمایش می‌شوند و سپس اقدام به رفع مشکلات موجود می‌شود. امروز بر روی سایت، نرم‌افزار، اپلیکیشن و شبکه اینترنت تست نفوذ انجام می‌گیرد. اولین اقدام برای اطمینان از امنیت یک سایت یا نرم‌افزار انجام تست نفوذ بر روی آن است.