سؤال

أحاول استخدام Fortify Source Code Analyzer لمشروع بحثي في ​​مدرستي لاختبار أمان تطبيقات ويب Java مفتوحة المصدر.أنا أعمل حاليًا على Apache Lenya.أنا أعمل مع الإصدار المستقر الأخير (Lenya v2.0.2).

يوجد داخل الدليل الجذر ملف اسمه build.sh.يتم استدعاء هذا الملف لإنشاء Lenya باستخدام إصدار Ant الذي يأتي مع الإصدار (في ملف tools/bin مجلد).يمكنني بناء Lenya بشكل جيد عندما أركض ./build.sh.لذلك، من المفترض أن تشغيل الأمر التالي في Fortify سيعمل:

sourceanalyzer -b lenya -Xmx1200M touchless ./build.sh

ومع ذلك، عندما أحاول تشغيل:

sourceanayzer -b lenya -Xmx1200M -scan -f lenya.fpr

انا حصلت:

لم يتم العثور على معرف البناء Lenya.

نظرت إلى buid.sh الملف ولاحظت أنه كان يقوم فقط بإعادة تعيين متغيرات خيارات ant home وclasspath وant الحالية، وتشغيل أمر ant build، وإعادة تعيين القيم مرة أخرى إلى إعداداتها الافتراضية.لذلك قمت بإعادة تعيين جميع المتغيرات يدويًا (بدون البرنامج النصي) بدلاً من تشغيل البرنامج النصي وتشغيله:

sourceanalyzer -b lenya -Xmx1200M touchless tools/bin/ant -logger org.apache.tools.ant.NoBannerLogger

ثم ركضت:

sourceanalyzer -b lenya -Xmx1200M -scan -f lenya.fpr

ولكن حصلت على نفس الخطأ.لست متأكدًا مما إذا كان هذا بسبب أنني أفعل شيئًا خاطئًا أو إذا كان شيئًا لا تفعله Fortify بشكل صحيح.أي فكرة ستكون عظيمة.

هل كانت مفيدة؟

المحلول

لست متأكدًا مما إذا كان بإمكانك الوصول إلى وثائق Fortify، ولكن هذا سيساعدك بالتأكيد.يجب عليك الرجوع إلى دليل مستخدم SCA لفهم كيفية استخدام المصدر القابل للتنفيذ.

لاختصار الأمور، هناك طريقتان للحصول على ملف FPR:

  1. (الطريق الطويل) اكتب برنامجًا نصيًا لترجمة كود المصدر وتحليله من خلال توفير مسار الكود المصدري ومسار الفصل إلى المصدر القابل للتنفيذ.
  2. (الطريقة المختصرة) استخدم SCACompiler بدلاً من javac كمترجم.ستحتاج إلى تعديل البرنامج النصي للبناء لهذا الغرض.

أفضّل الأول نظرًا لقابليته للتخصيص عند التعامل مع قواعد الأكواد الكبيرة.

ملاحظة:ما هو إصدار Fortify هذا؟

نصائح أخرى

لا تستخدم الأمر touchless، المخصص لتكامل C/C++.نظرًا لأن Lenya مكتوب بلغة Java، فمن الأفضل استخدام الأوامر الأخرى.جرب هذا لخطوة الترجمة الأولى (ابدأ من قاعدة lenya dir الخاصة بك):

sourceanalyzer -b lenya -Xmx1200M -source 1.5 -cp "**/*.jar" "**/*"

يمكن للأمر الذي استخدمته بالفعل أن يعمل مع إصدارات Java، إلا أنه يحتوي على بعض القيود.يؤدي استخدام غلاف البناء بدون لمس إلى إنشاء عدد من أغلفة المترجم، على سبيل المثال.لـ javac، ويضع الأغلفة في مقدمة متغير بيئة PATH.

إذا كان البرنامج النصي build.sh الخاص بك يحتوي على مراجع مؤهلة بالكامل لـ javac، على سبيل المثال /usr/java/bin/javac، فلن يعمل تكامل البناء بدون لمس.

تعليمات user233276 هي الأكثر فائدة على نطاق واسع.إذا كنت ترغب في تجربة تكامل بناء Fortify SCA، فإنني أقترح أن تكون التقنية هي تعديل build.sh (انظر http://svn.apache.org/viewvc/lenya/trunk/build.sh?view=markup&pathrev=400414) وتغيير السطر 43 من:

"$ANT_HOME/bin/ant" -logger org.apache.tools.ant.NoBannerLogger -emacs $@

ل:

sourceanalyzer -b Lenya "$ANT_HOME/bin/ant" -logger org.apache.tools.ant.NoBannerLogger -emacs $@

راجع دليل مستخدم Fortify SCA للتعرف على الأنواع الثلاثة من تكامل النمل:

  1. تجاوز خاصية build.compiler:

    ant -lib sourceanalyzer.jar {تحصين خيارات النمل} {خيارات النمل}

  2. اختصار لما سبق:

    sourceanalyzer -b {Fortify options} النملة {ant options}

  3. أو، إذا قمت بإنشاء build.xml مخصص كما هو موضح في الملحق:

    ant -lib sourceanalyzer.jar {ant options}

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top