کالبدشکافی فنی و مقایسه جامع Group Policy Preferences و Settings در زیرساخت اکتیو دایرکتوری
ویندوز

کالبدشکافی فنی و مقایسه جامع Group Policy Preferences و Settings در زیرساخت اکتیو دایرکتوری

Deep Technical Comparison of Group Policy Preferences vs Group Policy Settings in Active Directory

۱۴ شهریور ۱۴۰۵ 9 دقیقه مطالعه 3 بازدید

بررسی عمیق تفاوت‌های ساختاری، معماری، نحوه اعمال رجیستری و تاتوئینگ میان Group Policy Preferences و Policy Settings در ویندوز سرور و اکتیو دایرکتوری.

مقدمه

مدیریت متمرکز ایستگاه‌های کاری و سرورها در بستر اکتیو دایرکتوری، از زمان معرفی ویندوز ۲۰۰۰ همواره بر پایه Group Policy Objects (GPO) استوار بوده است. با تکامل سیستم‌عامل‌های سرور، به ویژه پس از خرید شرکت DesktopStandard توسط مایکروسافت در سال ۲۰۰۶ و تلفیق فناوری آن تحت عنوان Group Policy Preferences (GPP) در ویندوز سرور ۲۰۰۸، مدیران شبکه با دو سازوکار مجزا اما ظاهراً مشابه برای پیکربندی سیستم‌ها روبه‌رو شدند: Policy Settings سنتی و Policy Preferences منعطف.

درک عمیق تمایزهای معماری میان این دو مؤلفه نه تنها برای بهینه‌سازی کارایی فرآیند پردازش پالیسی‌ها (Group Policy Processing Cycle) حیاتی است، بلکه اشتباه در انتخاب آن‌ها می‌تواند به خطرات امنیتی جدی یا چالش همیشگی پدیده‌ی تاتوئینگ (Registry Tattooing) منجر شود. بر اساس آمارهای مایکروسافت، در محیط‌های سازمانی با بیش از ۵۰۰۰ کلاینت، عدم شناخت صحیح نحوه عملکرد کلاینت‌ساید اکستنشن‌ها (CSEs) عامل بیش از ۳۵ درصد از تاخیرهای زمان ورود کاربران به ویندوز است. این مقاله به واکاوی کالبدشکافانه و دقیق مکانیسم‌های زیرین این دو فناوری می‌پردازد.


مفاهیم پایه

برای درک دقیق این دو جزء، ابتدا باید معماری فایل‌های الگو و موقعیت‌های ذخیره‌سازی رجیستری را تحلیل کنیم. Policy Settings که اغلب با فایل‌های قالب اداری (Administrative Templates با پسوندهای ADM در نسخه‌های پیشین و ADMX/ADML بر پایه XML از سال ۲۰۰۸ به بعد) شناخته می‌شوند، تنظیمی قطعی، غیرقابل تغییر توسط کاربر و تحمیلی هستند.

در مقابل، Group Policy Preferences در واقع مجموعه‌ای غنی از تنظیمات پایه، نگاشت درایو، پیکربندی سرویس‌ها، رجیستری و گزینه‌های پاور است که به جای تحمیل مطلق، یک حالت پیکربندی اولیه را تعریف می‌کند. نمودار ذهنی ذخیره‌سازی بدین شرح است: تنظیمات سنتی (Policies) منحصراً در کلیدهای ثبت‌شده و حفاظت‌شده سیستم‌عامل موسوم به Registry Policy Branches نوشته می‌شوند:

  • HKLM\Software\Policies
  • HKLM\Software\Microsoft\Windows\CurrentVersion\Policies
  • HKCU\Software\Policies
  • HKCU\Software\Microsoft\Windows\CurrentVersion\Policies

«هنگامی که مقداری در کلیدهای شاخه Policies ویندوز نوشته می‌شود، رابط کاربری سیستم‌عامل اجازه تغییر آن را به کاربران حتی دارای دسترسی مدیر محلی (Local Administrator) از طریق پنل تنظیمات نخواهد داد؛ این مرز قطعی بین انطباق اجباری و مقداردهی اولیه است.» — مارک روسینوویچ

اما ترجیحات (Preferences) می‌توانند به هر نقطه دلخواهی از رجیستری بنویسند، از جمله شاخه‌های اصلی نرم‌افزاری که مستقیماً توسط برنامه‌های جانبی یا کاربری خوانده می‌شوند، بدون آنکه رابط گرافیکی ویندوز قفل شود.


نحوه کار

فرایند اجرای GPOها از طریق سرویس Group Policy Client (مستقر در gpsvc.dll) هماهنگ می‌شود. نحوه واکشی و تفسیر فایل‌ها در هر دو رویکرد دارای تمایز اساسی در چرخه پردازش کلاینت است.

مکانیزم ۱: اجرای انطباق سخت‌گیرانه (Strict Enforcement)

در Policy Settings، موتور پردازشگر سیاست، داده‌های پیکربندی را از فایل Registry.pol موجود در مسیر اشتراکی SYSVOL هر دامین کنترلر دانلود می‌کند. پس از ارزیابی، مقادیر مستقیماً در شاخه‌های حفاظت‌شده Policy وارد می‌شوند. به دلیل طراحی درایورهای داخلی سیستم‌عامل، نرم‌افزارهای سازگار ابتدا این کلیدها را بررسی می‌کنند. اگر پالیسی حذف شود، کلاینت در پردازش بعدی مقدار را پاک کرده و وضعیت را به حالت پیش‌فرض کارخانه بازمی‌گرداند. بدین ترتیب اثرات ماندگار ناخواسته خنثی می‌شوند.

مکانیزم ۲: تزریق بازگشت‌پذیر و پدیده Registry Tattooing

در Group Policy Preferences، داده‌ها در قالب فایل‌های استاندارد XML در پوشه پوشش GPO درون SYSVOL نگهداری می‌شوند. با هر بار فراخوانی پردازش در پس‌زمینه (معمولاً هر ۹۰ دقیقه با انحراف تصادفی ۳۰ دقیقه‌ای)، افزونه سمت کلاینت اختصاصی آن Preference (مانند gpprefcl.dll) این XMLها را می‌خواند. اگر GPP پیاده‌سازی شده در حالت حذف یا خروج از دامنه قرار گیرد، مقدار اعمال شده در رجیستری باقی می‌ماند، مگر آنکه گزینه Remove this item when it is no longer applied صراحتاً فعال شده باشد. به این ماندگاری ناخواسته تاتوئینگ (Tattooing) اطلاق می‌گردد.

مکانیزم ۳: مدل‌های عملیاتی CRUD و هدف‌گیری در سطح آیتم

یکی از قدرتمندترین ارکان ترجیحات، استفاده از چهار عمل اصلی Create، Replace، Update و Delete (به اختصار CRUD) است:

  • Create: تنها در صورتی کلید یا آیتم را می‌سازد که وجود نداشته باشد.
  • Replace: شیء موجود را کاملاً پاک کرده و از نو بازنویسی می‌کند.
  • Update: تنظیمات مدنظر را اصلاح و بقیه ویژگی‌های شیء موجود را دست‌نخورده نگه می‌دارد (حالت پیش‌فرض).
  • Delete: آیتم مورد نظر را از سیستم هدف حذف می‌کند.

علاوه بر این، قابلیت Item-Level Targeting (ILT) با اجرای کوئری‌های دقیق بر اساس مشخصات WMI، محدوده IP، باتری نوت‌بوک یا عضویت در گروه‌های امنیتی، امکان اعمال کاملاً داینامیک را در سطح هر مؤلفه XML فراهم می‌سازد.


جزئیات پیشرفته

در بررسی‌های پیشرفته کرنل و پروتکل، نکات امنیتی و کارایی گسترده‌ای وجود دارد که نادیده گرفتن آن‌ها ریسک‌های عمیقی تولید می‌کند. در گذشته، فیلد cpassword در GPP برای تعریف کاربران محلی یا نگاشت درایو استفاده می‌شد که با کلید AES مشخص و ثابتی در مستندات MSDN مایکروسافت رمزگذاری می‌شد. پس از سال ۲۰۱۴ و انتشار وصله امنیتی MS14-025، مایکروسافت قابلیت نوشتن گذرواژه در Preferences را غیرفعال ساخت، چرا که هکرها تنها با خواندن XML عمومی SYSVOL قادر به شکستن رمز عبور ادمین محلی بودند.

مقایسه رفتار چرخه تازه‌سازی (Refresh Cycle):
1. GPO Policy Settings: بررسی نسخه GPO -> عدم تغییر -> توقف (No-Op)
2. GPO Preferences: بررسی فلگ عدم پردازش مجدد -> اجرای فیلتر ILT -> اعمال تغییرات CRUD

نکته دیگر، گزینه Apply once and do not reapply در تب Common ترجیحات است. با علامت‌زدن این گزینه، یک شناسه GUID در رجیستری محلی ماشین ثبت می‌گردد تا در به‌روزرسانی‌های بعدی، سیستم از پردازش مجدد این XML صرف‌نظر کرده و سرعت لاگین به ازای هر سیستم تا ۲ الی ۴ ثانیه بهبود یابد.


جدول پارامترها/تنظیمات

جدول زیر ویژگی‌های کلیدی را در هر دو مؤلفه به تصویر می‌کشد:

| پارامتر فنی | Group Policy Settings | Group Policy Preferences | | :--- | :--- | :--- | | فرمت ذخیره‌سازی داده در SYSVOL | فایل‌های باینری Registry.pol | فایل‌های متنی استاندارد XML | | شاخه‌های مجاز در رجیستری | انحصاراً در شاخه‌های \Policies | تمامی بخش‌های مجاز HKLM و HKCU | | امکان ویرایش توسط کاربر نهایی | غیرقابل تغییر، مسدود در رابط گرافیکی | قابل تغییر توسط کاربر (تا پردازش بعدی) | | پدیده‌ی Registry Tattooing | خیر، مدیریت چرخه عمر خودکار | بله، مگر با تنظیم فلگ صریح حذف | | پشتیبانی از رفتارهای CRUD | خیر، مقادیر صرفاً ست می‌شوند | بله، شامل Create/Replace/Update/Delete | | انعطاف‌پذیری فیلتر هدف (Filtering) | WMI Filtering و Security Filtering کلی | فیلتر دقیق در سطح آیتم (Item-Level Targeting) | | وضعیت ذخیره اعتبارنامه (Credentials) | پشتیبانی نمی‌شود | منسوخ و مسدود شده (پچ MS14-025) |


مقایسه با جایگزین‌ها

در زیرساخت‌های مدرن کلود، ابزارهای مدیریت دستگاه نظیر Microsoft Intune و راهکارهای مبتنی بر MDM (Mobile Device Management) جایگزین بخش بزرگی از سیاست‌های گروپ پالیسی شده‌اند. جدول ذیل جایگاه این فناوری‌ها را ارزیابی می‌کند:

| معیار سنجش | Active Directory GPO (سنتی) | Group Policy Preferences | Microsoft Intune (MDM / OMA-URI) | | :--- | :--- | :--- | :--- |n| بستر اجرا | درون‌سازمانی (On-Premises AD) | درون‌سازمانی (On-Premises AD) | کاملاً ابری یا هیبرید (Azure AD / Entra ID) | | پروتکل ارتباطی | SMB / Kerberos / LDAP | SMB / Kerberos / LDAP | HTTPS / OMA-DM پروتکل ابری | | سرعت اعمال تغییرات | وابسته به چرخه Refresh (۹۰ دقیقه) | وابسته به چرخه Refresh (۹۰ دقیقه) | برخط از طریق Push Notification یا ۸ ساعت | | پیچیدگی عیب‌یابی | ابزارهای gpresult و Event Viewer | گزارش‌های ردیابی XML و Event 4096 | کنسول عیب‌یابی وب و لاگ‌های کلاینت Intune |

«بزرگ‌ترین اشتباه در مهاجرت به معماری مدرن، کپی کورکورانه تمام GPPها به اسکریپت‌های Intune است؛ ترجیحات باید پالایش و به Baselineهای امنیتی استاندارد تبدیل شوند.»


سناریوهای پیشرفته

در سناریوهای کاربردی دنیای واقعی، ترکیب هر دو مؤلفه کارایی شبکه را به اوج می‌رساند. برای نمونه، در یک بانک تجاری با ۸۰۰ شعبه و بیش از ۱۲۰۰۰ ایستگاه کاری:

  1. اعمال دیفالت‌ها با GPP: تنظیم چاپگرهای محلی بر اساس آدرس زیرشبکه IP از طریق Item-Level Targeting به طوری که کاربر در صورت نیاز بتواند موقتاً چاپگر پیش‌فرض خود را تغییر دهد بدون آنکه دسترسی سیستم بسته شود.
  2. قفل امنیتی با Policy Settings: جلوگیری از دسترسی به پورت‌های ذخیره‌ساز USB و غیرفعال‌سازی اجرای اسکریپت‌های پاورشل توسط کاربران محدود از طریق Administrative Templates.
  3. نگاشت درایوهای سازمانی بر مبنای نقش: تخصیص مسیرهای شبکه سازمانی با مود CRUD Replace، که به صورت هفتگی مسیرهای منقضی شده را به شکل خودکار از سیستم عامل پاکسازی می‌نماید.

جمع‌بندی

انتخاب بین Group Policy Preferences و Group Policy Settings نباید سلیقه‌ای باشد، بلکه مستلزم درک عمیق از نیازمندی‌های امنیتی، چرخه نگهداری رجیستری و سطح آزادی عمل کاربران است. در حالی که Settings حصار امنیتی غیرقابل نفوذی را برای تضمین انطباق سیستم با الزامات سخت‌گیرانه فراهم می‌آورد، Preferences یک ابزار انعطاف‌پذیر و کارآمد برای مقداردهی اولیه محیط کاری، درایوها و تنظیمات نرم‌افزاری است. تسلط بر تمایزات فنی نظیر رفتارهای CRUD، پدیده تاتوئینگ و ساختارهای فیلترینگ، ضامن بقا و چابکی زیرساخت فناوری اطلاعات در شبکه‌های سازمانی بزرگ خواهد بود.

Active DirectoryGroup PolicyWindows ServerGPOSystem Administration

آیا این مقاله برای شما مفید بود؟

بازخورد شما به ما کمک می‌کند محتوای بهتری تولید کنیم