سیامک آزادی ابد

پایان نامه کارشناسی - رشته مهندسی نرم افزار - سال 1385

امتیاز کاربران
ضعیفعالی 

عنوان پایان نامه:

تشخیص دستکاری غیر مجاز پرونده های اجرایی سیستم عامل لینوکس توسط تولید کدهای تشخیص دستکاری بازگشت ناپذیر

 

bsc dis

چکیده:

یکی از نیازمندی های امنیت اطلاعات در سیستم های کامپیوتری، برقراری ویژگی صحت (Integrity) برای فایل های سیستم عامل است. چراکه اگر این فایل ها مورد دستکاری غیر مجاز قرار گیرند، امکان اعتماد به کارکرد صحیح سیستم عامل، بسیار دشوار خواهد بود. لذا ابزارهایی با عنوان Integrity Checker به وجود آمده اند که می توانند صحت فایل ها را در مقاطع زمانی، بررسی و گزارش نمایند. روش کار این ابزارها به این صورت است که در ابتدای شروع به کار سیستم عامل که مدیر سیستم از صحت آن اطمینان دارد، لیستی از فایل های مهم تهیه شده و یک کد تشخیص دستکاری از آن تولید می شود. این کد تشخیص دستکاری، در ساده ترین حالت می تواند یک کد درهم سازی شده (Hash) از فایل باشد. حال لیست مذکور به همراه کدها، در یک پایگاه داده ذخیره می شوند. پس از آن در زمان نیاز، با اجرای مجدد Integrity Checker، دوباره این لیست و کدها تولید شده و نتیجه، با اطلاعات قبلی در پایگاه داده مقایسه می شود. نتیجه این کار، چهارحالت خواهد داشت:

  1. فایلی در لیست جدید موجود است که در لیست قبلی وجود ندارد.
  2. فایلی در لیست قبلی موجود است که در لیست جدید وجود ندارد.
  3. فایلی در هر دو لیست موجود است که کد تشخیص دستکاری آن ها متفاوت است.
  4. فایلی در هر دو لیست موجود است که کد تشخیص دستکاری آن ها یکسان است.

 

واضح است که جز در حالت چهارم، دستکاری در فایل های سیستم ایجاد شده است که باید مورد بررسی قرار گیرد.

اما مشکلی که در این پایان نامه معرفی و مورد بررسی قرار گرفت، موضوع وابستگی به سیستم عامل است. می دانیم که تمامی نرم افزارها در زمان اجرا، برای دسترسی به منابع سیستم عامل (مانند فایل ها)، باید از فراخوانی های سیستمی (System Calls) استفاده نمایند. لذا در حقیقت، زمانی که برنامه Integrity Checker بخواهد لیست فایل ها و محتوای آن ها را از یک دایرکتوری در سیستم بخواند، باید با یک فراخوانی سیستمی، از هسته سیستم عامل بخواهد که این لیست و محتواها را در اختیار وی قرار دهد. در نتیجه، برنامه Integrity Checker، هر آنچه را که هسته سیستم عامل به وی تحویل می دهد، خواهد دید. اما امروزه، گونه ای از بدافزارها با عنوان Rootkit به وجود آمده اند که می توانند هسته سیستم عامل را مورد دستکاری قرار داده و خروجی فراخوانی های سیستمی را تغییر دهند. برای مثال، در یک سیستم عامل ویندوز آلوده به Rootkit، ممکن است که اگر فولدری باز شود، فایل های داخل آن، به هیچ عنوان قابل مشاهده نباشد و حتی حجم آن ها نیز در حجم کل فولدر، لحاظ نشود. علت می تواند این باشد که هسته همین سیستم عاملی که در حال اجرا است، مورد حمله یک Rootkit قرار گرفته و برنامه اکسپلورر ویندوز، در زمانی که فراخوانی سیستمی مربوط به لیست کردن فایل ها را به هسته سیستم عامل ارسال می کند، هسته سیستم عامل، پاسخ نادرستی را ارایه می دهد. پر واضح است که در چنین سیستمی، به کارگیری برنامه Integrity Checker می تواند بی فایده باشد.

راه کار ارایه شده این است که برنامه Integrity Checker، در یک سیستم عامل غیرقابل تغییر قرارداده شده و سیستمی که مورد ارزیابی قرار میگیرد، در زمان بررسی، خاموش بوده و توسط یک سیستم غیر قابل تغییر دیگر، مورد بررسی قرار گیرد. به صورت مشخص، در این پروژه، یک برنامه ساده Integrity Checker، پیاده سازی شده و در یک Ubuntu Live CD تعبیه شده است. با توجه به این که این برنامه در یک CD تعبیه شده است، همواره می توان اطمینان داشت که امکان ایجاد تغییر در آن، از نظر فیزیکی غیر ممکن بوده است. به علاوه کامپیوتری که توسط این ابزار مورد ارزیابی قرار می گیرد، به ناچار باید در زمان ارزیابی خاموش بوده و صرفا، سیستم عامل روی Live CD در حال اجرا باشد.

 

دریافت پایان نامه (1 مگابایت)

 

 برچسب ها:

شما مجوز درج نظر را ندارید