خانه » معماری امنیتی نرم افزار

معماری امنیتی نرم افزار
با توجه به اینکه همواره سیستم ها در معرض تهدید امنیتی هستند و از سویی به امنیت نمیتوان به صورت مطلق نگریست بدیهی است در هر زمان امکان بروز مشکلات امنیتی در کنار پیشرفت تکنولوژی وجود دارد.
وجود آسیب پذیری های امنیتی متعدد در نرم افزار های تولیدی و خسارات فراوانی که به این دلیل به مشتریان و شرکت های تولید کننده محصولات وارد آمده است، توسعه دهندگان سیستم های نرمافزاری را وادار به استفاده از روش هایی برای کاهش این مخاطرات امنیتی کرده است.
از این رو برای بالا بردن سطح امنیت در نرمافزار ها، باید در کلیه مراحل تولید و توسعه محصول نرمافزاری، نیازمندی های امنیتی سیستم را مدنظر قرار داد.


مقاوم سازی نرم افزار
در تازه ترین ارزیابی انجام شده توسط سازمان فناوری اطلاعات ایران برای ارزیابی امنیتی محصولات فناوری اطلاعات بر مبنای استاندارد ISO/IEC/ISIRI ۱۵۴۰۸ با گذراندن مراحل مختلف تست و ارزیابی، سیستم یکپارچه آموزش، یادگیری و عملکرد ایده، موفق به اخذ گواهینامه ارزیابی امنیتی محصول (افتا) گردیده است. این گواهینامه از آدرس https://sec.ito.gov.ir/page/eram قابل استعلام میباشد.
حراست اطلاعات حاصل بستهای از استانداردها در حوزههای نرمافزار، پایگاه دادهها، سیستمهای عامل و شبکه و زیرساخت میباشد که در حوزه مقاومسازی سیستمهای اطلاعاتی سازمانی مورد طرح میباشند. با رعایت این استانداردها و قواعد؛ ریسکهای امنیتی و آسیبپذیری سیستمهای اطلاعاتی کاهش پیدا خواهند نمود.
در این مقاله موارد امنیتی و استانداردهای لازم در فرآیند های مرتبط با امنیت این نرمافزار ها به صورت جداگانه شرح داده شده است، از این رو سازمان های بهره بردار علاوه بر رعایت این اصول تدوین شده در محدوده ی سیستم مدیریت امنیت اطلاعات(ISMS)، تهیه شده یا شخصی سازی شده برای سازمان خود، نسبت به آگاهی از این موارد حفاظتی و رعایت استانداردهای مطروحه دقت کافی را داشته باشند.
در تصویر زیر شمای کلی معماری امنیتی نرمافزار مدیریت فرآیند آموزش به همراه استانداردهای لازم جهت مقاومسازی سایر حوزههای مرتبط ارائه گردیده است.

سیستم یکپارچه آموزش، یادگیری و عملکرد ایده برای اطمینان از صحت عملکرد های امنیتی، همواره در بخش تست نفوذ بر اساس استاندارد امنیتی OWASP، توسط گروه های داخلی و آزمایشگاه های معتبر مورد تست و آزمون قرار میگیرند و الزامات امنیتی تدوین شده که به طور مداوم بروزرسانی میگردند.

شناسایی و احراز هویت کاربران
بخش شناسایی و احراز هویت کاربران بر مبنای تشخیص هویت هر کاربر و همچنین به کارگیری سیاستهای تعیین شده توسط سازمانها بر عملکرد کاربران فعالیت مینماید. ماژول احراز هویت درنرمافزار مدیریت فرآیند، یک فرآیند دو مرحلهایست که در طی آن ابتدا هویت کاربر و یا فرایندی که از جانب کاربر عمل میکند، شناسایی شده و سپس هویت او تایید و دسترسیهای لازم اعمال میگردد.
این فرآیند توسط شناسهی یکتای کاربر در سطح نرمافزار انجام میگیرد. در مرحلهی احراز هویت، هویت ادعایی کاربر توسط اطلاعات هویتی ذخیره شده، نظیر شناسهی کاربری و کلمه عبور، توکنهای سختافزاری، گواهینامههای دیجیتال مورد بررسی قرار میگیرد.

لیستی از اهداف امنیتی مرتبط با هویتسنجی که در نرمافزار مدیریت آموزش و یادگیری ایده پیاده سازی شده است، ذکر میگردد:
مکانیزم هویت سنجی
- هویت سنجی همیشگی قبل از ورود به سیستم
- عدم قبول گذرواژهی تهی
- پشتیبانی از هویت سنجی دو عاملی
- (Two Factor Authentication)، توکنهای سختافزاری
- قابلیت تغییر گذرواژهی شخصی برای هر کاربر در صورت دسترسی
- احراز هویت بعد از عدم فعالیت یک حساب کاربری به مدت طولانی
- عدم امکان تغییر گذرواژهی کاربران برای کاربری غیر از مدیرسیستم
- امکان تنظیم حداقل زمان عدم فعالیت برای احراز هویت مجدد توسط مدیر
- عدم ذخیرهی اطلاعات تصدیق هویت کاربر بطور نامناسب در کوکی یا فایلهای قابل دسترسی
- امکان احراز هویت مجدد برای صفحات حساس
سیاست گذاری بر حسابها و گذرواژهها
- وجود مکانیزم الزام پیچیدگی رمز عبورهای لازم جهت جلوگیری از حملات brute-force
- الزام استفاده از رمز عبور ترکیبی و امکان تعیین الگوی پیچیدگی رمز عبورها
- الزام به ورود Captcha در زمان ورود کاربر به نرمافزار
- تغییر حسابها یا گذرواژههای پیش فرض
- امکان الزام تغییر گذرواژههای اعطا شده به کاربران بعد از اولین ورود به سیستم
هویت سنجی دو مرحلهای (Two Factor Authentication)
- هویت سنجی مجدد برای انجام اعمال مدیریتی یا حساس
- استفاده از پیامک یا پست الکترونیکی جهت اجرای هویت سنجی دو عاملی
مدیریت مجوزها و دسترسیهای کاربری
- اعطای مجوزهای کاربر بر حسب کاربر و گروههای کاربری
- مشخص بودن لیست کاملی از مجوزهای اعطا شده به هر کاربر پس از هویت سنجی و ورود به سیستم
مدیریت تلاشهای ناموفق برای ورود به سیستم
- امکان قفل شدن کاربری بعد از تلاش ناموفق در هنگام ورود به نرمافزار
- ثبت وقایع مربوط به تلاشهای ناموفق برای ورود به سیستم
- عدم ارائهی جزییات به کاربر در صورت ورود ناموفق
- عدم نمایش شناسه کاربری بعد از ورود ناموفق
حفاظت از اطلاعات هویت سنجی
- عدم نمایش گذرواژهها هنگام ورود
- عدم Cache اطلاعات هویت سنجی
- نگهداری گذرواژهها به صورت درهم با ترکیب دادههای تصادفی
- رمزنگاری اطلاعات هویت سنجی در حین انتقال آنها در شبکه
- رمزنگاری اطلاعات هویت سنجی در ذخیرهسازی
- کنترل دسترسی به اطلاعات هویت سنجی رمز شده
مدیریت حسابهای کاربری
- عدم قبول دو کاربر با شناسهی یکسان
- وجود قابلیت تاریخ انقضا برای حسابها توسط مدیر سیستم
- غیرفعال شدن شناسهها بعد از مدت طولانی عدم فعالیت
- تغییر یا حذف حسابهای پیش فرض سیستم
- تعیین کمترین حق دسترسی بطور پیش فرض برای شناسهی کاربری جدید

مدیریت نشست
بی توجهی به صحت عملکرد مدیریت نشست در سیستم های تحت وب میتواند منجر به نفوذ ویا حملات (به طور مثال حملاتی از نوع Forgotten Function) خرابکاران و شنود نشست شود و باعث سوءاستفاده ی نفوذگران از ضعف های امنیتی این بخش شود.
عدم توجه به مدیریت صحیح نشستها در نرم افزارهای تحت وب میتواند فرصت مناسبی را در اختیار نفوذگران قرار دهد تا برای مثال با حملاتی ازنوع Man in the middle و یا حملهی شنود نشست، از ضعفهای امنیتی این حوزه سوء استفاده نمایند.

در ادامه لیستی از اهداف امنیتی مرتبط با Session Management که در نرمافزار مدیریت آموزش و یادگیری ایده پیادهسازی شده است، ذکر میگردد:
مدیریت مناسب شناسهی نشست
- عدم ایجاد شناسهها به صورت ترتیبی، عدم تولید شناسههای ضعیف یا قابل حدس
- عدم استفاده از توابع یا دادههای قابل حدس مانند نام، تاریخ یا IP برای تولید شناسه
- عدم استفاده از دادههای محرمانه مانند اسم و رمز در تولید شناسه
- عدم استفاده از شناسهی نشست یکسان هنگام جابجایی از نقطههای امن به ناامن (و برعکس) و انقضای خودکار شناسههای قبلی با صدور شناسهی جدید برای یک نشست
- وجود گزینهای برای ساقط کردن اعتبار نشستها توسط مدیر سیستم
- هویت سنجی برای هر نشست جدید
- اعتبارسنجی شناسههای نشست توسط کارگزار از نظر نوع و اندازه
- امکان به تعلیق درآوردن نشست توسط کاربر به صورت دلخواه
- منقضی شدن نشست در صورت غیرفعال بودن کاربر در یک زمان مشخص
- فرمان پایان نشست بطور صریح با Log out کاربر
امنیت انتقال شناسهی نشست
- عدم انتقال شناسههای نشست از طریق Query String
- رمزنگاری اطلاعات نشست هنگام ارسال اطلاعات (ارسال اطلاعات از طریق کانالی امن مانند HTTPS یا SSL)
- عدم ذخیره سازی اطلاعات حساس در نشست
حفاظت از اطلاعات ذخیره شدهی نشست ها
- هشدار به کاربر قبل از قبول کوکی در مرورگر
- عدم ذخیرهی اطلاعات حساس در کوکی یا مکانیزمهای مشابه دیگر بدون رمزنگاری
محدودیت زمانی برای نشستها
- رعایت حداکثر تعداد نشست برای هر کاربر به صورت قابل تنظیم معتبر
- امکان قطع و یا به تعلیق در آوردن یک نشست توسط مدیرسیستم

حفاظت از اطلاعات و کنترل دسترسی
حفاظت از اطلاعات و کنترل دسترسی در مفهوم عمومی User data protection نام برده شده است که خود به چهار حوزه تفکیک میشود:
- سیاستهای کنترل دسترسی
- نحوهی اجرای سیاستهای کنترل دسترسی در راستای حفاظت از اطلاعات کاربران
- حفاظت از اطلاعات در حین ذخیرهسازی
- حفاظت از اطلاعات در حین انتقال
یکی از اصول محصولات ایده، حفظ محرمانگی و همچنین حفظ حریم اطلاعات کاربران است و این مهم میسر نمیشود مگر با استفاده از مکانیزمهای حفاظت از اطلاعات.

در ادامه لیستی از اهداف امنیتی مرتبط با User data protection که در نرمافزار مدیریت آموزش و یادگیری ایده پیاده سازی گردیده است، ذکر شده است:
رمزنگاری اطلاعات حساس
- رمز نگاری تمام اطلاعات حساس هنگام ذخیره سازی
مکانیزم انکارناپذیری
- بهرهگیری از مکانیزمهای امضاء دیجیتالی برای جلوگیری از انکار
- استفاده از فناوریهای هویت سنجی قویتر از نام و گذرواژه برای اعمال حساس (هویت سنجی دو عاملی – پشتیبانی از ورود با توکن سخت افزاری)
عدم دسترسی به منابع با دور زدن واسط کاربر
- مستند بودن تمام واسطهای دسترسی به برنامه (مانند اینترنت، شبکه محلی) و عدم دسترسی به هر گونه منبع برنامه غیر از مسیر واسطها
اعتبارسنجی فعالیتهای برنامه
- عدم وجود منابعی (مانند فایل) خارج از برنامه که بتوان آنها را تغییر داده و یا ایجاد کرد
- عدم پذیرش ورود مستقیم URL جهت دسترسی به منابع غیرمجاز
- عدم نمایش فهرست دایرکتوریها با ورود یک آدرس URL نامعتبر
- عدم استفاده از اکانتهای تعریف شده در پایگاه داده بهعنوان راهکار مکانیزم کنترل دسترسی
تفکیک وظایف و حداقل مجوزها
- تعیین نقشهای کاربران و مدیران بر اساس دو اصل تفکیک وظایف و حداقل مجوزها
- امکان انقضای دسترسی حسابها توسط مدیرسیستم
- اجرای برنامه در حداقل سطح اعتباری
عدم دسترسی غیر مجاز به منابع
- بررسی کدهای سیار قبل از اجرای آنها در صورتی که از نامهی الکترونیک یا دریافت فایل ورودی با file upload یا مکانیزمهای خودکار دیگر استفاده میشود
- عدم ایجاد اتصال جدید در شبکه توسط کد سیار
- عدم پذیرش فایلها با یکی از پسوندهای” exe، bat، vbs، shs، wsf، wsc، vbe، reg،wsh jse و scr و سایر فرمتهای قابل تعریف”
وظایف مدیریتی
- وجود وظایف مدیریتی تعریف شده
- ایجاد رابطهای کاربری برای مدیریت حقوق دسترسی
- عدم انجام کارهای مدیریتی توسط کاربران بدون اجازههای مدیریتی
- تصدیق حقوق دسترسی کاربران قبل از فراخوانی فرایندها توسط کاربران
- رعایت نکات امنیتی مربوط به مدیریت راه دور سیستم
- فیلترینگ IP برای تشخیص IP مدیریتی در مدیریت راه دور سیستم
- استفاده از حقوق دسترسی نقشگرا

رویدادنگاری و ممیزی اطلاعات
کاربرد رویدادنگاری و ممیزی اطلاعات در ثبت وقایع و ارائه شواهد به بررسی عملکرد ها و همچنین در تحلیل فعالیت های کاربران نرمافزار یا سیستم؛ میباشد. سیستم یکپارچه آموزش و عملکرد برای تمامی موارد ذکر شده در ذیل با اشاره دقیق جزئیات، رویدادنگاری انجام میدهد.

در ادامه لیستی از اهداف امنیتی مرتبط با رویدادنگاری و ممیزی اطلاعات که در نرمافزار مدیریت آموزش و یادگیری ایده پیش بینی شده است، ذکر گردیده است:
تولید رکورد ممیزی رویداد برای فعالیتها و توابع نرم افزار
- تمام کاربردهای سازوکار احراز هویت
- نتایج نهایی عملیات احراز هویت
- تغییرات بر روی مقادیر مشخصههای امنیتی
- ایجاد و تغییر در مشخصات تنظیماتی نرمافزار
- شروع و پایان توابع اصلی نرمافزار
- خواندن، درج و ویرایش اطلاعات
- پایان دادن یا شکست در ایجاد نشست کاربری
تولید رویدادهای ممیزی با مشخصات دقیق
- تاریخ و زمان رویداد
- هویت ایجاد کننده رویداد
- نوع و نتیجه رویداد
- آدرس شناسه شبکه (IP) ایجاد کننده رویداد
حفاظت از رویدادها و رکوردهای ممیزی اطلاعات
- قابلیت تعیین مجوزهای دسترسی جهت مشاهده رویدادها و رکوردهای ممیزی اطلاعات
- قابلیت فهم و بهره برداری سریع و آسان از رویدادها
- مرتب سازی و در دسترسی پذیری رکوردهای اطلاعاتی برحسب نوع، تاریخ و هویت ایجاد کننده
- امکان تعریف آستانه ایجاد رکوردهای اطلاعات و مکانیزم اطلاع به راهبر
- امکان جداسازی محل ذخیره سازی رویدادها جهت کنترل حجم و نگهداری سوابق
- مکانیزم خدشه ناپذیری تشخیص حذف یا تغییر در رویدادها

مدیریت خطاها و استثناءها
تهدیدات متعدد و ناکارآمدی سیستم نشأت گرفته از عدم مدیریت صحیح و به موقع خطاها میباشد. همچنین دریافت اطلاعات و فایل های نامعتبر و تحلیل پیام های خطا توسط فرد و یا سیستم نفوذگر میتواند درست یا غلط بودن مسیر نفوذ را نشان دهد یا باعث تغییر در ساختار پایگاه داده شود ویا موجب افشای ساختار جداول پایگاه داده شود.

لیستی از اهداف امنیتی مرتبط با مدیریت خطاها و استثناءهای که در نرمافزار مدیریت آموزش و یادگیری ایده پیش بینی گردیده است، ذکر شده است:
مدیریت مناسب خطاها و استثناءها
- تعبیه زیر سیستم متمرکز در برابر خطا و استثناء
- عدم وجود اطلاعات قابل سوءاستفاده در مورد پایگاه داده، شبکه یا برنامهی کاربردی درپیغام خطا
- رویدادنگاری صحیح و کامل خطاها
وضعیت امن پس از وقوع خطا
- عدم اجازهی دسترسیهای غیر معمول در شرایط پس از خطا در سیستم
- وجود روالهای پیشبینی شده پس از شکست یا خطا در هر بخش از سیستم

مقاومت دربرابر حملات و نفوذها
ارزیابی امنیتی و تست نفوذ سیستم به طور مداوم توسط سازمان های معتبر در این حوزه در حال انجام میباشد، به همین جهت این آزمایشات با بهره گیری از برترین متودولوژی های دنیا یعنی OWASP TOP ۱۰ صورت میپذیرد. مداوم بودن این تست ها و در لحظه رفع شدن خطاهای گزارش شده موجب اولویت بندی و تشخیص ریسک های سازمان، سنجش تاثیر این روش های امنیتی موجود، اطمینان از صحت راهکارهای امنیتی خواهد شد.

در ادامه لیستی از اهداف امنیتی مرتبط حوزه تستهای نفوذ نرمافزار مدیریت آموزش و یادگیری ایده بیان گردیده است:
مقاوم سازی در برابر آسیب پذیری Broken Authentication
با استفاده از راهکارهایی همانند استفاده از احراز هویت چند منظوره، مدیریت صحیح آغاز و پایان sessionها، استفاده از استفاده از کوکیهای امن، عدم درج اطلاعات حساس در کد منبع و … از امکان جعل و سوء استفاده از هویت کاربران جلوگیری میگردد.
مقاوم سازی در برابر آسیب پذیری Injection
با استفاده از راهکارهای استاندارد از قبیل کدگذاری، فیلتر کردن برچسبهای HTML و… از به وجود آمدن آسیبپذیری XSS جلوگیری میگردد. همچنین با استفاده از راهکارهایی از قبیل فیلتر کردن کاراکترهای خاص، استفاده از APIهای امن و پرس و جوهای پارامتریک و…از به وجود آمدن آسیبپذیری تزریق کد SQL جلوگیری میگردد.
مقاوم سازی در برابر استفاده از مؤلفههای با آسیبپذیریهای شناخته شده (Vulnerable and Outdated Components)
جهت جلوگیری از سوء استفاده از حفرههای امنیتی مولفهها یا کامپوننت دارایهای آسیب پذیری، با استفاده از کامپونتهای دارای لیسانس و همچنین بروز نگاه داری چارچوبهای برنامه نویسی و کتابخانهها تا حد امکان از امکان سوء استفاده از این دست از آسیب پذیریها جلوگیری میگردد.
مقاوم سازی برابر آسیب پذیری شنود و سرقت اطلاعات (Cryptographic Failures)
با استفاده از الگوریتمهای رمز نگاری قوی برای اطلاعات حساس و همچنینی پیکربندی آخرین نسخ TLS از امکان شنود و سرقت اطلاعات در حین جابجایی جلوگیری میگردد.
مقاوم سازی در برابر تنظیمات امنیتی نادرست (Security misconfigurations)
جهت جلوگیری از سوء استفاده از پیکربندیهای نادرست امنیتی، اقداماتی از جمله عدم استفاده از کلمات عبور ضعیف و گذرواژه پیش فرض، عدم استفاده از اسکریپتهای پیش فرض ذخیره شده در سرورها، عدم پیکربندی نرمافزار در دایرکتوریهای پیش فرض، خاموش نمودن پیامهای پیش فرض خطا و … مورد استفاده قرار خواهد گرفت.
مقاوم سازی در برابر آسیب پذیری Broken Access control
با استفاده از راهکارهای همانند استفاده از Authorization Token مدیریت صحیح Log in و Log out از امکان دورزدن فرایند احراز هویت و سوء استفاده از نقشها و دسترسیهای بالاتر توسط کاربر فاقد صلاحیت دسترسی جلوگیری میگردد.

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

در این راستا لیستی از اهداف امنیتی مرتبط با این موضوع جهت مقاوم سازی در برابر خرابی و تداوم سرویس که قابل ارائه خواهد بود، در ادامه ذکر گردیده است:
کنترل تغییرات و نسخ نرمافزار
- قابلیت بروزرسانی خودکار
- وجود طرح نگهداری نرمافزار
- مستند بودن نحوهی نصب الحاقات
- مستند تغییرات و نسخ
قابلیت در دسترسی پذیری یا HA
- قابلیت پیاده سازی در دسترس پذیری (High Avalibility) در سطح سرورهای پایگاه داده و سرورهای نرمافزار،
- جهت انتقال سرویس به وضعیت امن و تداوم سرویس
پشتیبان گیری از اطلاعات
- قابلیت پشتیبان گیری به ویژه از دادههای حساس و بازاریابی نسخههای پشتیبان
- رعایت مکانیزمهای امنیتی در نسخههای پشتیبان
- مستند بودن روش تهیه نسخههای پشتیبان یا بازیابی آنها به طور کامل
- وجود طرح ترمیم خرابی ناشی از حوادث

مقاوم سازی پایگاه داده
از آنجا که اطلاعات موجود در یک سازمان جزو مهمترین سرمایه آن سازمان به حساب میآید، بنابراین کلیه منابع سختافزاری و نرمافزاری سازمان و همچنین منابع انسانی سازمان هدف خود را بر حفظ ، نگهداری، انتقال و در نهایت کاربری مفید این اطلاعات و داده ها قرار میدهند. از طرفی این اطلاعات و دادها که در غالب داده های پرسنلی، آموزشی، مدیریتی، مالی، اداری و پژوهشی جای میگیرند، به صورت روزافزون در حال رشد و گسترش میباشند که این امر موجب تغییر در حساسیت نگهداری و کاربری این اطلاعات میشوند که در نهایت همه ی این موارد باعث چاره اندیشی کارشناسان و مدیران شبکه در خصوص تهاجم و به کارگیری غیرمجاز این اطلاعات توسط بعضی کاربران (نفوذگران) میشوند.
تهاجماتی که علیه اطلاعات و داده ها صورت میپزیرد را میتوان به صورت زیر بیان کرد:
- حملاتی که موجب افشای اطلاعات محرمانه میشوند.
- حملاتی که موجب تغییرات عمدی یا ناخواسته در اطلاعات میشوند.
- حملاتی که موجب عدم دسترسی افراد مجاز یا دسترسی افراد غیرمجاز به اطلاعات میشوند
از این رو در صورت مقاوم سازی پایگاه داده، نفوذپذیری های نشأت گرفته از خطاهای موجود به کمترین میزان خود خواهد رسید، حتی در صورت اصلاح نشدن آن خطاها میبایست محیط پایگاه داده طوری مقاوم سازی شود که کمترین تأثیر را روی اطلاعات و جداول بگذارد، در این قسمت مقاوم سازی پایگاه های داده را در بخش های گوناگون مورد بررسی قرار میدهیم.

موارد امنیتی حوزه نصب و پیکربندی پایگاه داده
- نام کاربری sa را یا غیر فعال نموده و یا آنرا با عنوان غیر قابل حدسی Rename نماید.
- کاربری Sysadmin بصورت کاملا محرمانه و امن، صرفاً در اختیار مالک پایگاه داده سازمان بهره بردار (DBA) قرار گیرد.
- یک کاربری با نقش dbowner برای اتصال سامانه و سرویسهای مرتبط با پایگاه داده (ها) تعریف شود. رمز عبور آن حداقل ۱۲ کاراکتر با پیچیدگی و همراه با حروف، کوچک، بزرگ، عدد و علامت باشد.
- رمز عبور حساب (های) کاربری بطور دوره ای تغییر یابد و در نرمافزار باز تعریف شود.
- بصورت دورهای وجود حسابهای کاربری بر روی پایگاه داده ایده، بررسی شود و دسترسیهای غیر لازم حذف گردد.
- حداقل پروتکلهای متناسب با نیاز سازمان فعال باشند.
- پورت پیش فرض ۱۴۳۳ به پورت دیگری تغییر یابد.
- جهت جلوگیری از تخریب در سطح سیستم عامل، رویههای xp_ از جمله xp_cmdshell غیر فعال شود.
- فقط سرویسهای مورد نیاز را روی DataBase Server نصب کنید.
- DataBase Server توسط یک فایروال و آنتی ویروس معتبر محافظت گردد.
- Distribute Transaction Cordinator غیر فعال گردد.
- سرور میزبان پایگاه داده از لحاظ سختافزاری و دسترسی شبکه با سرورهای مرتبط با نرمافزار جداگانه تعریف گردند.
- پایگاه دادههای سامانه آموزش و یادگیری ایده در معرض شبکه های عمومی و اینترنت قرار نگیرد.
- مکان فیزیکی سرور میزبان پایگاه داده باید امن سازی شده باشد و قابل ورود خروج به محیط سرورها قابل رصد مداوم باشد.
Security During Operations
- جهت اتصال به سرورهای پایگاه داده سامانه، بر اساس دستور العملهای امنیتی اقدام شود.
- قابلیت ارسال ایمیل (اطلاع رسانی) SQL Server غیر فعال شود. جهت اطلاع رسانی به DBA از راهکارهای جایگزین استفاده شود.
- رویههای مرتبط با پشتیبانی گیری از اطلاعات پایگاه داده و بازیابی فایلهای پشتیبان بصورت دورهای مورد تست قرار گیرند.
- زمانبندی اخذ کپی پشتیبانی از اطلاعات بر حسب نیاز سازمان بهره بردار بطور دقیق تعیین گردد.
- نسخ پشتیبان از پایگاه داده سامانه در محل امن خارج از محیط سختافزار سرور میزبان پایگاه داده نگهداری گردد. محل امن ترجیحاً Tape و یا Storage ای با دسترسی آفلاین از سرور میزبان پایگاه داده باشد.
- برای دادههایی که برای تست به کار میروند قاعدههای امنیتی روی آنها رعایت شوند.
- تمامی کاربران و بانکهای اطلاعاتی نمونه را پاک کنید.
موارد امنیتی حوزه اتصال و نگهداشت پایگاه داده
- پایگاه داده SQL Server به آخرین نسخه بروزرسانی شود.
- بطور مداوم از نصب آخرین وصلههای امنیتی منتشر شده در Cumulative Updateها را بر روی سرور میزبان اطمینان حاصل نمایید.
- سرور میزبان پایگاه داده را بطور مرتب با آخرین نسخه service pack بروزرسانی گردد.
- روی DataBase Server هیچ Role یا سرویس غیرهای مانند(Web Server، Active Directory Domain Services و …) نصب نگردد.
- فایلهای نصب SQL Server از روی سرور حذف شود.
Set the ‘Ad Hoc Distributed Queries’ Server Configuration Option to zero
Set the ‘Cross DB Ownership Chaining’ Server Configuration Option to zero
Set the ‘Database Mail XPs’ Server Configuration Option to zero
Set the ‘Ole Automation Procedures’ Server Configuration Option to zero
Set the ‘Remote Access’ Server Configuration Option to zero
Set the ‘Remote Admin Connections’ Server Configuration Option to zero
Set the ‘Scan For Startup Procs’ Server Configuration Option to zero
Set the ‘Trustworthy’ Database Property to Off
Set the ‘Hide Instance’ option to ‘Yes’ for Production SQL Server instances
Ensure ‘AUTO_CLOSE’ is set to ‘OFF’ on contained databases
Authentication & Authorization
- از windows Authentication Mode استفاده شود.
- کاربر guest به هیچ بانک اطلاعاتی به غیر از master , tempdb ,msdb دسترسی نداشته باشد.
- Ensure ‘Orphaned Users’ are Dropped From SQL Server Database
- Ensure SQL Authentication is not used in contained databases (کاربران Contained Database بصورت Windows Authentication تعریف شوند)
- اکانتی که سرویس SQL Server تحت آن اجرا می شود نباید عضو گروه Windows ،Administrator باشد.
- اکانتی که سرویسAgent SQL Server تحت آن اجرا می شود نباید عضو گروه Windows ،Administrator باشد.
- اکانتی که سرویس SQL Full-text Filter Daemon (MSSQLLFDLauncher) تحت آن اجرا می شود نباید عضو گروه Windows ،Administrator باشد.
- مجوزهای اضافی به Role Public داده نشود.
- هیچ built in group بعنوان login نباید در SQL Server Instance تعریف شود.
- هیچ local windows group بعنوان login نباید در SQL Server Instance تعریف شود.
- نباید Role Public به هیج SQL Agent Proxy دسترسی داشته باشد.
- دسترسی کاربران در بانک اطلاعاتی باید متناسب با نیاز آنها تنظیم شود.
ممیزی و رخداد نگاری
- Ensure ‘Maximum number of error log files’ is set to greater than or equal to ۱۲
- Ensure ‘Default Trace Enabled Server Configuration’ Option is set to ۱
- Ensure ‘Login Auditing’ is set to Both failed and successful logins
- Extended Stored Procedures
- Revoke Execute on ‘xp_availablemedia’ to PUBLIC
- Revoke Execute on ‘xp_dirtree’ to PUBLIC
- Revoke Execute on ‘xp_enumgroups’ to PUBLIC
- Revoke Execute on ‘xp_fixeddrives’ to PUBLIC
- Revoke Execute on ‘xp_servicecontrol’ to PUBLIC
- Revoke Execute on ‘xp_subdirs’ to PUBLIC
- Revoke Execute on ‘xp_regaddmultistring’ to PUBLIC
- Revoke Execute on ‘xp_regdeletekey’ to PUBLIC
- Revoke Execute on ‘xp_regdeletevalue’ to PUBLIC
- Revoke Execute on ‘xp_regenumvalues’ to PUBLIC
- Revoke Execute on ‘xp_regwrite’ to PUBLIC
- Revoke Execute on ‘xp_regread’ to PUBLIC
موارد امنیتی احراز هویت و امنیت گذرواژه
- Ensure ‘MUST_CHANGE’ Option is set to ‘ON’ for All SQL Authenticated Logins
- Ensure ‘CHECK_EXPIRATION’ Option is set to ‘ON’ for All SQL Authenticated Logins Within the Sysadmin Role
- Ensure ‘CHECK_POLICY’ Option is set to ‘ON’ for All SQL Authenticated Logins