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



  • ۴
  • شهریور

جلسه ۱۸-۰۲ : آسیب پذیری های امنیتی رایج وب سایت ها – آموزش هک قانونمند

  • دسته‌بندی‌ها :
جلسه ۱۸-۰۲ : آسیب پذیری های امنیتی رایج وب سایت ها – آموزش هک قانونمند
    • جزئیات
    • نوع محتواآموزشی

      مقدمه

      درود بر شما عزیزان و کاربران سایت پی وی لرن. با آموزش رایگان هک قانونمند در خدمتتون هستیم.
      از جلسه قبل بررسی ۱۰ آسیب پذیری امنیتی رایج وب ها رو آغاز نمودیم. در این قسمت به آسیب پذیری Cross Site Request Forgery و آسیب پذیری Broken Authentication ، ارجاع های ناامن به شیء ها و Cross Site Request Forgery (جعل در خواست) خواهیم پرداخت.

      ۱۰ آسیب پذیری امنیتی رایج در وب اپلیکیشن ها

      در ابتدا به آسیب پذیری Broken Authentication و مدیریت نشست می پردازیم.

      Broken Authentication and Session Management

      توضیحات آسیب پذیری Broken Authentication و Session Management

      وب سایت ها معمولا یک کوکی session و ID نشست برای هر نشست معتبر ایجاد می کنند و این کوکی ها حاوی اطلاعات حساس مانند نام کاربری، گذرواژه و غیره است. هنگامی که جلسه به واسطه خروج یا مرورگر به طور ناگهانی بسته شد، این کوکی ها باید نامعتبر باشند یعنی برای هر جلسه باید یک کوکی جدید داشته باشیم.

      اگر کوکی ها نامعتبر نباشند، داده های حساسی در سیستم وجود خواهند داشت. برای مثال، زمانی که یک کاربر از یک کامپیوتر عمومی (Cyber ​​Cafe) استفاده می کند، کوکی ها از سایت آسیب پذیر در سیستم نشسته و در معرض حمله قرار می گیرد. سپس مهاجم بعد از مدتی از همان کامپیوتر عمومی استفاده می کند که باعث می شود آن اطلاعات حساس به خطر افتند.

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

      برای پیدا کردن قدرت احراز هویت و مدیریت نشست باید بررسی داشته باشیم. کلید ها، نشانه های جلسه، کوکی ها باید به درستی اجرا شود بدون این که رمز عبور را به خطر بیاندازند.

      آبجکت های آسیب پذیر در آسیب پذیری Broken Authentication و Session Management

      • ID نشست در URL می تواند منجر به حمله ی session fixation شود.
      • ID نشست قبل و بعد از logout و login به سیستم یکی هستند.
      • Timeouts جلسه به درستی انجام نشود.
      • برنامه یک ID جلسه را برای هر جلسه جدید اختصاص می دهد.
      • قسمت های تأیید شده از نرم افزار با استفاده از SSL محافظت می شوند و کلمه عبور در فرمت hash یا رمزگذاری ذخیره می شود.
      • نشست می تواند توسط یک کاربر دیگر مورد استفاده مجدد قرار گیرد.

      مفاهیم

      • با استفاده از این آسیب پذیری, یک مهاجم می تواند یک session را برباید، دسترسی غیر مجاز به سیستمی که اجازه ی تغییر و افشای اطلاعات غیر مجاز را  می دهد، داشته باشد.
      • session یا نشست را می توان با استفاده از کوکی ها یا جلسات دزدیده شده با استفاده از XSS تغییر داد.

      مثال

      • برنامه رزرو پرواز، قرار دادن session ID در URL:

      (http://Examples.com/sale/saleitems;jsessionid=2P0OC2oJM0DPXSNQPLME34SERTBG/dest=Maldives (Sale of tickets to Maldives

      یک کاربر تصدیق شده توسط سایت می خواهد به دوستانش در مورد فروش اطلاعاتی دهد و یک ایمیل می فرستد. دوستان session ID را دریافت می کنند و آن می تواند برای انجام تغییرات غیر مجاز و یا سوء استفاده از جزئیات کارت اعتباری ذخیره شده، استفاده شود.

      • یک برنامه در برابر XSS آسیب پذیر است، چون مهاجم می تواند به session ID دسترسی پیدا کند و می تواند از آن برای ربودن نشست استفاده نماید.
      • timeouts برنامه ها به درستی تنظیم نشده است. کاربر از یک رایانه عمومی استفاده می کند و به جای logging off  مرورگر را می بندد. بعضی وقت ها مهاجم از همان مرورگر استفاده می کند و نشست معتبر است.

      توصیه ها برای آسیب پذیری Broken Authentication و Session Management

      • همه احکام احراز هویت و نیازهای مدیریت نشست باید به عنوان OWASP Application Security Verification Standard تعریف شوند.
      • هر گونه اعتباری را در URL ها یا Log ها نمایش ندهید.
      • باید تلاش های شدیدی نیز برای اجتناب از نقایص XSS انجام شود که می تواند برای سرقت session ID استفاده شود.

      Insecure Direct Object References (ارجاع های ناامن به شیء ها)

      توضیحات

      Insecure Direct Object References زمانی اتفاق می افتد که یک توسعه دهنده، مرجع را برای پیاده سازی یک شیء داخلی نمایش می دهد مانند نشان دادن یک فایل، دایرکتوری یا کلید پایگاه داده در URL یا در پارامتر FORM. به عبارتی ساده تر، این مشکل وقتی اتفاق می افتد که ما به ورودی کاربر، کاملا اعتماد داریم و کلید های  یک شیء را به کاربر نشان می دهیم یا کاربر به نوعی می تواند آن ها را حدس بزند. مهاجم می تواند از این اطلاعات برای دسترسی به اشیاء دیگر استفاده کند و می تواند یک حمله در آینده برای دسترسی به داده های غیر مجاز ایجاد کند.

      پیامد ها

      با استفاده از این آسیب پذیری، مهاجم می تواند به اشیاء داخلی غیر مجاز دسترسی پیدا کند، می تواند داده ها را تغییر دهد یا نرم افزار را به خطر اندازد.

      اشیاء آسیب پذیر

      • در URL

      مثال ها

      تغییر “userid” در URL زیر می تواند مهاجم را قادر سازد تا اطلاعات دیگر کاربر مشاهده کند.

      http://www.vulnerablesite.com/userid=123 Modified to http://www.vulnerablesite.com/userid=124

      یک مهاجم می تواند اطلاعات دیگران را با تغییر ارزش شناسه کاربر مشاهده کند.

      توصیه ها

      • بررسی کنترل دسترسی
      • اجتناب از قرار دادن ارجاع های شی در URL ها.
      • تأیید مجوز به تمام اشیاء مرجع

      Cross Site Request Forgery (جعل در خواست)

      توضیحات آسیب پذیری Cross Site Request Forgery

      Cross Site Request Forgery درخواست جعلی از سایت متقابل است.

      حمله CSRF حمله ایست که زمانی رخ می دهد که وب سایت، ایمیل یا یک برنامه ی مخرب باعث می شود، مرورگر کاربر یک اقدام ناخواسته در یک سایت معتبر که کاربر آن را تأیید کرده است، انجام دهد.

      حمله CSRF، مرورگر قربانی را مجبور به logged-on برای فرستادن درخواست های HTTP جعلی به یک برنامه وب آسیب پذیر می کند. این دزخواست ها شامل کوکی نشست قربانی و هر گونه اطلاعات دیگری مانند اطلاعات authentication می تواند باشد.

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

      مفاهیم

      یک مهاجم با استفاده از این آسیب پذیری می تواند اطلاعات پروفایل کاربر ، تغییر وضعیت ، ایجاد یک کاربر جدید و غیره را تغییر دهید.

      اشیاء آسیب پذیر در آسیب پذیری Cross Site Request Forgery

      • صفحه پروفایل کاربر
      • فرم های اشتراک کاربر
      • صفحه معامله کسب و کار

      مثال

      قربانی با استفاده از اعتبار معتبر به وب سایت بانک وارد می شود. او ایمیلی از مهاجم دریافت می کند که می گوید “لطفا این جا را کلیک کنید برای اهدای $۱ به علت. ” (“.Please click here to donate $1 to cause”)

      هنگامی که قربانی روی آن کلیک می کند، یک درخواست معتبر ایجاد می شود تا ۱ دلار به یک حسابی خاص اختصاص دهد.

      http://www.vulnerablebank.com/transfer.do?account=cause&amount=1

      مهاجم این درخواست را می گیرد و زیر درخواست را ایجاد می کند و در یک دکمه منعقد می شود که می گوید: “من از علت حمایت می کنم.” (“.I Support Cause”)

      http://www.vulnerablebank.com/transfer.do?account=Attacker&amount=1000

      از آن جا که این نشست تأیید شده و درخواست از طریق وب سایت بانک صورت می گیرد، سرور ۱۰۰۰ دلار به مهاجم انتقال می دهد.

      توصیه ها برای آسیب پذیری Cross Site Request Forgery

      • حضور کاربر مجاز در هنگام انجام اقدامات حساس.
      • پیاده سازی مکانیسم هایی مانند CAPTCHA، اعتبار دوباره و Unique Request Tokens .

      خب اینم از آسیب پذیری Cross Site Request Forgery .

      کلام پایانی

      دوستان عزیز از جمله آسیب پذیزی های وب ها آسیب پذیری Cross Site Request Forgery ، آسیب پذیری Broken Authentication می باشد که در این بخش بررسی نمودیم.

      در بخش بعد معرفی ادمه ی آسیب پذیری ها رو خواهیم داشت.

      QR:  جلسه ۱۸-۰۲ : آسیب پذیری های امنیتی رایج وب سایت ها – آموزش هک قانونمند
      به اشتراک بگذارید