
ماسح ضوئي للثغرات الأمنية ثابت يعتمد على Tree-sitter مع مطابقة الأنماط وتحليل تدفق التلوث للكود المصدري متعدد اللغات. يخرج النتائج كنص، JSON، CSV، أو SARIF للتكامل مع CI/CD.
| اللغة | الامتدادات | المحلل اللغوي | القواعد المضمنة |
|---|---|---|---|
| Python | .py, .pyw, .pyi, .pyx | نعم | نعم |
| JavaScript | .js, .mjs, .cjs, .jsx, .vue, .svelte | نعم | نعم |
| TypeScript / TSX | .ts, .tsx, .mts, .cts | نعم | نعم (قواعد JS) |
| Java | .java | نعم | نعم |
| PHP | .php, .phtml | نعم | نعم |
| C# | .cs, .csx | نعم | نعم |
| Go | .go | نعم | نعم |
| Ruby | .rb | نعم | نعم |
| HTML | .html, .htm, .twig, .ejs, .hbs, ... | نعم | نعم |
| قوالب Django | .html (صيغة Django) | نعم | نعم (قواعد HTML) |
غير مدعوم حالياً: Razor (.cshtml), C/C++ (.c, .h).
المتطلبات الأساسية:
البناء من المصدر:
git clone https://github.com/Corgea/Sighthound.git
cd Sighthound
cargo build --release
مسار الثنائي: target/release/sighthound
تصدير الإصدار المتوافق مع حاويات لينكس:
DOCKER_BUILDKIT=1 docker build \
--target export \
--output type=local,dest=./sighthound_release \
.
أو قم بتشغيل ./build_all_platforms.sh.
# الكشف التلقائي عن اللغات وتشغيل القواعد المضمنة
cargo run --bin sighthound -- /path/to/project
# لغة محددة + مسار قواعد مخصص
cargo run --bin sighthound -- /path/to/project python rules/python
# فحص تلوث فقط وإخراج JSON
cargo run --bin sighthound -- --taint-analysis --output-format json /path/to/project > findings.json
# إخراج SARIF لفحص كود GitHub
cargo run --bin sighthound -- --output-format sarif /path/to/project > results.sarif
شكل CLI:
sighthound [OPTIONS] <ROOT_DIR> [LANGUAGE] [RULES_PATH]
شغّل sighthound --help للحصول على قائمة الخيارات الكاملة.
صيغة الإخراج sarif تكتب SARIF 2.1.0، التي يستوعبها فحص كود GitHub مباشرة. قم برفعها من سير عمل لتظهر النتائج داخل طلب السحب وفي علامة التبويب "الأمان" بالمستودع:
قم بتشغيل الفحص من جذر المستودع واستخدم . (أو المسار المطلق لجذر المستودع) كـ <ROOT_DIR> لتبقى روابط عناصر SARIF نسبية للمستودع.
- name: تشغيل Sighthound
run: sighthound --output-format sarif . > results.sarif
- name: رفع SARIF
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
القواعد مكتوبة بصيغة RON وتدعم كلاً من:
mode: "search" لمطابقة الأنماطmode: "taint" لتحليل المصدر/المصب/المعقمابدأ من هنا:
الأوامر الأساسية:
make check # إصلاح + تنسيق + فحص + اختبار + تقرير الكبت
make pre-commit # ملفات Rust المعدة (hook)
make pre-push # فحوصات بوابة الدفع
make ci # خط أنابيب CI صارم
بوابات جودة إضافية:
make complexity
make audit
make acceptance
cargo harness coverage --min=0
cargo harness crap --max=30