تحليل مكونات البرمجيات

يُعد تحليل مكونات البرمجيات ( SCA ) ممارسة في مجالات تكنولوجيا المعلومات وهندسة البرمجيات لتحليل تطبيقات البرمجيات المصممة خصيصًا للكشف عن البرمجيات مفتوحة المصدر المدمجة والتحقق مما إذا كانت محدثة، أو تحتوي على ثغرات أمنية، أو تتطلب ترخيصًا. [ 1 ]

خلفية

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

مع ذلك، ينطوي استخدام البرمجيات مفتوحة المصدر على العديد من المخاطر بالنسبة لتطبيقات البرمجيات قيد التطوير. ويمكن تصنيف هذه المخاطر إلى 5 فئات: [ 5 ]

بعد فترة وجيزة من تأسيس مبادرة المصادر المفتوحة في فبراير 1998، [ 6 ] تم التطرق إلى المخاطر المرتبطة بالبرمجيات مفتوحة المصدر [ 7 ] وحاولت المنظمات إدارة ذلك باستخدام جداول البيانات والوثائق لتتبع جميع مكونات المصادر المفتوحة التي يستخدمها مطوروها. [ 8 ]

بالنسبة للمؤسسات التي تستخدم مكونات مفتوحة المصدر على نطاق واسع، برزت الحاجة إلى أتمتة تحليل وإدارة مخاطر المصادر المفتوحة. وقد أدى ذلك إلى ظهور فئة جديدة من منتجات البرمجيات تُسمى تحليل مكونات البرمجيات (SCA)، والتي تساعد المؤسسات على إدارة مخاطر المصادر المفتوحة. ويسعى تحليل مكونات البرمجيات إلى الكشف عن جميع مكونات الطرف الثالث المستخدمة في تطبيق برمجي، وذلك للمساعدة في تقليل المخاطر المرتبطة بالثغرات الأمنية، ومتطلبات ترخيص الملكية الفكرية، وتقادم المكونات المستخدمة.

مبدأ التشغيل

تعمل منتجات SCA عادةً على النحو التالي: [ 9 ]

  • يقوم محرك بفحص شفرة المصدر البرمجية، والقطع الأثرية المرتبطة بها المستخدمة في تجميع تطبيق برمجي.
  • يقوم المحرك بتحديد مكونات البرمجيات مفتوحة المصدر وإصداراتها، وعادة ما يخزن هذه المعلومات في قاعدة بيانات لإنشاء فهرس للبرمجيات مفتوحة المصدر المستخدمة في التطبيق الذي تم فحصه.
  • تُقارن هذه القائمة بقواعد بيانات تُشير إلى الثغرات الأمنية المعروفة لكل مكون، ومتطلبات الترخيص لاستخدامه، والإصدارات السابقة منه. [ 10 ] وللكشف عن الثغرات الأمنية، تُجرى هذه المقارنة عادةً مع الثغرات الأمنية المعروفة (CVEs) المُسجلة في قاعدة بيانات الثغرات الأمنية الوطنية (NVD). تستخدم بعض المنتجات قاعدة بيانات خاصة إضافية للثغرات الأمنية. أما فيما يخص الامتثال لحقوق الملكية الفكرية والقانونية ، فتستخرج منتجات تحليل الثغرات الأمنية (SCA) نوع الترخيص المُستخدم لمكون البرمجيات مفتوحة المصدر (OSS) وتقيّمه. [ 11 ] تُستخرج إصدارات المكونات من مستودعات مفتوحة المصدر شائعة مثل GitHub و Maven و PyPi و NuGet وغيرها الكثير.
  • لقد دمجت أنظمة تحليل الثغرات الأمنية الحديثة تقنيات تحليل متقدمة لتحسين الدقة وتقليل النتائج الإيجابية الخاطئة. ومن أبرز هذه التقنيات تحليل الأساليب المعرضة للثغرات ، والذي يحدد ما إذا كانت الأساليب المعرضة للثغرات المحددة في التبعيات قابلة للوصول إليها فعليًا من كود التطبيق. يستخدم هذا النهج، الذي ابتكره أسانخايا شارما وزملاؤه، تحليل مخطط الاستدعاءات لتتبع مسارات التنفيذ من نقاط دخول التطبيق إلى وجهات محددة للثغرات في مكتبات خارجية. [ 12 ]
  • تجمع تقنيات التحليل الهجينة الثابتة والديناميكية بين مخططات استدعاءات البرامج المُنشأة بشكل ثابت والأدوات الديناميكية لتحسين أداء استبعاد النتائج الإيجابية الخاطئة. يعالج هذا النهج المعياري قيود التحليل الثابت البحت، الذي قد يُؤدي إلى ظهور نتائج إيجابية وسلبية خاطئة في المشاريع الواقعية. [ 13 ]
  • تعمل أنظمة إدارة الثغرات الأمنية القائمة على التعلم الآلي على أتمتة عملية بناء قواعد بيانات الثغرات الأمنية وصيانتها، وذلك من خلال التنبؤ بمدى ارتباط عناصر البيانات بالثغرات الأمنية من مصادر متنوعة، مثل أنظمة تتبع الأخطاء، والتحديثات البرمجية، والقوائم البريدية. تستخدم هذه الأنظمة تقنيات التدريب الذاتي لتحسين جودة النموذج بشكل متكرر، وتتضمن مقاييس استقرار النشر لتقييم النماذج الجديدة قبل نشرها في بيئة الإنتاج. [ 14 ]
  • تستخدم تقنيات معالجة اللغة الطبيعية لتحديد الثغرات الأمنية تلقائيًا تحليل رسائل الالتزام وتقارير الأخطاء لتحديد المشكلات الأمنية التي قد لا تكون قد أُعلن عنها علنًا. يعتمد هذا النهج على مصنفات التعلم الآلي المدربة على خصائص نصية مستخرجة من نتاجات التطوير لاكتشاف ثغرات أمنية غير معروفة سابقًا في المكتبات مفتوحة المصدر. [ 15 ]
  • تُتاح النتائج بعد ذلك للمستخدمين النهائيين عبر تنسيقات رقمية مختلفة. يعتمد المحتوى والتنسيق على منتج تحليل المخاطر البرمجية، وقد يشمل إرشادات لتقييم المخاطر وتفسيرها، وتوصيات خاصة فيما يتعلق بالمتطلبات القانونية لمكونات المصادر المفتوحة، مثل تراخيص حقوق النشر القوية أو الضعيفة . قد تتضمن المخرجات أيضًا قائمة بمكونات البرمجيات (SBOM) تُفصّل جميع مكونات المصادر المفتوحة والخصائص المرتبطة بها المستخدمة في تطبيق برمجي [ 16 ].

تقنيات متقدمة

منذ أوائل العقد الثاني من القرن الحادي والعشرين، قام الباحثون بتطوير العديد من التقنيات المتقدمة لتحسين دقة وكفاءة أدوات تحليل سلسلة التوريد:

تحليل الأساليب المعرضة للخطر

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

التعلم الآلي لقواعد بيانات الثغرات الأمنية

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

التحليل الثابت لتوافق المكتبة

مع تزايد توصيات أدوات تحليل الثغرات الأمنية بتحديث المكتبات لمعالجة نقاط الضعف، يصبح ضمان التوافق أمرًا بالغ الأهمية. تستطيع تقنيات التحليل الثابت المتقدمة الكشف تلقائيًا عن حالات عدم توافق واجهات برمجة التطبيقات (APIs) التي قد تنتج عن ترقيات المكتبات، مما يتيح معالجة الثغرات الأمنية تلقائيًا دون التأثير على الوظائف الحالية. صُممت هذه التحليلات البسيطة لتندمج بسلاسة في عمليات التكامل المستمر والتسليم المستمر . [ 19 ]

الاستخدام

نظراً لتأثير تحليل المصادقة الأمنية (SCA) على مختلف وظائف المؤسسات، قد تستخدم فرق مختلفة البيانات تبعاً لحجم المؤسسة وهيكلها. غالباً ما يستخدم قسم تقنية المعلومات تحليل المصادقة الأمنية لتنفيذ التكنولوجيا وتشغيلها بالتعاون مع أصحاب المصلحة المشتركين، بمن فيهم مدير المعلومات (CIO)، ومدير التكنولوجيا (CTO)، وكبير مهندسي المؤسسة (EA). [ 20 ] كما تُستخدم بيانات الأمان والتراخيص عادةً من قِبل مسؤولين مثل مدير أمن المعلومات (CISO) لتقييم المخاطر الأمنية، ومدير الملكية الفكرية/الامتثال لإدارة مخاطر الملكية الفكرية. [ 21 ]

بحسب إمكانيات منتج SCA، يمكن تنفيذه مباشرةً ضمن بيئة التطوير المتكاملة (IDE) للمطور الذي يستخدم ويدمج مكونات البرمجيات مفتوحة المصدر، أو يمكن تنفيذه كخطوة مخصصة في عملية مراقبة جودة البرمجيات . [ 22 ] [ 23 ]

تُعدّ منتجات SCA، ولا سيما قدرتها على إنشاء قائمة مكونات البرمجيات (SBOM)، مطلوبة في بعض الدول مثل الولايات المتحدة لفرض أمن البرمجيات التي يقدمها الموردون إلى إحدى وكالاتها. [ 24 ]

ومن الاستخدامات الشائعة الأخرى لتحليل البرمجيات المتخصصة (SCA) إجراء الفحص النافي للجهالة التقني . فقبل إتمام صفقة اندماج واستحواذ ، تقوم الشركات الاستشارية بمراجعة المخاطر المرتبطة ببرمجيات الشركة المستهدفة. [ 25 ]

نقاط القوة

تُعدّ الطبيعة التلقائية لمنتجات SCA نقطة قوتها الأساسية. فلا يحتاج المطورون إلى بذل جهد إضافي يدوي عند استخدام مكونات البرمجيات مفتوحة المصدر ودمجها. [ 26 ] وينطبق هذا التشغيل الآلي أيضًا على الإشارات غير المباشرة إلى مكونات البرمجيات مفتوحة المصدر الأخرى داخل التعليمات البرمجية والملفات. [ 27 ]

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

نقاط الضعف

في المقابل، قد تشمل بعض نقاط الضعف الرئيسية لمنتجات SCA الحالية ما يلي:

  • عملية نشر معقدة وكثيفة العمالة قد تستغرق شهورًا حتى تصبح جاهزة للتشغيل بالكامل [ 29 ]
  • يستخدم كل منتج قاعدة بيانات خاصة به من مكونات البرمجيات مفتوحة المصدر والتي يمكن أن تختلف بشكل كبير من حيث الحجم والتغطية [ 30 ].
  • تقييد بيانات الثغرات الأمنية للإبلاغ فقط عن الثغرات الأمنية التي تم الإبلاغ عنها رسميًا في قاعدة بيانات الثغرات الأمنية الوطنية (والتي يمكن أن تكون بعد أشهر من اكتشاف الثغرة الأمنية في الأصل) [ 31 ]
  • عدم وجود توجيهات آلية بشأن الإجراءات التي يجب اتخاذها بناءً على تقارير وبيانات SCA [ 32 ]
  • عدم وجود إرشادات بشأن المتطلبات القانونية لتراخيص البرمجيات مفتوحة المصدر التي تم اكتشافها [ 33 ]

انظر أيضاً

مراجع

  1. برانا، جيدي أرثا أزريادي؛ شارما، أبهيشيك؛ شار، لوين خين؛ فو، داريوس؛ سانتوسا، أندرو إي؛ شارما، أسانخايا؛ لو، ديفيد (يوليو 2021). "بعيد عن العين، بعيد عن القلب؟ كيف تؤثر التبعيات الضعيفة على مشاريع المصادر المفتوحة" . هندسة البرمجيات التجريبية . 26 (4) 59. سبرينغر: 1-34 . doi : 10.1007/s10664-021-09959-3 . S2CID 197679660 . 
  2. نيرستراز، أوسكار؛ ميجلر، ثيو ديرك (1995). "اتجاهات البحث في تأليف البرمجيات" . مجلة ACM Computing Surveys . 27 (2). ACM: 262–264 . doi : 10.1145/210376.210389 . S2CID 17612128 . 
  3. نيرستراز، أوسكار؛ دامي، لوران (يناير 1995). تأليف البرمجيات الموجهة للكائنات . برنتيس هول إنترناشونال. ص 3-28 . CiteSeerX 10.1.1.90.8174 .  
  4. ^ دي هون ، ميشيل جيه إل. إيموتو، سييا؛ نولان، جون. ميانو ، ساتورو (فبراير 2004). “برمجيات التجميع مفتوحة المصدر”. المعلوماتية الحيوية . 20 (9): 1453– 1454. بيب كود : 2004Bioin..20.1453D . سيتيسيركس 10.1.1.114.3335 . دوى : 10.1093 / المعلوماتية الحيوية / bth078 . بميد 14871861 .  
  5. دوك لينه، نغوين؛ دوي هونغ، فان؛ ديبي، فو ثو (2019). "إدارة المخاطر في المشاريع القائمة على البرمجيات مفتوحة المصدر" . وقائع المؤتمر الدولي الثامن للبرمجيات وتطبيقات الحاسوب لعام 2019. الصفحات 178-183 . doi : 10.1145/3316615.3316648 . ISBN  9781450365734. S2CID 153314145 . 
  6. "تاريخ مبادرة المصادر المفتوحة" . Opensource.org. 19 سبتمبر 2006.
  7. باين، كريستيان (2002). "حول أمن البرمجيات مفتوحة المصدر" (ملف PDF) . مجلة نظم المعلومات . 12 : 61-78 . doi : 10.1046/j.1365-2575.2002.00118.x . S2CID 8123076 . 
  8. كور، سومانديب (أبريل 2020). "قضايا الأمن في البرمجيات مفتوحة المصدر" (ملف PDF) . المجلة الدولية لعلوم الحاسوب والاتصالات : 47-51 .
  9. أومبريدان، فيليب (أكتوبر 2020). "الامتثال لرخص البرمجيات الحرة والمفتوحة المصدر: أدوات لتحليل مكونات البرمجيات" . مجلة الكمبيوتر . 53 (10): 262-264 . Bibcode : 2020Compr..53j.105O . doi : 10.1109/MC.2020.3011082 . S2CID 222232127 . 
  10. تشين، يانغ؛ سانتوسا، أندرو إي؛ يي، أنغ مينغ؛ شارما، أبهيشيك؛ شارما، أسانخايا؛ لو، ديفيد (2020). نهج التعلم الآلي لتنظيم الثغرات الأمنية . وقائع المؤتمر الدولي السابع عشر حول استخراج البيانات من مستودعات البرمجيات. الصفحات 32-42 . doi : 10.1145/3379597.3387461 . 
  11. دوان، رويان؛ بيجلاني، أشيش؛ شو، مينغ؛ كيم، تايسو؛ لي، وينكي (2017). "تحديد انتهاكات تراخيص المصادر المفتوحة ومخاطر الأمن ليوم واحد على نطاق واسع" . وقائع مؤتمر ACM SIGSAC لأمن الحاسوب والاتصالات لعام 2017. ACM. الصفحات 2169-2185 . doi : 10.1145/3133956.3134048 . ISBN  9781450349468. S2CID 7402387 . 
  12. فو، داريوس؛ يو، جيسون؛ شياو، هاو؛ شارما، أسانخايا (2019). "ديناميكيات تحليل تكوين البرمجيات". arXiv : 1909.00973 [ cs.SE ].
  13. فو، داريوس؛ يو، جيسون؛ شياو، هاو؛ شارما، أسانخايا (2019). "ديناميكيات تحليل تكوين البرمجيات". arXiv : 1909.00973 [ cs.SE ].
  14. تشين، يانغ؛ سانتوسا، أندرو إي؛ يي، أنغ مينغ؛ شارما، أبهيشيك؛ شارما، أسانخايا؛ لو، ديفيد (2020). نهج التعلم الآلي لتنظيم الثغرات الأمنية . وقائع المؤتمر الدولي السابع عشر حول استخراج البيانات من مستودعات البرمجيات. الصفحات 32-42 . doi : 10.1145/3379597.3387461 . 
  15. تشو، ياقين؛ شارما، أسانخايا (2017). التحديد الآلي للمشاكل الأمنية من رسائل الالتزام وتقارير الأخطاء . وقائع الاجتماع المشترك الحادي عشر لعام 2017 حول أسس هندسة البرمجيات. الصفحات 914-919 . doi : 10.1145/3106237.3106293 . 
  16. أرورا، أروشي؛ رايت، فيرجينيا؛ جارمان، كريستينا (2022). "تعزيز أمن التكنولوجيا التشغيلية: فهم قائمة المواد المعاصرة" (ملف PDF) . مجلة سياسات البنية التحتية الحيوية . 3 : 111-135 . doi : 10.18278/jcip.3.1.8 .
  17. فو، داريوس؛ يو، جيسون؛ شياو، هاو؛ شارما، أسانخايا (2019). "ديناميكيات تحليل تكوين البرمجيات". arXiv : 1909.00973 [ cs.SE ].
  18. تشين، يانغ؛ سانتوسا، أندرو إي؛ يي، أنغ مينغ؛ شارما، أبهيشيك؛ شارما، أسانخايا؛ لو، ديفيد (2020). نهج التعلم الآلي لتنظيم الثغرات الأمنية . وقائع المؤتمر الدولي السابع عشر حول استخراج البيانات من مستودعات البرمجيات. الصفحات 32-42 . doi : 10.1145/3379597.3387461 . 
  19. فو، داريوس؛ تشوا، هندي؛ يو، جيسون؛ أنغ، مينغ يي؛ شارما، أسانخايا (2018). التحقق الثابت الفعال من تحديثات المكتبات . وقائع الاجتماع المشترك السادس والعشرين لجمعية ACM لعام 2018 حول المؤتمر الأوروبي لهندسة البرمجيات والندوة حول أسس هندسة البرمجيات. الصفحات 791-796 . doi : 10.1145/3236024.3275535 . 
  20. بيلي، ت.؛ غريس، ج.؛ واترز، م.؛ ويل، ج. (19 سبتمبر 2022). "قائمة مكونات البرمجيات: إدارة مخاطر الأمن السيبراني للبرمجيات" . ماكينزي وشركاه . تم الاطلاع عليه في 6 يناير 2024 .
  21. بوب، كارل مايكل (30 أكتوبر 2019). أفضل الممارسات للاستخدام التجاري للبرمجيات مفتوحة المصدر . دار نشر BoD – Books on Demand، 2019. ص 10. ISBN  9783750403093.
  22. إمتياز، نصيف؛ ثورن، سيفر؛ ويليامز، لوري (أكتوبر 2021). "دراسة مقارنة لتقارير الثغرات الأمنية باستخدام أدوات تحليل مكونات البرمجيات" . وقائع الندوة الدولية الخامسة عشرة لجمعية ACM/IEEE حول هندسة البرمجيات التجريبية والقياس (ESEM) . ACM. الصفحات 1-11 . arXiv : 2108.12078 . doi : 10.1145/3475716.3475769 . ISBN  9781450386654. S2CID 237346987 . 
  23. صن، شياوهان؛ تشنغ، يونتشانغ؛ كو، شياوجي؛ لي، هانغ (يونيو 2021). "تصميم وتنفيذ خط أنابيب اختبار أمني قائم على منهجية DevSecOps". المؤتمر الرابع لمعهد مهندسي الكهرباء والإلكترونيات (IEEE) حول إدارة المعلومات المتقدمة والاتصالات والإلكترونيات والتحكم الآلي (IMCEC) لعام 2021. المجلد 4. معهد مهندسي الكهرباء والإلكترونيات. الصفحات 532-535 . doi : 10.1109/IMCEC51613.2021.9482270 . ISBN   978-1-7281-8535-4. S2CID 236193144 . 
  24. "عناصر واعتبارات قائمة مكونات البرمجيات" . السجل الفيدرالي . 6 فبراير 2021. تم الاطلاع عليه في 6 يناير 2024 .
  25. سيرافيني، دانييلي؛ زاكيرولي، ستيفانو (سبتمبر 2022). "تحديد النشر المسبق الفعال لشفرة المصدر المفتوح" . المؤتمر الدولي الثامن عشر للتعاون المفتوح . المجلد 4. ACM. الصفحات 1-8 . arXiv : 2207.11057 . doi : 10.1145/3555051.3555068 . ISBN   9781450398459. S2CID 251018650 . 
  26. تشين، يانغ؛ سانتوسا، أندرو إي؛ شارما، أسانخايا؛ لو، ديفيد (سبتمبر 2020). "التعرف الآلي على المكتبات من بيانات الثغرات الأمنية" . وقائع المؤتمر الدولي الثاني والأربعين لجمعية ACM/IEEE حول هندسة البرمجيات: هندسة البرمجيات في الممارسة . الصفحات 90-99 . doi : 10.1145/3377813.3381360 . ISBN  9781450371230. S2CID 211167417 . 
  27. كينغو أوكا، دينيس (2021). "تحليل تكوين البرمجيات في صناعة السيارات". بناء سيارات آمنة . وايلي. ص 91-110 . doi : 10.1002/9781119710783.ch6 . ISBN  9781119710783. S2CID 233582862 . 
  28. فو، داريوس؛ يو، جيسون؛ شياو، هاو؛ شارما، أسانخايا (2019). "ديناميكيات تحليل تكوين البرمجيات". arXiv : 1909.00973 [ cs.SE ].
  29. راجاباكسا، روشان نامال؛ زاهدي، منصوره؛ بابر، محمد علي (2021). "تحليل تجريبي لوجهات نظر الممارسين حول دمج أدوات الأمان في DevOps" . وقائع الندوة الدولية الخامسة عشرة لجمعية ACM/IEEE حول هندسة البرمجيات التجريبية والقياس (ESEM) . الصفحات 1-12 . arXiv : 2107.02096 . doi : 10.1145/3475716.3475776 . ISBN  9781450386654. S2CID 235731939 . 
  30. إمتياز، نصيف؛ ثورن، سيفر؛ ويليامز، لوري (2021). "دراسة مقارنة لتقارير الثغرات الأمنية باستخدام أدوات تحليل مكونات البرمجيات" . وقائع الندوة الدولية الخامسة عشرة لجمعية ACM/IEEE حول هندسة البرمجيات التجريبية والقياس (ESEM) . الصفحات 1-11 . arXiv : 2108.12078 . doi : 10.1145/3475716.3475769 . ISBN  9781450386654. S2CID 237346987 . 
  31. "تحليل المكونات" . owasp.org .
  32. فو، داريوس؛ تشوا، هندي؛ يو، جيسون؛ أنغ، مينغ يي؛ شارما، أسانخايا (2018). "التحقق الثابت الفعال من تحديثات المكتبات" . وقائع الاجتماع المشترك السادس والعشرين لجمعية ACM لعام 2018 حول المؤتمر الأوروبي لهندسة البرمجيات والندوة حول أسس هندسة البرمجيات . الصفحات 791-796 . doi : 10.1145/3236024.3275535 . ISBN  9781450355735. S2CID 53079466 . 
  33. ميلار، ستيوارت (نوفمبر 2017). "الكشف عن الثغرات الأمنية في البرمجيات مفتوحة المصدر: العلاج والسبب" (ملف PDF) . جامعة كوينز بلفاست.