سیستمعاملها مسئول دنبال کردن و صدور اجازه برای اجرای برنامهها بر روی کامپیوتر هستند. آنها منابع کامپیوتر شما را بین برنامهها تقسیم میکنند و به شما اجازه میدهند تا سختافزارهای تحت نظر آن برنامه را دستکاری کنید.
سیستمعاملها مسئول دنبال کردن و صدور اجازه برای اجرای برنامهها بر روی کامپیوتر هستند. آنها منابع کامپیوتر شما را بین برنامهها تقسیم میکنند و به شما اجازه میدهند تا سختافزارهای تحت نظر آن برنامه را دستکاری کنید. به عبارت دیگر، هر دستگاهی که میتواند برنامههای خود را اجرا کند، به یکی از سیستمعاملهای مک، ویندوز و یا لینوکس نیاز خواهد داشت.
در حالیکه برخی از سیستمعاملها نسبت به سایرین امنتر هستند، بسیاری دیگر از نمونههای مدرن امروزی بهترین عملکردها را برای محافظت از خود در برابر مشکلات احتمالی انجام میدهند. به همین دلیل، قرار دادن برخی سیستمعاملها در رده بدترینها تنها بهدلیل سوءاستفادههای بیشتر بوده و یک اشتباه است.
در این مقاله برخی از تکنیکهای محافظت از اطلاعات را که اکثر سیستمعاملهای مدرن از آنها استفاده میکنند، مورد بررسی قرار میدهیم.
محافظت از حافظه
در اولین مرحله وقتی یک برنامه میخواهد اجرا شود باید به منابع دسترسی داشته باشد تا بهسرعت بتواند آنها را دستکاری کند. RAM یا حافظه دسترسی تصادفی دقیقا همین کار را انجام میدهد. RAM که یک نوع حافظه ذخیرهسازی موقت است و پس از هربار خاموش شدن سیستم پاک میشود. بدین صورت اجازه میدهد تا دادهها نوشته شده و بسیار سریع خوانده شوند. هنگامیکه یک برنامه راهاندازی میشود، سیستمعامل دسترسی برنامه را به بخشی از این منبع باز میکند.
از آنجاییکه همه برنامهها باید از این منبع استفاده کنند، ممکن است یک برنامه مخرب به مکان دیگری در حافظه که به آن اختصاص داده نشده؛ دسترسی پیدا کند. buffer overflow نمونهای از این وضعیت است که دستکاری حافظه در خارج از منطقه موردنظر را نشان میدهد. این میتواند به برنامه خرابکار اجازه دهد بدون اطلاع کاربر اجرا شده و اطلاعات ذخیره شده در حافظه را بخواند.
در حالیکه سیستمعاملها نمیتوانند مانع از بروز اینگونه مشکلات شوند، بسیاری از اقدامات مدرن مانع از انجام آنها خواهد شد. این کار از طریق حفاظت از مناطق حافظه انجام میشود که برنامهها مجاز به دسترسی به آن نیستند. به این معنا که بهجای اجازه دادن به برنامهها برای انجام هر کاری که صرفا موجب از کارافتادن سیستم خواهد شد بهتر است از هر گونه نقض امنیتی بالقوه جلوگیری شود.
رتبهبندی کاربران سیستم
سیستمعامل همچنین از مفهوم امتیازات برای کمک به محفاظت از کامپیوتر استفاده میکند. ایده امتیازدهی بر این مبنا است که یک کامپیوتر کاربران مختلفی دارد که قادرند به اطلاعات متفاوتی مانند توانایی تغییر برخی تنظیمات سیستم بهعنوان یک امتیاز، دسترسی داشته باشند. بدون آنها، هر برنامهای که کاربر اجرا میکند، ممکن است توانایی رایانه را به خطر بیاندازد و کارایی سیستمعامل را تغییر دهد.
برای مثال ویندوز دارای حساب کاربری مدیریت است که به کاربر اجازه میدهد تا تغییرات موردنظرش در سیستم را اعمال کند. به همین ترتیب، سیستمعاملهای لینوکس یک حساب کاربری فوقالعاده دارند که به طور مشابه رفتار کرده و به شما اجازه میدهد تقریبا همه چیز را بدون هر نوع محدودیتی تحت تاثیر قرار دهید. با این حال، قدرت بیشتر، ریسکهای بزرگتری را هم به همراه دارد و اگر بدافزار از قدرت بالایی برخوردار باشد امکان بروز هر نوع آسیب بالقوهای وجود خواهد داشت. بهطور مثال ممکن است کاربران عادی قادر به درخواست اجرای برنامههای خاص نباشند اما کاربر دیگری با امتیاز بیشتر، میتواند به همراه هر نوع برنامه مخرب در حال اجرا، هرکاری را انجام دهد.
به همین دلیل است که این روزها بسیاری از سیستمعاملها اعمال محدودیت برای کاربر را بهعنوان بهترین انتخاب پذیرفتهاند. استفاده از این روش به کاهش آسیبهای وارده توسط برنامه کمک میکند. سیستمعاملها از کاربران درخواست میکنند تا مهمترین کارهایی را که میخواهند انجام دهند، تعیین کنند و پس از انجام این کار، تنها مواردی که بهصورت دستی مشخص شدهاند قابل دسترس خواهند بود.
کاربران چگونه متوجه این کنترل میشوند؟
برای مثال ویندوز دارای آیتمی به نام UAC (کنترل حساب کاربر) است. UAC، بهعنوان وسیلهای برای اعطای مجوزهای بیشتر به برنامههاعمل میکند. به طور پیشفرض، برنامهها تنها با یک مجموعه کوچک از امتیازات اجرا میشوند، UAC زمانی که آنها نیاز به انجام کاری دیگری مانند تغییر فایل سیستم دارند، به کاربر اطلاع میدهد.
به همین ترتیب، لینوکس نیز چیزهای مشابه ویندوز دارد که با نامهای Sudo و Polkit شناخته میشوند. در واقع آنها دو روش برای انجام یک کار هستند و آن اجرای یک برنامه با سطح بالاتری از امتیاز است. تنها تفاوت واقعی این است که Polkit عمدتا در دسکتاپهای لینوکس استفاده می شود و کمی شبیه UAC در ویندوز است. به غیر از این، هر دو آنها بهطور مشابه کار کرده و از کاربران برای انجام هر اقدامی درخواست میکنند تا رمزعبور خود را وارد کنند.
سیستمعاملهای تلفنهای همراه در سطح کاملا متفاوتی کار میکنند و بهطور پیشفرض، کاربران حتی نمیتوانند به این امتیازات قدرتمند دسترسی داشته باشند مگر اینکه برخی از تغییرات را انجام دهند. این بدان معنا است که کاربران با محدود کردن آنچه که میتوانند انجام دهند، سیستمهای خود را تا حد ممکن امن نگه دارند. در سیستمعامل iOS، به این کار جیلبریک و یا قفلشکنی گفته میشود که معادل روت کردن در اندروید است و صرف نظر از نام، هر دو تقریبا کارهای مشابهی را انجام میدهند.
ساین کردن برنامهها
یکی دیگر از اقدامات مهم امنیتی که این روزها اکثر سیستمعاملها از آن استفاده میکنند، درخواست ساین کردن برنامهها است. این کار تضمین میکند برنامههایی که در رایانه شما اجرا میشوند از یک منبع قابل اعتماد نصب و تهیه شدهاند و نمیتوانند به سیستم شما آسیب برسانند. برنامهها، مانند هرچیز دیگری در کامپیوتر، فقط از یک سری اطلاعات ساخته شدهاند. به همین ترتیب میتوان برای پردازش و تأیید صحت آنها، از انواع امضاهای دیجیتالی استفاده کرد. ساین کردن یک برنامه، اطمینان حاصل میکند که آنچه شما در حال اجرای آن هستید همان چیزی است که در نظر داشتهاید یا خیر.
معمولا، این فرآیند با اختیارات معینی انجام میشود که اجازه میدهد افراد کد خود را با پرداخت هزینه ثبت کنند. به عبارت دیگر اگر این کد تائید شود به این معنا است که نرمافزار برای آسیب رساندن به سیستم کاربران طراحی نشده است. برنامههایی با یک پایگاه کاربری بزرگ بهطور کلی توانایی انجام چنین کاری را دارند.
کاربران چگونه متوجه این کنترل میشوند؟
اکثر سیستم عاملها سعی میکنند تا برخی از سطح امضای دیجیتالی برنامه را داشته باشند. با این حال، اگر شما سعی در اجرای برنامههایی داشته باشید که تأیید نشدهاند، معمولا شما را متوقف نخواهند کرد. به این ترتیب، آنها تمایل دارند تا سطح هشدار نسبت به انجام این کار را ارائه دهند مانند هشداری که UAC ویندوز درباره ناشر ناشناخته (unknown publisher) به کاربر میدهد.
با این وجود، این موضوع چیزی نیست که فقط در چند سیستمعامل محدود باشد. لینوکس در قالب مخازن نرمافزاری، دارای مکانهای آنلاین است و برنامههای میزبانی که همه امضا شده و تأیید شدهاند را دریافت میکند. در حالت تئوری، تا زمانی که برنامههای نصب شده از منابع ناشناخته را اجرا نکنید، ایمن هستید.
بهعنوان مثال، سیستمعاملهای تلفن همراه همه برنامههای خود را در یک مکان واحد قرار میدهند. کاربران اندروید از طریق فروشگاه Google Play و کاربران iOS با استفاده از App Store به این برنامهها دسترسی دارند. تمام برنامههای کاربردی موجود در این فروشگاهها قابل اعتماد بوده و به تائید رسیدهاند.
در حالیکه برخی از سیستمعاملها از امنیت کمتری نسبت به سایرین برخوردار هستند مطرح کردن این بحث که آنها به راحتی آسیبپذیر هستند، صحیح نیست. در حقیقت، موارد زیادی در پشت صحنه اتفاق میافتد و به حفظ امنیت رایانه شما کمک میکنند.
منبع : MAKEUSEOF
ترجمه : راضیه مومنی