چک لیست امنیت اکتیو دایرکتوری (Active Directory)
اکتیو دایرکتوری (AD) در زیرساخت فناوری اطلاعات شما، به منظور کنترل دسترسی به منابع و حفظ عملکرد کسب و کار شما است. با این حال، اهمیت بالای اکتیو دایرکتوری برای سازمان، آن را مستقیماً در معرض دید عاملان تهدید قرار میدهد و در صورت نقض موفقیت آمیز امنیت آن، مهاجمان میتوانند به اعتبارنامههای ممتاز دست پیدا کنند و به طور بالقوه بر امنیت دادههای شرکت یا بر برنامههای کاربردی تأثیر بگذارند. بنابراین، اجرای بهروشهای امنیت اکتیو دایرکتوری، بخش مهمی از برنامهریزی برای یک خط مشی امنیت دیجیتال است.
لیست بهروشهای امنیت اکتیو دایرکتوری، شامل چه مواردی است؟
محافظت از اکتیو دایرکتوری به معنای ایجاد چالش و سختی هرچه بیشتر برای مجرمان سایبری است. این ۱۲ مورد از بهروشهای امنیتی اکتیو دایرکتوری هستند که میتوانند به کاهش خطر نقض امنیت و افزایش تابآوری سایبری شما کمک کنند.
هدف: کاهش سطح حمله برای محافظت و تقویت محیط Active Directory شما
۱- تعداد کاربران دارای امتیاز را به حداقل برسانید.
۲- برای اختصاص امتیاز از گروهها استفاده کنید.
۳- حسابهای دارای امتیاز بالا را ایمنسازی کنید.
۴- سیاستهای گذرواژه مدرن را اجرا کنید.
۵- اجرای سیاستهای گذرواژه قوی روی حسابهای سرویس.
۶- انجام ارزیابیهای منظم برای شناسایی نقض سیاستهای گذرواژه.
۷- غیرفعال کردن سرویس Print Spooler
۸- (Server Message Block v1 (SMBv1)) را غیر فعال کرده و استفاده از (New Technology LAN Manager (NTLM)) را محدود کنید.
۹- دسترسی به کنترلرهای دامنه (DC) را محدود کنید.
۱۰- برای بازیابی Active Directory برنامهریزی کنید.
۱۱- استفاده از فیلترینگ SID در تمام forest trustها
۱۲- نظارت بر فعالیتهای مشکوک و پیکربندیهای ناامن درActive Directory
امنیت اکتیو دایرکتوری را از کجا شروع کنیم
۱- تعداد کاربران دارای امتیاز (Privileged Users) را به حداقل برسانید.
کاربران با سطح دسترسی بالا (دارای امتیاز) مستقیما امنیت و الزامات انطباق با مقررات را به خطر میاندازند. در صورت نقض امنیت این حسابها به مهاجمان امکان میدهند تا جای پای بیشتری در محیط شما به دست آورند. مدیریت کاربران دارای امتیاز، بخش مهمی از مدیریت کل Active Directory است، اما میتواند زمانبر نیز باشد. سازمانهای بزرگ ممکن است صدها حساب کاربری در گروههای دارای امتیاز داشته باشند. برخی از حسابهای کاربری ممکن است برای راهاندازی سریع برنامههای جدید، مجوزهای بیش از حد (غیر ضروری) دریافت کنند. برخی دیگر ممکن است مجوزهایی را دریافت کرده باشند که دیگر به آنها نیازی ندارند. اگر مسئول اعطای دسترسی هستید، حل این چالش مستلزم آن است که اصل کمترین امتیاز را درک کنید و از آن برای تعیین اینکه هر کاربر یا گروه برای انجام وظایف خود به طور مؤثر به چه مجوزهایی نیاز دارد، استفاده کنید. برای تأیید اینکه هر عضو، دلیلی مشروع برای عضویت دارد، ابتدا گروههای زیر را بررسی کنید:
- Enterprise Admins
- Schema Admins
- Domain Admins
- Account Operators (در صورت لزوم)
- Server Operators (در صورت لزوم)
- Print Operators
- DHCP Administrators
- DNSAdmins
۲- برای اختصاص امتیاز از گروهها استفاده کنید.
استفاده از گروهها، فرآیند اعطای مجوز به کاربران را ساده میکند. بجای مدیریت مجوزها به صورت جداگانه (که میتواند منجر به اشتباه شود)، کاربران را در گروهها سازماندهی کنید و سپس مجوزهای مناسب را به آن گروهها اختصاص دهید. مجموعهای از کاربران میتوانند نماینده یک واحد تجاری یا یک تیم داخلی باشند که در آن، کاربران در زمینهی حقوق دسترسی، دارای نیازهای یکسانی هستند. تعیین اینکه چه کسی باید به هر گروه تعلق داشته باشد (به عنوان مثال، چه کسی به عنوان مدیر دامنه یا مدیر اسکیما خدمت میکند) و اینکه آن گروهها باید چه حقوقی داشته باشند، نیازمند ارتباط بین تیم مدیریت Active Directory و ذینفعان تجاری است.
۳- حسابهای دارای امتیاز بالا (Administrator Privileges) را ایمن کنید.
هنگام ایجاد یک دامنه در Active Directory، حساب Administrator محلی به حساب Administrator دامنه تبدیل میشود و به طور پیشفرض، عضو گروههای Domain Admins و Administrators آن دامنه میگردد. اگر این دامنه، دامنه forest root باشد، این حساب به عضویت گروه (Enterprise Admins) نیز در میآید. برای محافظت از این حساب، مایکروسافت توصیه میکند که پرچم «Account is sensitive and cannot be delegated» را تنظیم کنید. همچنین تأیید کنید که Group Policy Objects (GPO)ها برای محدود کردن استفاده از حساب مدیر دامنه و حسابهای BUILT-IN Administrator در سیستمهای متصل به دامنه، پیکربندی شدهاند. به طور خاص، این حسابها را از دسترسی به موارد زیر مسدود کنید:
- عدم استفاده از آنها برای دسترسی به سرورها و ایستگاههای کاری (workstations)
- عدم استفاده از این اکانت ها در batch job
- عدم استفاده از این اکانت ها در service
- عدم استفاده از این اکانت ها در سرویسهای ریموت دسکتاپ
۴- اجرای سیاستهای رمز عبور مدرن
در مرکز هر حمله یا نقض امنیت سازمان، اغلب یک رمز عبور سرقت شده وجود دارد. مهاجمان علاوه بر استفاده از چنین اعتباراتی برای دسترسی اولیه، میتوانند از آنها برای حرکت جانبی در کل محیط به خطر افتاده استفاده کنند. به همین دلیل، امنیت رمز عبور از اهمیت بالایی برخوردار است. با این حال، تجربهی ارائهدهندگان خدمات ابری بزرگ نشان داده است که سیاستهای رمز عبور سنتی در برابر حملات مدرن ناکافی هستند.NIST و سایر سازمانهای بزرگ، سیاستهای رمز عبور خود را برای درک این واقعیت بهروزرسانی کردهاند.
حملات brute force علیه سرویسهای internet-facing کاهش یافته است. حملات brute force با حملات اسپری کردن رمز عبور (password spray attacks) جایگزین شده اند، که در آن گذرواژههای رایج و شناخته شده در برابر بسیاری از کاربران یک سازمان امتحان میشوند. چنین حملاتی رایج و اغلب موفقیتآمیز هستند. حملات اسپری رمز عبور از تمایل کاربران برای ایجاد گذرواژههایی که به یاد آوردنشان آسان است – و حدس زدنشان آسان است – سوء استفاده میکنند. استراتژی بهتر، این است که ابتدا بر حذف گذرواژههای رایج از Active Directory تمرکز کنید. این کار را میتوان با فیلترهای گذرواژه شخص ثالث یا با Microsoft Azure AD Password انجام داد.
گام دوم برای داشتن یک سیاست گذرواژه قوی، درک این موضوع است که اجبار کردن پیچیدگی میتواند منجر به گذرواژههایی شود که کاربران نمیتوانند به خاطر بسپارند و الگوهای قابل تشخیصی را ایجاد کند که مهاجمان به راحتی آنها را بشکنند. بجای اجبار به پیچیدگی، کاربران را به استفاده از گذرواژه یا عبارت عبور طولانی، ترجیحا با ترکیب اعداد و کاراکترهای خاص، تشویق کنید. این روش به کاربران اجازه میدهد تا گذرواژههایی را انتخاب کنند که هم به خاطر سپردنشان آسان است و هم حدس زدنشان برای مهاجمان دشوار است. برای مثال، گذرواژه «Implicate-Research1-Uncooked» به راحتی قابل یادآوری است، اما طبق ابزار سنجش قدرت گذرواژه(Bitwarden)، کرک کردن آن قرنها طول میکشد. هم منابع آنلاین و هم نرمافزارهای مدیریت گذرواژه، ابزارهایی برای ایجاد رمز عبور در اختیار دارند. کاربر میتواند به سادگی به تولید عبارات عبور ادامه دهد تا زمانی که رمز عبوری را پیدا کند که به خاطر بسپارد.
در نهایت، اجبار به انقضای گذرواژه توصیه نمیشود. تجربه نشان داده است که اجبار به تغییر دورهای گذرواژه، کاربران را به سمت الگوهای قابل کرک شدن سوق میدهد. در صورت نقض امنیت سازمان یا به خطر افتادن اعتبار کاربر، گذرواژهها باید به روز شوند. در غیر این صورت، آنها را رها کنید.
به طور همزمان، تمامی این کنترلها را اجرا کنید: ممنوعیت گذرواژههای رایج، کاهش پیچیدگی، افزایش طول و غیرفعال کردن انقضای گذرواژه. در غیر این صورت، شما در معرض خطر ایجاد رمز عبورهایی که به راحتی قابل شکستن هستند قرار دارید.
یک روش خوب دیگر: از ویژگی سیاست رمز عبور خوب استفاده کنید. اگرچه مدیران میتوانند از سیاست دامنه پیشفرض برای تنظیم یک سیاست رمز عبور واحد برای همه اعضای دامنه استفاده کنند، اما سیاستهای گذرواژهی دقیق به مدیران امکان میدهد رمز عبورهای سختگیرانهتری را برای کاربران فردی و گروههای جهانی تنظیم کنند.
۵- اجرای رمز عبورهای قوی در Service Accountها
Kerberoasting رایجترین راه برای به خطر انداختن یک حساب امتیازیافته (Privileged Account) و کنترل یک سرور Active Directory است. حملات Kerberoasting طبق برخی تخمینها از ابتدای سال ۲۰۲۲، بیش از ۵۰۰ درصد افزایش یافته است. در این تکنیک، یک بازیگر تهدید (Threat Actor) با به دست آوردن دسترسی کاربری معمولی از طریق فیشینگ یا روشی دیگر، شروع به کار میکند. با دسترسی به این اطلاعات، مهاجم میتواند به راحتی فهرستی از Service Accountها را با enumerate نامهای اصلی سرویس (SPNs) در اکتیو دایرکتوری به دست آورد. سپس، مهاجم این حسابها را با عضویت در گروههای دارای امتیاز مرتبط میکند تا فهرستی از service accountهای دارای امتیاز به دست آورد. این تیکت با رمز عبور service account رمزگذاری شده است که مهاجم معمولا میتواند آن را به صورت آفلاین ترک کند بازیگر تهدید با هش رمز عبور service account کرک شده، میتواند کنترل Active Directory را به سرعت بدست آورد. یک حمله Kerberoasting موفق میتواند ظرف چند دقیقه یک جنگل اکتیو دایرکتوری (Active Directory forest) را به خطر بیندازد.
تنها راه مبارزه با حمله Kerberoasting این است که رمز عبور حسابهای سرویس را برای شکستن بسیار سخت کنیم:
- از یک رمز عبور با حداقل ۲۵ کاراکتر استفاده کنید.
- برای ایجاد یک رمز عبوری طولانی، پیچیده و با سطح آنتروپی بالا از یک ابزار تولیدکننده رمز عبور استفاده کرده و آن را در یک vault رمز عبور ذخیره نمایید.
- استفاده از یک حساب کاربری گروهی مدیریت شده group managed service account (gMSA) را مدنظر قرار دهید که به طور خودکار، رمزهای عبور پیچیده را تغییر میدهد (البته، ابتدا مطمئن شوید که با آسیبپذیریهای بالقوه مرتبط با gMSA آشنا هستید.)
۶- انجام ارزیابیهای دورهای برای شناسایی نقض خطمشی رمز عبور
بررسیهای منظم خطمشیها و تنظیمات رمز عبور میتواند به شناسایی مشکلات بالقوه که Active Directory را در معرض حمله قرار میدهند، کمک کند. به عنوان مثال، هر حسابی که پرچم PASSWD_NOTREQD برای آن تنظیم شده است را با دقت بررسی کنید. علاوه بر این، حسابهایی را که برای فعال کردن دسترسی ناشناس به Active Directory تنظیم شدهاند بررسی کنید، زیرا این امر به کاربران غیرمجاز اجازه میدهد تا Active Directory را مورد پرسوجو (query) قرار دهند.
۷- سرویس Print Spooler را غیر فعال کنید.
سرویس Print Spooler فرآیندهای چاپ را مدیریت میکند و به طور پیشفرض روی کلاینتها و سرورهای ویندوز اجرا میشود. اگرچه در ظاهر، غیرفعال کردن سرویس Print Spooler ایدهی خوبی به نظر میرسد، اما هر کاربر احراز هویت شدهای میتواند از راه دور به سرویس متصل شود، درخواست بهروزرسانی برای کارهای جدید را بدهد و به کنترلر دامنه (DC) بگوید که اعلان را با تفویض اختیار بدون محدودیت به سیستم ارسال کند. این امر موجب افشای اعتبار computer account کنترلر دامنه (DC) میشود. به دلیل وجود خطر، بهترین روش عملکردی این است کهservice را در تمام کنترلرهای دامنه (DCs) غیرفعال کنید.
۸- غیرفعال کردن SMBv1 و محدود کردن NTLM
کنترلکنندههای دامنه (DCs) که پروتکل SMBv1 را فعال کردهاند نیز در معرض خطر هستند. مایکروسافت، پروتکل SMBv1 که در مقابل بسیاری از حملات آسیبپذیر است را در سال ۲۰۱۴ منسوخ اعلام کرد و توصیه میکند که آن را غیرفعال کنید.
به طور مشابه، استفاده از NTLM را محدود کنید. بسیاری از سازمانها به دلیل اثری که غیرفعال کردن کامل NTLM میتواند داشته باشد، در انجام این کار تعلل میکنند. با این حال، مدیران فناوری اطلاعات باید تا جایی که ممکن است، محدود کردن استفاده از آن را مدنظر قرار دهند.
۹- محدود کردن دسترسی به کنترلکنندههای دامنه (DCs)
سازمانها باید برای کم کردن خطری که از جانب بدافزارها متوجه کنترلکنندههای دامنه (DCs) است، دسترسی به آنها را محدود کنند:
گشت و گذار وب (web browsing) روی کنترلر دامنه (DC) مجاز نیست.
Group Policy Objects (GPOs)های متصل به تمام واحدهای سازمانی کنترلکنندههای دامنه (DC) در یک forest، باید تنها به منظور اجازهی دسترسی به پروتکل ریموت دسکتاپ (RDP) از سوی کاربران و سیستمهای مجاز تنظیم شوند.
۱۰- برنامهریزی برای بازیابی Active Directory
ایجاد یک برنامهی جامع و دقیق برای بازیابی Active Directory بخش مهمی از ایجاد تابآوری سایبری است. سازمانها باید از حداقل دو کنترلکنندهی دامنه (DC) در هر دامنه، از جمله دامنه root، نسخه پشتیبان تهیه کنند. این نسخههای پشتیبان باید به صورت آفلاین نگهداری شوند تا از آلودگی آنها توسط بدافزار جلوگیری شود.
۱۱- استفاده از فیلترینگ SID در همهی forest trustها
برای درک اهمیت امنیت فیلترینگ SID، باید نحوه مدیریت کنترل دسترسی Active Directory بین forestها را در نظر بگیریم. یک forest trust، دو forest فعال را به یکدیگر متصل میکند تا کاربران در یک forest بتوانند به منابع در forest دیگر دسترسی پیدا کنند. forest trustها برای حفظ دسترسی در یک سازمان با چندین forest بسیار حیاتی هستند. در یک سناریوی رایج، کاربران در یک Centralized Account Forest به برنامههای کاربردی (مانند فایل سرورها یا سرورهای SharePoint) در یک یا چند Resource Forest دسترسی پیدا میکنند. هر اصل امنیتی (شامل کاربر، گروه یا رایانه) در یک دامنه و forest اکتیو دایرکتوری، دارای یک شناسه امنیتی (Security Identifier) منحصربهفرد به نام SID است. این شناسه امنیتی (SID) در توکن دسترسی کاربر (user’s access token) به کار میرود تا بر اساس لیستهای کنترل دسترسی (ACLs) مجوز دسترسی به منابع در سراسر forest را صادر کند. در زمان آزمایش نسخههای بتا Active Directory در شرکت Intel، با یک چالش مرتبط با SID مواجه شدم: زمانی که یک کاربر را به یک Active Directory forest جدید منتقل میکردیم، کاربر دیگر به منابع source forest خود دسترسی نداشت. دلیل از دست رفتن دسترسی کاربر به منابع source forest، مغایرت بین SID اختصاص داده شده در forestجدید و SID اصلی کاربر بود. استیو گروبمن (در حال حاضر مدیر ارشد فناوری MCAFEE) به مایکروسافت ایدهای را پیشنهاد کرد که شامل SID اصلی از source forest است، بنابراین دسترسی به منابع اصلی را حفظ میکند. مایکروسافت این درخواست تغییر طراحی را پذیرفت و ویژگی sIDHistory متولد شد. در هر پروژه انتقال یا ادغام Active Directory، زمانی که کاربر به destination forest مهاجرت کرده است، اما هنوز مجوزدهی برای منابع انجام نشده است، sIDHistory برای حفظ دسترسی کاربران به منابع در source forest ضروری است. با این حال، sIDHistory پس از تکمیل پروژه مهاجرت یا ادغام، باید حذف شود. یک بازیگر تهدید با امتیازات بالا میتواند از sIDHistory بهره ببرد تا یک SID از یک دامنهی معتمد) (trusting) به عنوان مثال SID عضو گروه مدیران دامنه) را کپی کرده و آن را به ویژگی sIDHistory یک اصل امنیتی در دامنهی مورد اعتماد (trusted) وارد کند؛ بنابراین به مهاجم، امتیازات مدیر در دامنه را اعطا میکند. اینجا است که قابلیت «فیلتر کردنSID » وارد میشود. این قابلیت تمامSID های خارجی) به عبارتی SID هایی که متعلق به دامنه محلی (local domain) نیستند را از توکن دسترسی کاربر حذف میکند و بدین ترتیب از حملهی ارتقاء سطح دسترسی جلوگیری به عمل میآورد. فیلترینگSID باید بر روی تمام forest trustها فعال باشد، مگر در شرایط خاص، مانند زمانی که یک پروژه مهاجرت یا ادغام در حال انجام است. متاسفانه، بسیاری از پروژههای مهاجرت و ادغام هرگز به طور کامل به پایان نمیرسند. آنها در طول فاز مهاجرت برنامههای پیچیده، به تدریج تحلیل میروند و sIDHistory فعال میماند تا کاربران بتوانند به منابع اصلی خود دسترسی داشته باشند. آگاه باشید که برخی اشتباهات پیکربندی میتوانند اثربخشی فیلترینگ SID را کاهش دهند. برای مثال:
- forest trustهای خروجی که دارای پرچم TRUST_ATTRIBUTE_TREAT_AS_EXTERNAL با مقدار true هستند، cross-forest trust با یک دامنه را به عنوان یک external trust معرفی کرده و فیلترینگ سختگیرانه که روی بعضی از cross-forest trustها انجام میشود را کاهش میدهند.
- Trustهایی که دارای یکی از ویژگیهای TRUST_ATTRIBUTE_CROSS_ORGANIZATION_ENABLE_TGT_DELEGATIONیا TRUST_ATTRIBUTE_PIM_TRUST هستند، اجازه میدهند تا تیکت Kerberos به شکلی واگذاری شود که حفاظت ارائه شده توسط فیلترینگ SID، کاهش یابد.
۱۲- نظارت بر Active Directory برای فعالیت مشکوک و پیکربندیهای ناامن
مهاجمین اغلب از پیکربندیهای ناامن برای افزایش سریع سطح دسترسی (escalate privileges) و پنهان ماندن در محیط شما سوء استفاده میکنند. بنابراین، حسابرسی و نظارت بر حقوق دسترسی را بطور منظم انجام دهید تا هرگونه نشانهای از حمله در حال انجام یا آسیبپذیری سازمان در برابر حملات را شناسایی کنید. برخی از اشیاء، مانند AdminSDHolder، به ندرت به طور قانونی تغییر میکنند. AdminSDHolder به عنوان الگوی مجوزهای گروهها و حسابهای محافظتشده در یک دامنه عمل میکند. در صورت فعال بودت امکان ارثبری (Inheritance)، مهاجم ممکن است در تلاش برای تغییر مجوزهای اشیاء با امتیاز تحت کنترل AdminSDHolder باشد. مدیران باید از هرگونه تغییر در اشیاء تحت کنترل AdminSDHolder مطلع باشند و بتوانند دلیل این تغییرات را به طور واضح توضیح دهند. اگر این تغییرات غیرعمدی بوده باشد، احتمال به خطر افتادن امنیت سیستم بسیار زیاد است. نظارت بر این نوع فعالیت برای شناسایی سریع حملات و جلوگیری از سوءاستفاده از تنظیمات، حیاتی است.
چگونه ساینت به امنیت Active Directory شما کمک میکند
ساینت راهکارهایی را برای ارزیابی و بازیابی امنیت اکتیو دایرکتوری ارائه میدهند تا به شما در تمرکز بر روی اقدامات مهم کمک کنند.
کارشناسان متخصص امنیت اکتیو دایرکتوری ساینت میتوانند به شما در موارد زیر کمک کنند:
۱- بررسی و آنالیز معماری و پیکربندی امنیتی شما
۲- مرور رویههای عملیاتی
۳- شناسایی مسیرهای بالقوه حمله
ما همچنین میتوانیم نقشه راهی برای بهبودهای امنیتی توصیه شده و همچنین برنامههای اصلاح و بازیابی ارائه دهیم. حفاظت از Active Directory میتواند یک کار بزرگ به نظر برسد. با رعایت بهروشهای امنیت Active Directory، میتوانید سطح دشواری را برای مهاجمین بالا ببرید و وضعیت کلی امنیت محیط خود را بهبود بخشید.
مطالب زیر را حتما بخوانید
-
آشنایی با سایت VulnHub و معرفی بهترین ماشینها برای یادگیری امنیت سایبری
46 بازدید
-
مثلث امنیت CIA: اصول اساسی حفاظت از اطلاعات در دنیای دیجیتال
116 بازدید
-
راهنمای جامع سیگما (Sigma): استانداردی قدرتمند برای تشخیص تهدیدات در امنیت سایبری
401 بازدید
-
بررسی تیم قرمز (Red Team) و تیم آبی (Blue Team) در امنیت سایبری
3.46k بازدید
-
هرآنچه باید درباره باجافزار WannaCry بدانید: یکی از بزرگترین تهدیدات سایبری تاریخ
169 بازدید
-
سیاست Least Privilege: کلید طلایی برای حفاظت از دادهها و کاهش ریسکهای امنیتی
178 بازدید
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.