سیستم عامل گنو/لینوکس نسبت به سایر سیستم عامل ها ایمن تر است چرا که در این سیستم عامل هر Process (پراسس یا فرایند) از سایر فرایندها مجزا است. به عبارت دیگر، در لینوکس یک فرایند نمیتواند به منابع سایر فرایندها دسترسی پیدا کند. از همین روی است که ویروس ها و اکسپلویت های امنیتی به سختی خواهند توانست در این سیستم عامل به منابع سیستم دسترسی پیدا کنند.
برای ایمن سازی لینوکس، مکانیسم های امنیتی متنوعی به کار گرفته شده است که عبارتند از:
- Control Groups: این قابلیت به ادمین های سیستم این امکان را میدهد تا فرایندها و منابع مختص به آنها را در قالب cgroup های مختلف گروه بندی کنند.
- Linux Containers: کانتینرهای لینوکس (LXC) این امکان را فراهم میسازند تا چندین سیستم لینوکسی مجزا از یکدیگر را بر اساس cgroup ها روی یک سیستم اجرا کنند.
- Virtualization: در لینوکس با سختافزار سیستم به گونه یی رفتار میشود که نه تنها فرایندها مجزا از یکدیگر میشوند، بلکه چندین سیستم را نیز میتوان از طریق «مجازی سازی» به صورت همزمان اما مجزا از یکدیگر از طریق ماشینهای مجازی روی یک سیستم اجرا کرد.
دسترسی به دیوایس های سخت افزاری
در لینوکس همانگونه که کاربران برای دسترسی به فایلها و دایرکتوری های مختلف نیاز به پرمیشن هستند، برای دستیابی به دیوایس های سخت افزاری نیز چنین پرمیشن هایی نیاز است.
هر دیوایسی در لینوکس دارای یک فایل اختصاصی است که تحت عنوان Device Node شناخته میشود که در مسیر dev/ قرار دارند. هر فایل اختصاصی دیوایس ها دارای پرمیشن های کاربر، گروه کاربری و سایر است. برای مثال، هارد دیسک ها تحت عنوان *dev/sd/ شناخته میشوند.
به روز نگهداری سیستم
زمانی که یک مشکل امنیتی در کرنل لینوکس و یا اپلیکیشن های توسعه داده شده برای توزیعهای مختلف لینوکسی یافت میشود، خیلی سریع این مشکلات امنیتی توسط توسعه دهندگان تشخیص داده شده و از طریق اعلانیه ها به اطلاع کاربران لینوکسی میرسد که می بایست سیستم خود را آپدیت کنند. لذا توصیه میشود تا از طریق مکانیسم های آپدیت خودکار سیستم عامل، در بازه های زمانی کوتاه مدت سیستم خود را به روز نگاه داشته تا هدف هکرها قرار نگیرد.
نحوه ی ذخیره سازی پسوردها در لینوکس
در گذشته، پسوردهای کاربران در مسیر etc/passwd/ ذخیره میشد که این فایل توسط هر کسی قابل دسترسی بود و همین مسأله منجر شده بود تا پسوردها به سادگی هک شوند. اما در سیستم عامل های جدید لینوکسی، پسوردها در قالب یک فرمت رمزنگاری شده در فایل ثانویه یی تحت عنوان etc/shadow/ ذخیره میشوند که صرفاً با پرمیشن روت میتوان به این فایل دسترسی پیدا کرد:
رمزنگاری پسورد
در زمینه ی امنیت سیستم عامل، رمزنگاری پسوردها گامی مهم و مؤثر است؛ بسیاری از توزیعهای لینوکسی از الگوریتم رمزنگاری پسوردی تحت عنوان SHA-512 که توسط آژانس امنیت ملی ایالات متحده ی آمریکا (NSA) برای رمزنگاری پسوردهای حساس طراحی شده بهره میگیرند و این در حالی است که الگوریتم SHA-512 در پروتکل ها و اپلیکیشن هایی که نیاز به رمزنگاری دادهها دارند به کرات مورد استفاده قرار میگیرد.
به طور مثال، اگر بخواهیم واژه ی test را با استفاده از این الگوریتم رمزنگاری کنیم، با خروجی زیر مواجه خواهیم شد:
ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc5fa9ad8e6f57f50028a8ff
راه کارهای ایجاد پسوردهای ایمن
افراد حرفه یی فعال در حوزه ی آی تی از استراتژی های متنوعی به منظور ایمن سازی اطلاعات خود بهره میگیرند که در ادامه با برخی از کاربردی ترین آنها آشنا خواهیم شد:
- عمر پسورد: روشی است که از آن طریق میتوان بازه های زمانی مشخصی را تنظیم کرد تا از آن طریق به کاربر یادآوری شود که موقع تغییر پسورد است. با اتخاذ چنین رویکردی، حتی اگر پسوردهای یک سیستم لو روند، صرفاً برای مدت زمان کوتاهی در دسترس خواهند بود. ابزاری که از آن طریق میتوان به مدیریت این کار پرداخت chage نام دارد.
- پسوردهای قوی: راهکار دیگری که میتوان برای افزایش امنیت اطلاعات به کار برد، استفاده از پسوردهای قوی است. ابزاری همچون PAM این امکان را در اختیار کاربران لینوکس قرار میدهد تا در حین انتخاب پسورد با استفاده از کامند passwd، پسوردهای ایمن انتخاب نمایند.