
امنیت در جنگو (Django)
p style=”text-align: justify;”>امنیت و موضوعات امنیتی در راس برنامه های تیم های توسعهی نرم افزاری میباشند. جنگو به عنوان یک فریم ورک روبه رشد و قوی، با داشتن قابلیت ها و امکانات فراوان برای ایجاد مجموعهی عظیمی از برنامه ها و داده ها از این قائده مستثنی نیست. تیم امنیتی جنگو سعی کرده تا با ارائهی سیاست های امنیتی جنگو ، نسخه های کامل و گزارش های به موقع، تا حد زیادی از عواقب ناشی از مشکلات امنیتی جلوگیری کند.

سیاست های امنیتی جنگو
تیم برنامه نویسی جنگو کاملا به گزارش های مسئولانه و شفاف سازی در زمینه ی موضوعات امنیتی متعهد می باشد. به همین دلیل، مجموعهای از سیاستهای امنیتی که ما را به آن ایده آل میرساند را دنبال میکنیم و معتقد هستیم ارائهی به موقع بروز رسانی های امنیتی در راستای نسخه های جدید جنگو، ما را به این هدف نزدیکتر می کند.
گزارش کردن موضوعات امنیتی
بیشتر باگ های جنگو در لینک جامعه ی برنامه نویسی ( https://code.djangoproject.com/query) ارائه و گزارش میشوند اما به دلیل طبیعت حساس بحثهای امنیتی، درخواست ما این است که این مشکلات به شکل عمومی منتشر نشوند.
نسخه های پشتیبانی شده:
در هر زمان، تیم جنگو پشتیبانی امنیتی برای نسخه های مختلف جنگو را به شکل زیر ارائه می کند:
بخش برنامه نویسی مستری که بر روی GitHub قرار دارد، نسخه ی بعدی جنگو خواهد بود که پشتیبانی امنیتی دریافت خواهد کرد. موضوعات امنیتی که بخش مستری (Master Group) را تحت تاثیر قرار میدهند به شکل عمومی برطرف خواهند شد.
آخرین سری های ارائه شدهی جنگو نیز پشتیانی رسمی دریافت خواهند کرد. برای مثال، در طول دورهی توسعهی چرخه ای که به منتشر شدن نسخهی 1.5 منتهی میشد، نسخه ی 1.3 و 1.4 پشتیبانی می شدند و بعد از انتشار نسخه 1.5 دیگر برای نسخه ی 1.3 هیچ پشتیبانی قابل ارائه نبود.
وقتی نسخه های جدید به خاطر موضوعات امنیتی منتشر می شوند، نسخه های خراب و تحت تاثیر مشکلات یادشده به شکل یک لیست ارائه می شوند. نسخهها، مطمئنا تحت تاثیر آن دسته از مشکلات خواهند بود. اگر چه در لیست ارائه شده ممکن است قرار داده نشده باشند.
جنگو چگونه موضوعات امنیتی را گزارش می کند؟

فرایند ارائهی یک موضوع امنیتی از بحث های خصوصی به مجامع، شامل مراحل مختلفی می شود. تقریبا بعد از دو هفته بعد از ارائهی عمومی مشکل، دو اعلان منتشر خواهد شد:
اولین، زمان و تاریخ دقیق ارائهی مشکلات امنیت خواهد بود. شدت و میزان خطر موضوع امنیتی مورد بحث قرار خواهد گرفت. هدف از این کار کمک به سازمانها برای اطلاع رسانی به کارمندان خود و برخورد به موقع و مفید با مشکل می باشد. موضوعات امنیت در جنگو از نظر شدت و خطر به دسته های زیر تقسیم میشوند:
شدید
- اجرای کد های از راه دور
- نفوذ به SQL
متوسط
- نوشتن کد ها برای سایت های مشابه XSS
- جعل کد ها در بین سایت های مشابه CSRF
- نفوذ به سیستم ورود به سایت
کم
- لو رفتن اطلاعات حساس
- قطع شدن رابط های مدیریتی
- دایرکت ها و فروارد های نامعتبر
- مشکلاتی در زمینه ی گزینه های پیکر بندی خاص
دومین اعلان شامل لیستی از افراد و سازمان ها میشود که اکثرا نام ارائه کنندهگان سیستم عامل ها و سایر ناشرین جنگو خواهد بود. این ایمیل شامل یک کلید PGP یکی از اعضای تیم جنگو و اطلاعات زیر می باشد:
- تشریح کامل موضوع امنیتی و نسخه های متاثر از آن.
- مراحلی که باید برای حل مشکل انجام شوند.
- پچ ها و افزونه هایی که برای جنگو( در صورت نیاز) ارائه خواهند شد.
- تاریخی که تیم جنگو این افزونه ها را منتشر خواهد نمود.
در روز گزارش، کار های زیر انجام می شوند:
- پچ های یاد شده در پایگاه کد های جنگو قرار خواهد گرفت.
- نسخهی مورد نظر در وب سایت جنگو ارائه و تگ های مورد نظر در منبع GIT قرار داده خواهند شد.
- یک ورودی جدید در وبلاگ رسمی جنگو با جزییات کامل موضوع مورد نظر امنیتی قرار داده و شخص گزارش دهنده (در صورت تمایل) معرفی و از وی تشکر خواهد شد.
- یک اعلان رسمی برای افرادی که در لیست ایمیلی تیم امنیتی قرار دارند ارسال خواهد شد.
اگر یک موضوع امنیتی به خاطر زمان، حساسیت بالایی داشته باشد، سعی خواهد شد پروسهی بحث و بررسی و گزارش عمومی در زمان کوتاه تری انجام شود.
به علاوه، اگر تشخیص داده شد که سایر ابزار ها و فریم ورک های Python نیز تحت تاثیر قرار دارند، تماس های محرمانه با تیم های توسعه و تلاش مشترک برای رفع مشکلات، در دستور کار قرار خواهد گرفت.
چه کسانی اعلان ها را دریافت خواهند کرد؟
لیست کامل افراد و سازمان هایی که اعلان ها را دریافت می کنند به هیچ وجه منتشر نشده و نخواهد شد. هدف ما آن است که این لیست روز به روز کوچکتر شود تا بتوان بحث های حریم خصوصی و اطلاعات محرمانه را بهتر مدیریت کنیم. به همین دلیل هیچگاه لیستی از کاربران جنگو مخصوصا آن دسته که با مشکلات امنیتی برخورد کرده اند منتشر نخواهد شد.
دریافت کننده های اعلان های امنیتی به سه گروه زیر تقسیم می شوند:
- ارائه کننده های سیستم های عامل که آدرس های تماس واقعی دارند و به شکل رسمی مشکل خود را ارائه کرده اند. این آدرس ها نباید کد های خطا را به شکل عمومی منتشر کنند. اطلاعات امنیتی و مشکلات رخ داده توسط هر فرد و ایمیلی، قابل دریافت می باشد اما توصیه می شود این کار توسط گروه های امنیتی صورت گیرد.
- به شکل موردی، افراد و طرف هایی که تعهد خود را در زمینه ی گزارش های امنیتی انجام داده اند.
- به شکل موردی، سازمان ها و افرادی که از نظر تیم توسعه، باید در مورد موضوعات امنیت در جنگو اطلاع رسانی شوند. این سازمان ها افراد و طرفهایی هستند که تعهد خود را نسبت به حفظ حریم خصوصی و طبیعت محرمانه ی این گونه اطلاعات ثابت نموده اند.
درخواست برای دریافت این اعلانات
اگر احساس میکنید شما جزو آن دسته از افراد و سازمان هایی هستید که مشمول حضور در لیست های بالا میباشید، درخواست دریافت اعلان خود را به شکل رسمی به آدرس ایمیل security@djangoproject.com ارسال کنید.
باید اطلاعات زیر را در این ایمیل قرار دهید:
- نام کامل و واقعی خود و سازمان.
- تشریح مفصل از این که چگونه شما جزو لیست های بالا هستید.
- تشریح دلیل دریافت اعلان های امنیتی
به یاد داشته باشید این اعلانات فقط برای کاربران ارسال نمی شود و کاربران معمولی جنگو باید از طریق لینک جامعهی برنامه نویس جنگو این اطلاعات را دریافت نمایند.
- آدرس ایمیل برای دریافت اعلانات.
- توضیح کامل در مورد این که چه کسانی این اعلانات را خوانده و این که آیا فرایندی خودکار برای دریافت و بررسی این اعلانات مد نظر هست.
- برای افراد، ID مورد نظر دریافت و ایمیل کد گذاری شده برای آن ها ارسال خواهد شد.
بعد از ارسال، درخواست شما توسط تیم توسعهی جنگو مورد بررسی قرار خواهد گرفت و تا سی روز کاری به شما پاسخ مناسب داده خواهد شد.
نتیجه گیری :
ارائهی گزارشات و اطلاع رسانی کامل و به موقع در مورد موضوعات امنیتی یکی دیگر از خصیصه های ناب و منحصر بفرد فریم ورک جنگو به عنوان قویترین فریم ورک Python میباشد. تیم امنیتی جنگو همیشه متعهد به شفاف سازی در زمینهی موضوعات امنیتی است ولی به دلیل حساسیت های موجود، برخی اطلاعات در این زمینه به شکل اعلانات و از طریق ایمیل برای کاربران و سازمان ها ارسال می شود که شرایط خاص آن در این مقاله مورد بحث قرار گرفتند.
به یاد داشته باشید که برای هر سازمان یا فردی، این اعلانات به عنوان یک امتیاز از سوی تیم جنگو ارسال خواهد شد و در صورت عدم ارسال، تیم جنگو هیچ مسئولیتی در مورد ارائه دلیل نخواهند داشت.