چگونه 10 آسیب پذیری امنیتی جنگو را برطرف کنیم؟


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

لایه برنامه به طور فزاینده ای توسط هکرها برای نفوذ هدف قرار می گیرد و اجرای فول استک پایتون نسبت به سایر پشته های برنامه آسیب پذیر نیست. در واقع، BitBucket، dpaste و Mozilla Support همگی از Python/Django برای پیشنهادات وب حیاتی خود استفاده می کنند، بنابراین نترسید - مدیریت آسیب پذیری موثر و مشاهده شکاف های امنیتی جنگو موجود می تواند راه درازی را برای سخت تر کردن برنامه وب مبتنی بر جنگو در برابر حملات طی کند.

مقاله ما را بررسی کنید Full Stack Blues برای آشنایی با آسیب پذیری ها در سایر پشته های برنامه.

10 آسیب پذیری برتر جنگو

10. اصلاح جلسه (CVE-2011-4136)

نسخه های 1.2.7 و 1.3.x قبل از 1.3.1

هنگامی که جزئیات جلسه در حافظه پنهان ذخیره می شود، فاصله نام ریشه هم برای شناسه های جلسه و هم برای کلیدهای داده برنامه استفاده می شود. این می تواند به مهاجمان راه دور اجازه دهد تا با راه اندازی استفاده از کلیدی برابر با شناسه آن جلسه، یک جلسه را تغییر دهند.

9. ربودن جلسه (CVE-2014-0482)

نسخه های 1.4.14، 1.5.x قبل از 1.5.9، 1.6.x قبل از 1.6.6 و 1.7 قبل از انتشار نامزد 3.

ربودن جلسه شامل دسترسی غیرمجاز مهاجم به یک سیستم با استفاده از داده های جلسه کاربر دیگر است. در این مورد، هنگام استفاده از contrib.auth.backends.RemoteUserBackend، کاربران احراز هویت از راه دور می توانند جلسات وب را از طریق بردارهای مربوط به هدر REMOTE_USER ربوده باشند.

8. مسمومیت با حافظه پنهان (CVE-2014-1418)

نسخه های 1.4 قبل از 1.4.13، 1.5 قبل از 1.5.8، 1.6 قبل از 1.6.5 و 1.7 قبل از 1.7b4

مسمومیت حافظه پنهان زمانی اتفاق می افتد که داده های نادرست در حافظه پنهان حل کننده DNS وارد می شود و باعث می شود سرور نام آدرس IP یا مقصد نادرستی را ارائه دهد. این نسخه های جنگو به درستی شامل موارد زیر نیستند:

  1. متفاوت: کوکی
  2. هدر Cache-Control در پاسخ

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

7. تولید URL های دلخواه (CVE-2012-4520)

نسخه های 1.3.x قبل از 1.3.4 و 1.4.x قبل از 1.4.2

در این نسخه ها، عملکرد django.http.HttpRequest.get_host به مهاجمان راه دور اجازه می دهد تا URL های دلخواه را از طریق مقادیر هدر میزبان نام کاربری و رمز عبور ساخته شده تولید و نمایش دهند.

6. CSRF: درخواست های جعلی احراز هویت نشده (CVE-2011-4140)'

نسخه ها از طریق 1.2.7 و 1.3.x تا 1.3.1

CSRF مخفف Cross Site Request Forgery است، حمله ای که از مرورگر وب کاربر برای انجام یک اقدام ناخواسته در وب سایت دیگری که کاربر در حال حاضر در آن وارد شده است، استفاده می کند. مکانیسم حفاظت CSRF در این نسخه های جنگو پیکربندی های وب سرور را که از هدرهای میزبان HTTP دلخواه پشتیبانی می کنند، به درستی مدیریت نمی کند و به مهاجمان راه دور اجازه می دهد تا درخواست های جعلی احراز هویت نشده را از طریق بردارهایی که شامل رکورد DNS CNAME و یک صفحه وب حاوی کد جاوا اسکریپت است، راه اندازی کنند.

5. CSRF از طریق درخواست های جعلی AJAX (CVE-2011-0696)

نسخه های 1.1.x قبل از 1.1.4 و 1.2.x قبل از 1.2.5

این نسخه های جنگو به درستی درخواست های HTTP حاوی هدر X-Requested-With را تأیید نمی کنند، و انجام حملات جعل درخواست بین سایتی (CSRF) از طریق درخواست های جعلی AJAX که از "ترکیبی از افزونه های مرورگر و تغییر مسیرها" استفاده می کنند، برای مهاجمان از راه دور بی اهمیت است.

4. پیمایش دایرکتوری (CVE-2011-0698)

نسخه های 1.1.x قبل از 1.1.4 و 1.2.x قبل از 1.2.5 در ویندوز

در این نسخه های جنگو، مهاجمان از راه دور می توانند فایل ها را از طریق یک کاراکتر/(اسلش) در یک کلید در یک کوکی جلسه، مربوط به پخش مجدد جلسه، بخوانند یا اجرا کنند.

3. DoS: از طریق بردارهای نامشخص (CVE-2015-5145)

نسخه های 1.8.x قبل از 1.8.3

DoS مخفف Denial of Service است و زمانی اتفاق می افتد که یک مهاجم یک شبکه/وب سایت را با پر کردن آن با بسته های داده از بین می برد. اعتبارسنجی ها. URLValidator در این نسخه های جنگو به مهاجمان راه دور اجازه می دهد تا از طریق بردارهای نامشخص باعث انکار سرویس (مصرف CPU) شوند.

2. DoS: از طریق درخواست های متعدد با کلیدهای جلسه منحصر به فرد (CVE-2015-5143)

نسخه های قبل از 1.4.21، 1.5.x تا 1.6.x، 1.7.x قبل از 1.7.9 و 1.8.x قبل از 1.8.3

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

1. آسیب پذیری تبدیل نوع (CVE-2014-0474)

نسخه های قبل از 1.4.11، 1.5.x قبل از 1.5.6، 1.6.x قبل از 1.6.3 و 1.7.x قبل از 1.7 بتا

در این نسخه های جنگو، کلاس های فیلد زیر تبدیل نوع را به درستی انجام نمی دهند:

  • فیلد مسیر فایل
  • فیلد آدرس IP عمومی
  • فیلد آدرس IP

این به مهاجمان از راه دور امکان دسترسی به تأثیر نامشخص و بردارهای مربوط به MySQL را می دهد.

بازسازی

>

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

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