
titus v1.2.8
ماسح الأسرار عالي الأداء. CLI، مكتبة Go، إضافة Burp Suite، وإضافة Chrome. 487 قاعدة كشف مع التحقق المباشر من بيانات الاعتماد.
Titus: ماسح أسرار عالي الأداء
Titus هو ماسح أسرار عالي الأداء يكتشف بيانات الاعتماد ومفاتيح API والرموز المميزة في الشيفرة المصدرية والملفات وسجل git. يأتي مزوّدًا بـ 487 قاعدة كشف تغطي مئات الخدمات وأنواع بيانات الاعتماد، مستمدة من NoseyParker وKingfisher. يعمل Titus كأداة سطر أوامر، ومكتبة Go، وإضافة Burp Suite، وإضافة متصفح Chrome — وجميعها تشترك في نفس محرك الكشف ومجموعة القواعد.
صُمم Titus لمهندسي الأمن واختباري الاختراق وفرق DevSecOps، وهو يجمع بين مطابقة التعبيرات النمطية المعجّلة بـ Hyperscan/Vectorscan والتحقق المباشر من بيانات الاعتماد للعثور على الأسرار المسرّبة والتحقق منها عبر قاعدة شيفرتك بالكامل.
جدول المحتويات
- لماذا Titus؟
- التثبيت
- البدء السريع
- خيارات الفحص
- تقييم النتائج
- مكتبة Go
- إضافة Burp Suite
- إضافة المتصفح
- البناء من المصدر
- المساهمة
- الترخيص
لماذا Titus؟
- فحص سريع للأسرار: مطابقة التعبيرات النمطية معجّلة بـ Hyperscan/Vectorscan عند توفّرها، مع بديل مكتوب بالكامل بلغة Go لضمان قابلية النقل على أي منصة.
- تغطية واسعة لكشف بيانات الاعتماد: 487 قاعدة تكشف مفاتيح API والرموز المميزة وبيانات الاعتماد الخاصة بـ AWS وGCP وAzure وGitHub وSlack وقواعد البيانات وأنظمة CI/CD ومئات الخدمات الأخرى.
- التحقق المباشر من الأسرار: يتم فحص الأسرار المكتشفة مقابل واجهات API المصدرية الخاصة بها للتأكد مما إذا كانت نشطة، مما يقلل الإيجابيات الكاذبة ويعطي الأولوية للمعالجة.
- تقييم الخطورة المبني على المخاطر: تحصل كل نتيجة على درجة رقمية (0–100) ومستوى خطورة (info → critical). تُضبط الدرجات بناءً على البيانات الوصفية للقواعد الثابتة وسياق الوصول إلى الشيفرة واستدعاءات API المباشرة التي تقيس نطاق التأثير الفعلي لبيانات الاعتماد — بحيث تظهر النتائج الأكثر خطورة دائمًا في المقدمة.
- فحص صور الحاويات: افحص صور Docker وOCI مباشرة من أي سجل أو ملف tarball أو دليل تخطيط OCI — دون الحاجة إلى Docker daemon أو ملف ثنائي.
- واجهات متعددة لكل سير عمل: افحص من سطر الأوامر، أو ضمّنه كمكتبة Go، أو افحص حركة HTTP بشكل سلبي في Burp Suite، أو افحص صفحات الويب في Chrome أثناء اختبار أمن التطبيقات.
- استخراج الملفات الثنائية: استخرج وافحص الأسرار من مستندات Office وملفات PDF والأرشيفات (zip، tar، 7z) وتطبيقات الجوال (APK، IPA) وإضافات المتصفح وغيرها.
التثبيت
نزّل ملفًا ثنائيًا جاهزًا من صفحة الإصدارات، أو ابنِ من المصدر:```bash make build
سيكون الملف التنفيذي في `dist/titus`.
## البدء السريع```bash
# Scan a file for secrets
titus scan path/to/file.txt
# Scan a directory for leaked credentials
titus scan path/to/directory
# Scan a public GitHub repository (no token needed)
titus scan github.com/org/repo
# Scan a public GitLab project (no token needed)
titus scan gitlab.com/namespace/project
# Scan git history for secrets in past commits
titus scan --git path/to/repo
# Scan a Docker / OCI image (pulled from a registry — no docker daemon required)
titus scan --docker alpine:latest
# Validate detected secrets against source APIs
titus scan path/to/code --validate
تُكتب النتائج إلى مخزن بيانات (titus.ds افتراضيًا) وتُطبع إلى وحدة التحكم.
خيارات الفحص
فحص GitHub وGitLab
افحص المستودعات العامة مباشرةً عبر URL — دون الحاجة إلى رمز API:```bash
Scan a GitHub repository
titus scan github.com/kubernetes/kubernetes
Scan a GitLab project
titus scan gitlab.com/gitlab-org/cli
Full URLs work too
titus scan https://github.com/org/repo titus scan https://gitlab.com/namespace/project.git
بالنسبة للفحص على مستوى المؤسسة أو على مستوى المستخدم، استخدم الأوامر الفرعية المخصصة:```bash
# Scan all public repos in a GitHub org
titus github --org kubernetes
# Scan all repos in a GitHub org with a token (private repos + higher rate limits)
titus github --org kubernetes --token $GITHUB_TOKEN
# Scan all repos for a GitHub user
titus github --user octocat
# Scan all projects in a GitLab group
titus gitlab scan --group mygroup --token $GITLAB_TOKEN
# Scan a single repo with git history (finds deleted secrets)
titus github owner/repo --git
الرموز (Tokens) اختيارية للمستودعات العامة. قم بتعيين GITHUB_TOKEN أو GITLAB_TOKEN (أو استخدم --token) للوصول إلى المستودعات الخاصة وحدود معدل API الأعلى.
فحص صور Docker / OCI
افحص صور الحاويات مباشرةً — لا حاجة إلى docker daemon ولا إلى ملف docker التنفيذي. يقوم Titus بسحب الصور مباشرةً من أي سجل OCI عبر HTTPS (باستخدام بيانات الاعتماد من ~/.docker/config.json)، أو يقرأ الصور من أرشيف docker save المحلي أو من دليل تخطيط صور OCI. ثم يقوم بفحص بيانات تعريف بيان الصورة/الإعدادات وكل ملف عادي في كل طبقة، بما في ذلك الملفات الموجودة في الطبقات السفلى التي حذفتها الطبقات اللاحقة (نظرًا لأن الأسرار يمكن أن تظل قابلة للاسترداد من سجل الصورة).```bash
Pull from a registry and scan
titus scan --docker alpine:latest titus scan docker://ghcr.io/owner/repo:tag
Scan an image saved to a tarball:
docker save my-app:latest -o my-app.tar
podman save my-app:latest -o my-app.tar
titus scan --docker ./my-app.tar
Scan an OCI image layout directory:
docker buildx build --output type=oci,dest=./img/ .
skopeo copy docker://my-app:latest oci:./img:latest
titus scan --docker ./img/
المصادقة تستخدم إعدادات Docker / Podman الموجودة لديك (`~/.docker/config.json`، `${XDG_RUNTIME_DIR}/containers/auth.json`). السجلات الخاصة التي تحتاج إلى تسجيل دخول جديد يجب أولاً المصادقة عليها باستخدام `docker login` (أو `podman login`، أو `crane auth login`) — لا يطلب titus بيانات الاعتماد.
### عرض نتائج الفحص
استخدم `report` لإعادة قراءة النتائج من فحص سابق:```bash
# Human-readable summary of detected secrets
titus report
# JSON output for programmatic processing
titus report --format json
# SARIF output for CI/CD integration with GitHub Advanced Security
titus report --format sarif
# Report from a specific datastore
titus report --datastore path/to/titus.ds
يمكنك أيضًا التحكم في تنسيق الإخراج وقت الفحص باستخدام --format:```bash
titus scan path/to/code --format json
### التحقق من الأسرار المكتشفة
مرّر `--validate` أثناء الفحص للتحقق من الأسرار المكتشفة مقابل واجهات API المصدرية الخاصة بها:```bash
titus scan path/to/code --validate
يتم تشغيل التحقق بشكل متزامن (4 عمال افتراضيًا، قابل للتكوين باستخدام --validate-workers) ويضع علامة على كل اكتشاف كمؤكد أو مرفوض أو غير معروف.
قواعد كشف التصفية```bash
List all available detection rules
titus rules list
Scan with only specific rules (e.g., AWS and GCP credentials)
titus scan path/to/code --rules-include "aws,gcp"
Exclude rules by pattern
titus scan path/to/code --rules-exclude "kingfisher.generic"
Use a custom rules file for organization-specific secrets
titus scan path/to/code --rules path/to/custom-rules.yaml
Opt in to rules marked noisy: true (high false-positive rate, off by default)
titus scan path/to/code --include-noisy
### استخراج الأسرار من الملفات الثنائية
يستطيع Titus استخراج النص من صيغ الملفات الثنائية وفحص المحتويات بحثًا عن الأسرار:```bash
# Extract and scan all supported binary formats
titus scan path/to/files --extract=all
# Target specific formats
titus scan path/to/files --extract=xlsx,docx,pdf,zip
تشمل الصيغ المدعومة مستندات Office (xlsx، docx، pptx، odp، ods، odt)، وملفات PDF، ودفاتر Jupyter، وقواعد بيانات SQLite، والبريد الإلكتروني (eml، rtf)، والأرشيفات (zip، tar، tar.gz، jar، war، ear، apk، ipa، crx، xpi، 7z). يتم استخراج الأرشيفات بشكل تكراري حتى حدود العمق والحجم القابلة للتكوين.```bash
Tune extraction limits for large codebases
titus scan path/to/files --extract=all
--extract-max-size 10MB
--extract-max-total 100MB
--extract-max-depth 5
بالنسبة لقواعد بيانات SQLite، يستخرج Titus النص من جميع الجداول (1000 صف لكل جدول افتراضيًا). استخدم `--sqlite-row-limit` للتعديل:```bash
# Full dump of all SQLite tables (no row limit)
titus scan path/to/files --extract=all --sqlite-row-limit 0
# Custom row limit per table
titus scan path/to/files --extract=all --sqlite-row-limit 5000
تقييم النتائج
كل نتيجة ينتجها Titus تحمل درجة رقمية من 0–100 ومستوى خطورة:
| الدرجة | الخطورة |
|---|---|
| 0–20 | info |
| 21–40 | low |
| 41–60 | medium |
| 61–80 | high |
| 81–100 | critical |
تبدأ الدرجات من base_score الخاص بالقاعدة ويتم تعديلها بواسطة المعدِّلات — وهي شروط ترفع أو تخفض الدرجة بناءً على ما هو معروف عن بيانات الاعتماد:```bash
Score findings using static rule metadata only (no network calls)
titus scan path/to/code
Score findings AND make live API calls to verify credential blast radius
(calls AWS STS/IAM and GitHub API for supported credential types)
titus scan path/to/code --score-scope
Override the accessibility context (default: auto-detected from git remote)
titus scan path/to/code --accessibility public # no penalty for public repos titus scan path/to/code --accessibility private # -25 penalty (default for local scans)
يأتي Titus مزودًا بمقيّمات YAML لبيانات اعتماد AWS، ورموز GitHub PATs، ورموز Slack، بالإضافة إلى مقيمّات SDK المبنية على Go التي تُجري تعدادًا مباشرًا لسياسات IAM (AWS) وفحوصات أذونات المستودعات (رموز GitHub PATs الدقيقة) عند تمكين `--score-scope`.
راجع [docs/scoring.md](https://github.com/praetorian-inc/titus/blob/main/docs/scoring.md) للحصول على المرجع الكامل: مستويات الخطورة، وأنواع المعدّلات، وتفاصيل المقيمّات المدمجة، وكيفية كتابة مقيمّات YAML أو Go الخاصة بك.
## مكتبة Go لاكتشاف الأسرار
يمكن استيراد Titus كمكتبة Go لإضافة اكتشاف الأسرار إلى أدواتك وخطوط أنابيبك الخاصة.```bash
go get github.com/praetorian-inc/titus
التثبيت
المتطلبات الأساسية
- Python 3.8 أو أحدث
- pip (مدير حزم Python)
- Git
التثبيت من المصدر
# استنساخ المستودع
git clone https://github.com/yourusername/yourtool.git
cd yourtool
# إنشاء بيئة افتراضية
python3 -m venv venv
source venv/bin/activate # على Windows: venv\Scripts\activate
# تثبيت التبعيات
pip install -r requirements.txt
# تثبيت الأداة
pip install -e .
التثبيت عبر pip
pip install yourtool
التثبيت عبر Docker
# بناء صورة Docker
docker build -t yourtool .
# تشغيل الحاوية
docker run -it --rm yourtool --help
الاستخدام
الاستخدام الأساسي
# عرض قائمة المساعدة
yourtool --help
# تشغيل فحص أساسي
yourtool scan --target example.com
# تشغيل فحص مع خيارات مخصصة
yourtool scan --target example.com --output results.json --verbose
أمثلة متقدمة
# فحص عدة أهداف من ملف
yourtool scan --input targets.txt --threads 10
# استخدام ملف تكوين مخصص
yourtool scan --config custom_config.yaml
# تصدير النتائج بتنسيقات متعددة
yourtool scan --target example.com --format json,xml,csv
التكوين
ملف التكوين
يمكن تكوين الأداة باستخدام ملف config.yaml:
# إعدادات عامة
general:
timeout: 30
threads: 5
verbose: false
# إعدادات الفحص
scan:
modules:
- port_scan
- service_detection
- vulnerability_check
exclude:
- 192.168.1.1
- 10.0.0.0/8
# إعدادات الإخراج
output:
format: json
directory: ./results
overwrite: false
متغيرات البيئة
# تعيين متغيرات البيئة
export YOURTOOL_API_KEY="your_api_key_here"
export YOURTOOL_TIMEOUT=60
export YOURTOOL_DEBUG=true
الوحدات
وحدة فحص المنافذ
yourtool scan --module port_scan --target example.com --ports 1-1000
وحدة كشف الخدمات
yourtool scan --module service_detection --target example.com
وحدة فحص الثغرات
yourtool scan --module vulnerability_check --target example.com --cve-db ./cve_database.json
واجهة برمجة التطبيقات
استخدام Python API
from yourtool import Scanner, Config
# إنشاء تكوين
config = Config(
timeout=30,
threads=5,
verbose=True
)
# إنشاء ماسح ضوئي
scanner = Scanner(config)
# تشغيل الفحص
results = scanner.scan(target="example.com")
# معالجة النتائج
for result in results:
print(f"Target: {result.target}")
print(f"Status: {result.status}")
print(f"Findings: {result.findings}")
استخدام REST API
# بدء خادم API
yourtool api --port 8080
# إرسال طلب فحص
curl -X POST http://localhost:8080/api/scan \
-H "Content-Type: application/json" \
-d '{"target": "example.com", "modules": ["port_scan"]}'
المساهمة
نرحب بالمساهمات! يرجى اتباع الخطوات التالية:
- قم بعمل fork للمستودع
- أنشئ فرعًا للميزة (
git checkout -b feature/amazing-feature) - قم بعمل commit للتغييرات (
git commit -m 'Add amazing feature') - ادفع إلى الفرع (
git push origin feature/amazing-feature) - افتح طلب سحب (Pull Request)
إرشادات التطوير
# تثبيت تبعيات التطوير
pip install -r requirements-dev.txt
# تشغيل الاختبارات
pytest tests/
# تشغيل فحوصات الجودة
flake8 yourtool/
black yourtool/
mypy yourtool/
الترخيص
هذا المشروع مرخص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.
إخلاء المسؤولية
تنبيه: هذه الأداة مخصصة لأغراض اختبار الاختراق الأخلاقي والبحث الأمني فقط. يجب استخدامها فقط على الأنظمة التي لديك إذن صريح باختبارها. الاستخدام غير المصرح به قد يكون غير قانوني.
الدعم
- 📖 التوثيق
- 💬 Discord
- 🐛 تتبع المشكلات
- 📧 البريد الإلكتروني
شكر وتقدير
- شكر خاص لجميع المساهمين
- مستوحى من أدوات أمنية أخرى مفتوحة المصدر
- شكر لمجتمع الأمن السيبراني على دعمهم المستمر```go package main
import ( "fmt" "log"
"github.com/praetorian-inc/titus"
)
func main() { // Initialize the secrets scanner with default rules scanner, err := titus.NewScanner() if err != nil { log.Fatal(err) } defer scanner.Close()
// Scan a string for API keys, tokens, and credentials
matches, err := scanner.ScanString(`aws_access_key_id = AKIAIOSFODNN7EXAMPLE`)
if err != nil {
log.Fatal(err)
}
for _, match := range matches {
fmt.Printf("%s (rule: %s) at line %d\n",
match.RuleName, match.RuleID,
match.Location.SourceSpan.Start.Line,
)
}
}
تدعم المكتبة أيضًا فحص البايتات والملفات، والتحقق من الأسرار المكتشفة، وتحميل قواعد مخصصة:```go
// Scan a file for leaked credentials
matches, err := scanner.ScanFile("/path/to/config.json")
// Enable validation to check if detected secrets are live
scanner, err := titus.NewScanner(titus.WithValidation())
// Load custom detection rules for organization-specific secrets
rules, err := titus.LoadRulesFromFile("/path/to/rules.yaml")
scanner, err := titus.NewScanner(titus.WithRules(rules))
راجع docs/library-usage.md للحصول على مرجع API الكامل، وأنماط التزامن، والمزيد من الأمثلة.
إضافة Burp Suite لفحص الأسرار
تقوم إضافة Burp بفحص استجابات HTTP بحثًا عن الأسرار أثناء حركة المرور عبر الوكيل واختبار الاختراق النشط.
الإعداد
Linux / macOS (البناء من المصدر)```bash
Build the CLI and Burp extension JAR, install CLI to ~/.titus/
make install-burp
ثم حمّل `dist/titus-burp-1.0.0-all.jar` في Burp Suite ضمن Extensions > Add.
#### Windows (التنزيل من Releases)
1. نزّل `titus-windows-amd64.exe` و `titus-burp-<version>.jar` من [Releases](../../releases)
2. أنشئ دليل Titus وثبّت الملف التنفيذي: ```powershell
mkdir %USERPROFILE%\.titus
copy titus-windows-amd64.exe %USERPROFILE%\.titus\titus.exe
- حمّل ملف JAR في Burp Suite ضمن Extensions > Add
Linux / macOS (التنزيل من Releases)
- نزّل الملف التنفيذي المناسب لمنصتك و
titus-burp-<version>.jarمن Releases:titus-linux-amd64أوtitus-linux-arm64لنظام Linuxtitus-darwin-amd64أوtitus-darwin-arm64لنظام macOS
- ثبّت الملف التنفيذي: ```bash
mkdir -p ~/.titus
cp titus- ~/.titus/titus
chmod +x ~/.titus/titus
- حمّل ملف JAR في Burp Suite ضمن Extensions > Add
يشغّل الامتداد عملية titus serve في الخلفية ويتواصل عبر stdin/stdout باستخدام NDJSON. تُحمَّل قواعد الكشف مرة واحدة عند بدء التشغيل.
ميزات امتداد Burp
- فحص الأسرار السلبي: يفحص حركة مرور الوكيل تلقائيًا أثناء تدفقها عبر Burp
- فحص الأسرار النشط: قائمة سياق بالنقر بزر الفأرة الأيمن لفحص الطلبات المحددة
- إزالة التكرار: يُبلَّغ عن السر نفسه مرة واحدة فقط لكل engagement
- الترشيح السريع: يتم تخطي المحتوى الثنائي والصور والاستجابات غير النصية
- التحقق المباشر من بيانات الاعتماد: فحص الأسرار المكتشفة مقابل واجهات API المصدرية للتأكد مما إذا كانت نشطة
- إدارة الإيجابيات الكاذبة: وضع علامة على النتائج كإيجابيات كاذبة لتصفية الضوضاء
- تصنيف الخطورة: النتائج مرمّزة بالألوان حسب المخاطر (عالية/متوسطة/منخفضة)
- التصدير: حفظ النتائج بصيغة JSON لإعداد التقارير
واجهة امتداد Burp
يضيف الامتداد تبويب Titus إلى Burp مع ثلاثة تبويبات فرعية:
Secrets: جميع الأسرار المكتشفة مع الترشيح حسب النوع والمضيف وحالة التحقق.
Titus Burp Suite extension secrets tab showing detected API keys and credentials with validation status
- حالة التحقق: تُظهر ما إذا تم فحص الأسرار (نشط/غير نشط/غير معروف)
- الترشيح: انقر على أزرار Type أو Host أو Status للترشيح حسب قيم محددة؛ استخدم مربع البحث لمطابقة النص والتعبيرات النمطية
- الإجراءات الجماعية: حدد عدة صفوف للتحقق منها أو وضع علامة إيجابية كاذبة عليها دفعة واحدة
- لوحة تفاصيل السر: حدد نتيجة لعرض:
- التفاصيل: معلومات القاعدة، الفئة، قيمة السر الكاملة، طابع وقت أول ظهور
- عناوين URL: جميع المواقع التي وُجد فيها هذا السر
- التحقق: نتيجة التحقق مع التفاصيل (مثل معرّف حساب AWS، ARN)
- الطلب/الاستجابة: حركة مرور HTTP الكاملة مع تمييز السر
Statistics: عرض مجمّع للأسرار مجمّعة حسب النوع والمضيف.
- الملخص: إجمالي الأسرار الفريدة، المضيفون المفحوصون، تفصيل التحقق (نشط مقابل غير نشط)، وعدد الإيجابيات الكاذبة
- الأسرار حسب النوع: عدد كل نوع من الأسرار مع تصنيف الفئة
- الأسرار حسب المضيف: عدد الأسرار الموجودة لكل مضيف
Settings: تكوين خيارات الفحص والتحقق وتعيينات الخطورة.
Titus Burp Suite extension settings tab with scan configuration options
- إعدادات الفحص:
- الفحص السلبي: فحص جميع حركة مرور الوكيل تلقائيًا (مُفعَّل افتراضيًا)
- فحص جسم الطلب: فحص أجسام الطلبات أيضًا بحثًا عن الأسرار المرسلة من التطبيق
- التحقق: فعّله لفحص الأسرار مقابل واجهات API المصدرية (يُجري طلبات صادرة وقد يُطلق تنبيهات)
- معاملات الفحص: خيوط العمل، الحد الأقصى لحجم الملف، طول مقتطف السياق
- تكوين الخطورة: تخصيص مستويات الخطورة لكل فئة من الأسرار
- الإجراءات: مسح ذاكرة التخزين المؤقت، إعادة تعيين الإعدادات، حفظ/تصدير النتائج بصيغة JSON
عند عرض أي طلب في Burp، يظهر تبويب Titus في مفتش الاستجابة إذا تم اكتشاف أسرار، مما يوفر وصولًا سريعًا إلى النتائج دون التبديل إلى تبويب Titus الرئيسي.
Titus tab in Burp Suite response inspector highlighting detected secrets in HTTP responses
امتداد متصفح Chrome لفحص الأسرار
يفحص امتداد Chrome صفحات الويب بحثًا عن الأسرار أثناء تقييمات أمان تطبيقات الويب.
الإعداد```bash
make build-extension
1. انتقل إلى `chrome://extensions/`
2. فعّل **وضع المطور**
3. انقر على **تحميل غير محزّم** واختر دليل `extension/`
### ميزات إضافة المتصفح
- تفحص JavaScript وأوراق الأنماط المضمّنة والخارجية بحثًا عن مفاتيح API والرموز المميزة
- تفحص localStorage وsessionStorage بحثًا عن بيانات اعتماد مسرّبة
- التقاط اختياري لاستجابات الشبكة للكشف الشامل عن الأسرار
- تُعرض النتائج في النافذة المنبثقة ولوحة التحكم
<img width="1719" height="958" alt="Titus Chrome extension popup showing detected secrets on a web page" src="https://assets.kitploit.com/production/public/readmes/11969/057a24e2746412ceabe1aac0292a2de463de1efee5bca2489ca34b59d8b0dc2c.png" />
<img width="1744" height="827" alt="Titus Chrome extension dashboard with aggregated secret detection results" src="https://assets.kitploit.com/production/public/readmes/11969/265d972fadcc7f212944d7a1d8fd58a43446e7199d1209900e83b96a546ffb00.png" />
### إشعار أمني
تُزيل إضافة المتصفح ترويسات Content Security Policy وCORS من الصفحات التي تمت زيارتها لفحص الموارد الخارجية. يؤدي هذا إلى إضعاف الوضع الأمني للمواقع التي تزورها أثناء تفعيل الإضافة. **فعّلها فقط أثناء اختبار الأمان النشط.**
## البناء من المصدر
### البناء القياسي (المُسرَّع بـ Vectorscan)
افتراضيًا، يُصرَّف Titus باستخدام [Vectorscan](https://github.com/VectorCamp/vectorscan) (ARM) / [Hyperscan](https://github.com/intel/hyperscan) (x86) لمطابقة التعبيرات النمطية المُسرَّعة بـ SIMD. يتطلب هذا CGO ومكتبة C و`pkg-config` (الذي يستخدمه cgo لتحديد موقع المكتبة). يتحقق `make build` من وجود هذه المكونات ويحاول تثبيت أي شيء مفقود عبر Homebrew / apt / dnf:```bash
# Build the CLI binary with vectorscan acceleration (outputs to dist/titus)
make build
# Build the Burp Suite extension JAR
make build-burp
# Build the Chrome browser extension
make build-extension
# Run unit tests
make test
# Run integration tests
make integration-test
سترى [vectorscan] N/N rules compiled for Hyperscan عند بدء التشغيل عندما يكون المحرك المُسرَّع نشطًا.
لتثبيت مكتبة C بنفسك بدلاً من الاعتماد على التثبيت التلقائي:```bash
macOS (Homebrew)
brew install pkg-config vectorscan
Ubuntu/Debian
sudo apt-get install pkg-config libhyperscan-dev
Fedora/RHEL
sudo dnf install pkgconf-pkg-config vectorscan-devel
Or build vectorscan from source:
git clone --depth 1 --branch vectorscan/5.4.11 https://github.com/VectorCamp/vectorscan.git cd vectorscan && cmake -B build -DCMAKE_INSTALL_PREFIX=/usr/local && cmake --build build && sudo cmake --install build
إذا قمت باستدعاء `go build` مباشرةً (على سبيل المثال، عند تضمين Titus)، فمرّر الوسم وفعّل CGO:```bash
# macOS (Homebrew) — adjust PKG_CONFIG_PATH to your installed version
CGO_ENABLED=1 PKG_CONFIG_PATH="$(brew --prefix vectorscan)/lib/pkgconfig" \
go build -tags vectorscan -o dist/titus ./cmd/titus
# Linux (system-installed)
CGO_ENABLED=1 go build -tags vectorscan -o dist/titus ./cmd/titus
بناء Pure-Go (بدون تبعيات C)
إذا لم تتمكن من تثبيت مكتبة C — أو أردت ملفاً تنفيذياً ثابتاً ومحمولاً بالكامل — فقم ببناء محرك Pure-Go بدلاً من ذلك. يعود Titus تلقائياً إليه في وقت التشغيل كلما لم يكن vectorscan مُضمَّناً في البناء:```bash
Portable pure-Go binary (no CGO, no vectorscan)
make build-pure
Fully static binary
make build-static
#### ذاكرة التخزين المؤقت التلقائية لقاعدة بيانات Hyperscan
يقوم Titus تلقائيًا بتسلسل كل قاعدة بيانات Hyperscan تم تجميعها بنجاح إلى ذاكرة التخزين المؤقت القياسية للمستخدم. تقوم نسخ الماسح الضوئي اللاحقة التي تحتوي على نفس القواعد والأعلام المرتبة بالضبط بتحميل قاعدة البيانات تلك بدلاً من إعادة تجميعها. ملف ذاكرة التخزين المؤقت هو تدفق البايتات غير المعدل الذي ينتجه `hs_serialize_database` الخاص بـ Hyperscan، ويقوم Titus بتحميله باستخدام `hs_deserialize_database`.
يمكن لـ `TITUS_CACHE_DIR` تجاوز موقع ذاكرة التخزين المؤقت. عمليات الكتابة إلى ذاكرة التخزين المؤقت ذرية وبأفضل جهد: ذاكرة التخزين المؤقت غير المتاحة أو للقراءة فقط لا تمنع الفحص. قاعدة بيانات مفقودة أو تالفة أو غير متوافقة أو ذات بصمة مختلفة تؤدي إلى التجميع العادي وتحديث ذاكرة التخزين المؤقت عند الإمكان.
قواعد البيانات المتسلسلة خاصة بالمعمارية وميزات المعالج وإصدار Hyperscan. يكتشف Titus الإدخالات غير المتوافقة أثناء إلغاء التسلسل ويستبدلها بقاعدة بيانات مجمعة للبيئة الحالية.
## المساهمة
المساهمات مرحب بها! راجع [CONTRIBUTING.md](https://github.com/praetorian-inc/titus/blob/main/CONTRIBUTING.md) للحصول على إرشادات حول كيفية المساهمة في Titus.
## الترخيص
Apache License 2.0 — راجع [LICENSE](https://github.com/praetorian-inc/titus/blob/main/LICENSE).
قواعد الكشف مستمدة من [NoseyParker](https://github.com/praetorian-inc/noseyparker) (Praetorian Security, Inc.) و[Kingfisher](https://github.com/mongodb/kingfisher) (MongoDB, Inc.)، وكلاهما مرخص تحت Apache 2.0. راجع [NOTICE](https://github.com/praetorian-inc/titus/blob/main/NOTICE) للحصول على الإسناد الكامل.