تعزيز حراس الأمن من خلال التحليل المتقدم والذكاء الاصطناعي الجزء 1

مع تزايد تعقيد التهديدات السيبرانية، حيث تصبح البرمجيات الضارة المدعومة بذكاء اصطناعي والثغرات الصفرية والهجمات الداعمة من الدولة أكثر تعقيدًا، تواجه المؤسسات صعوبة متزايدة في حماية هويتها الرقمية.

26/09/2024 SintelSedat Akfidan 7 دقيقة قراءة
تعزيز حراس الأمن من خلال التحليل المتقدم والذكاء الاصطناعي الجزء 1

أدوات

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

تم تقديم توقيعات الوظائف داخل علامات 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: واقتباسات للمatch الدقيق."}, "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": "احصل على عنوان URL العام -> نص مقالة نظيفة. HTML عبر Mozilla Readability؛ PDF أكاديمي (arxiv/biorxiv/Nature/OpenReview/NeurIPS/JMLR/PMLR/Springer/PubMed-via-PMC) يتم اكتشافه تلقائيًا عبر نوع المحتوى، سحر %PDF، meta 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). يتم حظر الـ Loopback/الخاصة إلا إذا كان 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 أو وصف HTML meta (~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 و 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يحصل على النتائج من واجهة API Semgrep AppSec Findings.\n\nهذا الوظيفة تعيد نتائج الأمان ونوعية الكود والسلسلة التوريد التي تم تحديدها مسبقًا\nمن قبل عمليات Semgrep الماسحة وتم تحميلها على منصة Semgrep AppSec. لا يجري هذا أي مسح جديد أو تحليل مباشر للكود. بدلًا من ذلك، يجري استعلام API Semgrep للوصول إلى نتائج المسح التاريخية لمستودع معين أو مجموعة من المستودعات.\n\nالسلوك الافتراضي: بالفتراض، يجب أن يرشح هذا الأداة حسب المستودع الحالي. نموذج يجب أن يحدد اسم المستودع الحالي ويمرره في معلمة 'repos' لضمان أن النتائج محدودة بالكود المطلوب. ومع ذلك، يمكن للمستخدمين طلب نتائج من مستودعات أخرى بشكل صريح، وفي هذه الحالة يجب أن يحترم النموذج هذا الطلب.\n\nاستخدم هذه الوظيفة عندما يطلُب المُستخدم ملخصًا أو قائمة أو تحليلًا للنتائج الموجودة، مثل:\n - "يرجى قائمة 10 أمنية رئيسية واقتراح حلول لها."\n - "أظهر جميع الثغرات المفتوحة الحرجة في هذا المستودع."\n - "ملخص نتائج المسح الأخيرة لـ Semgrep."\n - "احصل على النتائج من المستودع X" (طلب صريح لمستودع مختلف)\n\nهذا الوظيفة مثالية للقيام بما يلي:\n- مراجعة، قائمة أو ملخص للنتائج من المسح السابق.\n- تقديم رؤى قابلة للتنفيذ أو نصائح لإصلاح بناءً على بيانات المسح السابقة.\n\nلا تستخدم هذه الوظيفة لإجراء مسح جديد أو فحص كود لم يتم تحليله سابقًا بواسطة\nSemgrep. للمسح الجديد، استخدم وظيفة المسح المناسبة.\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": "شدة المشكلات للاستبعاد.", "title": "الشدائد"}, "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": "حكم التriage التلقائي للمشكلات للاستبعاد. إذا لم يتم توفيره، يتم عودة جميع النتائج (بما في ذلك غير المصنفة).", "title": "حكم التriage التلقائي"}, "refs": {"default": [], "description": "قائمة بأسماء git refs (فروع) للاستبعاد النتائج. إذا لم يتم توفيرها، تُعاد فقط النتائج على الفرع الرئيسي.", "items": {"type": "string", "description": ""}, "title": "Refs", "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' و'map' ", "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": "CodePath", "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": {"description": "لغة البرمجة للكود", "title": "اللغة", "type": "string"}}, "required": ["code", "language"], "title":