SID چیست؟ مفهوم Security Identifier در ویندوز چیست؟ Well-Known SID چیست؟ شاید بسیاری از مدیر شبکه ها یا به قول خودمان Admin های شبکه اصلا به این موضوع توجه نکنند که کاربران و گروه هایی که در اکتیودایرکتوری ساخته می شوند ، همانند کاربران و گروه هایی که بر روی کلاینت ها ساخته می شوند قابل شناسایی هستند. آنها را می توان براحتی از طریق SID هایشان شناسایی کرد ، در این مقاله ما به شما مفهوم SID را توضیح خواهیم داد و همچنین لیستی از SID های شناخته شده که مشخص هستند برای چه کاربرانی هستند را به شما معرفی می کنیم. توجه کنید که مفهوم و تکنولوژی بکار رفته در SID ها برای مسائل امنیتی و زیرشاخه های امنیتی ویندوز بسیار مهم و حیاتی است همانطور که در منابع موجود در شبکه این موضوع بسیار حیاتی و مهم است.
SID یا Security Identifier به معنای شناسه امنیتی می باشد. همانطور که ما کاربرها و گروه های موجود در سیستم عامل ویندوز را با اسامی Mohammad ، Ali و Unity می شناسیم ، سیستم عامل آنها را به شماره های 1000 ، 512 و مثلا 1500 به علاوه چند عدد دیگر شناسایی می کند. این دقیقا مشابه چیزی است که شما در وب سایت های اینترنتی مشاهده می کنید ، در واقع هر آدرس اینترنتی وب دارای یک آدرس IP است که شما برای اتصال به آن وب سایت از این آدرس استفاده می کنید .
برای مثال آدرس IP مربوط به وب سایت انجمن تخصصی فناوری اطلاعات ایران شماره 91.98.88.21 می باشد اما شما برای اینکه بتوانید به این وب سایت متصل شوید نیاز ندارید که این آدرس را حفظ کنید بلکه فقط آدرس این وب سایت به نام www.tosinso.com را حفظ می کنید ، این تبدیل اسم به آدرس IP از طریق سرویسی به نام DNS انجام می شود ، شما نیز در مورد SID ها می توانید دقیقا همچنین مثالی را در نظر بگیرید ، نام های کاربری یا User ها و گروه های یا Groups در سیستم عامل در قالب شماره هایی به نام SID در سیستم عامل شناسایی می شوند اما شما آنها را به شکل نام های کاربری مشاهده می کنید. برای اینکه درک بهتری از ساختار SID داشته باشید می توانید به مثال زیر توجه کنید ، نمونه ای از یک SID را مشاهده می کنید :
S-1-5-21-549688327-91903405-2500298261-1000
در این شماره SID رشته S-1-5-21 بیشتر برای User ها و Group ها مورد استفاده قرار می گیرد در حالیکه 549688327-91903405-2500298261 شناسه ای است که در آن Domain مورد نظر شناسایی می شود. توجه کنید که این شناسه های Domain بصورت کاملا منحصر به فرد ایجاد می شوند و دو نمونه مثل هم به ندرت به وجود می آید ( شاید بتوانیم بگوییم به هیچ عنوان به وجود نمی آید ).
یکی از سئوالاتی که دانشجویان ممکن است سر کلاس ها بپرسند این است که با توجه به اینکه هر یک از این SID ها ساخته شده در یک شبکه Domain بصورت تصادفی ایجاد می شوند ، آیا ممکن است دو SID یکسان در دو شبکه به وجود بیاید یا خیر ؟ خوب پاسخ به این مسئله قطعا بله است اما یک نکته را هم در نظر داشته باشیم ، الگوریتم هایی که برای ایجاد کردن این SID ها بصورت تصادفی طراحی می شوند به گونه ای طراحی شده اند که تا حد امکان تداخلی پیش نیاید اما از نظر من این موضوع بسیار بسیار غیر ممکن است که دو عدد SID یکسان به وجود بیایند و این دو Domain SID در شبکه هایی به وجود بیایند که به همدیگر متصل باشند ، احتمال به وجود آمدن چنین شرایطی مثل این است که در روز آفتابی رعد و برق از آسمان به زمین بزند.
SID به سیستم عامل کمک می کند که بتواند اکانت های بوجود آمده بر روی آن را پیگیری و تعقیب کند. اینکار به دو روش انجام می شود ، ابتدا بعد از اینکه کاربر ، نام کاربری و رمز عبور خود را وارد کرد ، به همراه Username و Token ایجاد شده SID کاربر و همچنین SID گروهی که کاربر به آن عضو است در قالب Token به سمت کلاینت ارسال می شود. شما می توانید این موارد را در تصویر زیر مشاهده کنید. تصویر زیر تصویر یک Token باز شده در فرآیند احراز هویت می باشد.
SID ها همچنین برای کنترل کردن دسترسی به منابع زیر مورد استفاده قرار می گیرند ، سیستم عامل ویندوز از ساختار SID ها برای اعمال سطوح دسترسی به منابع مختلف استفاده می کند ، در اینجا منظور از منابع فایل ها ، فولدر ها ، کلید های رجیستری ، پرینترها ، اشیاء موجود در اکتیودایرکتوری و سرویس ها می باشد. در واقع سیستم عامل شما هیچگونه درکی از ساختار نامگذاری کلاینت ها ندارد و صرفا با هویتی به نام SID می تواند کار کند ، در تصویر پایین می توانید نمونه ای از ACL ها یا سطوح دسترسی را مشاهده کنید :
زمانیکه یک کاربر درخواست دسترسی پیدا کردن به یک منبع اطلاعاتی را می دهد ، SID کاربر مورد نظر با SID ای که بر روی ACL ها وجود دارد مقایسه می شود ، اگر SID مورد نظر به درستی مقایسه شد و در ACL وجود داشت ، اجازه دسترسی با توجه به سطوح دسترسی تعیین شده برای کاربر به وی داده می شود. در صورتیکه SID مورد نظر در لیست وجود نداشته باشد ، دسترسی نیز به منبع اطلاعاتی مورد نظر منع خواهد شد.
زمانیکه شما اکتیودایرکتوری را نصب می کنید یک سری کاربر بصورت پیشفرض به نام Guest و Administrator و KRBTGT و ... ایجاد می شوند. این حساب های کاربری در همه انواع نصب اکتیودایرکتوری بصورت پیشفرض در سیستم عامل بصورت Hardcode ایجاد شده و وجود دارند. به دلیل اینکه این حساب های کاربری بصورت پیشفرض و بر روی یک سیستم عامل ایجاد می شوند بایستی دارای یک ساختار مشابه SID باشند. توجه کنید که همیشه قسمت ابتدایی یک SID به شکل S-1-5-21 می باشد ، قسمت وسط که مربوط به Domain می باشد بصورت تصادفی ایجاد می شود و مابقی که در واقع قسمت منحصر به فرد یک SID می باشد از RID تشکیل شده است و شما یک کاربر را در یک Domain همیشه با این RID شناسایی می کنید.
RID آخرین قسمت یک SID است و مخفف کلمات Relative Identifier است . این عدد برای کلیه کاربران پیشفرض سیستم به یک شکل مشخص ایجاد می شود. از طریق نگاه کردن به این RID و ساختاری که دارد شما می توانید متوجه بشوید که این RID متعلق به کدام کاربر پیشفرض است ، البته این حالت برای کاربرانی که بعدا بصورت دستی ایجاد می شوند متفاوت است و آنها از سیستم شماره گذاری متفاوتی استفاده می کنند ، در جدول پایین شما می توانید SID های موجود برای این کاربران پیشفرض را مشاهده کنید :
User account Well-known SID Administrator S-1-5-21domain-500 Guest S-1-5-21domain-501 KRBTGT S-1-5-21domain-502 Creator Owner S-1-3-0 Interactive S-1-5-4 Anonymous S-1-5-7
همانند حساب های کاربری پیشفرضی که در اکتیودایرکتوری ایجاد می شود ، یک سری گروه نیز بصورت پیشفرض در اکتیودایرکتوری ایجاد می شود که هر کدام برای خود یک SID منحصر به فرد دارند. به نسبت کاربران پیشفرضی که در اکتیودایرکتوری ساخته می شوند تعداد گروه ها بسیار بیشتر است . در جدول زیر می توانید لیست SID های شناخته شده این گروه های پیشفرض را مشاهده کنید :
Group account Well-known SID Everyone S-1-1-0 Enterprise Domain Controllers S-1-5-9 Authenticated Users S-1-5-11 Domain Admins S-1-5-21domain-512 Domain Users S-1-5-21domain-513 Domain Computers S-1-5-21domain-515 Domain Controllers S-1-5-21domain-516 Cert Publishers S-1-5-21domain-517 Schema Admins S-1-5-21domain-518 Enterprise Admins S-1-5-21domain-519 Group Policy Creator Owners S-1-5-21domain-520 Administrators S-1-5-32-544 Users S-1-5-32-545 Guests S-1-5-32-546 Account Operators S-1-5-32-548 Server Operators S-1-5-32-549 Print Operators S-1-5-32-550 Backup Operators S-1-5-32-551 Replicators S-1-5-32-552 Pre-Windows 2000 Compatible Access S-1-5-32-554 Remote Desktop Users S-1-5-32-555 Network Configuration Operators S-1-5-32-556 Incoming Forest Trust Builders S-1-5-32-557 Enterprise Read-only Domain Controllers S-1-5-21domain-498 Read-only Domain Controllers S-1-5-21domain-521 Allowed RODC Password Replication Group S-1-5-21domain-571 Denied RODC Password Replication Group S-1-5-21domain-572 Event Log Readers S-1-5-32-573
همانطور که گفتیم SID های کاربرها قابل تغییر نیستند در حالی که نام کاربری قابل تغییر است . یکی از اولین مراحلی که یک هکر بایستی برای انجام دادن حمله خود انجام دهد بدست آوردن نام های کاربری موجود بر روی سیستم هدف است ، شناسایی این کاربران باعث می شود که هکر بتواند حمله خود را بر اساس کاربر مورد نظر طراحی کند. یکی از نکات امنیتی که در کلاس های شبکه به دوستان گفته می شود این است که نام کاربر Administrator و Guest را عوض کنید ، هر چند عوض کردن این نام های کاربری و ایجاد یک نام کاربری جعلی به نام Administrator و Guest می تواند هکر های معمولی را فریب دهد اما یک هکر حرفه ای از طریق نام کاربری کاربران را شناسایی نمی کند .
بلکه از طریق شماره SID آن کاربر تشخیص می دهد که این کاربر دسترسی مدیریتی دارد یا خیر ، به این تعویض نام کاربری در اصطلاح ایجاد یک نوع Honeypot می گویند. یک هکر حرفه ای فقط کافیست متوجه RID کاربر مورد نظر شود ؛ اگر این شماره عدد 500 باشد نمایانگر این است که این کاربر Administrator است هر چند تغییر نام داده شده باشد. یکی از مهمترین راهکار های امنیتی برای مقابله با چنین حملاتی ، جلوگیری از به وجود آمدن Anonymous Access ها و محدود کردن SID Name Translation و SAM Enumeration و مواردی مشابه این می باشد. برای اینکه بهتر بتوانید این مفاهیم را درک کنیم به مقاله زیر از خودم مراجعه کنید :
برای اینکه سیستم عامل بتواند حساب های کاربری و گروه ها را پیگیری و تحلیل کند برای هر یک از آنها یک شناسه امنیتی یا SID تعریف می کند و به آنها مرتبط می کند. کاربران پیشفرض و گروه های پیشفرض در اکتیودایرکتوری دارای یک سری SID های شناخته شده هستند که به محض نصب سیستم عامل برای این کاربران و گروه ها تعریف می شود ، بیشتر حساب های کاربری و گروهی ساختار SID شبیه به هم دارند که در بالا تعریف کردیم ، بدون توجه به ساختار این SID ها ، کاربرد SID ها در ایجاد کنترل های دسترسی برای منابع اطلاعاتی می باشد که این منابع را می توانیم به فایل ها ، پوشه ها ، پرینترها ، سرویس ها و بسیاری دیگر از منابع تقسیم کنیم.
بنیانگذار انجمن تخصصی فناوری اطلاعات ایران ، هکر کلاه خاکستری ، کارشناس امنیت اطلاعات و ارتباطات
محمد نصیری هستم ، بنیانگذار انجمن تخصصی فناوری اطلاعات ایران و مجموعه توسینسو ، هکر قانونمند و کارشناس امنیت سایبری ، سابقه همکاری با بیش از 80 سازمان دولتی ، خصوصی ، نظامی و انتظامی در قالب مشاور ، مدرس و مدیر و ناظر پروژه ، مدرس دوره های تخصص شبکه ، امنیت ، هک و نفوذ ، در حال حاضر در ایران دیگه رسما فعالیتی غیر از مشاوره انجام نمیدم ، عاشق آموزش و تدریس هستم و به همین دلیل دوره های آموزشی که ضبط می کنم در دنیا بی نظیر هستند.
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود