كيفية استخدام أداة بسيطة للعثور على نقاط الضعف في كود البرنامج

يدعم Graudit لغات برمجة متعددة ويسمح لك بدمج اختبار أمان قاعدة التعليمات البرمجية مباشرةً في عملية التطوير.

كيفية استخدام أداة بسيطة للعثور على نقاط الضعف في كود البرنامج
المصدر: Unsplash (ماركوس سباسك)

يعد الاختبار جزءًا مهمًا من دورة حياة تطوير البرمجيات. هناك أنواع عديدة من الاختبارات، كل منها يحل مشكلته الخاصة. اليوم أريد أن أتحدث عن إيجاد مشاكل أمنية في التعليمات البرمجية.

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

هناك طرق مختلفة لحل المشكلات الأمنية، مثل اختبار أمان التطبيقات الثابتة (SAST)، واختبار أمان التطبيقات الديناميكي (DAST)، واختبار أمان التطبيقات التفاعلية (IAST)، وتحليل تكوين البرامج، وما إلى ذلك.

يحدد اختبار أمان التطبيق الثابت الأخطاء في التعليمات البرمجية المكتوبة بالفعل. لا يتطلب هذا الأسلوب تشغيل التطبيق، ولهذا يطلق عليه التحليل الثابت.

سأركز على تحليل التعليمات البرمجية الثابتة وأستخدم أداة بسيطة مفتوحة المصدر لتوضيح كل شيء عمليًا.

لماذا اخترت أداة مفتوحة المصدر لتحليل أمان التعليمات البرمجية الثابتة

هناك عدة أسباب لذلك: أولاً، إنه مجاني لأنك تستخدم أداة تم تطويرها بواسطة مجتمع من الأشخاص ذوي التفكير المماثل الذين يرغبون في مساعدة المطورين الآخرين. إذا كان لديك فريق صغير أو شركة ناشئة، فلديك فرصة رائعة لتوفير المال باستخدام برنامج مفتوح المصدر لاختبار أمان قاعدة التعليمات البرمجية الخاصة بك. ثانيًا، فهو يلغي الحاجة إلى تعيين فريق DevSecOps منفصل، مما يقلل من تكاليفك بشكل أكبر.

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

ولكن قد تكون هناك أوقات تحتاج فيها إلى ميزة غير متوفرة في الأداة التي تختارها. في هذه الحالة، لديك الفرصة لتقسيم الكود الخاص به وتطوير أداتك الخاصة بناءً عليه مع الوظائف التي تحتاجها.

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

استخدام Graudit لتحليل أمن التعليمات البرمجية

يمكنك استخدام العديد من الأدوات مفتوحة المصدر لتحليل التعليمات البرمجية الثابتة، ولا توجد أداة عالمية لجميع لغات البرمجة. يتبع مطورو بعضهم توصيات OWASP ويحاولون تغطية أكبر عدد ممكن من اللغات.

هنا سوف نستخدم غراوديت، أداة مساعدة بسيطة لسطر الأوامر ستسمح لنا بالعثور على نقاط الضعف في قاعدة التعليمات البرمجية الخاصة بنا. وهو يدعم لغات مختلفة، ولكن لا تزال مجموعتها محدودة. تم تطوير Graudit استنادًا إلى الأداة المساعدة grep، والتي تم إصدارها بموجب ترخيص GNU.

هناك أدوات مماثلة لتحليل التعليمات البرمجية الثابتة - أداة التدقيق التقريبي للأمان (RATS)، وأداة تحليل تطبيقات الويب Securitycompass (SWAAT)، وأداة اكتشاف الأخطاء، وما إلى ذلك. لكن Graudit مرن للغاية ولديه الحد الأدنى من المتطلبات الفنية. ومع ذلك، قد تكون لديك مشكلات لا يستطيع Graudit حلها. ثم يمكنك البحث عن خيارات أخرى هنا في هذه القائمة.

يمكننا دمج هذه الأداة في مشروع معين، أو إتاحتها لمستخدم محدد، أو استخدامها في وقت واحد في جميع مشاريعنا. وهذا أيضًا هو المكان الذي تلعب فيه مرونة Graudit دورًا. لذلك دعونا نستنسخ الريبو أولاً:

$ git clone https://github.com/wireghoul/graudit

لنقم الآن بإنشاء رابط رمزي لـ Graudit لاستخدامه في تنسيق الأوامر

$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit

دعنا نضيف اسمًا مستعارًا إلى .bashrc (أو أي ملف تكوين تستخدمه):

#------ .bashrc ------
alias graudit="~/bin/graudit"

اعادة التشغيل:

$ source ~/.bashrc # OR
$ exex $SHELL

دعونا نتحقق مما إذا كان التثبيت ناجحًا:

$ graudit -h

إذا رأيت شيئا مماثلا، فكل شيء على ما يرام.

كيفية استخدام أداة بسيطة للعثور على نقاط الضعف في كود البرنامج

سأختبر أحد مشاريعي الحالية. قبل تشغيل الأداة، يجب تمرير قاعدة بيانات تتوافق مع اللغة التي كُتب بها مشروعي. توجد قواعد البيانات في المجلد ~/gradit/signatures:

$ graudit -d ~/gradit/signatures/js.db

لذلك، قمت باختبار ملفين js من مشروعي، وعرض Graudit معلومات حول نقاط الضعف في الكود الخاص بي على وحدة التحكم:

كيفية استخدام أداة بسيطة للعثور على نقاط الضعف في كود البرنامج

كيفية استخدام أداة بسيطة للعثور على نقاط الضعف في كود البرنامج

يمكنك محاولة اختبار مشاريعك بنفس الطريقة. يمكنك الاطلاع على قائمة قواعد البيانات للغات البرمجة المختلفة هنا.

مزايا وعيوب Graudit

يدعم Graudit العديد من لغات البرمجة. ولذلك، فهي مناسبة لمجموعة واسعة من المستخدمين. يمكن أن تتنافس بشكل مناسب مع أي نظائرها المجانية أو المدفوعة. ومن المهم جدًا أن يستمر إجراء التحسينات على المشروع، ولا يساعد المجتمع المطورين فحسب، بل يساعد أيضًا المستخدمين الآخرين الذين يحاولون اكتشاف الأداة.

هذه أداة سهلة الاستخدام، ولكن حتى الآن لا يمكنها دائمًا تحديد المشكلة بالضبط مع جزء مشبوه من التعليمات البرمجية. يواصل المطورون تحسين Graudit.

لكن على أية حال، من المفيد الانتباه إلى المشكلات الأمنية المحتملة في التعليمات البرمجية عند استخدام أدوات مثل هذه.

البداية ...

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

كإعلان

خادم افتراضي خاص موثوق وسيسمح لك الاختيار الصحيح لخطة التعريفة بأن تكون أقل تشتيتًا عن التطوير بسبب المشكلات غير السارة - كل شيء سيعمل دون إخفاقات وبوقت تشغيل مرتفع جدًا!

كيفية استخدام أداة بسيطة للعثور على نقاط الضعف في كود البرنامج

المصدر: www.habr.com

إضافة تعليق