الأمان 🔒

فحص سريع: mayros security audit

راجع أيضًا: التحقق الرسمي (نماذج الأمان)

قم بتشغيل هذا بانتظام (خاصة بعد تغيير التكوين أو تعريض أسطح الشبكة):

bash
mayros security audit
mayros security audit --deep
mayros security audit --fix
mayros security audit --json

يشير إلى الأخطاء الشائعة (تعرض مصادقة Gateway، تعرض التحكم في المتصفح، قوائم السماح المرتفعة، أذونات نظام الملفات).

Mayros هو كل من منتج وتجربة: أنت تربط سلوك النموذج الأمامي في أسطح المراسلة الحقيقية والأدوات الحقيقية. لا يوجد إعداد "آمن تمامًا". الهدف هو أن تكون متعمدًا بشأن:

  • من يمكنه التحدث إلى الروبوت الخاص بك
  • أين يُسمح للروبوت بالتصرف
  • ما الذي يمكن للروبوت لمسه

ابدأ بأصغر وصول لا يزال يعمل، ثم قم بتوسيعه مع اكتساب الثقة.

افتراض النشر (مهم)

يفترض Mayros أن المضيف وحدود التكوين موثوقة:

  • إذا كان شخص ما يمكنه تعديل حالة/تكوين مضيف Gateway (~/.mayros، بما في ذلك mayros.json)، عامله كمشغل موثوق.
  • تشغيل Gateway واحد لعدة مشغلين غير موثوقين/متعارضين ليس إعدادًا موصى به.
  • للفرق ذات الثقة المختلطة، قسّم حدود الثقة ببوابات منفصلة (أو على الأقل مستخدمي/مضيفي نظام تشغيل منفصلين).

خط أساس مُقوى في 60 ثانية

استخدم هذا الخط الأساسي أولاً، ثم أعد تمكين الأدوات بشكل انتقائي لكل وكيل موثوق:

json5
{
  gateway: {
    mode: "local",
    bind: "loopback",
    auth: { mode: "token", token: "replace-with-long-random-token" },
  },
  session: {
    dmScope: "per-channel-peer",
  },
  tools: {
    profile: "messaging",
    deny: ["group:automation", "group:runtime", "group:fs", "sessions_spawn", "sessions_send"],
    fs: { workspaceOnly: true },
    exec: { security: "deny", ask: "always" },
    elevated: { enabled: false },
  },
  channels: {
    whatsapp: { dmPolicy: "pairing", groups: { "*": { requireMention: true } } },
  },
}

هذا يحافظ على Gateway محليًا فقط، يعزل DMs، ويعطل أدوات مستوى التحكم/وقت التشغيل افتراضيًا.

قاعدة صندوق الوارد المشترك السريعة

إذا كان أكثر من شخص واحد يمكنه إرسال DM إلى الروبوت الخاص بك:

  • عيّن session.dmScope: "per-channel-peer" (أو "per-account-channel-peer" للقنوات متعددة الحسابات).
  • احتفظ بـ dmPolicy: "pairing" أو قوائم سماح صارمة.
  • لا تجمع أبدًا DMs المشتركة مع وصول أداة واسع.
  • هذا يُقوي صناديق الوارد التعاونية/المشتركة، لكنه غير مصمم كعزل مستأجر مشترك معادٍ عندما يشارك المستخدمون وصول الكتابة إلى المضيف/التكوين.

ما يفحصه التدقيق (مستوى عالٍ)

  • الوصول الوارد (سياسات DM، سياسات المجموعة، قوائم السماح): هل يمكن للغرباء تشغيل الروبوت؟
  • نطاق انفجار الأداة (أدوات مرتفعة + غرف مفتوحة): هل يمكن أن يتحول حقن المطالبة إلى إجراءات shell/file/network؟
  • تعرض الشبكة (ربط/مصادقة Gateway، Tailscale Serve/Funnel، رموز مصادقة ضعيفة/قصيرة).
  • تعرض التحكم في المتصفح (العقد البعيدة، منافذ الترحيل، نقاط نهاية CDP البعيدة).
  • نظافة القرص المحلي (الأذونات، الروابط الرمزية، تضمينات التكوين، مسارات "المجلد المتزامن").
  • الإضافات (الامتدادات موجودة بدون قائمة سماح صريحة).
  • انحراف السياسة/التكوين الخاطئ (إعدادات docker sandbox مُكونة لكن وضع sandbox معطل؛ أنماط gateway.nodes.denyCommands غير فعالة؛ tools.profile="minimal" العام مُتجاوز بواسطة ملفات تعريف لكل وكيل؛ أدوات إضافة الامتداد قابلة للوصول تحت سياسة أداة متساهلة).
  • انحراف توقع وقت التشغيل (على سبيل المثال tools.exec.host="sandbox" بينما وضع sandbox معطل، والذي يعمل مباشرة على مضيف البوابة).
  • نظافة النموذج (تحذير عندما تبدو النماذج المُكونة قديمة؛ ليس حظرًا صارمًا).

إذا قمت بتشغيل --deep، يحاول Mayros أيضًا فحص Gateway المباشر بأفضل جهد.

خريطة تخزين بيانات الاعتماد

استخدم هذا عند تدقيق الوصول أو تقرير ما يجب نسخه احتياطيًا:

  • WhatsApp: ~/.mayros/credentials/whatsapp/<accountId>/creds.json
  • رمز روبوت Telegram: config/env أو channels.telegram.tokenFile
  • رمز روبوت Discord: config/env (ملف الرمز غير مدعوم بعد)
  • رموز Slack: config/env (channels.slack.*)
  • قوائم سماح الإقران: ~/.mayros/credentials/<channel>-allowFrom.json
  • ملفات تعريف مصادقة النموذج: ~/.mayros/agents/<agentId>/agent/auth-profiles.json
  • استيراد OAuth القديم: ~/.mayros/credentials/oauth.json

قائمة تدقيق الأمان

عندما يطبع التدقيق النتائج، عامل هذا كترتيب أولوية:

  1. أي شيء "مفتوح" + أدوات ممكّنة: قم بتأمين DMs/groups أولاً (pairing/allowlists)، ثم قم بتشديد سياسة الأداة/sandboxing.
  2. تعرض الشبكة العامة (ربط LAN، Funnel، مصادقة مفقودة): إصلاح فوري.
  3. تعرض التحكم في المتصفح عن بُعد: عامله كوصول مشغل (tailnet فقط، إقران العقد بشكل متعمد، تجنب التعرض العام).
  4. الأذونات: تأكد من أن state/config/credentials/auth ليست قابلة للقراءة للمجموعة/العالم.
  5. الإضافات/الامتدادات: قم بتحميل ما تثق به صراحةً فقط.
  6. اختيار النموذج: فضّل النماذج الحديثة المقواة بالتعليمات لأي روبوت مع أدوات.

المصطلحات المهمة

راجع تكوين Gateway للحصول على التفاصيل الكاملة.

الإبلاغ عن قضايا الأمان

وجدت ثغرة في Mayros؟ يرجى الإبلاغ بمسؤولية:

  1. البريد الإلكتروني: [email protected]
  2. لا تنشر علنًا حتى يتم الإصلاح
  3. سنمنحك الفضل (ما لم تفضل عدم الكشف عن هويتك)