نگاهی به ساختار و مؤلفههای امنیتی درونی ویندوز ماهنامه شبکه - ارديبهشت 1393 شماره 156
» حمیدرضا تائبی
جلوگیری از دستیابی غیرمجاز به دادههای حساس در هر مکانی که از کاربران یا کارکنان متعددی تشکیل شده امری ضروری است. رویکرد محافظت از دادهها به روشهای متفاوتی سازماندهی میشود، بهعنوان مثال، در محیطهای فیزیکی این موضوع میتواند با اتخاذ سیاستهایی همانند بهکارگیری کارکنان ویژهای بهنام مأمورین امنیتی بههمراه دوربینهای مداربسته انجام میگیرد. اما در دنیای کامپیوتر و فناوری اطلاعات که حضور فیزیکی معنای عام خود را از دست میدهد، شرکتها روشهایی را برای پیادهسازی این منظور اتخاذ میکنند که هم نرمافزارها و هم کاربران این نرمافزارها در ابتدا توانایی محافظت از فایلها، دادههای حساس و تنظیمات پیکربندی که آنها را برمبنای نیاز کاری خود تنظیم کردهاند را داشته و همچنین مانع از اعمال تغییرات ناخواسته یا مشاهده دادههای حساس توسط کاربران ناشناس شوند. مقدمه
اصطلاح امنیت در سیستمعاملها مفاهیمی مانند مکانیزم کنترل حساب کاربری، درج رمزهای عبور، روشهای مدیریت و محافظت از حافظه اصلی سیستم، کنترل مدخلهای ورودی و خروجی به سیستمعامل (پورتها)، محافظت از فایلها و پوشهها و... را شامل میشود. در کنار موارد یاد شده مکانیزمهای دیگری که کمتر در ظاهر آشکار هستند نیز از خرابی سیستمعامل یا دستکاری سیستمعامل جلوگیری به عمل میآورد. نرمافزارهای حساسی مانند سیستمعاملها به شرطی که مطابق با استانداردهای رایج و بینالمللی تعریف شده باشند، به دولتها، شرکتها و کاربران این اطمینان را میدهد که نرمافزار مورد استفاده آنها معیارهای ارزیابی را پشت سرنهاده است و حداقل میتوانند در شرایط پایدار به آن اطمینان داشته باشند. این سیاست استانداردگذاری امنیتی در امریکا و کشورهای دیگر بر پایه استاندارد CC (سرنام Common Criteria) انجام میشود.
اگر بهعنوان یک کاربر یا کارشناس کامپیوتر که تجربه کافی در زمینه امنیت بهخصوص در شاخه سیستمعاملها را داشته باشید تلاشهایتان در جهت ایجاد یک محیط پایدار و امن موفقیتآمیز خواهد بود. از میان سیستمعاملهای رایجی که امروزه طیف گستردهای از کاربران و شرکتهای بزرگ آنرا بهطور جدی مورد استفاده قرار میدهند، سیستمعاملهای ویندوز و لینوکس مخاطبان زیادی دارد. درمورد سیستمعامل لینوکس تاکنون سخن بسیار شنیدهایم و همگان بر امنیت و پایدار بودن آن تأکید میکنند، اما در زمینه امنیت سیستمعامل ویندوز میتوان گفت کم سخن به میان آمده است.
هرچند از زمان پیدایش سیستمعامل ویندوز موضوع امنیت از چالش برانگیزترین حواشی پیرامون این سیستمعامل بوده و بهطور پیوسته بستههای بهروزرسانی برای آن منتشر میشود، اما به لحاظ تأثیرگذاری این سیستمعامل بر روند توسعه نرمافزارها و دنیای کامپیوتر کسی نیست که آنرا منکر شود. ویندوز 8.1 به عنوان جدیدترین سیستمعامل شرکت مایکروسافت تا زمان نگارش این مقاله از بهروزرسانیهای مهمی در بخشهای مختلف ویندوز 8 بهره میبرد که توانست تا حدود زیادی ایرادات ویندوز 8 را برطرف کند. در این مقاله قصد داریم تا همراه با شما به درون سیستمعامل ویندوز سفر کرده و با مؤلفههای داخلی ویندوز که در زمینه امنیت این سیستمعامل کار میکنند، آشنا شویم. ساختار و مؤلفههای امنیتی ویندوز
بیشتر کاربران ویندوز را با قابلیتهای امنیتی گرافیکی مانند کنترل حساب کاربری، BitLocker و دستورات خط فرمان و... را میشناسند. اما شاید این نکته برایتان جالب خواهد بود که ویندوز قابلیتهای امنیتی متعدد دیگری هم دارد. به عبارت دیگر هر عمل سادهای که در ویندوز انجام میدهید، مانند اجرای یک فایل ساده از میان یکسری فرآیندها پیچیده عبور میکند تا اجرا شود، ما با بعضی از این فرآیندها بهطور شهودی آشنا هستیم. فرآیندهایی که تحت نام پردازهها و سرویسهای ویندوز، lsass.exe/winlogon و... که همواره توصیه میشود به سراغ آنها نرفته و اجازه دهید روند طبیعی خود را سپری کنند، نمونههایی از این موارد به شمار میرود. ویندوز در مجموع یازده مؤلفههای اصلی و کلیدی در زمینه امنیت دارد که وظیفه برقراری امنیت داخلی در این سیستمعامل را عهدهدار است. (این تعداد در مقایسه با ویندوز NT بیشتر است.) این ساختار امنیتی یکپارچه برای تعیین هویت، اعتبارسنجی و ضبط اطلاعات امنیتی در سیستمعامل ویندوز مورد استفاده قرار میگیرند. در کنار این عناصر داخلی برخی از مؤلفهها نیز بهصورت بصری دراختیار کاربران قرار دارند، مؤلفههایی مانند User Access Control (کنترل حساب کاربری) نمونههایی از این موارد به شمار میروند. ما در این قسمت بهطور مختصر به معرفی این مؤلفهها میپردازیم.
Security reference monitor
قبل از اینکه هر گونه عملی روی سیستمعامل ویندوز توانایی اجرا داشته باشد، سیستمعامل ابتدا این عمل را با system policy بررسی میکند که آیا منطبق با system policy است یا خیر. به عنوان مثال، آیا یک دستگاه میتواند در دسترس همه درخواستها باشد یا خیر. SRM مؤلفهای در Windows Executive است (که در گذشته بهنام NT Executive بود) که در مسیر %SystemRoot%\System32\Ntoskrnl.exe قرار دارد و در سطح کرنل عمل میکند(شکل1). این مؤلفه را میتوان شبیه به یک سگ نگهبان، زمانیکه برنامهها سعی در دسترسی به منابع سیستم دارند، تصور کرد. ویندوز دسترسی مستقیم به اشیاء را ممنوع کرده است و هر کاربر یا پردازهای که نیازمند دسترسی به اشیای قرار گرفته در ویندوز است، ابتدا باید توسط SRM اعتبارسنجی شود که آیا مجوز لازم برای این دسترسی را دراختیار دارد یا خیر. اینکار با مقایسه نشانه دسترسی الصاق شده به یک پردازه با نمونه از پیش قرار گرفته در DACL الصاق شده به شیئی که پردازه سعی در دسترسی به آن دارد، انجام میگیرد. این مقایسه برمبنای (یا security identifier) SIDs)؛ در انتهای این بخش با SID بیشتر آشنا میشوید.) در موجودیت DACL با موجودیت SIDs در نشانه دسترسی انجام میگیرد. این امر برای اطمینان از سطح مجوزی است که یک پردازه میتواند دریافت کند.
یکی دیگر از وظایف این مؤلفه کنترل درخواستهای کاربران برای دستیابی به اشیای قرار گرفته در یک سیستم است. هر درخواست دسترسی به یک شئ ابتدا باید توسط SRM ارزیابی شود. بهعنوان مثال، اگر کاربری درخواست دسترسی به یک فایل خاص را ارائه داده است، SRM برای ارزیابی این درخواست، مورد استفاده قرار خواهد گرفت. به طور کلی تعریف یک نشانه دسترسی برای ساختار دادهها برای نشان دادن یک زمینه امنیتی، انجام آزمایشهای امنیتی روی اشیاء، دستکاری مجوزها و تولید پیامهای امنیتی که نتیجه این فرآیندها است، از وظایف این سرویس به شمار میرود.
نکته: سرویس Windows Executive یکی از سه لایه Kernel mode بوده که در فایل Ntoskml.exe قرار دارد.اجزای آن از تعدادی سرویس پایه که در ارتباط با مدیریت عملیات ورودی/خروجی، مدیریت شئ، مدیریت پردازه، مدیریت حافظه، مدیریت اشیاء، مدیریت کش، مدیریت انرژی، امنیت و... هستند تشکیل میشوند (شکل2). SID چیست؟ SID (سرنام Security Identifier) یک شناسه امنیتی تشکیل شده از یک مقدار با طول یا اندازه متغیر که برای شناسایی منحصربهفرد (Uniquely Identify) یک اصل امنیتی (Security Principal) یا یک گروه امنیتی(Security Group) مورد استفاده قرار میگیرد. هر حساب کاربری یا گروهی یک SID منحصر بهفرد دارد که توسط یک مرجع، مانند یک دامین کنترولر یا یک پایگاه داده امنیتی صادر میشود. زمانی که اکانت یا گروهی ساخته میشود، سیستم به سرعت یک SID منحصربهفرد را برای آن ایجاد کرده و به این اکانت یا گروه اختصاص میدهد. زمانی که یک SID برای شناسایی یک اکانت یا گروه ایجاد و به آن تخصیص داده میشود، دیگر نمیتوان از این SID برای شناسایی یک اکانت یا گروه دیگری استفاده کرد و به همین دلیل است که آنرا منحصربهفرد مینامیم. هر زمان که یک کاربر به سیستم وارد شده (Login) یا از آن خارج میشود (Logs on)، سیستم برای آن کاربر نشانه رمز یا اجازه دسترسی یا رمز دسترسی (Access Token) ایجاد میکند. این نشانه رمز دسترسی از SID مربوط به کاربر، همچنین SIDs تمام گروههایی که کاربر به آن تعلق دارد و همچنین تمام مجوزهای (Privileges) مربوط به کاربر تشکیل شده است.
این رمز (Token) زمینه امنیتی (Security Context) همه کارهایی را که کاربر روی کامپیوتر انجام میدهد، فراهم میکند. با توصیفی که درمورد SID داشتیم، شاید این پرسش در ذهن خوانندگان بهوجود آمده باشد که اساساً SID به چه شکلی است: شکل3 ساختار یک SID را نشان میدهد. S-1-5-21-1004336348-1177238915-682003330-512
SID = S
Revision number = 1
Identifier authority = 5
Domain identifier = 21-1004336348-1177238915-682003330
Relative identifier (Domain Admins) = 512
در یک کامپیوتر میتوان SID مربوط به کاربرانی که به یک کامپیوتر وارد یا خارج شده اند را از مسیر زیر در رجیستری استخراج کرد:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\ProfileList
در صورتی که کاربر به یک دامین دیگر انتقال داده شود، SID آن تغییر پیدا میکند و SID جدید را از دامین جدید باید دریافت کرد. همچنین در صورتیکه در پیدا کردن SID به دلیل وجود دو نسخه تکراری از آن دچار مشکل شدید، برای پیدا کردن SID موردنظر میتوانید از فرمان NTDSUTIL استفاده کنید. Local Security Authority subsystem
پردازهای در محدوده سطح کاربری (User Mode) است که در مسیر %SystemRoot%\System32\Lsass.exe قرار دارد. وظیفه این پردازه رسیدگی به فرآیند وارد شدن یک کاربر به سیستم، مدیریت و اداره کردن تغییرات رخ داده روی رمزهای عبور و ساخت یک نشانه دسترسی است. بهطور کلی، این پردازه مسئولیت تعیین سیاستگذاریهای امنیتی یک سیستم محلی را عهدهدار است. زمانیکه کاربری قصد ورود به سیستمعامل را دارد، Windows Logon Service قاعده کلیدی را عهده دار است که از عملیات ورود و خروج به سیستم پشتیبانی کرده و service control manager م (SERVICESS.EXE) و security authority م(LSASS.EXE) را اجرا میکند. در این مرحله بسته به پیکربندی اعمال شده روی یک سیستم صفحه خوشآمدگویی ظاهر شده یا صفحه مربوط به وارد کردن نام کاربری و رمزعبور نشان داده میشود. بعد از وارد کردن نام کاربری و رمزعبور توسط کاربر در مرحله بعد local security authority برای تصدیق هویت کاربر در بانک اطلاعاتی امنیتی که برای حسابهای محلی ساخته شده است مورد استفاده قرار میگیرد. اگر کاربری سعی در حذف این پردازه از فهرست پردازههای جاری سیستم کنید، زمینهساز از دست رفتن و گم شدن اطلاعات با ارزشی همانند اطلاعات مربوط به حساب کاربری و اطلاعاتی در این رابطه است، بهطوریکه در نهایت باید سیستم خود را راهاندازی دوباره کند. همانگونه که اشاره شد، مسیر این فایل همواره مشخص و ثابت است و اگر آنرا در مسیری غیر از مسیر یاد شده پیدا کردید فایل فوق بیانگر یک ویروس خواهد بود. شکل4 ساختار LSA را نشان میدهد. LSASS policy database
یک بانک اطلاعاتی در برگیرنده تنظیمات local system security policy است. این بانک اطلاعاتی در قسمت محافظت شده ACL در بخش زیرین HKLM\SECURITY در رجیستری سیستم ذخیره شده است. این بانک اطلاعاتی شامل اطلاعاتی از قبیل چه کاربری مجوز دسترسی به سیستم دارد و این مجوز به چه صورتی است، مجوزها به چه کاربرانی داده شده است و همچنین چه نوع فرآیندهای حسابرسی امنیتی انجام شده را در خود جای میدهد.
Security Access Manager
وظیفه این فایل ذخیرهسازی رمزهای عبور کاربران در یک قالب hashed است. SAM سرویس اعتبارسنجی کاربر را در مدت زمان ورود او به سیستم که توسط LSA مورد استفاده قرار میگیرد را فراهم میکند. همچنین وظیفه ساخت Security Indetifers م(SID) مربوط به یک کاربر و SIDs هر گروهی که کاربر به آن گروه وابسته است را نیز برعهده دارد. بعد از تکمیل فرآیند ساخت SID نتیجه این فرآیند به LSA برای ساخت یک نشانه دسترسی Access Token که در مدت زمانی که کاربر در سیستم حضور دارد و مورد استفاده قرار میگیرد منتقل میشود. این فایل بهعنوان یک فایل رجیستری قفل شده ساخته میشود.
برای محافظت از این بانک اطلاعاتی و بالا بردن امنیت SAM در مقابل نرمافزارهای کرک در زمان آفلاین، مایکروسافت تکنیک SYSKEY را معرفی کرد. در نتیجه تمامی رمزهای عبور به حالت رمزنگاری شده همراه با یک کلید هستند که خود این کلیدها با استفاده از one-way hash رمزنگاری شدهاند. زمانی که این بانک اطلاعاتی آنلاین بوده و حملهای روی آن صورت گیرد، کپیکردن این فایل SAM به مکان دیگری کار سادهای نخواهد بود. در نتیجه زمانیکه ویندوز در حالت اجرا است امکانکپی یا جابهجا کردن این فایل وجود ندارد.در این حالت کرنل ویندوز این فایل را بهصورت انحصاری (Exclusive) قفل میکند. این قفل تا زمان خاموش شدن سیستم یا مشاهده صفحه آبی مرگ وجود داشته و معتبر خواهد بود.
Active Directory
Active Directory نسخهای پیادهسازی شده از LDAP (سرنام Lightweight Directory Access Protocol directory services) برمبنای RFC4510 است که برای نخستینبار همراه با سیستمعامل ویندوز NT در سال 1999 پا به عرضه ظهور نهاد. (LDAP یک پروتکل اینترنتی برای دسترسی به سرویس دایرکتوری است. بهعبارت دیگر امکان مدیریت و سازماندهی و همچنین برقراری ارتباط با دایرکتوریهای مختلف موجود روی یک شبکه را امکانپذیر میکند. این دایرکتوریها میتوانند روی شبکههای مختلف باشند.) ساختار اکتیودایرکتوری برمبنای سلسه مراتبی از اطلاعاتی است که این اطلاعات در رابطه با اشیاء قرار گرفته در Active Directory هستند.
اشیایی که در Active Directory قرار دارند در دو گروه دستهبندی میشوند. این گروهها عبارتاند از: منابع (Resources) و اصول امنیتی(security principals). ماهیت هر یک از اشیای قرار گرفته در اکتیودایرکتوری یکتا است. اما زمانیکه صحبت از یک شئ میشود یک شئ میتواند شامل یک کاربر، یک کامپیوتر، یک چاپگر یا گروهی همراه با خصلتهای مرتبط با آنها باشد. بهطور کلی اکتیودایرکتوری اطلاعاتی شامل اشیای موجود در یک دامین شامل کاربران، گروهها و کامپیوترها، اطلاعات مربوط به گذرواژهها و مجوزهایی است که برای کاربران و گروهها در Active Dicretory ذخیره شدهاند. (دامین را مجموعهای از کامپیوترها و گروههای امنیتی وابسته به آن که بهعنوان یک موجودیت واحد و مستقل شناخته میشوند تعریف میشود.) اما اشیای مرکزی در Active Directory این قابلیت را دارند که خود شامل اشیای دیگری نیز باشند. اما برای اینکه اشیا در اکتیودایرکتوری به راحتی قابل تشخیص باشند، هر کدام از آنها دارای یک مشخصه بیهمتا و خصلتهای مرتبط با خود هستند.
این اطلاعات و مشخصات همراه با اسکیمای (schema) مورد استفاده با یک شئ، نوع موجودیت آن شئ را که در Active Directory ذخیره شده است، مشخص میکند. اما بهطور کلی هدف از بهکارگیری Active Directory مدیریت آسان و سادهتر روی منابع مورد استفاده در یک شبکه است که توسط دامین کنترلر مدیریت شده و به عنوان یک بانک اطلاعاتی تجمعپذیر شناخته میشود. شکل 5 پنجره اکتیو دایرکتوری را روی سیستمعامل ویندوز سرور نشان میدهد.
security principals چیست؟
قبل از پرداختن به مؤلفههای دیگر ویندوز اجازه دهید با مفهوم اصول امنیت آشنا شویم. یک اصل امنیت (Security Principal) میتواند یک حساب کاربری، حساب کامپیوتر یا یک گروه از این اکانتها باشد. هر زمان که یک اصل امنیتی ایجاد میشود، بهطور خودکار یک شناسه امنیت SID به آن تخصیص(Assigned) داده میشود. اگر چه همه این اصول امنیت، یک شناسه امنیتی منحصربهفرد (Unique) دارند، اما به یاد داشته باشید که براساس نوع حساب کاربری، SIDsهای متفاوت تولید و ذخیره شوند، بهطوریکه:
1- برای یک حساب کاربری محلی Local یا گروه، SID توسط Local Security Authority - LSA مربوط به کامپیوتر تولید میشود و با سایر اطلاعات دیگر حساب کاربری در یک محل امن در رجیستری Registry ذخیره میشود.
2-برای یک حساب کاربری دامین Domain یا گروه، SID توسط Domain Security Authority تولید میشود و به عنوان یک صفت (Attribute) روی شئ (Object) کاربر یا گروه در اکتیو دایرکتوری ذخیره میشود.
شکل6 فرآیند اجازهنامه و کنترل دسترسی را نشان میدهد. همانگونه که در شکل مشاهده میکنید subject (یک رشته یا Thread در یک پردازه که توسط کاربر مقداردهی اولیه شده) سعی در دسترسی به یک شئ بهطور مثال، یک پوشه به اشتراک گذاشته شده دارد. اطلاعات قرار گرفته در نشانه دسترسی کاربر access token با اطلاعات قرار گرفته در ACE (سرنام Access Control Entires) متعلق به توصیفگر امنیتی شئ مقایسه شده و در نهایت تصمیم گرفته میشود که آیا دسترسی برای subject امکانپذیر است یا خیر. Authentication packages
شامل کتابخانههای پویایی است که هم در زمینه پردازه LSSAS و هم در زمینه پردازههای کلاینتها اجرا میشود. این بسته همچنین سیاستهای تصدیق هویت در ویندوز را پیادهسازی میکند. یک کتابخانه پویای تصدیق هویت، مسئولیت تعیین هویت یک کاربر را دارد که این فرآیند با بررسی و مطابقت دادن نام کاربری و رمزعبور انجام میشود. در صورتیکه این فرآیند به درستی انجام پذیرد، اطلاعات و جزئیات لازم درباره مشخصه امنیتی کاربر به LSSAS بر گردانده میشود که LSSAS با استفاده از این اطلاعات یک token برای کاربر تولید میکند. تصدیق هویت فرآیندی است که در آن یک سیستم اطلاعات ورودی کاربر را اعتبارسنجی میکند. نام کاربری و رمزعبور با یک فهرست از پیش تعریف شده برای سیستم مطابقت داده و مقایسه میشود. Interactive logon manager
یک پردازه سطح کاربری بوده که از مسیر %SystemRoot%\System32\Winlogon exe اجرا میشود. این پردازه مسئولیت نظارت و مدیریت روی SAK (سرنام secure attention Key؛ یک کلید ویژه یا ترکیبی از کلیدها است که قبل از به نمایش درآمدن صفحه Login فشرده شدهاند)، بارگذاری پروفایل کاربران وارد شده به سیستم و قفل کردن سیستم زمانیکه یک اسکرین سرور در حال اجرا است را دارد. به عبارت دیگر، این پردازه یک مدیریت تعاملی روی logon sessionها را دارد.Winlogon همچنین یکی از مؤلفههای حساس و در معرض تهدید ویندوز به شمار میرود که که بهطور عمده مورد توجه هکرها است.
این حملات به طور عمده با تغییر وظایف تعریف شده برای winlogon و حافظه مصرفی توسط او مورد استفاده قرار میگیرد. افزایش حافظه مصرفی این پردازه ممکن است یکی از نشانههای hijack شدن آن تلقی شود. شکل7 ساختار logon را در ویندوزهای ماقبل از سیستمعامل ویندوز ویستا نشان میدهد. از سیستمعامل ویستا به بعد، ویندوز بهجای GINA از Credential provider استفاده میکند که در ادامه با آن آشنا خواهیم شد (شکل8). AppLocker
مکانیزمی است که به مدیران سیستم اجازه میدهد فایلهای اجرایی، فایلهای DLL و اسکرپتهایی را مشخص کنند که بتوانند توسط کاربران یا گروههایی که از قبل تعیین هویت شدهاند اجرا شوند. AppLocker شامل یک درایور (%SystemRoot%\System32\Drivers\AppId.sys) و یک سرویس (%SystemRoot%\System32\AppIdSvc.dll)
است که روی پردازه SvcHost اجرا میشود.
Network logon service
از جمله سرویسهای ویندوز است که در مسیر (%SystemRoot%\System32\Netlogon.dll) قرار دارد. این سرویس وظیفه ساخت یک کانال امن برای دامین کنترلر را برای کاربران و سرویسهایی دارد که تصدیق هویت شدهاند. در صورتیکه این سرویس غیرفعال شود، کامپیوتر توانایی اعتبارسنجی کاربران و سرویسها را نداشته و همچنین دامین کنترلر نمیتواند رکوردهای DNS را ثبت کند. بهطور کلی این سرویس در ارتباط با تصدیق هویت کاربران با Active Directory مورد استفاده قرارمیگیرد.
Logon user interface
یک پردازه سطح کاربری بوده که از مسیر %SystemRoot%\System32\LogonUI.exe اجرا میشود. این پردازه وظیفه معرفیکردن کاربران همراه با رابط کاربری آنها را داشته که میتوانند با استفاده از این رابط کاربری اقدام به اعتبارسنجی خودشان روی یک سیستم کنند. LogonUI با استفاده از credential providers (یکی دیگر از مؤلفههای امنیتی) پرسوجویی برای بررسی اعتبارنامه کاربر اجرا میکند. این پرسوجو به شیوههای مختلفی اجرا میشود.
logonui.exe یکی دیگر از سرویسهای مورد توجه هکرها به شمار میرود. بنابراین، در صورتیکه این سرویس را به غیر از مسیر یاد شده پیدا کردید، احتمال آلوده بودن آن وجود دارد، همچنین توجه به تاریخ و زمان این فایل یکی دیگر از نشانههایی است که باید به آن توجه داشته باشید. شکل9 دیالوگ مربوط به LogonUI را نشان میدهد. Credential providers
Credential provider که از زمان عرضه ویندوز ویستا جایگزین GINAم(Graphical Identification and Authentiation) که برای نمایش logon UI و پرسش از کاربران در رابطه با اعتبارنامه (credential) آنها مورد استفاده قرار گرفته شده است.
CP در پردازه Logon اجرا شده و برای بهدست آوردن نام کاربری و رمزعبور، Smartcard PIN یا دادههای بیومتریک (همانند اثرانگشت) مورد استفاده قرار میگیرد. پیکربندی Credential providers در مسیر HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\Cu rrentversion\Authentication\Credential Providers قرار داشته و خود فایل نیز در مکان %SystemRoot%\System32\authui.dll and %SystemRoot%\System32\SmartcardCredentialProvider. dll قرار دارد. (شکل 10و8) CP را همراه با ارتباط متقابل آن با Local Security Authority نشان میدهد. Kernel Security Device Driver
کتابخانهای از وظایف در سطح کرنل است و رابطهای ALPC (سرنام advanced local procedure call) را پیادهسازی میکند. رابطهایی که توسط مؤلفههای امنیتی دیگری که در سطح کرنل قرار دارند و از قبیل ESF یا Encrypting File System) و برای ارتباط با LSASS در سطح کاربری مورد استفاده قرار میگیرد. KSecDD در مسیر %SystemRoot%\System32\Drivers\Ksecdd.sys قرار دارد. بهطور کلی مراحلی که در اعتبارسنجی کاربر در سیستمعامل ویندوز انجام میشود را به همراه ترتیب اجرا شدن مؤلفههای مربوطه میتوانید در شکل11 مشاهده کنید. بیشتر مؤلفههایی که با آنها آشنا شدیم در سطح کرنل (Kernel Mode) کار میکنند. بانکهای اطلاعاتی SAM ،LSA Policy نمونهای از این مؤلفهها به شمار میروند. (به عنوان مثال، بانک اطلاعاتی SAM در اصل فایلی است که وظیفه ذخیرهسازی رمزهای عبور کاربران را برعهده دارد. این فایل از روش SYSKEY استفاده میکند که توسط مایکروسافت ابداع شده و شامل یک کلید بازگشایی است که بهصورت رمزنگاری شده برای محافظت در برابر حملات نرمافزارهای کرک ساخته شده روی سیستم قرار میگیرد.) رابطه بین بعضی از مؤلفههای یاد شده و بانکهای اطلاعاتی که آنها مدیریت میکنند در شکل12 نشان داده شده است. در نهایت
در این مقاله سعی کردیم تا بهطور کاملاً مختصر خوانندگان را با مؤلفههای امنیتی که در داخل هسته و بدنه ویندوز مورد استفاده قرار گرفته و برای پیادهسازی فرآیندهایی همچون تصدیق هویت مورد استفاده قرار میگیرند آشنا کنیم. مفهوم امنیت در سیستمعامل ویندوز نه تنها بسیار گسترده بلکه پیچیده است و تمامی مؤلفههای ویندوز در یک ارتباط تنگاتنگ با یکدیگر قرار داشته، بهطوریکه دستکاری یا آسیب دیدن یک مؤلفه هرچند به ظاهر ممکن است بر روند کاری یک سیستم تأثیرگذار نباشد اما این احتمال وجود دارد که زمینهساز بهوجود آمدن یک رخنه امنیتی شود. بنابراین، توصیه میشود تا حد امکان به دستکاری مؤلفهها و سرویسهای اصلی ویندوز نپرداخته و اگر مورد مشکوکی را در رابطه با این سرویسها مشاهده کردید آنرا به دقت مورد توجه و رسیدگی قرار دهید. منابع منبع فارسی: shabakeh-mag.com