آخرین اخبار
همهٔ اخبار
گزارش‌ها و تحلیل‌ها گزارش بحرانیت ۵/۱۰

مرحله خاموش: چرا شناسایی گروه‌های Active Directory (Group Enumeration) نیازمند توجه ویژه است؟

مرحله خاموش: چرا شناسایی گروه‌های Active Directory (Group Enumeration) نیازمند توجه ویژه است؟

بسیاری از تیم‌های امنیتی زمانی که عضوی به گروه‌های حساس مانند Domain Admins اضافه می‌شود، هشدار دریافت می‌کنند؛ اما تقریباً هیچ‌کس زمانی که کسی صرفاً پرسیده است «چه کسانی در گروه Domain Admins هستند»، هشدار دریافت نمی‌کند.

زمانی که یک مهاجم عضویت در گروه‌ها را تغییر می‌دهد، تا آن مرحله دسترسی سطح بالا (Privileged Access) را به دست گرفته و آسیب‌ها آغاز شده‌اند. فرآیند شناسایی (Reconnaissance) که منجر به این مرحله شده است (یعنی نقشه‌برداری از مدیران و شناسایی حساب‌های هدف)، روزها یا هفته‌ها قبل رخ داده است. این فعالیت‌ها اگر سیستم‌های مانیتورینگ و حسابرسی (Auditing) درستی فعال نباشند، بسیار بی‌صدا اما برای هر کسی که در حال نظارت باشد، قابل مشاهده هستند.

این گزارش توضیح می‌دهد که چرا شناسایی گروه‌ها (Group Enumeration) باید در اولویت‌های مانیتورینگ Active Directory (AD) قرار گیرد، چگونه می‌توان آن را با ویژگی‌های بومی ویندوز حسابرسی کرد و چگونه ترکیب آن با گروه‌های تله (Honeypot Groups)، یک سیگنال پر از نویز را به یک هشدار با اطمینان بالا تبدیل می‌کند.

چرا شناسایی (Enumeration) سیگنالی ارزشمند است؟

شناسایی روشی است که مهاجم از طریق آن، یک حساب کاربریِ به دست آمده را به یک نقشه عملیاتی تبدیل می‌کند. پس از اولین قدم (Foothold) که اغلب از طریق فیشینگ یا یک سرویس آسیب‌پذیر به دست می‌آید، مهاجم می‌خواهد بداند چه کسانی در شبکه قدرت دارند. چارچوب MITRE ATT&CK این تکنیک را تحت عنوان Permission Groups Discovery: Domain Groups (کد T1069.002) ردیابی می‌کند.

ابزارهایی مانند SharpHound (از مجموعه BloodHound)، PowerView و دستورات PowerShell مربوط به Active Directory می‌توانند این اطلاعات را در عرض چند دقیقه جمع‌آوری کنند. به طور پیش‌فرض، هر کاربر احراز هویت شده‌ای می‌تواند عضویت گروه‌ها را بخواند، به همین دلیل شناسایی این فعالیت بسیار ارزشمند است. این اتفاق در مراحل اولیه، پیش از افزایش سطح دسترسی (Privilege Escalation)، حرکت جانبی (Lateral Movement) یا سرقت داده‌ها رخ می‌دهد. دریافت هشدار در این مرحله، زمان لازم برای پاسخگویی را فراهم می‌کند، در حالی که مهاجم هنوز تنها دسترسی‌های سطح پایین را در اختیار دارد.

الزامات حسابرسی (Auditing) در Domain Controller

برای اینکه یک Domain Controller تلاش‌های مربوط به شناسایی گروه‌ها را ثبت کند، دو مورد زیر باید برقرار باشند:

  • فعال بودن سیاست حسابرسی (Audit Policy): می‌توانید وضعیت این سیاست را با یک دستور ساده در Domain Controller بررسی کنید.
  • تنظیم لیست کنترل دسترسی سیستم (SACL): اضافه کردن SACL به یک گروه، فرآیندی است که باید از طریق PowerShell انجام شود تا خواندن ویژگی‌های گروه ثبت گردد.

پس از فعال شدن هر دو مورد، هر بار که عضویت یک گروه خوانده شود، یک رویداد (Event) با کد 4662 (انجام عملیاتی روی یک شیء) در گزارش‌های امنیتی (Security Log) ثبت می‌شود. همچنین در مورد گروه‌های داخلی و پیش‌فرض مانند Administrators، این فعالیت ممکن است به صورت رویداد 4799 ظاهر شود.

نکته مهم برای تحلیلگران: رویداد 4662 به تنهایی مشخص نمی‌کند که درخواست از کجا آمده است. برای یافتن منبع، باید شناسه ورود (SubjectLogonId) در این رویداد را با شناسه ورود هدف (TargetLogonId) در رویداد 4624 (Logon) در همان Domain Controller مطابقت دهید تا آدرس IP و نام ایستگاه کاری (Workstation) منبع مشخص شود.

مدیریت حجم داده‌ها و نویز (Noise)

مانیتورینگ گروه‌ها می‌تواند باعث تولید حجم زیادی از لاگ‌ها شود، زیرا بسیاری از نرم‌افزارهای قانونی نیز عضویت گروه‌ها را چک می‌کنند. برای مدیریت این موضوع، نکات زیر توصیه می‌شود:

  • برنامه‌ریزی برای حجم لاگ: اضافه کردن SACL باعث افزایش حجم لاگ‌ها در SIEM و فرستنده‌های لاگ می‌شود. حتماً ظرفیت ذخیره‌سازی را پیش‌بینی کنید.
  • ایجاد لیست سفید (Allowlist): محیط خود را به مدت یک ماه مانیتور کنید تا حساب‌های سرویس و میزبان‌های قانونی را شناسایی کرده و آن‌ها را در SIEM فیلتر کنید.
  • پوشش شکاف‌های پروتکلی: ابزارهایی که از پروتکل SAMR استفاده می‌کنند، ممکن است از شناسایی مبتنی بر LDAP عبور کنند. بنابراین باید روش‌های شناسایی مجزایی برای SAMR نیز داشته باشید.

گروه‌های تله (Honeypot Groups): تبدیل نویز به تله

بهترین راه برای کاهش نویز و افزایش دقت، استفاده از گروه‌های تله یا Honeypot است. یک گروه تله، گروهی است که هیچ کاربر یا فرآیند قانونی از آن استفاده نمی‌کند و هیچ هدفی ندارد. هرگونه تلاش برای خواندن عضویت این گروه، یک سیگنال قطعی از فعالیت مهاجم است.

نکات طراحی یک گروه تله:

  • نام گروه‌ها باید حساس به نظر برسد، مانند Tier0-Server-Admins یا SQL-Prod-Admins.
  • از آنجایی که هیچ اپلیکیشن قانونی از این گروه استفاده نمی‌کند، هر رویداد 4662 یا 4799 مربوط به آن، یک مورد مثبت واقعی (True Positive) است و باید بلافاصله بررسی شود.

با ترکیب این روش با ابزارهایی مانند SharpHound، اگر مشاهده کردید که یک شناسه ورود (SubjectLogonId) همزمان هم گروه تله و هم گروه‌های ادمین واقعی را در بازه زمانی کوتاهی می‌خواند، قطعاً با یک عملیات شناسایی (Reconnaissance) روبرو هستید.

ابزار کمکی QuietPhase

اسکریپت PowerShell به نام QuietPhase برای کمک به شروع این فرآیند طراحی شده است. این ابزار بررسی می‌کند که آیا سیاست‌های حسابرسی برای شناسایی Group Enumeration در دامنه شما پیکربندی شده‌اند یا خیر. این اسکریپت گروه‌های حساس (مانند Domain Admins و Enterprise Admins) را بررسی کرده و در صورت نیاز، دستورات لازم برای اصلاح و اعمال SACL را پیشنهاد می‌دهد. این ابزار بدون تغییر خودسرانه تنظیمات، وضعیت موجود را گزارش کرده و امکان اعمال اصلاحات را فراهم می‌کند.