دوره های آموزشی آکادمی پی وی لرن (پروژه محور و ویژه بازار کار)



  • ۱۶
  • اردیبهشت

جلسه ۲۱ : بررسی امنیت AJAX در تست امنیت

  • دسته‌بندی‌ها :
جلسه ۲۱ : بررسی امنیت AJAX در تست امنیت
    • جزئیات
    • نوع محتواآموزشی

      سلام به همه پی وی لرنی های عزیز!
      به دوره آموزش تست امنیت Security Testing خوش آمدید.
      امروزه به صورت گسترده ای از اینترنت و دنیای وب استفاده می شود و جهان ما اکنون یک جهان آنلاین است که در آن بسیاری از مشاغل به سمت اینترنتی شدن پیش می روند. امروزه ما با پدیده های گسترده خرید و فروش در بستر اینترنت رو به رو هستیم؛ نمونه جهانی آن سایت آمازون است و نمونه ایرانی آن هم سایت دیجیکالا است.
      خطرات و تهدید های زیادی در اینترنت وجود دارد؛ از هکر هایی که سعی می کنند از طریق روش های گوناگون از جمله فیشینگ اطلاعات کارت بانکی شما را سرقت کنند تا بد افزار هایی که قصد اختلال در سیستم کامپیوتری شما را دارند و البته ویروس های کامپیوتری و تروجان ها و غیره و غیره.
      داده ها و اطلاعات کاربران و البته وبسایت ها ممکن است به سرقت برده شوند؛ مورد سوء استفاده قرار بگیرند و یا در فضای عمومی و بدون خواست صاحبان آن عرضه شوند. تست امنیت Security Testing امروزه مبحث داغ امنیت است تا آسودگی خیال افراد را در بستر اینترنت فراهم کند.
      در جلسه گذشته تاثیر ریدایرکت ها و فوروارد های نامعتبر در تست امنیت را بررسی کردیم؛ بیشتر برنامه های وب در اینترنت اغلب کاربران را به صفحات یا وب سایت های خارجی دیگر فوروارد و می کنند؛ در صورت عدم وجود اعتبار یک صفحه هکرها می توانند قربانیان را به سمت سایت های فیشینگ یا بدافزار هدایت کنند.
      در این جلسه به بررسی امنیت AJAX در تست امنیت می پردازیم.

      بررسی امنیت AJAX در تست امنیت

      Asynchronous Javascript و XML که می توان آن را به عنوان AJAX شناخت؛ یکی از جدیدترین تکنیک هایی است که برای توسعه برنامه های کاربردی وب بکار می رود تا یک تجربه کاربر غنی را ایجاد نماید. از آنجا که این یک فناوری جدید است، بسیاری از مسائل امنیتی مربوط به آن و رفع تقص های امنیتی آن  هنوز تکمیل نشده اند. در ادامه به برخی از مواردی امنیتی موجود در AJAX می پردازیم.

      • سطح حمله بیشتری در آن وجود دارد همان طور که ورودی های بیشتری برای اطمینان وجود دارد.
      • functions داخلی بیشتری در برنامه ها در معرض نمایش قرار می گیرند.
      • عدم محافظت از اطلاعات و جلسات تأیید اعتبار.
      • یک خط بسیار میان client-side و server-side وجود دارد و از این رو احتمال ارتکاب خطاهای امنیتی نیز وجود دارد.

      مثال

      در ادامه نمونه ای از امنیت AJAX را آورده ایم.

      در سال ۲۰۰۶ یک ویروس از نوع worm یک سرویس پست الکترونیکی yahoo را با استفاده از XSS و AJAX آلوده کرد و موجب آسیب پذیری در رسیدگی به بارگیری ایمیل های یاهو شد به طوری که وقتی یک ایمیل آلوده باز می شد؛ worm جاوا اسکریپت خود را اجرا می کرد و یک نسخه نیز برای همه مخاطبین یاهو کاربر آلوده ارسال می نمود.

      Hands ON

      مرحله ۱ – ما باید rewards بیشتری را با استفاده از تزریق XML اضافه نماییم. در ادامه تصویر این سناریو را می بینید.

      افزودن rewards بیشتر با استفاده از تزریق XML - بررسی امنیت AJAX در تست امنیت

      افزودن rewards بیشتر با استفاده از تزریق XML – بررسی امنیت AJAX در تست امنیت

      مرحله ۲ – مطمئن شوید که ما هر دو درخواست و پاسخ را با استفاده از Burp Suite رهگیری می کنید. تنظیمات شما باید مطابق شکل زیر باشد.

      اطمینان با استفاده از Burp Suite - بررسی امنیت AJAX در تست امنیت

      اطمینان با استفاده از Burp Suite – بررسی امنیت AJAX در تست امنیت

      مرحله ۳ – شماره حساب را طبق سناریو وارد کنید. می توانیم لیستی از همه rewards هایی که واجد شرایط آن هستیم را بدست آوریم. ما واجد شرایط سه rewards از پنج rewards هستیم.

      وارد کردن شماره حساب - بررسی امنیت AJAX در تست امنیت

      وارد کردن شماره حساب – بررسی امنیت AJAX در تست امنیت

      مرحله ۴ – حالا اجازه دهید “Submit” را کلیک کرده و ببینیم که در XML پاسخ چه چیزی را دریافت می کنیم. در ادامه می بینید که سه rewards که واجد شرایط آن هستیم نشان داده می شود و به عنوان XML به ما منتقل می شود.

      کلیک کردن Submit - بررسی امنیت AJAX در تست امنیت

      کلیک کردن Submit – بررسی امنیت AJAX در تست امنیت

      مرحله ۵ – بیایید آن XML ها را ویرایش کنیم و دو rewards دیگر را نیز اضافه کنیم.

      ویرایش XML - بررسی امنیت AJAX در تست امنیت

      ویرایش XML – بررسی امنیت AJAX در تست امنیت

      مرحله ۶ – اکنون همه rewards ih برای کاربر انتخاب می شود تا بتواند آنها را انتخاب کند. مواردی را که اضافه کردیم انتخاب کرده و روی “Submit” کلیک کنید.

      انتخاب موارد اضافه شده و کلیک روی Submit - بررسی امنیت AJAX در تست امنیت

      انتخاب موارد اضافه شده و کلیک روی Submit – بررسی امنیت AJAX در تست امنیت

      مرحله ۷ – در نهایت پیامی با مضمون * Congratulations. You have successfully completed this lesson.” دریافت می کنید.

      مکانیسم های پیشگیرانه

      مکانیسم های پیشگیرانه در سمت کاربر:

      • به جای innerHtml. از innerText. استفاده کنید.
      • از Eval استفاده نکنید.
      • برای امنیت به client logic اعتماد نکنید.
      • از نوشتن کد سریال سازی خودداری کنید.
      • از ساخت XML به صورت پویا خودداری کنید.
      • هرگز موارد محرمانه را به سمت کاربر منتقل نکنید.
      • رمزگذاری را در کد سمت کاربر انجام ندهید.

      مکانیسم های پیشگیرانه در سمت کاربر:

      • از CSRF protection استفاده کنید.
      • از نوشتن کد سریال سازی شده یا serialization خودداری کنید.
      • یادتان باشد خدمات را می توان مستقیماً توسط کاربران فراخوانی کرد.
      • از ساخت XML به صورت دست خودداری کنید؛ بهتر است از فریم ورک استفاده کنید.
      • از ساخت JSON به صورت دستی خورداری کنید؛ بهتر است از فریم ورک استفاده کنید.

      سخن پایانی

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

      QR:  جلسه ۲۱ : بررسی امنیت AJAX در تست امنیت
      به اشتراک بگذارید