۱۳۹۰/۰۳/۲۰

سشن صفر


يكي از تفاوت‌هاي مهم امنيتي ويندوزهاي جديد (از سرويس پك 2 ويندوز 2003 به بعد)، اجراي سرويس‌هاي ويندوز در جلسه‌اي كاري (سشني) جدا از جسله كاري برنامه‌هاي عادي است كه توسط كاربران وارد شده به سيستم اجرا مي‌شوند. در اين ويندوزها، تنها سرويس‌ها هستند كه در سشن صفر اجرا مي‌شوند و مابقي برنامه‌هاي ساير كاربران در سشن‌هاي ديگر.



اين برخلاف چيزي است كه براي مثال در ويندوز XP وجود دارد؛ يعني اجراي دوستانه‌ي تمام برنامه‌ها در يك سشن (چون كاربر وارد شده به سيستم نيز در سشن صفر قرار مي‌گيرد).



در اين حالت برنامه‌هاي عادي مي‌توانند سرويس‌هاي ويندوز را به راحتي مورد حمله قرار دهند. اطلاعات بيشتر:


مهم‌ترين معناي اجراي ايزوله سرويس‌ها در سشن صفر، به خاطره سپرده شدن سرويس‌هايي است كه امكان تعامل با كاربر را داشتند؛ براي مثال سرويس‌هايي كه يك رابط كاربري را نمايش مي‌دادند (به كمك همان تيك معروف Allow Service to Interact with Desktop در صفحه تنظيمات يك سرويس). زيرا اكنون اولين كاربر وارد شده به سيستم، در سشن يك قرار مي‌گيرد (و نه همانند قبل در سشن صفر). به اين صورت ديگر به رابط كاربري نمايش داده شده در سشن صفر دسترسي نداشته و چيزي را مشاهده نخواهد كرد.




البته شايد سؤال بپرسيد كه چه سرويس‌هايي نياز به نمايش رابط كاربري دارند؟ چون عموما سرويسي كه صحيح طراحي شده باشد نياز به تعامل مستقيم با كاربر را از طريق رابط كاربري ندارد.
و پاسخ اين است كه خيلي از سرويس‌ها! در بسياري از برنامه‌هاي متداول، امكان اجراي به صورت سرويس ويندوز NT پيش بيني نشده است. اگر نياز باشد تا اين نوع برنامه‌ها را به صورت سرويس، براي مثال در يك ويندوز سرور اجرا كرد (تا هميشه در حال اجرا باشند و همچنين با ري استارت شدن سيستم نيز مجددا بدون دخالت كاربر شروع به كار كنند)، در اين حالت نياز خواهد بود تا رابط كاربري آن‌ها نيز نمايش داده شوند.

سؤال: در ويندوزهاي جديد براي تعامل با سشن صفر چه بايد كرد؟
در ويندوز 2003 (به همراه تمام به روز رساني‌ها) براي اتصال به سشن صفر مي‌توان دستور زير را در خط فرمان صادر كرد:
Mstsc /console

به اين ترتيب امكان اتصال به سشن كنسول يا همان سشن صفر ميسر مي‌شود.
اين پارامتر در ويندوز سرور 2008 نديد گرفته خواهد شد زيرا در اين ويندوز امكان نصب يك سرويس در سشن‌هايي بجز سشن صفر نيز پيش بيني شده است؛ هر چند پيش فرض نصب همان سشن صفر است. اما به جهت سازگاري با نگارش‌هاي قبل اين‌بار بجاي پارامتر console از پارامتر admin استفاده كنيد.

با استفاده از برنامه نويسي چطور؟
روش كار در اين مقاله توضيح داده شده است اما سطر اول آن به اين نكته تاكيد دارد كه ... اين‌كار را نكنيد! سرويسي كه درست طراحي شده باشد نيازي به رابط كاربري تعاملي عموما جهت اعمال تنظيمات آن، ندارد.