الأمان 🔒
فحص سريع: mayros security audit
راجع أيضًا: التحقق الرسمي (نماذج الأمان)
قم بتشغيل هذا بانتظام (خاصة بعد تغيير التكوين أو تعريض أسطح الشبكة):
bashmayros 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
قائمة تدقيق الأمان
عندما يطبع التدقيق النتائج، عامل هذا كترتيب أولوية:
- أي شيء "مفتوح" + أدوات ممكّنة: قم بتأمين DMs/groups أولاً (pairing/allowlists)، ثم قم بتشديد سياسة الأداة/sandboxing.
- تعرض الشبكة العامة (ربط LAN، Funnel، مصادقة مفقودة): إصلاح فوري.
- تعرض التحكم في المتصفح عن بُعد: عامله كوصول مشغل (tailnet فقط، إقران العقد بشكل متعمد، تجنب التعرض العام).
- الأذونات: تأكد من أن state/config/credentials/auth ليست قابلة للقراءة للمجموعة/العالم.
- الإضافات/الامتدادات: قم بتحميل ما تثق به صراحةً فقط.
- اختيار النموذج: فضّل النماذج الحديثة المقواة بالتعليمات لأي روبوت مع أدوات.
المصطلحات المهمة
راجع تكوين Gateway للحصول على التفاصيل الكاملة.
الإبلاغ عن قضايا الأمان
وجدت ثغرة في Mayros؟ يرجى الإبلاغ بمسؤولية:
- البريد الإلكتروني: [email protected]
- لا تنشر علنًا حتى يتم الإصلاح
- سنمنحك الفضل (ما لم تفضل عدم الكشف عن هويتك)