OWASP Top 10 - 2013

1 downloads 434 Views 1MB Size Report
OWASP Testing Guide: Chapter on SQL Injection ..... OWASP Code Review Guide: Chapter on XSS Review .... OWASP Testing Gu
‫‪O‬‬

‫عن منظمة أواسب‬ ‫مقدمة‬

‫عن المنظمة‬

‫إن البرمجيات الغير آمنة تضعف مختلف بنياتنا التحتية؛ المالية والصحية‬ ‫والدفاعية والطاقة والبنى التحتية الحرجة األخرى ‪.‬كما يتزايد مستوى التعقيد‬ ‫والترابط في البنى التحتية فإن مقدار الصعوبة لتحقيق أمن التطبيقات ستزيد‬ ‫أضعاف مضاعفة ‪.‬لم يعد من الممكن التساهل بالمشاكل األمنية البسيطة مثل تلك‬ ‫المشاكل التي سنعرضها في هذا المشروع‪.‬‬

‫المشروع المفتوح ألمن تطبيقات الويب )أواسب(هو عبارة عن مجتمع مفتوح‬ ‫مختص لتمكين المنظمات من تطوير وشراء والحصول على التطبيقات بشكل‬ ‫يمكن الوثوق به ‪.‬في (أواسب) يمكنك الحصول مجاناً وبشكل مفتوح مايلي‪:‬‬ ‫• أدوات ومعايير أمن التطبيقات‬ ‫• كتب متكاملة في إختبار أمن التطبيقات‪ ،‬والتطوير اآلمن للنصوص البرمجية‪،‬‬ ‫والمراجعة األمنية للنصوص البرمجية‬ ‫• مكتبات وأدوات تحكم أمنية معيارية‬ ‫• المنظمات الفرعية حول العالم‬ ‫• أبحاث متطورة‬ ‫• مؤتمرات واسعة حول العالم‬ ‫• قوائم بريدية‬

‫إن الهدف من المشروع (أواسبً‪ -‬العشرةًاألوائل) هو نشر الوعي عن أمن‬ ‫التطبيقات وذلك بتحديد أبرز المخاطر األمنية الحرجة التي قد تواجهها‬ ‫المنظمات ‪.‬تم ذكر مشروع (العشرةًاألوائل) في العديد من المعايير والكتب‬ ‫واألدوات والمنظمات بما في ذلك منظمة )‪ ،(MITRE‬ومعيار )‪،(PCI DSS‬‬ ‫و وكالة نظم المعلومات الدفاعية )‪ ،(DCA‬وهيئة التجارة الفيدرالية )‪،(FTC‬‬ ‫وغيرها الكثير‪ .‬يعتبر هذا اإلصدار من مشروع (أواسبً‪ -‬العشرةًاألوائل)‬ ‫بمثابة الذكرى السنوية العاشرة في نشر الوعي بأهمية مخاطر أمن التطبيقات‪ .‬تم‬ ‫إصدار النسخة األولى من (أواسبً‪ -‬العشرةًاألوائل) في عام ‪ ،2003‬مع‬ ‫تحديثات ثانوية في عامي ‪ً2004‬وً‪ .2007‬في نسخة ‪ 2010‬تم إعادة تنسيق‬ ‫الوثيقة ليكون ترتيب المخاطر بناءً على قيمة الخطر وليس فقط بمقدار اإلنتشار‪.‬‬ ‫في هذا اإلصدار ‪ -2013-‬سيتم إتباع نفس األسلوب‪.‬‬ ‫نحن نشجعك على إستخدام (أواسبً‪ -‬العشرةًاألوائل) لجعل منشأتك تبدأ في‬ ‫أمن التطبيقات ‪.‬المطورون يمكن لهم اإلستفادة من أخطاء المنظمات األخرى ‪.‬‬ ‫على التنفيذين البدء في التفكير عن كيفية إدارة المخاطر األمنية التي تخلقها‬ ‫التطبيقات البرمجية في مؤسساتهم‪.‬‬ ‫على المدى البعيد‪ ،‬فإننا نشجعك لبناء برنامج ألمن التطبيقات بحيث يكون‬ ‫متناسق مع ثقافة وتقنيات منشأتك ‪.‬تأتي هذه البرامج بمختلف األشكال واألحجام‪،‬‬ ‫ويجب عليك تجنب محاولة القيام بكل مايوصف في بعض نماذج اإلجراءات‪.‬‬ ‫عوضاً عن ذلك‪ ،‬قم باإلستفادةًمن نقاط القوة في منشأتك للقيام وقياس ماهو‬ ‫مناسب لك‪.‬‬

‫نتمنى أن تقدم (أواسبً‪ -‬العشرةًاألوائل) الفائدة لجهودك في أمن التطبيقات ‪.‬‬ ‫نرجو عدم التردد في التواصل مع منظمة (أواسب) بشأن طرح األسئلة أو‬ ‫المالحظات أو األفكار وذلك بشكل عام عبر البريد اإللكتروني ‪owasp-‬‬ ‫‪ً[email protected]‬أوًبشكلًخاصً‬ ‫‪[email protected].‬‬

‫تعرف على المزيد‪https://www.owasp.org :‬‬ ‫إن جميع األدوات والوثائق والمنتديات والمنظات الفرعية لمنظمة (أواسب) هي‬ ‫مجانية ومفتوحة لجميع المهتمين بتطوير أمن التطبيقات ‪.‬نقدم أمن التطبيقات‬ ‫كمشكلة تتضمن العامل البشري‪ ،‬واإلجراءات‪ ،‬والتقنية؛ وذلك ألن أفضل األساليب‬ ‫فعالية في أمن التطبيقات تتطلب تحسين جميع هذه المجاالت الثالثة‪.‬‬ ‫(أواسب) هي منظمة فريدة من نوعها ‪.‬حريتنا من الضغوط التجارية تسمح لنا‬ ‫تقديم معلومات عن أمن التطبيقات غير متحيزة وعملية وفعالة من ناحية التكلفة ‪.‬‬ ‫إن (أواسب) ال تتبع أي شركة تجارية‪ ،‬مع أننا ندعم اإلستخدام الواعي للتقنيات‬ ‫األمنية التجارية ‪.‬على غرار الكثير من مشاريع البرمجيات مفتوحة المصدر‪ ،‬فإن‬ ‫(أواسب) تقدم أنواع كثيرة من المواد بشكل تعاوني ومفتوح‪.‬‬ ‫مؤسسة (أواسب) هي منشأة غير ربحية تضمن النجاح المستمر للمشروع ‪.‬تقريباً‪،‬‬ ‫جميع المنتسبين إلى (أواسب) هم من المتطوعين‪ ،‬بمن فيهم أعضاء المجلس‪،‬‬ ‫واللجان العالمية‪ ،‬وقادة المنظمات الفرعية‪ ،‬وقادة المشاريع وأعضائها ‪.‬نحن ندعم‬ ‫األبحاث األمنية اإلبداعية بالمنح وتوفير البنى التحتية‪.‬‬ ‫إنضم إلينا!‬

‫حقوق الطبع والرخصة‬ ‫حقوق الطبع محفوظة لمنظمة أواسب ‪2003 - 2013‬‬ ‫تم نشر هذه الوثيقة تحت رخصة المشاع اإلبداعي ‪ Creative Common‬بخواص النسبة والترخيص بالمثل اإلصدار ‪.3.0‬ألي إعادة‬ ‫إستخدام أو توزيع‪ ،‬عليك بيان وتوضيح شروط وأحكام الرخصة للطرف اآلخر‪.‬‬

‫‪I‬‬

‫المقدمة‬ ‫الكلمة الترحيبية‬

‫مرحباً بك في (أواسبً‪ -‬العشرةًاألوائل) بنسخته لعام ‪ ! 2013‬هذا التحديث وسع أحد التصنيفات من نسخة ‪ 2010‬لتكون أكثر شمولية ألهم الثغرات وأكثرها إنتشاراً‪،‬‬ ‫كذلك أعاد ترتيب بعض التصنيفات بناءً على تغير بيانات إنتشارها ‪ .‬كذلك سلطت الضوء على المكون األمني ”‪ “Security Component‬وذلك بإنشاء صنف‬ ‫خاص لهذا الخطر األمني‪ ،‬مزيحة بذلك الغموض الموجود بالصنف السادس )اإلعدادات األمنية الخاطئة (من نسخة ‪.2010‬‬ ‫إن إصدار ‪ 2013‬من (أواسبً‪ -‬العشرةًاألوائل) مبنية على ثمانية مجموعات بيانية تم تقديمها من سبعة منشآت متخصصة في أمن التطبيقات‪ ،‬تتضمن أربعة شركات‬ ‫إستشارية وثالثة من مقدمي األدوات ‪-‬شامالً بذلك مقدمي البرمجيات كخدمة ”‪( “SaaS‬أحدها تقدم أداة فحص ثابتة ”‪ً“static‬للنصًالبرمجي‪ ،‬وأخرى تفاعلية‬ ‫”‪ً "dynamic‬تحاكيًهجومًالمخترقين‪ ،‬والثالثة تقدم كال النوعين)‪ .‬هذه البيانات تتجاوز الـ ‪ 500,000‬ثغرة أمنية خالل مئات المنشآت وآالف التطبيقات‪ .‬تم إختيار‬ ‫وترتيب عناصر (العشرة األوائل) وفقاً لإلنتشارًلمجموعة البيانات هذه باإلضافة إلى تقدير إمكانية إستغالل الثغرات األمنية‪ ،‬وإكتشافها‪ ،‬ومدى تأثيرها‪.‬‬ ‫الهدف األساسي لمشروع (أواسبً‪ -‬العشرةًاألوائل) هو تثقيف المطورين والمصممين ومعماري البرمجيات والمدراء والمنظمات حول اآلثار المترتبة نتيحة نقاط‬ ‫الضعف األمنية في تطبيقات الويب‪( .‬العشرةًاألوائل) تقدم التقنيات األساسية للحماية من المشاكل األمنية عالية المخاطر‪ ،‬باإلضافة إلى تقديمها إلرشادات عن كيفية‬ ‫معالجة هذه المخاطر األمنية‪.‬‬

‫تحذيرات‬

‫عزو العمل‬

‫التقف عند العنصر العاشر ‪.‬هنالك المئات من القضايا األمنية التي قد تؤثر على‬ ‫أمن التطبيقات كما تم مناقشتها في الدليل اإلرشادي للمطورين من أواسب‬ ‫(‪ )OWASP Developer’s Guide‬وًسلسلة األوراق المساعدة من‬ ‫أواسب (‪ .)OWASP Cheat Sheet Series‬إن قراءة هذه الوثائق هام‬ ‫جداً ألي مطور لتطبيقات الويب ‪.‬تتوفر إرشادات عن كيفية إيجاد الثغرات‬ ‫األمنية بفاعلية في كالً من الدليل اإلرشادي لإلختبار من أواسبًوًالدليل‬ ‫اإلرشادي لمراجعة النصوص البرمجية من أواسب‪.‬‬

‫كلمة شكر موجهة إلى شركة )‪ (Aspect Security‬لمبادرتها وقيادتها وتحديثها‬ ‫(ألواسب –العشرة األوائل) منذ إبتدائها عام ‪ ،2003‬ولكاتبيها الرئيسيين جيف‬ ‫ويليامز و ديف ويتشرز‪.‬‬

‫التغيير المستمر‪ .‬إن قائمة العشرة األوائل ستتغير بإستمرار ‪.‬حتى من دون‬ ‫تغيير سطر واحد من النص البرمجي للتطبيق الخاص بك‪ ،‬قد تتعرض للثغرات‬ ‫األمنية بسبب إكتشاف أخطاء امنية جديدة وبإستحداث أساليب الإلختراق ‪.‬لمزيد‬ ‫من المعلومات‪ ،‬يرجى مراجعة األجزاءًالمعنونةًبـ «ماهي الخطوات التالية‬ ‫للمطورين‪ ،‬والمحققين‪ ،‬والمؤسسات» في آخر أواسب –العشرة األوائل‪.‬‬ ‫فكر بإيجابية ‪.‬عندما تصبح مستعداً للتوقف عن مطاردة الثغرات األمنية وتركز‬ ‫أكثر على تأسيس أدوات تحكم قوية ألمن التطبيقات فإن أواسب قدمت لك معيار‬ ‫التحقق من أمن التطبيقات ‪“Application Security Verification‬‬ ‫”‪ Standard‬كدليل إرشادي للمنظمات ومراجعي التطبيقات عما يلزم التحقق‬ ‫منه‪.‬‬ ‫إستخدم األدوات بحكمة ‪.‬قد تكون الثغرات األمنية معقد جداً ومخبأة بين جبل من‬ ‫أسطر النص البرمجي‪.‬في كثير من الحاالت‪ ،‬إن األسلوب األكثر فاعلية إليجاد‬ ‫وإزالة نقاط الضعف األمنية هي بالخبرة البشرية مجندة باألدوات المناسبة‪.‬‬ ‫إدفع لليسار ‪.‬قم بالتركيز على جعل أمن المعلومات جزءً اليتجزأ من ثقافتك‬ ‫خالل منظمة تطوير التطبيقات ‪.‬إكتشف المزيد في نموذج نضوج تأمين‬ ‫البرمجيات المفتوحة وكتيب متانة البرمجيات‪.‬‬

‫نرغب بشكر المنظمات التي ساهمت بتقديم بيانات اإلنتشار للثغرات األمنية دعماً‬ ‫إلصدار ‪ 2013‬من (أواسب –العشرة األوائل)‪:‬‬ ‫إحصائيات – ‪ Aspect Security‬‬ ‫‪ HP – Statistics from both Fortify and WebInspect‬‬ ‫إحصائيات – ‪ Minded Security‬‬ ‫إحصائيات – ‪ Softtek‬‬ ‫)صفحةً‪ (50‬إحصائيات – ‪ Trustwave, SpiderLabs‬‬ ‫إحصائيات – ‪ Veracode‬‬ ‫إحصائيات – ‪ WhiteHat Security Inc.‬‬ ‫كذلك نرغب بشكر كل من ساهم في النسخ السابقة من (أواسب –العشرة‬ ‫األوائل)‪ .‬من دون هذه المساهمات لن تكون أواسب –العشرة األوائل ماهي عليه‬ ‫اليوم ‪.‬نشكر من ساهم بوقته ونقده البناء خالل مراجعة هذه النسخة من (أواسب –‬ ‫العشرة األوائل)‪:‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬ ‫‪‬‬

‫آدام باسو (منظمة ويكيبيديا)‬ ‫مايك بوبيرسكي )‪(Booz Allen Hamilton‬‬ ‫تورستن جيغلر‬ ‫نيل سميثالين ( ‪ )MorphoTrust USA‬لتجهيزه نسخة الويكي من‬ ‫أواسب العشرة األوائل وتقديمه للمالحظات‬

‫وأخيراً‪ ،‬نشكر مقدماً جميع المترجمين الذين سيقومون بترجمة هذه النسخة للعديد‬ ‫من اللغات ممايجعلها متاحة للجميع حول العالم‪.‬‬

‫‪RN‬‬

‫مذكرة اإلصدار‬ ‫ماهي التغيرات بين نسختي عام ‪2010‬و ‪2013‬؟‬

‫إن المنظر العام للتهديدات األمنية التي تواجه أمن التطبيقات تتغير بإستمرار‪ .‬عوامل أساسية في هذا التطور هي التطورات المحرزة من المخترقين‪ ،‬وإصدار تقنيات‬ ‫جديدة تعاني من نقاط ضعف أمنية باإلضافة إلى المزيد من الدفاعات المدمجة‪ ،‬كذلك اإلنتشار المتزايد للنظم المعقدة‪ .‬لمواكبة ذلك نحدث وبإستمرار (أواسب –العشرة‬ ‫األوائل)‪ .‬في هذا اإلصدار لعام ‪ ،2013‬قمنا بالتغيرات التالية‪:‬‬ ‫‪ (1‬صعود العنصر (ضعف التحقق من الهوية وإدارة جلسة اإلتصال) بسبب نسبة اإلنتشار بناءً على المجموعات البيانية‪ .‬نعتقد بأن هذا الصعود هو نتيجة البحث‬ ‫المكثف في هذا المجال‪ ،‬وليس بسبب حقيقة إنتشاره‪ .‬هذا التغيير دعا إلى تبديل مرتبة الخطر )‪ (A2‬مع )‪.(A3‬‬

‫‪ (2‬نزول العنصر (تزوير الطلبات عبر الموقع ”‪ )“CSRF‬من ‪ً2010-A5‬الىً‪ .2013-A8‬نعتقد بأن ذلك نتيجة وجود (تزوير الطلبات عبر الموقع) في قائمة‬ ‫(العشرةًاألوائل) منذ ستة سنوات‪ ،‬لذا قامت المنظمات ومطورو إطارات العمل "‪ "framework‬بالتركيز عليها بشكل كافي مما جعل وجودها أقل في التطبيقات‪.‬‬ ‫‪ (3‬قمنا بتوسيع نطاق العنصر الثامن (الفشل في ضبط الوصول للروابط) في نسخة ‪2010‬من (أواسبً‪ -‬العشرةًاألوائل) لتصبح أكثر شمولية‪:‬‬ ‫‪+‬‬

‫‪( :2010-A8‬الفشل في ضبط الوصول للروابط)‪ ،‬أصبح اآلن في نسخة ‪( :2013-A7‬إهمال التحكم بالوصول الوظيفي ”‪ )“Function‬لكي تغطي جميع‬ ‫أدوات التحكم بالوصول على المستوى الوظيفي‪ .‬هناك العديد من األساليب لتحديد ماهية الوظائف المسموح الوصول لها؛ ليس فقط الروابط "‪."URL‬‬

‫‪ (4‬قمنا بدمج وتوسيعًالعنصرين ‪ً2010-A7‬وً‪ 2010-A9‬في عنصر واحد ليكون‪( :2013-A6 :‬كشف البيانات الحساسة)‪:‬‬ ‫‪-‬‬

‫تم إنشاء العنصر الجديد بدمج العنصرً‪( :2010-A7‬التشفير الغير آمن للبيانات) والعنصرً‪( :2010-A9‬ضعف حماية طبقة النقل)‪ ،‬باإلضافة إلى مخاطر‬ ‫البيانات الحساسة في المتصفح‪ .‬يغطي هذه العنصر الجديد جميع إجراءات حماية البيانات الحساسة (ماعدا التحكم بالوصول والذي تم تغطيته في العنصرين‬ ‫‪ً2013-A4‬وً‪ )2013-A7‬وذلك منذ تقديمها من المستخدم‪ ،‬وإرسالها وحفظها خالل التطبيق‪ ،‬وحتى إرسالها إلى المتصفح مرة أخرى‪.‬‬

‫‪ (5‬قمنا بإضافة ‪(:2013-A7 -‬إستخدام مكونات معروفة الضعف)‪:‬‬ ‫‪+‬‬

‫تم تغطية هذا الموضوع خالل ‪( :2010-A6‬اإلعدادات األمنية الخاطئة)‪ ،‬لكن في هذه النسخة أصبح لها صنف خاص بها بسبب إنتشار إستخدام المكونات‬ ‫"‪ "components‬في التطوير مما ادى إلى زيادة المخاطر األمنية بسبب إستخدام مكونات معروفة الضعف‪.‬‬

‫(أواسب ‪ -‬العشرة األوائل) لعام ‪( 2010‬السابقة)‬ ‫‪ – A1‬الحقن‬

‫‪ – A1‬الحقن ”‪“Injection‬‬

‫”‪“Injection‬‬

‫‪ - A3‬ضعف التحقق من الهوية وإدارة جلسة اإلتصال‬

‫‪“Broken Authentication and‬‬

‫”‪Session Management‬‬

‫‪ - A2‬البرمجة عبر‬

‫الموقع ”(‪“Cross-Site Scripting )XSS‬‬

‫‪ - A4‬اإلحالة المباشرة الغير آمنة‬ ‫‪ - A6‬اإلعدادات األمنية الخاطئة‬

‫”‪“Insecure Direct Object References‬‬ ‫”‪“Security Misconfiguration‬‬

‫‪ - A7‬التشفير الغير آمن للبيانات –تم دمجها مع العنصر )‪(2010-A9‬‬ ‫”‪“Insecure Cryptographic Storage‬‬

‫‪ - A8‬الفشل في ضبط الوصول للروابط –تم توسيع نطاقها لتصبح )‪(2013-A7‬‬ ‫”‪“Failure to Restrict URL Access‬‬

‫‪ - A5‬تزوير الطلبات عبر الموقع‬

‫”(‪“Cross-Site Request Forgery )CSRF‬‬

‫‪ ‬تغطيتها في العنصر ‪ :A6‬اإلعدادات األمنية الخاطئة