معماری امنیتی نرم‌افزار

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

در جدیدترین ارزیابی انجام شده توسط سازمان فناوری اطلاعات ایران جهت ارزیابی امنیتی محصولات فناوری اطلاعات بر مبنای استاندارد ISO/IEC/ISIRI 15408 با گذراندن مراحل مختلف تست و ارزیابی، نرم‌افزار اتوماسیون اداری و مدیریت فرآیندهای فراگستر، موفق به اخذ گواهینامه ارزیابی امنیتی محصول (افتا) گردیده است. این گواهینامه با شماره CBP-C706-0201 صادر شده است و از آدرس https://sec.ito.gov.ir/page/eram قابل استعلام می‌باشد.

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

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

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

در تصویر زیر شمای کلی معماری امنیتی نرم‌افزار اتوماسیون کسب و کار فراگستر به همراه استانداردهای لازم جهت مقاوم‌سازی سایر حوزه‌های مرتبط ارائه گردیده است.

نقشه راه معماری امنیتی نرم افزار

مقاوم‌سازی نرم‌افزار

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

شناسایی و احراز هویت کاربران

Identification and Authentication

ماژول شناسایی یا احراز هویت یا Identification and Authentication نرم‌افزار اتوماسیون اداری و مدیریت فرایند‌ها بر مبنای شناسایی و احراز هویت هر کاربر و پیرو آن اعمال سیاست‎‌های تعیین شده توسط سازمان بر فعالیت‎‌های کاربران فعالیت می‌نماید. تشخیص و تصدیق هویت در این نرم‌افزار یک فرآیند دو مرحله‌ایست که در طی آن ابتدا هویت کاربر و یا فرایندی که از جانب کاربر عمل می‌کند، شناسایی شده و سپس هویت او تایید و دسترسی‌های لازم اعمال می‌گردد.

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

لیستی از اهداف امنیتی مرتبط با هویت‌سنجی که در نرم‌افزار اتوماسیون اداری و مدیریت فرآیند‌ها پیاده سازی شده است، ذکر می‌گردد:

مکانیزم هویت سنجی

  • هویت سنجی همیشگی قبل از ورود به سیستم
  • عدم قبول گذرواژه‌ی تهی
  • پشتیبانی از هویت سنجی دو عاملی (Two Factor Authentication)، توکن‌‎های سخت‌‎افزاری
  • قابلیت تغییر گذرواژه‌‎ی شخصی برای هر کاربر در صورت دسترسی
  • احراز هویت بعد از عدم فعالیت یک حساب کاربری به مدت طولانی
  • عدم امکان تغییر گذرواژه‌ی کاربران برای کاربری غیر از مدیرسیستم
  • امکان تنظیم حداقل زمان عدم فعالیت برای احراز هویت مجدد توسط مدیر
  • عدم ذخیره‌ی اطلاعات تصدیق هویت کاربر بطور نامناسب در کوکی یا فایل‌های قابل دسترسی
  • امکان احراز هویت مجدد برای صفحات حساس

سیاست‎گذاری بر حساب‌ها و گذرواژه‌ها

  • وجود مکانیزم الزام پیچیدگی رمز عبور‌های لازم جهت جلوگیری از حملات       brute-force
  • الزام استفاده از رمز عبور ترکیبی و امکان تعیین الگوی پیچیدگی رمز عبور‌ها
  • الزام به ورود Captcha در زمان ورود کاربر به نرم‌افزار
  • تغییر حساب‌ها یا گذرواژه‌های پیش فرض
  • امکان الزام تغییر گذرواژه‌های اعطا شده به کاربران بعد از اولین ورود به سیستم

هویت سنجی دو مرحله‌ای (Two Factor Authentication)

  • هویت سنجی مجدد برای انجام اعمال مدیریتی یا حساس
  • استفاده از پیامک یا پست الکترونیکی جهت اجرای هویت سنجی دو عاملی

مدیریت مجوز‌ها و دسترسی‌های کاربری

  • اعطای مجوزهای کاربر بر حسب کاربر و گروه‌های کاربری
  • مشخص بودن لیست کاملی از مجوزهای اعطا شده به هر کاربر پس از هویت سنجی و ورود به سیستم

مدیریت تلاش‌های ناموفق برای ورود به سیستم

  • امکان قفل شدن کاربری بعد از تلاش ناموفق در هنگام ورود به نرم‌افزار
  • ثبت وقایع مربوط به تلاش‌های ناموفق برای ورود به سیستم
  • عدم ارائه‌ی جزییات به کاربر در صورت ورود ناموفق
  • عدم نمایش شناسه کاربری بعد از ورود ناموفق

حفاظت از اطلاعات هویت سنجی

  • عدم نمایش گذرواژه‌ها هنگام ورود
  • عدم Cache اطلاعات هویت‎ سنجی
  • نگهداری گذرواژه‌ها به صورت درهم با ترکیب داد‌ه‌های تصادفی
  • رمزنگاری اطلاعات هویت سنجی در حین انتقال آن‌‎ها در شبکه
  • رمزنگاری اطلاعات هویت سنجی در ذخیره‌سازی
  • کنترل دسترسی به اطلاعات هویت سنجی رمز شده

مدیریت حساب‌های کاربری

  • عدم قبول دو کاربر با شناسه‎‌ی یکسان
  • وجود قابلیت تاریخ انقضا برای حساب‌ها توسط مدیر سیستم
  • غیرفعال شدن شناسه‌‎ها بعد از مدت طولانی عدم فعالیت
  • تغییر یا حذف حساب‌های پیش فرض سیستم
  • تعیین کمترین حق دسترسی بطور پیش فرض برای شناسه‌ی کاربری جدید

مدیریت نشست

Session Management

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

مدیریت نشست

در ادامه لیستی از اهداف امنیتی مرتبط با Session Management که در نرم‌افزار اتوماسیون اداری و مدیریت فرآیندها پیاده‌سازی شده است، ذکر می‌گردد:

مدیریت مناسب شناسه‌‎ی نشست

  • عدم ایجاد شناسه‌ها به صورت ترتیبی، عدم تولید شناسه‌های ضعیف یا قابل حدس
  • عدم استفاده از توابع یا داده‌های قابل حدس مانند نام، تاریخ یا IP برای تولید شناسه
  • عدم استفاده از داده‌های محرمانه مانند اسم و رمز در تولید شناسه
  • عدم استفاده از شناسه‌ی نشست یکسان هنگام جابجایی از نقطه‌های امن به ناامن (و برعکس) و انقضای خودکار شناسه‌های قبلی با صدور شناسه‌ی جدید برای یک نشست
  • وجود گزینه‌ای برای ساقط کردن اعتبار نشست‌ها توسط مدیر سیستم
  • هویت سنجی برای هر نشست جدید
  • اعتبارسنجی شناسه‌های نشست توسط کارگزار از نظر نوع و اندازه
  • منقضی شدن نشست در صورت غیرفعال بودن کاربر در یک زمان مشخص
  • فرمان پایان نشست بطور صریح با Log out کاربر

امنیت انتقال شناسه‌ی نشست

  • عدم انتقال شناسه‌های نشست از طریق Query String
  • رمزنگاری اطلاعات نشست هنگام ارسال اطلاعات (ارسال اطلاعات از طریق کانالی امن مانند HTTPS یا SSL)
  • عدم ذخیره سازی اطلاعات حساس در نشست

حفاظت از اطلاعات ذخیره شده‌‎ی نشست ها

  • هشدار به کاربر قبل از قبول کوکی در مرورگر
  • عدم ذخیره‎‌‌ی اطلاعات حساس در کوکی یا مکانیزم‌‎های مشابه دیگر بدون رمزنگاری

محدودیت زمانی برای نشست‌‎ها

  • رعایت حداکثر تعداد نشست برای هر کاربر به صورت قابل تنظیم معتبر
  • امکان به تعلیق درآوردن نشست توسط کاربر به صورت دلخواه
  • امکان قطع و یا به تعلیق در آوردن یک نشست توسط مدیرسیستم

حفاظت از اطلاعات و کنترل دسترسی

User data protection

حفاظت از اطلاعات و کنترل دسترسی در مفهوم عمومی User data protection نام برده شده است که خود به چهار حوزه تفکیک می‎شود:

  1. سیاست‌های کنترل دسترسی
  2. نحوه‌ی اجرای سیاست‌های کنترل دسترسی در راستای حفاظت از اطلاعات کاربران
  3. حفاظت از اطلاعات در حین ذخیره‌سازی
  4. حفاظت از اطلاعات در حین انتقال

یکی از اصول سیستم اتوماسیون کسب و کار فراگستر، حفظ محرمانگی و همچنین حفظ حریم اطلاعات کاربران است و این مهم میسر نمی‎شود مگر با استفاده از مکانیزم‎‌های حفاظت از اطلاعات. 

در ادامه لیستی از اهداف امنیتی مرتبط با User data protection که در نرم‌افزار اتوماسیون اداری و مدیریت فرآیندها پیاده سازی گردیده است، ذکر گردیده است:

رمزنگاری اطلاعات حساس

  • رمز نگاری تمام اطلاعات حساس هنگام ذخیره‎ سازی

مکانیزم انکارناپذیری

  • بهره‌گیری از مکانیزم‌های امضاء دیجیتالی برای جلوگیری از انکار
  • استفاده از فناوری‌های هویت سنجی قوی‌‎تر از نام و گذرواژه برای اعمال حساس (هویت سنجی دو عاملی – پشتیبانی از ورود با توکن سخت افزاری)

 

عدم دسترسی به منابع با دور زدن واسط کاربر

  • مستند بودن تمام واسط‌های دسترسی به برنامه (مانند اینترنت، شبکه محلی) و عدم دسترسی به هر گونه منبع برنامه غیر از مسیر واسط‌ها

اعتبارسنجی فعالیت‌های برنامه

  • عدم وجود منابعی (مانند فایل) خارج از برنامه که بتوان آن‌ها را تغییر داده و یا ایجاد کرد
  • عدم پذیرش ورود مستقیم URL جهت دسترسی به منابع غیرمجاز
  • عدم نمایش فهرست دایرکتوری‌ها با ورود یک آدرس URL نامعتبر
  • عدم استفاده از اکانت‌های تعریف شده در پایگاه داده به‌عنوان راهکار مکانیزم کنترل دسترسی

تفکیک وظایف و حداقل مجوزها

  • تعیین نقش‌های کاربران و مدیران بر اساس دو اصل تفکیک وظایف و حداقل مجوزها
  • امکان انقضای دسترسی حساب‌ها توسط مدیرسیستم
  • اجرای برنامه در حداقل سطح اعتباری

عدم دسترسی غیر مجاز به منابع

  • بررسی کدهای سیار قبل از اجرای آن‎ها در صورتی که از نامه‎‌ی الکترونیک یا دریافت فایل ورودی با file upload یا مکانیزم‎‌های خودکار دیگر استفاده می‌‎شود
  • عدم ایجاد اتصال جدید در شبکه توسط کد سیار
  • عدم پذیرش فایل‌ها با یکی از پسوند‎های exe،bat،vbs،shs،wsf،wsc ،vbe،reg،wsh jse و scr و سایر فرمت‌های قابل تعریف

وظایف مدیریتی

  • وجود وظایف مدیریتی تعریف شده
  • ایجاد رابط‌های کاربری برای مدیریت حقوق دسترسی
  • عدم انجام کارهای مدیریتی توسط کاربران بدون اجازه‌های مدیریتی
  • تصدیق حقوق دسترسی کاربران قبل از فراخوانی فرایندها توسط کاربران
  • رعایت نکات امنیتی مربوط به مدیریت راه دور سیستم
  • فیلترینگ IP برای تشخیص IP مدیریتی در مدیریت راه دور سیستم
  • استفاده از حقوق دسترسی نقش‌گرا

رویدادنگاری و ممیزی اطلاعات

Event Log / Audit Log

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

رویدادنگاری و ممیزی اطلاعات

در ادامه لیستی از اهداف امنیتی مرتبط با رویدادنگاری و ممیزی اطلاعات که در نرم‌افزار اتوماسیون اداری و مدیریت فرآیندها پیاده سازی گردیده است، ذکر گردیده است:

تولید رکورد ممیزی رویداد برای فعالیت‌ها و توابع نرم افزار

  • تمام کاربردهای سازوکار احراز هویت
  • نتایج نهایی عملیات احراز هویت
  • تغییرات بر روی مقادیر مشخصه­‌های امنیتی
  • ایجاد و تغییر در مشخصات تنظیماتی نرم‌افزار
  • شروع و پایان توابع اصلی نرم‌افزار
  • خواندن، درج و ویرایش اطلاعات
  • پایان دادن یا شکست در ایجاد نشست کاربری

تولید رویدادهای ممیزی با مشخصات دقیق

  • تاریخ و زمان رویداد
  • هویت ایجاد کننده رویداد
  • نوع و نتیجه رویداد
  • آدرس شناسه شبکه (IP) ایجاد کننده رویداد

حفاظت از رویدادها و رکوردهای ممیزی اطلاعات

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

مدیریت خطاها و استثناءها

Exception Handling

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

مدیریت خطاها و استثناءها

لیستی از اهداف امنیتی مرتبط با مدیریت خطاها و استثناءهای که در نرم‌افزار اتوماسیون اداری و مدیریت فرآیندها پیاده سازی گردیده است، ذکر گردیده است:

مدیریت مناسب خطاها و‎ استثناءها

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

وضعیت امن پس از وقوع خطا

  • عدم اجازه‌ی دسترسی‌های غیر معمول در شرایط پس از خطا در سیستم
  • وجود روال‌های پیش‎بینی شده پس از شکست یا خطا در هر بخش از سیستم

مقاومت دربرابر حملات و نفوذها

Security Function Protect

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

مقاومت دربرابر حملات و نفوذها

در ادامه لیستی از اهداف امنیتی مرتبط حوزه تست‌های نفوذ نرم‌افزار اتوماسیون کسب و کار فراگستر بیان گردیده است:

مقاوم سازی در برابر آسیب پذیری 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 از امکان دورزدن فرایند احراز هویت و سوء استفاده از نقش‌ها و دسترسی‌های بالاتر توسط کاربر فاقد صلاحیت دسترسی جلوگیری می‌گردد.

مقاومت دربرابر خرابی و تسهیل در نگهداری از نرم‌افزار

Resistance to Failure

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

مقاومت دربرابر خرابی و تسهیل در نگهداری از نرم‌افزار

در این راستا لیستی از اهداف امنیتی مرتبط با این موضوع جهت مقاوم سازی در برابر خرابی و تداوم سرویس که قابل ارائه خواهد بود، در ادامه ذکر گردیده است:

قابلیت در دسترسی پذیری یا HA

قابلیت پیاده سازی در دسترس پذیری (High Avalibility) در سطح سرورهای پایگاه داده و سرورهای نرم‌افزار، جهت انتقال سرویس به وضعیت امن و تداوم سرویس

پشتیبان گیری از اطلاعات

  • قابلیت پشتیبان گیری به ویژه از داده‌های حساس و بازاریابی نسخه‌های پشتیبان
  • رعایت مکانیزم‌های امنیتی در نسخه‌های پشتیبان
  • مستند بودن روش تهیه نسخه‌های پشتیبان یا بازیابی آن‎ها به طور کامل
  • وجود طرح ترمیم خرابی ناشی از حوادث

کنترل تغییرات و نسخ نرم‌افزار

  • قابلیت بروزرسانی خودکار
  • وجود طرح نگهداری نرم‌افزار
  • مستند بودن نحوه‌ی نصب الحاقات
  • مستند تغییرات و نسخ

مقاوم‌سازی پایگاه داده

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

حملاتی که علیه داده‌ها صورت می‌پذیرد را می‌توان در دسته‌های کلی زیر بیان کرد:

  • تهاجماتی که باعث افشا شدن اطلاعات حساس می‌شوند
  • تهاجماتی که باعث تغییرات ناخواسته در اطلاعات ذخیره شده می‌شوند
  • تهاجماتی که باعث تغییرات عمدی در اطلاعات می‌شوند
  • تهاجماتی که باعث جلوگیری از دسترسی افراد مجاز به اطلاعات می‌شوند
  • تهاجماتی که باعث ایجاد دسترسی افراد غیر مجاز به اطلاعات می‌گردند

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

مقاوم‌سازی پایگاه داده

موارد امنیتی حوزه نصب و پیکربندی پایگاه داده

  • نام کاربری sa را یا غیر فعال نموده و یا آنرا با عنوان غیر قابل حدسی Rename نماید.
  • کاربری Sysadmin بصورت کاملا محرمانه و امن، صرفاً در اختیار مالک پایگاه داده سازمان بهره بردار (DBA) قرار گیرد.
  • یک کاربری با نقش dbowner برای اتصال سامانه و سرویس‌های مرتبط با پایگاه داده (ها) تعریف شود. رمز عبور آن حداقل ۱۲ کاراکتر با پیچیدگی و همراه با حروف، کوچک، بزرگ، عدد و علامت باشد.
  • رمز عبور حساب (های) کاربری بطور دوره ای تغییر یابد و در نرم‌افزار باز تعریف شود.
  • بصورت دوره‌ای وجود حساب‌های کاربری بر روی پایگاه داده سامانه اتوماسیون، بررسی شود و دسترسی‌های غیر لازم حذف گردد.
  • 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
  • حداقل پروتکل‌های متناسب با نیاز سازمان فعال باشند.
  • پورت پیش فرض ۱۴۳۳ به پورت دیگری تغییر یابد.
  • جهت جلوگیری از تخریب در سطح سیستم عامل، رویه‌های xp_ از جمله xp_cmdshell را غیر فعال شود.
  • فقط سرویس‌های مورد نیاز را روی DataBase Server نصب کنید.
  • DataBase Server توسط یک فایروال و آنتی ویروس معتبر محافظت گردد.
  • Distribute Transaction Cordinator غیر فعال گردد.
  • سرور میزبان پایگاه داده از لحاظ سخت‌افزاری و دسترسی شبکه با سرورهای مرتبط با نرم‌افزار جداگانه تعریف گردند.
  • پایگاه داده‌های سامانه اتوماسیون کسب و کار در معرض شبکه های عمومی و اینترنت قرار نگیرد.
  • مکان فیزیکی سرور میزبان پایگاه داده باید امن سازی شده باشد و قابل ورود خروج به محیط سرورها قابل رصد مداوم باشد.

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 تعریف شوند)
  • Accountی که سرویس SQL Server تحت آن اجرا می شود نباید عضو گروه Windows ،Administrator باشد.
  • Accountی که سرویسAgent SQL Server تحت آن اجرا می شود نباید عضو گروه Windows ،Administrator باشد.
  • Accountی که سرویس 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 ‘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

ممیزی و رخداد نگاری

  • Ensure ‘Maximum number of error log files’ is set to greater than or equal to 12
  • Ensure ‘Default Trace Enabled Server Configuration’ Option is set to 1
  • 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

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 از روی سرور حذف شود.
۴۲۶۲۳ (۰۲۱)