
semgrep v1.175.0
تحليل ثابت خفيف الوزن للعديد من اللغات. اعثر على متغيرات الأخطاء باستخدام أنماط تشبه الكود المصدري.
فحص الشيفرة بسرعة مذهلة.
Semgrep هي أداة تحليل ساكن (static analysis) سريعة ومفتوحة المصدر تبحث في الشيفرة، وتكتشف الأخطاء، وتفرض حواجز أمان ومعايير برمجية. تدعم Semgrep أكثر من 30 لغة ويمكن تشغيلها داخل بيئة التطوير المتكاملة (IDE)، أو كفحص قبل الإيداع (pre-commit)، أو كجزء من سير عمل CI/CD.
Semgrep هي أداة grep دلالية للشيفرة. فبينما يطابق تشغيل grep "2" السلسلة النصية 2 فقط، فإن Semgrep تطابق x = 1; y = x + 1 عند البحث عن 2. تبدو قواعد Semgrep مثل الشيفرة التي تكتبها بالفعل؛ دون أشجار صياغة مجردة، أو صراع مع التعبيرات النمطية، أو لغات خاصة معقدة (DSLs).
لاحظ أنه في السياقات الأمنية، ستُفوّت Semgrep Community Edition العديد من النتائج الإيجابية الحقيقية لأنها لا تستطيع تحليل الشيفرة إلا ضمن حدود دالة أو ملف واحد. إذا كنت ترغب في استخدام Semgrep لأغراض أمنية (SAST أو SCA أو فحص الأسرار)، فإن Semgrep AppSec Platform موصى بها بشدة لأنها تضيف القدرات الحيوية التالية:
- قدرات تحليل أساسية محسّنة (عبر الملفات، وعبر الدوال، وإمكانية الوصول عبر تدفق البيانات) تقلل بشكل كبير من النتائج الإيجابية الخاطئة بنسبة 25% وتزيد من النتائج الإيجابية الحقيقية المكتشفة بنسبة 250%
- معالجة لاحقة سياقية للنتائج باستخدام Semgrep Assistant (الذكاء الاصطناعي) لتقليل الضوضاء بشكل إضافي بنسبة ~20%. بالإضافة إلى ذلك، يثري Assistant النتائج بإرشادات معالجة مخصصة خطوة بخطوة يجدها البشر قابلة للتنفيذ في أكثر من 80% من الحالات.
- سياسات قابلة للتخصيص وتكامل سلس مع سير عمل المطورين، مما يمنح فرق الأمان تحكمًا دقيقًا في مكان وزمان وكيفية عرض النتائج المختلفة للمطورين (IDE، تعليق PR، إلخ.)
منصة Semgrep AppSec تعمل فورًا مع أكثر من 20000 قاعدة ملكية عبر SAST وSCA والأسرار. قواعد Pro مكتوبة ومصانة من قبل فريق أبحاث الأمان في Semgrep وهي دقيقة للغاية، مما يعني أن فرق AppSec يمكنها أن تثق في تقديم النتائج مباشرة إلى المطورين دون إبطائهم.
يحلل Semgrep الكود محليًا على جهاز الكمبيوتر الخاص بك أو في بيئة البناء لديك: افتراضيًا، لا يتم تحميل الكود أبدًا. ابدأ ←.
دعم اللغات
Semgrep Code يدعم أكثر من 30 لغة، بما في ذلك:
Apex · Bash · C · C++ · C# · Clojure · Dart · Dockerfile · Elixir · HTML · Go · Java · JavaScript · JSX · JSON · Julia · Jsonnet · Kotlin · Lisp · Lua · OCaml · PHP · Python · R · Ruby · Rust · Scala · Scheme · Solidity · Swift · Terraform · TypeScript · TSX · YAML · XML · Generic (ERB, Jinja, إلخ.)
Semgrep Supply Chain يدعم 12 لغة عبر 15 مدير حزم، بما في ذلك:
C# (NuGet) · Dart (Pub) · Go (وحدات Go، go mod) · Java (Gradle, Maven) · Javascript/Typescript (npm, Yarn, Yarn 2, Yarn 3, pnpm) · Kotlin (Gradle, Maven) · PHP (Composer) · Python (pip, pip-tool, Pipenv, Poetry) · Ruby (RubyGems) · Rust (Cargo) · Scala (Maven) · Swift (SwiftPM)
لمزيد من المعلومات، راجع اللغات المدعومة.
البدء 🚀
للمستخدمين الجدد، نوصي بالبدء مع منصة Semgrep AppSec لأنها توفر واجهة مرئية، ومشروعًا تجريبيًا، وسير عمل لفرز النتائج واستكشافها، وتجعل الإعداد في CI/CD سريعًا. تظل عمليات الفحص محلية ولا يتم تحميل الكود. بدلاً من ذلك، يمكنك أيضًا البدء بواجهة سطر الأوامر والتنقل في مخرجات الطرفية لتشغيل عمليات بحث لمرة واحدة.
الخيار 1: البدء من منصة Semgrep Appsec (موصى به)
-
سجّل على semgrep.dev
-
استكشف النتائج التجريبية لتتعلم كيفية عمل Semgrep
-
افحص مشروعك بالانتقال إلى
Projects > Scan New Project > Run scan in CI -
اختر نظام التحكم في الإصدارات الخاص بك واتبع خطوات الإعداد لإضافة مشروعك. بعد هذا الإعداد، سيقوم Semgrep بفحص مشروعك بعد كل طلب سحب.
-
[اختياري] إذا كنت تريد تشغيل Semgrep محليًا، اتبع الخطوات في قسم واجهة سطر الأوامر.
ملاحظات:
إذا كانت هناك أي مشكلات، يرجى طلب المساعدة في Semgrep Slack.
الخيار 2: البدء من واجهة سطر الأوامر
-
ثبّت Semgrep CLI
# لنظام macOS # المفضل: التثبيت عبر pipx (https://pipx.pypa.io/stable/how-to/install-pipx.html) pipx install semgrep # المفضل: التثبيت عبر uv (https://docs.astral.sh/uv/getting-started/installation/) uv tool install semgrep # بأفضل جهد: التثبيت عبر homebrew (يُصان على أساس أفضل جهد؛ غالبًا ما يتأخر عن أحدث إصدار) brew install semgrep # لنظام Ubuntu/WSL/Linux/macOS $ python3 -m pip install semgrep # لتجربة Semgrep دون تثبيت، شغّله عبر Docker $ docker run -it -v "${PWD}:/src" semgrep/semgrep semgrep login $ docker run -e SEMGREP_APP_TOKEN=<TOKEN> --rm -v "${PWD}:/src" semgrep/semgrep semgrep ci -
شغّل
semgrep loginلإنشاء حسابك وتسجيل الدخول إلى Semgrep. هذه الخطوة اختيارية، لكن تسجيل الدخول إلى Semgrep يمنحك الوصول إلى: