Windows Hardening – Part 2 – Permissions
در قسمت دوم و ادامه بلاگ قبلی امروز درباره Security Role ها و Permission های ویندوز صحبت خواهیم کرد.
عبارت DACL یا Discretionary Access Control List در مایکروسافت اشاره دارد به این قضیه که هر نوع هر Object در سیستم عامل سطح دسترسی را تعریف میکند. دسترسی که شاید خیلی ها به آن توجه نکنند ولی خواه یا نا خواه یکی از اولیه ترین کار ها برای شروع Windows Hardening در یک سازمان است. در DACL نسبت به نوع دیتا و گروه های مختلف کاربران با توجه به نوع کار آنها و منابعی که آن ها باید در شبکه استفاده کنند و منابعی نباید استفاده کنند دسترسی ها را Garnted و یا Denied تعریف می کنیم.
از Permission های داخل ویندوز به عنوان NTFS Permissions هم یاد می شود. زمانی که فرمت FAT هنوز در سیستم عامل ها وجود داشت و مثل امروز کمرنگ نشده بود یکی از دغدغه های مدیران و کارشناسان شبکه ایجاد مجوز های دسترسی کامل و جز به جز در محیط شبکه بود ولی به محض ورود NTFS به سیستم عامل ها قضیه کاملا متفاوت شد و NTFS Permission ها روی کار آمدند که تا امروز هم کامل و قوی بودند. NTFS Permission ها دارای Hierarchy هستند که به شکل زیر است که میتوانیم از روی parent روی child object ها هم Security Setting ها را Inherit کنیم.
ولی ماجرا این است که برای امن کردن محیط ویندوز همه چیز به تنظیم مجوز هایی مثل Read و Write و Modify و ... و برای گسترش آن باید روی Effective Permission ها و Special Permission ها تمرکز کرد. در حقیقت این دو نوع Permission تکمیل کننده مجوز های معمولی است و باید تنظیم شوند. به طور مثال اگر بر روی یک فولدر به کاربر A بر روی Write مجوز Deny و بر روی Delete و یا Modify مجوز Allow بدهیم ، کاربر A نمیتواند فولدر و یا فایل های داخل فولدر را پاک کند و یا آن ها را Edit کند. این نشان دهنده این است که مجوز Deny همیشه بر Allow مقدم است.
هیچ وقت این را فراموش نکنید که 3 اصل مهم در Permission های ویندوز وجود دارد که باید توجه شود.
1- هیچ وقت به جز مجوز Read مجوزی برای گروه Everyone تنظیم نکنید.
2- هیچ وقت بدون نیاز و ضرورت خاص بر روی یک برنامه یا فایل برای سرویسی خاص مجوزی تنظیم نکنید. چون هکر ها با دسترسی به آن سرویس خاص میتوانند به راحتی فایل ها را مدیریت کنند.
3- سومین مورد که بسیار مهم است این است که هیچ وقت بر روی گروه Anonymous Users مجوزی به جز Read تنظیم نکنید.
از طرفی فکر میکنم آشنایی با RBAC یا Role Based Access Control در ویندوز و سرویس آن میتواند کمک بسزایی در امنیت شما داشته باشد. این نوع Permission فقط از طریق سیستم شما قابل کنترل است و طبق Role های موجود و Assign شده به کاربران به آنها روی job ها و فعالیت های مختلف حق دسترسی می دهد. این نوع Permission در مایکروسافت بیشتر مخصوص ویندوز سرور هایی هست که روی آن ها سرویس های مایکروسافت مانند Exchange و Lync و ... قرار دارند زیرا این سرویس ها از RBAC به عنوان Primary Permission Method استفاده می کنند.
اگر در محیط WorkGroup هستید حتما یادتان باشد در LSD سیستم خود با استفاده از قسمت Properties کاربر محل Default ساختن پروفایل کار بر را تغییر دهید و در Permission های آن مجوز ها را برای دیگر کاربران محدود کنید. ولی اگر در محیط دامین هستید باید حواستان به 4 گروه مهم و حیاتی Active Directory باشد که عبارتند از:
Account Operator
Server Operator
Backup Operator
Administrator
این گروه ها گروه های Core اکتیو دایرکتوری هستند که با عضویت در آن ها می شود به تمامی تنظیمات سرور و یا کلاینت دسترسی پیدا کرد. پس باید دقت کنیم که برای کاربران مختلف کدام Security Role ها مناسب می باشد.
اما مهمترین نوع Permission گذاری در اکتیو دایرکتوری تعیین مجوز های مختلف برای Container ها و یا همان OU ها می باشد. ما میتوانیم Hiearchy اکتیو دایرکتوری را طوری طراحی کنیم که هر OU لازمه مجوزی خاص برای گروه یا کاربر خاصی باشد. برای این کار میتوانیم از OU خود Properties گرفته و اینجا هم مثل فایل ها و فولدر وارد قسمت Security شویم و مجوز های مورد نظر را تنظیم کنیم.