تقنية جديدة تتيح لك التجسس على حركة المرور عبر الـVPN

تقنية تُعرف باسم "TunnelVision" تتيح للمجرمين الإلكترونيين رؤية حركة المرور الخاصة بضحاياهم في أي نظام لشبكات الـVPN.

15/05/2024 SintelSedat Akfidan 7 دقيقة قراءة
تقنية جديدة تتيح لك التجسس على حركة المرور عبر الـVPN

أدوات

يمكنك استدعاء وظيفة أو أكثر لمساعدتك في استعلام المستخدم.

تم تقديم توقيعات الوظائف داخل علامات XML : {"type": "function", "function": {"name": "google-surf__search", "description": "بحث جوجل فردي -> عنوان / رابط / ملخص لكل نتيجة. يتم تخزين النتائج لمدة 24 ساعة، لذا فإن تكرار الاستعلام مجاني - يفضل إعادة الاستعلام على تخزين النتائج بشكل منفصل. للحصول على أحدث / اليوم / استفسارات كسرية ضع SURF_CACHE_TTL_SEARCH_MS=0 لتجاوز التخزين المؤقت. الحد الافتراضي 10 (최대 20). المكالمة الأولى ~4s (تسخين Chromium)، ثم ~2s. عند CAPTCHA يفتح Chrome مرئيًا لحله (حماية IP مشترك)؛ SURF_CLOUD_MODE=true يجعله يفشل بسرعة بدلاً من ذلك.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"query": {"type": "string", "minLength": 1, "maxLength": 400, "description": "سؤال بحث جوجل. استخدم ترشيحات site: واقotes للحصول على مطابقة دقيقة."}, "limit": {"default": 10, "description": "عدد النتائج القصوى (القيمة الافتراضية 10).", "type": "integer", "minimum": 1, "maximum": 20}}, "required": ["query"]}}} {"type": "function", "function": {"name": "google-surf__search_parallel", "description": "تشغيل 2-10 بحث جوجل في وقت واحد. استخدمه لمقارنة زوايا متعددة في مكالمة واحدة. كل سؤال يحسب ضد الحد المعدل الداخلي (~10/دقيقة) - لا تكرر هذا للحصول على بيانات مسح كبيرة. المكالمة الأولى تضيف 5-10s للتدفئة في المسبار. فشل كل سؤال مفصول في صفوف النتائج. المعطل في الوضع السحابي.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"queries": {"minItems": 1, "maxItems": 10, "type": "array", "items": {"type": "string", "description": ""}, "description": "2-10 استفسارات لتشغيلها في وقت واحد."}, "limit": {"default": 10, "description": "عدد النتائج لكل استفسار.", "type": "integer", "minimum": 1, "maximum": 20}}, "required": ["queries"]}}} {"type": "function", "function": {"name": "google-surf__extract", "description": "احصل على رابط علني واحد -> نص مقالة نظيفة. HTML عبر Mozilla Readability؛ يتم اكتشاف PDF الأكاديمي (arxiv/biorxiv/Nature/OpenReview/NeurIPS/JMLR/PMLR/Springer/PubMed-via-PMC) تلقائيًا عبر Content-Type، %PDF سحر، citation_pdf_url متغير، وقواعد URL لكل مجال. العمق التدريجي: mode=\"abstract\" يعود ~1500 حرف (صفحة PDF 1 أو وصف HTML meta) - مسح رخيص لتحديد الأهمية قبل دفع تكلفة كامل الجسم. mode=\"full\" (القيمة الافتراضية) يعود كامل المقالة. أفضل جهد: الفشل يعود معلومات خطأ بدلًا من رمي الخطأ.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"url": {"type": "string", "description": "URL علني http(s). يتم حظر IPs العائدة إلا إذا كان SURF_ALLOW_PRIVATE=true."}, "max_chars": {"default": 8000, "description": "قص الجسم إلى هذا العدد من الأحرف (القيمة الافتراضية 8000، يتم تحديدها عبر SURF_EXTRACT_MAX_CHARS).", "type": "integer", "minimum": 200, "maximum": 50000}, "mode": {"default": "full", "description": "عمق الاستخراج. full = كامل جسم المقالة (القيمة الافتراضية؛ تستخدم Playwright إذا لزم الأمر). abstract = مسح رخيص: صفحة PDF 1 أو وصف meta HTML (~1500 حرف)؛ استخدم لتحديد الأهمية قبل دفع تكلفة النص الكامل. metadata = عدد الصفحات فقط (PDF). يتم اكتشاف PDF الأكاديمي تلقائيًا (arxiv/biorxiv/Nature/OpenReview/NeurIPS/JMLR/PMLR/Springer/PubMed-via-PMC)؛ الوضع المجرد يخطو Playwright لـهم.", "type": "string", "enum": ["full", "abstract", "metadata"]}}, "required": ["url"]}}} {"type": "function", "function": {"name": "google-surf__search_extract", "description": "بحث جوجل واحد + استخراج متوازي للنتائج العليا. الوضع الافتراضي mode=\"abstract\" يعود SERP مع ملخصات ~1500 حرف لكل نتيجة - مسح رخيص لتحديد ما الذي تحتويه النتائج العليا فعليًا، أقل عدد من الرموز من تحميل جميع الأجسام. قم بتغيير إلى mode=\"full\" فقط عندما تحتاج إلى نصوص المقالات الفعلية (أبطأ، عدد رموز أكثر بكثير). يتم عزل فشل كل صفحة. المعطل في الوضع السحابي.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {"query": {"type": "string", "minLength": 1, "maxLength": 400, "description": "سؤال البحث."}, "limit": {"default": 5, "description": "عدد النتائج للاستخراج (القيمة الافتراضية 5، الحد الأقصى 10).", "type": "integer", "minimum": 1, "maximum": 10}, "max_chars": {"description": "قص كل جسم نتيجة. الافتراضي يعتمد على الوضع: ~1500 لملخص، 8000 للجسوم الكاملة (SURF_EXTRACT_MAX_CHARS، محدود إلى 20000 هنا).", "type": "integer", "minimum": 200, "maximum": 20000}, "mode": {"default": "abstract", "description": "عمق الاستخراج لكل نتيجة. abstract (القيمة الافتراضية) = مسح رخيص، ~1500 حرف / نتيجة، مثالي لتحديد الأهمية. full = الجسم الكامل لكل نتيجة، أبطأ وأكثر رموزًا؛ فقط عندما تحتاج فعليًا إلى نصوص المقالات.", "type": "string", "enum": ["full", "abstract"]}}, "required": ["query"]}}} {"type": "function", "function": {"name": "google-surf__health", "description": "حالة خادم MCP: الوضع المتسلسل + الانتقالات، استخدام المحدد الزمني، الحجم المؤقت، الإعدادات. قم بإجراء هذا إذا بدأت البحوث بالفشل أو العودة فارغة - تحقق من cascade.totalCaptchas وrateLimiter.queueSize، وتقليل حجم البحث إذا كانت مرتفعة.", "parameters": {"$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": {}}}} {"type": "function", "function": {"name": "semgrep__semgrep_rule_schema", "description": "\nاحصل على نموذج قاعدة Semgrep\n\nاستخدم هذه الأداة عندما تحتاج إلى:\n - الحصول على النموذج المطلوب لكتابة قاعدة Semgrep\n - تحتاج إلى رؤية ما هي الحقول المتاحة لقاعدة Semgrep\n - التحقق من ما هي الحقول المتاحة لقاعدة Semgrep\n - التحقق من تركيب قاعدة Semgrep\n", "parameters": {"properties": {}, "title": "semgrep_rule_schemaArguments", "type": "object"}}} {"type": "function", "function": {"name": "semgrep__get_supported_languages", "description": "\nيعيد قائمة اللغات المدعومة من قبل Semgrep\n\nاستخدم هذه الأداة فقط إذا كنت غير متأكد من اللغات التي يدعمها Semgrep.\n", "parameters": {"properties": {}, "title": "get_supported_languagesArguments", "type": "object"}}} {"type": "function", "function": {"name": "semgrep__semgrep_findings", "description": "\nيجلب النتائج من واجهة برمجة التطبيقات Semgrep AppSec Platform Findings.\n\nهذه الوظيفة تجلب النتائج الأمنية، ونوعية الشفرة، والسلسلة التوريد التي تم تحديدها بالفعل من قبل مسح Semgrep السابقة وتم رفعها إلى منصة Semgrep AppSec. لا تؤدي هذه الوظيفة مسحًا جديدًا أو تحليل الشفرة مباشرة. بدلًا من ذلك، تشير إلى واجهة برمجة التطبيقات Semgrep للوصول إلى النتائج السابقة لمسح معين في مستودع معين أو مجموعة من المستودعات.\n\nالسلوك الافتراضي: بالعامة، يجب أن ترشح هذه الأداة حسب المستودع الحالي. يجب أن يحدد النموذج اسم المستودع الحالي ويمرره في معلمة 'repos' لضمان أن تكون النتائج محدودة بقاعدة الشفرة المناسبة. ومع ذلك، يمكن للمستخدمين طلب النتائج من مستودعات أخرى صراحة، وفي هذه الحالة يجب أن يحترم النموذج هذا الطلب.\n\nاستخدم هذه الوظيفة عندما يطلب طلب تقرير ملخص أو قائمة أو تحليل للنتائج الموجودة، مثل:\n - "من فضلك قم بسرد أعلى 10 نتائج أمنية واقترح حلولًا لها."\n - "أظهر جميع الثغرات الخطيرة المفتوحة في هذا المستودع."\n - "ملخص النتائج الأخيرة لمسح Semgrep."\n - "احصل على النتائج من المستودع X" (طلب صريح لمستودع مختلف)\n\nهذه الوظيفة مناسبة للقيام ب:\n- مراجعة، قائمة أو تلخيص للنتائج من المسح السابق.\n- تقديم رؤى قابلة للتنفيذ أو نصائح لإصلاح بناءً على بيانات المسح السابقة.\n\nلا تستخدم هذه الوظيفة لإجراء مسح جديد أو فحص شفرة لم يتم تحليلها سابقًا من قبل Semgrep. لمسح جديد، استخدم وظيفة المسح المناسبة.\n", "parameters": {"properties": {"issue_type": {"default": "ISSUE_TYPE_SAST", "description": "نوع المشكلة لترشيحها.", "enum": ["ISSUE_TYPE_SAST", "ISSUE_TYPE_SCA"], "title": "نوع المشكلة", "type": "string"}, "repos": {"default": [], "description": "قائمة بأسماء المستودعات لترشيحها. تضمين المالك وأسماء المستودع، مثال 'owner/repository'", "items": {"type": "string", "description": ""}, "title": "المستودعات", "type": "array"}, "status": {"default": "ISSUE_TAB_OPEN", "description": "حالة المشكلة لترشيحها.", "enum": ["ISSUE_TAB_OPEN", "ISSUE_TAB_CLOSED", "ISSUE_TAB_IGNORED", "ISSUE_TAB_REVIEWING", "ISSUE_TAB_FIXING"], "title": "الحالة", "type": "string"}, "severities": {"anyOf": [{"items": {"enum": ["SEVERITY_CRITICAL", "SEVERITY_HIGH", "SEVERITY_MEDIUM", "SEVERITY_LOW"], "type": "string", "description": ""}, "type": "array", "description": ""}, {"type": "null", "description": ""}], "default": null, "description": "الdegrees الحادة للمشاكل لترشيحها.", "title": "Degrees"}, "confidence": {"anyOf": [{"items": {"enum": ["CONFIDENCE_HIGH", "CONFIDENCE_MEDIUM", "CONFIDENCE_LOW"], "type": "string", "description": ""}, "type": "array", "description": ""}, {"type": "null", "description": ""}], "default": null, "description": "الثقة في المشكلات لترشيحها.", "title": "الثقة"}, "autotriage_verdict": {"anyOf": [{"enum": ["VERDICT_TRUE_POSITIVE", "VERDICT_FALSE_POSITIVE"], "type": "string", "description": ""}, {"type": "null", "description": ""}], "default": null, "description": "الحكم التلقائي للمشاكل لترشيحها. إذا لم يُقدّم، يتم العودة بالنتائج ذات أي حكم (بما في ذلك غير مقيّمة).", "title": "الحكم التلقائي"}, "refs": {"default": [], "description": "قائمة بأسماء الفرع (الفرع) لترشيح النتائج. إذا لم يُقدّم، تعود فقط النتائج على الفرع الرئيسي.", "items": {"type": "string", "description": ""}, "title": "المرجعيات", "type": "array"}, "limit": {"default": 10, "description": "عدد الأقصى من النتائج العودة", "title": "الحد الأقصى", "type": "integer"}}, "title": "semgrep_findingsArguments", "type": "object"}}} {"type": "function", "function": {"name": "semgrep__semgrep_scan_with_custom_rule", "description": "\nيقوم بتشغيل مسح Semgrep باستخدام قاعدة مخصصة على محتوى الملفات الكودية\nويعيد النتائج بصيغة JSON\n\nاستخدم هذه الأداة عندما تحتاج إلى:\n - مسح ملفات الكود لفحص ثغرات أمنية غير المغطاة بقواعد Semgrep الافتراضية\n - مسح ملفات الكود لفحص مشاكل معينة غير المغطاة بقواعد Semgrep الافتراضية\n", "parameters": {"$defs": {"CodeFile": {"properties": {"path": {"description": "مسار ملف الكود", "title": "المسار", "type": "string"}, "content": {"description": "محتوى ملف الكود", "title": "المحتوى", "type": "string"}}, "required": ["path", "content"], "title": "ملف الكود", "type": "object"}}, "properties": {"code_files": {"description": "قائمة من القواميس التي تحتوي على مفاتيح 'path' و 'content'", "items": {"$ref": "#/$defs/CodeFile", "description": ""}, "title": "ملفات الكود", "type": "array"}, "rule": {"description": "نص قاعدة Semgrep باللغة YAML", "title": "القاعدة", "type": "string"}}, "required": ["code_files", "rule"], "title": "semgrep_scan_with_custom_ruleArguments", "type": "object"}}} {"type": "function", "function": {"name": "semgrep__semgrep_scan", "description": "\nيقوم بتشغيل مسح Semgrep محليًا على ملفات الكود المقدمة ويؤدي النتائج بصيغة JSON.\n\nيتم توقع الملفات كمسارات مطلقة إلى ملفات الكود.\n\nاستخدم هذه الأداة عندما تحتاج إلى:\n - مسح ملفات الكود لفحص ثغرات أمنية\n - مسح ملفات الكود لفحص مشاكل أخرى\n", "parameters": {"$defs": {"CodePath": {"properties": {"path": {"description": "مسار مطلق لملف الكود", "title": "المسار", "type": "string"}}, "required": ["path"], "title": "ملف الكود", "type": "object"}}, "properties": {"code_files": {"description": "قائمة من القواميس التي تحتوي على مفاتيح 'path' التي تشير إلى مسارات مطلقة لملفات الكود", "items": {"$ref": "#/$defs/CodePath", "description": ""}, "title": "ملفات الكود", "type": "array"}}, "required": ["code_files"], "title": "semgrep_scanArguments", "type": "object"}}} {"type": "function", "function": {"name": "semgrep__get_abstract_syntax_tree", "description": "\nيعيد شجرة التعبير المجردة (AST) لملف الكود المقدم بصيغة JSON\n\nاستخدم هذه الأداة عندما تحتاج إلى:\n - الحصول على شجرة التعبير المجردة (AST) لملف الكود المقدم\n - الحصول على AST لملف\n - فهم بنية الكود بشكل أكثر تفصيلًا\n - رؤية ما يراه المفسر في الكود\n", "parameters": {"properties": {"code": {"description": "الكود للحصول على AST له", "title": "الكود", "type": "string"}, "language":