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

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





المصدر: يعد



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



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





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



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



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



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



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



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



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



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



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



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



سنستخدم هنا Graudit ، وهي أداة مساعدة بسيطة لسطر الأوامر ستسمح لنا بالعثور على نقاط الضعف في قاعدة التعليمات البرمجية الخاصة بنا. إنه يدعم لغات مختلفة ، لكن مجموعتها محدودة. تم تطوير 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 / signature:



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


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











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



مزايا وعيوب Graudit



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



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



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



بداية...



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






إعلان



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






All Articles