اختبار أمان التطبيقات الثابتة

يُستخدم اختبار أمان التطبيقات الثابت ( SAST ) لتأمين البرامج من خلال مراجعة شفرتها المصدرية لتحديد الثغرات الأمنية. على الرغم من أن عملية فحص البرامج بقراءة شفرتها (المعروفة حديثًا باسم تحليل البرامج الثابت ) موجودة منذ ظهور الحواسيب، إلا أن هذه التقنية انتشرت في مجال الأمن في أواخر التسعينيات ، وظهرت أول مناقشة عامة حول حقن SQL في عام 1998 عندما دمجت تطبيقات الويب تقنيات جديدة مثل جافا سكريبت وفلاش .

على عكس أدوات اختبار أمان التطبيقات الديناميكية (DAST) التي تُستخدم لاختبار وظائف التطبيق من خلال اختبار الصندوق الأسود ، تركز أدوات اختبار أمان التطبيقات الثابتة (SAST) على محتوى كود التطبيق، أي اختبار الصندوق الأبيض . تقوم أداة SAST بفحص الكود المصدري للتطبيقات ومكوناتها لتحديد الثغرات الأمنية المحتملة في برمجياتها وبنيتها. يمكن لأدوات التحليل الثابت اكتشاف ما يُقدّر بنحو 50% من الثغرات الأمنية الموجودة في التطبيقات المختبرة. [ 1 ]

في دورة حياة تطوير البرمجيات (SDLC)، يُجرى اختبار تحليل البرمجيات الثابت (SAST) في وقت مبكر من عملية التطوير وعلى مستوى الكود، وكذلك عند تجميع جميع أجزاء الكود والمكونات في بيئة اختبار متسقة. يُستخدم اختبار تحليل البرمجيات الثابت أيضًا لضمان جودة البرمجيات، [ 2 ] على الرغم من أن كثرة النتائج الإيجابية الخاطئة الناتجة عنه تعيق اعتماده من قبل المطورين. [ 3 ]

تُدمج أدوات تحليل أمان التطبيقات الثابتة (SAST) في عملية التطوير لمساعدة فرق التطوير، حيث يركزون بشكل أساسي على تطوير وتسليم برامج تتوافق مع المواصفات المطلوبة. [ 4 ] وتركز أدوات SAST، كغيرها من أدوات الأمان، على تقليل مخاطر توقف التطبيقات عن العمل أو ضمان عدم اختراق المعلومات الخاصة المخزنة فيها.

ملخص

تشمل اختبارات أمان التطبيقات التي تُجرى قبل إصدارها اختبار أمان التطبيقات الثابت (SAST)، واختبار أمان التطبيقات الديناميكي (DAST)، واختبار أمان التطبيقات التفاعلي (IAST)، وهو مزيج من الاثنين. [ 5 ]

تُحلل أدوات التحليل الثابت نص البرنامج نحويًا، باحثةً عن مجموعة ثابتة من الأنماط أو القواعد في شفرة المصدر. نظريًا، يمكنها أيضًا فحص النسخة المُجمّعة من البرنامج. تعتمد هذه التقنية على تضمين أدوات تحليلية في الشفرة لإجراء الربط بين مكونات النسخة المُجمّعة ومكونات شفرة المصدر لتحديد المشكلات. يُمكن إجراء التحليل الثابت يدويًا كمراجعة أو تدقيق للشفرة لأغراض مختلفة، بما في ذلك الأمن، ولكنه يستغرق وقتًا طويلًا. [ 6 ]

تتحدد دقة أدوات تحليل الأمان الثابت (SAST) بنطاق تحليلها والتقنيات المحددة المستخدمة لتحديد الثغرات الأمنية. وتشمل مستويات التحليل المختلفة ما يلي:

يُحدد نطاق التحليل دقته وقدرته على اكتشاف الثغرات الأمنية باستخدام المعلومات السياقية. [ 7 ] توفر أدوات تحليل أمان البرمجيات الثابتة (SAST)، على عكس أدوات تحليل أمان البرمجيات الديناميكية (DAST) ، للمطورين ملاحظات فورية، وتساعدهم على تأمين الثغرات قبل نقل الكود إلى المستوى التالي.

على مستوى الوظيفة، تتمثل إحدى التقنيات الشائعة في إنشاء شجرة بناء جملة مجردة للتحكم في تدفق البيانات داخل الوظيفة. [ 8 ]

منذ أواخر التسعينيات، أدى السعي للتكيف مع تحديات الأعمال إلى تغيير جذري في تطوير البرمجيات، حيث تم تطبيق التجزئة [ 9 ] التي تُفرض من خلال عمليات وتنظيم فرق التطوير. [ 10 ] يتيح تتبع تدفق البيانات بين جميع مكونات التطبيق أو مجموعة التطبيقات التحقق من صحة الاستدعاءات المطلوبة لإجراءات التنظيف المخصصة ، والتأكد من اتخاذ الإجراءات المناسبة لمعالجة البيانات غير الصالحة في أجزاء محددة من التعليمات البرمجية. [ 11 ] [ 12 ]

استلزم ازدياد استخدام تطبيقات الويب اختبارها: فقد أفادت شركة فيريزون داتا بريتش في عام 2016 أن 40% من جميع اختراقات البيانات تستغل ثغرات تطبيقات الويب. [ 13 ] وقد ازداد الاهتمام بكل من عمليات التحقق الأمني ​​الخارجية والتركيز على التهديدات الداخلية. وأفاد مؤشر كليرسويفت للتهديدات الداخلية (CITI) أن 92% من المشاركين في استطلاع رأي أُجري عام 2015 أفادوا بتعرضهم لحوادث تقنية أو أمنية خلال الاثني عشر شهرًا الماضية، وأن 74% من هذه الاختراقات كانت من صنع موظفين داخليين. [ 14 ] [ 15 ] وقد صنّف لي هادلينجتون التهديدات الداخلية إلى ثلاث فئات: خبيثة، وعرضية، وغير مقصودة. ويتطلب النمو الهائل لتطبيقات الهواتف المحمولة تأمينها في مراحل مبكرة من عملية التطوير للحد من تطوير البرمجيات الخبيثة. [ 16 ]

نقاط قوة SAST

كلما تم إصلاح الثغرة الأمنية مبكرًا في دورة حياة تطوير البرمجيات، انخفضت تكلفة إصلاحها. تكلفة الإصلاح في مرحلة التطوير أقل بعشر مرات من مرحلة الاختبار، وأقل بمئة مرة من مرحلة الإنتاج. [ 17 ] تعمل أدوات تحليل أمان البرمجيات الثابتة (SAST) تلقائيًا، إما على مستوى الكود أو على مستوى التطبيق، ولا تتطلب أي تدخل. عند دمجها في بيئة التكامل المستمر/التسليم المستمر (CI/CD) ، يمكن استخدام أدوات SAST لإيقاف عملية التكامل تلقائيًا في حال اكتشاف ثغرات أمنية حرجة. [ 18 ]

ومن المزايا الأخرى مقارنة بأنواع الاختبارات الأخرى أن أدوات SAST تفحص كامل شفرة المصدر، بينما تغطي أدوات اختبار أمان التطبيقات الديناميكية تنفيذها، مما قد يؤدي إلى فقدان جزء من التطبيق [ 5 ] أو تكوين غير آمن في ملفات التكوين.

توفر أدوات تحليل البرمجيات الثابتة (SAST) وظائف إضافية مثل اختبار الجودة واختبار البنية. ثمة علاقة مباشرة بين جودة البرمجيات وأمانها، فالبرمجيات ذات الجودة الرديئة تكون أيضاً ضعيفة الأمان. [ 19 ]

نقاط ضعف SAST

على الرغم من أن المطورين متفائلون بشأن استخدام أدوات تحليل أمان البرمجيات الثابتة (SAST)، إلا أن هناك تحديات مختلفة تعيق تبنيها. [ 4 ] فعلى سبيل المثال، تشير الأبحاث إلى أنه على الرغم من طول المخرجات التي تنتجها هذه الأدوات، إلا أنها قد تفتقر إلى سهولة الاستخدام. [ 20 ]

مع استخدام منهجيات التطوير الرشيقة في تطوير البرمجيات، يؤدي التكامل المبكر لتقنية تحليل البرمجيات الثابتة (SAST) إلى ظهور العديد من الأخطاء، حيث يركز المطورون الذين يستخدمون هذا الإطار أولاً على الميزات والتسليم. [ 21 ]

قد يؤدي فحص العديد من أسطر التعليمات البرمجية باستخدام أدوات تحليل الأمان الثابت (SAST) إلى ظهور مئات أو آلاف من تحذيرات الثغرات الأمنية لتطبيق واحد. وقد ينتج عن ذلك العديد من النتائج الإيجابية الخاطئة، مما يزيد من وقت التحقيق ويقلل من الثقة في هذه الأدوات. ويزداد هذا الأمر سوءًا عندما لا تستطيع الأداة تحديد سياق الثغرة الأمنية. [ 3 ]

انظر أيضاً

مراجع

  1. أوكون، ف.؛ غوثري، و. ف.؛ غوشيه، هـ.؛ بلاك، ب. إ. (أكتوبر 2007). "تأثير أدوات التحليل الثابت على أمن البرمجيات: دراسة أولية" (ملف PDF) . وقائع ورشة عمل ACM لعام 2007 حول جودة الحماية . ACM. الصفحات 1-5 . doi : 10.1145/1314257.1314260 . ISBN  978-1-59593-885-5. S2CID 6663970 . 
  2. أيواه، ن.؛ هوفماير، د.؛ مورغنثالر، ج.د.؛ بينيكس، ج.؛ بو، و. (سبتمبر 2008). "استخدام التحليل الثابت لاكتشاف الأخطاء". مجلة IEEE للبرمجيات . 25 (5). IEEE: 22-29 . doi : 10.1109/MS.2008.130 . S2CID 20646690 . 
  3. 1 2 جونسون، بريتاني؛ سونغ، يوكي؛ مورفي-هيل، إيمرسون؛ بوديدج، روبرت (مايو 2013). "لماذا لا يستخدم مطورو البرامج أدوات التحليل الثابت لاكتشاف الأخطاء؟". المؤتمر الدولي الخامس والثلاثون لهندسة البرمجيات (ICSE) لعام 2013. الصفحات 672-681 . doi : 10.1109/ICSE.2013.6606613 . ISBN  978-1-4673-3076-3.
  4. 1 2 أويتويان، توسين دانيال؛ ميلوشيسكا، بيسيرا؛ غريني، ماري (مايو 2018). "خرافات وحقائق حول أدوات اختبار أمان التطبيقات الثابتة: بحث إجرائي في شركة تيلينور ديجيتال". المؤتمر الدولي لتطوير البرمجيات الرشيقة . سبرينغر: 86-103 .
  5. 1 2 باريزي، آر إم؛ تشيان، ك؛ شهريار، هـ؛ وو، ف؛ تاو، ل. (يوليو 2018). "متطلبات معيارية لتقييم أدوات اختبار ثغرات أمن البرمجيات". المؤتمر السنوي الثاني والأربعون لبرمجيات الحاسوب وتطبيقاتها (COMPSAC) لعام 2018. معهد مهندسي الكهرباء والإلكترونيات. الصفحات 825-826 . doi : 10.1109/COMPSAC.2018.00139 . ISBN  978-1-5386-2666-5. S2CID 52055661 . 
  6. تشيس، ب.؛ ماكجرو، ج. (ديسمبر 2004). "التحليل الثابت للأمن". مجلة IEEE للأمن والخصوصية . 2 (6). IEEE: 76-79 . doi : 10.1109/MSP.2004.111 .
  7. تشيس، ب.؛ ماكجرو، ج. (أكتوبر 2004). "تحليل المخاطر في تصميم البرمجيات" . مجلة IEEE للأمن والخصوصية . 2 (4). IEEE: 76-84 . doi : 10.1109/MSP.2004.55 .
  8. ياماغوتشي، فابيان؛ لوتمان، ماركوس؛ ريك، كونراد (ديسمبر 2012). "استقراء الثغرات الأمنية المعمم باستخدام أشجار بناء الجملة المجردة". وقائع المؤتمر السنوي الثامن والعشرين لتطبيقات أمن الحاسوب . المجلد 2. معهد مهندسي الكهرباء والإلكترونيات. الصفحات 359-368 . doi : 10.1145/2420950.2421003 . ISBN   9781450313124. S2CID 8970125 . 
  9. بوش، جرادي؛ كوزاتشينسكي، فويتك (سبتمبر 1998). "هندسة البرمجيات القائمة على المكونات". مجلة IEEE للبرمجيات . 15 (5): 34-36 . doi : 10.1109/MS.1998.714621 . S2CID 33646593 . 
  10. ميزو، بيتر؛ جاين، راديكا (ديسمبر 2006). "تطوير البرمجيات الرشيقة: مبادئ الأنظمة التكيفية وأفضل الممارسات". إدارة نظم المعلومات . 23 (3): 19-30 . doi : 10.1201/1078.10580530/46108.23.3.20060601/93704.3 . S2CID 5087532 . 
  11. ليفشيتس، في بي؛ لام، إم إس (مايو 2006). "اكتشاف الثغرات الأمنية في تطبيقات جافا باستخدام التحليل الثابت". ندوة يو إس إي إنيكس الأمنية . 14 : 18.
  12. جوفانوفيتش، ن.؛ كرويجل، س.؛ كيردا، إ. (مايو 2006). "بيكسي: أداة تحليل ثابتة للكشف عن ثغرات تطبيقات الويب". ندوة IEEE للأمن والخصوصية لعام 2006 (S&P'06) . IEEE. ص 359-368 . doi : 10.1109/SP.2006.29 . ISBN  0-7695-2574-1. S2CID 1042585 . 
  13. "تقرير تحقيقات اختراق البيانات لعام 2016" (ملف PDF) . فيريزون . 2016. تم الاطلاع عليه بتاريخ 8 يناير 2016 .
  14. «تقرير Clearswift: 40% من الشركات تتوقع حدوث اختراق للبيانات في العام المقبل» . إنديفور بزنس ميديا. 20 نوفمبر 2015. تم الاطلاع عليه بتاريخ 8 يناير 2024 .
  15. "القنبلة الموقوتة: 40% من الشركات تتوقع حدوث اختراق لبيانات الموظفين الداخليين خلال الاثني عشر شهرًا القادمة" . فورترا. 18 نوفمبر 2015. تم الاطلاع عليه بتاريخ 8 يناير 2024 .
  16. شيانيونغ، مينغ؛ تشيان، كاي؛ لو، دان؛ بهاتاشاريا، برابير؛ وو، فان (يونيو 2018). "تطوير برمجيات جوالة آمنة باستخدام كاشفات الثغرات الأمنية في تحليل الشفرة الثابتة". الندوة الدولية للشبكات والحواسيب والاتصالات 2018 (ISNCC) . الصفحات 1-4 . doi : 10.1109/ISNCC.2018.8531071 . ISBN  978-1-5386-3779-1. S2CID 53288239 . 
  17. حسين، شهادات (أكتوبر 2018). "آثار إعادة العمل وإعادة الاستخدام في اقتصاد البرمجيات" . المجلة العالمية لعلوم وتكنولوجيا الحاسوب . 18 (C4): 35-50 .
  18. أوكون، ف.؛ غوثري، و. ف.؛ غوشيه، هـ.؛ بلاك، ب. إ. (أكتوبر 2007). "تأثير أدوات التحليل الثابت على أمن البرمجيات: دراسة أولية" (ملف PDF) . وقائع ورشة عمل ACM لعام 2007 حول جودة الحماية . ACM. الصفحات 1-5 . doi : 10.1145/1314257.1314260 . ISBN  978-1-59593-885-5. S2CID 6663970 . 
  19. سيافاس، م.؛ تسوكالاس، د.؛ يانكوفيتش، م.؛ كيهاجياس، د.؛ خاتزيجورجيو، أ.؛ تزوفاراس، د.؛ أنيتشيتش، ن.؛ جيلينبي، إ. (أغسطس 2019). "تقييم تجريبي للعلاقة بين الديون التقنية وأمن البرمجيات". في كونجوفيتش، ز.؛ زدرافكوفيتش، م.؛ تراجانوفيتش، م. (محررون). وقائع المؤتمر الدولي لمجتمع المعلومات والتكنولوجيا 2019 (مجموعة البيانات). المجلد 1. الصفحات 199-203 . doi : 10.5281/zenodo.3374712 .  
  20. طهائي، محمد؛ فانيا، كامي؛ بيزنوسوف، كونستانتين (كوستا)؛ وولترز، ماريا ك (6 مايو 2021). "إشعارات الأمان في أدوات التحليل الثابت: مواقف المطورين وفهمهم وقدرتهم على التصرف بناءً عليها". وقائع مؤتمر CHI لعام 2021 حول العوامل البشرية في أنظمة الحوسبة . الصفحات 1-17 . doi : 10.1145/3411764.3445616 . ISBN  9781450380966. S2CID 233987670 . 
  21. أريازا، غوستافو خوسيه نيفيس (يونيو 2019). "منهجية تطوير تطبيقات آمنة في الحوسبة السحابية (MDSAC) لمؤتمرات IEEECS". المؤتمر الدولي السادس لـ IEEE حول الأمن السيبراني والحوسبة السحابية (CSCloud) / المؤتمر الدولي الخامس لـ IEEE حول الحوسبة الطرفية والسحابة القابلة للتوسع (EdgeCom) . IEEE. الصفحات 102-106 . doi : 10.1109/CSCloud/EdgeCom.2019.00-11 . ISBN  978-1-7281-1661-7. S2CID 203655645 .