930 likes | 1.23k Views
مدلهای کنترل دسترسی اجباری (MAC). رسول جلیلی jalili@sharif.edu. ضعف کنترل دسترسی اختیاری. عدم امکان کنترل انتشار اطلاعات توسط عاملهای دیگر علی صاحب فایل A ، اجازه خواندن را به حسن می دهد حسن فایل A را می خواند و در فایل B می نویسد
E N D
مدلهای کنترل دسترسی اجباری (MAC) رسول جلیلی jalili@sharif.edu
ضعف کنترل دسترسی اختیاری • عدم امکان کنترل انتشار اطلاعات توسط عاملهای دیگر • علی صاحب فایل A، اجازه خواندن را به حسن می دهد • حسن فایل A را می خواند و در فایل B می نویسد • علی دیگر هیچ کنترلی روی B (حاوی اطلاعات A) ندارد. • عدم امکان کنترل جریان اطلاعات از یک شیئ به شیئ دیگر • با فرض معتمد بودن عامل ها • به نرم افزارها نمی توان اعتماد کرد • احتمال وجود اسب تروا (Trojan Horse) s خواندن o1 فوق سری نوشتن سری جریان اطلاعات محرمانه خواندن o2 عادی
ضعف کنترل دسترسی اختیاری احتمال وجود اسب تروا (Trojan Horse)
کنترل دسترسی اجباری • کنترل دسترسی عامل ها به اشیاء بر اساس سطوح امنیتی آنها و قواعد ثابت • مدل های حفظ محرمانگی • مدل BLP • مدل های حفظ صحت • مدل Biba • مدل های خاص پایگاه داده ها • مدل Sea-View • مدل Jajodia & Sandhu • مدل Smith & Winslett
مدل BLP • ارائه شده به وسيلة Bellو Lapadulaدر سال 1976 • توسعهيافتة مدل ماتريس دسترسي براي حفظ امنیت چند سطحی • مناسب برای محیط های نظامی • عامل ها و اشیاء دارای سطح امنیتی (سطح محرمانگي) • هر سطح امنيتي با دو جزء مشخص ميگرددL=(C, S): • C: رده (classification) • S: رسته (category) رسته، معرف سازمان يا كاربرد است (مانند ناتو، هستهاي).
مدل BLP -2 • مبتني بر مفهوم عامل / شئ است: • عاملها، اجزاي فعال بوده و عمليات را اجرا ميكنند. • اشياء، اجزاي غيرفعال بوده و داراي اطلاعات هستند. • حالات دسترسي: • فقط خواندن (يا خواندن) = R • الحاق (نوشتن بدون خواندن) = A • اجرا (اجراي يك شئ يا برنامه) = E • نوشتن - خواندن (يا نوشتن) = W
مدل BLP -3 • سطوح ردهبندي عاملها (يا برنامهها) و اشياء (يا منابع): • خيلي سري يا TS (مخفف Top Secret) • سري يا S (مخفف Secret) • محرمانه يا C (مخفف Confidential) • بدون رده يا U (مخفف Unclassified) • رابطه تفوق (dominance): مقایسه دو سطح امنيتي (L1 = (C1, S1 و (L2 = (C2, S2 L1 L2 C1 C2 S1 S2 • سطوح امنيتی بر اساس رابطه ترتيب جزئي تفوق (≥) تشکيل يک شبکه (Lattice) مي دهند. • اگر هیچ یک از دو رابطه زیر برقرار نبود، دو سطح را غیر قابل مقایسه می نامیم: L1 L2 و یا L1≤ L2
مدل BLP -4 حالت سيستم به كمك 4تايي (b, M, f, H) بيان ميشود كه: • b: مجموعة حالتهاي دسترسي فعلي (s, o, m) • M: ماتريس دسترسي M[s,o] ، مانند مدل ماتريس دسترسي بیانگر مجموعه حالات مجاز • f: تابع تعيين سطح كه به هر عامل و شئ سيستم، يك سطح امنيتي متناظر ميكند.f: O S L fs: سطح امنیتی اصلی عامل fc: سطح امنیتی فعلی عامل fo: سطح امنیتی شیئ • H: سلسلهمراتب فعلي اشياء
اعمال مدل BLP -1 • وضعیت سیستم با اجرای اعمال تغییر می کند. • با اجرای یک عمل بروی حالت (b, M, f, H) یک گذر به حالت (b’, M’, f’, H’) بوجود می آید که حداقل در یک جزء با حالت مبدا متفاوت است. • انواع اعمال مختلف: • تغییر بروی b: • Get Access: برای مقدار دهی اولیه به یک شیئ در حالت دسترسی درخواست شده • Release Access: برای اختتام دسترسیداده شده توسط get • تغییر روی M: • Give Access: برای اعطای یک حالت دسترسی بروی یک شیئ به یک عامل • Rescind Access: برای بازپس گیری یک حالت دسترسی از یک عامل بروی یک شیئ (بازپس گیری حالت دسترسی داده شده به عامل توسط Give)
اعمال مدل BLP -2 • انواع اعمال مختلف: • تغییر بروی H: • Create Object: برای اضافه کردن اشیای غیر فعال به سلسله مراتب اشیاء • برای یک شیئ دو حالت می تواند وجود داشته باشد: • شیئ وجود دارد ولی غیر فعال است. در نتیجه بعضی دسترسی ها روی آن ممکن نیست • شیئ وجود دارد و فعال است. در نتیجه در سلسله مراتب اشیاء وجود دارد و قابل دسترسی است. • Delete Object: برای غیر فعال کردن شیئ فعال است. عکس عمل Create است. • تغییر روی M: • Change subject security level: برای تغییر سطح امنیتی جاری f یک عامل. • اجرای این عمل، در f، سطح امنیتی جدید را به عامل مربوطه، مرتبط می کند. • Change object security level: برای تغییر سطح امنیتی یک شیئ. • این عمل تنها می تواند بروی اشیای غیر فعال اجرا گردد و سطح جدید امنیتی را به شیئ مربوطه در f مرتبط می کند.
قواعد مدل BLP -1 (1) قاعدة سادة امنيتي (SS): يك عامل، مجوز مشاهده (خواندنR يا نوشتنW) يك شئ را دارد فقط اگر سطح امنيتي اصلی عامل، بزرگتر يا مساوي سطح امنيتي شئ باشد. < s, o, r/w > b fs(s) fo(o) s فوق سری مشاهده سری محرمانه o عادی
قواعد مدل BLP -2 (2) قاعدة ستاره (*): يك عامل،اگر امکان مشاهده شیئ o1 و تغییر شیئ o2 را داشته باشد، آنگاه باید: fo(o2) fo(o1) مثال نقض: s مشاهده o1 فوق سری تغییر جریان اطلاعات سری محرمانه o2 عادی
قواعد مدل BLP -3 (2) ادامة قاعدة ستاره (*): • يك عامل، مجوز الحاق (A) يك شئ را دارد فقط اگر سطح امنيتي فعلی عامل، كوچكتريا مساوي سطح امنيتي شئ باشد.fc(s) fo(o) • يك عامل، مجوز نوشتن (W) يك شئ را دارد فقط اگر سطح امنيتي فعلی عامل، مساوي سطح امنيتي شئ باشد.fc(s) = fo(o) • يك عامل، مجوز خواندن (R)يك شئ را دارد فقط اگر سطح امنيتي فعلی عامل، بزرگتريا مساوي سطح امنيتي شئ باشد.fc(s) fo(o)
قواعد مدل BLP -4 (3) قاعدة آرامش(Tranquility principle): هیچ عاملی نمی تواند رده (classification) یک شیئ را تغییر دهد (هرچند این قاعده در نسخه های بعدی حذف گردید.) (4) قاعدة کنترل دسترسی اختیاری (DS): هر دسترسی فعلی، بايد طبق ماتريس دسترسي، مجاز باشد. < s, o, m > b m M[s, o]
خلاصه ای از مدل BLP به طور خلاصه و ساده: • عامل از اشياي با سطوح امنيتي پايينتر يا مساوي خود، ميخواند(مشاهده). No Read Up • عامل در اشياي با سطوح امنيتي بالاتر يا مساوي خود، مينويسد (تغییر). No Write Down
مدل Biba • مدل BLP: صرفاً حفظ محرمانگی • نیاز به حفظ صحت داده ها در مقابل تغییرات غیرمجاز • مدل ارائه شده توسط Biba در سال 1977 • مبانی مدل Biba مشابه مدل BLP است.
مدل Biba -2 • عامل ها و اشیاء دارای سطح صحت • هر سطح صحت با دو جزء مشخص ميگرددL=(C, S): • C: رده (classification) • S: رسته (category) رسته، معرف سازمان يا كاربرد است (مانند ناتو، هستهاي) • سطح صحت عامل: ميزان اعتماد به فرد (عامل) در عدم تغيير ناصحيح داده هاي يك شيئ • سطح صحت شيئ: ميزان اعتماد به داده هاي يك شيئ و ميزان خسارت ناشي از تغيير غيرمجاز در داده هاي آن
مدل Biba-3 • سطوح ردهبندي صحت عاملها (يا برنامهها) و اشياء (يا منابع): • حياتي يا C (مخفف Crucial) • خيلي مهم يا VI (مخفف Very Important) • مهم يا I (مخفف Important) • رابطه تفوق (dominance): مقایسه دو سطح صحت (L1 = (C1, S1 و (L2 = (C2, S2 L1 L2 C1 C2 S1 S2 • سطوح امنيتی بر اساس رابطه ترتيب جزئي تفوق (≥) تشکيل يک شبکه (Lattice) مي دهند. • اگر هیچ یک از دو رابطه زیر برقرار نبود، دو سطح را غیر قابل مقایسه می نامیم: L1 L2 و یا L1≤ L2
مدل Biba -4 • مبتني بر مفهوم عامل / شئ است: • عاملها، اجزاي فعال بوده و عمليات را اجرا ميكنند. • اشياء، اجزاي غيرفعال بوده و داراي اطلاعات هستند. • حالات دسترسي: • تغيير (Modify): نوشتن داده ها در يك شيئ • ارتباط (Invoke): ارتباط يك عامل با عامل ديگر • مشاهده(Observe): خواندن داده هاي يك شيئ
اصول یا خط مشیهای اجباری در مدل Biba -1 • مدل شامل تعدادي خط مشي • خط مشي آب نشان پايين براي عامل ها (Low Watermark Policy for Subjects) • خط مشي آب نشان پايين براي اشياء (Low Watermark Policy for Objects) • خط مشي آب نشان پايين بازنگری صحت(Low Watermark integrity audit Policy) • خط مشی حلقه(Ring Policy) • خط مشي حفظ صحت سختگيرانه (Strict Integrity Policy) • هر خط مشي شامل تعدادي اصول موضوعه
اصول یا خط مشیهای اجباری در مدل Biba -2 (1) خط مشي نشان آب پايين براي عامل ها (1 از 3) • تغيير: يك عامل، مجوز تغيير يك شئ را دارد فقط اگر سطح صحت عامل، بزرگتر يا مساوي سطح صحت شئ باشد. I(s) I(o) s حياتي تغيير خيلي مهم مهم o عادی
اصول یا خط مشیهای اجباری در مدل Biba -3 (1) خط مشي نشان آب پايين براي عامل ها (2 از 3) • اجرا: يك عامل، مجوز اجرا (فراخوانی) يك عاملديگر را دارد فقط اگر سطح صحتعامل اول بزرگتر يا مساوي سطح صحتعامل دوم باشد. I(s1) I(s2) s1 حياتي اجرا (فراخوانی) خيلي مهم مهم s2 عادی
s s اصول یا خط مشیهای اجباری در مدل Biba -4 (1) خط مشي آب نشان پايين براي عامل ها (3 از 3) • مشاهده: يك عامل، مجوز مشاهده هرشيئي را دارد به شرط آنكه پس از مشاهده، سطح عامل به بزرگترين سطح پائين (GLB) سطوح عامل و شيئ تقليل يابد. Inew(s) = GLB [ Iold(s), I(o) ] حياتي مشاهده خيلي مهم مهم o عادی
اصول یا خط مشیهای اجباری در مدل Biba -5 (2) خط مشي آب نشان پايين براي اشياء (1 از 3) • تغيير: يك عامل، مجوز تغيير هرشيئي را دارد به شرط آنكه پس از تغيير، سطح شيئ به بزرگترين سطح پائين (GLB) سطوح عامل و شيئ تقليل يابد. Inew(o) = GLB [ I(s), Iold(o) ] o o حياتي تغيير خيلي مهم مهم s عادی
اصول یا خط مشیهای اجباری در مدل Biba -6 (2) خط مشي نشان آب پايين براي اشياء (2 از 3) • اجرا: يك عامل، مجوز اجرا (فراخوانی) يك عاملديگر را دارد فقط اگر سطح صحتعامل اول بزرگتر يا مساوي سطح صحتعامل دوم باشد. I(s1) I(s2) s1 حياتي اجرا (فراخوانی) خيلي مهم مهم s2 عادی
s اصول یا خط مشیهای اجباری در مدل Biba -7 (2) خط مشي نشان آب پايين براي اشياء (3 از 3) • مشاهده: يك عامل، مجوز مشاهده يك شئ را دارد فقط اگر سطح صحت عامل، كوچكتر از سطح صحت شئ باشد. I(o) I(s) o حياتي خيلي مهم مشاهده مهم عادی
اصول یا خط مشیهای اجباری در مدل Biba -8 (3) خط مشي نشان آب پايين صحت با ثبت Low-Watermark Integrity Audit Policy(1 از 1) • تغییر: یک عامل می تواند هر شیئ در هر سطحی از صحت را تغییر دهد. • اگر یک عامل یک شیئ در را در سطح صحت بالاتر و یا غیر قابل مقایسه تغییر دهد، تنها در سیستم ثبت(Audit) ثبت گردد.
اصول یا خط مشیهای اجباری در مدل Biba -9 (4) خط مشي حلقه(1 از 1) سطح صحت ثابت. • تغییر: يك عامل، مجوز تغییر يك شئ را دارد فقط اگر سطح صحت عامل، بزرگتر از سطح صحت شئ باشد. I(s) I(o) • اجرا: يك عامل، مجوز اجرای روی عامل دیگر را دارد فقط اگر سطح صحت عامل اول ، کوچکتر از سطح صحتعامل دوم باشد. I(s2) I(s1) • مشاهده: يك عامل، مجوز مشاهده يك شئ را در هر سطحی دارد.
اصول یا خط مشیهای اجباری در مدل Biba -8 (5) خط مشي حفظ صحت سختگيرانه (1 از 3) • خصوصيت ستاره (*) صحت: يك عامل، مجوز تغييريك شئ را دارد فقط اگر سطح صحت عامل، بزرگتر يا مساوي سطح صحت شئ باشد. I(s) I(o) s حياتي تغيير خيلي مهم مهم o عادی
اصول یا خط مشیهای اجباری در مدل Biba -9 (5) خط مشي حفظ صحت سختگيرانه (2 از 3) • خصوصيت اجرا: يك عامل، مجوز اجرا (فراخوانی) يك عاملديگر را دارد فقط اگر سطح صحتعامل اول بزرگتر يا مساوي سطح صحتعامل دوم باشد. I(s1) I(s2) s1 حياتي اجرا (فراخوانی) خيلي مهم مهم s2 عادی
s اصول یا خط مشیهای اجباری در مدل Biba -10 (5) خط مشي حفظ صحت سختگيرانه (3 از 3) • خصوصيت ساده صحت: يك عامل، مجوز مشاهدهيك شئ را دارد فقط اگر سطح صحت عامل، كوچكتر از سطح صحت شئ باشد. I(o) I(s) o حياتي خيلي مهم مشاهده مهم عادی
خط مشی های اختیاری مدل Biba-1 • لیست های کنترل دسترسی • به هر شیئ یک لیست کنترل دسترسی اختصاص می یابد که نشان دهنده عامل ها و حالات دسترسی ای است که می توانند به آن شیئ دسترسی پیدا نمایند. • این لیست می تواند توسط عامل هایی که دارای حق modifyبروی ACL مربوطه هستند تغییر نماید. • سلسله مراتب اشیاء • اشیاء به صورت سلسله مراتبی بوسیله یک درخت ریشه دار مرتب میشوند • برای دسترسی به یک شیئ، یک عامل باید دارای حق observeبه تمام اجداد آن شیئ داشته باشد.
خط مشی های اختیاری مدل Biba-2 • حلقه • به هر عامل یک صفت مجوزی(حلقه) اختصاص می یابد. • حلقه ها عددگذاری میشوند. • حلقه ها با اعداد کوچکتر نشان دهنده حقوق با مجوزهای بالاتر است. • خط مشی ها نیاز به برقرار بودن اصول زیر را دارد: • یک عامل می تواند حق modifyبروی اشیاء، فقط در بازه مجازی از حلقه ها داشته باشد • یک عامل می تواند حق دسترسی invokeرا بروی عواملی با مجوز بالاتر تنها بروی بازه مجازی از حلقه ها داشته باشد. البته هر عامل می تواند حق دسترسی invoke را بروی تمام عوامل با مجوز پایین تر و مساوی داشته باشد. • هر عامل می تواند دسترسی observeرا بروی اشیاء در یک بازه مجاز از حلقه ها داشته باشد.
خلاصه مدل Biba • مدل Biba بيشتر با خط مشي سختگيرانه اش شناخته شده است. • خط مشي حفظ صحت سختگيرانه به طور خلاصه: • عامل از اشياي با سطوح امنيتي بالاتر يا مساوي خود، ميخواند(مشاهده). No Read Down • عامل در اشياي با سطوح امنيتي پايينتر يا مساوي خود، مينويسد (تغییر). No Write Up
مدل كنترل دسترسي اجباري پايگاه دادهها Dion
مدل Dion-1 • ارائه شده در سال 1981 • کنترل دسترسی اجباری • حفاظت از صحت و محرمانگی داده ها • ترکیب مدل های کنترل دسترسی BLPو Biba • برخلاف دو مدل قبلی هیچ نوع خط مشی اختیاری را پشتیبانی نمی کند و با ارضای تمام خط مشی های امنیتی اجباری، دسترسی مجاز شمرده می شود. • جریان داده ها میان اشیاء به عوامل تعریف نمی شود بلکه میان اشیاء به اشیاء تعریف می گردد. • به همین دلیل مفهوم اتصال(connection)مطرح می گردد که یک ارتباط میان شیئ مبدا به مقصد باید توسط عامل ایجاد گردد تا امکان برقراری جریان اطلاعات میان آنها را فراهم نماید.
مدل Dion-2 مدل Dion مبتنی بر رده های اشیاء و عوامل هستند که شامل سطوح صحتی و محرمانگی هستند. سطوح محرمانگی و معانی آنها همانند مدل کنترل دسترسی BLPهستند سطوح صحتی و معانی آنها همانند مدل کنترل دسترسی Bibaهستند.
عوامل و رده های مدل Dion-1 • در این مدل، عوامل همان برنامه هایی هستند که در سیستم به نمایندگی از کاربر اجرا می شوند. • به هر عامل سیستم سه سطح محرمانگی و سه سطح صحتی اختصاص می یابد • سطوح امنیتی: • سطح محرمانگی مطلق(Absolute Security Level): سطح امنیتی است که به عامل در زمان ایجاد داده می شود. این سطح امنیتی در طول حیات عامل ثابت است • سطح محرمانگی خواندن(Read Security Level): بالاترین سطح امنیتی است که عامل مجاز است بخواند. • سطح محرمانگی نوشتن(Write Security Level): پایین ترین سطح امنیتی است که یک عامل مجاز است بنویسد.
عوامل و رده های مدل Dion-2 • سطوح صحتی: • سطح صحتی مطلق(Absolute Integrity Level): سطح صحتی است که به عامل در زمان ایجاد داده می شود. این سطح صحتی در طول حیات عامل ثابت است • سطح صحتی خواندن(Read Integrity Level): پایین ترین سطح صحتی است که عامل مجاز است بخواند. • سطح صحتی نوشتن(Write Integrity Level): بالاترین سطح صحتی است که عامل مجاز است بنویسد.
عوامل و رده های مدل Dion-3 • روابط زیر باید در هر سیستم برای هر عامل s برقرار باشد: • WSL(s) ≤ ASL(s) ≤ RSL(s) • RIL(s) ≤ AIL(s) ≤ WIL(s) • هر عامل که حداقل یکی از نامساوی های بالا به صورت اکید ارضا کند عامل معتمد(Trusted Subject) نامیده می شود. • یک عامل می تواند از دید امنیتی، صحتی و یا هردو بسته به تعداد نامساوی هایی که به صورت اکید ارضا می کند، معتمد باشد. • هر عاملی که چهار رابطه بالا را به صورت تساوی ارضا نماید، عامل غیر معتمد نامیده می شود.
اشیاء و رده های مدل Dion-1 • در این مدل، اشیاء به هر موجودیت انباره داده در سیستم اطلاق می گردد. • به هر شیئ سیستم سه سطح امنیتی و سه سطح صحتی اختصاص می یابد • سطوح امنیتی: • سطح امنیتی مطلق(Absolute Security Level): سطح امنیتی داده ای است که در شیئ قرار می گیرد. این سطح امنیتی در طول حیات شیئ ثابت است • سطح امنیتی مهاجرتی (Migration Security Level): بالاترین سطح امنیتی است که داده در اين شیئ، مجاز است به شیئ در آن سطح جریان پیدا کند. • سطح امنیتی تحریفی(Corruption Security Level): پایین ترین سطح امنیتی است که داده از آن سطح می تواند به این شیئ جریان پیدا کند.
عوامل و رده های مدل Dion-2 • سطوح صحتی: • سطح صحتی مطلق(Absolute Integrity Level): سطح صحتی داده ای است که در شیئ قرار می گیرد. این سطح صحتی در طول حیات شیئ ثابت است • سطح صحتی مهاجرتی(Migration Integrity Level): پایین ترین سطح صحتی است که داده از این شیئ، مجاز است به شیئ در آن سطح جریان پیدا کند. • سطح صحتی تحریفی(Corruption Integrity Level): بالاترین سطح صحتی است که داده از آن سطح می تواند به این شیئ جریان پیدا کند.
عوامل و رده های مدل Dion-3 • روابط زیر باید در هر سیستم برای هر شیئ o برقرار باشد: • CSL(o) ≤ ASL(o) ≤ MSL(o) • MIL(o) ≤ AIL(o) ≤ CIL(o)
اصول مدل Dion-1 • خصوصیت مهاجرت • سطوح مهاجرت شیئ که اطلاعات در آن نوشته می شود(o2) باید محدودتر از سطح مهاجرتی شیئ ای باشد که از آن خوانده می شود (o1). MSL(o1) ≥ MSL(o2) MIL(o1) ≤ MIL(o2) • این خصوصیت تضمین می کند که سطوح امنیتی و صحتی توسط یک مهاجرت دور زده نشود. • اگر این خصوصیت ارضا نگردد، داده های o1 می تواند به صورت غیر مستقیم، به سطوح امنیتی ای که مجاز نمی باشد (مانند o2) مهاجرت داده شود.
اصول مدل Dion-2 • خصوصیت تحریف • سطوح تحریف شیئ ای که از آن اطلاعات خوانده میشود (o1) باید حداقل از سطوح تحریف شیئ ای که در آن اطلاعات نوشته می شود، محدودتر باشد. CSL(o1) ≥ CSL(o2) CIL(o1) ≤ CIL(o2) • این خصوصیت تضمین میکند سطوح امنیتی و صحتی O2 به صورت غیر مستقیم دور زده نشود.
اصول مدل Dion-3 • خصوصیت امنیتی • عاملی که یک اتصال را ایجاد می کند، باید سطح دسترسی خواندن بروی شیئ ای که می خواند (O1) و سطح دسترسی نوشتن بروی شیئ ای که می نویسد (O2) داشته باشد. RSL(s) ≥ ASL(o1) WSL(s) ≤ ASL(o2) • این خصوصیت معادل همان No-Read-Upو No-Write-Down از مدل کنترل دسترسی BLP می باشد