البته بحث امنیت شبکه دارای شاخه ها و سطوح مختلفی است که ما در این درس به آشنایی و پیاده سازی یک سری تنظیمات امنیتی پایه که باید در تمام شبکه ها رعایت شود میپردازیم .

قبل از شروع این بحث باید با مفهومی به نام Policy آشنا شویم . به هر تنظیمی که بوسیله آن رفتار سیستم عامل ، منابع شبکه و یا برنامه ها را برای یک کاربر یا کامپیوتر خاص تعیین کنیم ، یک Policy  میگویند و تمام Policyهای قابل تنظیم در سیستم عامل ، در یک Group policy قرار گرفته اند که در حقیقت مجموعه تمام آنهاست.

ما در این درس به انجام یک سری تنظیمات امنیتی بر پایه User accountها از طریق Policyهای مربوطه(Account policy)  میپردازیم. به عنوان مثال در یک شبکه مدیر تشخیص میدهد که بعد از گذشت هر دوره 30 روزه احتمال لو رفتن Password کاربران زیاد میشود ، در اینجا مدیر میتواند از طریق تنظیم Policy مربوط در قسمت Account policy تمام کاربران را موظف کند هر 30 روز یکبار Password خود را عوض کنند.

 سیستم عامل ویندوز برای پیاده سازی تنظیمات امنیتی از طریق Policyها ، کنسولی به نام Group policy را معرفی کرده که با اجرای فرمان Gpedit.msc در Run قابل دستیابی است .

 همانطور که در شکل مشخص است این کنسول دارای یک ساختار درختی در قسمت چپ است که با انتخاب هر Policy ، در قسمت راست گزینه های قابل تنظیم آن نمایش داده میشوند .

این ساختار درختی شامل دو قسمت Computer configuration  و User configuration است

 اگر یک Policy را در قسمت Computer configuration تنظیم کنیم ، روی آن کامپیوتر اعمال میشود .

اگر یک Policy را در قسمت User configuration تنظیم کنیم ، روی Userها اعمال میشود .

 البته Group policy ها در شبکه های Domain خیلی وسیعتر و حرفه ای تر مورد استفاده قرار میگیرند و درک  Computer configuration و User configuration در آنجا راحتتر خواهد بود . در این درس تمامی تنظیمات امنیتی از قسمت Computer configuration انجام میشود.

 همانطور که میدانیم بیشترین نفوذ کاربران غیر مجاز به کامپیوترهای شبکه ، از طریق پیدا کردن User name و Password کاربران انجام میشود ، مدیر شبکه باید برای User account کاربران (User name , Password ) امنیتی را برقرار کند که احتمال چنین نفوذهایی به حداقل برسد . این امنیت توسط Policyهای موجود در قسمت Account policy انجام میشود.

 دو مشکل امنیتی مربوط به User account  کاربران که معمولا باعث نفوذ افراد غیر مجاز به شبکه از طریق پیدا کردن User name و Password آنان میشوند :

 1)  کاربران ممکن است Password را طوری انتخاب کنند که پیدا کردن آن برای یک کاربر غیرمجازبه سادگی ممکن باشد ( به عنوان مثال کلمه ای ساده ، با طول کم و تکراری را  به عنوان Password انتخاب کند مانند کلمه( “Ali” ) .

 2) یک کاربر غیرمجاز با استفاده از روش آزمون و خطا Password یک User account را به دست می آورد. به این شکل که ابتدا User name یک User account را پیدا میکند ( که کار چندان مشکلی نیست ) و سپس Passwordهای مختلفی را روی آن آزمایش میکند تا Password مورد نظر را پیدا کند.

 قسمت Account policy خود شامل دو قسمت Password policy و Account lockout policy  است که مشکل امنیتی شماره (1) توسط Password policy  و مشکل امنیتی شماره(2)  توسط  Account lockout policy  حل میشوند .

 Password policy :

 همانطور که میدانیم یک User account از User name و Password تشکیل شده است . به طور کلی User name کلمه ایست که مطابق با نام کاربر انتخاب میشود و معمولا تعویض نمیشود و سیستم عامل هم امنیتی برای آن برقرار نکرده است . پس User name میتواند به سادگی لو رود و به دست افراد غیر مجاز بیافتد . ولی در مورد Password که برای ورود به سیستم مکمل User name است اینطور نیست . مدیر شبکه برای جلوگیری از نفوذ افراد غیر مجاز به شبکه ، باید بالاترین حد امنیت را برای Password ها قرار دهد تا از لو رفتن آن جلوگیری کند . توجه کنید که لو رفتن Password برابر است با نفوذ به شبکه .

 windows settings -> security settings -> account policy -> password policy

 همانطور که در شکل می بینید ، بعد از انتخاب Password policy ، در قسمت سمت راست پنجره شش Policy قابل تنظیم مشاهده میشود که هر کدام از آنها به نوعی به برقراری امنیت Passwordها کمک میکنند . برای تنظیم هر کدام روی آن راست کلیک کرده و Properties  میگیریم . در اینجا به توضیح  این Policyها میپردازیم ولی به دلیل درک راحتتر ترتیب آنها را عوض میکنیم .

 Maximum password age : طبق یک دیدگاه امنیتی Passwordها باید به صورت دوره ای تعویض شوند تا هم احتمال لو رفتن آن کمتر شود و هم در صورتی که Password  لو رفته باشد ، هکر زمان زیادی برای استفاده نداشته باشد .

زمانی که برای یک کاربر Password انتخاب میکنیم ، پس از گذشت یک دوره که در این قسمت مشخص میشود ، توسط سیستم عامل مجبور به تعویض Password میشود. در حقیقت مدت زمان اعتبار یک Password در اینجا مشخص میشود .  این مدت اعتبار بین 0 تا 999 روز قابل تنظیم است که عدد 0 به این معنی است که Password تاریخ اعتبار ندارد و هیچ وقت باطل نمیشود ( که از نظر امنیتی  به هیچ وجه توصیه نمیشود ) .

به عنوان مثال اگر این عدد روی 25 تنظیم شده باشد ، بعد از 25 روز از  انتخاب Password قبلی ، سیستم عامل پیغامی مبنی بر باطل شدن Password به کاربر میدهد و تقاضای Password جدید میکند .

 Enforce password history : یکی از بزرگترین مشکلات در امر کنترل Passwordهای کاربران ، انتخاب Password تکراری توسط کاربران است به این معنی که اصولا کلمه ای که باید برای Password در نظر گرفته شود ، معمولا عدد یا کلمه خاصی است که کاربر آن را همیشه به خاطر داشته باشد . به همین دلیل است که کاربران همیشه  یک سری عدد یا کلمه مشخص را برای Password انتخاب میکنند ( مثلا شماره شناسنامه ، یک نام خاص ، یک شماره تلفن و...) و هر زمانی که Password توسط ویندوز باطل شد و ویندوز ار کاربر Password جدیدی تقاضا کند، کاربر یکی از کلمه ها یا اعدادی که به خاطر آوردن آن برایش راحت است را انتخاب میکند و حتی همان Passwordی که باطل شده را دوباره انتخاب کند . این کار باعث میشود که یک هکر برای پیدا کردن Password یک کاربر فقط یک سری کلمه ها و اعداد مشخص را بداند و از آنها برای ورود به سیستم استفاده کند .

ولی با تنظیم گزینه Enforce password history این مشکل حل میشود به این شکل که در این قسمت عددی را مشخص میکنیم ( بین 0 و 24 ) که این عدد تعداد دفعاتی است که کاربر در انتخاب Password قادر به دادن Password تکراری نیست . مثلا زمانی که این گزینه روی عدد 6 تنظیم شود ، ویندوز یک لست شش قسمتی برای Passwordها تعیین میکند و هر زمان که  کاربر کلمه ای را برای Password انتخاب میکند ، آن کلمه را در اولین قسمت این لیست مینویسد و به همین ترتیب برای Password های دیگر عمل میکند . حالا در صورتی ویندوز Password جدید را بعد از باطل شدن  Password قبلی از شما قبول میکند که Password پیشنهادی شما در این لیست نباشد. به این ترتیب زمانی که شما کلمه ای را برای Password انتخاب کردید و ویندوز آن را قبول کرد ، تا 6 بار دیگر که ویندوز از شما Password جدید تقاضا کند ، از آن کلمه نمیتوانید استفاده کنید . ولی بعد از مشخص کردن Password هفتم شما میتوانید از Password اولتان استفاده کنید چون Password هفتم در لیست روی Password اول نوشته میشود .

 Minimum password age : اگر به Enforce password history دقت کنید متوجه میشوید که دارای یک مشکل امنیتی است به این شکل که :

به عنوان مثال کاربری کلمه "Ali61"  را به عنوان Password انتخاب کرده است و ترجیح میدهد همیشه با این کلمه به عنوان Password کار کند و از طرف دیگر هم Enforce password history روی عدد 6 تنظیم شده . بعد از گذشت یک دوره ویندوز به کاربر پیغام میدهد که Password باطل (Expire) شده و باید Password جدیدی انتخاب کند . از آنجایی که Enforce password history اجازه استفاده مجدد از کلمه "Ali61"  را به عنوان Password نمیدهد این کاربر نمیتوانند از آن استفاده کند و باید کلمه ای را به عنوان Password انتخاب کند که در لیست ثبت نشده باشد ( تکراری نباشد ).

اما کاربر با یک ترفند ساده قادر است دوباره از " Ali61 " به عنوان Password استفاده کند به این شکل که با استفاده از قسمت User account در Control panel به طور پیاپی 6 بار Password خودش را با کلمه های مختلف عوض میکند تا زمانی که لیست از کلمات غیر تکراری پر شود و سپس کلمه"Ali61" را به عنوان هفتمین Password وارد میکند و چون این کلمه در لیست نیست به عنوان Password غیر تکراری محسوب میشود و مورد قبول سیستم عامل قرار میگیرد.

برای رفع این مشکل امنیتی ، Minimum password age را معادل عددی بین 0 تا 999 تنظیم میکنیم که بیانگر تعداد روزی است که کاربر باید برای تغییر مجدد Password صبر کند . به عنوان مثال اگر روی عدد 3 تنظیم شده باشد ، زمانی که کاربر Password خودش را عوض کرد ، تا 3 روز اجازه تغییر Password  را ندارد.

توجه شود که اگر این مقدار برابر 0 قرار گیرد به این معنی است که کاربر بعد از انتخاب Password بلافاصله قادر به تغییر آن است پس زمانی که Enforce password history در شبکه اعمال شده باشد این مقدار به هیچ وجه نباید معادل 0 قرار گیرد .

Minimum password length : در این قسمت حداقل طول کلمه ای که کاربر میتواند برای Password انتخاب کند را تنظیم میکنیم که عددی است بین 0 تا 14 . هر چه طول Password بیشتر باشد احتمال لو رفتن آن کمتر است . توجه کنید که اگر این مقدار برابر 0 قرار گیرد به این معنی است که کاربر میتواند بدون  Password کار کند و اصطلاحا Password خالی یا Blank داشته باشد ( که به هیچ وجه توصیه نمیشود ).

 Passwords must meet complexity requirements  :  برای امنیت بیشتر Password ها میتوان آنها را به صورت پیچیده یا Complex انتخاب کرد . Passwordهای پیچیده Passwordهایی هستند که از کاراکترها (A..Z,a..z)  ، اعداد (0..9) و علامتها (Symbols @,+,-,!,*,&,…) در ترکیب آنها استفاده شده باشد. مثلا این کلمه یک Password  پیچیده است : Mcse@70270

در صورتی که نیاز به استفاده از Passwordها پیچیده در شبکه باشد ، این خاصیت را فعال (Enable) میکنیم .

 Account lockout policy :

همانطور که در مشکل امنیتی شماره (2) گفته شده ، یکی از روشهایی که کاربران غیر مجاز برای بدست آوردن Password کاربران از آن استفاده میکنند روش آزمون و خطاست ، به این شکل که روی یک User name ، Passwordهای مختلفی را آزمایش میکنند تا بتوانند Password مورد نظر را پیدا کنند و از طریق آن به شبکه نفوذ کنند . تنظیمات Account lockout policy امکان استفاده کاربران غیرمجاز از این روش را از بین میبرد به این شکل که :

سیستم روی تعداد Logonهای یک User account که با شکست مواجه میشوند حساس میشود و احتمال میدهد که یک کاربر غیرمجاز روی آن User account در حال استفاده از روش آزمون و خطاست و آن User account را Lock ( قفل ) میکند .

  حال با تنظیمات کامل Account lockout policy آشنا میشویم :

windows settings -> security settings -> account policy -> password policy

 Account lockout threshold : همانطور که گفته شد هکرها با استفاده از روش آزمون و خطا Password کاربران را بدست می آورند و سیستم برای مقابله با آن روی تعداد مشخصی Failed logon ( Logonی که به دلیل اشتباه بودن User name یا Password با شکست مواجه شده اند) حساس میشود و در صورتی که تعداد Failed logonهای یک User account از این تعداد بیشتر شد ، Account را Lock ( قفل )  میکند .

در این قسمت تعداد مجاز Failed logon  را قبل از اینکه User account  قفل شود ، وارد میکنیم که عددی است بین 0 تا 999 . در صورتی که این مقدار برابر 0 قرار گیرد به این معنی است که سیستم هیچ حساسیتی روی Failed logonها نداشته باشد .

Account lockout duration : همانطور که گفته شد در صورتی که تعداد Failed logonها به حد مشخص شده رسید،User account قفل میشود . در این قسمت باید زمان قفل بودن User accountها را مشخص کنیم که عددی است بین 0 تا 99999  دقیقه ( تقریبا 69 روز ) .

توجه کنید که اگر این مقدار برابر 0 تنظیم شود ، به این معنی است که در صورتی که User account قفل شد، تا زمانی که مدیر آن را به صورت دستی باز نکند ، قفل بماند .

در صورت نیاز به باز کردن یک Account به صورت دستی در قسمت Users از Computer management ( در درس User account توضیح داده شده ) روی آن User ، Properties گرفته و تیکی که در قسمت Account is locked out خورده را برمیداریم.

 Reset account lockout counter after  :  در واقع  Account lockout policy برای شمارش تعداد دفعات Failed logon ها از یک شمارنده یا Counter استفاده میکند . این شمارنده به این شکل عمل میکند که در ابتدا مقداری برابر با 0 دارد و هر بار که کاربر در هنگام ورود به سیستم به هردلیلی User name و یا Password اشتباه وارد کند و نتواند به سیستم Logon کند ، 1 واحد به آن اضافه میشود . این عمل تا زمانی که مقدار شمارنده به حد مشخص شده در Account lockout threshold  برسد انجام میشود و  زمانی که مقدار شمارنده با این مقدار برابر شده ،User account قفل میشود .

این روند گاهی اوقات مشکل کوچکی را برای کاربران به وجود می آورد که آن را با ذکر یک مثال آن را توضیح میدهیم :

فرض کنیم در یک شبکه Account lockout policy  به شکل زیر تنظیم شده است :

Account lockout threshold      =>      3

Account lockout duration        =>  120

 

 امروز روز اول ماه است و شما قصد شروع کار را دارید . مدیر شبکه یک User name و Password را برای استفاده ازیکی از کامپیوترهای شبکه در اختیار شما میگذارد . شما قصد Logon کردن توسط آن User account به شبکه را دارید و در همان حین در حال صحبت با تلفن هستید به جای کلمه Ali061*ms به عنوان Password ، سهوا کلمه Ali061*sm را وارد میکنید . سیستم به شما پیغام خطایی مبنی بر اشتباه بودن User name یا Password میدهد و شما برای بار دوم  با درست وارد کردن آنها وارد شبکه میشوید .

در اینجا تنها اتفاقی که افتاد این بود که با یک بار اشتباه وارد کردن User name یا Password شمارنده یا Counterی که وظیفه شمردن Failed logon ها را دارد ، برابر با 1 شده .

ده روز بعد شما در حالی که مشغول صحبت با یکی از کارمندان هستید و در همان لحظه در حال وارد کردن User name و Password برای Logon کردن به شبکه هستید ، که باز هم به طور سهوی  Password را به اشتباه وارد میکنید . سیستم به شما پیغام مربوطه را میدهد و شما مجددا با Password صحیح به شبکه Logon میکنید .  در اینجا شمارنده ( Counter ) مربوطه برابر با 2 میشود .

پانزده روز پس از این تاریخ یعنی روز 25 ماه شما باز هم به دلیل مشغله فکری Password را اشتباه وارد میکنید و این بار شمارنده مربوطه برابر با 3 میشود . چون در  Account lockout threshold  هم تعداد مجاز Failed logon برابر با 3 تنظیم شده بود ، پس  User account کاربر قفل یا Lock میشود و باید تا انتهای بازه زمانی که در Account lockout duration تنظیم شده ، صبر کنیم که در اینجا برابر با 120 دقیقه یا 2 ساعت است .

 همانطور که در تعریف Account lockout threshold گفته شد ، این سیاست به منظور جلوگیری از استفاده کاربران غیرمجاز از روش آزمون و خطا برای بدست آوردن Password کاربران است ولی همانطور که در مثال مشخص است ، کاربران مجاز هم گاهی اوقات ممکن است به طور سهوی در هنگام Logon به اشتباه User name یا Password را وارد کنند . میتوان گفت که Account lockout threshold  تفاوت بین Failed logonهای یک کاربر غیرمجاز را با Failed logon های سهوی یک کاربر مجاز،  تشخیص نمیدهد .

برای حل این مشکل از این فرضیه استفاده میکنیم که در صورتی که کاربری در زمان Logon کردن به شبکه یک یا دو Failed logon داشته باشد ولی بار سوم بتواند به سیستم Logon کند (بسته به تعداد Account lockout threshold دارد)، یک کاربر مجاز است که به طور سهوی User name یا Password را اشتباه وارد کرده بوده و شمارنده Account lockout threshold نباید این اشتباهات را در خود ذخیره کند . در چنین حالتی ، بعد از گذشت مدت زمانی که در  Reset account lockout conter after  مشخص میکنیم ، آن شمارنده را برابر با (0)  مقداردهی میکند.