درک اسکریپت نویسی Cross-site (XSS) – بیش از یک نسخه ی چاپی

اسکریپت نویسی Cross-site (XSS) یکی از رایج ترین آسیب پذیری های برنامه های وب است که به طور مداوم در XOWASP Top 10 ظاهر می شود، XSS اجازه می دهد تا مهاجم به تزریق اسکریپت های مشتری مخرب به صفحات وب مشاهده شده توسط کاربران دیگر. اسکریپت های تزریقی در زمینه مرورگر قربانی اجرا می شوند، که به سرقت اطلاعات اولیه کمک می کنند (و یا حذف پیام های مخرب)

  • ]Stored (Persistent) XSS - اسکریپت مخرب به طور دائم در سرور هدف ذخیره می شود (به عنوان مثال، در پایگاه داده، زمینه نظر، یا پست انجمن).
  • Reflected (غیر پراکنده) XSS - اسکریپت تزریق شده منعکس شده از سرور وب، به طور معمول از طریق یک URL یا ارسال فرم ساخته شده ذخیره نمی شود؛ آن را تنها زمانی اجرا می کند که قربانی کلیک لینک مخرب.
  • XSS مبتنی بر DOM [FLT 1] - آسیب پذیری به طور کامل در کد سمت مشتری مرورگر وجود دارد.بار حمله هرگز به سرور ارسال نمی شود؛ به جای آن، محیط DOM را اصلاح می کند و از آنجا اجرا می شود.

هر نوع چالش های منحصر به فرد برای کنترل های امنیتی را ارائه می دهد. Firewall ها – به ویژه فایروال های کاربردی وب (WAFs) – می توانند در برابر انعکاس و برخی از XSS ذخیره شده محافظت قوی ارائه دهند، اما XSS مبتنی بر DOM نیاز به اقدامات اضافی دارد.

فایروال در امنیت وب مدرن چیست؟

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

  • فایروال های شبکه - عملیاتی در لایه های 3-4 (IP، TCP /UDP) می توانند IP های مخرب شناخته شده را مسدود کنند یا پورت ها را محدود کنند، اما اطلاعات لایه کوچک را بررسی می کنند.
  • فایروال های کاربردی وب (WAFs) - دستگاه های لایه 7 طراحی شده برای بازرسی ترافیک HTTP /HTTPS، تجزیه و تحلیل محتوای درخواست (headers، بدن، پارامترهای URL) برای الگوهای مخرب است.
  • فایروال مبتنی بر ابر (از جمله WAF-as-a-Service) - نمونه هایی از جمله AWS WAF، Cloudflare WAF و Azure Application Gateway مقیاس پذیری، تأخیر پایین و اغلب با CDN ادغام می شوند.

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

چگونه فایروال ها (WAFs) Detect و Block XSS

امضای امضای-based Trial

اکثر کشتی های WAF با امضاهای پیش تعریف شده که با محموله های XSS شناخته شده مطابقت دارند – به عنوان مثال، الگوهایی مانند :0]، ، یا انواع رمزگذاری شده، فایروال هر گونه درخواست که باعث بارگذاری پایگاه داده های امضا می شود، به طور منظم توسط فروشندگان برای پوشش حملات جدید به روز می شوند.

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

Anomaly و Heuristic-based

WAFs پیشرفته از یادگیری ماشین یا مدل های آماری برای تشخیص الگوهای غیر طبیعی استفاده می کند.آنها ساختار معمول درخواست های معتبر برای هر نقطه پایانی و انحراف پرچم را یاد می گیرند - به عنوان مثال، یک پارامتر عددی معمولی که به طور ناگهانی حاوی برچسب های HTML است.

محدود کردن و تجزیه و تحلیل رفتاری

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

مکانیسم های حفاظت از بتن در سطح فایروال

  • اعتبار و فیلتر - WAF هر پارامتر، کوکی و هدر را بررسی می کند.د.د.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.ک.
  • آگاهی از کد نویسی - WAFs مدرن می تواند ارتباط برقرار کند که ورودی کاربر در پاسخ به پایان می رسد (به عنوان مثال، داخل یک برچسب اسکریپت در مقابل یک ویژگی HTML) و اعمال قوانین خاص زمینه. این سطح از هوش نادر است، اما فروشندگان پیشرو مانند F5 و Imperva آن را ارائه می دهند.
  • پچ مجازی - هنگامی که یک آسیب پذیری سرور در سمت XSS کشف شد اما نمی تواند بلافاصله ثابت شود، WAF می تواند یک پچ مجازی ایجاد کند: یک قاعده سفارشی که مسیر بهره برداری را بدون تغییر کد برنامه مسدود می کند.
  • درخواست عادی سازی - WAFs اغلب رمزگشایی لایه های متعدد رمزگذاری (URL-en code، یونیکد، دو کد) قبل از چک کردن امضا، خنثی کردن obscation پایه.

محدودیت های فایروال ها در برابر XSS – جایی که شکست می خورند

سوگند به بادهای که

مهاجمان به طور منظم دور زدن را طراحی می کنند تکنیک های مشترک شامل:

  • استفاده از رویدادهای جایگزین جاوا اسکریپت در خارج از کلاسیک / مجموعه - به عنوان مثال، با .
  • در این میان، ، یا سایر عناصر HTML که می توانند اسکریپت ها را اجرا کنند، به کار گرفته می شوند.
  • شخصیت های Exploiting، ناسازگاری بین WAF و مرورگر (به عنوان مثال، حملات UTF-7 به صورت تاریخی از فیلترهای فقط ASCII دور می شوند).
  • شکستن محموله در چندین پارامتر درخواست یا استفاده از رمزگذاری انتقال دهنده HTTP برای قاچاق محتوا در گذشته از موتور بازرسی.

DOM-based XSS – نامرئی برای اکثر فایروال ها

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

چالش های ترافیک رمزگذاری شده (HTTPS)

در حالی که WAF های مدرن می توانند TLS را برای بازرسی متن ساده رمزگشایی کنند، این امر تأخیر را اضافه می کند و نیاز به مدیریت گواهینامه مناسب دارد، برخی از استقرار های کوچکتر ممکن است بازرسی را در نقاط پایانی ترافیک بالا، ترک یک نقطه کور انجام دهند.

بهترین تمرین ها: فایروال ها به عنوان بخشی از یک دفاع لایه ای

تنها در مورد WAF خطرناک است، موثرترین استراتژی پیشگیری از XSS شامل چهار خط دفاعی است:

۱- توسعه امن وamp؛ Sanitization سرور

تمام داده های مجاز کاربر باید معتبر، ایمن شده یا قبل از ورود به پاسخ های HTML فرار کنند. OWASP ]Java پروژه هش و راهنمایی برای رمزگذاری خروجی در زمینه های مختلف (HTML، ویژگی، URL، جاوا اسکریپت، CSS) را تنظیم می کند.

سیاست امنیت محتوا (CSP)

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

۳- پچ سازی منظم و به روز رسانی

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

آموزش امنیت و آزمایش

توسعه دهندگان و مهندسان امنیتی باید درک کنند که چگونه XSS فراتر از تست نفوذ منظم WAF (از جمله آزمایش دستی) کار می کند و بررسی های کد الگوهای دور زدن را کشف می کند که ابزار WAF از دست رفته است.

انتخاب فایروال مناسب برای حفاظت از XSS

همه ی فایروال ها برابر نیستند، هنگام انتخاب یک WAF، در نظر بگیرید:

  • آیا از هر دو نشانه و هر دو روش استفاده می کند؟ آیا این کار از تنظیم نادرستی به صورت خودکار پشتیبانی می کند؟
  • از پچ مجازی [FLT 1] - آیا می توانید به راحتی قوانین سفارشی را برای مسدود کردن یک CVE تازه کشف شده اضافه کنید؟
  • تاثیر دقیق - A WAF که اضافه می کند >5 ms تاخیر در هر درخواست ممکن است برای سایت های با ترافیک بالا مناسب نیست.
  • ] مدیریت شده در مقابل خود میزبان - Cloud WAFs (Cloudflare، AWS WAF) اغلب دارای سربار عملیاتی پایین تر و به روز رسانی قوانین خود را به طور خودکار تنظیم می کنند.

مثال واقعی جهان: رویداد ۲۰۲۲ Twilio XSS

در سال 2022، یک آسیب پذیری XSS ذخیره شده در داشبورد ایمیل Twilio SendGrid به مهاجمان اجازه داد تا سیگنال های جعلی را که اعتبار از کاربران داخلی را سرقت کرد، تزریق کنند. محموله برای جلوگیری از امضای WAF رمزگذاری شده توسط فرستنده و پشتیبانی از WAFtext عمیق، نشان داد که حتی شرکت های بزرگ با استقرار های WAF بالغ می توانند توسط XSS ضربه بزنند، زمانی که مهاجم سفارشی و نیاز به تجزیه و تحلیل عمیق از WAFD.

نتیجه گیری

فایروال ها - به طور خاص فایروال های کاربردی وب - یک جزء ضروری از استراتژی عمیق دفاع در برابر حملات اسکریپت نویسی متقابل سایت هستند.آنها در فیلتر کردن خودکار شارژ XSS شناخته شده و می توانند پچ های سریع مجازی را برای کد غیر فعال ارائه دهند، با این حال، آنها تنها یک گلوله نقره ای نیستند.حمله کنندگان همچنان به پیدا کردن راه های خلاقانه برای دور زدن قوانین مبتنی بر امضا، و XSS تا حد زیادی از بررسی دقیق تر از امنیت و امنیت اطلاعات، به طور مداوم، به عنوان یک روش های امنیتی مداوم، به طور مداوم، به طور مداوم، به طور مداوم، به طور مداوم، به طور مداوم، استفاده می کنند.