Skip to content

Repository files navigation

كاشف | Kashif AI

منصة عربية لفحص الروابط المشبوهة قبل فتحها

كاشف يجمع بين VirusTotal و urlscan.io والفحوصات المحلية، ثم يستخدم الذكاء الاصطناعي لتحويل الأدلة التقنية إلى تقرير واضح بالمصري.

Next.js TypeScript VirusTotal urlscan.io Tests

تنبيه: كاشف أداة مساعدة للتوعية والتحليل، وليس بديلًا عن حلول الحماية الاحترافية أو رأي مختص أمني.

فكرة المشروع

بدل فتح رابط غير موثوق على جهاز المستخدم، يمر الرابط داخل خط أنابيب أمني يجمع أدلة من أكثر من مصدر:

  1. التحقق من الرابط ومنع طلبات SSRF الخطرة.
  2. تحليل بنية الرابط باستخدام فحوصات محلية ثابتة.
  3. فحص سمعة الرابط عبر VirusTotal.
  4. إرسال الرابط إلى urlscan.io لزيارته داخل بيئة معزولة.
  5. جمع التحويلات، النطاق النهائي وبيانات الشبكة.
  6. حساب درجة الخطورة برمجيًا باستخدام Rule Engine.
  7. استخدام Groq لصياغة شرح مبسط للأدلة والنتيجة.
flowchart TD
    A[رابط المستخدم] --> B[Validation + SSRF Protection]
    B --> C[Local Heuristics]
    B --> D[VirusTotal]
    B --> E[urlscan Sandbox]
    C --> F[Sanitized Telemetry]
    D --> F
    E --> F
    F --> G[Deterministic Rule Engine]
    G --> H[AI Explanation]
    H --> I[Arabic Security Report]
Loading

أهم المميزات

  • فحص حقيقي لسمعة الروابط باستخدام VirusTotal.
  • فتح الرابط داخل Sandbox خارجي من خلال urlscan.io بدلًا من جهاز المستخدم.
  • متابعة غير متزامنة لنتيجة الـSandbox بدون تعليق الطلب الأساسي.
  • اكتشاف التحويل إلى نطاق أساسي مختلف.
  • فحوصات محلية لـHTTP، خدمات اختصار الروابط، Punycode والكلمات الحساسة.
  • درجة خطورة حتمية لا تعتمد على تخمين الـAI.
  • تقرير مبسط باللهجة المصرية يشرح الأدلة والتوصية العملية.
  • وضع Partial Scan عند تعذر إحدى خدمات الفحص، بدون اختراع نتائج.
  • HMAC scan tokens لمنع التلاعب بالدرجة أو بيانات الفحص من المتصفح.
  • Rate limiting للحد من إساءة الاستخدام واستهلاك حصص الـAPIs.
  • Cache لمدة 15 دقيقة لتقليل الطلبات المتكررة.
  • واجهة عربية RTL متجاوبة بطابع بصري مستوحى من ملفات التحقيقات الأمنية.

كيف تُحسب درجة الخطورة؟

الذكاء الاصطناعي لا يحدد الدرجة. يتم حسابها داخل TypeScript بقواعد ثابتة وقابلة للاختبار، ثم يحصل الـAI على Telemetry منظّمة لشرح النتيجة فقط.

المصدر المثال التأثير
VirusTotal 5 محركات خبيثة أو أكثر فرض خطورة مرتفعة
VirusTotal محرك خبيث +25
VirusTotal محرك مشبوه +10
urlscan Verdict خبيث فرض خطورة مرتفعة
Redirect اختلاف النطاق الأساسي +15
Local Punycode / Homograph indicator +20
Local HTTP بدون تشفير +15
Local خدمة اختصار روابط +15
Local كلمات حساسة أو استعجال +6 إلى +24

التصنيف النهائي:

  • 0–34 — غالبًا آمن safe
  • 35–69 — مشبوه suspicious
  • 70–100 — خطورة مرتفعة dangerous

التقنيات المستخدمة

الجزء التقنية
Frontend Next.js App Router + React + TypeScript
Styling CSS مخصص وواجهة RTL
Reputation Intelligence VirusTotal API
Isolated URL Analysis urlscan.io API
AI Explanation Groq API
State Integrity HMAC-SHA256 signed tokens
Tests Node.js Test Runner

هيكل الملفات المهم

app/
├── api/
│   └── url-intel/
│       ├── route.ts            # يبدأ الفحص ويجمع الأدلة الأولية
│       ├── security.ts         # إنشاء والتحقق من HMAC tokens
│       └── status/
│           └── route.ts        # متابعة نتيجة urlscan وإكمال التقرير
├── globals.css                 # الهوية البصرية والـresponsive styles
├── layout.tsx
└── page.tsx                    # الواجهة، إدخال الرابط وعرض التقرير

tests/
└── threat-intel.test.mjs       # اختبارات القواعد والحماية والكاش

التشغيل محليًا

المتطلبات

  • Node.js 20 أو أحدث.
  • npm.
  • مفاتيح API من VirusTotal وurlscan.io وGroq.

1. تنزيل المشروع

git clone https://github.com/ahmedfox1/kashif-ai
cd kashif-ai

2. تثبيت الحزم

npm install

3. إعداد متغيرات البيئة

أنشئ ملفًا باسم .env.local داخل مجلد المشروع:

VIRUSTOTAL_API_KEY=your_virustotal_api_key
URLSCAN_API_KEY=your_urlscan_api_key
GROQ_API_KEY=your_groq_api_key

# استخدم قيمة عشوائية طويلة ولا ترفعها إلى GitHub
SCAN_TOKEN_SECRET=replace_with_a_long_random_secret

يمكنك توليد secret آمن بالأمر التالي:

node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

لا تضف .env.local إلى Git، ولا تستخدم مفاتيح الـAPI داخل Client Components.

4. تشغيل بيئة التطوير

npm run dev

افتح http://localhost:3000 داخل المتصفح.

أوامر المشروع

npm run dev      # تشغيل بيئة التطوير
npm run lint     # فحص جودة الكود
npm test         # تشغيل اختبارات Threat Intelligence
npm run build    # إنشاء Production Build
npm start        # تشغيل نسخة الإنتاج

استخدام الـAPI

بدء فحص رابط

POST /api/url-intel
Content-Type: application/json
{
  "url": "https://example.com"
}

يرجع المسار النتيجة الأولية، وحالة الخدمات، وscanToken موقّعًا إذا تم إطلاق مهمة urlscan.

متابعة نتيجة الـSandbox

POST /api/url-intel/status
Content-Type: application/json
{
  "token": "SIGNED_SCAN_TOKEN"
}

لا يثق السيرفر في درجة أو نطاق مرسلين من المتصفح؛ جميع البيانات الحساسة تُستخرج من التوكن الموقّع ويُعاد التحقق منها على السيرفر.

الحماية الأمنية

SSRF Protection

يرفض كاشف، ضمن حالات الحماية، الروابط التي تستهدف:

  • localhost وعناوين loopback.
  • عناوين IPv4 وIPv6 الخاصة أو المحلية.
  • نطاقات تحتوي على بيانات دخول مدمجة مثل user:pass@host.
  • أهداف لا ينبغي لخدمة عامة الوصول إليها.

Prompt Injection Protection

  • لا يتم إرسال DOM أو محتوى الصفحة الخام إلى الموديل.
  • يحصل الموديل فقط على حقول Telemetry محددة ومنظّفة.
  • القواعد البرمجية هي المصدر الوحيد للدرجة والتصنيف.
  • عند فشل الموديل، يستمر النظام بتقرير احتياطي مبني على الأدلة.

Rate Limiting

  • حتى 15 طلب فحص في الدقيقة لكل IP.
  • حتى 40 طلب متابعة حالة في الدقيقة لكل IP.

Cache

تُحفظ Telemetry مؤقتًا لمدة 15 دقيقة لتقليل استهلاك حصص VirusTotal وurlscan وGroq.

التنفيذ الحالي داخل الذاكرة مناسب للتطوير أو نسخة تعمل على process واحد. عند النشر الأفقي أو Serverless متعدد النسخ، استخدم مخزنًا مشتركًا مثل Redis للحفاظ على اتساق الـcache والـrate limiting.

الاختبارات

يغطي جناح الاختبارات:

  • قواعد VirusTotal وurlscan.
  • تصنيف الدرجات وحدود الخطورة.
  • اكتشاف اختلاف Registrable Domain.
  • التعامل الصحيح مع النطاقات الفرعية وامتدادات مثل .com.eg و.co.uk.
  • فحوصات Punycode وHTTP واختصار الروابط.
  • دورة حياة HMAC token ورفض التلاعب.
  • حماية SSRF.
  • Rate limiting والـcache.

لتشغيل الاختبارات:

npm test

النتيجة الحالية: 11/11 اختبارات ناجحة.

الخصوصية والاستخدام المسؤول

  • قد يتم إرسال الرابط إلى VirusTotal وurlscan.io لإتمام الفحص.
  • لا ترسل روابط داخلية، سرية، مؤقتة أو تحتوي على tokens وبيانات حساسة.
  • راجع إعدادات الرؤية وسياسات الخصوصية وحدود الاستخدام لدى مزودي الخدمة قبل النشر العام.
  • لا تستخدم المشروع لفحص أنظمة لا تملكها أو لا تملك تصريحًا لاختبارها.

المساهمة

المساهمات مرحب بها:

  1. أنشئ Fork للمستودع.
  2. أنشئ branch جديدًا: git checkout -b feature/my-feature.
  3. أضف اختبارات للتغيير عند الحاجة.
  4. شغّل npm test && npm run lint && npm run build.
  5. افتح Pull Request يشرح المشكلة والحل.

المطور

تم تصميم وبناء كاشف بواسطة Ahmed Sameh.

إذا أعجبك المشروع، ضع ⭐ للمستودع وشارك الفيديو مع شخص تصله روابط مشبوهة باستمرار.


افحص قبل ما تضغط.

About

No description, website, or topics provided.

Resources

Stars

9 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages