PowerShell / المتقدم: البعيد والأمان والحالة المطلوبة والموثوقية / الدرس 14
تصميم الثقة والأسرار وأقل امتياز
افصل ثقة البرنامج وسياسة التنفيذ وقيد اللغة وتخويل النهاية وتخزين السر وكشف التشخيص.
في هذه الصفحة
أهداف الدرس
- شرح لماذا ليست سياسة التنفيذ حد أمان.
- إبعاد غير الموثوق من التقييم التنفيذي.
- تتبع السر والامتياز مستقلاً عن القواعد.
ليست سياسة التنفيذ نظام تخويل
السياسة ميزة سلامة مرتبطة بويندوز لا تمنع مصمماً على الشيفرة ولا تعزل كل منصة. يدعم التوقيع الأصل ولا يثبت البراءة أو التخويل. لا تبدأ بالتجاوز؛ حدد المحظور والمصدر والضوابط والسلطة. لا نغير سياسة أو سجلاً أو نهاية أو ضابطاً. ويمكن أن يدعم التوقيع قرار الثقة بالمصدر دون أن يثبت ملاءمة الآثار للهدف، لذلك تظل مراجعة النطاق والمدخل والامتياز مطلوبة قبله.
يجب ألا تصبح البيانات أمراً للراحة
يدخل Invoke-Expression والكتل المنشأة تقييماً جديداً لا يجيزه الاقتباس. اختر الأمر ومرر المعامل المتحقق وافحص المسار والوحدة والمجال. للمنتظم والصيغة وJSON معنى عند التالي لا يكفيه هروب الصدفة. تحقق من تلقي محارف آمنة لا هجوم بالمضيف. وقد يفسر برنامج تال النص كخيار أو تعبير رغم صحة اقتباسه، لذلك يجب التحقق من واجهته مستقلاً عن ضمان حدود وسائط الصدفة.
تحتاج قيود اللغة وأدوار النهاية سياقاً مفروضاً
للقيد والتكامل أدوار موثقة لا يكافئها تفضيل أو تسمية. توفر JEA إدارة مقيدة بويندوز بإعداد وأدوار لا إخفاء أسماء فقط. راجع الهوية والمسموح والمعامل والتدقيق والتعافي؛ وقد يكشف Get حساساً. لا نهيئ نهاية أو سياسة. ولا تصبح تسمية جلسة مقيدة أو إخفاء بعض الأوامر سياسة مفروضة، بل يحتاج دور الإدارة إلى إعداد فعلي وحدود معاملات وتدقيق وتعاف موثقة.
لا يمحو الغلاف المحمي كل مسار كشف
لـ SecureString والاعتماد حماية بسياق لا ضمان تشفير كل منصة. ولمدير السر وخزائنه اعتماد وعمر. لا تضمن السر بالبرنامج والCLI، وقد يكشفه التفصيل والسجل والخطأ والمؤقت واللاحق. اختبر بعلامات غير سرية واحفظ الأصل دون القيمة؛ المثال تسمية بعلامة واضحة. وقد يحمي الغلاف كشفاً عرضياً في الطرفية من دون ضمان تشفير تخزين محمول، ولهذا لا ينبغي تقديم SecureString كحل عام للأسرار على كل منصة.
$record = [pscustomobject]@{
Source = 'synthetic-vault-label'
Token = 'LAB-NOT-A-CREDENTIAL'
}
$record | Select-Object Source
العلامة ليست سراً ولم ينفذ ولا يثبت خزينة أو تنقيح كل القنوات.
فحص حقول التشخيص دون اعتماد
يفرض النموذج قائمة حقول لا مصير المحرك أو السجل أو الخزينة أو السياسة. افحص لاحقاً كل قناة بمصطنع والمسموح والمرفوض بالسياق المفروض. ليس التنقيح تخويلاً لجمع غير اللازم؛ صرح الاحتفاظ والوصول والتعافي ولا نصل سراً أو خدمة أو مسحاً. ولا يبيح التنقيح جمع أسرار غير لازمة أصلاً، كما لا يثبت استبعاد حقل من قاموس أن كل السجلات المؤقتة والقنوات والمستهلكين محميون.
record = {'Source': 'synthetic-vault-label', 'Token': 'LAB-NOT-A-CREDENTIAL', 'Status': 'valid'}
allowed = {'Source', 'Status'}
public = {key: value for key, value in record.items() if key in allowed}
assert 'Token' not in public
print(','.join(sorted(public)))
Source,Status
يستبعد المرشح حقلاً مصطنعاً فقط لا تنقيح السجل أو اعتماداً حقيقياً.
الأخطاء الشائعة وإصلاحها
تسمية سياسة التنفيذ عزلاً
- لماذا يحدث؟
- اختلطت السلامة والتخويل.
- كيف تصلحه؟
- راجع الفرض وأقل امتياز.
- كيف تتجنب تكراره؟
- لا تتجاوز عاماً للتشخيص.
إصلاح سلاسل غير موثوقة بالتقييم
- لماذا يحدث؟
- عبرت البيانات إلى الشيفرة.
- كيف تصلحه؟
- استخدم ثابتاً ومعاملات متحققة.
- كيف تتجنب تكراره؟
- راجع التقييم والاستيراد.
اعتبار إخفاء حقل أمان سر كامل
- لماذا يحدث؟
- أُهملت القنوات والحماية.
- كيف تصلحه؟
- تتبع العمر كله.
- كيف تتجنب تكراره؟
- استخدم علامات غير سرية.
اختبر فهمك
1. لماذا يحتاج الموقع مراجعة وتخويل هدف؟
اعرض الحل المشروح
يوثق التوقيع الأصل لا ملاءمة الأثر لكل بيئة؛ راجع الاعتماد والنطاق والسلطة والمدخل والتعافي.
2. ماذا يتجنب مثبت تنقيح السر؟
اعرض الحل المشروح
تجنب الحقيقي والجمع الزائد واستخدم مصطنعاً واختبر المسموح وصرح المسار لا سرية شاملة.
أهم ما تعلمته
- افصل الثقة والتخويل والسلامة والتنقيح.
- أبعد الاعتماد واجعل الأثر بعقد مفروض.