• تست نفوذ پذیری وب سایت

    تیم امنیتی وب گارد

  • تست نفوذ پذیری و ایمن سازی وب سایت

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

    مراحل اجرایی تست نفوذ پذیری وب اپلیکیشن

    تست نفوذ وب اپلیکیشن یا Web Penetration Test یک پروسه مجاز، برنامه ریزی شده و سیستماتیک برای به کارگیری آسیب پذیری‌ها جهت نفوذ به منابع برنامه های کاربردی و پایگاه‌های داده است. این تست از طریق شبیه سازی حمله یک هکر یا نفوذگر خرابکار صورت می گیرد. پروسه تست نفوذ یک تحلیل فعال از سیستم برای یافتن هر حفره، آسیب پذیری و نقص فنی است که بالقوه یک ضعف امنیتی سیستم محسوب می شود.همه مشکلات امنیتی کشف شده به همراه ارزیابی میزان اهمیت و راه حل های فنی به همراه پیشنهاد هایی برای کاهش اثر خطرات ارائه می شود.

     میزان پاسخ دهی سرویس

    با استفاده از قابلیت SaaS  و ارسال ترافیک واقعی می توان با بالا بردن ترافیک در وب اپلیکیشن ،میزان پایداری سرویس را کشف کرد. این تست همانند حملات DDOS شبیه سازی می شود.

    ارائه چک لیست امنیتی

    ارائه و پیاده سازی چک لیست امنیتی وبگارد

    ارائه ی گزارش 

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

    شناسایی و جمع آوری اطلاعات

    در این بخش مشخصات کامل فنی مربوط به وب‌سایت هدف، سیستم مدیریت محتوا، تنظیمات، مشخصات میزبانی و سرویس‌های مختلف مربوطه شناسایی می شود

    تشخیص آسیب پذیری ها

    این بخش با هدف شناسایی آسیب‌پذیری و باگ‌های امنیتی بر روی وب اپلیکیشن انجام میشود.

    نفوذ و بالا بردن سطح دسترسی

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

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

    مشکلات Injection از شکست در فیلتر کردن ورودی های نامعتبر نشات میگیرد و وقتی رخ می دهد که شما داده های فیلتر نشده را به سرویس دهنده ای بفرستید. مثلا اگر این داده ها را به SQL بفرستید ( در این حالت می گوییم SQL Injection ) ، به مرورگر کاربران بفرستید ( در این حالت می گوییم XSS که درباره آن کمی جلوتر صحبت می کنیم ) ، به سرویس دهنده LDAP بفرستید ( در این حالت می گوییم LDAP Injection ) یا هر چیز دیگری ؛ در واقع مشکل اینجاست که حمله کننده می تواند دستورات خودش را به این سرویس ها بفرستد که نتیجه می تواند از دست دادن داده ها یا جعل آن ها باشد.

    کلکسیونی از مشکلات می توانند از آسیب پذیری Broken Authentication به وجود بیایند اما همه این ها از یک ریشه نشات میگیرند. همه می خواهند سیستم تایید هویت خودشان را بنویسند ، پیشنهاد ما بر عکس این است ! این بسیار سخت هست که شما بتوانید از مشکلات متعددی که می تواند در سیستم تایید هویتتان باشد ، جلوگیری کنید. این پایین برخی از آن ها را نام می بریم:

    1. URL می تواند شامل شناسه نشست ( Session ID ) باشد و از طریق هدر ارجاع در سایت دیگر قابل دسترس باشد
    2. پسورد ها موقع ذخیره رمزگذاری نشده باشند
    3. نشست ها قابل پیش بینی باشند
    4. احتمال Session Fixation
    5. احتمال Session Hijacking
    6. و…

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

    ین مشکل امنیتی وقتی رخ می دهد که ما به ورودی کاربر ، کاملا اعتماد بکنیم ! Direct Object Reference به این معنی هست که کلید های  یک شیء را به کاربر نشان دهیم یا کاربر به نوعی بتواند آن ها را حدس بزند.

    برای مثال فرض کنید یه فایلی داریم به نام download.php که با بهره گیری از آن کاربران می توانند فایل ها را دانلود کنند و از یک پارامتر به نام file برای نام فایلی که قرار است دانلود شود ، استفاده می کنیم. مثلا download.php?file=python_for_pentesters.rar. اگر توسعه دهنده به اشتباه یا به خاطر تنبلی در این فایل Authorization نکند ، نفوذگر می تواند هر فایلی را دانلود کند ! مثلا بک آپ هایی که ما داریم ، فایل های تنظیمات و حتی اسناد مهمی که توی سایت ما وجود دارد.

    مثال رایج دیگه ای که وجود دارد این هست که قسمت بازگردانی پسورد سایت ما ( reset password ) بر اساس نام کاربری که کاربر برای ما میفرستد عمل کند. حالا برای تایید کردن پسورد جدید ، کاربر به راحتی می تواند بخش Username را به admin تغییر دهد و دسترسی خودش را افزایش دهد !

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

    • اجرای برنامه روی حالت عیب یابی / Debug Mode
    • فعال بودن Directory Listing روی بخش هایی که اطلاعات با ارزش وجود دارد
    • نصب بودن برنامه های قدیمی مثلا ، وردپرس قدیمی یا PHPMyAdmin قدیمی
    • نصب بودن سرویس های بلا استفاده
    • تغییر دادن پسورد ها و کلید های پیشفرض ( تا دلتان بخواهد این مورد رونق دارد !! )
    • آشکار شدن اطلاعات مربوط به Error Handling مثلا Stack Trace ها

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

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

    همچنین باید در نظر داشته باشید که شناسه نشست ها (Sessions ID) نباید در URL باشد و Cookie ها باید دارای Secure Flag فعال باشند که این بسیار مهم است !

    این مشکل به طور ساده شکست در Authorization هست ! این یعنی یک عملیات سمت سرور انجام شود بدون اینکه Authorization وجود داشته باشد. خیلی وقت ها ، توسعه دهندگان تکیه بر این می کنند که امکانات سمت سرور فقط از طریق UI / رابط کاربری قابل دسترس است و توسط کاربر قابل دسترس نیست. دقت داشته باشید که صفحه /admin دارای امکانات مربوط به مدیر است و اگر این صفحه بدون Authorization رها شود ، حمله کننده می تواند از این امکانات استفاده کند !

    توی این آسیب پذیری حمله کننده از یک اکانت Authorize شده و در یک سایت دیگر برای انجام خواسته های خودش استفاده می کند ! برای مثال کاربر سایت Webguard.ir را باز می کند اما پسورد وی در سایت شما به pentester:pentester تغییر پیدا می کند.

    یکی از آسیب پذیری های بسیار مهم و خطرناک که مربوط به بخش نگهداری و استقرار Web Application می باشد. قبل از اینکه کد ها را ترکیب کنید ، باید دقت داشته باشید اگر کدی را از گیت هاب بر میدارید یا از فروم ها کپی می کنید به این معنی نیست که ۱۰۰% ایمن است و می تواند انواع آسیب پذیری هارا داشته باشد.

    یک بار دیگر مشکل از فیلترینگ نادرست ورودی ها نشات میگیرد. فرض کنید که شما صفحه ای دارید به نام redirect.php که پارامتر url ای را دریافت می کند و کاربر را به آن URL هدایت می کند. مثلا فرض کنید آدرس www.webguard.ir/deleteProfile در سایت شما وجود دارد که با باز شدن آن ، اکانت کاربر مورد نظر حذف می شود. حالا اگر کسی از سایت آسیب پذیر که مورد اعتماد کاربر هست ، او را به سایت شما هدایت کند، پروفایل وی حذف می شود.

    با کارشناسان ما در ارتباط باشید تا راهنمایی لازم برای راهکارهای امنیتی با بالاترین کیفیت و همچنین نمونه های روش انجام کار ما را ببینید

    نام شما (الزامی)

    ایمیل شما (الزامی)

    شماره تماس (الزامی)

    موضوع

    پیام شما