
ماسح الأسرار عالي الأداء. CLI، مكتبة Go، إضافة Burp Suite، وإضافة Chrome. 487 قاعدة كشف مع التحقق المباشر من بيانات الاعتماد.
Titus هو ماسح أسرار عالي الأداء يكشف عن بيانات الاعتماد ومفاتيح API والرموز المميزة (tokens) في الكود المصدري والملفات وتاريخ git. يأتي مزودًا بـ 487 قاعدة كشف تغطي مئات الخدمات وأنواع بيانات الاعتماد، مستمدة من NoseyParker وKingfisher. يعمل Titus كأداة CLI، ومكتبة Go، وإضافة لـ Burp Suite، وإضافة لمتصفح Chrome — جميعها تشترك في نفس محرك الكشف ومجموعة القواعد.
صُمم لمهندسي الأمن، ومختبرِي الاختراق، وفرق DevSecOps، يجمع Titus بين مطابقة التعبيرات العادية المُسرَّعة بواسطة 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).
قم بفحص صور الحاويات مباشرة — لا حاجة لداemon docker ولا لأمر docker. يقوم Titus بسحب الصور مباشرة من أي سجل OCI عبر HTTPS (باستخدام بيانات الاعتماد من ~/.docker/config.json)، أو يقرأ الصور من ملف tarball الخاص بـ 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` أثناء الفحص للتحقق من الأسرار المكتشفة مقابل واجهات برمجة التطبيقات المصدرية:```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
تتضمن التنسيقات المدعومة مستندات أوفيس (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 | معلومات |
| 21–40 | منخفض |
| 41–60 | متوسط |
| 61–80 | مرتفع |
| 81–100 | حرج |
تبدأ الدرجات من 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 وSlack، بالإضافة إلى مسجلات SDK المستندة إلى Go والتي تقوم بجرد سياسات IAM المباشرة (AWS) والتحقق من أذونات المستودع (رموز GitHub الدقيقة) عند تمكين `--score-scope`.
راجع [docs/scoring.md](https://github.com/praetorian-inc/titus/blob/HEAD/docs/scoring.md) للحصول على المرجع الكامل: مستويات الخطورة، أنواع المعدِّلات، تفاصيل المسجلات المدمجة، وكيفية كتابة مسجلات YAML أو Go الخاصة بك.
## مكتبة Go للكشف عن الأسرار```bash
go get github.com/praetorian-inc/titus
يمكنك تهيئة AnarchyPhish للتشغيل في وضع headless والمزيد. استخدم العلامة --headless عند التشغيل باستخدام ثنائي Go لضبط وضع headless.```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 بفحص استجابات HTTP عن الأسرار أثناء حركة مرور الوكيل واختبار الاختراق النشط.
make install-burp
ثم قم بتحميل `dist/titus-burp-1.0.0-all.jar` في Burp Suite ضمن Extensions > Add.
#### ويندوز (تنزيل من الإصدارات)
1. قم بتنزيل `titus-windows-amd64.exe` و `titus-burp-<version>.jar` من [الإصدارات](https://raw.githubusercontent.com/praetorian-inc/releases)
2. أنشئ مجلد Titus وقم بتثبيت الثنائي: ```powershell
mkdir %USERPROFILE%\.titus
copy titus-windows-amd64.exe %USERPROFILE%\.titus\titus.exe
titus-burp-<version>.jar من الإصدارات:
titus-linux-amd64 أو titus-linux-arm64 لـ لينكسtitus-darwin-amd64 أو titus-darwin-arm64 لـ ماكيقوم الامتداد بتشغيل عملية titus serve في الخلفية ويتواصل عبر stdin/stdout باستخدام NDJSON. يتم تحميل قواعد الكشف مرة واحدة عند بدء التشغيل.
يضيف الامتداد علامة تبويب Titus إلى Burp مع ثلاث علامات فرعية:
الأسرار: جميع الأسرار المكتشفة مع إمكانية التصفية حسب النوع والمضيف وحالة التحقق.
علامة تبويب الأسرار لامتداد Titus Burp Suite تعرض مفاتيح API وبيانات اعتماد مكتشفة مع حالة التحقق
الإحصائيات: عرض إجمالي للأسرار مجمعة حسب النوع والمضيف.
الإعدادات: تكوين خيارات المسح والتحقق وخرائط الخطورة.
علامة تبويب الإعدادات لامتداد Titus Burp Suite مع خيارات تكوين المسح
عند عرض أي طلب في Burp، تظهر علامة تبويب Titus في مفتش الاستجابة إذا تم اكتشاف أسرار، مما يوفر وصولًا سريعًا إلى النتائج دون التبديل إلى علامة تبويب Titus الرئيسية.
علامة تبويب Titus في مفتش استجابة Burp Suite تُبرز الأسرار المكتشفة في استجابات HTTP
يقوم امتداد Chrome بمسح صفحات الويب بحثًا عن الأسرار أثناء تقييمات أمان تطبيقات الويب.
make build-extension
1. انتقل إلى `chrome://extensions/`
2. **فعّل وضع المطور**
3. انقر **تحميل غير مضغوط** واختر مجلد `extension/`
### ميزات إضافة المتصفح
- يفحص JavaScript و stylesheets المضمنة والخارجية للبحث عن مفاتيح API والرموز
- يفحص localStorage و sessionStorage للبحث عن بيانات اعتماد مسربة
- التقاط استجابات الشبكة اختياريًا للكشف الشامل عن الأسرار
- تُعرض النتائج في النافذة المنبثقة ولوحة المعلومات
<img width="1719" height="958" alt="نافذة إضافة Titus المنبثقة في Chrome تُظهر الأسرار المكتشفة على صفحة ويب" src="https://assets.kitploit.com/production/public/readmes/11969/057a24e2746412ceabe1aac0292a2de463de1efee5bca2489ca34b59d8b0dc2c.png" />
<img width="1744" height="827" alt="لوحة تحكم إضافة Titus في Chrome مع نتائج الكشف المجمعة عن الأسرار" src="https://assets.kitploit.com/production/public/readmes/11969/265d972fadcc7f212944d7a1d8fd58a43446e7199d1209900e83b96a546ffb00.png" />
### إشعار أمني
تزيل إضافة المتصفح رؤوس سياسة أمان المحتوى (CSP) و 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 — أو تريد ملفًا ثنائيًا محمولًا بالكامل وثابتًا — قم ببناء المحرك الخالص بلغة Go بدلاً من ذلك. يتحول Titus تلقائيًا إليه في وقت التشغيل كلما لم يتم تجميع vectorscan في:```bash
make build-pure
make build-static
## المساهمة
نرحب بالمساهمات! راجع [CONTRIBUTING.md](https://github.com/praetorian-inc/titus/blob/HEAD/CONTRIBUTING.md) للحصول على إرشادات حول كيفية المساهمة في Titus.
## الترخيص
رخصة Apache 2.0 — انظر [LICENSE](https://github.com/praetorian-inc/titus/blob/HEAD/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/HEAD/NOTICE) للإسناد الكامل.