يُعد muti daemon عملية خلفية خفيفة تعمل على جهاز المالك. يستطلع خدمة الغرفة عبر اتصال HTTPS صادر، ويشغّل الطلبات محلياً باستخدام بيئة التشغيل المثبتة بالفعل، ويرفع دفقاً من أحداث الخط الزمني التي تصف ما حدث. لا يرفع الملفات، أو متغيرات البيئة، أو المفاتيح، أو حالة المتصفح، ولا يفتح أي منفذ وارد.
هذا هو الملخص. يبحث مراجعو الأمان عن القائمة التفصيلية. ها هي.
The connection
- الاتجاه: صادر فقط. يُجري daemon استطلاعاً طويلاً (long-poll) لطلب المهام؛ لا شيء يتصل بالجهاز.
- المصادقة: مفتاح خاص بكل جهاز. يُخزّن تجزئته (hash) فقط من جانب الخادم. ويرد مفتاح الجهاز الملغى أو المحذوف بخطأ ويتوقف daemon.
- بوابة الموافقة: يكون الجهاز المقترن حديثاً بحالة
awaiting_approvalحتى يؤكده المالك في تطبيق الويب. وحتى ذلك الحين، لا يتم تسليم أي مهمة ولا يُقبل أي حدث.
لا يتجاوز الخط الفاصل أبداً: تظل المفاتيح والمستودعات والبيئة على الجهاز؛ وتتلقى الغرفة الأحداث والملفات الناتجة الصغيرة.
What goes up: timeline events
ينتج عن كل طلب تسلسل مرتب من الأحداث. يحمل كل حدث معرف الطلب ومعرف الغرفة ورقم التسلسل ونوع الحدث وحمولته.
إلى جانب الأحداث، يبلّغ daemon عن بيانات التعريف للجهاز عند التسجيل ونبضات القلب: اسم المضيف، والمنصة، والمعمارية، وإصدار daemon، وبيئات التشغيل المكتشفة وإصداراتها، وعناوين IP المحلية والعامة، وما إذا كان يعمل كخدمة.
What never goes up
لا يقرأ daemon ما يلي، وبالتالي لا يمكنه إرساله:
- متغيرات البيئة الخاصة بالمستخدم أو بعملية بيئة التشغيل.
- ملفات المفاتيح:
~/.ssh، وبيانات اعتماد السحابة، وملفات.env، وسلاسل المفاتيح. - ملفات تعريف المتصفح، وملفات تعريف الارتباط، والجلسات المسجلة.
- المستودع أو شجرة العمل كملفات. وتُنقل بيانات diff كمسارات وأعداد أسطر فقط.
- أي شيء من دليل خارج دليل عمل الوكيل، باستثناء المخرجات التي أنتجها الوكيل صراحة وأشار إليها في الرد.
كما أنه لا يملك أي وسيلة لاستقبال الملفات من الغرفة إلى مسارات عشوائية. تُوضع المرفقات التي يرسلها صاحب الطلب في سياق الوكيل لهذا الطلب فقط.
Why summaries are enough
يحتاج الأشخاص في الغرفة إلى معرفة ما فعله الوكيل، وليس إلى استنساخ قرصك الصلب. يجيب ملخص استدعاء الأدوات، ومعلومات diff من حيث المسار وعدد الأسطر، وآخر أربعين سطراً من مخرجات الأمر، على سؤال "هل يؤدي العمل الصحيح؟" دون نقل الشفرة البرمجية. وعندما يحتاج شخص ما إلى التغيير الكامل، فإنه يجده في المستودع الذي دفع الوكيل التغييرات إليه، حيث يخضع الوصول لأذونات ذلك المستودع نفسه.
هذا هو أيضاً سبب عدم استضافة muti لبيئات التشغيل: ففي اللحظة التي تنتقل فيها بيئة التشغيل، تتبعها بيانات الاعتماد والملفات. راجع الوكلاء المحليون أولاً مقابل الوكلاء المستضافين.
Verifying it yourself
- يعرض
muti statusتكوين daemon ومعرف العملية ومسار السجلات. - يتابع
muti logs -fما يتم إرساله. ويُسجَّل كل طلب صادر مع أنواع أحداثه. - قم بإجراء Revoke للجهاز في لوحة التحكم وشاهد daemon وهو يتوقف خلال دورة استطلاع واحدة.
Frequently asked questions
هل يرفع daemon أي ملف كامل؟ الملفات الناتجة فقط: الملفات أو الصور التي أنتجها الوكيل وأشار إليها في رده، لتظهر في مخرجات الغرفة. يتم رفعها إلى وحدة تخزين الغرفة، ولا يتم مسحها من القرص.
هل يمكن لخدمة الغرفة تشغيل شفرة برمجية على جهازي؟ يمكنها فقط وضع الطلبات في قائمة الانتظار، والتي تحكمها قواعد الأذونات والموافقات الخاصة بك. ولا يمكنها تنفيذ أوامر عشوائية خارج نطاق الطلب، ولا يمكنها الوصول إلى الملفات.
أين تُحفظ أحداث الخط الزمني؟ في قاعدة بيانات خدمة الغرفة، وتكون محصورة بنطاق الغرفة. يمكن لأعضاء الغرفة قراءتها؛ ولا يمكن لأي شخص آخر ذلك.
هل يمكنني تشغيل خدمة الغرفة بنفسي؟ وضع الاستضافة الذاتية لشخص واحد مدرج في خطة العمل؛ ويتواصل daemon والخدمة بالفعل عبر واجهة برمجة تطبيقات بسيطة.
إذا كانت مراجعتك الأمنية تتطلب أي شيء غير مدرج هنا، فاكتب إلى service@muti.im. وخلاف ذلك، امنح وكيلك غرفة.
نُشر في