
مجموعة من قواعد Semgrep الخاصة بي لتسهيل أبحاث الثغرات الأمنية.
«سطح الهجوم هو الثغرة. العثور على خطأ هناك ليس سوى تفصيل.»
-- Mark Dowd
«بعض التفاصيل أكثر أهمية من غيرها.»
-- Fedor G. Pikus
مجموعة من قواعد Semgrep الخاصة بي لتسهيل أبحاث الثغرات الأمنية.
# فحص ذو أولوية عالية (مكاسب سريعة)
semgrep --severity ERROR --config "p/0xdea"
# فحص ذو أولوية عالية ومتوسطة (موصى به)
semgrep --severity ERROR --severity WARNING --config "p/0xdea"
# فحص كامل (قد يتضمن نتائج هامشية ومزيدًا من الإيجابيات الكاذبة)
semgrep --config "p/0xdea"
بدلًا من ذلك، يمكنك استنساخ مستودع GitHub هذا محليًا وتشغيل:
# فحص كامل
semgrep --config semgrep-rules/rules /path/to/source
# فحص قاعدة محددة
semgrep --config semgrep-rules/rules/c/command-injection.yaml /path/to/source
[!TIP] حدد مفتاح
--no-git-ignoreلفحص الملفات بغض النظر عن حالة تتبع git أو قواعد.gitignore.
لتجربة أكثر سلاسة، أوصي بحفظ مخرجات فحص Semgrep بصيغة SARIF واستخدام SARIF Explorer في VS code:
semgrep --sarif --sarif-output=/path/to/source/SEMGREP.sarif --config semgrep-rules/rules /path/to/source
code /path/to/source # ثم افتح ملف SEMGREP.sarif في VS code باستخدام SARIF Explorer
انظر أيضًا مثال على مخرجات SARIF المرفقة.
تم اختباره مع Semgrep CLI 1.169.0.
مجموعة قواعد C (وأحيانًا C++) مختبرة ميدانيًا.
gets.strcpy، stpcpy، strcat.sprintf وvsprintf.scanf.strncat.strncpy، memcpy، snprintf، والنسخ المختلفة.sizeof على مؤشر بدلاً من هدفه.strncpy وstpncpy.snprintf وvsnprintf.strlcpy وstrlcat.strlen إلى short قد يكون خطيرًا.