نحوه امن سازی سرویس DNS
اولین مرحله در امن سازی DNS Server ها، جمع آوری اطلاعات می باشد. این اطلاعات باید مواردی همچون زیرساخت، ساختار سلسله مراتبی Domain های داخلی و خارجی، شناسایی DNS Server هایی Authoritative برای آن Domain Name ها و نیازمندی های DNS Client برای Host Resolution در شبکه را در بر گیرد. انتخاب یک طراحی مناسب امن سازی DNS تاثیر مستقیم دارد. اقدامات اولیه جهت امن سازی سرویس DNS در لیست زیر ذکر شده است.
۱- ارتباط با اینترنت
در صورتی که Hostهای شبکه نیازی به Resolve کردن نامها در اینترنت نداشته باشند، باید ارتباط مابین DNS Serverهای داخلی و اینترنت قطع گردد. در طراحی DNS، میتوان از فضای نامی خصوصی که به طور کامل در شبکه قرار گرفته است استفاده نمود. در این سناریو DNS Serverهای داخلی شامل Zoneهای مربوط به Root-Domain و Top Level-Domain شده و از Root Name Serverهای اینترنتی استفاده نخواهند کرد.
هنگامی که سرویس DNS Sever در Domain Controller قرار دارد، Root Hintها ابتدا از داخل Active Directory خوانده میشوند. اما در صورتیکه سرویس DNS در Domain Controller وجود نداشته باشد و یا Root Hint در Active Directory موجود نباشد، Root Hintها با استفاده از فایل (Cache.dns) اجرا می شوند. این فایل در مسیر systemroot%System32DNS% قرار گرفته و شامل رکوردهای Name Server (NS) و (A,AAAA) برای Root Serverهای اینترنتی میباشد.
اگر DNS Server در یک محیط Private مورد استفاده قرار میگیرد، میتوان Root Hintها را با رکوردهای مشابه که به Root DNS Server داخلی متصل شدهاند، ویرایش و یا جایگزین نمود. اگر ملزم به راه اندازی یک DNS Server داخلی در شبکه Private که ارتباطی با اینترنت ندارد، باشیم باید Root Hint ها را برای اتصال به Root DNS Server های داخلی، ویرایش و جایگزین نماییم. همچنین باید Root Hint ها را از Root DNS Server داخلی حذف شود. در صورتی که از Root DNS Server داخلی استفاده نمی شود و شبکه نیز به اینترنت متصل نمی باشد، باید Root Hint ها از تمامی DNS Server ها حذف شوند.
در صورتیکه DNS Server ها ملزم به Resolve کردن نام های اینترنتی باشند، باید DNS Server خارجی به عنوان Forwarder درDNS Server های داخلی پیکربندی شود. به منظور ایمن سازی ارتباط DNS Server های داخلی و خارجی می توان از ویژگی Packet-Filtering فایروال استفاده نمود (تنهای پورت های TCP و UDP 53 اجازه ارتباط را خوهند داشت). همچنین باید Root Hint ها از DNS Server های داخلی حذف شده و یا از Root Hint های داخلی استفاده شود.
۲- DNS Namespace
اگر namespace سازمانی، به Domainهای داخلی و خارجی تقسیم بندی شده است، باید فضای نامی DNS داخلی در DNS Serverهای شبکه داخلی و فضای نامی DNS های خارجی در DNS Server های دیگری قرار گیرد. به منظور محافظت از DNS Serverهای داخلی باید آنها در پشت Firewall قرار گیرند.
اگر Clientها نیازمند Resolve کردن Hostها در فضای نامی خارجی باشند، فضای نامی DNS داخلی میتواند یک Subdomain از فضای نامی DNS خارجی باشد. در صورتی که Namespace های متفاوتی وجود دارد، می توان به صورت جایگزین از Conditional Forwarder ها و یا Stub Zone ها استفاده نمود.
۳- محدود سازی Zone Transfer
برای افزایش امنیت باید تمام Zone Transferها تا زمانی که نیازی به آنها وجود ندارد غیرفعال شود. به طور پیش فرض Zone Transfer برای تمامی Zoneهایی که AD Integrated هستند غیرفعال میباشد. اما برای سایر Zone، تنظیمات پیش فرض برای Zone Transfer تنها برای سرورهایی که در Name Server Resource Records لیست شده است، امکان پذیر خواهد بود. در صورتی که لازم است Zone Transfer بین سرور هایی متمایز از لیست مذکور صورت گیرد، تنها باید برای IP Address های مشخص پیکربندی شود. فعال سازی Zone Transfer برای تمامی سرورها ممکن است منجر به فاش شدن دادههای DNS برای مهاجمینی که قصد شناسایی شبکه سازمانی را دارند، گردد.
۴- پیکربندی Active Directory Integrated Zone
در صورت استفاده از Active Directory Integrated Zone، افزونه هایی همچون Access Control List و Secure Dynamic Update در دسترس خواهد بود. AD Integrated Zone تنها در صورتی که DNS Server نقش Domain Controller را نیز بر عهده دارد، قابل انتخاب خواهد بود. همواره توصیه می گردد از Zone های Active Directory Integrated استفاده گردد.
۵- تنظیمات Discretionary Access Control List
میتوان با استفاده از DACL، DNS Zone Object Container را در Directory امن سازی نمود. این ویژگی قابلیت فراهم سازی دسترسی جزئی به Zone یا یک Resource Record خاص در DNS را فراهم میآورد. به عنوان مثال، با استفاده از DACL برای Zone Resource Record میتوان ایجاد محدود نمود. بنابراین Dynamic Update تنها برای یک Client خاص و یا یک گروه ایمن مانند Domain Admins امکان پذیر خواهد بود.
۶- تنها Dynamic Update امن
Dynamic Update میتواند Secure و یا Non-Secure باشد. به منظور جلوگیری از حملات DNS Spoofing، لازم است Dynamic Updates بر روی Secure Only قرار گرفته شود.
۷- تنظیم Global Query Block List
ویژگی Global Query Block List اولین بار در Windows Server 2008 معرفی گردید. این ویژگی باعث جلوگیری کاربران مخرب از ثبت Host Nameها میگردد. تمامی DNS Serverهای Authoritative برای یک Zone، لازم است با Block Listهای مشابه پیکربندی شود. Block List یک Per-Server Setting به شمار میرود، لذا ما بین سرورها Replicate نخواهد شد.
dnscmd [<ServerName>] /config /enableglobalqueryblocklist 0|1
۸- پیکربندی Socket Pool
این ویژگی سبب میشود تا DNS Server هنگام ارسال Queryها از Source Portهای تصادفی استفاده کند. این امر موجب افزایش امنیت در مقابله با حملات Cache Poisoning خواهد شد. این ویژگی با تنظیمات پیش فرض پس از نصب Update امنیتی MS08-037 فعال خواهد شد. به منظور انجام تنظیمات بیشتر میتوان از دستور Dnscmd استفاده نمود.
۹- پیکربندی Cache Locking
پس از فعال کردن این ویژگی، DNS Server مجوز Overwrite شدن رکوردهای Cache شده در محدوده زمانی TTL را نخواهد داد. همچنین این قابلیت باعث بالارفتن امنیت در مقابل حملات Cache Poisoning میشود. این ویژگی از نسخه Windows Server 2008 R2 به بعد در دسترس میباشد. جهت پیکربندی Cache Locking میتوان از دستور ذیل استفاده نمود.
dnscmd /Config /CacheLockingPercent <percent>
۱۰- محدودسازی پاسخ DNS به Interfaceهای انتخاب شده
به صورت پیش فرض، DNS سروری که چندین کارت شبکه دارد و یا با چندین IP Address بر روی یک تک Interfaceها پیکربندی شده است، به تمامی DNS Queryهای ارسالی به همه IP Addressها پاسخ میدهد. به منظور بالابردن امنیت DNS Server، لازم است سرویس DNS تنها به IP Addressی که DNS Client آن را به عنوان Preferred Server انتخاب کرده است، پاسخ دهد.
۱۱- غیرفعال سازی Recursion
برای محافظت از DNS Serverها، لازم است Recursion بر روی تمامی سرورهایی که نیاز به انجام Queryهای Recursive ندارند، غیرفعال شود. Recursion یک تکنیک Name Resolution به شمار میرود که در آن DNS Server به منظور Resolve کردن کامل نام، جهت پاسخ به درخواست Client از سایر DNS Severها Query میگیرد و پاسخ آن را به Client ارسال میکند. در صورتی که این ویژگی فعال باشد، مهاجم می تواند از فرایند Recursion استفاده نموده تا Domain Nameها با IP Addressهای نادرست Resolve شوند. به صورت پیش فرض DNS Serverها، Recursive Queryها را از طرف Clientهای خود و DNS Serverهایی که Queryهای DNS Client را Forward کردهاند، اجرا میکنند.
۱۲- امن سازی DNS Cache
به صورت پیش فرض DNS Server در مقابل Cache Pollution (هنگامی که پاسخهای DNS Query شامل دادههای Non Authoritative و یا مخرب است) امن میباشد. ویژگی Secure Cache Against Pollution از آلوده کردن DNS Server Cache توسط مهاجم (با Resource Recordهایی که توسط DNS Server درخواست نشدهاند)، جلوگیری میکند. تغییر در تنظیمات پیش فرض سبب میشود تا صحت پاسخ هایی که توسط سرویس DNS Server فراهم می شود، کاهش یابد.
۱۳- DNS Queries & Response Validation
تکنولوژی های ذیل سبب بالارفتن امنیت با استفاده از اعتبارسنجی ارتباط های Server to Server و Server to Client میشود.
Domain Name System Security Extensions (DNSSEC)
مجموعهای از افزونهها میباشد که سبب بهبود امینت پروتکل DNS میشود. این ویژگی از Windows Server 2008 R2 به بعد اضافه شده و موجب میشود تا DNS Server و Resolver نسبت به پاسخها Trust داشته باشند. این امر از طریق Digital Signature (امضای دیجیتال) محقق میشود. همچنین DNSSEC، DNS Server را در مقابل حملات DNS Spoofing محافظت میکند.
IPSEC
این ویژگی راه حل مناسبی را جهت محافظت از سیستمها و اطلاعات در مقابل حملات شبکه فراهم میآورد. IPSEC، خطر دستکاری شدن اطلاعات ارسالی بین دو سرور ( Zone Transfer Data) را کاهش میدهد. هنگامیکه IPSEC فعال میشود، هر دو پایانه پیش از شروع ارتباط اعتبارسنجی میشوند. از این ویژگی همچنین می توان جهت محافظت از ارتباط بین DNS Serverها و Clientها جهت جلوگیری از Spoofing Attack استفاده نمود.
۱۴- فعال سازی Name Protection
به منظور جلوگیری از حملات Name Squatting، از Name Protection استفاده کنید.
ممنونم بابت به اشتراک گذاری این مطالب مفید
خیلی عالی است. متشکرم