انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: سودو. در 01 امرداد 1401، 06:55 بظ
-
درود دوستان ، مدتیه در محصولات فرهنگی ای مشغول به کارم ، اولش تصمیم داشتم فلشمو اصلا به سیستم اونجا نزنم چرا که روزانه صد ها فلش به سیستم وصل میشه ، با اینکه میدونستم توی گنو هیچ غلطی نمیتونن بکنن ویروس و بد افزار های ویندوزی ! ولی خب در برابر فیلم مفت نتونستم جلوی خودمو بگیرم ! اما ..
۱ . بد افزار ها میتونن به فلش اسیب سخت افزاری بزنن ؟ ( فقط به پورت اصلی میزنم فلشمو و بدون eject یا safe remove نمیکشمش )
۲ . بد افزار میتونه در پرونده های معمولی مثل فیلم و اهنگ مخفی شه ؟
۳ . وقتی فلش رو بزنم به سیستم خودم ، بد افزار ها نمیتونن خودشون رو انتقال بدن درسته ؟
۴ . فرمت کردن فلش اگر بدافزاری باشه رو میتونه کامل پاک کنه ؟
۵ . اگر از فایل سیستم های لینوکسی مثل ext یا xfs استفاده کنم ، ایا اصلا میتونه به یه روشی بخونه این فایل سیستم ها رو ؟
بازم اگه سوالی باشه میپرسم : )
-
۱. خیر
۲. بله
۳. بله
۴. بله باید جدول افراز جدید بسازی
۵. بعیده
-
۱ . یعنی هیچ راهی ندارن بدافزار ها برای اسیب سخت افزاری ؟ پس این همه فلش که میسوزن یا مثلا دیگه فرمت نمیشه کردشون حتی ، اینا چرا اینجوری میشن و طرف بعد از چند ماه میاد دنبال گارانتی ؟
۲ . الف : چجوری میشه متوجهش شد و آیا راهی برای پاکسازیش هست ؟
۲ . ب : حتا پرونده های دریافتی از اینترنت و مثلا حتا تورنت هم پس میتونن آلوده باشن ؟ ولی تو گنو کاری از دستشون ساخته نیست ، درسته ؟
۶ . چجوری میتونم مطمعن بشم که یه فلش پاکه و فایل هاشم امن ؟ چون لازم میشه بزنم به گوشی اندرویدیم فلشو !
-
۱. نه. مکشل سختافزاری جدای از ویروسه.
۲ آ. استفاده از پادویروس مثل ClamAV
۲ ب.بله
۶. استفاده از پادویروس. هرند تو اندروید هم کاری از دستشون برنمیآد. ویروس یه مقولهٔ منحصر به ویندوزه.
-
۶ . یعنی اندروید بد افزار نمیگیره ؟ پس گوشی ها چرا به مرور کند میشن ؟
-
بدافزار چرا، ولی ویروس نه. تا خودت چیزی رو مستقیم توشون اجرا نکنی، نمیتونه اجرا بشه.
دلیل کند شدنش هم ساختار بد و کثیف اندرویده، ربطی به ویروس و بدافزار نداره!
-
اگه بد افزار یا ویروس یا هر اسمی که داره برای مجموعش ، میکروب جات و باکتری ها ، توی یه پرونده مثلا فیلم مخفی شده باشن ، با باز کردن اون فیلم در واقع اجراشون کردیم ؟
-
این یه نوع نفوذه که اجراش بستگی به این داره که اون برنامه چهقدر امن شده در برابر چنین حملاتی. اگه لینیج داشته باشید و هفتگی بهروزش کنید، معمولاً خیالتون از این قضیه راحته.
-
پس گنو هم همینطوره دیگه ، اون که همیشه بروزه : )
اندروید نه البته ! لینیجی در کار نیست !
-
پس گنو هم همینطوره دیگه
بله. منتها ساختار کتابخونههای اشتراکی، امکان چنین چیزی رو خیلی پایین میآره.
-
چجوری میتونم یه توزیع زنده رو بالا بیارم ولی در هنگام بوت بهش بگم هاردا رو نشناس ، اینجوری روی اون اگه فیلمو اجرا کنم بهتره نه ؟
-
معمولا پارتیشنی رو ماونت نمیکنه !
-
معمولا پارتیشنی رو ماونت نمیکنه !
آره دیگه حواسم کجاس !
نگران فیلم اجرایی حاوی ویروس و بد افزارم !
-
نترس هیچکار نمیتونه کنه !
-
خب وقتی اجراش کنم یعنی دسترسی دادم دیگه ؟
-
خب وقتی اجراش کنم یعنی دسترسی دادم دیگه ؟
بستگی داره
که مثلا با سودو اجرا کنی یا نه
-
😐😶
فیلمو ؟
-
😐😶
فیلمو ؟
:D
نمیتونه کاری کنه بشین نگاه کن
-
شما وقتی یک پرونده حاوی بدافزار رو اجرا میکنید، میتونه به همهٔ اون چیزهایی که شما دسترسی دارید، دسترسی داشته باشه. تمام پروندهها، شاخهها، تصاویر، و میتونه خودش رو به دیگر برنامههای شما که در شاخهٔ خانه شما هستند هم اضافه کنه. حتی میتونه باعث آسیب به سخت افزارهای دستگاهتون بشه.
اما تا موقعی که اجرا نشه، خوب احتمالا مشکلی نیست. و اینکه برای پخش یک ویدیو، اون ویدیو توسط برنامههای ویدیو پلیر اجرا میشه یا فقط خوانده میشه رو من نمیدونو اما اینکه فکر کنیم چون یه توزیع لینوکسی داریم، پس دیگه بدافزار ندارم، واقعا مسخرست.
-
😶
گفتن اسیب سخت افزاری نداریم که !
الان تکلیف چیه پس ؟
-
از سخت افزاری منظورتون فشار مثلا به سی پی یو هست ؟ فکر نمیکنم توی کوتاه مدت همچین چیزی کار خاصی کنه !
-
یادمه چند سال پیش فلشی درست شده بود که با وصل شدن به کامپیوتر،کامپیوتر می سوخت.
این کار هم با گرفتن ولتاژ زیاد و منتقل کردنش به کامپیوتر انجلم می شد.
یه سری ویروس هم هست که میتونه بدسکتور ایجاد کنه(میگن،ولی من ندیدم)
-
کامپیوتر نباید بسوزه، خود کامپیوتر هزار تا اجزا داره، منظورت از کامپیوتر ، پورت هست؟ پس اون فلشه یک خازن بوده
-
باسلام
دوست من گیم نت داره درکنارش برای مشتری روی مموری و فلش و هارد وگوشی
فیلم و سریال و موزیک بازی و ... میریزه.
به خاطر ویروسی شدن هفته ای یک بار ویندوز عوض میکرد و حسابی شاکی بود. ](*,)
تو فروردین امثال بهش گفتم برات گنو/لینوکس نصب میکنم از شر ویروس و تعویض ویندوز راحت شی
خلاصه یه محتصر توضیح دادم و برای امتحان دبیان پایدار با میز گنوم روی یک هارد جدا براش نصب کردم
تمام برنامه های مورد نیازش هم جایگزین کردیم و شروع کرد به کار کردن :)
الان ۴ ماه و خرده ای گذشته تمام کارهاشو با دبیان انجام میده هارد ویندوزی رو هم جدا کرده ;)
در طول روز کلی فلش و گوشی هارد و مموری میزنه به سیستم تو این مدت
سیستم مثل ساعت داره کار میکنه هیچ خبری از ویروس و هنگ و کندی و.. هم نیست \\:D/
یادمه چند سال پیش فلشی درست شده بود که با وصل شدن به کامپیوتر،کامپیوتر می سوخت.
این کار هم با گرفتن ولتاژ زیاد و منتقل کردنش به کامپیوتر انجلم می شد.
یه سری ویروس هم هست که میتونه بدسکتور ایجاد کنه(میگن،ولی من ندیدم)
کلا اتصالی اگه تو مادربرد بوجود بیاد روشن نمیشه
۵ ولت پورت usb توسط یه ic تغذیه مدیریت میشه کم و زیاد بشه از کار میوفته
-
اون فلشه چیز عجیبی نبوده
شما دوتا سیم دوشاخه رو هم به هم وصل کنی بزنی تو پریز فیوز می افته ::)
-
کامپیوتر نباید بسوزه، خود کامپیوتر هزار تا اجزا داره، منظورت از کامپیوتر ، پورت هست؟ پس اون فلشه یک خازن بوده
دقیقا خود کامپیوتر.
اون فلش یه خازنه.
با همین شیوه چند کامپیوتر توی یکی از دانشگاه ها سوخت!
-
مثلا بدافزار نمیتونه کنترل کرنل رو به دست بگیره و به پاور بگه تا میتونی برق بفرست به همه اجزا و همه رو بسوزونه ؟
-
؟
خود کامپیوتر یعنی کجاش؟ کلا
-
مثلا بدافزار نمیتونه کنترل کرنل رو به دست بگیره و به پاور بگه تا میتونی برق بفرست به همه اجزا و همه رو بسوزونه ؟
نه. این خیلی تخیّلیه دیگه ;D
-
چمدونم خب ! ;D از سخت افزار میشه گفت هیچی سر در نمیارم !
-
درود دوستان ، مدتیه در محصولات فرهنگی ای مشغول به کارم ، اولش تصمیم داشتم فلشمو اصلا به سیستم اونجا نزنم چرا که روزانه صد ها فلش به سیستم وصل میشه ، با اینکه میدونستم توی گنو هیچ غلطی نمیتونن بکنن ویروس و بد افزار های ویندوزی ! ولی خب در برابر فیلم مفت نتونستم جلوی خودمو بگیرم ! اما ..
احتمالا میدونید فیلم مفت و ... خلاف قوانین انجمن هست. درسته؟
۱ . بد افزار ها میتونن به فلش اسیب سخت افزاری بزنن ؟ ( فقط به پورت اصلی میزنم فلشمو و بدون eject یا safe remove نمیکشمش )
فکر نکنم. شاید، ولی مطمئن نیستم.
۲ . بد افزار میتونه در پرونده های معمولی مثل فیلم و اهنگ مخفی شه ؟
چرا میتونه. روشهای مختلفی هم برای اینکار داره.
۳ . وقتی فلش رو بزنم به سیستم خودم ، بد افزار ها نمیتونن خودشون رو انتقال بدن درسته ؟
بستگی به اون بدافزار، سیستمعامل و پیکربندی سیستمعامل شما داره.
ولی از اونجایی که معمولا اون بدافزارها مال ویتدوز هستند و شما دبیان دارید و پیکربندی پیشفرض بیشتر توزیعها امنیتی ضعیفی نداره، خیلی بعیده برای شما این اتفاق بیوفته.
۴ . فرمت کردن فلش اگر بدافزاری باشه رو میتونه کامل پاک کنه ؟
وقتی فلش رو فرمت میکنید، معمولا فقط قسمتهایی که اطلاعات مربوط به فایلسیستم رو دارند بازنویسی میشن. بقیه قسمتها و اطلاعات داخل اونها دست نخورده باقی میمونه و ممکنه در آینده با نوشتن شدن اطلاعات جدید، بازنویسی بشن.
به خاطر همین، اون بدافزار ممکنه همچنان توی فلش باشه. ولی از اونجایی که اون بدافزار به عنوان یه فایل شناسایی نمیشه، نباید بتونه کاری انجام بده و حتی چیز دیگه اون رو پیدا کته. (مگه اینکه فلش رو بلوک به بلوک بررسی کنه تا اون بدافزار رو پیدا کنه)
پس فکر کنم با فرمت کردن، اون بدافزار دیگه نتونه کاری انجام بده.
۵ . اگر از فایل سیستم های لینوکسی مثل ext یا xfs استفاده کنم ، ایا اصلا میتونه به یه روشی بخونه این فایل سیستم ها رو ؟
بازم اگه سوالی باشه میپرسم : )
شاید اون بدافزار بتونه به طور مستقیم اطلاعات روی فلش رو بخونه و چیزی رو اونها بنویسه ولی از اونجایی که احتمالا اون بدافزار داره روی ویندوز اجرا میشه و ویندوز پشتیبانی درست حسابی از ext4 و xfs نداره، بعیده این اتفاق بیوفته. (شاید با wsl بتونه یه کاری کنه)
اگه بد افزار یا ویروس یا هر اسمی که داره برای مجموعش ، میکروب جات و باکتری ها ، توی یه پرونده مثلا فیلم مخفی شده باشن ، با باز کردن اون فیلم در واقع اجراشون کردیم ؟
بعضی فایلها رو وقتی مشاهده میکنید، مثلا بعضی عکسها یا فیلمها یا فایلها مایکروسافت ورد، در واقع یه جور اجرا کردن هم همراهشون دارند. بعضی مواقع میشه از همین راه نفوذ کرد. این روش به نرمافزاری که اونها رو نمایش میده هم بستگی داره.
برای مثال از طریق همین فایلهای مایکروسافت ورد میشد به یه جا نفوذ کرد. وقتی یه نفر یه فایل docx آلوده رو با مایکروسافت ورد توی کامپیوتر خودش باز میکرد، از طریق همون راه به سیستم نفوذ میشد.
البته فکر کنم این راه توی نسخههای جدید مایکروسافت ورد رفع شده ولی مقصود از این حرف اینه که از چنین راههایی هم ممکنه به سیستم نفوذ بشه.
هر چند فکر نکنم این روش توی گنو/لینوکس کار بده چون معمولا اون بدافزارها فقط روی ویندوز کار میکنند.
شما وقتی یک پرونده حاوی بدافزار رو اجرا میکنید، میتونه به همهٔ اون چیزهایی که شما دسترسی دارید، دسترسی داشته باشه. تمام پروندهها، شاخهها، تصاویر، و میتونه خودش رو به دیگر برنامههای شما که در شاخهٔ خانه شما هستند هم اضافه کنه. حتی میتونه باعث آسیب به سخت افزارهای دستگاهتون بشه.
اگه یه چارچوب mandatory access control پیاده شده باشه، اونوقت ممکن هست کاربر معمولی یه برنامه رو اجرا کنه ولی برنامه اجرایی به چیزهایی که کاربر دسترسی داره، دسترسی نداشته باشه.
selinux و apparmor دوتا از این گزینه برای پیادهسازی mandatory access control هستند. معمولا اولی توی فدورا، opensuse و توزیعهای مبتنی بر اونها استفاده میشه و دومی هم توسط دبیان و توزیعهای مبتنی بر اون.
البته میشه توی دبیان از selinux به جای apparmor استفاده کرد.
با این حال، پیکریندی پیشفرض اونها جوری هست که چنین کاری انجام نمیدن.
مثلا بدافزار نمیتونه کنترل کرنل رو به دست بگیره و به پاور بگه تا میتونی برق بفرست به همه اجزا و همه رو بسوزونه ؟
منبع تغذیه کامپیوتر یه منبع ولتاژ ثابت هست. اجزا بر حسب مقاومتشون یه جریانی میکشن. برای اینکه به اجزا آسیب برسه لازمه ولتاژی که به اونها داده میشه زیاد بشه.
خود منبع تغیذه سازوکارهایی داره تا این اتفاق نیوفته. پس چیزی که میگید نمیشه. مگه اینکه یه منبع تغذیه تغییریافته باشه تا اینکارها رو انجام بده.
برای اینکه بدافزار بتونه کنترل کرنل لینوکس رو بدست بیاره، لازمه به عنوان یه ماژول توی کرنل بارگذاری بشه. برای اینکار به دسترسی روت نیاز داره.
اگه همچنان میترسید که یه ماژول توی کرنل بارگذاری بشه و کنترل سیستم رو به دست بگیره، میتونید تنظیم کنید که کرنل فقط ماژولهایی رو بارگذاری کنه که امضای اونها رو معتبر میدونه.
میتونید هم تنظیم کنید که کرنل کلا هیچ ماژولی رو بارگذاری نکنه. اگه این فعال بشه، تا زمانی که سیستم رو راهاندازی مجدد نکنید، نمیشه غیرفعالش کرد.
-
میتونید تنظیم کنید که کرنل فقط ماژولهایی رو بارگذاری کنه که امضای اونها رو معتبر میدونه.
چجوری؟
-
احتمالا میدونید فیلم مفت و ... خلاف قوانین انجمن هست. درسته؟
اینکه بگم دارم مجانی فیلم نگاه میکنم خلاف قوانینه ؟! والا همچین چیزی ندیده بودم توش ، ناظرین هم که چیزی نگفتن در اینباره !!!
فکر نکنم. شاید، ولی مطمئن نیستم.
ای بابا ، تعداد افرادی که گفتن آسیب سخت افزاری ممکنه بیشتر شد که ، چجوری مثلا امکان پذیره ؟
چرا میتونه. روشهای مختلفی هم برای اینکار داره.
چجوری میتونم پیداشون کنم ؟ نفهمیدم با اونی که جناب بهزادی معرفی کردم چجوری کار کنم : )
البته گفتین که اجراشون توی دبیان امنه ، بخاطر وجود apparmor و در کل بخاطر نفس گنو دیگه !
ممنون بزرگواران برای زمانی که میذارید : )
-
اگر از فایل سیستم های لینوکسی مثل ext یا xfs استفاده کنم ، ایا اصلا میتونه به یه روشی بخونه این فایل سیستم ها رو ؟
جدا از این نمیتونه (چون اصلا شناسایی نمیشه توسط سیستمعامل)، باید توجه کنی که اصلا نباید حافظهٔ فلش رو با journaling filesystems فرمت کنی، این فایلسیستمها برای این کار ساخته نشدن، سرعت rw فلش رو پایین و روی کارایی و عمرش تاثیر منفی میذارن.
-
یعنی گنو لینوکسی ها هم fat رو پیشنهاد میدن ؟
-
یعنی گنو لینوکسی ها هم fat رو پیشنهاد میدن ؟
برای فلشها، fat، exfat و یا هر فایلسیستمی که ژورنالینگ نباشه (با توجه به معیاراتون)، فایلسیستمهای ژورنالینگ طوری طراحی شدن که اگه در حین کار باهاشون، برق قطع شد، اپلیکیشنی کرش شد و...، فایلها دچار آسیب نشن،
اما همین فایلسیستمها رو حافظهٔ فلش، به واسطهٔ محدودیتهایی که این حافظهها دارند، رو سرعت، کارایی و عمرشون اثر منفی میذاره، این بهخاطر همون journaling هستش.
-
ممنون : )
-
چرا توزیع ها به ZFS مهاجرت نمکنند؟
مثله اینکه خیلی قابلیت داره
-
چرا توزیع ها به ZFS مهاجرت نمکنند؟
مثله اینکه خیلی قابلیت داره
مثل این که*
چون پروانهٔ انتشار بدی داره.
-
البته منظور من open zfs بود که پروانش از طرف بنیاد نرم افزار آزاد تائید شده
-
میتونید تنظیم کنید که کرنل فقط ماژولهایی رو بارگذاری کنه که امضای اونها رو معتبر میدونه.
چجوری؟
برای اینکه اینکار درست جواب بده، لازم هست ماژولهای کرنل امضا شده باشند، کرنل مجوز متناظر با اونها رو هم بشناسه.
اگه موقع کامپایل کرنل، CONFIG_MODULE_SIG فعال باشه، ماژولهای جدا به طور خودکار امضا میشن و چیزهای مورد نیاز هم داخل خود فایل کرنل قرار میگیرن. فقط کافی هست تا فایلهای مورد نیاز رو داخل یه دایرکتوری قرار بدید تا بقیه کارها به طور خودکار انجام بشه.
تا جایی که میدونم دو راه برای این هست که کرنل امضای ماژولها رو بررسی کنه :
۱- module.sig_enforce=1 رو به خط فرمان کرنل اضافه کنید.
اگه موقع کامپایل کرنل، CONFIG_MODULE_SIG_FORCE فعال بوده باشه، کرنل همیشه امضای ماژولها رو بررسی میکنه و فقط میذاره اونهایی بارگذاری بشن که امضای معتبری دارند. در این حالت به module.sig_enforce=1 نیازی نیست. فکر کنم کرنل فدورا و همینطور rhel اینجوری باشه.
۲- ماژول امنیتی lockdown توی کرنل فعال و روی حالت integrity یا confidentiality باشه.
یعنی گنو لینوکسی ها هم fat رو پیشنهاد میدن ؟
فکر کنم بشه journaling رو توی ext4 خاموش کرد، ولی مطمئن نیستم.
میتونید هم از ext2 استفاده کنید که کلا journaling نداره.
-
میتونید تنظیم کنید که کرنل فقط ماژولهایی رو بارگذاری کنه که امضای اونها رو معتبر میدونه.
چجوری؟
۲- ماژول امنیتی lockdown توی کرنل فعال و روی حالت integrity یا confidentiality باشه.
در ادامه این:
lsm یا همون ماژول امنیتی لینوکس (linux security module) یه سازوکاری داخل کرنل هست که اجازه میده یه سری بررسیهای امنیتی انجام بشن.
واژه "ماژول" داخل "ماژول امنیتی لینوکس" میتونه یکم گمراه کننده باشه. این واژه به این معنی نیست که ماژولهای امنیتی لینوکس، مثل ماژولهای معمولی هستند و میشه با modprobe و دستورات مشابه یا مثل ماژولهای معمولی اونها رو مدیریت کرد. بلکه اینها یه سازوکاری داخل کرنل هستند که موقع کامپایل کرنل پیکربندی میشن.
بعضی وقتا میشه بعضی چیزهای اونها رو از طریق خط فرمان کرنل هم تغییر داد.
توی بعضی موارد میشه اونها رو بعد از بوت شدن کرنل هم تنظیم کرد. (مثل ماژولهای امنیتی لینوکس lockdown یا selinux و apparmor)
البته اینکه چه ماژولهای امنیتی لینوکس فعال باشند، فقط از طریق پیکربندیهای کرنل موقع کامپایل و خط فرمان اون موقع بوت قابل تنظیم هست.
هدف اصلی lsm این هست که با اون بشه یه چارچوب mandetory access control پیاده کرد. ولی میشه برای کارهای دیگه هم ازش استفاده کرد.
برای راحتی بهش میگم ماژول امنیتی لینوکس. در ادامه، منظور از "ماژول امنیتی لینوکس و "ماژول امنیتی" یکی هست.
معمولا یه فایلسیستم مجازی securityfs روی /sys/kernel/security/ سوار شده و میشه بعضی تنظیمات امنیتی کرنل رو از اونجا دید و بعضیهاش رو کنترل کرد.
ماژولهای امنیتی لینوکس هم از همین درگاه استفاده میکنند.
توی فایل زیر نوشته شده چه ماژولهای امنیتی توی کرنل فعال شدند:
/sys/kernel/security/lsm
اسم ماژولها با یه کاما از هم جدا میشه.
ترتیب اسمها داخل اون فایل، نشون دهنده ترتیب شروع به کار اونها و همینطور ترتیبی هست که بررسیهای اونها انجام میشه.
برای مثال اگه توی اون فایل این نوشته شده باشه:
lockdown,capability,selinux,bpf
به این معنی هست که اول ماژول امنیتی lockdown شروع به کار کرده، بعد capability، بعد selinux و در آخر bpf.
ترتیبی که بررسی اونها انجام میشه هم به همین شکل هست. یعنی اول بررسیهای ماژول امنیتی lockdown انجام میشه، بعد capability، بعد selinux و در آخر bpf.
اگه توی هر کدوم از این بررسیها چیزی مخالف با سیاستهای امنیتی سیستم باشه، عملیات در حال انجام متوقف میشه و خطای مربوط، به چیزی که اون عملیات رو شروع کرده بوده برمیگرده.
ممکن هم هست چیزی متوقف نشه و فقط توی گزارشها ذکر بشه که چه چیزی با کدوم سیاست امنیتی سازگار نبوده. یا خیلی پیشامدهای دیگه.
کاری که انجام میشه، به سیاستهای امنیتی سیستم و ماژول امنیتی مورد نظر وابسته هست.
بررسیهای DAC یعنی دسترسیهای معمولی، کاربرها و گروهها و امثال اینها، قبل از بررسیهای ماژولهای امنیتی انجام میشن و اگه اونجا چیزی رد بشه، کلا کار به بررسیهای ماژولهای امنیتی نمیرسه.
اینکه به طور پیشفرض چه ماژولهای امنیتی و به چه ترتیبی شروع به کار کنند، تا حدودی به پیکربندی کرنل موقع کامپایل بستگی داره.
CONFIG_LSM مشخص میکنه به طور پیشفرض چه ماژولهای امنیتی و با چه ترتیبی شروع به کار کنند. البته معمولا چیزی که در واقعیت اتفاق میافته، با مقدار CONFIG_LSM متفاوت هست چون بقیه پیکربندیهای کرنل و همینطور شرایطی که کرنل توی اون بوت میشه هم اثر گذار هستند. (برای مثال مقدار CONFIG_SECURITY_LOCKDOWN_LSM_EARLY)
ماژول امنیتی capability همیشه به طور خودکار و به عنوان اولی شروع به کار میکنه و لازم نیست جایی تنظیم کنید که بارگذاری بشه. (مگه اینکه CONFIG_SECURITY_LOCKDOWN_LSM_ERALY تنظیم شده باشه. در این حالت به عنوان دومی شروع به کار میکنه.)
تا جایی که میدونم، کرنل دو نوع ماژول امنیتی داره. یکی ماژولهای امنیتی major (ارشد معنیش کنیم؟) و یکی ماژولهای امنیتی minor (فرعی یا جزئی معنی بشه؟) هستند.
در یک زمان، فقط یه ماژول امنیتی major میتونه بارگذاری شده باشه. selinux و apparmor دوتا ماژول امنیتی major هستند. فکر کنم smac هم باشه ولی مطمئن نیستم.
کرنل میتونه از چندین ماژول امنیتی major متفاوت پشتیبانی کنه ولی در یک زمان، فقط یکی از اونها میتونه فعال باشه.
معمولا ماژولهای امنیتی minor قبل از major ها شروع به کار میکنند ولی نمیدونم چرا bpf با اینکه یه ماژول امنیتی minor هست، ولی همیشه آخر همه شروع به کار کرده. تا حالا ندیدم آخر نباشه.
با پارامتر =lsm توی خط فرمان کرنل میشه موقع بوت کرنل مشخص کرد چه ماژولهای امنیتی و با چه ترتیبی شروع به کار کنند. اسم اونها رو با کاما از هم جدا میکنند. برای مثال این:
lsm=lockdown,landlock,yama,apparmor,bpf
یه پارامتر =security هم هست ولی دیگه منسوخ شده و به جای اون، از =lsm استفاده میشه. با =security ماژول امنیتی major مشخص میشه.
برای مثال security=selinux یا security=apparmor
اگه همزمان =security و =lsm توی خط فرمان کرنل باشند، =security نادیده گرفته میشه.
کرنل لینوکس ماژولهای امنیتی مختلفی داره. یکی از این ماژولها lockdown هست.
اینکه کرنل از این ماژول امنیتی پشتیبانی کنه، بستگی به این داره که CONFIG_LOCKDOWN_LSM موقع کامپایل کرنل فعال بوده یا نه.
ماژول امنیتی lockdown سه تا حالت داره:
۱- حالت none. در این حالت، این ماژول امنیتی هیچ کار خاصی انجام نمیده. فقط فعال شده.
۲- حالت integrity. در این حالت قابلیتهایی که اجازه میدند کرنل در حال اجرا تغییر کنه، غیرفعال میشن.
برای مثال خواب زمستانی روی swap های رمزنگاری نشده غیر فعال میشه، کرنل به شما اجازه نمیده جدولهای acpi رو ویرایش کنید، بارگذاری ماژولهایی که امضای اونها معتبر نیست مسدود میشه، syscal مربوط به kexec نمیذاره فایلهایی که امضای اونها معتبر نیست بارگذاری بشن و ...
برای اطلاعات دقیقتر، صفحه man مربوط رو ببینید
man kernel_lockdown
۳- حالت confidentiality. در این حالت علاوه بر محدودیتهای حالت integrity، کرنل اجازه نمیده ابزارهای فضای کاربر (user space) اطلاعات محرمانه کرنل رو استخراج کنند. برای مثال نمیذاره کلیدهای رمزنگاری دیسک از طریق فضای کاربر استخراج بشن. حتی کاربر روت هم نمیتونه اینکار رو انجام بده.
چیزهایی که داخل فضای کرنل (kernel space) هستند (مثل ماژولهای معمولی)، همچنان میتونند به اون اطلاعات محرمانه دسترسی پیدا کنند.
حالت پیشفرض lockdown، به این بستگی داره که کدوم یکی از اینها موقع کرنل فعال بوده:
CONFIG_LOCK_DOWN_KERNEL_FORCE_NONE
CONFIG_LOCK_DOWN_KERNEL_FORCE_INTEGRITY
CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY
اولی باعث میشه ماژول امنیتی lockdown به طور پیشفرض توی حالت none شروع به کار کنه. دومی توی حالت integrity و آخری توی حالت confidentiality
فقط یکی از اینها میتونه فعال باشه. (مشخص هست چرا. اینکه مثلا حالت پیشفرض هم integity و هم confidentilaty باشه معنی نداره.)
میشه با پارامتر =lockdown توی خط فرمان کرنل، حالتی که این ماژول امنیتی شروع به کار میکنه رو تعیین کرد. (البته مطمئن نیستم همیشه کار کنه.)
برای مثال اضافه کردن lockdown=confidentiality به خط فرمان کرنل باعث میشه این ماژول امنیتی به طور پیشفرض توی حالت confidentiality شروع به کار کنه.
اگه این ماژول امنیتی توی کرنل فعال شده باشه، از طریق فایل زیر میشه فهمید توی چه حالتی قرار داره:
/sys/kernel/security/lockdown
حالت فعال، بین [ ] نمایش داده میشه.
از طریق همین فایل میشه حالت فعال رو تغییر داد. برای اینکار فقط کافیه اسم حالت مورد نظر رو داخل فایل نوشت.
مثلا برای رفتن به حالت integrity بعد از بوت شدن سیستم، میشه اینجوری عمل کرد:
echo integrity > /sys/kernel/security/lockdown
البته از اونجایی که نوشتن روی این فایل به دسترسی روت نیاز داره و sudo یا doas روی redirect ها تاثیر ندارند، دستور بالا وقتی کار میده که وارد کاربر روت شده باشید.
برای حل این مشکل میشه از tee کمک گرفت. اینجوری:
echo confidentiality | sudo tee /sys/kernel/security/lockdown
میشه حالت ماژول lockdown رو از یه حالت پایینتر به یه حالت بالاتر تغییر داد ولی برعکسش ممکن نیست.
یعنی میشه از حالت none به حالت integrity یا confidentiality رفت ولی نمیشه حالت فعال رو از integrity یا confidentiality به none تغییر کرد.
میشه از حالت integrity به حالت confidentiality رفت، ولی به none نمیشه.
از حالت confidentiality به هیچ حالت دیگهای نمیشه رفت.
اگه کرنل با CONFIG_SECURITY_LOCKDOWN_LSM_EARLY کامپایل بشه، اونوقت بدون توجه به بقیه چیزها، همیشه ماژول امنیتی lockdown قبل از همه شروع به کار میکنه.
در این حالت فرقی نداره =lsm توی خط فرمان کرنل چی هست یا CONFIG_LSM چی گفته یا اینکه capability باید اول از همه بارگذاری بشه، در هر حالت، lockdown قبل از همه شروع به کار میکنه.
این عملکرد به این خاطر هست که اولهای بوت شدن کرنل، هنوز زیرسیستم امنیت (security subsystem) کامل شروع به کار نکرده و ممکنه بعضی پارامترها توی خط فرمان کرنل، باعث انجام کارهایی بشن که ماژول امنیتی lockdown جلوی اونها رو میگیره.
CONFIG_SECURITY_LOCKDOWN_LSM_EARLY باعث میشه سیاستهای امنیتی lockdown، حتی روی خط فرمان کرنل هم اعمال بشه.
این پیکربندی موقع کامپایل کرنلها دبیان فعال هست. به همین خاطر اگه از کرنل دبیان استفاده میکنید، ماژول امنیتی lockdown همیشه قبل بقیه ماژولهای امنیتی فعال شده.
اگه کرنل با CONFIG_LOCK_DOWN_IN_EFI_SECURE_BOOT کامپایل بشه و موقع بوت فکر کنه توی حالت uefi بوت شده و secure boot فعال هست، اونوقت ماژول امنیتی lockdown حتما فعال میشه و حداقل توی حالت integrity قرار میگیره. کرنلهای دبیان اینجوری هست.
فکر کنم قبلا میشد با فشردن کلیدهای alt + sysrq + x روی یه صفحه کلید که به طور فیزیکی به کامپیوتر وصله، حالت lockdown رو غیرفعال کرد. اما انگار دیگه حذف شده.