Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
flawfinder — أداة تحليل ثابت لاكتشاف الثغرات الأمنية في كود مصدر C/C++ | Kitploit
أدوات/GitHubGitHub/david-a-wheeler/flawfinder
التحليل الثابتتحليل الشفرة الثابت (SAST)تحليل الثغرات الأمنيةتحليل الكودDevSecOpsالأفضل في تحليل الكود #15الأفضل في تحليل الشفرة الثابت (SAST) #12
GitHubdavid-a-wheeler/flawfinder

flawfinder

أداة تحليل ثابت لاكتشاف الثغرات الأمنية في كود مصدر C/C++

5808553منذ 3 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
عرض المستودع
مشاركة

حول

هذا هو "flawfinder" من تأليف David A. Wheeler.

Flawfinder هو برنامج بسيط يفحص كود المصدر بلغة C/C++ ويبلغ عن الثغرات الأمنية المحتملة. يمكن أن يكون أداة مفيدة لفحص البرامج بحثًا عن نقاط الضعف، ويمكنه أيضًا أن يكون بمثابة مقدمة بسيطة لأدوات تحليل كود المصدر الثابت بشكل عام. وهو مصمم ليكون سهل التثبيت والاستخدام. يدعم Flawfinder التعداد الشائع لنقاط الضعف (CWE) وهو متوافق رسميًا مع CWE. يدعم العديد من صيغ الإخراج بما في ذلك SARIF و SonarQube و HTML.

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

لمزيد من المعلومات، راجع موقع المشروع

المنصات

تم تصميم Flawfinder للاستخدام على أنظمة Unix/Linux/POSIX (بما في ذلك Cygwin والأنظمة المستندة إلى Linux و MacOS ومختلف أنظمة BSD) كأداة سطر أوامر. يتطلب Python (نختبر باستخدام Python 3؛ يجب أن يعمل Python 2.7 ولكنه غير مُختبر بشكل متزايد).

التثبيت

إذا كنت ترغب فقط في استخدامه، فيمكنك تثبيت Flawfinder باستخدام "pip" الخاص بـ Python أو باستخدام مدير الحزم لنظامك (يحتوي Flawfinder على حزم للعديد من الأنظمة). كما يدعم التثبيت السهل باتباع اصطلاحات تثبيت المصدر المعتادة make install. يحتوي الملف INSTALL.md على تعليمات تثبيت أكثر تفصيلاً. ليس عليك تثبيته لتشغيله، لكنه أسهل بهذه الطريقة.

الاستخدام

لتشغيل Flawfinder، ما عليك سوى إعطائه قائمة بملفات المصدر أو الدلائل لفحصها. على سبيل المثال، لفحص جميع الملفات في "src/" وتحتويها بشكل متكرر:

root@kitploit:~
flawfinder src/

لفحص جميع الملفات في الدليل الحالي وتحتويها بشكل متكرر:

root@kitploit:~
flawfinder ./

يتم إعطاء النتائج (الاكتشافات) مستوى خطر من 0 (خطر منخفض جدًا) إلى 5 (خطر مرتفع). افتراضيًا، يتم عرض النتائج ذات مستوى الخطر 1 أو أعلى. يمكنك إظهار النتائج ذات مستوى الخطر 4 أو أعلى فقط في الدليل الحالي وتحتويها بهذه الطريقة:

root@kitploit:~
flawfinder --minlevel 4 ./

تصف صفحة الدليل (flawfinder.1 أو flawfinder.pdf) كيفية استخدام Flawfinder (بما في ذلك خياراته المختلفة) والمعلومات ذات الصلة (مثل كيفية دعمه لـ CWE). على سبيل المثال، يقوم الخيار --html بإنشاء مخرجات بتنسيق HTML. يعطي الخيار --help قائمة موجزة بالخيارات.

أخطاء ترميز الأحرف

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

ومع ذلك، من الممكن أن يتوقف Flawfinder إذا كانت هناك مشكلة في ترميز الأحرف وكنت تستخدم Python3. العرض المعتاد هو رسائل خطأ مثل هذه: Error: encoding error in FILENAME 'ENCODING' codec can't decode byte ... in position ...: invalid start byte

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

إذا كانت لديك هذه المشكلة، فراجع صفحة دليل Flawfinder لمجموعة من الحلول المختلفة. من أبسط الحلول هو ببساطة تحويل كود المصدر وتكوين النظام إلى UTF-8. يمكنك تحويل كود المصدر إلى UTF-8 باستخدام أدوات مثل الأداة النظامية iconv أو برنامج Python cvt2utf; يمكنك تثبيت cvt2utf باستخدام pip install cvt2utf.

تحت الغطاء

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

إجراء GitHub الخاص بـ Flawfinder

يوجد إجراء لـ GitHub متاح لمن يستخدمون GitHub.

الاستخدام

راجع action.yml

قم بإنشاء ملف .yml ضمن .github/workflows بالمحتوى التالي:

عرض توضيحي أساسي:

root@kitploit:~
- name: flawfinder_scan
  uses: david-a-wheeler/[email protected]
  with:
    arguments: '--sarif ./'
    output: 'flawfinder_results.sarif'

يمكنك إضافة العديد من الإضافات الأخرى إلى الوسائط. على سبيل المثال، --error-level=4 سيؤدي إلى إرجاع خطأ إذا وجد Flawfinder ثغرة من المستوى 4 أو أعلى. لاحظ رقم الإصدار بعد رمز @؛ يمكنك اختيار إصدار مختلف.

يمكنك العثور على اسم الإجراء وسلسلة الإصدار من Marketplace بالنقر على زر "Use latest/xxx version".

خيارات الإدخال:

  • arguments: وسائط أوامر Flawfinder
  • output: اسم ملف الإخراج الخاص بـ Flawfinder. يمكن رفعه إلى GitHub.

التكامل مع SonarQube

يتكامل Flawfinder مع البرنامج المساعد cxx الخاص بـ SonarQube. أضف قواعد Flawfinder في SonarQube ضمن "Administration > CXX External Analyers > Other Rule Definitions" عن طريق تشغيل Flawfinder مرة واحدة باستخدام الخيارات التالية.

root@kitploit:~
flawfinder --listrules --sonar [...]

ثم في CI/CD الخاص بك، قم بتشغيل Flawfinder بهذا الشكل لإنشاء مخرجات يمكن لـ SonarQube فهمها.

root@kitploit:~
flawfinder -CDQ --sonar [...]

ستحتاج إلى توجيه الإخراج إلى ملف يمكنك تحميله بعد ذلك إلى SonarQube عبر خيار sonar.cxx.other.reportPaths.

المساهمات

نحن نحب المساهمات! لمزيد من المعلومات حول المساهمة، راجع الملف CONTRIBUTING.md.

الترخيص

تم إصدار Flawfinder بموجب ترخيص GNU GPL الإصدار 2 أو الأحدث (GPL-2.0+). راجع ملف COPYING للحصول على معلومات الترخيص.

تنزيل الأداة