برای اطمینان از این که دادههای ذخیرهشده در پایگاه داده، فایلها یا کشها دچار تغییر یا دستکاری نشدهاند، به طور مداوم یکپارچگی آنها بررسی میشود. این کار با محاسبه یک هش رمزنگاری (SHA-256) از هر رکورد حساس و ذخیره آن در یک جدول جداگانه انجام میگردد. همچنین، از سیستمهای فایل با ویژگیهای یکپارچگی (مانند ZFS یا NTFS با سرویسهای یکپارچگی) استفاده میشود. هر بار که داده خوانده میشود، هش آن دوباره محاسبه شده و با مقدار ذخیره شده مقایسه میگردد. در صورت عدم تطابق، داده خراب شده محسوب شده و عملیات با خطا مواجه میشود.
سیستم قابلیت تشخیص تغییر یا دستکاری غیرمجاز در دادههای ذخیرهشده را دارد؛ به محض اینکه یکپارچگی یک رکورد نقض شود (مثلاً به دلیل حمله بدافزار یا خرابی سختافزار)، سیستم بلافاصله هشدار بحرانی صادر کرده و دسترسی به آن رکورد را مسدود میکند. همچنین، تلاش برای دستکاری عمدی (مانند تغییر مستقیم فایل پایگاه داده) از طریق سیستمهای تشخیص نفوذ فایل (FIM) نیز شناسایی میشود. تمام رویدادهای نقض یکپارچگی در لاگ امنیتی ثبت و به صورت خودکار به تیم واکنش به حادثه ارجاع داده میشوند.
برای مقابله با حملات Brute-force و دیکشنری، سیاستی اعمال شده است که در صورت وقوع تعداد معینی تلاش ناموفق متوالی در احراز هویت، مکانیزمهای حفاظتی فعال شوند. این مکانیزمها عبارتند از: پس از ۳ تلاش ناموفق، تأخیر ۵ ثانیهای بین پاسخها؛ پس از ۵ تلاش ناموفق، قفل موقت حساب به مدت ۱۵ دقیقه؛ و پس از ۱۰ تلاش ناموفق، قفل دائمی حساب تا مداخله مدیر امنیت. همچنین، تلاشهای ناموفق از یک آیپی واحد منجر به مسدود شدن موقت آن آیپی برای همه کاربران میشود. تمام این رویدادها لاگ میشوند.
برای جلوگیری از نشت اطلاعات حساس از طریق عملیات خروجی (Export) مانند دانلود گزارش، پشتیبانگیری یا اشتراکگذاری، صادرات دادههای کاربران تنها در شرایط شدیداً کنترلشده و با تأیید صریح کاربر و ثبت در لاگ مجاز شمرده شده است. به عنوان مثال، کاربر عادی نمیتواند بیش از ۱۰۰۰ رکورد را یکجا خروجی بگیرد و برای خروج دادههای حساس، حتماً باید با یکی از روشهای احراز هویت قوی (مانند 2FA) تأیید هویت کند. همچنین، تمام درخواستهای خروج داده در یک لاگ ممیزی ثبت شده و در صورت مشاهده الگوی مشکوک (مانند خروجی مکرر)، سیستم به طور خودکار آن کاربر را موقتاً مسدود میکند.
علاوه بر اعمال مجوز، فرآیندهای استخراج داده با محدودیتهای فنی نیز محصور شدهاند. تنها دادههایی که بر اساس نقش کاربر و برچسب حساسیت (Data Classification) مجاز به خروج هستند، قابل صادرات خواهند بود. قالب خروجی نیز از پیش تعریف شده (مثلاً CSV فاقد ماکرو) و امکان درخواست قالب دلخواه وجود ندارد. همچنین، محدودیت نرخ (Rate Limit) اعمال شده است: هر کاربر حداکثر ۵ درخواست خروج در ساعت و حداکثر ۱۰۰۰ رکورد در هر درخواست. در صورت خروج دادههای بسیار حساس، یک کارمند معتمد (Data Steward) باید درخواست را تأیید کند.
به منظور جلوگیری از دسترسی غیرمجاز به دادههای باقیمانده در حافظه (مانند رم، دیسک یا کش) پس از پایان یک نشست یا آزادسازی یک منبع، سیستم به طور خودکار تمام اطلاعات حساس را پیش از تخصیص مجدد به کاربر دیگر پاکسازی میکند. این کار با بازنویسی بلاکهای حافظه با مقادیر تصادفی یا صفر انجام میشود و از نشت اطلاعات از طریق بازیابی دادههای از پیش ذخیرهشده جلوگیری میکند.
با توجه به اینکه دادههای دریافتی از موجودیتهای خارجی ممکن است حاوی مشخصههای امنیتی دستکاریشده باشند، سیستم صحت و یکپارچگی این مشخصهها (مانند برچسب محرمانگی) را پیش از پذیرش تأیید میکند. در صورت عدم تطابق یا دستکاری، دادهها رد شده و رویداد در لاگ امنیتی ثبت میشود. این کنترل از ورود دادههای جعلی به جریان پردازش اصلی جلوگیری میکند.
به منظور تضمین یکپارچگی مشخصههای امنیتی در طول فرآیند ورود، سیستم از تغییر نکردن این مشخصهها (مانند سطوح مجوز یا ردهبندی امنیتی) اطمینان حاصل میکند. هرگونه تلاش برای ارتقای سطح دسترسی از طریق تزریق مشخصههای جعلی، توسط لایه اعتبارسنجی شناسایی و مسدود میگردد. همچنین، کلیه دادههای ورودی از کانالهای امن (مانند TLS) دریافت میشوند.
به منظور حفظ سازگاری مشخصههای امنیتی در کل چرخه حیات داده، سیستم مکانیزمی را پیادهسازی کرده است که هر داده ورودی را با سیاستهای امنیتی داخلی تطابق میدهد. در صورت مغایرت، داده به بخش قرنطینه هدایت شده و به مدیر امنیت هشدار داده میشود. این اقدام از آلودگی دادههای معتبر با ورودیهای نامعتبر جلوگیری میکند.
به منظور جلوگیری از دسترسی به کلیدهای منقضی یا بلااستفاده، پس از پایان عمر یک کلید رمزنگاری (مانند انقضای گواهی، چرخش کلید یا حذف کاربر)، کلید به صورت کامل از حافظه و رسانههای ذخیرهسازی پاکسازی میشود. این پاکسازی با بازنویسی چندباره (حداقل ۳ بار با الگوهای تصادفی) انجام شده و هیچ اثری از کلید در بکآپها یا فایلهای سیستمی باقی نمیماند. لاگ تخریب کلید به مدت ۱۰ سال نگهداری میشود.
به منظور حفاظت از دادههای حساس در حالت ذخیره (Data at Rest)، الگوریتم AES-256 در حالت GCM (Galois/Counter Mode) به کار گرفته شده است که هم محرمانگی و هم یکپارچگی را تأمین میکند. کلید رمزگذاری از یک کلید اصلی مشتق شده (Key Derivation Function) با استفاده از PBKDF2 و حداقل ۱۰۰٬۰۰۰ تکرار به دست میآید. دادههای رمزگذاریشده همچنین دارای یک تگ احراز اصالت هستند.
به منظور ذخیرهسازی امن رمزهای عبور و تأیید یکپارچگی دادهها، برای درهمسازی رمزهای عبور از الگوریتم bcrypt با عامل هزینه (cost factor) ۱۲ استفاده میشود. برای امضای دیجیتال و تأیید یکپارچگی دادهها، از SHA-512 با طول خروجی ۵۱۲ بیت بهره گرفته میشود. تمام عملیات درهمسازی با استفاده از کتابخانه رمزنگاری معتبر (OpenSSL 3.x) و با مقاومت در برابر حملات زمانبندی (timing attacks) پیادهسازی شده است.
برای آنکه اطمینان حاصل شود هر درخواست دسترسی به یک منبع (مانند فایل، رکورد پایگاه داده، یا API) تنها در صورتی مجاز است که هویت و مجوزهای درخواستکننده با سیاستهای از پیش تعریفشده مطابقت داشته باشد، سیاستهای کنترل دسترسی به صورت دقیق و مبتنی بر نقش (RBAC) و در موارد حساس مبتنی بر صفت (ABAC) اعمال شده است. این سیاستها در لایه میانی (Middleware) و در مقابل هر درخواست ورودی اجرا میشوند. دسترسی پیشفرض «رد» بوده و تنها دسترسیهایی که صریحاً تعریف شدهاند مجاز میباشند. همچنین، برای منابع دینامیک (مانند فایلهای آپلودی) از فهرست کنترل دسترسی (ACL) استفاده میشود.
برای اطمینان از اینکه پس از بروز خطا یا قطعی، هیچ داده ممیزی از دست نمیرود و توالی رویدادها قابل بازسازی است، سیستم به قابلیت بازیابی امن لاگها مجهز شده است. این قابلیت شامل: همگامسازی خودکار لاگها پس از بازگشت به حالت عادی، بازسازی ترتیب رویدادها بر اساس زمانهای دقیق (با استفاده از NTP و منطق اعتماد به زمان)، و اعتبارسنجی یکپارچگی لاگهای بازیابی شده با استفاده از امضای دیجیتال میباشد. همچنین، به صورت دورهای از لاگها بکاپ آفلاین تهیه میشود که در مکانی جداگانه نگهداری میگردد.
برای حفاظت از محرمانگی، یکپارچگی و اصالت دادههای حساس در حالت ذخیره و انتقال، عملیات رمزنگاری با الگوریتمهای استاندارد و ایمن استفاده میشود. رمزگذاری متقارن با AES-256 در حالت GCM (که هم محرمانگی و هم یکپارچگی را فراهم میکند) برای دادههای در حال استراحت (Data at Rest) به کار میرود. برای تبادل کلید از RSA با طول ۳۰۷۲ بیت یا ECDH با منحنیهای استاندارد استفاده میگردد. درهمسازی (هش) برای رمزهای عبور با bcrypt (عامل هزینه ۱۲) و برای یکپارچگی دادهها با SHA-512 انجام میشود. کلیه عملیات رمزنگاری از طریق کتابخانههای معتبر مانند OpenSSL 3.0 و با مدیریت امن کلیدها (با استفاده از HSM یا سرویسهای مدیریت کلید ابری) انجام میپذیرد.
با توجه به نقش کلیدها در امنیت رمزنگاری، کلیدهای رمزنگاری (مانند کلیدهای RSA، ECDSA و AES) با استفاده از یک مولد اعداد تصادفی رمزنگاری قوی (CSPRNG) که استاندارد NIST SP 800-90A را رعایت میکند، تولید میشوند. طول کلیدها طبق استانداردهای بروز انتخاب شده است: RSA حداقل ۳۰۷۲ بیت، ECC حداقل ۲۵۶ بیت، AES حداقل ۲۵۶ بیت. کلیدها در یک ماژول سختافزاری امن (HSM) یا سرویس مدیریت کلید ابری (KMS) نگهداری میشوند.
برای آنکه لاگهای امنیتی در برابر حذف، تغییر یا دستکاری توسط مهاجم یا کاربران داخلی محافظت شوند، آنها در یک فضای ذخیرهسازی ایزوله و رمزنگاری شده قرار داده شدهاند. این فضای ذخیرهسازی از سیستم اصلی جدا است (مثلاً یک سرور لاگ مرکزی با دسترسی فقط نوشتنی از سیستمهای مبدأ). فایلهای لاگ با امضای دیجیتال در زمان نوشتن محافظت میشوند و هرگونه تغییر بعدی قابل تشخیص است. همچنین، از ویژگی append-only در سیستم فایل استفاده شده تا هیچ کس (حتی روت) نتواند لاگهای قدیمی را پاک یا تغییر دهد.
با توجه به اینکه خرابی دیسک، کمبود فضا یا حملات DoS ممکن است باعث از بین رفتن لاگها شود، مکانیزمهای متعددی برای جلوگیری از تلف شدن دادههای ممیزی پیادهسازی شده است. این مکانیزمها شامل: ذخیرهسازی افزونه (RAID 10)، تکرار لاگها در دو مرکز داده مجزا، و بافر کردن لاگها به صورت غیرفرار (non-volatile buffer) در هنگام قطعی شبکه میباشد. همچنین، سیستم به طور مداوم فضای ذخیرهسازی را پایش کرده و در صورت کاهش فضا به زیر ۱۰٪، هشدار بحرانی صادر میکند. در بدترین حالت، اگر لاگ نتواند نوشته شود، عملیات حساس سیستم موقتاً متوقف میگردد تا لاک قفل نشود.
برای آنکه در صورت بروز مشکل در ذخیرهسازی لاگها (مانند پر شدن کامل دیسک یا قطع شدن ارتباط با سرور لاگ مرکزی) هیچ شکافی در زنجیره ممیزی ایجاد نشود، سیستم واکنش از پیش تعریف شدهای را اجرا میکند. بسته به شدت رویداد، سیستم میتواند: ۱) حالت fail-closed: تمام عملیات حساس را متوقف کرده و از کاربر میخواهد بعداً تلاش کند، ۲) هشدار لحظهای به مدیر امنیت از طریق ایمیل و پیامک، و ۳) لاگها را به یک حافظه محلی موقت (مانند RAM با باتری پشتیبان) انتقال دهد تا پس از رفع مشکل همگامسازی شوند. این کنترل از ایجاد شکاف در ممیزی جلوگیری میکند.
به منظور افزایش کارایی تحلیل امنیتی، سیستم این قابلیت را فراهم کرده است که مدیر امنیت بتواند لاگها را بر اساس معیارهای دلخواه (مانند بازه زمانی، نوع رویداد، شناسه کاربر یا آیپی مبدأ) فیلتر و جستجو کند. همچنین، امکان مرتبسازی و استخراج خروجی از نتایج جستجو در قالبهای استاندارد (JSON، CSV) وجود دارد. این ویژگی بدون افشای اطلاعات حساس به کاربران غیرمجاز، به تحلیل سریعتر حوادث کمک میکند.