شماره: IRCAR201410236
تاريخ: 28/7/93
1- مقدمه
SQL Server ويژگيهاي زيادي دارد كه ايجاد برنامههايي با پايگاه داده امن را پشتيباني ميكند. صرفنظر از نسخه SQL Server، ملاحظات امنيتي معمول مانندسرقت دادهها و جامعيت دادهها در اين نرمافزار در نظر گرفته ميشود. درصورتيكه دادهها محافظت نگردند، ممكن است به علت دستكاري و تغييرات غيرعمدي يا خرابكارانه پاك شوند يا تغيير يابند و ارزش خود را از دست بدهند. بعلاوه، اغلب بايد مسائلي مانند ذخيرهسازي صحيح اطلاعات محرمانه نيز مورد توجه قرار گيرد.
هر نسخه از SQL Server مانند هر نسخه از ويندوز، ويژگيهاي امنيتي متفاوتي نسبت به نسخههاي پيشين خود دارد و نسخههاي جديدتر، عملكرد بهتري نسبت به نسخههاي پيشين دارند.
اين مهم است كه درك كنيم كه ويژگيهاي امنيتي به تنهايي قادر به تضمين يك برنامه پايگاه داده امن نيستند. هر برنامه پايگاه داده از جهت ملزومات، محيط اجرا، مدل اجرا، موقعيت فيزيكي و تعداد كاربران منحصر به فرد است. ممكن است برخي برنامههاي محلي نيازمند امنيت حداقلي باشند، درحاليكه ساير برنامههاي محلي و يا برنامههايي كه بر روي اينترنت به كار گرفته ميشوند ممكن است به معيارهاي امنيتي قويتر و مانيتورينگ و ارزيابي دائم نياز داشته باشند.
ملزومات امنيتي يك برنامه پايگاه داده SQL Server بايد در زمان طراحي در نظر گرفته شود نه پس از آن. ارزيابي تهديدات در ابتداي چرخه توسعه برنامه اين فرصت را در اختيار شما قرار ميدهد كه خسارت بالقوه را در هرجايي كه يك آسيبپذيري شناسايي ميشود، كاهش دهيد.
حتي اگر طراحي اوليه يك برنامه بيعيب و نقص باشد، باز هم تهديدات جديد ممكن است در زمان بهرهبرداري از سيستم رونمايي كنند. با ايجاد خطوط دفاعي مختلف براي پايگاه داده، ميتوانيد خسارت وارد شده توسط يك نشت امنيتي را به حداقل برسانيد. نخستين خط دفاعي، كاهش سطح حمله با اعطاي مجوزهاي حداقلي و رعايت اصل حداقل دسترسي است.
در قسمت قبلي مجموعه مقالات امنيت SQL Server، به نماي كلي امنيت SQL Server، انواع سناريوهاي احراز هويت در SQL Server، تفويض اختيار و مجوزها در SQL Server، رمزگذاري دادهها و امنيت يكپارچه CLR، سناريوهاي امنيت برنامه كاربردي، مديريت مجوزها با استفاده از روالهاي ذخيره شده، نوشتن SQL پوياي امن، امضاي روالهاي ذخيره شده و جعل هويت در SQL Server، تخصيص مجوزهاي سطح ركورد و ايجاد نقشهاي برنامه كاربردي و فعالسازي دسترسي بين پايگاه دادهها پرداختيم. قسمت آخر از اين مجموعه مقالات به طور مختصر به امنيت SQL Server Expressميپردازد.
2- امنيت SQL Server Express
نسخه Microsoft SQL Server Express Edition (SQL Server Express)، مبتني بر Microsoft SQL Server است و اغلب ويژگيهاي اين موتور پايگاه داده را پشتيباني ميكند. اما SQL Server Express طوري طراحي شده است كه در آن، كليه ويژگيهاي غيرضروري و همچنين ارتباط شبكه به طور پيشفرض غيرفعال هستند. اين خصوصيت باعث ميشود كه سطح در دسترس براي حملات توسط كاربران خرابكار به طور قابل ملاحظهاي كاهش يابد.
SQL Server Express معمولاً تحت عنوان يك نمونه نام گذاري شده (named instance) نصب ميگردد. نام پيشفرض اين نمونه SQlExpress است. يك نمونه نام گذاري شده (named instance) توسط نام شبكه كامپيوتر ميزبان آن نمونه به اضافه نام نمونهاي كه شما در طول نصب مشخص ميكنيد، شناسايي ميشود.
2-1- دسترسي شبكه
در SQL Server Express به دلايل امنيتي پروتكلهاي شبكه به طور پيش فرض غيرفعال هستند. اين خصوصيت از حملات كاربران بيروني كه ممكن است كامپيوتر ميزبان نمونه SQL Server Express را مورد سوء استفاده و هدف حملات خود قرار دهند، جلوگيري ميكند. شما بايد به طور صريح ارتباط شبكه را فعال كرده و سرويس SQL Server Browser را نيز فعال نماييد تا بتوانيد از يك كامپيوتر ديگر به يك نمونه SQL Server Express متصل شويد.
اما هنگاميكه ارتباط شبكه فعال ميگردد، يك نمونه SQL Server Express داراي الزامات امنيتي مشابه با ساير نسخههاي SQL Server است.
2-2- نمونههاي كاربري
يك نمونه كاربري عبارت است از يك نمونه مجزاي موتور پايگاه داده SQL Server Express كه توسط يك نمونه والد SQL Server Express توليد شده است. هدف اوليه و اساسي يك نمونه كاربري اين است كه به كاربراني كه ويندوز را تحت يك حساب كاربري با حداقل دسترسي اجرا ميكنند، در سيستم محلي خود كاربر مجوز دسترسي مدير سيستم (sysadmin) را بر روي نمونه SQL Server Express بدهد. به عبارت ديگر ميتوان گفت كه نمونههاي كاربري مربوط به كاربراني كه بر روي سيستمهاي خود مدير سيستم هستند، نميباشد.
يك نمونه كاربري از يك نمونه اوليه SQL Server يا SQL Server Express و از طرف يك كاربر ايجاد ميشود. اين نمونه، يك پردازه كاربري را تحت بستر امنيتي ويندوز كاربر اجرا ميكند و نه به عنوان يك سرويس. در اين حالت لاگينهاي SQL Server غيرمجاز هستند و فقط لاگينهاي ويندوز پشتيباني ميشوند. اين مسأله از ايجاد تغييراتي خارج از مجوزهاي كاربر توسط نرم افزاري كه بر روي يك نمونه كاربري اجرا ميشود جلوگيري ميكند. يك نمونه كاربري همچنين به عنوان يك نمونه فرزند يا نمونه مشتري نيز شناخته ميشود و برخي اوقات نيز با استفاده از عبارت اختصاري RANU (run as normal user) به آن اشاره ميگردد.
هر نمونه كاربري از نمونه والد خود و نيز از ساير نمونههاي كاربري اجرا شده بر روي همان سيستم، كاملاً ايزوله است. پايگاههاي داده نصب شده بر روي نمونههاي كاربري فقط در مود تك كاربره (single-user) باز ميشوند و در نتيجه چندين كاربر به طور همزمان نميتوانند به آنها متصل شوند. پرس و جوهاي توزيع شده و نيز اتصال از راه دور براي نمونههاي كاربري غيرفعال است. كاربران پس از اتصال به يك نمونه كاربري، داراي هيچ حق دسترسي ويژهاي بر روي نمونه SQL Server Express والد نيستند.
منبع: http://msdn.microsoft.com/
- 9