
بدأ طريقي إلى أمن المعلومات باكتشاف مفاجئ: "مشفر بشكل آمن". يبدو هذا البيان الآن بسيطًا وواضحًا ، وفي السنة الأولى أنتج الوعي بهذه الحقيقة تأثيرًا مماثلًا للقنبلة الذرية العقلية. تعرض أمن المعلومات للهجوم من خلال توسيع حدود منطقة الموضوع: اتضح أن التشفير ليس سوى خط دفاع واحد ، وهناك أيضًا قانوني وتنظيمي وبسيط في النهاية. أحد الجوانب النظرية هو "يتم وصف جميع مشكلات أمن المعلومات من خلال وصول الموضوعات إلى الأشياء." لقد حفظه ولفت نماذج الوصول الموثوق بها والتقديرية ، وأخبرها ، ونجح في نسيانها.
أنا متخصص في تحليل الأمان لتطبيقات ويندوز. في كثير من الأحيان ، تأخذ دراسة حقوق الوصول المختلفة بدقة جزءًا كبيرًا من الدراسة. لأتمتة عملية البحث عن حقوق وصول غريبة أو غير صحيحة ، اضطررت إلى فهم SDDL (لغة تعريف واصف الأمان). من يهتم بتعلم قراءة الحقوق في شكل SDDL (على سبيل المثال ، شيء مثل
O: SYG: SYD: (A ؛؛ CCLCSWLOCRRC ؛؛؛ IU) (A ؛؛ CCLCSWLOCRRC ؛؛؛ SU) (A ؛؛ CCLCSWRPWPDTLOCRRC ؛؛؛ SY) (A ؛؛ CCDCLCSWRPWPDTLOCRSDRCWDWO ؛؛؛ BA) ) والتعرف على الأداة المساعدة للعمل مع الواصفات في هذا التنسيق ، مرحبًا بك في cat.
تنسيق SDDL
SDDL عبارة عن سلسلة مع أوصاف حقوق الوصول في نموذج نصي. غالبًا ما يتكون من 3 أجزاء: حقوق الوصول للمالك والمجموعة و DACL. في بعض الأحيان يتم إضافة جزء SACL - جزء التدقيق (إذا كانت الإجراءات مع الكائن تتوافق مع قواعد SACL ، سيتم إنشاء حدث نظام يسهل تتبعه بواسطة أنظمة مختلفة). واصف يشبه هذا:
O: <owner> G: <group> D: <قواعد الوصول إلى DACL> S: <قواعد تدقيق SACL>

وبالتالي ، يمكن تحليل المثال أعلاه على النحو التالي:
- يا: سي
- G: SY
- D: (A ؛؛ CCLCSWLOCRRC ؛؛؛ IU) (A ؛؛ CCLCSWLOCRRC ؛؛؛ SU) (A ؛؛ CCLCSWRPWPDTLOCRRC ؛؛؛ SY) (A ؛؛ CCDCLCSWRPWPDTLOCRSDRCWDWO ؛؛ BA)
يمكن الإشارة إلى المالك والمجموعة على أنه معرف الأمان الخاص بالمستخدم أو مجموعة نظام التشغيل ، أو على أنه اختصارات خاصة. على سبيل المثال ، في هذه الحالة ، يكون المالك والمجموعة SY هو حساب النظام المحلي (NT AUTHORITY \ SYSTEM). يمكن العثور على قائمة المختصرات (للأسف ، ليست شاملة)
هنا .
تتكون قواعد الوصول من تعداد علامات DACL وسلاسل ACE (إدخالات التحكم في الوصول). ويرد تحليل مفصل لل ACE
هنا ، وسوف ننظر في الأكثر أهمية. يتم وضع كل سطر ACE بين قوسين حيث يتم فصل البيانات بواسطة فاصلة منقوطة.
الأكثر أهمية هي المجموعات الأولى والثالثة والأخيرة. هذا هو نوع الوصول (المسموح به "A" ، المحظور "D") ، وقائمة الإجراءات واسم موضوع الوصول. القاعدة DACL الأولى من المثال أعلاه: (A ؛؛ CCLCSWLOCRRC ؛؛؛ IU) ، سننظر بالتفصيل.

- "أ" - تسمح القاعدة بإجراءات للموضوع ؛
- "CC" ، "LC" ، "SW" ، "LO" ، "CR" ، "RC" - قائمة بالإجراءات المسموح بها ؛
- "IU" - يعني هذا الاختصار مجموعة Users Logged-Users.
يبقى أن نفهم بالضبط ما هو مسموح به. ماذا تعني كلمة "CC" الغامضة و "LC" و "SW" و "LO" و "CR" و "RC"؟
نحن هنا في انتظار مأزق آخر - ليس من الممكن دائمًا الإشارة بدقة إلى الإجراء عن طريق التخفيض. إنهم ، إذا جاز التعبير ، مخصص للسياق. على سبيل المثال ، إذا كنا نتحدث عن حقوق العمل مع الخدمات ، فإن WP تعني "إيقاف الخدمة" ، إذا كانت تتعلق بالملفات ، ثم "التنفيذ" ، وإذا كانت تتعلق بالمجلدات ، ثم "تعبر" (الوصول إلى الملفات في مجلد بالاسم ، وإذا لم يكن ذلك ممكنًا) قائمة المحتويات). بعض الأوصاف
هنا ، بعضها
هنا ، مع العالم على موضوع.
مهلا ، لقد فاتتك الكثير عن أعلام DACL ، أعلام ACE ، الميراثنعم ، صحيح ، كل هذا مهم للغاية وممتع ، لكنه ليس شائعًا للغاية. أنا أركز على الكتلة. في حالة المظاهر الفردية للأعلام غير المعتادة ، سيكون من الأسهل فهمه في الوضع اليدوي.
الأتمتة
الأدوات المساعدة Sysinternals تساعدني حقًا ، وهي
"مراقبة العملية" و
"التحقق من الوصول" (المعروف أيضًا باسم procmon و accesschk). الأول يتيح لك الاطلاع على الوصول إلى الملفات والتسجيل في الوقت الحقيقي ، والثاني يسمح لك بجمع المعلومات من نظام التشغيل على واصفات الأمان.
بالمناسبة ، في نظام التشغيل نفسه ، تبدو النافذة مع الحقوق هكذا إذا لم ير شخص ما:

لسوء الحظ ، لا يمكن تصفية إخراج accesschk عن طريق تضييق نطاق طلب الحقوق في إجراءات محددة. يُظهر Process Monitor فقط المكالمات الفعلية في لحظة معينة وستحصل على طلب دقيق للغاية لا يتأثر مباشرةً. بالإضافة إلى ذلك ، أرغب في الحصول على مذكرة حول نوع مجموعة المستخدمين هي
NO أو
NS ، ونوع الإجراءات المخفية وراء CC و RC.
لذلك ولدت أداة بسيطة لعرض وتصفية سجلات SDDL.
كيفية الاستخدام
العمل مع الأداة بسيط ، فقط ثلاث خطوات:
- الحصول على سجلات SDDL.
- تحديد مرشحات القاعدة.
- عرض التقرير.

اقرأ المزيد عن كل خطوة.
الحصول على SDDL. للحصول على سجلات SDDL ، يمكنك استخدام الوظائف المدمجة في الأداة (الأزرار 1 أو 2 أو 3 أو 4) أو تنزيل القائمة التي تلقيتها سابقًا (الزر 5). يرجى ملاحظة أن طلب حقوق الوصول يتم تقديمه نيابة عن المستخدم الذي أطلق عارض SDDL ، لذلك في بعض الحالات ، يستحق الأمر تشغيل البرنامج ليس فقط كمستخدم عادي ، ولكن أيضًا كمسؤول. حسنًا ، بشكل عام ، يكون الحقل نفسه بخطوط SDDL قابلاً للتحرير - يمكنك على الأقل إعادة كتابته يدويًا.
تتم عملية التصفية وفقًا لمعلمتين: مجموعات المستخدمين وحقوق الوصول. تستند قائمة المجموعات والمستخدمين إلى جميع المستخدمين المذكورين في SDDL. انتبه إلى مربع الاختيار Translate SIDs (6) - إذا تم تثبيته ، فسيتم ترجمة معرفات المستخدمين والمجموعات ، إذا أمكن ، إلى أسماء متعلقة بالكمبيوتر الحالي. يتم ترتيب قائمة الحقوق بشكل أكثر بقليل من الذكاء - تحتاج إلى تحديد فئة الحقوق (إذا تم ملء SDDL مع الأداة المساعدة نفسها ، ثم يتم تحديد الفئة الضرورية تلقائيًا). بالإضافة إلى ذلك ، يتم تمييز الحقوق الموجودة في SDDL بشكل أكثر وضوحًا في قائمة الحقوق.
التقرير هو ببساطة نتيجة فك تشفير SDDL وتطبيق المرشحات. يمكنك معرفة المزيد من المعلومات التفصيلية في كل سطر إذا قمت بتحديدها في القائمة (نعم ، لقد حصلت على هفوة من خلال هذه الوظيفة ، الأمر الذي أدى إلى إجراء
القليل من البحث على .NET الداخلية ).
النتائج
شفرة المصدر متاحة على
جيثب . الملفات الثنائية هي أيضا في قسم
الإصدار .
خطط المرافق الخاصة بي:
- إضافة بحث إلى حقول إدخال SDDL - لا يزال التصفية فقط غير كافٍ.
- إضافة معلمات التشغيل التي من شأنها أن تتيح بناء التقارير دون جزء مرئي.
- ربما يجب عليك إضافة الحشو SDDL من العمليات والمجلدات المشتركة والطابعات؟
سأكون سعيدًا لسماع الاقتراحات في التعليقات.