از مقالهی گذشته مبحثی را پیرامون محافظت از دادهها آغاز کردیم که کمک میکند از الگوهای امنیتی برای محافظت از دادههای حساس سازمانی استفاده کنیم. همانگونه که متوجه شدیم، طبقهبندی دادهها نقش مهمی در محافظت از آنها دارد، زیرا اجازه میدهد شناخت دقیقتری در ارتباط با دادههای حساس به دست آوریم. علاوه بر این، با نوعهای اصلی پایگاههای داده آشنا شدیم. در این مقاله مبحث فوق را ادامه میدهیم.
5. حسابرسی پایگاه داده
یکی دیگر از اقدامات امنیتی، ثبت تمام فعالیتهای پایگاه داده و فایل سرور است. فعالیتهای مرتبط با ورود باید حداقل برای یک سال برای ممیزیهای امنیتی نگهداری شود. هر حسابی که تعداد تلاشهای ناموفق برای ورود به سیستم زیادی برای آن ثبت شده باید از جانب مدیر امنیت اطلاعات، کنترل و بررسی شود تا مشخص شود، علت چه بوده است. توانایی تشخیص تغییرات در اطلاعات حساس و مجوزهای مرتبط بسیار مهم است.
استفاده از اطلاعات تاریخی برای درک اینکه چه دادههایی حساس هستند، چگونه استفاده میشوند و چه کسی از آنها استفاده میکند به شما این توانایی را میدهد که خطمشیهای مؤثر و دقیقی ایجاد کنید.
همچنین، این امکان را فراهم میکنند تا پیشبینی کنید که چگونه تغییرات در محیط ممکن است بر امنیت تأثیر بگذارد و این فرآیند میتواند به شما در شناسایی خطرهای اشناخته کمک کند. لازم به توضیح است که ابزارهای third party وجود دارند که فرآیند ممیزی فعالیتهای کاربری را ساده میکنند. از جمله این ابزارها باید به Netwrix Auditor اشاره کرد.
6. استفاده از رمزگذاری دادهها
رمزگذاری یکی از کارآمدترین مکانیزمهای محافظت از دادهها است که اغلب نادیده گرفته میشود. همهی دادههای مهم تجاری باید هنگامی که از آنها استفاده نمیشود یا در حال انتقال هستند، رمزگذاری شوند. نکتهی ظریفی که باید در این زمینه به آن دقت کنید این است که فرآیند رمزگذاری نباید محدود به دادههایی شود که روی رسانههای قابل حمل مثل هارد دیسکهای اکسترنال یا حافظههای فلش قرار دارند، حتی دادههایی که قرار است از طریق شبکه انتقال پیدا کنند باید رمزگذاری شوند. اگر سیستمهایی مثل لپتاپها دادههای مهمی دارند ضروری است از مکانیزم رمزگذاری سطح دیسک در ارتباط با آنها استفاده شود.
برای سیستمهای دسکتاپ که اطلاعات حیاتی یا اختصاصی را ذخیره میکنند، رمزگذاری هارد دیسکها نقش مهمی در پیشگیری از سرقت دادهها دارد. به عنوان مثال، اساسیترین راه برای رمزگذاری دادهها در سیستمهای ویندوزی فناوری (Encrypting File System) است. اگر از EFS برای محافظت از دادهها استفاده کنید، کاربران غیرمجاز نمیتوانند محتوای یک فایل را مشاهده کنند، حتی اگر به دستگاه دسترسی کامل داشته باشند.
هنگامی که یک کاربر مجاز یک فایل رمزگذاری شده را باز میکند، EFS فایل را در پس زمینه رمزگشایی میکند و اطلاعات را به شکل ایمن در اختیار برنامه قرار میدهد. کاربران مجاز میتوانند فایل را مشاهده یا تغییر دهند و EFS تغییرات را به صورت دادههای رمزگذاری شده ذخیره میکند. اگر کاربران غیرمجاز سعی کنند همین کار را انجام دهند، خطای Access denied (دسترسی ممنوع است) را دریافت میکنند.
یکی دیگر از فناوریهای رمزگذاری قدرتمند در این زمینه بیتلاکر (BitLocker) مایکروسافت است. بیتلاکر با ارائه یک لایهی حفاظتی اضافی برای دادههای ذخیره شده در دستگاههای ویندوز، عملکرد فناوری EFS را تکمیل میکند. بیتلاکر یکی از گزینههای خوب در شرایطی است که دستگاهها ناپدید یا دزدیده میشوند. در این حالت هکرها نمیتوانند به راحتی از سد مکانیزم امنیتی بیتلاکر عبور کرده و به دادهها دسترسی پیدا کنند.
رمزگذاری مبتنی بر سختافزار
علاوه بر رمزگذاری مبتنی بر نرمافزار، رمزگذاری مبتنی بر سختافزار راهکار دیگری برای محافظت از دادهها است. اگر به تنظیمات پیکربندی پیشرفته در بایوس مادربورد مراجعه کنید، یک ماژول امنیتی کارآمد که TPM نام دارد را مشاهده میکنید که امکان فعال یا غیرفعال کردن آن وجود دارد.
TPM تراشهای است که اجازه میدهد به شکل ایمن کلیدهای رمزنگاری، رمز عبورها یا گواهیها را ذخیرهسازی کنید. همچنین، یک تراشه TPM میتواند برای ساخت مقادیر مبهم (Hash) که فناوریهایی مثل بیتلاکر برای رمزگذاری از آن استفاده میکنند و غیره استفاده شود. کامپیوترهایی که در پنج سال اخیر تولید شدهاند مجهز به تراشهی TPM هستند. لازم به توضیح است که اگر قصد نصب ویندوز 11 را روی سیستم خود دارید، یکی از پیششرطهای نصب ویندوز 11، فعال بودن ویژگی TPM است. درست است که کاربران میتوانند با استفاده از برخی ترفندها در صورت غیر فعال بودن ویژگی فوق، ویندوز 11 را نصب کنند، اما مایکروسافت این راهکار را توصیه نمیکند.
7. تهیهی نسخهی پشتیبان از اطلاعات
یکی از اصول مهمی که هنگام کار با پایگاههای داده باید به آن دقت کنید، رعایت اصل افزونگی (Redundancy) است. افزونگی به معنای تکثیر اطلاعات و ساخت نسخهی پشتیبان از اطلاعات است. در ابتداییترین سطح، مکانیزم فوق آستانهی تحمل خطای سرور را بیشتر میکند، به طوری که اگر اطلاعات به هر دلیلی از دست رفتند، امکان بازگرداندن آنها از طریق نسخهی پشتیبان وجود دارد.
در اینجا، پشتیبانگیری تنها به بایگانی دورهای دادههای ذخیرهسازی شده روی سرور اشاره دارد تا در صورت بروز خرابی، حملهی هکری یا هر نوع اتفاق دیگری، امکان بازیابی اطلاعات وجود داشته باشد. از نقطه نظر امنیتی، سه نوع پشتیبان اصلی وجود دارد که باید به عنوان طراح یا توسعهدهنده پایگاه داده در مورد آنها اطلاع داشته باشید. این سه نوع به شرح زیر هستند:
- Full آرشیو کاملی از دادهها تهیه میشود.
- تفاضلی (Differential): از اطلاعاتی که نسبت به نسخهی کامل تغییر پیدا کردهاند، نسخهی پشتیبان تهیه میشود.
- افزایشی (Incremental): از تغییرات به وجود آمده نسبت به نسخهی قبل پشتیبان تهیه میشود.
پشتیبانگیری کامل
پشتیبانگیری کامل بهترین استراتژی پشتیبانگیری است که مزایا و معایب خاص خود را دارد. سناریویی را تصور کنید که نسخهی پشتیبان کامل در ساعت 1 صبح هر روز هفته تهیه میشود. شما نگران احتمال خرابی سرور قبل از پشتیبانگیری کامل بعدی هستید، بنابراین میخواهید هر دو ساعت یکبار یک نسخه پشتیبان تهیه کنید.
حال اگر سیستم در ساعت 5:10 صبح از کار بیفتد، چه اتفاقی میافتد؟ اگر هر دو ساعت یکبار یک نسخه پشتیبان کامل از ساعت 1 بامداد تهیه کرده باشید، در این حالت کافی است از نسخه پشتیبان ساعت 5 برای بازیابی اطلاعات استفاده کنید. اجرای یک مکانیزم تهیه نسخه پشتیبان کامل هر دو ساعت یک بار زمانبر است و تأثیر منفی روی عملکرد سرور دارد.
پشتیبانگیری تفاضلی
در این سناریو، شما یک بکآپ کامل در ساعت 1 بامداد تهیه میکنید و سپس هر دو ساعت یک بار نسخه پشتیبانی به شکل تفاضلی تهیه میکنید. هنگامی که سیستم در ساعت 5:10 صبح خراب میشود، باید بکآپ کامل را از ساعت 1 بامداد و در ادامه نسخه پشتیبان تفاضلی را از ساعت 5 صبح را بازیابی کنید.
روش فوق تنها نیازمند یک مرحله بیشتر از فرآیند بازیابی نسخه پشتیبان کامل است. در پشتیبانگیری تفاضلی، برخی دادهها وجود دارند که نسبت به بکاپ قبلی، تغییر کردهاند، اما نسبت به بکاپ اولیه تغییر نکردهاند. در این حالت، دادههای فوق لحاظ نمیشوند و تنها دادههایی ذخیره میشوند که نسبت به بکاپ اولیه تغییر کردهاند. با این حال، به خاطر داشته باشید که نسخههای پشتیبان تفاضلی هر بار که تهیه میشوند، حجم بیشتری پیدا میکنند و در نتیجه فرآیند بازیابی زمانبر شده و نیازمند منابع قابل توجهی هستند. همچنین، کارایی کمتری نسبت به پشتیبانگیری کامل دارند و سرعت شبکه را کاهش میدهند.
پشتیبانگیری افزایشی
در این روش، یک نسخه پشتیبان کامل در ساعت 1 بامداد تهیه میکنید و سپس هر دو ساعت یکبار نسخه پشتیبان تهیه میکنید، اما تنها از دادههایی که نسبت به پشتیبان قبل تغییر پیدا کردهاند، نسخه پشتیبان تهیه میشود.
به طور مثال، وقتی سیستم در ساعت 5:10 صبح از کار میافتد، باید آخرین نسخه پشتیبان کامل در ساعت 1 بامداد و سپس هر نسخه پشتیبان افزایشی که پس از آن تاریخ تهیه کردهاید را برای بازیابی اطلاعات مورد استفاده قرار دهید. به بیان دقیقتر فرآیند بازیابی به ترتیب انجام شود. این فرآیند پیچیده است، اما هر نسخه پشتیبان افزایشی، حجم کمی دارد و زمان کمی برای تهیه آن نیاز است و صرفهجویی قابل ملاحظهای در فضای ذخیرهسازی به همراه دارد.
همانگونه که مشاهده کردید، این امکان وجود ندارد که بگوییم کدام روش نسبت به دیگری مزیت دارد به بیان دقیقتر، همه چیز به نیازهای سازمان بستگی دارد. قبل از آنکه هر یک از استراتژیهای پشتیبانگیری را انتخاب میکنید، باید ابتدا به شکل آزمایشی آنها را بررسی کنید تا مزایا و معایب آنها را به خوبی درک کنید. فارغ از روش انتخابی برای پشتیبانگیری به این نکته دقت کنید که پشتیبانها بهتر است به لحاظ موقعیت جغرافیایی در مکانهای مختلفی نگهداری شوند تا در صورت بروز بلایای طبیعی و حوادث (مانند طوفان، آتشسوزی یا خرابی هارد دیسک) دستکم نسخهای پایدار از اطلاعات داشته باشید.
پشتیبانگیری باید به طور مستمر و بر مبنای برنامههای زمانی مختلف (روزانه، هفتگی و ماهانه) انجام شود و اطلاعات روی دیسکها و سرورهای مختلف ذخیرهسازی شوند. به عنوان یک قاعده کلی به این نکته دقت کنید که دستکم یک نسخه پشتیبان کامل تهیه کنید تا بتوانید در هنگام استفاده از روشهایی مثل پشتیبانگیری تفاضلی یا افزایشی تنها تغییرات نسبت به نسخه اصلی یا نسخه قبلی را بازگردانید. روش فوق فرآیند بازیابی را سریعتر میکند.
8. استفاده از RAID در سرورها
RAID یا به عبارت دقیقتر آرایه اضافی از دیسکهای مستقل (redundant array of independent disks) یکی از مهمترین راهکارها برای بهبود آستانه تحمل خطا است. RAID با ارائه یک لایه محافظتی مانع از آن میشود تا اطلاعاتی که روی دیسک درایوها ذخیرهسازی میشوند به راحتی از دست بروند. RAID به سرورهایی که بیش از یک هارد دیسک دارند اجازه میدهد در صورت خرابی هارد دیسک اصلی، به کار خود ادامه دهد. با اینحال، برای دستیابی به سطحی مناسب از افزونگی اطلاعات باید در مورد معماریهای مختلف RAID اطلاعات کافی داشته باشید. از سطوح مهم و پر کاربرد RAID به موارد زیر باید اشاره کنیم:
- RAID 0: به نوع خاصی از معماری دیسکها اشاره دارد که اطلاعات را به شکل موازی روی دیسک درایوها مینویسند. به بیان دقیقتر، دادهها به شکل توزیع شده روی دیسکهای مختلف قرار میگیرند. مزیتی که روش فوق دارد این است که سرعت و عملکرد در ارتباط با عملیات خواندن و نوشتن را بهبود میبخشد، اما هیچگونه مکانیزم تحمل خطا ارائه نمیکنند. برای پیادهسازی معماری فوق حداقل دو دیسک مورد نیاز است.
- RAID 1: این سطح RAID آستانه تحمل خطا ارائه میکند، زیرا از مکانیزم قرینهسازی (Mirroring) محتویات دیسکها استفاده میکند. به بیان دقیقتر، هرگونه اطلاعاتی که روی دیسک اصلی نوشته میشود، همان اطلاعات روی دیسک دیگری نیز نوشته میشود. به همین دلیل برای پیادهسازی معماری فوق حداقل دو دیسک مورد نیاز است و 50 درصد از کل ظرفیت در دسترس برای قرینهسازی و تنها 50 درصد برای ذخیرهسازی دادهها در دسترس قرار دارد. به عنوان مثال، سروری با دو هارد دیسک میتواند دادههایی را به اندازه یک دیسک ذخیرهسازی کند. با RAID 1، اگر درایو اصلی از کار بیفتد، سیستم باز هم میتواند از طریق درایو پشتیبان به کار ادامه دهد.
- RAID 3 یا 4: معماری فوق مبتنی بر عملیات موازی همراه با توازن اختصاصی هستند. این سطح RAID شامل سه یا چند دیسک با دادههای توزیع شده در بین دیسکها است. در معماریهای فوق یک دیسک اختصاصی برای ذخیره اطلاعات توازن استفاده میشود، بنابراین ظرفیت ذخیرهسازی آرایهای از دیسکها کاهش مییابد. در معماری فوق، اگر یک دیسک از کار بیفتد، با استفاده از اطلاعات توازن امکان بازیابی اطلاعات وجود دارد.
- RAID 5: معماری مبتنی بر دیسکهای موازی با توازن توزیع شده یکی از پر استفادهترین گزینهها در دنیای حرفهای و به ویژه بانکهای اطلاعاتی است. این سطح رید سه یا چند دیسک را به گونهای ترکیب میکند که از دادهها در برابر از بین رفتن یک دیسک محافظت میکند. معماری فوق شبیه به RAID 3 است، اما توازن در سراسر آرایه توزیع میشود. به این ترتیب، کل دیسک برای ذخیره بیتهای توازن رزرو نمیشود.
- RAID 6: معماری دیسکهای موازی همراه با توازن دوگانه، چهار یا چند دیسک را به گونهای ترکیب میکند که از دادهها در برابر از دست رفتن محافظت میکند و در مقایسه با رید 5، توانایی خرابی دو دیسک را دارد. اینکار با افزودن یک بلوک توازن اضافی به RAID 5 انجام میشود. هر یک از بلوکهای توازن در آرایه توزیع میشوند، بنابراین توازن به درایو خاصی اختصاص داده نمیشود.
- RAID 1+0: رید فوق که از اصطلاح RAID 10 نیز برای توصیف آن استفاده میشود، دو مکانیزم قرینهسازی RAID 1 و مکانیزم نوشتن موازی RAID 0 را به خدمت میگیرد تا دستیابی به سرعت بالا را همزمان با محافظت از دادهها ارائه کند. به همین دلیل از اصطلاح "1+0" برای توصیف آن استفاده میشود. یک آرایه RAID 1+0 به حداقل چهار درایو نیاز دارد: دو درایو برای قرینهسازی استفاده میشود و دو درایو دیگر برای ذخیرهسازی دادهها به شکل موازی مورد استفاده قرار میگیرند.
- RAID 0+1: این سطح رید درست برعکس حالت قبل RAID 1+0 است. در معماری فوق، مکانیزم موازیسازی عملیات ورودی و خروجی به شکل قرینه پیادهسازی میشود. یک آرایه RAID 0+1 به حداقل چهار درایو نیاز دارد که دو درایو برای قرینهسازی و تکثیر دادهها استفاده میشود.
9. استفاده از خوشهبندی (Clustering) و متعادلسازی بار (Load Balancing)
در شرایطی که RAID فناوری قدیمی به شمار میرود، اما یکی از بهترین فناوریها برای محافظت از دادهها است که هنگامی که با پشتیبانگیری از دادهها ترکیب شود، بالاترین سطح محافظت از دادهها را ارائه میکند، اما گاهی مجبور هستیم عملکرد چند سیستم را با یکدیگر ترکیب کنیم. اتصال چند کامپیوتر برای کار با یکدیگر به عنوان یک سرور واحد به عنوان خوشهبندی شناخته میشود. سیستمهای خوشهای از پردازش موازی استفاده میکنند تا عملکرد و دسترسپذیری بهبود پیدا کند و دستیابی به افزونگی فراهم شود. البته عیبی که روش فوق دارد این است که هزینهها را افزایش میدهد.
دسترسپذیری بالا را میتوان از طریق متعادلسازی بار (Load Balancing) بهدست آورد. رویکرد فوق به شما امکان میدهد حجم کار را میان چند رایانه تقسیم کنید. این رایانهها به طور معمول، سرورهایی هستند که به درخواستهای مبتنی بر پروتکل HTTP پاسخ میدهند. در اصطلاح تخصصی به این تکنیک مزرعه سرور (Server Farm) گفته میشود. در این روش نیاز نیست سرورها در یک مکان واحد قرار بگیرند و میتوانند در موقعیتهای جغرافیایی مختلف باشند. این روش دو مزیت دارد. اول آنکه از دادهها در برابر خرابیها محافظت میکند و دوم آنکه دسترسی به اطلاعات را آسان میکند.
در مقالهی آینده مبحث فوق را ادامه میدهیم.