اخبار داخلی آرمان داده پویان

مقالات

Cross-site scripting

۱۷ تیر ۱۳۹۸

حملات Cross Site Scripting

“اپلیکیشن ما می‌تواند به کاربران و اطلاعاتی که آنها ارائه می‌دهند اعتماد داشته باشد” جمله‌ای از مارک زاکربرگ بیناین گذار فیس بوک. از نگاه امنیت می‌توان این جمله را یک دروغ بزرگ دانست. امروز می‌خواهیم در ارتباط با یکی از حملات امنیتی که کاربر با استفاده از همین ورودی‌هایی که زاکربرگ مورد اطمینان اعلام کرده است به راه بیندازد، صحبت کنیم. این حمله در رتبه هفتم OWASP Top 10 قرار دارد. Cross Site Scripting یا به اختصار XSS. دلیل جایگذاری X با S نیز به اشتباه گرفته نشدن این حمله با زبان طراحی CSS می‌باشد. این قسمت چهارم از مقالات آموزشی آرمان داده پویان است که به بررسی انواع حملات امنیتی می‌پردازد. در ادامه با ما باشید تا مرور بر حمله Cross Site Scripting، انواع آن، اهداف مهاجمان از راه اندازی آن و در آخر روش‌های شناسایی و پیشگیری از این حمله را به شما توضیح خواهیم داد.

اگر مروری بر تاریخچه تحول وب سایت‌ها داشته باشیم می‌بینیم که در یک دهه اخیر وب سایت‌ها، از HTMLهایی ایستا به سمت هر چه پویاتر شدن رفتند، این موضوع و پیدایش CMSهایی مانند وردپرس راه را برای حملاتی که از طریق ورودی‌های کاربران راه می‌افتند، باز کرده است. به گونه‌ای که XSS در سال ۲۰۱۴ در رتبه نخست فهرست OWASP TOP 10 قرار گرفت و هم اکنون با گذشت پنج سال به رتبه هفتم نزول کرده اما همچنان در ده حمله برتر بر ضد برنامه‌های کاربردی قرار دارد. مهاجم از طرق مختلفی که توضیح خواهیم داد کدهای مخربی را به یک برنامه کاربردی و یا صفحات یک وب سایت مورد اعتماد تزریق می‌نماید. این کدهای اجرا شده و مهاجم به اطلاعاتی همچون کوکی و گذرواژه‌ها دست یابد و یا درخواست‌های جعلی ارسال نماید. در برخی موارد قادر به مدیریت محتوی وب سایت قربانی نیز می‌باشد.

XSS چگونه کار می‌کند؟

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

انواع حملات تزریق

حمله مداوم

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

یک مثال ساده برای شما در اینجا آورده‌ایم. یک برنامه کاربردی که به کاربران اجازه می‌دهد تا پیغام‌هایشان را در آن قرار داده و به دیگران نمایش دهند.

<p>Hello, this is my message!</p>

این برنامه کاربردی هیچ پردازش دیگری بر روی داده‌ها انجام نمی‌دهد، در نتیجه یک مهاجم می‌تواند پیغامی را طراحی کند که با آن به مابقی کاربران حمله کنند.

<p><script>/* Bad stuff here… */</script></p>

اهداف مهاجم از حمله

  • جا زدن خود به جای کاربر
  • اجرای هر عملیاتی که کاربر اجازه اجرای آن را دارد.
  • خواندن هر داده ای که کاربر اجازه خواندن آن را دارد.
  • به دست آوردن اطلاعات ورودی (login) کاربر
  • تزریق تروجان به یک وب سایت

پیشگیری و تشخیص

برای پیشگیری از ایجاد آسیب‌پذیری وروردی‌هایی که از کاربران دریافت می‌نمایید را حتما فیلتر کنید، هر چقدر این روند فیلترکردن سخت‌گیرانه‌تر باشد سطح امنیت بالاتری را برای سایت شما به ارمغان می‌آورد. یعنی تنها به ورودی‌های مجاز و آن مقادیری که انتظارشان را دارید اجازه ورود بدهید. داده‌های خروجی را encode کنید. از سرآیندهای امنیتی مانند Content-Type و یا X-Content-Type استفاده کنید. همچنین با استفاده از سرآیند CSP اگر آسیب‌پذیری XSS در سایت شما وجود دارد می‌توانید شدت و درجه آن را کاهش دهید. برای آشنایی بهتر با سرآیندهای امنیتی نیز می‌توانید به مطالبی که در این رابطه در مقالات آرمان داده پویان وجود دارد، مراجعه نمایید. برای پویش و تست سنجش آسیب‌پذیری برنامه کاربردی و یا وب سایت خود در برابر حملات Cross Site Scripting و یا سایر حملات امنیتی نیز می‌توانید به آرمان داده پویان اعتماد نمایید و از خدمات ما استفاده کنید.

برای مشاوره و کسب اطلاعات بیشتر با ما تماس بگیرید

تعداد بازدید: 1367


تازه ترین ها