
محلل استكشافي يعمل دون اتصال بالإنترنت يقيّم رسائل SMS والدردشة والروابط المشبوهة بحثًا عن مؤشرات الاحتيال والتصيّد، ويشرح كل علامة تحذيرية عبر أدلة توعوية واختبار قصير.
منصة للتوعية بالأمن السيبراني. الصق رسالة نصية قصيرة أو بريدًا إلكترونيًا أو رسالة دردشة أو رابطًا مشبوهًا، وستخبرك بأساليب الاحتيال التي رصدتها، ولماذا يهم كل منها، وما الذي ينبغي فعله بعد ذلك.
عرض تجريبي مباشر: https://threatripper.onrender.com (الطبقة المجانية من Render — قد تستغرق الزيارة الأولى بعد فترة خمول دقيقة حتى تستيقظ الخدمة.)
إنها أداة تعليمية، وليست منتجًا أمنيًا. لا يوجد محرك مكافحة فيروسات، ولا فحص للبرمجيات الخبيثة، ولا تحقق من المرسل، ولا خدمة سمعة للنطاقات. لا يتم فتح الروابط أبدًا.
الغرض والنطاق. Threatripper أداة دفاعية تعليمية لاكتشاف مؤشرات الاحتيال في النصوص. لا تحتوي على برمجيات خبيثة أو شيفرة استغلال أو حزم تصيّد أو قوائم بيانات اعتماد أو أي قدرة هجومية، ولا تُجري أي طلبات شبكية. جميع الرسائل والنطاقات النموذجية في المستودع تستخدم أسماء خيالية محجوزة ضمن
.exampleوهي موجودة فقط لاستعراض منطق الاكتشاف.استخدمها فقط لحماية نفسك والآخرين. إساءة الاستخدام تتنافى مع غرض المشروع؛ أبلغ عن الاحتيال عبر القنوات الرسمية (انظر القيود).
أربع صفحات، دون خطوة بناء، ودون إطار عمل JavaScript، ودون CDN:
| الصفحة | المسار | الغرض |
|---|---|---|
| التحليل | / | الصق رسالة أو رابطًا واحصل على حكم مُقيَّم ومشروح |
| التوعية | /awareness.html | سبعة أدلة لأنواع الاحتيال إضافة إلى نصائح الإبلاغ |
| الاختبار | /quiz.html | اثنا عشر سيناريو تُقيَّم على الخادم مع الشروحات |
| السجل | /history.html | تحليلاتك الأخيرة، مع إخفاء المعرّفات مسبقًا |
التحليل قابل للتفسير عمدًا بدلًا من أن يكون مرجعيًا قاطعًا. كل نقطة على المقياس ترتبط بقاعدة مُسمّاة لها درجة خطورة ودرجة ثقة وجملة تشرح سبب أهميتها. تعرض الواجهة الحساب كاملًا، بما في ذلك مكافآت التركيب، بحيث يمكن الجدال في الناتج بدلًا من مجرد الثقة به.
ما الذي لا تفعله:
يتطلب Python 3.11 أو أحدث.
git clone <your-repo-url> threatripper
cd threatripper
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# Use "python3 -m pip", not a bare "pip": on a hardened distro (Kali, Debian,
# Fedora) pip may be an externally managed system binary that is blocked by
# PEP 668, and a bare "pip" will not resolve to the venv.
python3 -m pip install -r requirements.txt
python3 -m uvicorn backend.main:app --reload
افتح http://127.0.0.1:8000.
المنتج بأكمله — واجهة برمجة التطبيقات، وكتالوج القواعد، وقاعدة البيانات، وواجهة الويب — يعمل من تلك
العملية الواحدة على أصل واحد. تتوفر مستندات واجهة برمجة التطبيقات التفاعلية على /docs، ومخطط OpenAPI الخام
على /openapi.json.
لتشغيل الاختبارات:
python3 -m pip install -r requirements-dev.txt
python3 -m pytest
يُشغَّل التحليل نفسه من الطرفية. هذه واجهة أمامية ثانية، وليست تطبيقًا ثانيًا:
فكل قاعدة ودرجة وتفسير وإجراء موصى به يأتي من AnalysisService نفسه الذي
يستخدمه تطبيق الويب، لذا لا يمكن أن يختلف الاثنان حول
ما هو خطير.
لا خادم، ولا منفذ، ولا شبكة — وهذا مفيد عندما تكون الرسالة التي تنظر إليها هي الحادثة نفسها.
# Analyse a pasted message
./threatripper.sh "URGENT: your account will be closed, share the OTP"
# Or pipe it in, which is the natural way to use it
pbpaste | ./threatripper.sh
# A bare link
./threatripper.sh "http://verify-account.example/login"
# The API payload, for scripts
./threatripper.sh "share your OTP" --json | jq .result.risk_level
# Only fail when it is serious
./threatripper.sh --fail-on critical "see you tomorrow" ; echo $? # 0
./threatripper.sh --fail-on critical "your bank account will be suspended in 24 hours, verify at http://bank-verify.example/login and share the OTP" ; echo $? # 1
# Stored history, shared with the web app
./threatripper.sh history
./threatripper.sh history --level critical --json
# Analyse without keeping any record
./threatripper.sh "share your OTP" --no-store
تُطبع لافتة THREATRIPPER الحمراء في بداية التشغيل التفاعلي، مرسومةً بخط ANSI Shadow. تُوجَّه إلى stderr ويُتخطّاها الخيار --json وكلما كانت المخرجات موجَّهة عبر أنبوب أو معاد توجيهها، لذا لا تظهر أبدًا في سجل ولا تُعطّل خط أنابيب. يُبقي الخيار --no-color اللافتة لكنه يُسقط اللون.
كل رمز في ANSI Shadow هو محرف شرق آسيوي عريض غامض، لذا في بعض الطرفيات — عادةً في بيئة لغات CJK، أو نافذة أضيق من 78 عمودًا — تُعرض الصفوف بعروض مختلفة وتتباعد الحروف عن بعضها. في هذه الحالة تتراجع اللافتة بهدوء إلى خط ASCII خالص. تجاوز الاختيار باستخدام --banner shadow|ascii|none:
./threatripper.sh --banner shadow "message" # force the block letters
./threatripper.sh --banner ascii "message" # force the terminal-safe face
./threatripper.sh --banner none "message" # no banner at all
مثل تطبيق الويب، تُضاف التحليلات إلى السجل المشترك افتراضيًا —
نفس المعاينة المنقّحة، وليس النص الخام أبدًا. مرّر --no-store للتحليل
دون الاحتفاظ بسجل.
يسرد ./threatripper.sh analyze --help و./threatripper.sh history --help كل
خيار. يفضّل المشغّل مفسّر .venv الخاص بالمشروع ويحدّد
موقعه الخاص، لذا يعمل من أي دليل ومع تفعيل virtualenv أو
دونه. python3 -m backend.cli مكافئ لذلك.
تُستخدم أداة الطرفية في السكربتات، لذا يجب أن يكون السؤال "هل وجد هذا شيئًا؟" قابلًا للإجابة دون تحليل النص.
| الرمز | المعنى |
|---|---|
0 | لم يُعثر على شيء، عند حد --fail-on أو دونه |
1 | عُثر على شيء عند الحد أو فوقه |
2 | كان سطر الأوامر خاطئًا |
3 | لم يكن هناك شيء لتحليله، أو تعذّر تشغيل التحليل |
القيمة الافتراضية للحد هي suspicious. مرّر --fail-on مع أي نطاق
(low، suspicious، medium، high، critical) لتغييره.
# Fail a deploy pipeline only on a serious finding
./threatripper.sh --fail-on critical "$MESSAGE" || echo "review this message"
لا يتشارك خطأ الاستخدام عمدًا أبدًا رمزًا مع نتيجة، حتى يتمكن السكربت من التمييز بين "هذه الرسالة خطيرة" و"لقد كتبت العَلم بشكل خاطئ". كما يؤدي نطاق مخاطر غير معروف أيضًا إلى خروج برمز غير صفري، بدلًا من الإبلاغ بأن كل شيء سليم.
| النتيجة | المستوى | المعنى |
|---|---|---|
| 0–20 | LOW | مؤشرات احتيال قليلة أو معدومة. ليس ضمانًا للسلامة. |
| 21–40 | SUSPICIOUS | بعض الخصائص المشكوك فيها. تحقّق بشكل مستقل. |
| 41–60 | MEDIUM | إشارات احتيال متعددة. لا تتصرف بناءً على هذه الرسالة. |
| 61–80 | HIGH | مؤشرات احتيال قوية. تعامل معها كخطر معادٍ. |
| 81–100 | CRITICAL | مؤشرات قوية جدًا على محاولة احتيال نشطة. |