تست نفوذ وبسایت چیست؟
برای شروع بهتر است با مفهوم این مورد آشنا شویم. تست نفوذ وبسایت (Website Penetration Test) یک شبیهسازی حمله هکری است که به منظور آزمودن سطح امنیت سایبری سازمانها انجام میگیرد.
کسبوکارها هزینه زیادی دادهاند تا بیاموزند که نقاط آسیبپذیر و حفرههای امنیتی تا چه حدی میتوانند مخرب باشند و بر ارکان مختلف سازمان ضرر وارد کنند. بر اساس دادههای آماری، 99.7 درصد کسبوکارها، حداقل یک نقطه آسیبپذیر دارند که از خود مدیران آنها نیز پنهان است. این نقاط آسیبپذیر شبیه بمبهای ساعتی هستند که هر آن ممکن است منفجر شوند. در مورد مسائل امنیتی، نادیده گرفتن واقعیت، هرگز ویژگی مثبتی نخواهد بود.
به منظور حفاظت از وبسایت خود، شما باید در اولین فرصت، این حفرههای امنیتی را شناسایی و اصلاح کنید. در این مقاله، بهطور ویژه به تست نفوذ وبسایت خواهیم پرداخت.
برخی از نقاط ضعف رایج در وبسایتها شامل تزریق (کد یا داده) به SQL (منظور از تزریق، پیدا کردن حفرهای در برنامه برای ورود به آن است) اسکریپت بین- سایتی (CSRF) و جعل کردن درخواست متقابل سایت (XSS) هستند. از این طریق، مجرمان سایبری (هکرها) میتوانند دادههای حساس شرکتها را بربایند یا حتی کنترل کامل وبسایت شما را بدست آورند. برای جلوگیری از این امر، اقدامات پیشگیرانهای چون تست نفوذ وبسایت به شما کمک میکنند تا قبل از هر حملهای، نقاط ضعف را بیابید و برای برطرف کردن آنها اقدام کنید.
پس بیایید به تست نفوذی بپردازیم که گاهی تحت عنوان ممیزی امنیت وبسایت (آزمون نفوذ وبسایت) نیز از آن یاد میشود.
منظور از تست نفوذ (Pentesting) چیست؟
آزمون نفوذ یک حمله شبیهسازی شده به سبک هکرها به یک اپلیکیشن یا وبسایت است که هدف آن اندازهگیری سطح امنیت و میزان آسیبپذیری موجود است. در تست نفوذ، به راههایی پرداخته میشود که از طریق آنها میتوان نقاط ضعف وبسایت یا اپلیکیشن را برعلیه خود آن استفاده کرد. این آزمون متفاوت از ارزیابی آسیبپذیریها است که در آن لیستی از نقاط آسیبپذیر شناسایی و گزارش میشوند.
پیشنهاد میکنیم برای آشنایی هرچه بیشتر با تست نفوذ (Penetration Test) مقاله تست نفوذ چیست؟ را مطالعه کنید.
برای مثال، فرض کنید شما از شیوههای معمول برای ارتقاء سطح امنیتی خانه خود استفاده میکنید تا دزد نتواند وارد آن شود. در اینجا، ارزیابی آسیبپذیریها شامل اطمینان از سالم و بسته بودن درها و پنجرهها میشود. با این حال، تست نفوذ وبسایت شبیه به بررسی میزان استحکام یا ضعف درها و پنجرهها میپردازد. بنابراین، در دومی هدف این است که بدانیم، اگر دزد تلاش کند تا از این ورودیها به خانه وارد شود، آیا درها و و پنجرهها آنقدر امن و مطمئن هستند که این تلاش را پس بزنند یا خیر!؟
اساسا، ارزیابی آسیبپذیری اولین گام در ارزیابی و اقدام برای حفاظت از وبسایت است. این در حالی است که آزمون امنیت وبسایت (تست نفوذ وبسایت) با استفاده از یافتهها (لیست آسیبپذیریها) برای تعیین شدت خطر متناظر با آنها بهره میگیرد. علاوه بر این، فرایند ارزیابی آسیبپذیری را میتوان از طریق اسکنهای خودکار و یا دستی به اجرا رساند، اما آزمون نفوذ وبسایت (Website Pentesting) عموما یک فرایند دستی است که مستقیما توسط مهندسان بخش امنیت اجرا میگردد.
ارزیابی آسیبپذیری و تست نفوذ به یک منطقه از فضای مجازی کسبوکار میپردازند، اما رویکرد آنها و نتایجشان متفاوت است. در گذشته به اشتباه، این دو فعالیت را یکی میدانستند. همین امر باعث میشد که صاحبان وبسایتها از یکی به جای دیگری استفاده کنند و به نتایج مطلوب نرسند. امیدواریم با این توضیحات، تفاوت این دو برای شما روشن شده باشد.
در ادامه به سطوح عمیقتری از مفهوم و رویکرد اجرایی تست نفوذ وبسایت میپردازیم و روششناسی موجود در VAPT (ابزارها + چکلیست) را توضیح خواهیم داد.
چرا به آزمون نفوذ وبسایت نیاز دارید؟
برای اینکه هرگز غافلگیر و دچار ضربههای مخرب حاصل از حمله هکرها نشوید، باید حفرههای امنیتی وبسایت خود را تشخیص دهید. VAPT (تست نفوذ آسیبپذیری) میتواند وقایع فاجعهبار بالقوه را پیشبینی کند. این امر، به مدیریت بهتر کمک شایانی خواهد کرد.
سولات صاحبان وبسایت
وبسایت من خیلی کوچک است، آیا به ارزیابی آسیبپذیری و تست نفوذ وبسایت نیاز دارم؟
بلی. بر اساس تحقیقات، تقریبا 60 درصد حملههای سایبری، کسبوکارهای کوچک (SMB) را هدف قرار میدهند. بنابراین، اگر وبسایت شما هم ساده است و کسبوکار کوچکی دارید، بیشتر در معرض حمله سایبری هستید.
بهطور خلاصه، آزمون نفوذ وبسایت میتواند به طریق زیر به شما کمک کند:
- تشخیص و درست کردن درزهای امنیتی موجود در وبسایت شما.
- این تست دیدی کلی از وضعیت پیکربندی کلی وبسایت و مشکلات موجود در آن به شما میدهد.
- این نفوذ یک شبیهسازی از سناریوهای مختلف در هنگام حمله است، بنابراین ریسکهای ممکن را با وضوح بالایی برای شما مشخص میکند.
- بسیاری از مجوزها و استانداردهایی چون ISO 27001، GDPR، PCI-DSS و HIPAA، مستلزم اجرای این آزمون هستند.
- استفاده از این آزمون شما را در مقابل عواقب قانونی و جریمههای متناظر با امنیت وبسایت، حفاظت میکند.
- این تست، تمرین واقعی بسیار خوبی برای تیم امنیت شما است.
روشها و ابزارهای موردنیاز در تست نفوذ وبسایت
مرحله جمعآوری اطلاعات تست نفوذ وبسایت
اولین فاز، جمعآوری اطلاعات است که هدف پیدا کردن مسیرها، ابزارها و کاربران پشتیبان سایت است. در این مرحله، نفوذکننده سعی خواهد کرد پشتوانههای وبسایت، مثل سرور OS، ورژن CMS و غیره را شناسایی کند. ابزارهایی که میتوانید در فاز جمعآوری اطلاعات استفاده کنید:
طراح شبکه یا NMAP
NMAP یکی از اصلیترین ابزارها در تست نفوذ وبسایت است که برای سالها در این حوزه فعالیت داشته و بهبود پیدا کرده است. قابلیتهای NMAP عبارتند از:
- میتواند پورتهای باز موجود در سرور را پیدا کند.
- شناسایی اثرانگشت (از نوع مجازی) سرور OS.
- عبور از فایروال برای اسکنِ هدف در خفا.
- شناسایی سرویسهایی که در آن پورتها درحال اجرا هستند.
- با استفاده از NSE این ابزار، میتوان فعالیتهای خودکاری چون تشخیص برخی از آسیبپذیریها را اجرایی کرد.
کاربران حتی میتوانند از ورژن GUI، NMAP، تحت عنوان Zenmap نیز استفاده کنند.
دروگر (The Harvester)
درحالی که NMAP از سیستم جعبه سیاه برای جمعآوری اطلاعات استفاده میکند، ابزارهای دیگری چون دروگر وجود دارند که هوش منبع باز (OSINT) را جمعآوری میکنند. OSINT اطلاعاتی هستند که، متناسب با هدف شما، در دامنه عمومی قرار دارند یعنی، اطلاعات ثبتنام Whois، ایمیلهای شرکت و … . این نوع اطلاعات میتوانند بسیار به موفقیت آزمون نفوذ وبسایت کمک کنند. دروگر تمام آسیبپذیریهای متناظر با این اطلاعات را شناسایی میکند و در قالب یک راهحل به شما مشاوره میدهد.
مرحله شناسایی در تست نفوذ وبسایت
در گام دوم، ابزارهای اتوماتیک به کار گرفته میشوند تا رخنههای امنیتی وبسایت یا CVEها، متناظر با خدمات مختلف در وبسایت، شناسایی شوند. در این گام، مهندسان بخش امنیت از اسکنهای دستی نیز استفاده میکنند تا هرگونه آسیبپذیری منطقی که ممکن است از نگاه ابزارهای اتوماتیک مخفی بماند را بررسی کنند. همچنین ابزارهای خودکار وارد عمل میشوند تا تمام نقاط آسیبپذیر را تا سرحد امکان شناسایی و گزارش دهند.
ابزار Nikto
Nikto ابزاری است که به صورت اختصاصی برای اسکن کردن نقاط آسیبپذیر در بیش از 270 نوع از سرورها، طراحی شده است. با استفاده از این ابزار، شما میتوانید 6700 نوع از پیکربندیهای اشتباه را در یک سرور پیدا کنید. با این حال، Nikto مشکلات اجرایی هم دارد که از آن جمله میتوان به تولید صدای زیاد و” مثبت کاذب ” (گزارش نادرست از وجود خطا) نام برد. علاوه بر این، تکنیکهای مورد استفاده در Nikto برای عبور از فایروال بسیار ضعیف هستند. با وجود این، استفاده هم زمان آن با ابزارهای دیگر (بیشتر برای عبور از IDS) میتواند موثر باشد.
بهتر است قبل از استفاده از Nikto، فایروال یا IDS خود را غیرفعال کنید. برای اسکن یک هدف با استفاده از Nikto، فقط کافی است ترمینال را در Kali باز کنید و این عبارت را تایپ کنید: nikto –h ‘your-target’
Burp Suite
Burp Suite یک چهارچوب برای آزمون نفوذ وبسایت است که با Java ساخته شده است. این ابزار، یک پروکسی داخلی دارد که ترافیک بین مرورگر شما و وبسایت تحت آزمایش را قطع میکند. بعدها، از این پروکسی میتوان برای دستکاری پاسخها یا گیجکردن صاحبان وبسایت و یافتن نقاط آسیبپذیر وبسایت بهره گرفت. همزمان که دستکاری پاسخها میتواند به یافتن نقاط آسیبپذیر کمک کند، عمل گیجکردن (fuzzing) میتواند در تشخیص پیامهای خطا و رفتار اپلیکیشنها نیز مفید باشد. این ابزار یکی از استانداردترین ابزارهای مورد استفاده در اکثر آزمونهای نفوذ است.
OpenVas
OpenVas یک اسکنر نقاط آسیبپذیر است که میتواند عمل جستجو را بر روی تمام زیرساختهای شبکه پیادهسازی کند. از این ابزار، متناظر با نیاز شما، میتوان در مقیاسهای متفاوت استفاده کرد و برای انواع مختلفی از آزمونها کاربرد دارد. مالک این ابزار شرکت Greenbone است؛ ورژن پولی این محصول Greenbone security feed و ورژن رایگان آن Green Community feed نام دارند. تفاوت اصلی بین این دو ورژن، در NVTها (آزمون اسکن آسیبپذیری شبکه) است.
مرحله استخراج تست نفوذ وبسایت
در آخرین گام از اکتشاف، هدف نفوذ به وبسایت از طریق نقاط آسیبپذیری است که در مرحله قبل کشف شده بودند. این مرحله معمولا به صورت دستی انجام میگیرد تا عوامل شناسایی شده مثبت کاذب را از لیست حذف کند. در ادامه به بررسی ابزارهای این مرحله میپردازیم:
ابزار Metasploit
یک ابزار استاندارد برای مرحله استخراج، Metasploit است. با استفاده از MMAP، میتوان از Metasploit برای جمعآوری اطلاعات نیز بهره گرفت. تنها کافی است یک نقطه آسیبپذیر بیابید، روشهای استخراج زیادی (با اهداف مختلف) دارید که از بین آنها انتخاب کنید. درنهایت، با جور کردن میزان بار مفید با رویکرد استخراجی، هرآنچه نیاز دارید را در اختیار خواهید داشت. مالک اصلی Metasploit، شرکت Rapid7 است و در Ruby نوشته شده است.
برای اجرای Metasploit، ترمینال را در Kali Linux خود باز و تایپ کنید: ‘msfconsole’
SQLMAP
SQLMAP یک راهحل جامع برای پیداکردن هر آسیب متناظر با نفوذ به SQL در وبسایت شما است. این مورد، میتواند پارامترهای هدف در URL مدنظر را پوشش دهد، یا دادههای میدانی را دربر گیرد و هر نقطه مطلوب برای ورود به SQL را پیدا کند. درنهایت، از این شکاف برای استخراج شبه SQL یا شبه CMD از ماشین هدف استفاده خواهد کرد.
برای روئیت گزینههای بیشتر، ترمینال را در Kali خود باز کنید و عبارت sqlmap –h را تایپ کنید.
ابزار Xsser
Xsser یک ابزار کوچک و سبک برای یافتن و استخراج باگهای XSS در طول فرایند تست نفوذ وبسایت است. معمولا، باگهای XSS بسیار متداول هستند و شما با استفاده از این ابزار کوچک میتوانید تعداد زیادی از آنها را کشف کنید.
برای اجرای ورژن GUI، ترمینال Kali خود را باز کنید و عبارت : Xsser -qtk را تایپ کنید.
چگونه آزمون نفوذ وبسایت میتواند به شما کمک کند؟
امروزه سایتهای تجاری، به صورت روزانه، با اطلاعات حساس مرتبط با پرداخت کاربران سروکار دارند. برای محافظت از این اطلاعات کاربری بسیار مهم، وبسایتها به اجرای رویکردهای امنیتی استانداردی نیاز دارند. تمام شرکتهای فعال در پرداختهای اینترنتی، ارائهدهندگان کارتهای اعتباری آنلاین یا فیزیکی و شرکتهایی که بهصورت آنلاین خرید و فروش میکنند، در تعریف و اجرای این استانداردها نقش دارند.
بهطور ویژه، پرتکلهای 12 گانهای تحت عنوان استانداردهای سرویس دادههای (DSS) صنایع پرداخت با کارت اعتباری (PCI)، در طول زمان به وجود آمدند. تمام وبسایتهایی که معاملات، پرداخت و دریافتهای خود را به صورت آنلاین انجام میدهند، ملزم به رعایت این 12 اصل امنیتی هستند. این پروتکلها توسط انجمن خدمات استاندارد کارت طرحریزی شدهاند و هرگونه تعدی از آنها منجر به جریمهشدن وبسایت میزبان خواهد شد. در ادامه، این موارد را بررسی میکنیم
پروتکلهای حفاظتی کارتهای اعتباری در تست نفوذ وبسایت
امنیت شبکه و سیستمها
- نصب و نگهداری از یک WAF برای حفاظت از اطلاعات صاحبان کارتهای اعتباری
- کاربران نباید از پسوردهای پیشفرض و انواعی که توسط فروشنده ارائه میشوند، استفاده کنند.
حفاظت از دادهها
- در مقابل حملات سایبری، از اطلاعات کارت اعتباری مشتریان محافظت شود.
- نقل و انتقالات در سرتاسر شبکههای باز، باید بهصورت رمزگذاری شده انجام گیرند.
مدیریت آسیبپذیریهای معمول
- از به روز بودن آنتی ویروس مطمئن شوید و مکانیزم دفاعی مناسبی علیه بدافزارها اتخاذ کنید.
- اپلیکیشنی امن را ایجاد کنید و سیستمها را در حالت ایمن نگهدارید.
معیارهای کنترلی برای سنجش میزان و نوع دسترسی
- با اجرای پروتکلهای کنترلی و نقش-محور، از دسترسی به اطلاعات صاحبان حساب جلوگیری کنید.
- تشخیص و تصدیق دسترسی به مولفههای مختلف سیستم.
- مجموعهای از محدودیتها را در دسترسی فیزیکی افراد، به اطلاعات کاربری تعریف کنید.
رصد و آزمودن شبکه
- بهطور منظم میزان، نوع و کیفیت دسترسی به منابع شبکه و اطلاعات کارتهای اعتباری را رصد کنید.
- بهصورت متناوب آزمونهای متناظر با سنجش سطح امنیت سیستمها و فرایندها را اجرا کنید.
رویکرد امنیت اطلاعات
رویکردی را اجرایی کنید که امنیت اطلاعات را متناسب با تمام سطوح و افراد در خود داشته باشد.
HIPAA
عمل پاسخگو بودن و قابلیت انتقالِ برای بیمه سلامت (Health insurance portability and accountability act) که به آن (HIPAA) نیز میگویند، یک مجموعه از قواعدی است که طراحی شدهاند تا از حریم خصوصی و امنیت اطلاعات بیمهای بیمار (PHI) حفاظت کنند. پیروی از این قواعد برای هر سازمانی که از اطلاعات سلامت افراد استفاده میکند، الزامی است.
دو مولفه اصلی HIPAA عبارتاند از:
- قاعده حریم شخصی: این مولفه به چگونگی تعیین استانداردها در استفاده از PHI و افشای آنها میپردازد.
- قاعده امنیتی: این مولفه برای اطمینان از رازداری، امانت و دسترسی به PHI تعریف شده است.
برای برآورده کردن قاعده حریم شخصی، کسبوکارها باید رویکردها و روشهایی را در استفاده از PHI طراحی کنند.
برخی از نیازمندیهای متناظر با HIPAA شامل موارد زیر هستند:
- توسعه رویکردها و روشهایی برای استفاده از PHI
- آموزش کارکنان در چگونگی استفاده از PHI
- محدودیت استفاده از PHI تنها برای افرادی که واقعا به آن نیاز دارند
- امنیت فیزیکی، الکترونیکی و امور فنی متناظر با حفاظت از PHI
- بازبینیهای دورهای و منظم از روشها، روندهای کنترلی و … برای حفاظت از PHI
SOC II در تست نفوذ وبسایت
الزامات SOC II مجموعهای از استانداردهایی هستند که کسبوکارها، برای اطمینان از امنیت و رازداری اطلاعات مشتریان، باید از آنها پیروی کنند. این استانداردها بهطور ویژه، توسط بانکها و سیستم سلامت پیروی میشوند.
چهار مولفه اصلی این استانداردها عبارتاند از:
- اصل امنیت: کسبوکارها باید امنیت اطلاعات کاربران را نسبت به هر گونه دسترسی غیرمجاز، تأمین کنند.
- اصل در دسترس بودن: کسبوکارها باید از در دسترس بودن اطلاعات مشتریان، برای زمانهای ضروری، اطمینان حاصل کنند.
- اصل امانت: کسبوکارها باید این اطمینان را ایجاد کنند که از هرگونه تغییر در اطلاعات مشتریان، جلوگیری میکنند.
- اصل رازداری: کسبوکارها باید از عدم افشای اطلاعات مشتریان خود به اشخاص و سازمانها، اطمینان حاصل کنند.
ISO 27001
ISO 27001 مجموعهای از استانداردها است که کسبوکارها باید به منظور اطمینان از امنیت اطلاعات خود، دنبال کنند. بسیاری از کسبوکارها، مثل بانکها و سیستم سلامت، قوانین الزامآوری در استفاده از این استانداردها دارند.
اصلیترین الزامات برای کسب این استاندارد شامل موارد زیر هستند:
- توسعه و اجرای سیستم مدیریت امنیت اطلاعات (ISMS)
- تشخیص و ارزیابی ریسکهای متناظر با امنیت اطلاعات
- اجرای سیاستهای کنترلی در سازمان برای کاهش خطرات متناظر با ریسکها
- رصد و بازنگری تاثیرات ISMS به صورت منظم
برای کسب استاندارد ISO 27001، کسبوکارها باید قبل از هر اقدامی، یک ISMS را طراحی، توسعه و پیادهسازی کنند. علاوه بر این، آنها باید ریسکهای مختلف و تهدیدهای متناظر با آنها را شناسایی کنند و متناظر با آنها اقدامات پیشگیرانه را به اجرا برسانند. درنهایت، ارزیابیهای منظم و مکرر از شیوههای اجرایی، دقت و نتیجه انجام الزامات استاندارد، باید به یک روتین تبدیل شود.
انجام منظم و دورهای آزمون نفوذ وبسایت، به شما کمک خواهد کرد که الزاماتی را که استانداردهای عنوان شده از کسبوکارتان انتظار دارند، فراهم کنید.
چکلیست تست نفوذ وبسایت
جمعآوری اطلاعات
- اسکن پورتها
- ردپای Web Server، ورژن CMS و OS
- روشهای HTTP
- مرغوبیت کوکی
شناسایی
- یافتن محتوای جایگزین، فایلهای دایرکتوری
- یافتن پیکربندی پیشفرض یا پیکربندی اشتباه
- ورود مبهم
- آزمون توکنهای سشن
- تزریقها: SQL, XSS, XML, Template, OS Command
- Open Rdirection
- حملههای LFI و RFI
- رخنههای منطقی کسبوکار
- انکار خدمت
- آزمون REST و SOAP برای سرویسهای وب
رخنههای کدگذاری
- Heartbleed
- Poodle
- Https Strip
- Oracle Padding Attack
- رمزنگاری ضعیف یا اجرای ضعیف
استخراج
- استفاده از XSS برای Browser Hijacking
- استفاده از انواع نفوذها برای خارج کردن داده
- عبور از قوانین
- شکست پسوردها در حالت آفلاین
- جعل نیازمندیهای ورود
آخرین نکات متناظر با آزمون نفوذ وبسایت
تمام وبسایتها، از یک بلاگ کوچک گرفته تا وبسایتهای تجاری بزرگ، به آزمون نفوذ وبسایت نیاز دارند. علاوهبراین، ابزارهای رایگان بسیار زیادی وجود دارند که به شما کمک میکنند که این آزمون را اجرا کنید. سه گام اصلی در آزمون نفوذ وبسایت (جمعآوری اطلاعات، شناسایی و استخراج) تمام فرایند را راهنمایی و سازماندهی میکنند.