DBSec-HW1.pdf

‫به نام خدا‬
‫تمرین سری اول درس امنیت پایگاه داده‬
‫موعد تحویل (‪)99/9/01‬‬
‫نکات کلی‬
‫‪‬‬
‫نحوهی تحویل تکلیف‪:‬‬
‫‪o‬‬
‫پاسخهای خود را حداکثر تا ساعت ‪ 09‬شب شنبه ‪ 99/9/01‬به‬
‫آدرس ‪[email protected]‬‬
‫ایمیل کنید‪ .‬تاخیر در ارسال پاسخ مشمول کسر نمره خواهد بود‪.‬‬
‫یا‬
‫‪o‬‬
‫از ساعت ‪ 01‬تا ‪ 01‬ظهر روز شنبه ‪ 99/9/01‬در آزمایشگاه امنیت داده و شبکه به آقای سلطانی‬
‫تحویل دهید‪ .‬در خارج از این ساعات تحویل حضوری غیر ممکن خواهد بود‪.‬‬
‫‪‬‬
‫در صورت تاخیر در ارسال پاسخ‪ ،‬به ازای هر روز ‪ %92‬نمرهی کل تمرین‪ ،‬جریمه احتساب میگردد‪.‬‬
‫‪‬‬
‫تمرینهای درس باید به صورت فردی حل شوند‪ .‬پاسخهای گروهی مشمول کسر نمره خواهند بود‪.‬‬
‫‪‬‬
‫به پاسخهایی که رونوشت یکدیگر باشند‪ ،‬هیچ نمرهای تعلق نمیگیرد‪.‬‬
‫‪‬‬
‫حتما در صورت استفاده از مرجعی خاص در پاسخ سواالت‪ ،‬الزم است لیست مراجع در انتهای پاسخ‬
‫ذکر شود‪.‬‬
‫سواالت‬
‫‪ )0‬چه تفاوتی بین خط مشی کنترل دسترسی‪ ،‬مدل کنترل دسترسی و مکانیزم کنترل دسترسی وجود دارد؟‬
‫‪ )9‬آیا میتوان یک سیستم امنیتی را طراحی نمود که در آن هیچگونه فرضی در خصوص اعتماد (‪)trust‬‬
‫وجود نداشته باشد؟ برای پاسخ خود دلیل قانعکنندهای بیاورید‪.‬‬
‫‪ )1‬مدل ‪ Acten‬چه معایبی را از مدل ‪ Take-Grant‬برطرف نموده است؟ چگونه؟ در خصوص چگونگی رفع‬
‫عیب‪ ،‬توضیحات قانع کنندهای را به همراه مثال ارائه نمایید‪.‬‬
‫‪ )4‬به اعتقاد برخی از محققیق اطالع از وجود یک داده‪ ،‬نوعی افشای محرمانگی محسوب میگردد‪ .‬بر این‬
‫اساس‪ ،‬وجود مفهوم جامعیت ارجاعی در پایگاه داده و نیاز به کلید خارجی‪ ،‬چه مشکالتی را برای امنیت‬
‫پایگاه داده به دنبال دارد؟ برای حل این مشکالت چه راهحلهایی را پیشنهاد میکنید؟‬
‫‪ )2‬مثالی بیاورید که نقض محرمانگی منجر به نقض تمامیت (‪ )integrity‬میشود؟‬
‫‪ )1‬با ارائه مثالی نشان دهید که در مدل ‪ DION‬عدم برقراری خصوصیات مهاجرت و تحریف از بعد صحت چه‬
‫مشکلی را پیش میآورد‪.‬‬
‫‪ )7‬یک مسیر انتقال اطالعات‪ ،‬دنبالهای از اشیا ‪ o1, o2, …, .on+1‬و متناظر آن دنبالهای از عاملهای ‪s1, s2,‬‬
‫‪ …, sn‬است که برای هر ‪ )1 ≤ I ≤ n( i‬داریم ‪ si read oi‬و ‪ .si write oi+1‬با وجود یک مسیر انتقال‬
‫اطالعات بین ‪ o1‬و ‪ on+1‬ثابت کنید که برای اعمال خطمشی ‪ Low-watermark policy for subjects‬در‬
‫مدل ‪ Biba‬باید که رابطهی )‪ IL (on+1) ≤ IL(o1‬برای هر ‪ n > 1‬برقرار باشد‪)IL = Integrity Level( .‬‬
‫‪ )8‬لیست کنترل دسترسی‪ 0‬و لیست قابلیت‪ 9‬را از جنبههای مختلف با هم مقایسه کنید‪ .‬آیا لیست قابلیت‬
‫نسبت به لیست کنترل دسترسی مصونیت بیشتری را در مقابل اسب تراوا فراهم میکند؟‬
‫‪ )9‬در دانشکدهای برای تسهیل در راهنمایی دانشجویان‪ ،‬استادان راهنما به کارهای دانشجو‪ ،‬درسهای اخذ‬
‫شده دسترسی دارند‪ .‬استادان هم مجاز به رایزنی با دیگر اساتید در دانشکده خود درباره کارهای انجام‬
‫شده در درس میباشند‪ .‬فرض کنید برای ارزیابی سیستم (از نظر برآورده کردن نیازمندیهای کنترل‬
‫دسترسی) از مدل ‪ Take-Grant‬استفاده شده است‪ .‬نمونهای از آن در زیر نشان داده شده است‪ :‬در شکل‬
‫دو دانشکده ‪ CS‬و ‪ Math‬وجود دارد‪ .‬دانشجوی ‪ S‬درسهایی از ‪( M‬استاد دانشکده ‪ )Math‬و ‪( C‬استاد‬
‫دانشکده ‪ )CS‬گرفته است‪ .‬دانشجو تمرین ‪ A‬را برای درسی که توسط ‪ C‬تدریس میشود‪ ،‬انجام داده است‪.‬‬
‫دانشجوی ‪ T‬هم درسی با آقای ‪ N‬گرفته است‪( .‬راسهای مشکی ‪ Subject/Object‬و راسهای‬
‫سفید ‪Object‬‬
‫هستند‪).‬‬
‫‪Access Control List‬‬
‫‪Capability List‬‬
‫‪0‬‬
‫‪9‬‬
‫آیا سیییسییتم نیازمندیهای امنیتی (بیان شییده در ابتدای مسییاله) را بر آورده میکند؟ به طور خاص به‬
‫سیوالهای زیر پاسخ دهید‪( .‬برای پاسخهای زیر با ارائه یک دنباله از اعمال قواعد مدل ‪ Take-Grant‬دلیل‬
‫بیاورید)‬
‫‪ )a‬آیا ‪ C‬تمرینهای ‪ A‬از ‪ S‬را میتواند بخواند؟‬
‫‪ )b‬آیا ‪ C‬میتواند به دیگر استادن دانشکده ‪ CS‬اجازه مشاهده تمرین ‪ A‬را بدهد؟‬
‫‪ )c‬آیا استادان در دانشکدههای دیگر از دسترسی به ‪ A‬منع میشوند؟‬
‫‪ )d‬آیا استادان دانشکده ‪ CS‬هیچ وقت میتوانند تمرین ‪ B‬از دانشجوی ‪ T‬را مشاهده کنند؟‬
‫‪ )01‬به منظور کنترل دسترسی یک سیستم‪ ،‬دستورات زیر را تعریف میکنیم‪:‬‬
‫)‪command grant right(p, f, q, r‬‬
‫]‪if r in a[p, f] and c in a[p, f‬‬
‫‪then‬‬
‫;]‪enter r into a[q, f‬‬
‫‪end‬‬
‫)‪command delete right(p, f, q, r‬‬
‫]‪if r in a[p, f] and o in a[p, f‬‬
‫‪then‬‬
‫;]‪delete r from a[q, f‬‬
‫‪end‬‬
‫)‪command grant ownership(p, f, q‬‬
‫]‪if r, w, c, o in a[p, f] and r, w in a[q, f‬‬
‫‪then‬‬
‫;]‪enter o into a[q, f‬‬
‫‪end‬‬
‫در صورت اجرای عملیات زیر در این سیستم‪ ،‬ماتریس کنترل دسترسی را در هر مرحله بکشید و ماتریس‬
‫به دسیت آمده را برای دسیتور بعدی به کار برید‪( .‬برای اجرای دسیتور اول‪ ،‬ماتریس کنترل دسترسی به صورت‬
‫جدول ‪ 0‬میباشد‪).‬‬
‫جدول ‪0‬ماتریس کنترل دسترسی‬
‫‪.0‬‬
‫)‪grant right(S2, O2, S3, r‬‬
‫‪.9‬‬
‫)‪grant ownership(S2, O2, S3‬‬
‫‪.1‬‬
‫)‪grant right(S1, O2, S3, r‬‬
‫‪.4‬‬
‫)‪grant right(S1, O1, S3, w‬‬
‫‪.2‬‬
‫)‪grant ownership(S1, O1, S3‬‬
‫‪.1‬‬
‫)‪delete right(S3, O1, S1, w‬‬
‫‪.7‬‬
‫)‪delete right(S3, O1, S1, r‬‬
‫‪.8‬‬
‫)‪grant right(S3, O2, S1, w‬‬
‫‪.9‬‬
‫)‪grant right(S1, O3, S3, w‬‬
‫‪.01‬‬
‫)‪grant right(S1, O3, S2, w‬‬
‫‪ )00‬در سوال قبل‪ ،‬فرض بر این است که سیستم در شرایطی امن است که عامل ‪ S2‬بر روی هیچ یک از اشیاء‬
‫(‪ )O1,O2,O3‬حق ‪ w‬نداشته باشد‪ .‬آیا دستوراتی وجود دارد که سیستم را غیر امن کند؟‬