اهمیت آزمون نفوذپذیری وباپلیکیشن
تشخیص و رفع آسیبپذیریهای امنیتی یک سازمان، احتیاج به ابزارها و تخصصهای پیشرفتهای دارد. به علت تغییر ماهیت مستمر و سریع این آسیبپذیری، روشهای شناسایی و رفع آنها نیز همواره باید بروزرسانی شوند. از آنجاییکه بیشتر سازمانها، خود توان گردآوری و بروزرسانی این تخصصها و ابزارها را ندارند، برای انجام آن به کمک صنعت امنیت اطلاعات نیاز پیدا میکنند.
در حال حاضر، نرخ رشد شمار و تنوع آسیبپذیریها، بسیار فراتر از نرخ رشد صنعت امنیت اطلاعات است. در ایران، با توجه به اینکه اکثر سازمانهای بزرگ کشور دهها سال است که نسبت به مسایل امنیت اطلاعات خویش بیتفاوت بودهاند، این فاصله بیشتر نیز است. تا زمانی که این فاصله وجود دارد، نیاز به خدمات مستمر و محصولات بروز امنیت اطلاعات برای مقابله با آسیبپذیریها و تهدیدات جدید، از بین نخواهد رفت.
به عقیده صاحبنظران امنیت اطلاعات، ارزیابیهای امنیتی و آزمون نفوذ به عنوان یکی از مهمترین مولفههای این صنعت، از جنبههای مختلف ازجمله رویارویی سازمان با یک حمله واقعی برای حفظ امنیت کسبوکارها اهمیت دارد. کسبوکارهایی که به اهمیت حفظ داراییهای اطلاعاتی خود آگاه شدهاند، ترجیح میدهند با اجرای آزمون نفوذ به جای اینکه انرژی خود را صرف بازسازی برند خود پس از یک حمله سایبری نمایند، راههای نفوذ آنها را شناسایی و مسدود کنند. در این صورت میتوانند با آرامش بیشتری به سایر نگرانیهای خود رسیدگی کرده و حضور قدرتمندتری در بازار داشته باشند. شایان به ذکر است که هزینه پیادهسازی عملیات آزمون نفوذ، بسیار بهصرفهتر از هزینههایی است که رخنههای امنیتی بر دوش سازمان میگذارد. بعلاوه، دستورات دولتی در راستای انطباق با الزامات امنیتی، نیاز سازمانهای بزرگ به سازگاری با سامانه ابری و افزایش شمار تهدیدهای پیچیدهتر، از دیگر عواملی هستند که کسبوکارها را به سمت آزمون نفوذ هدایت میکنند. همچنین، این روزها، ظهور نسل جدید راهکارهای هوش تهدید ، روند سریع سازگاری با مدلهای BYOD و گرایش به ادغام دادههای حجیم با نرمافزارهای هوش تهدید، باعث تشویق بیشتر صنایع مختلف، بهویژه بانکداری، خدمات مالی و بیمه ، فناوری اطلاعات و ارتباطات ، حکومتی و نظامی، حمل و نقل، سلامت، خردهفروشی و انرژی به پیادهسازی آزمون نفوذ شده است.
موارد آزمون در آزمون نفوذپذیری وباپلیکیشن
آزمون نفوذ وباپلیکیشن بصورت عمده روی تست امنیت لایه اپلیکیشن متمرکز است. این فرایند بسته به دامنه مشارکت، شامل مولفههای مختلفی همچون وبسرورها، سرورهای اپلیکیشن یا پایگاههای داده باشد. در روشهای مربوط به ارزیابی وباپلیکیشن، امین رای تمرکز ویژهای روی یافتههای دو پروژه گسترده OWASP Top 10 و SANS Top 25 Most Dangrous Software Errors دارد. این دو پروژه بینالمللی، عمدتا به تجزیه و تحلیل رایجترین و خطرناکترین آسیبپذیریهای شناساییشده در صنایع مختلف میپردازند. طبق تحقیقات و یافتههای دو پروژه عنوانشده، برخی از مهمترین جنبههای امنیتی اپلیکیشنهای که نیازمند توجه بالایی هستند، عبارتند از:
- برشماری سیستم
- شناسایی سطح حمله
- شناسایی فناوریهای استفادهشده
- شناسایی ورودیها و سایر بخشهای عملیاتی اپلیکیشن
- شناخت کارکرد و جریان داده کلی اپلیکیشن
- احراز هویت و مجازشماری
- شناسایی سازوکارهای پیادهسازیشده برای حفاظت از حسابهای کاربری و طرحوارههای مجازشماری
- آزمودن برای شناسایی ضعفهای شناختهشده در احراز هویت و مجازشماری
- آزمودن برای امکان برشماری و افشای اطلاعات
- اجرای حملات بروت فورس روی حسابهای کاربری و کلمههای عبور
- بررسی سازوکار بکاررفته برای خروج از اپلیکیشن و مدیرین کَش
- بررسی نقش سازوکار احراز هویت چندعاملی (2FA/Certification) در اپلیکیشن
- بررسی چگونگی اجرای عملیات فراموشی کلمه عبور و ساخت حساب کاربری جدید
- تلاش برای ارتقای سطح دسترسی
- مدیریت نشستها
- تحلیل توابع پیادهسازیشده برای مدیریت نشستها
- تحلیل فرایند تولید توکن
- بررسی امکان استفاده از توابع انتقال نشست
- بررسی اتریبیئتهای کوکی
- بررسی امکان اجرای حملات CSRF
- اعتبارسنجی ورودیها
- امکان اجرای کدهای مخرب و درخواستهای دستکاریشده
- بررسی توابع موجود در اپلیکیشن برای کدگذاری ورودیها و خروجیها
- آزمودن دستورهای سیستمی در ورودیهای اپلیکیشن
- بررسی امکان اجرای حملات XSS (Reflected/DOM/Stored)
- بررسی امکان اجرای حملات SQL Injection
- بررسی امکان تزریق کدهای LDAP، ORM، XML، SSI و XPATH
- بررسی امکان اجرای HTTP Splitting/Smuggling
- بررسی عملکرد AJAX
- منطق کسبوکار
- بررسی امکان دور زدن و سواستفاده از جریانهای منطقی موجود
- مدیریت پیکربندی
- بررسی نقایص احتمالی در مدیریت پیکربندی
- بررسی آسیبپذیریهای مخصوص پلتفرم
- بررسی متدهای HTTP و Cross-Site Tracing
- رمزنگاری دادهها
- شناسایی سازوکارها و الگوریتمهای بکاررفته برای رمزنگاری دادهها
- بررسی سازوکارهای کنترل کش نشستها
- بررسی نسخه، الگوریتمها، طول کلید و اعتبار SSL/TLS
مراحل اجرای آزمون نفوذپذیری وباپلیکیشن
تقسیمبندیهای مختلفی برای مرحل اجرای فرایند آزمون نفوذپذیری وباپلیکیشنها تعریف شده است؛ ولی به طور کلی میتوان آن را در چهار مرحله زیر تقسیم کرد:
- گردآوری اطلاعات: در مرحله نخست از آزمون نفوذپذیری، تلاش میشود تا با استفاده از ابزارهای مختلف، بیشترین اطلاعات ممکن از سامانه هدف کسب شود. از این مرحله، اصطلاحا با نام Reconnisance نیز یاد میشود و منظور از اطلاعات، نوع و نسخه وبسرور، سیستم عامل، پایگاه داده، آدرس IP، پورتهای باز، مکانیزمهای پایش ترافیک مانند WAF و ID/PS، زبان برنامهنویسی، چارچوبها و تکنولوژیهای استفادهشده در سامانه هدف است. بدین منظور، بنا به نیاز از ابزارهای بسیار متنوعی استفاده میشود که معمولا از آنها با نام OSINT Tools یاد میشود. از رایجترین آنها میتوان به whatweb، wafw00f، Metagoofil، nmap، Wappalyzer، whois، theHarvester، dirbuster، amass، recon-ng و ابزارهای بسیار متنوع دیگر اشاره کرد. علاوه بر اینها، از مراجع ثالثی مانند shodan، github و شبکههای اجتماعی نیز در این مرحله استفاده میشود. علاوه بر این، لازم است تا نفوذگران در این مرحله از ماهیت سامانه هدف و عملکردهای آن نیز مطلع شوند.
- کشف آسیبپذیری: پس از آنکه اطلاعات کافی از سامانه هدف گردآوری شد، نفوذگران تلاش میکنند تا بخشهای مختلف وباپلیکیشن هدف را برای کشف آسیبپذیریهای شناختهشده یا آسیبپذیریهای جدید، آزمایش کنند. این مرحله از آزمون نفوذپذیری معمولا سختترین، تخصصیترین و زمانبرترین بخش از کل فرایند آزمونپذیری است. برای آزمون وباپلیکیشن از ابزارهای خودکار و دستی به صورت تواما استفاده میشود. ازجمله ابزارهای خودکار میتوان به Acunetix، Netsparker، Arachni، Nuclei، Nessus، Nikto، و ابزارهای متنوع دیگری اشاره کرد. علاوه بر اینها، برای آسیبپذیریهای مشخص، از ابزارهای مخصوص دیگری نیز استفاده میشود. بهعنوان نمونه، برای شناسایی آسیبپذیری XSS از ابزارهایی مانند xsser، gf و Dalfox استفاده میشود. در کنار اینها، اجرای آزمونهای دستی اهمیت بالاتری دارد؛ چراکه برای کشف برخی از آسیبپذیریها، ازجمله آسیبپذیریهای منطقی، نیاز به تخصص و هوش انسانی وجود داردو و ابزارها توان کشف بسیاری از آسیبپذیریهای مدرن و پیچیده را ندارند. بدین منظور نیز معمولا از دو ابزار بسیار قدرتمند Burp Suite و ZAP استفاده میشود.
- بهرهبرداری از آسیبپذیریهای کشفشده: پس از شناسایی آسیبپذیری در یک وباپلیکیشن، تلاش میشود تا سناریوهای مختلف برای بهرهبرداری از آسیبپذیری کشفشده بررسی شوند. هدف از اجرای این مرحله در آزمونهای نفوذپذیری وباپلیکیشن، تهیه شواهد لازم برای اثبات آسیبپذیری و همچنین امکانسنجی بهرهبرداری از آسیبپذیری برای نفوذ بیشتر در سامانه هدف (Lateral movement و Privilege Escalation) است. بهعنوان نمونه، پس از کشف آسیبپذیری SQL Injection در یک سامانه، ممکن است بتوان از آن آسیبپذیری برای اجرای سناریوهای حمله دیگری مانند RCE و OS Command Injection استفاده کرد. برای این بخش نیز ابزارهای بسیار مختلفی استفاده میشوند که از مهمترین آنها میتوان به Metasploit و Powersplot اشاره کرد.
- ارائه گزارش: درنهایت، تمامی یافتههای نفوذگران از مراحل قبلی، پس از بررسی و نهاییسازی، در قالبهای ویژهای برای کارفرما گزارش میشوند. ازجمله مواردی که در این گزارش ارائه میشوند، میتوان به تشریح آسیبپذیری کشفشده، شواهد مربوط به آسیبپذیری، علت ریشهای ایجاد آسیبپذیری، شدت آسیبپذیری بر اساس بردار CVSS v3.1 و راهکارهای کلی برای رفع آسیبپذیری کشفشده اشاره کرد.