تست نفوذ

مراحل اجرایی تست نفوذ وب اپلیکیشن ها – Web Application Penetration Testing

آزمایش نفوذ یا تست نفوذ Penetration Testing چیست؟

تست نفوذ یا Penetration Testing یک فرایند ارزیابی امنیتی است که جهت بررسی آسیب پذیری های برنامه های وب توسط کارشناسان امنیتی آموزش دیده (مانند آزمون های نفوذ یا هکرهای اخلاقی) مورد استفاده قرار می گیرد . هدف از این آزمایش تقویت آسیب پذیری های امنیتی است که اپلیکیشن مورد نظر ممکن است داشته باشد ، به طوری که جامعه هکینگ به راحتی از آن سوء استفاده نکنند . 

بدیهی است برنامه های کاربردی وب هدف های آسانی برای هکرها هستند ، بنابراین توصیه می شود توسعه دهندگان برنامه های کاربردی وب اغلب فرآیند تست نفوذ را انجام دهند تا این اطمینان حاصل شود که برنامه های کاربردی وب آنها از نظر آسیب پذیری های امنیتی و حملات مخرب در امان هستند .

در این سند ، تیم امنیتی ما سعی میکند روندی از اجرای تست نفوذ برنامه های وب را به تحریر در آورد تا بازدیدکنندگان گرامی دیدگاه کاملی از این فرآیند داشته باشند .

انواع تست نفوذ وب سایت :

برنامه های کاربردی وب را می توان در دو روش مورد آزمایش قرار داد . تست ها می توانند یک حمله داخلی یا یک فضای شبیه سازی شده باشند  .

  • تست نفوذ داخلی – Internal Penetration Testing

  • تست نفوذ خارجی – External Penetration Testing

تست نفوذ داخلی

همانطور که از نام آن پیداست تست نفوذ داخلی از طریق شبکه در داخل سازمان انجام می شود ، بدین معنی که برنامه های وب میزبانی شده در اینترانت مورد آزمایش قرار می گیرند . این روند برای کمک به کشف آسیب پذیری در فایروال شرکتی یا سازمانی می باشد . با این حال بر اساس تجارب چندین ساله خودمان همیشه اعتقاد داریم که حملات تنها می توانند با متد خارجی صورت بگیرند و آزمون های نفوذ داخلی در حوزه وب اپلیکیشن ها چندان مورد توجه قرار نمیگیرد ( این مورد صرفا در حوزه وب اپلیکیشن ها می باشد و تست نفوذ شبکه ها را شامل نمیشود )

لیست آزمون تست نفوذ در وب اپلیکیشن :

  • تست پروکسی سرور (ها)

  • تست فیلتر ایمیل اسپم

  • تست فایروال شبکه

  • تست آسیب پذیری امنیتی

  • تست رمزگذاری ها

  • تست کوکی ها

  • تست فرم های تماس

  • تست پورت های باز

  • تست ورود به سیستم برنامه

  • تست پیام خطا

  • تست متد (های) HTTP

  • تست نام کاربری و رمز عبور

  • تست تزریق SQL

  • تست XSS

  • تست مجوز های دسترسی

  • تست جلسه کاربر

  • تست حمله Brute Force

  • تست حمله (DoS (Denial of Service

  • تست دایرکتوری مرورگر

  • اسکن فایل

  1. تست پروکسی سرور (ها)

سرورهای پروکسی نقش مهمی را در بررسی ترافیک برنامه وب شما و برجسته کردن هر گونه فعالیت های مخرب دارند . بنابراین باید مطمئن شویم که سرورهای پروکسی در شبکه شما دقیق و کارآمد باشند . ابزارهایی مانند Burp Proxy و OWSAP ZAP می در دستیابی به این کار کمک زیادی کنند.

  1. تست فیلتر ایمیل اسپم

باید اطمینان حاصل شود که فیلترهای هرزنامه ها یا ایمیل های اسپم به درستی کار کنند . بنابراین بررسی میکنیم که آیا ترافیک ورودی و خروجی با موفقیت فیلتر شده و ایمیل های ناخواسته مسدود شده اند ؟ به عبارت دیگر، مطمئن می شویم که سیاست ایمنی ایمیل به درستی اجرا شده باشد . باید توجه داشت که ارسال هرزنامه یکی از روش های محبوب حملات اولیه هکرها است.

  1. تست فایروال شبکه

باید اطمینان حاصل شود که فایروال شما از ورود ترافیک های مخرب و ناخواسته به برنامه وب جلوگیری می کند . علاوه بر این باید بررسی شود که آیا سیاست های امنیتی که با فایروال تنظیم شده اند به درستی اجرا می شوند . عدم کارکرد صحیح فایروال مانند این است که به هکرها یک دعوتنامه برای آمدن و هک کردن برنامه وب خود داده اید .

  1. تست آسیب پذیری امنیتی

بررسی کامل امنیت در جنبه های مختلف برنامه وب مانند سرورها و دیگر دستگاه های شبکه با دقت تمام انجام می شود و آسیب پذیری های امنیتی که کشف می شود با دقت لیست می کنیم . پس از تحلیل نهایی ، راه هایی برای برطرف کردن آسیب پذیری ها پیدا میکنیم .

۵ . تست رمزگذاری ها

نام های کاربری و رمزهای عبور رمزگذاری شده باید طریق یک اتصال امن HTTPS منتقل شوند تا هکرها این اعتبارها را از طریق حملاتی مانند “MITM” یا حملات مختلف دیگر نشانه گیری نکنند . از آنجا وظیفه برقراری امنیت صرفا بر عهده مدیریت برنامه های وب می باشد ، باید توجه کنید که مشتریان شما با اطمینان از امن بودن وب و زیرساخت های مربوطه اقدام به ارائه اطلاعات حساس می کنند و توجهی به نقص های امنیتی ندارند .

  1. تست کوکی ها

کوکی ها داده های کاربر را ذخیره می کنند بنابراین این اطلاعات حساس در معرض هکرها گرفته و می تواند امنیت بسیاری از کاربران را که از وب سایت یا برنامه شما بازدید می کنند به خطر بندازد . باید اطمینان حاصل شود که داده های کوکی به راحتی نمایش داده نمی شوند . به عبارت دیگر، کوکی ها نباید در قالب متن ساده یا فرمت قابل خواندن در دسترس قرار بگیرند .

۷ . تست فرم های تماس

نقطه ورودی برنامه های وب برای اسپم ها هدف بسیار خوبی است بنابراین ، باید اطمینان خاصل شود که فرم های تماس شما قادر به شناسایی و جلوگیری از حملات اسپم ها و هرزنامه باشند . یکی از ساده ترین راه های جلوگیری از هرزنامه تماس، شامل CAPTCHA است.

۸ . تست پورت های باز

پورت های باز در وب سروری که برنامه وب شما را میزبانی می کند میتواند اهداف خوبی برای هکرها باشد تا بتوانند امنیت برنامه وب شما را از بین ببرند . این مورد امنیتی باید بررسی شود تا اطمینان حاصل شود که هیچ پورت باز بدون استفاده در وب سرور شما وجود نداشته باشد .

  1. تست ورود به سیستم برنامه

باید اطمینان حاصل شود که پس از چندین تلاش ناموفق در ورودی ها از سمت هکرها ، ورودی برنامه وب شما قفل می شود . این مورد یکی از عناصر اساسی است که می تواند مسیر طولانی در تأمین امنیت برنامه وب شما برقرار کند .

  1. تست پیام خطا

باید اطمینان حاصل شود که تمام پیام های خطای برنامه وب شما عمومی هستند و مشکلات داخلی وب را بیش از حد معمول برای بازدیدکنندگان نشان نمی دهند . اگر همه خطاهای سمت سرور در سمت بازدیدکننده نمایش داده شود، مانند این است که به هکرها بگویید : “ما در اینجا یک مشکل داریم و شما می توانید از آن استفاده کنید!”

  1. تست متد (های) HTTP

روش های HTTP که برنامه وب شما برای ارتباط با مشتریان استفاده می کند کاملا باید بررسی شود . باید اطمینان حاصل حاصل شود که روش PUT و Delete  فعال نیست ، زیرا اگر فعال باشند هکرها به راحتی می توانند از برنامه وب سوء استفاده کنند .

۱۲ . تست نام کاربری و رمز عبور

تست نام کاربری و رمز عبور تمام کاربران در برنامه های وب شما مراحل اولیه فرآیند شماست . کلمات عبور باید کاملا پیچیده باشند و نام کاربری باید طوری باشد که به آسانی قابل حدس زدن نباشد . یوزر پسوردهای ضعیف را باید جدا کرده و به کاربران آنها هشدار داده شود .

  1. اسکن فایل

باید اطمینان حاصل شود همه فایل هایی که شما در برنامه وب یا سرور خود آپلود می کنید قبل از آپلود اسکن شده باشند .

  1. تست تزریق SQL

تزریق SQL یکی از محبوب ترین روش های استفاده از برنامه های کاربردی وب و وب سایت ها توسط هکرها است. بنابراین باید اطمینان حاصل شود که برنامه وب شما به انواع مختلف حملات SQL مقاوم است .

  1. تست XSS

باید اطمینان حاصل شود که برنامه وب شما از scripting Cross-Site یا حملات XSS جلوگیری می کند.

۱۶ . تست مجوز های دسترسی

اگر برنامه وب شما دسترسی مبتنی بر نقش را فراهم می کند ، مجوزهای دسترسی کاربران باید بررسی شود و اطمینان حاصل شود که کاربران فقط به آن قسمت از برنامه وب که به آنها دسترسی داده شده ، دسترسی دارند . نه چیزی بیشتر و نه چیزی کمتر

  1. تست جلسه کاربر

این تست بسیار مهم است .

باید اطمینان حاصل شود که جلسات کاربر پس از خروج پایان می یابد . از آنجا که اگر این فرآیند صورت نگیرد  هکرها به راحتی می توانند از جلسات دیگر کاربران سو استفاده کرده و وارد کاربری آنها بشوند . این فرایند hijacking session برای انجام فعالیت های مخرب نامیده می شود .

۱۸ . تست حملات Brute Force

باید اطمینان حاصل شود در صورت شکل گیری حملات Brute Force ، برنامه وب و میزبان آن چه تدابیری را اندیشیده اند . نمونه ایی از این تدابیر مسدود کردن آی پی هایی است که درخواست های غیر مشروع ارسال می کنند .

  1. تست حمله (DoS (Denial of Service

باید اطمینان حاصل شود که برنامه وب شما (DoS (Denial of Service با استفاده از ابزارهای مناسب این حملات را دفع می کند .

۲۰ . تست دایرکتوری مرورگر

باید اطمینان حاصل شود که دایرکتوری مرورگر در وب سرور که برنامه وب شما را میزبانی می کند غیرفعال است ، زیرا اگر این کار صورت نگرفته باشد هکرها به راحتی دسترسی فایل های مورد نظر خود را بر روی سرور شما به دست می آورند.

چگونه تست نفوذ انجام می شود؟

تست نفوذ را می توان به پنج مرحله تقسیم کرد :

  1. برنامه ریزی و شناخت

مرحله اول شامل موارد زیر است :

تعریف محدوده و اهداف آزمون ، از جمله سیستم های مورد نظر و روش های آزمون که استفاده می شود و غیره،

جمع آوری اطلاعات شامل  شبکه و نام دامنه ، پورت های باز ، انواع سرویس های فعال شده ، سرور پست الکترونیکی و …

  1. اسکن

گام بعدی این است که درک کنیم چگونه برنامه وب مورد نظر به تلاشهای مختلف برای نفوذ پاسخ می دهد . این کار معمولا با استفاده از دو روش زیر صورت می گیرد :

  • تجزیه و تحلیل استاتیک

  • تجزیه و تحلیل پویا

  1. کنترل دسترسی

این مرحله با استفاده از حملات برنامه های کاربردی وب برای شناسایی آسیب پذیری های یک هدف، مانند اسکریپت های متقابل سایت ، تزریق SQL و backdoors است . سپس متخصصان تست نفوذ سعی می کنند از این آسیب پذیری ها استفاده کنند تا بتوانند آسیب هایی را که می توان با افزایش امتیازات ، سرقت اطلاعات ، ترافیک و غیره ایجاد کرد را شناسایی کنند.

  1. حفظ دسترسی

هدف این مرحله این است که ببینیم آیا آسیب پذیری کشف شده می تواند برای رسیدن به حضور مداوم در سیستم ایفای نقش کند و برای یک هکر بهره برداری به اندازه کافی برای دسترسی به عمق استفاده وجود دارد ؟

  1. تجزیه و تحلیل

نتایج آزمون نفوذ به تکمیل یک گزارش ختم می شود :

  • آسیب پذیری هایی که مورد بهره برداری قرار گرفته و اطلاعات حساسی در دسترسی می باشد .

  • مقدار زمانیکه متخصص تست نفوذ توانست در سیستم فعالیت کند و هیچ برنامه امنیتی جلوی او را نگرفت .

این اطلاعات توسط پرسنل امنیتی تکمیل می شود و برای کمک به پیکربندی تنظیمات WAF یک شرکت و سایر راه حل های امنیتی نرم افزار آسیب پذیر مورد تحلیل قرار خواهد گرفت .

نتیجه:

در این سند ، ما یک مرور کلی از برنامه های وب داشتیم و انواع آزمون نفوذ و چک لیست آن را با روند کامل تست نفوذ به تحریر در آوردیم . باید بپذیرید که فرآیند تست نفوذ نقاط ضعف زیرساخت فناوری اطلاعات شرکت ها و سازمان ها را بهبود می بخشد و ارزش سرمایه گذاری را دارد .

 

گردآورنده : سید محمد اسماعیلی

 

نوشته های مرتبط

امنیت سرور ssh

۱۹

مرداد
همه موضوعات

سند امنیت در سرور OpenSSH – چک لیست امنیتی OpenSSh

انتشار محتوای سایت ایران سایبر فقط با ذکر منبع رسمی مجاز است OpenSSH اجرای پروتکل SSH است و به دلیل امنیت بالا برای ریموت لاگین ، ایجاد پشتیبان ، انتقال فایل از راه دور از طریق scp یا sftp و موارد دیگر توصیه می شود. SSH جهت حفظ محرمانگی و یکپارچگی داده های تبادل شده بین دو شبکه […]

کنترل پهنای باند اینترنت

۱۶

مرداد
همه موضوعات

محدود کردن سرعت اینترنت کاربران شبکه LAN در لینوکس

انتشار محتوای سایت ایران سایبر فقط با ذکر منبع رسمی مجاز است  اینترنت می تواند ترافیک نامطلوب زیادی را از جمله فعالیت هکرها ، اسپم ها ، جاسوس افزارها و موارد دیگر به همراه آورد. در این مقاله قصد دارم یک ابزار منبع باز را معرفی کنم تا بوسیله آن بتوانید ترافیک اینترنت را کنترل کرده و فعالیت[…]