
ماسح الأسرار عالي الأداء. CLI، مكتبة Go، إضافة Burp Suite، وإضافة Chrome. 487 قاعدة كشف مع التحقق المباشر من بيانات الاعتماد.
Titus هو ماسح أسرار عالي الأداء يكتشف بيانات الاعتماد ومفاتيح API والرموز المميزة في الشيفرة المصدرية والملفات وسجل git. يأتي مزوّدًا بـ 487 قاعدة كشف تغطي مئات الخدمات وأنواع بيانات الاعتماد، مستمدة من NoseyParker وKingfisher. يعمل Titus كأداة سطر أوامر، ومكتبة Go، وإضافة Burp Suite، وإضافة متصفح Chrome — وجميعها تشترك في نفس محرك الكشف ومجموعة القواعد.
صُمم Titus لمهندسي الأمن واختباري الاختراق وفرق DevSecOps، وهو يجمع بين مطابقة التعبيرات النمطية المعجّلة بـ Hyperscan/Vectorscan والتحقق المباشر من بيانات الاعتماد للعثور على الأسرار المسرّبة والتحقق منها عبر قاعدة شيفرتك بالكامل.
نزّل ملفًا ثنائيًا جاهزًا من صفحة الإصدارات، أو ابنِ من المصدر:```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 افتراضيًا) وتُطبع إلى وحدة التحكم.
افحص المستودعات العامة مباشرةً عبر URL — دون الحاجة إلى رمز API:```bash
titus scan github.com/kubernetes/kubernetes
titus scan gitlab.com/gitlab-org/cli
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 daemon ولا إلى ملف docker التنفيذي. يقوم Titus بسحب الصور مباشرةً من أي سجل OCI عبر HTTPS (باستخدام بيانات الاعتماد من ~/.docker/config.json)، أو يقرأ الصور من أرشيف docker save المحلي أو من دليل تخطيط صور OCI. ثم يقوم بفحص بيانات تعريف بيان الصورة/الإعدادات وكل ملف عادي في كل طبقة، بما في ذلك الملفات الموجودة في الطبقات السفلى التي حذفتها الطبقات اللاحقة (نظرًا لأن الأسرار يمكن أن تظل قابلة للاسترداد من سجل الصورة).```bash
titus scan --docker alpine:latest titus scan docker://ghcr.io/owner/repo:tag
titus scan --docker ./my-app.tar
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) ويضع علامة على كل اكتشاف كمؤكد أو مرفوض أو غير معروف.
titus rules list
titus scan path/to/code --rules-include "aws,gcp"
titus scan path/to/code --rules-exclude "kingfisher.generic"
titus scan path/to/code --rules path/to/custom-rules.yaml
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
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
titus scan path/to/code
titus scan path/to/code --score-scope
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
# استنساخ المستودع
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 install yourtool
# بناء صورة 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
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}")
# بدء خادم 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"]}'
نرحب بالمساهمات! يرجى اتباع الخطوات التالية:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)# تثبيت تبعيات التطوير
pip install -r requirements-dev.txt
# تشغيل الاختبارات
pytest tests/
# تشغيل فحوصات الجودة
flake8 yourtool/
black yourtool/
mypy yourtool/
هذا المشروع مرخص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.
تنبيه: هذه الأداة مخصصة لأغراض اختبار الاختراق الأخلاقي والبحث الأمني فقط. يجب استخدامها فقط على الأنظمة التي لديك إذن صريح باختبارها. الاستخدام غير المصرح به قد يكون غير قانوني.
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 بفحص استجابات HTTP بحثًا عن الأسرار أثناء حركة المرور عبر الوكيل واختبار الاختراق النشط.
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
titus-burp-<version>.jar من Releases:
titus-linux-amd64 أو titus-linux-arm64 لنظام Linuxtitus-darwin-amd64 أو titus-darwin-arm64 لنظام macOSيشغّل الامتداد عملية titus serve في الخلفية ويتواصل عبر stdin/stdout باستخدام NDJSON. تُحمَّل قواعد الكشف مرة واحدة عند بدء التشغيل.
يضيف الامتداد تبويب Titus إلى Burp مع ثلاثة تبويبات فرعية:
Secrets: جميع الأسرار المكتشفة مع الترشيح حسب النوع والمضيف وحالة التحقق.
Titus Burp Suite extension secrets tab showing detected API keys and credentials with validation status
Statistics: عرض مجمّع للأسرار مجمّعة حسب النوع والمضيف.

Settings: تكوين خيارات الفحص والتحقق وتعيينات الخطورة.
Titus Burp Suite extension settings tab with scan configuration options
عند عرض أي طلب في Burp، يظهر تبويب Titus في مفتش الاستجابة إذا تم اكتشاف أسرار، مما يوفر وصولًا سريعًا إلى النتائج دون التبديل إلى تبويب Titus الرئيسي.
Titus tab in Burp Suite response inspector highlighting detected secrets in HTTP responses
يفحص امتداد Chrome صفحات الويب بحثًا عن الأسرار أثناء تقييمات أمان تطبيقات الويب.
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
brew install pkg-config vectorscan
sudo apt-get install pkg-config libhyperscan-dev
sudo dnf install pkgconf-pkg-config vectorscan-devel
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
إذا لم تتمكن من تثبيت مكتبة C — أو أردت ملفاً تنفيذياً ثابتاً ومحمولاً بالكامل — فقم ببناء محرك Pure-Go بدلاً من ذلك. يعود Titus تلقائياً إليه في وقت التشغيل كلما لم يكن vectorscan مُضمَّناً في البناء:```bash
make build-pure
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) للحصول على الإسناد الكامل.