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



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

جلسه ۱۲ : آزمایش تأیید هویت شکسته در تست امنیت

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

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

      آزمایش تأیید هویت شکسته در تست امنیت

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

      اجازه دهید با کمک نمودار ساده، عوامل تهدید، وکتورهای حمله، ضعف امنیتی، تأثیر فنی و تأثیرات تجاری این نقص را بهتر درک کنیم.

      بررسی عوامل تهدید کننده - آزمایش تأیید هویت شکسته در تست امنیت

      بررسی عوامل تهدید کننده – آزمایش تأیید هویت شکسته در تست امنیت

      مثال ها

      مثال : 

      این مثال را در نظر بگیرید؛ یک کاربر معتبر سایت ، URL را برای دوستان خود ارسال می کند تا از تخفیف فروش مطلع شوند. او بدون دانستن اینکه کاربر ID جلسه را را نیز به او دوستش می دهد؛ همه این اطلاعات را ایمیل می کند. وقتی دوست او از لینک ارسال شده استفاده کند در حقیقت از جلسه و کارت اعتباری وی استفاده  کرده است!

      Hands ON

      مرحله ۱ – وارد Webgoat شوید و به بخش “Session Management Flaws” بروید. اجازه دهید با جعل کوکی، احراز هویت را دور بزنیم. در زیر عکس این سناریو آورده شده است.

      جعل کوکی و دور زدن احراز هویت - آزمایش تأیید هویت شکسته در تست امنیت

      جعل کوکی و دور زدن احراز هویت – آزمایش تأیید هویت شکسته در تست امنیت

      مرحله ۲ – هنگامی که ما با استفاده از اعتبارنامه webgoat / webgoat وارد سیستم می شویم ، از Burp Suite می فهمیم که شناسه JSESSION C8F3177CCAFF380441ABF71090748F2E است در حالی که AuthCookie = 65432ubphcfx پس از تأیید اعتبار موفق صورت گرفته است.

      ID تغییر یافته - آزمایش تأیید هویت شکسته در تست امنیت

      ID تغییر یافته – آزمایش تأیید هویت شکسته در تست امنیت

      ID تغییر یافته - آزمایش تأیید هویت شکسته در تست امنیت

      ID تغییر یافته – آزمایش تأیید هویت شکسته در تست امنیت

      مرحله ۳ – هنگامی که ما با استفاده از aspect/aspect اعتبارنامه وارد می شویم، از Burp Suite می فهمیم که JSESSION ID C8F3177CCAFF380441ABF71090748F2E است در حالی که AuthCookie = 65432udfqtb پس از تأیید اعتبار موفق صورت گرفته است.

      ID تغییر یافته - آزمایش تأیید هویت شکسته در تست امنیت

      ID تغییر یافته – آزمایش تأیید هویت شکسته در تست امنیت

      مرحله ۴ – اکنون باید الگوهای AuthCookie را آنالیز کنیم. نیمه اول “۶۵۴۳۲” برای احراز هویت مشترک است. از این رو، ما به تجزیه و تحلیل آخرین قسمت از مقادیر authcookie مانند – ubphcfx برای کاربر webgoat و udfqtb برای کاربر می پردازیم.

      مرحله ۵ – اگر نگاهی عمیق به مقادیر AuthCookie بیندازیم متوجه می شویم که قسمت آخر، طولی به اندازه نام کاربر دارد. از این رو بدیهی است که نام کاربری با روش رمزگذاری استفاده می شود. پس از آزمایش errors/brute مکانیسم ها متوجه می شویم که پس از برگرداندن نام کاربر ، webgoat؛ ما در آخر با taogbew برخورد می کنیم و سپس کارکتر الفبای قبل همان چیزی است که به عنوان AuthCookie استفاده می شود. یعنی ubphcfx.

      مرحله ۶ – اگر این مقدار کوکی را منتقل کنیم خواهیم دید که چه رخ می دهد. پس از تأیید اعتبار به عنوان webgoat، با استفاده از مرحله شماره ۴ و مرحله شماره ۵ مقدار AuthCookie را تغییر دهید تا کاربر Alice را ببندید.

      بستن راه نفوذ - آزمایش تأیید هویت شکسته در تست امنیت

      بستن راه نفوذ – آزمایش تأیید هویت شکسته در تست امنیت

      بستن راه نفوذ - آزمایش تأیید هویت شکسته در تست امنیت

      بستن راه نفوذ – آزمایش تأیید هویت شکسته در تست امنیت

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

      • کنترل های تأیید هویت و مدیریت جلسه را به گونه ای ایجاد کنید که تمام احراز هویت و مدیریت جلسه را تعریف کند و مطابق استاندارد تأیید امنیت برنامه ها در OWASP تعریف شود.
      • توسعه دهندگان باید اطمینان حاصل کنند که از نقص XSS که می تواند برای سرقت ID جلسه استفاده شود، اقدامات لازم را انجام می دهند.

      سخن پایانی

      در این جلسه به آزمایش تأیید هویت شکسته در تست امنیت پرداختیم؛ امیدوارم این مقاله مفید بوده باشد.
      در جلسه را به بررسی اسکریپت نویسی و تاثیر آن در تست امنیت اختصاص داده ایم.
      با پی وی لرن همراه باشید.

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