"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إصلاح الثغرات الأمنية في التعليمات البرمجية تلقائيًا باستخدام الذكاء الاصطناعي

إصلاح الثغرات الأمنية في التعليمات البرمجية تلقائيًا باستخدام الذكاء الاصطناعي

تم النشر بتاريخ 2024-11-08
تصفح:303

في مكتبة Snyk لورش عمل عملاء SecRel، لدينا واحدة تسمى Breaking AI. تتناول ورشة العمل هذه كيف يمكن لمساعدي الذكاء الاصطناعي، مثل مساعد الطيار والكوديوم، مساعدة المطورين على كتابة التعليمات البرمجية بشكل أسرع. أهم ما يميز ورشة العمل هو أن مساعدي الذكاء الاصطناعي يشبهون المطورين المبتدئين الذين تخرجوا حديثًا من معسكراتهم التدريبية للبرمجة: متحمسون للغاية ومفيدون، ولكن - أنت حقًا تريد التحقق من التعليمات البرمجية الخاصة بهم (لا يوجد ظل للمطورين المبتدئين - نحن في حاجة إليها، وأنها رهيبة!). نوضح في ورشة العمل كيف أن الجمع بين مساعدي الذكاء الاصطناعي وSnyk يمنحك قوة خارقة - كتابة التعليمات البرمجية بسرعة وأمان.

على حد تعبير أحد الطهاة المشهورين، قامت Snyk الآن "بالارتقاء إلى مستوى أعلى" بفضل قدرتها على Deep Code AI Fix. لقد قدمت Snyk Code دائمًا نصائح جيدة للمعالجة عندما تجد ثغرة أمنية. بل إنه سيوفر لك ثلاثة مراجع جيدة لمشاريع أخرى مفتوحة المصدر بها نفس الثغرة الأمنية ويوضح لك كيف قامت هذه المشاريع بإصلاحها. الآن، بفضل البيانات المنسقة بعناية من فريق أبحاث الأمان في Snyk، وهو نموذج ذكاء اصطناعي مختلط يجمع بين قوة الذكاء الاصطناعي التوليدي والرمزي، بالإضافة إلى نماذج التعلم الآلي، يمكن لـ Snyk الآن إصلاح العديد من الثغرات الأمنية الشائعة تلقائيًا من راحة جهازك. IDE المفضل.

في هذه المدونة، سأوضح كيف يمكنك الاستفادة بشكل أفضل من Deep Code AI Fix (DCAF) في مثال مشروع Java الذي نستخدمه في ورش العمل لدينا. يمكن العثور على الكود المصدري هنا. ملحوظة: هذا المشروع معرض للخطر عمدًا بعدة طرق وغير مناسب للاستخدام في أي بيئة إنتاج.

المرح مع تطبيق جدولة المؤتمرات

إذا سبق لك أن حضرت مؤتمرًا تقنيًا أو تحدثت فيه، فأنت تعلم أن أحد الجوانب الأكثر تحديًا هو إنشاء الجدول الزمني وتقديمه.

التطبيق المرجعي هو نسخة فظيعة من هذا (أنا لست مطورًا جيدًا للواجهة الأمامية!) ولكنه مفيد لإظهار كيف يمكن أن تعمل التعليمات البرمجية تقنيًا وتكون غير آمنة في نفس الوقت.

إنه تطبيق Spring Boot يستخدم محرك قالب Thymeleaf. عند بدء التشغيل، يقوم بإنشاء مكبرات صوت عشوائية وعناوين للمحادثات وبيانات وصف المحادثات باستخدام مكتبة Faker الشهيرة. عناوين المحادثات وأوصافها كلها مأخوذة من نص كتاب دليل المسافر إلى المجرة. ملاحظة: قد لا تكون العناوين والأوصاف كلها آمنة للعمل بنسبة 100%. لقد تم تحذيرك!

كل متحدث تم إنشاؤه لهذا الحدث لديه أيضًا صفحة مخصصة حيث يمكنك رؤية قائمة محادثاتهم في المؤتمر. سنركز على هذا الجزء من التطبيق.

لتجميع التطبيق وتشغيله، قم بتنفيذ ما يلي:

mvn clean install
mvn spring-boot:run

عند تشغيل التطبيق، بالإضافة إلى شعار Spring Boot المعتاد والمخرجات الأخرى، سترى شيئًا مثل هذا:

Access talks for heath.davis at: http://localhost:8081/talks?username=heath.davis
Access talks for russell.bernier at: http://localhost:8081/talks?username=russell.bernier
Access talks for kenyetta.jones at: http://localhost:8081/talks?username=kenyetta.jones
Access talks for howard.bailey at: http://localhost:8081/talks?username=howard.bailey
Access talks for buddy.jast at: http://localhost:8081/talks?username=buddy.jast
Access talks for jeanice.kertzmann at: http://localhost:8081/talks?username=jeanice.kertzmann
Access talks for deborah.hamill at: http://localhost:8081/talks?username=deborah.hamill
Access talks for horacio.renner at: http://localhost:8081/talks?username=horacio.renner
Access talks for winfred.schuster at: http://localhost:8081/talks?username=winfred.schuster
Access talks for tommie.hane at: http://localhost:8081/talks?username=tommie.hane
Access talks for micah at: http://localhost:8081/talks?username=micah

ملاحظة: لن يكون الأمر على هذا النحو تمامًا، حيث يتم إنشاء المتحدثين ومحادثاتهم بشكل عشوائي في كل مرة تقوم فيها بتشغيل التطبيق.

إذا قمت بالنقر فوق أحد الروابط أو نسخها/لصقها، فسترى صفحة المتحدث مع قائمة محادثاتهم:

Automatically fix code vulnerabilities with AI

هيا نلعب: ابحث عن الثغرة الأمنية

ألق نظرة على TalkController.java. هذه هي الطريقة التي يتم بها عرض صفحة المتحدث. هل يمكنك اكتشاف الثغرة الأمنية؟

لا نريد أن تعتمد على مقل عينيك! نريد من المطورين التحرك بسرعة وكتابة تعليمات برمجية آمنة.

أستخدم IntelliJ Idea لكتابة تطبيقات Java الخاصة بي. أستخدم أيضًا امتداد IDE الخاص بـ Snyk. والخبر السار هو أن هناك امتدادات Snyk IDE لجميع بيئات التطوير المتكاملة الشائعة، والتي تدعم مجموعة واسعة من لغات البرمجة.

إذا كنت تريد المتابعة وليس لديك حساب Snyk، فيمكنك إنشاء حساب مجانًا هنا.

هل ذكرت أن هذا التطبيق به الكثير من نقاط الضعف؟ وذلك لأننا نستخدمه في ورش العمل لدينا. ما أريد التركيز عليه هو الموجود في TalkController.java:

Automatically fix code vulnerabilities with AI

  1. يظهر أنه تم العثور على ثغرة أمنية في البرمجة النصية عبر المواقع (XSS)
  2. يُظهر اختلافًا عن أحد المشاريع الثلاثة مفتوحة المصدر التي لها نفس الثغرة الأمنية. وهذا يوضح كيفية إصلاحه (الجزء الأخضر).
  3. يشير الخط الأحمر المتعرج إلى مكان الثغرة الأمنية في الكود.

هذه كلها معلومات مفيدة للغاية لحل المشكلة. ومع ذلك، لاحظ وجود رمز صاعقة صغير (⚡️) على يسار الثغرة الأمنية رقم 1. يشير ذلك إلى أنه يمكن إصلاح هذه الثغرة الأمنية تلقائيًا.

إذا قمت بتعليق مؤشر الماوس فوق اللون الأحمر المتعرج، فسيظهر لك خيار إصلاح هذه المشكلة:

Automatically fix code vulnerabilities with AI
قبل أن ننظر إلى نتيجة Deep Code AI Fix، دعونا نلقي نظرة على ما سيفعله مساعد الطيار لنا.

إليك المطالبة التي قدمتها لمساعد الطيار في السطر 42 والرمز الذي يُدخله:

// guard against XSS
username = username.replaceAll("", ">");

قد يعمل هذا ضد الهجمات الساذجة، ولكن هل سيعمل ضد جميع أنواع هجمات XSS؟ لست متأكدا من ذلك. في الواقع، عندما أعيد تشغيل فحص Snyk، لا تزال ثغرة XSS موجودة.

دعونا نلقي نظرة على إصلاح Snyk:

String usernameStr = ""   HtmlUtils.htmlEscape(username)   "'s talks";
================================================


الآن، هذا يعجبني. يستخدم أسلوبًا اصطلاحيًا ومتوقعًا مع مكتبة Spring Boot المضمنة: HtmlUtils. أنا واثق من أن هذا سيؤدي إلى تطهير الإدخال: اسم المستخدم تمامًا. يُظهر فحص Snyk الجديد أن الثغرة الأمنية لم تعد موجودة.

Automatically fix code vulnerabilities with AI
ممتاز، في الواقع! لم يحل الإصلاح التلقائي لـ Snyk الثغرة الأمنية فحسب، بل قام بذلك بطريقة تتوافق مع إطار العمل المستخدم - Spring Boot في هذه الحالة.

DCAF لن يبطئك

في هذا المنشور، أوضحت لك كيف أن Deep Code AI Fix من Snyk يتجاوز مجرد نصيحة العلاج ويمكنه إجراء إصلاح نيابة عنك. يمكنك أيضًا التأكد من فائدة الإصلاح من خلال التأكد من أن الثغرة الأمنية الأصلية لم تعد موجودة.

في Snyk، نحن نحب مساعدي الذكاء الاصطناعي، لكنهم ليسوا جيدين جدًا في مجال الأمن. يُظهر بحثنا أن الجيل الجديد من الذكاء الاصطناعي يميل إلى توليد تعليمات برمجية غير آمنة بنفس المعدل الذي يفعله البشر تقريبًا - حوالي 40%. وهذا أمر منطقي لأن حلول Gen AI الخالصة مثل Copilot تقوم بتدريب نماذجها بشكل أساسي على التعليمات البرمجية الموجودة. إن نهج Snyk المختلط، والذي يتضمن الذكاء الاصطناعي الرمزي، والذكاء الاصطناعي العام، والتعلم الآلي، والتدريب المنسق من فريق الأمان لدينا، يعطي النتائج نهجًا للأمان أولاً.

بيان الافراج يتم استنساخ هذه المقالة على: https://dev.to/snyk/automally-fix-code-vulnerabilities-with-ai-ai-4dbf؟1 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3