رفع آسیب پذیری احراز اصالت در MongoDB

دسته بندی: امنیت
mongo DB

   مقدمهای بر MongoDB

MongoDB یک دیتابیس متن­ باز و رایگان و از نوع دیتابیس­ های NoSQLمی­ باشد. در این­گونه دیتابیس ­ها از ساختار سنتی دیتابیس­ های معمول که بر اساس جداول می­باشند، استفاده نمی­شود بلکه اطلاعات به شکل اسناد (documents) و به صورت یک زوج از رشته و مقدار (field & value) مانند JSON ذخیره می­شوند. در مثال زیر، یک نمونه از اطلاعات ذخیره شده در دیتابیس MongoDB نشان داده شده است که طبق الگوی field:value مقداردهی شده ­اند:

{
name: “sue”, 
age: 26,
status: “A”,
groups: [ “news”, “sports” ]
}

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

MongoDB ابتدا در سال 2007 توسط کمپانی نرم­افزاری 10gen طراحی و توسعه یافت. در سال 2009 این کمپانی مدل متن­باز این دیتابیس را توسعه داد. ضمناً در سال 2013 کمپانی 10gen نام خود را به MongoDB تغییر داد.

  آسیب ­پذیری عدم انجام عملیات احراز اصالت

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

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

در بسیاری از دیتابیس­های مبتنی بر Mongo DBبا وجود مکانیزم احراز اصالت، این مورد مهم فعال نمی­باشد. در نتیجه می­توان به راحتی به این دیتابیس متصل شد و اطلاعات مربوط به آن را استخراج کرد.

MongoDB از مکانیزم­های احراز اصالت زیر پشتیبانی می­کند:

 (challenge and response mechanism (MONGODB-CR –

 x509 certificate authentication –

 LDAP proxy authentication –

 Kerberos authentication –

البته مکانیزم LDAP فقط هنگامی که MongoDB بر روی سیستم­ عامل لینوکس نصب شده باشد، قابل استفاده می­باشد و اگر  MongoDB بر روی ویندوز نصب شده باشد، نمی­توان از آن استفاده کرد.

 فعال­سازی مکانیزم احراز اصالت

در ادامه نحوه فعال کردن مکانیزم احراز اصالت برای MongoDB پس از ساخت یک کاربر به عنوان administrator بیان شده است. در این حالت ابتدا یک کاربر به عنوان administrator ساخته می­شود و پس از آن مکانیزم احراز اصالت فعال می­شود. بعد از این مرحله می­توان با کاربر administrator به MondoDB احراز اصالت شد و کاربران جدید با دسترسی ­های مشخص تعریف کرد.

این روش زمانی مفید است که ساخت اولین کاربر بر روی MongoDB نیازی به احراز اصالت قبل از reset کردن MongoDB نداشته باشد. روش انجام این کار بدین صورت است:

1- راه ­اندازی MongoDB بدون احراز اصالت:

mongod –port 27017 –dbpath /data/db1

2- ساخت کاربر با سطح دسترسی مدیر: در مثال زیر کاربر siteUserAdmin در دیتابیس admin ساخته شده است:

use admin

db.createUser(

  {

    user: "siteUserAdmin",

    pwd: "password",

    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]

  }

)

1- شروع مجدد MongoDB ضمن فعال بودن مکانیزم احراز اصالت: در مثال زیر مکانیزم احراز اصالت با استفاده از تنظیمات دستوری authorization فعال شده است:

mongod –auth –config /etc/mongodb/mongodb.conf

2- ساخت حساب­های کاربری دیگر: در این مرحله می­توان با کاربر مدیر وارد و احراز اصالت شد و دیگر کاربران را تعریف کرد.

برای وارد شدن به محیط دستوری MongoDB از راه دور، می­توان از دستور زیر استفاده کرد:

 mongo ip_address_of_mongo_server $

اگر هنگام وارد شدن به محیط دستوری MongoDB هیچ رمز عبوری درخواست نشد، مکانیزم احراز اصالت روی آن فعال نشده است. MongoDB به صورت پیش فرض بر روی پورت 27017 فعال می­باشد و از دیتابیس test استفاده می­کند.

 

 

برچسب ها:
امتیاز شما

مایلید هر دو هفته یک ایمیل مفید دریافت کنید؟

ما را در شبکه‌های اجتماعی دنبال کنید

همچنین شاید دوست داشته باشید!

نظرات کاربران

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.
شما برای ادامه باید با شرایط موافقت کنید

فهرست