عرفان قربانی
عرفان قربانی
خواندن ۳ دقیقه·۲ سال پیش

بررسی Oracle Label Security

یکی از چالش های اکوسیستم IT هر سازمانی مدیریت دسترسی کاربران است. رویکردهای مختلفی برای مدیریت دسترسی کاربران بر اساس نیاز‌های بیزینس توسعه داده‌ شده‌اند. در این پست قصد داریم رویکرد Oracle برای مدیریت دسترسی کاربران به داده‌های مختلف را بررسی کنیم.


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

برای محقق شدن این امر، رویکردهای مدیریت دسترسی مختلفی مطابق با نیازهای کاربران توسعه یافتند. رویکرد Oracle Label Security (OLS) با برچسب زدن رکوردهای داده و کاربران، دسترسی‌ها را مدیریت می‌کند. در OLS با ۳ نوع برچسب سروکار داریم که در ادامه هر کدام را بررسی ‌می‌کنیم.

برچسب Level

این برچسب بر اساس حساسیت، داده‌ها را طبقه‌بندی می‌کند. به عنوان مثال فرض کنید جدول زیر یک Table از داده‌های سازمان سیا باشد.

و هر کدام از رکورد‌های بالا بر اساس حساسیت، محرمانه(Secret) یا فوق محرمانه(Top Secret) برچسب زده می‌شوند. به عنوان مثال رکورد با شماره ۱ محرمانه طبقه‌بندی می‌شود و رکورد ۲ و ۳ فوق محرمانه طبقه‌بندی می‌شوند.

نتیجه اجرای کوئری * Select را توسط دو کاربر A و B به شرح زیر است.

  • کاربر A با برچسب Secret
  • کاربر B با برچسب Top Secret

همانطور که مشاهده می‌شود کاربر A فقط به رکورد‌های داده با برچسب Secret دسترسی دارد و از طرفی کاربر B دسترسی فوق محرمانه(Top Secret) دارد بنابراین علاوه بر رکوردهای Top Secret به رکوردهای Secret دسترسی دارد.

باید در نظر داشت هر سازمان بر اساس نیاز خود اقدام به تعریف levelهای مختلف می‌کند. به عنوان مثالی دیگر ممکن است سازمان بر اساس نیاز خود تصمیم به تعریف ۴ برچسب Public, Confidential, Secret, Top Secret بگیرد.

برچسب Compartment و Group

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

به عنوان مثال برای هر واحد سازمان چند برچسب از نوع Compartment تعریف می‌شود (منابع انسانی، مالی، فروش) و در هر سازمان برای هر موقعیت شغلی چند برچسب از نوع Group تعریف می‌شود(مدیر عامل، مدیر منابع انسانی، مدیر فروش، مدیر مالی و غیره)

تفاوت دیگر این دو برچسب است در نحوه دسترسی است که در مثال‌های زیر توضیح داده می‌شود.

بدیهی است که در یک سازمان داده‌های مربوط به واحد مالی نباید در اختیار واحد دیگری قرار بگیرد پس تنها کاربرانی می‌توانند به رکورد‌های واحد مالی دسترسی پیدا کنند که برچسب «واحد مالی» را در اختیار داشته باشند. به عنوان مثالی دیگر اگر رکورد داده‌ای شامل دو برچسب «واحد فروش» و «واحد منابع انسانی» باشد آنگاه یک کاربر برای دسترسی به این رکورد باید هر دو برچسب «واحد فروش» و «واحد منابع انسانی» را در اختیار داشته باشد.

از طرفی دیگر در برچسب‌های Group اگر بر روی رکوردی برچسب‌های «مدیر فروش» و «مدیر منابع انسانی» درج شده باشد، کاربر برای دسترسی به این رکورد باید حداقل به یکی از دو برچسب یاد شده(مدیر فروش / مدیر منابع انسانی) دسترسی داشته باشد یا اینکه برچسب دسترسی بالاتر(در این مثال برچسب «مدیر عامل») را در اختیار داشته باشد.

ترکیب برچسب‌ها

در زیر نمونه‌هایی از ترکیب این برچسب‌ها را مشاهده می‌شود. ترکیب S:A,B:US برچسب Level با مقدار Sensitive، برچسب Compartment با مقادیر A و B و در نهایت برچسب Group با مقدار US است.





oracleاوراکلolsoracle label securitysecurity
به سوی چالش و فراتر از آن
شاید از این پست‌ها خوشتان بیاید