امنيت در ديتابيس‌هاي NoSQL

 

سيستم‌هاي پايگاه داده NoSQL طوري طراحي شده‌است كه بازدهي در لحظه داشته باشد و بتواند با حجم عظيمي از داده كار كند. اين بازدهي كه در اصل پياده‌سازي فلسفه بي‌هزينگي در بيشتر محصولات NoSQL‌بوده است، يكي از عوامل مهم جلب توجه شركت‌ها به آن به‌شمار مي‌رود. هر چند شركت‌ها نبايد پياده‌سازي NoSQL را بدون در نظر گرفتن دغدغه‌هاي امنيتي آن انجام دهند.اين ديتابيس‌هاي NoSQL تفاوت‌هايي اساسي با ديتابيس‌هاي رابطه‌اي (RDBMS) دارند.

چه‌كسي از NoSQL استفاده مي‌كند؟

NoSQL مي‌تواند براي هر شركتي كه داده‌هاي بزرگ دارد، ابزار مهمي باشد. داده‌هاي بزرگ در حقيقت مجموعه‌اي از داده است كه ديگر نمي‌توان به‌صورت لحظه‌اي و از طريق ديتابيس‌هاي سنتي با آنها برخورد كرد.NoSQL مجموعه‌اي بزرگ‌تر از سيستم‌هاي مديريت ديتابيس است و مانند ديگر ديتابيس‌هاي سنتي رابطه‌اي نيست. اين ديتابيس‌ها از SQL به‌عنوان زبان اصلي query استفاده نمي‌كند و نيازي به اسكيماهاي ثابت هر جدول داده ندارد. NoSQL توسط يك شركت تغذيه نمي‌شود و بسياري از آنها منبع‌باز است ؛ در حقيقت NoSQL‌يك واژه كلي است كه به تمام سيستم‌هاي آلترناتيو غير رابطه‌اي اطلاق مي‌شود.در حال حاضر، ديتابيس‌هاي NoSQL در مرحله تكامل است. برخلاف رقباي RDBMS خود مثل DB2 يا MySQL، اوراكل و SQL‌سرور، ميزان حملات به اين نوع سرورها هنوز مشخص نشده است و انتظار مي‌رود حملات به اين نوع ديتابيس‌ها ساختار و شكل متفاوتي داشته باشد.ورود به ديتابيس از طريق تزريق NoSQL نبايد خيلي دور از انتظار باشد. بخش عمده‌اي از پياده‌سازي‌هاي NoSQL بدون احراز هويت و از طريق موتورهاي پردازشي جاوااسكريپت است.البته بخش عمده‌اي از اين ايده را، در كنفرانس كلاه سياه آمريكا، برايان ساليوان مطرح كرد كه با كمك يك اسكريپت در سمت سرور موفق شد به ديتابيس NoSQL‌ نفوذ كند و دستورهاي پايه و اوليه را اجرا كند.

آيا NoSQL ناامن است؟

ديتابيس‌هاي NoSQL با ديدگاه امنيت محض طراحي نشده‌ و اولويت اصلي آن سرعت دسترسي به داده‌هاي بزرگ بوده است. بنابراين توسعه‌دهندگان يا تيم‌هاي امنيتي بايد لايه‌هاي امنيتي خاص خود را به ابزارهاي NoSQL سازماني‌شان اضافه كنند.طي يكي دو سال گذشته، بسياري از مشاغل كوچك وارد قلمرو داده‌هاي بزرگ شده‌اند و به‌دنبال مديريت داده‌ها هميشه در حال افزايش شغلي بوده‌اند؛ بنابراين طبيعي است كه روزانه هدف حملات بيشتر امنيتي قرار بگيرند. آمارهاي شركت‌هاي امنيتي هم همين موضوع را ثابت مي‌كند و هر روز به تعداد اين حملات افزوده مي‌شود.بخشي از اين رويداد به اين موضوع بر مي‌گردد كه اغلب مشاغل كوچكي كه اين ديتابيس‌ها را راه‌اندازي مي‌كنند، از شيوه مديريت امنيت اين گونه جديد اطلاعات كافي ندارند و همين سبب مي‌شود به‌طور كلي تهديدهاي امنيتي را ناديده بگيرند و به‌صورت پيش‌فرض سيستم را نصب كنند. اين در حالي است كه نصب پيش‌فرض در ديتابيس‌هاي رابطه‌اي سنتي با رعايت بسياري از نكات امنيتي همراه است.براي مثال، بيشتر محصولات NoSQL، اجازه مي‌دهد دستورها در محيط معتمد (Trusted Environment) بدون در نظر گرفتن امنيت و هويت فرد اجرا شود و بعضا حتي اين اقدام را توصيه و تشويق نيز مي‌كند.در اين حالت‌ها، تنها ماشين‌هايي خاص مي‌تواند به پورت TCP ديتابيس دسترسي پيدا كند. اما اين كه اجازه بدهيم شبكه‌مان بخش امنيتي را كنترل كند ـ آن هم در جايي كه تقريبا رايانه‌اي را نمي‌توان پيدا كرد كه تا به‌حال به اينترنت وصل نشده باشد ـ يعني دعوت كردن از تهديدهاي امنيتي براي دزديدن اطلاعات اساسي.ماژول‌هاي امنيتي Kerberos هم‌اكنون توسعه يافته ‌است و مي‌تواند رفتاري شبيه NTLM در تشخيص كاربر داشته باشد.

امن‌سازي ديتابيس‌هايNoSQL

به‌دليل آن كه اغلب ديتابيس‌هاي NoSQL منبع‌باز است، كمك به اين جوامع و پياده‌سازي روش‌هاي بهتر امنيتي از سوي شركت‌هايي كه اين سيستم‌ها را پياده مي‌كنند، گزينه بهتري خواهد بود؛ چرا كه در نهايت ايرادهاي آن روش امنيتي مشخص شده وNoSQL ها به مراتب بهتر از گذشته خواهد بود.ديتابيس‌هاي NoSQL همانند ديتابيس‌هاي رابطه‌اي سنتي با دغدغه‌هاي امنيتي مشابهي مواجهند و بهتر است دغدغه‌هاي زير هنگام نصب اين ديتابيس‌ها بررسي شود:

ـ رمزگذاري فيلدهاي حساس ديتابيس

ـ نگهداشتن داده‌هاي بدون رمزگذاري در محيط Sandbox و ايزوله

ـ استفاده مناسب از فيلدهاي ورودي

ـ اجراي سياست‌هاي قوي احراز هويت

البته، حالت ايده‌آل آن موقع خواهد بود كه استانداردي قابل قبول براي ورود به اين گونه سيستم‌ها ايجاد شود و رمزگذاري در اين نوع ديتابيس‌ها، شكل واقعي به‌خود بگيرد. تا رسيدن به مرحله استانداردسازي، بهترين روش براي جلوگيري از مشكلات امنيتي، اعمال كنترل در ميان‌افزار و نه سطح بيروني است. بيشتر نرم‌افزارهاي ميان‌افزاري در حال حاضر از سيستم‌هاي احراز هويت پشتيباني مي‌كنند. براي مثال اگر جاوا در حال استفاده است، JAAS ، گزينه خوبي است J2EE ‌يا SpringSource نيز قابل دسترسي است.مهم‌ترين نكته‌اي كه در پياده‌سازي اين نوع ديتابيس‌ها بايد به‌ياد داشت، اين است كه: پيش از آن كه در استفاده از اين سيستم‌ها عجله شود، بايد دغدغه‌هاي امنيتي را درك سپس راه‌حلي براي آنها پيدا كرد. اين مساله را بايد همواره به ياد داشته باشيم كه ديتابيس‌هاي NoSQL امنيت مطلق ندارد و همانند ديگر سيستم‌هاي نرم‌افزاري، نگه داشتن سپر محافظ براي پيشرفتن در چنين محيطي الزامي است.





تاريخ : چهار شنبه 10 آبان 1391برچسب:, | | نویسنده : مقدم |