الأمن — مبني لوكلاء لا يمكنك الوثوق بهم تمامًا.
السؤال الأمني المفيد عن أسطول وكلاء ليس «هل النموذج آمن» — بل: ما الذي يمكن الوصول إليه من حيث يعمل الوكيل، ومن يستطيع إثبات ما حدث بعد ذلك. Saphan Studio مبني حول هذا السؤال.
الوضعية الأمنية
نموذج التهديد، بصراحة
تختلف أساطيل الوكلاء عن التكامل المستمر (CI) في ثلاثة أوجه: التعليمات غير معروفة سلفًا، والوكيل قابل للإقناع بأي نص يقرؤه، وهو مثابر بكل «حسن نية» على الالتفاف حول العقبات. لذا يجب معاملة الوكيل بوصفه غير موثوق حتى عندما لا يكون خبيثًا — فلا مورّد يستطيع أن يعدك بنموذج غير قابل للإقناع، لأن حقن التعليمات خاصية في طريقة عمل هذه الأنظمة، لا خللًا ينتظر رقعة.
هوية بلا رمز انضمام
تنضم الآلة إلى الأسطول بفعل صريح من المالك — لا توجد نقطة تسجيل ولا رمز انضمام يمكن أن يتسرب. تُسَكّ المفاتيح على الآلة ولا تغادرها أبدًا. ومستوى التحكم يتصل نحو الخارج فقط: المشغِّل لا يحمل أي بيانات اعتماد إليه ولا يفتح أي منفذ وارد — والخدمات التي تستضيفها تعيش على بنيتك التحتية أنت، حيث يراقب فريق العمليات لديك أصلًا.
محصور، أو مرفوض
كل عملية تشغيل محصورة على مستوى نظام التشغيل، والكتابة مرفوضة افتراضيًا — والسجل يسمي ما الذي فرض الحصر فعلًا، لا ما طُلب، فيكون الادعاء ادعاءً يستطيع فريقك أنت إعادة إنتاجه. والآلة التي لا تستطيع إثبات قدرتها على حصر عملية تشغيل لا تحصل على تلك العملية: رفضٌ، لا تدهور صامت أبدًا.
الخروج الشبكي: سياسة مسماة، أو القائمة الأساسية للواجهة الخلفية — لا شبكة مفتوحة افتراضيًا مغلق افتراضيًا
يصل التشغيل إلى الشبكة عبر بابه وحده، ولا يقبل الباب اتصالًا إلا حين تسمح تلك السياسة بذلك المضيف على ذلك المنفذ — «هذا المضيف، أي منفذ» لا يمكن حتى كتابته، لأن جهازًا تثق به على منفذ ليس جهازًا تثق به على كل منفذ. داخل السياسة، الرفض الكامل هو الأرضية: لا وضع «سجّل واسمح»، ولا طبقة سماح افتراضية، والجهاز الذي لا يستطيع إنفاذ قطع الشبكة يرفض التشغيل بدل أن يبدأه مفتوحًا.
التشغيل الذي لا يعلن سياسة ليس تشغيلًا مفتوحًا. يحصل على القائمة الأساسية المرفقة بواجهته الخلفية — المضيفات التي يحتاجها الوكيل للوصول إلى نموذجه، إضافة إلى سجلات الحزم الخاصة بفئة صلاحياته — وتُرفض كل وجهة أخرى. فتح الشبكة فعل صريح واحد مع سبب، يُسجَّل مع من قام به. ثلاثة أنواع من التشغيل لا قائمة أساسية لها، وسجلاتها تقول ذلك: تشغيل فُتح بهذه الطريقة، وتشغيل أداة حتمية لا اتصال لها بنموذج، وتشغيل داخل حاوية لا تمنح فئتها شبكة أصلًا. اشتقاق سياسة التشغيل من جهازه أو مقعده غير مُسلَّم؛ ولا يُقدَّم على أنه مُسلَّم.
لا يستطيع ضابط الخروج قراءة محتوى الطلب
باب الخروج لا ينهي TLS ولا يحلل HTTP. لا يملك شهادة اعتراض ولا مفتاحًا خاصًا، ولذلك لا يمكنه وضع متون الطلبات أو مسارات URL في أي سجل — البيانات لا توجد أصلًا في شكل يمكن تدوينه. التحكم في الاتصال والتحكم في محتوى الطلب قدرتان مختلفتان؛ Saphan يقوم بالأولى.
ما يحفظه السجل. على صف التشغيل: خلاصة السياسة التي حكمته. لكل اتصال، للتشغيلات على جهاز مستوى التحكم نفسه: المضيف والمنفذ المطلوبان، الحكم، فئة السبب، الوقت وهوية السياسة التي قررت. للتشغيلات المُرسَلة عبر SSH لا يعود سجل كل اتصال بعد؛ الخلاصة تعود.
تبقى قيم الأسرار خارج السجل وظرف الإرسال
تحمل أنواع التهيئة والإرسال والتدقيق والتكلفة أسماء الأسرار ومراجعها فقط، لا قيمها، فلا يكشفها التسجيل الاعتيادي. ويعطل التنفيذ البعيد تمرير البيئة. قد تستخدم العملية المالكة للاعتماد السر عند الحاجة إلى المصادقة، لكن القيمة لا تُنسخ إلى السجل التشغيلي أو الأدلة أو بيانات التكلفة أو ظرف التنفيذ البعيد.
يبقى git ملكك
يظل git نظام السجل لشيفرتك، والمحرك لا يكتب فيه أبدًا. إنما يرصد الإيداعات والفروع وعمليات الدمج عبر حدٍّ للقراءة فقط — مفروض على نحو متطابق في الإنتاج وتحت الاختبار. والدمج فعل بشري في أدواتك أنت، ويبقى كذلك.
حدود موثَّقة
الوثيقة الأمنية التي لا تذكر أي حدود تسويقٌ. وثيقتنا تحمل قسمًا للحدود — ما الذي لا يحمي النظام منه، مذكورًا بوضوح، ومُبقًى محدَّثًا مع حركة النظام.
نشاركها في العناية الواجبة، ونفضّل أن تقرأها قبل أن تشتري على أن تكتشفها بعد ذلك.
المزيد من Saphan Studio
الحوكمة — قرارات مدوَّنة في السجل ←المؤسسات — نظرة المدقِّق ←مبني على Saphan Protocol ←
استفسارات شركاء التصميم
تواصل معنا — [email protected]