انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: سودو. در 07 اردیبهشت 1401، 11:31 قظ
-
درود عزیزان !
الان هر کسی یه توزیع زنده بریزه روی فلش و وصلش کنه به رایانه من میتونه بالا بیارتش و به افراز ها و در نتیجه پرونده های من دسترسی داشته باشه ، شاید خیلی چیز عادی ای باشه پاسخ این پرسش برای شما و همه اعمالش کرده باشید ، اما تجربه پایین من منجر به کلیک کردن روی ( ایجاد موضوع جدید ) شد ! روی دیسک یا بایوس یا هر چیزی که خارج از دانش منه میشه رمز گذاشت ؟
-
روی همهٔ اینها میشه رمز گذاشت. ولی نکته اینه که دسترسی فیزیکی=دسترسی کامل.
-
به هر حال هر چیزی که باعث افزایش امنیت میشه رو عزیزان وارد تر اگر محبت کنن ممنون میشم ، راهنمایی میکنید بزرگواران ؟
-
به هر حال هر چیزی که باعث افزایش امنیت میشه رو عزیزان وارد تر اگر محبت کنن ممنون میشم ، راهنمایی میکنید بزرگواران ؟
میتونید با یه رمز کل هارد رو رمزنگاری کنید اما اگه رمز یادتون بره، اطلاعاتتون پررررر : )))
میتونید از بایوس برای زمان بوت هم یه رمز بزارید که قبل از بالا اومدن سیستم عامل یا هز چیزی ازتون رمز بخواد.
-
مال بایوس که لابد باید تو خودشو بگردم ، مال هاردم لابد با نرم افزار های مدیریت دیسکه نه ؟
دیگه چه چیزایی هست ؟ نه که اطلاعات خیلی مهمی داشته باشم ، صرفا جهت یادگیری ضمن دیدن نتیجش !
برسم خونه این دو مورد رو بررسی میکنم 😃
-
مال هاردم لابد با نرم افزار های مدیریت دیسکه نه ؟
اون رمزنگاریهایی که توسط خود دیسک انجام میشه معمولا خیلی راحت شکسته میشه.
میتونید توی کرنل لینوکس از cryptsetup و luks برای اینکار استفاده کنید.
البته نمیتونید تمام دادهها رو رمرنگاری کنید. بوتلودر نباید رمزنگاری شده باشه. در غیر اینصورت، مادربرد نمیتونه اون رو اجرا کنه.
دقت کنید که با رمزنگاری دیسک، کسی که دسترسی فیزیکی داره نمیتونه به اطلاعات رمزنگاری شده دسترسی پیدا کنه یا اونها رو تغییر بده.
ولی میتونه بوتلودر رو با یه بوتلودر که خودش آماده کرده عوض کنه. وقتی شما میرید سراغ کامپیوتر و رمز رو وارد میکنید، اون بوتلودر خبیث، رمز رو یه جایی ذخیره میکنه و مهاجم میتونه دفعه بعدی که اومد، رمز رو داشته باشه و اطلاعات رو رمزنگاری کنه.
به این نوع حمله گفته میشه evil maid attack.
میشه با secure boot جلوی اون رو گرفت ولی راههایی برای دور زدن secure boot هم وجود داره.
اگه بعدا وقت کنم، چیزهای بیشتری میگم در مورد حملاتی که ممکنه انجام داد، وقتی مهاجم دسترسی فیزیکی داره.
-
نمیشه یکاری کرد پاورو که زدی اول رمز بخواد و هبچ کاری نکنه و به کاربر اجازه دسترسی به هیچ چیزی رو نده ؟
نفهمیدم چجوری میتونه بوت لودر خودشو جایگزین کنه ؟ یکم توضیح میدید ؟ مگه روی بایوس رمز باشه ، نباید ازش بگذره تا بتونه کاری انجام بده ؟
( عالی بود ، ممنونم جناب دراگون ، حتما حتما منتظر فرسته بعدی تون هستم ! )
-
رمز بایوس، با قطع برق و درآوردن باتری مادربرد، پاک میشه.
-
پس اصلا چرا هست ؟ 😐
چیکار باید کرد یعنی ؟
-
از خود رایانه کاری نمیشه کرد. باید دسترسی فیزیکی به رایانه رو در محیط محدود کنید.
-
حالا قرار نیس یه هکر حرفه ای بیاد بالا سر رایانه من ، همین که توی این تاپیک قراره جناب دراگون محبت کنن با حملات مهاجمان در صورت دسترسی فیزیکی اشنامون کنن و باز اضافه کنن به سطح دانش حداقل من ، و ایشون و عزیزان اگاه روش های افزایش امنیت سامانه رو با اینجانب در میون بزارند خیلی خوشحالم هم میشم : )
-
فقط امنیت ویندوز ;D ;D ;D ;D ;D
با تغییر یه فایل (SAM) با ابزار های خیلی ساده میشه پسوردشو برداشت
-
جان من الان حاشیه نرو ، بزار متمرکز بمونه ، بحث که تموم شد با هم به ویندوز میخندیم 😂
-
اگه بعدا وقت کنم، چیزهای بیشتری میگم در مورد حملاتی که ممکنه انجام داد، وقتی مهاجم دسترسی فیزیکی داره
جناب دراگون ، دست کم نحوه رمزنگاری دیسک رو توضیح بدید که هر کسی فقط با یه usb شامل یه توزیع زنده ، نتونه به دیسک دسترسی پیدا کنه : )
-
جستوجو کن: luks full disk encryption
-
یک سوال چرا توی توزیع هایی که برای کاربر روت رمز نمیخوان یا نمیزاریم فکری برای دسترسی کاربر روت از منوی ریکاوری نمیشه ؟ با همین دسترسی سودو خودمون گند میزنیم به همه چی یکی بلد باشه راحت به کاربر روت بدون حتی وارد کردن رمز کاربر دسترسی داره
-
فرقی نمیکنه رمز میخوان یا نه.
-
درست متوجه نشدم منظورتون رو ؟
-
هر فردی دسترسی فیزیکی به کامپیوتر داشته باشه به راحتی دسترسی به کاربر ریشه داره، حالا چه کاربر ریشه رمز داشته باشه، چه نداشته باشه.
-
حتی اگر بوت لودر هم رمز گذاری شده باشد؟
-
با USB Stick سیستم رو راه میندازه.
-
یعنی هر کاری بکنی بازم هکرا یه قدم جلوترن ؟ هنوز هیچ کسی نتونسته راهی پیدا کنه ؟ که حتی در صورت دسترسی فیزیکی نشه کاری کرد ؟
-
هنوز هیچ کسی نتونسته راهی پیدا کنه ؟ که حتی در صورت دسترسی فیزیکی نشه کاری کرد ؟
چنین کاریقانون اول امنیت رو زیرپا میذاره و بنابراین غیرممکنه.
-
یعنی هر کاری بکنی بازم هکرا یه قدم جلوترن ؟ هنوز هیچ کسی نتونسته راهی پیدا کنه ؟ که حتی در صورت دسترسی فیزیکی نشه کاری کرد ؟
توضیح دادند دیگه، باید اطلاعات رمزنگاری بشه. البته روشهای حملهای برای اون هم وجود داره در شرایط مختلف اما ایمن ترین راه ممکن هست.
برای امنیت بیشتر میتونید bootloader خودتون رو روی یک usb داشته باشید و سیستم رو با اون بوت کنید.
-
هنوز هیچ کسی نتونسته راهی پیدا کنه ؟ که حتی در صورت دسترسی فیزیکی نشه کاری کرد ؟
چنین کاریقانون اول امنیت رو زیرپا میذاره و بنابراین غیرممکنه.
چی هست اولین قانون امنیت ؟
یعنی هر کاری بکنی بازم هکرا یه قدم جلوترن ؟ هنوز هیچ کسی نتونسته راهی پیدا کنه ؟ که حتی در صورت دسترسی فیزیکی نشه کاری کرد ؟
توضیح دادند دیگه، باید اطلاعات رمزنگاری بشه. البته روشهای حملهای برای اون هم وجود داره در شرایط مختلف اما ایمن ترین راه ممکن هست.
برای امنیت بیشتر میتونید bootloader خودتون رو روی یک usb داشته باشید و سیستم رو با اون بوت کنید.
همینقدر که نشه با یه توزیع زنده به اطلاعات دیسک دسترسی داشت کافیه !
-
چی هست اولین قانون امنیت ؟
boot access = root access
همینقدر که نشه با یه توزیع زنده به اطلاعات دیسک دسترسی داشت کافیه !
در هر صورت میشه. با بیشترین تمهیدات امنیتی، ممکنه زمانش یه کم بیشتر طول بکشه یا یکی دو مرحله بیشتر بشه.
-
خب پس باید در و بدنه لپ تاپ رو سوراخ کنیم یه قفل کتابی بهش بزنیم، کلیدشو بزاریم تو یه صندوق فلزی محکم و قطور، کلید صندوقو یجایی قایم کنیم که عقل جن بهش نرسه.
و البته که به صندوق برق وصل میکنیم که شوک الکتریکی ایجاد کنه کسی دست نزنه(برق اضطراری فراموش نشه) ;D
-
سرورهای که برای نگهداری کلیدهای دیجیتال استفاده میشن، چیزی شبیه این هستند. مثلا تا سعی کنید در بدنهٔ اونها تغییری بدید، اطلاعات داخلشون رو پاک میکنند. اگر علاقه دارید بدونید چطور کار میکنند، در مورد HSM جستجو کنید.
-
نمیشه یکاری کرد پاورو که زدی اول رمز بخواد و هبچ کاری نکنه و به کاربر اجازه دسترسی به هیچ چیزی رو نده ؟
چرا میشه. ولی مشکل اینجاست که مادربردهای قدیمی، تنظیمات bios رو روی یه چیپ حافظه که با قطع برق اطلاعاتش رو از دست میده، ذخیره میکنند.
تنظیمات پیشفرض معمولا روی یه حافظه دائمی فلش قرار داره.
برای اینکه با قطع برق مادربرد، همه تنظیمات به حالت اول برنگرده، یه باتری کوچک روی مادربرد هست که برق موردنیاز اون حافظه رو تامین میکنه.
معمولا یه چیزی هم روی مادربرد هست که تاریخ و ساعت رو نگهداری کنه. انرژی اون چیز هم از این باتری تامین میشه.
هر کی بتونه برق کامپیوتر رو قطع کنه و باتری داخل مادربرد رو دربیاره، میتونه تنظیمات bios رو به حالت اول برگردونه و رمز رو کلا دور بزنه.
توی کامپیوترهای جدید، معمولا اونهایی که از uefi استفاده میکنند، تنظیمات uefi روی یه حافظه دائمی فلش ذخیره میشه که میتونه بدون برق، اطلاعات رو حدود 20 سال ذخیره داخل خودش داشته باشه.(بله، حافظههای فلش، اونجوری که فکر میکنید، دائمی نیستند)
با توجه به این شرایط، از نظر تئوری میشه کاری که گفتید رو انجام داد، ولی یه مشکلی هست.
اکثر مادربردهای uefi که برای کامپیوتر دسکتاپ ساخته میشن، با قطع برق مادربرد و خارج کردن باتری اونها، تنظیماتشون به حالت اول برمیگرده.
دلیلش اینه که خیلیها عادت کردند با انجام اینکار، تنظیمات uefi رو به حالت اول برگردونند. به خاطر همین پیادهسازی uefi اکثر تولیدکنندهها جوری هست که با قطع برق مادربرد و خارج کردن باتری، تنظیماتش به حالت اول برگرده.
حتی بعضی از مادربردها یه دکمه پشتشون دارند که با فشار دادنش، تنظیمات uefi به حالت اول برمیگرده.
مادربردهای لپتاپها معمولا اینجوری نیستند. (با فرض اینکه uefi باشند) و با قطع برق، تنظیماتشون به حالت اول بر نمیگرده.
مادربردهای رده سرور هم معمولا اینجوری نیستند.
بعضی از مادربردهای رده دسکتاپ که معمولا برای workstation ها استفاده میشن هم با قطع برق، تنظیماتشون به حالت اول برنمیگرده.
نفهمیدم چجوری میتونه بوت لودر خودشو جایگزین کنه ؟ یکم توضیح میدید ؟ مگه روی بایوس رمز باشه ، نباید ازش بگذره تا بتونه کاری انجام بده ؟
اول، من فرض کردن bios/uefi رمز نداره. دوم، همونطور که بالا دیدید، میشه رمز bios/uefi اکثر مادربردهای رده دسکتاپ رو دور زد. سوم، اصلا برای عوض کردن بوتلودر لازم نیست کامپیوتر هدف رو روشن کرد. کافیه فقط به حافظه ذخیرهسازی دسترسی وجود داشته باشه.
از اینجا به بعد فرض کردم جایی که کرنل و initramfs قرار داره، رمزنگاری شده هست و بوتلودر موقع فرایند بوت، اونجا رو باز میکنه. به عبارت دیگه، نمیشه کرنل و initramfs رو مستقیما تغییر داد.
اگه کامپیوتر توی حالت legacy یا همون bios بوت میشه، روند بوت اینجوری هست که firmware روی مادربرد، 446 بایت اول حافظهای که قراره بوت بشه رو اجرا میکنه. از اونجایی که این فضای زیادی نیست، معمولا بوتلودر طی دو مرحله اجرا میشه. مرحله اول توسط firmware مادربرد و مرحله دوم توسط مرحله اول اجرا میشه.
این بوتلودر مرحله اول نمیتونه رمزنگاری شده باشه چون در اینصورت، firmware روی مادربرد نمیتونه اون رو اجرا کنه. معمولا firmware های روی مادربردها نمیتونند چیزی رو رمزگشایی/رمزنگاری کنند.
یه کسی میتونه حافظه ذخیرهسازی رو جدا کنه و بوتلودر خودش رو جای بوتلودر مرحله اول بنویسه. (خیلی راحت با دستور dd) بعد اون بوتلودر میتونه یه بوتلودر دیگه رو برای مرحله دوم اجرا کنه.
این بوتلودر مرحله دوم توسط مهاجم، روی جایی از حافظه ذخیرهسازی قرار گرفته.
اینجوری مهاجم به بقیه مراحل بوت دسترسی داره و میتونه یه صفحه دریافت رمزعبور قلابی نمایش بده، رمزعبور رو بگیره و جایی ذخیره کنه و بقیه مراحل بوت رو انجام بده تا شما متوجه قلابی بودن اون صفحه نشید.
اگه کامپیوتر توی حالت uefi بوت میشه، فرایند بوت اینجوریه که firmware روی مادربرد، فایلهای EFI داخل EFI system partition رو اجرا میکنه. EFI system partition معمولا با فایلسیستم vfat یا همون fat32 فرمت میشه. معمولا هم رمزنگاری نشده هست.
به همین دلیل یه کسی میتونه بیاد و فایل EFI خودش رو جایگزین چیزی که هست کنه و بقیه مراحل رو مثل بالا انجام بده. یعنی یه صفحه دریافت رمزعبور قلابی نشون بده، رمز رو بگیره و یه جایی ذخیره کنه و بقیه مراحل بوت رو انجام بده تا کسی متوجه نشه یه جای کار میلنگه
توی حالتهای بالا فرض کردیم دسترسی مستقیم به کرنل و initramfs وجود نداره.
اگه جایی که initramfs و کرنل قرار دارند، رمزنگاری نشده باشه، کار برای مهاجم خیلی راحتتر هست. کافیه که مهاجم initramfs رو باز کنه و اون رو تغییر بده تا وقتی که رمز رو از کاربر دریافت کرد اون رو یه جایی ذخیره کنه.
مهاجم حتی میتونه initramfs و کرنل خودش رو به جای initramfs و کرنل شما قرار بده.
initramfs معمولا یه فایل cpio هست که فشرده شده. میشه راحت بازش کرد. معمولا initramfs اینجوریه که یه سری اسکریپت کارهای مربوط به بوت مثل سوار کردن فایلسیستمها، فعال کردن lvm، باز کردن فایلسیستمهای رمزنگاری شده، شروع init system اصلی و ... رو انجام میدن.
داخل initramfs معمولا یه libc، یه پوسته ساده مثل sh، بعضی ابزارهای coreutils و اینجور چیزها پیدا میشه.
از اونجایی که معمولا یه سری اسکریپت کارها رو انجام میدن، زیاد سخت نیست که اون اسکریپتها رو تغییر داد تا علاوه بر اینکه کارهای اصلی رو انجام میدن، رمز رو هم یه جایی ذخیره کنند تا بعدا بشه ازش استفاده کرد. معمولا اینکار راحتتر از نوشتن یا تغییر یه بوتلودر به زبان c هست.
حتی اگه مهاجم نتونه با تغییر initramfs به جایی برسه، میتونه initramfs خودش رو جایگرین کنه.
اگه در مورد initramfs اطلاعات بیشتری میخواهید، توی یه موضوع دیگه بپرسید.
با توجه به این چیزها، اگه مهاجم بتونه چندبار به کامپیوتر دسترسی فیزیکی پیدا کنه بدون اینکه شما بفهمید، میتونه کلید رمزنگاری رو بدست بیاره و توی یه فرصت مناسب، اطلاعات رمزنگاری شده رو بخونه.
با این فرض که کرنل و initramfs رو یه جای مجزا از روت قرار دارند و اونجا و همینطور روت با دوتا کلید مجزا رمزنگاری شدند، مهاجم حداقل ۳ بار لازمه دسترسی فیزیکی پیدا کنه.
بار اول بیاد و بوتلودر رو تعویض کنه تا رمزِ جایی که کرنل و initramfs قرار داره رو بدست بیاره، بار دوم بیاد و initramfs خودش رو جایگزین کنه و رمز فایلسیستم روت رو بدست بیاره و در نهایت برای بار سوم بیاد و اطلاعات فایلسیستم روت رو بخونه.
یه راه برای جلوگیری از این نوع حمله اینه که کرنل و initramfs رو روی یه فلش usb یا یه cd یا ... ذخیره کنید و هر وقت خواستید سیستم رو روشن کنید، اون چیز رو وصل کنید و بعد از اینکه مراحل بوت انجام شد اون چیز رو جدا کنید.
اینجوری مهاجم نمیتونه کرنل و initramfs رو تغییر بده چون اونها داخل یه حافظه، همراه شما هستند و مهاجم بهشون دسترسی نداره.
مشخصه اگه مهاجم بتونه به اون حافظه دسترسی پیدا کنه، میتونه کرنل و initramfs رو هم تغییر بده. میشه اون حافظه رو هم رمزنگاری کرد تا حتی اگه مهاجم به اون حافظه دسترسی پیدا کرد، کلیدش رو هم نیاز داشته باشه.
یه راه دیگه برای جلوگیری از این حمله اینه که firmware روی مادربرد، فقط فایلهای امضا شده رو اجرا کنه. این توی uefi پیاده شده و بهش میگن secure boot. البته معمولا به طور پیشفرض از کلیدها و امضاهای مایکروسافت استفاده میکنه که میشه خیلی راحت با یه بوتلودر امضا شده دورش زد.
توزیعهای مختلفی هم هستند که بوتلودر امضا شده دارند. مثل همین اوبونتو یا دبیان یا فدورا. با آرچ هم فکر کنم بشه.
راههای دیگه هم برای دور زدن secure boot هست، مثل تغییر firmware روی مادربرد.
احتمالا بعدا در مورد secure boot و بقیه حملات وقتی دسترسی فیزیکی هست یه چیزی میگم.
در نهایت اینجوریه که هر کسی بتونه دسترسی فیزیکی پیدا کنه، کارش برای دسترسی به سیستم راحتتره.
کلا سخت میشه جلوی اینها رو گرفت.
فقط امنیت ویندوز ;D ;D ;D ;D ;D
با تغییر یه فایل (SAM) با ابزار های خیلی ساده میشه پسوردشو برداشت
اینجا هم فرق زیادی نداره. میشه با تغییر فایل shadow اینکار رو کرد.
کار زیاد سختی نیست. با تکزیع زنده کامپیوتر رو بوت میکنید، اگر هم نشد، حافظه ذخیرهسازی رو جدا میکنید، میزنید به کامپیوتر/لپتاپ خودتون.
فایلسیستم روت رو یه جا مثلا /mnt/ سوار میکنید و با chroot وارد میشید و با یه passwd رمز رو عوض میکنید. به همین سادگی :)
میشه وارد هم نشد و passwd رو با دستور chroot اجرا کرد تا توی فایل تاریخچه پوسته هم چیزی نوشته نشه.
اگه دیسک رمزنگاری نشده باشه، فرقی نداره وبندوز داشته باشید یا اوبونتو یا مک یا ...، در هر صورت میشه رمزش رو به راحتی عوض کرد.
پیدا کردن رمز ولی فرق داره. توی ویندوز نسبتا راحتتره (به دلیل عدم استفاده از salt و استفاده از الگوریتمهای هش ضعیف)، توی اوبونتو و اکثر توزیعها اگه رمز ساده نباشه، کار سختیه.
یک سوال چرا توی توزیع هایی که برای کاربر روت رمز نمیخوان یا نمیزاریم فکری برای دسترسی کاربر روت از منوی ریکاوری نمیشه ؟ با همین دسترسی سودو خودمون گند میزنیم به همه چی یکی بلد باشه راحت به کاربر روت بدون حتی وارد کردن رمز کاربر دسترسی داره
اگه حافظه ذخیرهسازی رمزنگاری نشده باشه، فرقی نمیکنه رمز بپرسه یا نه. یکی میتونه با یه توزیع زنده کامپیوتر رو بوت کنه و از طریق chroot به کارهاش رو انجام بده.
اگه هم نشد توزیع زنده رو بوت کنه، راحت حافظه ذخیرهسازی رو میزنه به کامپیتور/لپتاپ خودش و کارش رو از اونجا انجام میده.
جناب دراگون ، دست کم نحوه رمزنگاری دیسک رو توضیح بدید که هر کسی فقط با یه usb شامل یه توزیع زنده ، نتونه به دیسک دسترسی پیدا کنه : )
به طور خلاصه: کارهای رمزنگاری با دستور cryptsetup انجام میشه.
این صفحه (https://wiki.archlinux.org/title/Dm-crypt) از ویکی آرچ و لینکهای اون توضیحات خیلی خوبی داده.
این صفحه (https://wiki.archlinux.org/title/Data-at-rest_encryption) هم توضیحات خوبی داره.
-
جناب دراگون بدون حقوق اینقدر کامل توضیح میدید؟
واقعا عالی بود، خیلی ممنون.
اگر امکانش منبع(لینک دوره و...) اطلاعاتی که در طول زمان کسب کردید رو بگید تا کمتر مزاحم شما بشیم حقیقتا خجالت میکشم سوال بپرسم. :)
-
همانند ندارین بزرگوار ، براستی که اژدهای دنیای گنو / لینوکس نامی شایسته شماس !
از تک تک واژگان این نوشته هر دم آموختم !
مادربردهای لپتاپها معمولا اینجوری نیستند. (با فرض اینکه uefi باشند) و با قطع برق، تنظیماتشون به حالت اول بر نمیگرده.
مادربردهای رده سرور هم معمولا اینجوری نیستند.
بعضی از مادربردهای رده دسکتاپ که معمولا برای workstation ها استفاده میشن هم با قطع برق، تنظیماتشون به حالت اول برنمیگرده.
پس در این ها دیگه ( مهاجم ) نمیتونه از اون رمز جلوتر بره ؟ بعد اگه خود فرد رمزو فراموش کنه چی ؟
اگه در مورد initramfs اطلاعات بیشتری میخواهید، توی یه موضوع دیگه بپرسید.
همین اندازه میدونم که داده ای مورد نیاز هسته ، هنگام فرایند راه اندازی ، به کمک initramfs به لینوکس داده میشه ، اگه فراتر از این ، مواردی هست شگفتا بر انگیز و شما هم میتونید این مورد رو باز کنید ، چرا که نه !
یه راه برای جلوگیری از این نوع حمله اینه که کرنل و initramfs رو روی یه فلش usb یا یه cd یا ... ذخیره کنید و هر وقت خواستید سیستم رو روشن کنید، اون چیز رو وصل کنید و بعد از اینکه مراحل بوت انجام شد اون چیز رو جدا کنید
چجوری میتونم این کارو انجام بدم ؟
مگه این هسته روی usb ، مدیریت سامانه رو بدست نگرفته ؟ پس چجوری میشه جداش کرد ؟
بار کننده راه اندازی یا همون ( boot loader ) رو بریزیم روی usb بهتره یا لینوکس و initramfs رو ؟ یا هر سه رو ؟
میشه از جای خالی مونده usb بهره برد ؟
میشه اون حافظه رو هم رمزنگاری کرد تا حتی اگه مهاجم به اون حافظه دسترسی پیدا کرد، کلیدش رو هم نیاز داشته باشه.
با همون روش رمزنگاری دیسک ؟
یه راه دیگه برای جلوگیری از این حمله اینه که firmware روی مادربرد، فقط فایلهای امضا شده رو اجرا کنه. این توی uefi پیاده شده و بهش میگن secure boot. البته معمولا به طور پیشفرض از کلیدها و امضاهای مایکروسافت استفاده میکنه که میشه خیلی راحت با یه بوتلودر امضا شده دورش زد.
توزیعهای مختلفی هم هستند که بوتلودر امضا شده دارند. مثل همین اوبونتو یا دبیان یا فدورا. با آرچ هم فکر کنم بشه.
راههای دیگه هم برای دور زدن secure boot هست، مثل تغییر firmware روی مادربرد.
احتمالا بعدا در مورد secure boot و بقیه حملات وقتی دسترسی فیزیکی هست یه چیزی میگم
صد در صد ، یکی از بزرگ ترین انگیزه های من برای اومدن به انجمن فرسته های شماس !
بررسی ( امضای ) راه انداز در bios ممکن نیست ؟
اگر هست ، چجوری باید بهش گفت که فقط این boot loader برگزیده رو میتونی اجرا کنی ؟
چنانچه بشه این کارو انجام داد ، دیگه راه انداز روی توزیع های زنده اجرا نمیشن دیگه ؟ برای کسی میگم که توانایی دستکاری ثابت افزار رو نداره !
بعد زمانی که گراب خراب بشه چجوری میشه درستش کرد ؟
فک کنم گرابو روی usb بزاریم ایده بهتریه نه ؟ میشه هم گراب و هم هسته و initramfs روی usb باشن و پرونده های دیگری هم کنارش نوشت ؟
زمانیکه این سه مورد رو جدا کنیم میشه کل دیسک رو رمزنگاری کرد درسته ؟ پس اگر هم کل دیسک رمز نگاری شده باشه ، هم فقط از طریق usb ویژه بتوان سامانه رو راه اندازی کرد چون فقط اون ( امضا ) رو میپذیره ، چجوری میتونه ( حمله ای ) بکنه با این گمان که ندونه چجوری ثابت افزار رو دستکاری کنه
اگر امکانش منبع(لینک دوره و...) اطلاعاتی که در طول زمان کسب کردید رو بگید
گویا ویکی ارچ و manual ها
-
کار زیاد سختی نیست. با تکزیع زنده کامپیوتر رو بوت میکنید، اگر هم نشد، حافظه ذخیرهسازی رو جدا میکنید، میزنید به کامپیوتر/لپتاپ خودتون.
فایلسیستم روت رو یه جا مثلا /mnt/ سوار میکنید و با chroot وارد میشید و با یه passwd رمز رو عوض میکنید. به همین سادگی
البته وقتی توزیعی مثل اوبونتو داشته باشند که کاربر روت غیر فعال باشه راحت از گراب میریم به منوی ریکاوری و بدون رمز دسترسی کامل به روت داریم حالا راحت با دستور پسورد رمز رو عوض می کنیم
-
البته وقتی توزیعی مثل اوبونتو داشته باشند که کاربر روت غیر فعال باشه راحت از گراب میریم به منوی ریکاوری و بدون رمز دسترسی کامل به روت داریم حالا راحت با دستور پسورد رمز رو عوض می کنیم
هر توزیعی که داشته باشید، از گراب میشه بدون رمز وارد سیستم شد.
-
نمیدونید چه اندازه خوشحال میشم هر بار که اینو میبینم 😄
(https://forum.ubuntu-ir.org/index.php?action=dlattach;topic=154854.0;attach=53194)
-
پس در این ها دیگه ( مهاجم ) نمیتونه از اون رمز جلوتر بره ؟
بله همینجوره. مگه اینکه firmware روی مادربرد رو تغییر بده یا اینکه firmware آسیبپذیری امنیتی/درپشتی داشته باشه. یا اینکه رمزعبور رو به هر روشی بدست بیاره.
بعد اگه خود فرد رمزو فراموش کنه چی ؟
اونوقت باید firmware روی مادربرد رو تغییر داد تا این رمز حذف بشه. یا شاید خود سازنده مادربرد یه امکانی برای این موارد در نظر گرفته باشه.
همین اندازه میدونم که داده ای مورد نیاز هسته ، هنگام فرایند راه اندازی ، به کمک initramfs به لینوکس داده میشه
تا حدودی درست میگید، ولی دقیق نیست. initramfs یه early userspace هست.
در مورد initramfs توی یه موضوع دیگه بپرسید. بحث رو از این عنوان اصلی این موضوع دور میکنه.
مگه این هسته روی usb ، مدیریت سامانه رو بدست نگرفته ؟ پس چجوری میشه جداش کرد ؟
کرنل توسط بوتلودر یا هر چیز دیگه توی رم بارگذاری میشه و اونجا کارها رو انجام میده. کرنل در حال اجرا اون فایلی نیست که توی /boot/ میبینید، کرنل توی رم قرار گرفته و از اونجا کارها رو انجام میده.
میتونید فایل کرنل توی /boot/ رو پاک کنید و ببینید که برای سیستم در حال اجرا مشکلی ایجاد نمیشه. ولی بعد از راهاندازی مجدد، سیستم دیگه با کرنل قبلی بوت نمیشه. چون فایل اون موجود نیست که یه چیزی بخواهد اون رو توی رم بارگذاری کنه.
بار کننده راه اندازی یا همون ( boot loader ) رو بریزیم روی usb بهتره یا لینوکس و initramfs رو ؟ یا هر سه رو ؟
هر سه رو بریزید خوبه. ولی اگه کامپیوتر توی حالت uefi بوت میشه، قضیه یکم فرق میکنه.
میشه از جای خالی مونده usb بهره برد ؟
بله میشه.
با همون روش رمزنگاری دیسک ؟
بله با همون روش. ولی اگه میخواهید بوتلودر شما گراب باشه، باید از luks1 استفاده کنید. پشتیبانی از luks2 هنوز توی گراب کامل نیست.
بررسی ( امضای ) راه انداز در bios ممکن نیست ؟
تا جایی که میدونم نه. پیادهسازیهای bios چنین چیزی ندارند.
اگر هست ، چجوری باید بهش گفت که فقط این boot loader برگزیده رو میتونی اجرا کنی ؟
به طور خلاصه از طریق امضای دیجیتال.
چنانچه بشه این کارو انجام داد ، دیگه راه انداز روی توزیع های زنده اجرا نمیشن دیگه ؟ برای کسی میگم که توانایی دستکاری ثابت افزار رو نداره !
بله. همینجور هست که میگید.
بعد زمانی که گراب خراب بشه چجوری میشه درستش کرد ؟
من فرض میکنم منظورتون اینه که وقتی توزیع خراب شده باید چیکار کنید.
در این حالت میتونید secure boot رو موقتی خاموش کنید، کارهای تعمیر رو انجام بدید و بعد دوباره secure boot رو فعال کنید.
میتونید هم از iso هایی که بوتلودر اونها از قبل امضا شده استفاده کنید. iso رسمی اکثر توزیعها یه shim امضا شده با کلید مایکروسافت دارد. اگه از کلیدهای خودتون برای secure boot استفاده کردید، میتونید بوتلودر روی iso رو خودتون امضا کنید و iso جدید بسازید؛ زیاد سخت نیست.
فک کنم گرابو روی usb بزاریم ایده بهتریه نه ؟ میشه هم گراب و هم هسته و initramfs روی usb باشن و پرونده های دیگری هم کنارش نوشت ؟
اگه هر سه رو بذارید روی فلش بهتره. میتونید از اون فلش هم برای کارهای دیگه استفاده کنید ولی دقت کنید با اینکار ممکنه یه کس دیگه بتونه بوتلودر روی فلش رو تعویض کنه.
زمانیکه این سه مورد رو جدا کنیم میشه کل دیسک رو رمزنگاری کرد درسته ؟
بله، میشه هر چی روی دیسک هست رو رمزنگاری کرد.
پس اگر هم کل دیسک رمز نگاری شده باشه ، هم فقط از طریق usb ویژه بتوان سامانه رو راه اندازی کرد چون فقط اون ( امضا ) رو میپذیره ، چجوری میتونه ( حمله ای ) بکنه با این گمان که ندونه چجوری ثابت افزار رو دستکاری کنه
باز هم میشه حملات مختلفی انجام داد. مثل cold boot attack. اگه مهاجم بتونه وقتی که کامپیوتر روشنه یا به تازگی خاموش شده بهش دسترسی پیدا کنه، میتونه با نیتروژن مایع یا هر چیز دیگه دمای رم رو به شدت پایین بیاره. با اینکار اطلاعات توی رم برای مدت قابل توجهی باقی میمونند، حتی با قطع برق.
بعد میشه اطلاعات رم رو خوند و کلید رمزنگاری رو بدست آورد.
مهاجم میتونه خود کیبورد رو دستکاری کنه و یه keyloger داخلش کار بذاره تا بفهمه شما چی تایپ کردید و از اون راه کلید رمزنگاری رو بدست بیاره. این یکی نسبت به بقیه روشها یکم سادهتره.
اگه کسی بتونه موقعی که کامپیوتر روشنه به اون نفوذ کنه و دسترسی روت بگیره، میتونه کلید رمزنگاری رو هم بدست بیاره، مگه اینکه lockdown اوی کرنل فعال و روی حالت confidentiality باشه.
خطوط pci (هم pci و هم pcie)، درگاههای firewire و همینطور thunderbolt دسترسی کامل به رم دارند و میتونند رم و در نتیجه کلید رمزنگاری رو بخونند. دسترسی firewire و thunderbolt توی کرنل لینوکس قابل محدودسازی هست ولی در مورد خطوط pci نمیتونید کار زیادی انجام بدید
در برابر تحلیل رمزی شلنگ پلاستیکی هم آسیبپذیر هستید.
یه ارگان دولتی نه تنها منابع انجام حملات بالا رو داره، بلکه میتونه به انواع روشهای قانونی و غیرقانونی شما رو مجبور کنه تا کلید رمزنگاری رو بدید. پس اگه میخواهید چیزی رو از دولتها مخفی کنید، رمزنگاری فقط یکی از کارهایی هست که باید انجام بدید. :)
هرچند تغییر firmware برای برداشتن رمز uefi زیاد سخت نیست. کلی ویدیو توی یوتیوب درباره این موضوع پیدا میشه که توضیح داده باید چیکار کنید.
با یه رزبری پای و یه نگهدارنده چیپ هم میشه اینکار رو کرد.
اگر امکانش منبع(لینک دوره و...) اطلاعاتی که در طول زمان کسب کردید رو بگید تا کمتر مزاحم شما بشیم حقیقتا خجالت میکشم سوال بپرسم. :)
ویکی خود توزیعها معمولا توضیحات کاملی دارند، میشه داخلشون لینک به جاهای دیگه هم پیدا کرد. ویکی آرچ از بقیه بیشتر.
صفحات man هم هستند.
توی دبیان، مسیر زیر شامل یه سری دایرکتوری به اسم بستههای نصب شده وجود داره که داخل هر کدوم میشه یه سری مستندات مریوط به اون بسته پیدا کرد.
/usr/share/doc/
یکمی هم با آزمایش و خطا میشه به نتیجه رسید.
نمیدونید چه اندازه خوشحال میشم هر بار که اینو میبینم 😄
(https://forum.ubuntu-ir.org/index.php?action=dlattach;topic=154854.0;attach=53194)
چند روزه این رو باز کردم، ولی کار خاصی نکردم. هربار حدود یه ۱۰ خط مینویسم و بعد میرم سر یه کار دیگه.
-
سپاس بابت حوصله و انرژی ای که میزارید : )
تا حدودی درست میگید، ولی دقیق نیست. initramfs یه early userspace هست.
نفهمیدم ولی صد در صد در موضوعی که بعد از این فرسته ایجاد میکنم براش ، قطعا جوری توضیح میدید و مسأله رو باز میکنید ، شایسته ستایش : )
کرنل توسط بوتلودر یا هر چیز دیگه توی رم بارگذاری میشه و اونجا کارها رو انجام میده. کرنل در حال اجرا اون فایلی نیست که توی /boot/ میبینید، کرنل توی رم قرار گرفته و از اونجا کارها رو انجام میده
اخ آره دیگه ، چه اندازه حواس پرتم من 🤦🏻♂️
اینجوری خیلی خوب میشه چون باز هم توزیع نصب شده فضای کمتری روی دیسک اشغال میکنه !
دیگه چه مواردی هست که میتونه روی usb قرار بگیره ؟
هر سه رو بریزید خوبه. ولی اگه کامپیوتر توی حالت uefi بوت میشه، قضیه یکم فرق میکنه.
روی بایوس هستم ولی اگه حوصله داشتید ، کنجکاوم بدون چرا قضیه متفاوته ، اصراری نیست : )
بله میشه.
گفتید بله میشه از باقی فضای usb بهره برد ، یعنی افراز بندی میشه دیگه نه ؟
تا جایی که میدونم نه. پیادهسازیهای bios چنین چیزی ندارند.
نمیشه بهشون هم افزود این امکانو ؟
باز هم میشه حملات مختلفی انجام داد ...
اونجور که فهمیدم گویا هیچ غلطی نمیتونیم بکنیم اگر دسترسی فیزیکی داشته باشه مهاجم 😶
ولی دست کم برای امتحانش و افزایش دانش ( و میزان خفن بودن 😅 ) ، ممنون میشم توضیح بدین نحوه جدا کردن اون سه مورد رو ؟ فقط یه افزار درست کنم و شاخه boot رو کپی کنم روش مثلا ؟
چند تا سوال ...
میدونیم که هکر ها حتی در صورت عدم دسترسی فیزیکی ، باز هم امکانش هست بتونن به اطلاعات ما دسترسی داشته باشن ، پس چه مواردی لازمه رعایت بشه برای افزایش امنیت ؟ اونایی که من بخاطر دارم : یه توزیع امن و نامدار ، رمز نگاری داده ها ، ماندن در مخازن ، تور !
اپراتور های اینترنت مثل ایرانسل و شاتل و الباقی ، به اطلاعات ما دسترسی ندارن ؟ اگه دارن راهی برای جلوگیری هست ؟
سوال بعدیم اینه که خب اون رمز نگاری ها چطوریه ؟ مثلا من یه فلش رو رمزنگاری کنم برای دسترسی به اطلاعاتش باید چیکار کنم ؟ بایوس چجوری میتونه یه usb رمزنگاری شده حاوی گراب و کرنل رو بخونه و گراب رو بوت کنه ؟ تنها چیزی که من از رمز نگاری میدونم ، رمز نگاری دو کلیده و pgp هست و برنامه gpg در حد قسمت آخر دوره الپیک یک قدیمی جادی 😅 که بعد از رمزنگاری ، فایل ، دیگه اون پرونده قبلی نبود ، پس هر بار نیاز باشه بازش میکنه و میخونه و دوباره رمزنگاری ؟ یکم توضیح میدید ؟
چند روزه این رو باز کردم، ولی کار خاصی نکردم. هربار حدود یه ۱۰ خط مینویسم و بعد میرم سر یه کار دیگه
نمیدونید که همین هم چه اندازه برام ارزشمنده 🙃🌹
( بیشتر برای افزایش دانش هست پرسشام ، وگرنه اطلاعات سری دولت ها پیش من نیست 😂
ممنون میشم این تاپیک رو ناظرین عزیز سنجاق کنن ، واقعا نباید هیچ کس از دونستن این موارد محروم بمونه 🙃 )
-
اینجوری خیلی خوب میشه چون باز هم توزیع نصب شده فضای کمتری روی دیسک اشغال میکنه !
البته نباید تفاوت زیادی داشته باشه. کرنل اکثر توزیعها حدود 5 تا 7 Mib هست، initramfs هم معمولا بیشتر از 60Mib نمیشه، کل گراب به همراه متعلقاتش هم فکر نکنم بیشتر از 10Mib بشه.
دیگه چه مواردی هست که میتونه روی usb قرار بگیره ؟
دیگه چی رو میخواهید روی فلش usb قرار بدید؟
دقت کنید فلش usb ها معمولا از ارزونترین حافظه flash ساخته شدند و به خاطر همین سرعت خیلی بالایی ندارند، در اکثر مواقع یه هارد سرعت بهتری از اونها داره. به خاطر همین اگه بخواهید چیزهای زیادی روی فلش بنویسید و از اون بخونید، معمولا میبینید که کار خیلی سریع پیش نمیره. این در مورد استاندارد usb3 بود، درمورد usb1 و usb2 که معمولا توی کامپیوترهای قدیمی استفاده میشه، کندتر هم هست.
حتی ممکنه با منتقل کردن کرنل، initramfs و گراب به فلش usb، زمان بوت بیشتر بشه. چون سرعت خوندن و بارگذاری کرنل و initramfs از روی فلش usb به روی رم کمتره.
روی بایوس هستم ولی اگه حوصله داشتید ، کنجکاوم بدون چرا قضیه متفاوته ، اصراری نیست : )
وقتی توی uefi الویت بوت رو تنظیم میکنید، توی یه سری متغیر EFI ذخیره میشن. داخل اون متغیرها نوشته شده که چه فایلی روی چه پارتیشنی و با چه آپشنهایی اجرا بشه.
مشکل اینجاست که اکثر پیادهسازیهای uefi وقتی سعی میکنند یکی از الویتها رو بوت کنند و متوجه میشن که اون فایل یا پارتیشنی که فایل داخلش قرار داره دردسترس نیست، کلا اون الویت رو از توی متغیرهای EFI پاک میکنند.
به همین دلیل اگه شما بوتلودر رو روی فلش و الویت رو هم روی اون تنظیم کرده باشید و کامپیوتر رو روشن کنید بدون اینکه فلش متصل باشه، uefi سعی میکنه بوتلودری که روی فلش هست رو بوت کنه ولی چون فلش وصل نیست، اینکار انجام نمیشه، uefi میره سراغ الویت بعدی و الویتی که پیدا نشده رو از متغیرهای EFI حذف میشه.
اگه بعد از این کامپیوتر رو خاموش، فلش رو وصل و کامپیوتر رو دوباره روشن کنید، بوتلودر شما بالا نمیاد چون الویت اون از متغیرهای EFI پاک شده.
اکثر مادربردهای کامپیوترهای معمولی اینجوری هستند. معمولا مادربردهای سرورها اینجوری عمل نمیکنند.
یه راه برای این مشکل اینه که بوتلودر رو توی مسیر بوتلودر پیشفرض قرار بدید تا uefi اون رو بوت کنه. مسیر بوتلودر پیشفرض برای معماری x86_64 میشه این:
/EFI/Boot/bootx64.efi
مسیر بالا نسبت به ESP (همون EFI system partition) هست. از اونجایی که معمولا ESP با vfat فرمت میشه، بزرگ و بودن اسم فایلها و دایرکتوریها مهم نیست چون vfat به بزرگ و کوچک بودن حروف حساس نیست و مثلا BOOT و boot رو یکی حساب میکنه.
گفتید بله میشه از باقی فضای usb بهره برد ، یعنی افراز بندی میشه دیگه نه ؟
بله فلش رو پارتیشنبندی میکنید.
نمیشه بهشون هم افزود این امکانو ؟
شاید بشه، مطمئن نیستم. میتونید خودتون firmware روی مادربرد رو بخونید، با مهندسی معکوس بفهمید چیکار میکنه و بعد مال خودتون رو پیاده کنسد که قابلیتهای مورد نیاز رو هم داشته باشه. کار سادهای نیست.
اونجور که فهمیدم گویا هیچ غلطی نمیتونیم بکنیم اگر دسترسی فیزیکی داشته باشه مهاجم 😶
در همه اون حالتها لازم بوده مهاجم حداقل ۲ بار بیاد و بره، یه بار برای پیدا کردن رمز و یه بار برای برداشتن اطلاعات. توی بعضی موارد هم لازم بوده ۳ بار بیاد.
رمزنگاری از اینکه یکی بیاد و هارد رو بدزده و بتونه به اطلاعاتش دست پیدا کنه جلوگیری میکنه. (برای دستگاههای همراه مثل لپتاپها یا موبایلها مناسبه)
ممنون میشم توضیح بدین نحوه جدا کردن اون سه مورد رو ؟ فقط یه افزار درست کنم و شاخه boot رو کپی کنم روش مثلا ؟
باید فایل fstab رو هم تغییر بدید. از اونجایی که ممکنه بعد از بوت فلش رو جدا کنید، شاید لازم باشه یه سری قوانین برای apt بنوسید که بروزرسانیهای کرنل رو فقط وقتی انجام بده که پارتیشن مربوط به بوت سوار شده. گراب رو هم باید روی اون فلش نصب کنید. الویت بوت توی bios رو هم باید تغییر بدید.
میدونیم که هکر ها ...
شاید منظور شما از هکر با منظور ما از هکر یکی نباشه. فکر کنم منظور شما در اصل شکننده (cracker) بوده. درباره هکرها میتونید اینجا (http://linuxbook.ir/chapters/being_hacker.html) یه سری اطلاعات بدست بیارید.
چه مواردی لازمه رعایت بشه برای افزایش امنیت ؟ اونایی که من بخاطر دارم : یه توزیع امن و نامدار ، رمز نگاری داده ها ، ماندن در مخازن ، تور !
خود همین محیط گرافیکی (مخصوصا x11) شامل آسیبپذیریهای مختلف هست. خیلی از این آسیبپذیریها سعی شده که توی wayland برطرف بشن، ولی اگه از x11 استفاده میکنید، بیشتر نگران باشید.
اگه روی wayland، برنامهها رو از طریق xwayland اجرا کنید، بهبودهای امنیتی wayland رو دریافت نمیکنید. دلیلش اینه که وقتی برنامهای از طریق xwayland اجرا میشه، شبیه وقتی هست که مستقیم توی x11 اجرا شده.
معمولا برنامهایی که از wayland پشتیبانی نمیکنند از طریق xwayland اجرا میشن. (که تعدادشون هنوز نسبتا زیاده)
هیچوقت اسکریپتهایی که بهشون اعتماد ندارید رو مستقیم دریافت و اجرا نکنید. اگه مشکل امنیتی ایجاد نکنند، ممکنه تغییراتی توی سیستم یا هوم شما ایجاد کنند که با وضعیت فعلی شما سازگار نباشه، یا چیزهایی رو تغییر بدهند که نمیخواهید عوض بشن. اینکه با دسترسی روت هم اجراش کنید دسترسی اسکریپت برای خرابکاری رو بالا میبرید.
مثلا این یکی از بدترین دستوراتی هست که میتونید اجرا کنید:
bash <(wget -qO- "URL")
یا این یکی که بدتره و با دسترسی روت اجراش میکنه:
sudo su -c 'bash <(wget -qO- "URL")' root
به جای "URL" آدرس جایی که قراره اسکرسپت رو ازش دانلود کنید قرار میگیره.
اگه به اسکریپت اعتماد دارید مثلا خودتون نوشتیدش یا به کسی که اون رو نوشته اعتماد دارید یا محتواش رو خوندید، اونوقت دریافت و اجرای مستقیم اون نباید خیلی نگران کننده باشه.
ولی معمولا گزینه بهتر اینه که اول اسکریپت رو دانلود و بعد اجرا کنید.
اگه یه دیوار آتش هم تنظیم کنید خوبه. ولی معمولا کم پیش میاد کامپیوتر خانگی بهش نیاز پیدا کنه.
چندین پارامتر کرنل هم هستند که با تغییر اونها میشه امنیت سیستم رو بهبود داد. ولی با توجه به شرایط، ممکنه امنیت رو بهبود نده.
میتونید از ابزار lynis استفاده کنید تا ببینید وضعیت امنیت سیستم چجوریه. میتونید تنظیمات اون رو مطابق نیازتون عوض کنید، مییتونید خودتون هم سری test برای اون بنویسید تا چیزهای دیگه رو هم بررسی کنه. lynis توی مخازن دبیان هست پس فکر کنم توی مخازن دوان هم باشه . بسته lynis شامل خود lynis به همراه چیزهای مربوط هست.
بعد از اینکه lynis رو نصب کردید، میتونید دستور زیر رو بزنید تا امنیت سیستم رو بررسی کنه.
sudo lynis audit system
قابلیتهای دیگه هم داره، مثلا میتونه امنیت image های docker رو هم بررسی کنه.
از اونجایی که روی شاخه ناپایدار دوان هستید، بهتره بستههای apt-listchanges و apt-listbugs رو نصب کنید.
اولی وقتی به کار میافته که یه بسته رو با APT نصب یا بروزرسانی میکنید.
قبل از اینکه dpkg شروع به کار کنه، بررسی میکنه که چه چیز خاصی توی اون بستههایی که قراره نصب بشن تغییر کرده.
مثلا اگه رفتار یه آپشن از یه دستور تغییر کرده باشه، این بسته شما رو از اون آگاه میکنه. بعد میتونید انتخاب کنید که عملیات ادامه پیدا کنه یا اینکه کلا متوقف بشه یا اینکه سعی کنه یه جوری اون بسته رو نصب/بروزرسانی نکنه.
دومی وقتی به کار میفته که یه بسته رو با APT نصب، حذف و بروزرسانی میکنید.
این یکی هم مثل بالایی قبل از اینکه dpkg شروع به کار کنه اجرا میشه و به شما باگهای مرتبط با عملیاتی که قراره روی اون بستهها انجام بدید رو نشون میده و میپرسه که چیکار کنه. (عملیات رو کلا متوقف کنه، به عملیات ادامه بده یا سعی کنه یه جوری اون بستهها رو نصب/بروزرسانی/حذف نکنه.)
مثلا اگه دارید یه بسته رو نصب یا بروزرسانی میکنید، apt-listbugs باگهای اون بسته رو نشون میده. (اگه چیز مهمی شناسایی شده باشه)
برای موقع حذف، باگهایی رو به شما نشون میده که بسته موقع حذف شدن داره. مثلا ممکنه اسکریپتهای postrm یه بسته مشکل داشته باشند یا با حذف یه بسته، یه بسته دیگه که بهش وابستگی نداره به مشکل بخوره و اینجور چیزها.
از اونجایی که روی شاخه ناپایدار هستید، احتمال وقوع این چیزها بیشتره.
apt-listbugs به یه سری دلایلی روی اوبونتو کار نمیده و توی مخازن اوبونتو هم نیست. در مورد دوان نمیدونم قضیه چجوری هست.
دقت کنید با نصب این دوتا بسته، زمان نصب، بروزرسانی و حذف همه بستهها از طریق APT بیشتر میشه. دلیلش اینه که اول باید یه سری bugreport و changelog از اینترنت دریافت بشن که اینکار زمان میبره. معمولا حجم این bugreport ها و changelog ها زیاد نیست، ولی حواستون به این موضوع باشه.
اپراتور های اینترنت مثل ایرانسل و شاتل و الباقی ، به اطلاعات ما دسترسی ندارن ؟ اگه دارن راهی برای جلوگیری هست ؟
اگه از پروکسی یا vpn استفاده نمیکنید، میتونند ببینند که به چه جاهایی وصل میشید و از کجا اطلاعات دریافت میکنید.
اینکه بفهمند چه اطلاعاتی میفرستید و میگیرید، بستگی به جایی داره که بهش وصل شدید. اگه ارتباط رمزنگاری شده باشه اونوقت کسی نمیتونه وسط راه بفهمه که چی میفرستید و دریافت میکنید. فقط میبینه که کی فرستاده و قراره به کی برسه.
اکثر وبسایتهای از https استفاده میکنند. https در اصل همون http هست که رمزنگاری بهش اضافه شده.
اگه از پروکسی و vpn استفاده کنید، دو حالت پیش میاد. یا ترافیک رمزنگاری شده هست یا نیست.
در هر دو حالت بقیه میتونند ببینید که یه سری اطلاعات از شما داره به سمت یه جای دیگه (سرور پروکسی یا vpn) حرکت میکنه.
اگه ارتباط رمزنگاری شده باشه، کسی نمیتونه وسط راه (از شما تا سرور پروکسی/vpn) اونها رو ببینه و در نتیجه نمیتونه بفهمه که واقعا دارید از کجا اطلاعات میگیرید. فقط میفهمه که دارید یه سری اطلاعات به سرور پروکسی/vpn میفرستید و دریافت میکنید.
سرور پروکسی/vpn میفهمه که دارید در واقع به کجا وصل میشید، شما رو هم میشناسه.
اینکه بتونه اطلاعات رو هم بخونه، بستگی به جایی داره که بهش وصل میشید. ممکنه از رمزنگاری استفاده شده باشه (مثلا با پروتکل https وصل شدید) در این حالت سرور پروکسی/vpn نمیتونه بفهمه چی دارید میفرستید و میگیرید، کسی هم وسط مسیر (بین سرور پروکسی/vpn و مقصد شما) نمیتونه اطلاعات شما رو ببینه.
اگه برای اتصال به سرور پروکسی/vpn از رمزنگاری استفاده نشده باشه، در ظاهر فقط میبینند که دارید به سرور پروکسی/vpn وصل میشید و یه سری اطلاعات از اونجا دریافت میکنید، اما اگه اطلاعات رو بیشتر بررسی کنند، متوجه میشن که مقصد اصلی شما کجا هست.
اینکه ببینید دقیقا چی دارید به اون مقصد میفرستید، باز هم به خود مقصد بستگی داره، اگه ارتباط شما تا مقصد اصلی رمزنگاری شده باشه (مثلا از https استفاده کردید) اونوقت کسی نمیتونه وسط راه بفهمه که دقیقا چی دارید به مقصد اصلی میفرستید و دریافت میکنید. ولی متوجه میشن که مقصد اصلی کیه.
تا جایی که میدونم، همه vpnها از رمزنگاری استفاده میکنند. در مورد پروکسیها فکر نکنم اینطور باشه، مطمئن نیستم.
سوال بعدیم اینه که خب اون رمز نگاری ها چطوریه ؟ مثلا من یه فلش رو رمزنگاری کنم برای دسترسی به اطلاعاتش باید چیکار کنم ؟
منظورتون رمزنگاری دیسک هست؟ من فرض میکنم اینجوری هست.
رمزنگاری به صورت متقارن انجام میشه. یعنی با یه کلید رمزنگاری و رمزگشایی انجام میشه. کلیدهای رمزنگاری و رمزگشایی یکسان هستند، متفاوت نیستند.
وقتی یه چیزی رو با dm-crypt لینوکس رمزنگاری میکنید، برای دسترسی به اطلاعات داخلش اول باید کلیدی که اطلاعات با اون رمز شدند رو به dm-crypt بدید. بعد از اینکار، یه block device مجازی توی /dev/ درست میشه که با دسترسی به اون میتونید اطلاعات رمزنگاری شده رو بخونید یا چیزهای جدید بنویسید تا رمزنگاری بشن.
نحوه کار اینجوریه که هر چی رو از اون دستگاه مجازی میخونید، اول سعی میشه که اطلاعات رمزنگاری شده روی حافظه پشتی خونده و با کلید رمزگشایی بشن، بعد این اطلاعات در اختیار شما قرار میگیرن.
وقتی یه سری اطلاعات روی اون دستگاه مجازی مینویسید، اول اطلاعات با کلید رمزنگاری میشن و بعد روی اون حافظه پشتی نوشته میشن.
تا وقتی که اطلاعات رو از اون دستگاه مجازی میخونید و روی اون مینویسید، متوجه رمزنگاری نمیشید و لازم نیست نگران اون باشید. میتونید اون دستگاه مجازی رو مثل بقیه block device ها با یه فایلسیستم (مثلا ext4 یا btrfs) فرمت کنید. بعد هم خیلی راحت با دستور mount اون فایلسیستم رو سوار و استفاده کنید.
رمزنگاری زیر اون دستگاه مجازی اتفاق میافته.
اگه از dm-crypt برای رمزنگاری استفاده کنید، نمیتونید اون اطلاعات رمزنگاری شده رو روی ویندوز بخونید. چون bitlocker ویندوز نمیتونه اونها رو شناسایی کنه.
dm-crypt قابلیتی داره که header ها و اینجور چیزها رو به شکلی بنویسه که bitlocker بتونه اونها رو شناسایی و استفاده کنه. نمیدونم این قابلیت چقدر پایداره و چقدر کار میده.
dm-crypt میتونه اطلاعات رمزنگاری شده با bitlocker رو شناسایی و رمزگشایی کنه.
بایوس چجوری میتونه یه usb رمزنگاری شده حاوی گراب و کرنل رو بخونه و گراب رو بوت کنه ؟
اون قسمت اول گراب که توسط bios اجرا میشه به صورت رمزنگاری نشده روی فلش نوشته میشه.
تنها چیزی که من از رمز نگاری میدونم ، رمز نگاری دو کلیده و pgp هست و برنامه gpg
اون رمزنگاری نامتقارن هست که از دوتا کلید استفاده میکنه. اطلاعاتی که با یه کلید رمزنگاری میشن فقط توسط کلید متناظر قابل رمزگشایی هستند.
-
وقتی چنین زمان زیادی رو برای نوشتن میذارید، خیلی خوبه که توی ویکی این موارد رو بنویسید و به اونجا لینک بدید. اینطوری افراد بیشتری میتونن در آینده ازش استفاده کنند و بین پستها گم نمیشه.
-
اسکرول کردن دمار از روزگار ادم در میاره چه برسه به خوندنش
واقعا باید به این همه تحمل کیبورد افتخار کرد :D
کارتون درسته جناب دراگون ;) (کیبوردتون چیه ؟ بدون شوخی )
-
سپاس جناب دراگون ، واقعا سنگ تموم گذاشتین ، هر بار که پاسخ میدین من بیشمار چیز یاد میگیرم ، بیشمار پرسش برام پیش میاد و تازه فقط تعدادی از شایسته تریناشونو مطرح میکنم 🤧
بار ها تشکر کردم و از حوصله شگفتا بر انگیزتون گفتم که دیگه لوس شده واقعا سپاس گذاری من !
اخر یه روزی میرم همه ارسال هاتونو میخونم و یه کتاب مینویسم با عنوان ( اژدها دنیای گنو )
-
وقتی چنین زمان زیادی رو برای نوشتن میذارید، خیلی خوبه که توی ویکی این موارد رو بنویسید و به اونجا لینک بدید. اینطوری افراد بیشتری میتونن در آینده ازش استفاده کنند و بین پستها گم نمیشه.
همچنین توی سلالات تکراری نیازی به توضیح مجدد نیست حتی وقتی جا بیفته توی انجمن که اول ویکی رو بگردند اینطوری حتی سوالاتی پیش ازمطرح شدن حل میشن
-
باید فایل fstab رو هم تغییر بدید. از اونجایی که ممکنه بعد از بوت فلش رو جدا کنید، شاید لازم باشه یه سری قوانین برای apt بنوسید که بروزرسانیهای کرنل رو فقط وقتی انجام بده که پارتیشن مربوط به بوت سوار شده. گراب رو هم باید روی اون فلش نصب کنید. الویت بوت توی bios رو هم باید تغییر بدید.
میگم من اگر جابجا هم بکنم لینوکس و گراب رو به فلش ، بازم امکان بالا اوردن توزیع زنده ممکنه ، من میخواستم جلوی اینو بگیرم ، که گویا در بایوس نمیشه ، فقط تنها فایدش اینه که نمیتونن خود سامانه نصب شده رو بالا بیارن درسته ؟
میتونید خودتون firmware روی مادربرد رو بخونید، با مهندسی معکوس بفهمید چیکار میکنه و بعد مال خودتون رو پیاده کنید که قابلیتهای مورد نیاز رو هم داشته باشه. کار سادهای نیست.
دست کم ( هنوز ) کار من نیست ، پس به همون رمزنگاری دیسک بسنده میکنم !
وقتی توی uefi الویت بوت رو تنظیم میکنید، توی یه سری متغیر EFI ذخیره میشن. داخل اون متغیرها ..
جالب بود ، سپاس : )
شاید منظور شما از هکر با منظور ما از هکر یکی نباشه. فکر کنم منظور شما در اصل شکننده (cracker) بوده. درباره هکرها میتونید اینجا یه سری اطلاعات بدست بیارید.
بله درست میفرمایید ، نگرش من همون مهاجم و شکننده بود ..
چندین پارامتر کرنل هم هستند که با تغییر اونها میشه امنیت سیستم رو بهبود داد. ولی با توجه به شرایط، ممکنه امنیت رو بهبود نده.
ممنون میشم اگر این مورد رو بیشتر باز کنید : )
مییتونید خودتون هم سری test برای اون بنویسید تا چیزهای دیگه رو هم بررسی کنه
بسته lynis شامل خود lynis به همراه چیزهای مربوط هست
میتونید test هایی که خودتون نوشتید رو برای من بزارید ؟ و اینکه اون چیزای مربوط چین و چجوری ازشون استفاده کنم برای بررسی بیشتر امنیتی ؟
بعد از اینکه lynis رو نصب کردید، میتونید دستور زیر رو بزنید تا امنیت سیستم رو بررسی کنه.
این (https://paste.ubuntu.ir/zjtag) پاسخ ترسناک lynis هست که زیاد ازش سر درنیاوردم ! مورد اشتباهی وجود داره ؟
از اونجایی که روی شاخه ناپایدار دوان هستید، بهتره بستههای apt-listchanges و apt-listbugs رو نصب کنید
اولی نصب بود و دومی رو هم نصب کردم ، خیلی بسته های باحالین با توجه به گفته های شما ..
معمولا حجم این bugreport ها و changelog ها زیاد نیست، ولی حواستون به این موضوع باشه
خود بسته apt-listbugs پنجاه مگ جا گرفت ، این باگ ریپورت ها و کاتالوگ ها کجا قرار میگیرن و بهتره چجوری و چه موقعی پاکشون کرد و تمیز ؟
اگه از پروکسی یا vpn استفاده نمیکنید، میتونند ببینند که به چه جاهایی وصل میشید و از کجا اطلاعات دریافت ..
بس شگفت انگیز بود جناب دراگون ، دست کم برای من ، چون پیش از اینکه بیام گنو ، براستی که هیچی بلد نبودم از دنیای کامپیوتر ! تازه کلی هم مدعی بودم !
پرسش اینجاست که سرانجام باید به یکی اعتماد کرد دیگه ؟ راهی فراتر از وی پی ان و پروکسی نیست که هیچ چیز دست هیچ کس نباشه ؟
منظورتون رمزنگاری دیسک هست؟ من فرض میکنم اینجوری هست ..
خب یعنی اگر توزیع رو عوض کنیم چجوری میتونه به داده های روی دیسک رمز شده دسترسی داشته باشه ؟ چون کلید که دست توزیع قبلی بود !
مثلا اون کلید بعد از رمزنگاری بهمون داده میشه ؟ بعد باید خودمون بدیمش به نرم افزار و سامانه ای که میخوایم بتونه به دیسک دسترسی داشته باشه ؟
سپاس بسیار جناب دراگون ، دیگه نمیدونم چجور تشکری میتونه شایسته انرژی ای که میزارید باشه ، فراتر از دانشتون ، شخصیتتون هست که شایسته ستایشه : )
پس یعنی من باید سه افراز ایجاد کنم، افزار راه انداز ، ریشه و خونه ؟
البته من خونه رو جدا نکردم ، یه افزار دیگه ساختم که پرونده های شخصی بنده رو شامل میشه که روی یه شاخه در خونه سوارش میکنم : )
بعد به جز افراز boot باقی رو رمز نگاری کنم ، درسته ؟
اگر یه روزی بخوام به داده های روی دیسک رمز شده از روی یه توزیع زنده دسترسی داشته باشم باید چیکار کنم ؟ همون کاری که نمیخوام دیگران بتونن انجام بدن ، کلیدی چیزی بهم داده میشه ؟
هنوز اقدامی نکردم برای رمزنگاری ، خواستم اول این گفتمان به پایان برسه که با در نظر قرار دادن همه چیز حرکت کنم : )
-
راستی با gnome-disk-utility تونستم با luks رمز کنم افرازی که میخوامو ، مث اینکه به جواب چند تا سوالام رسیدم ، اگه این پیاممو دیدین و فک میکنین توضیح بازم نیازه که هیچی ولی فهمیدم که رمز گذاشته میشه روی افزار و اون رمز باز میکنه ، انگار به جواب این سوال رسیدم :
اگر یه روزی بخوام به داده های روی دیسک رمز شده از روی یه توزیع زنده دسترسی داشته باشم باید چیکار کنم ؟ همون کاری که نمیخوام دیگران بتونن انجام بدن ، کلیدی چیزی بهم داده میشه ؟
-
بار کننده راه اندازی یا همون ( boot loader ) رو بریزیم روی usb بهتره یا لینوکس و initramfs رو ؟ یا هر سه رو ؟
هر سه رو بریزید خوبه. ولی اگه کامپیوتر توی حالت uefi بوت میشه، قضیه یکم فرق میکنه.
الان که بیشتر فکر میکنم، شاید بهتر باشه initramfs و کرنل رو بذارید جز روت رمزنگاری شده باقی بمونند و فقط بوتلودر رو جدا کنید.
وقتی چنین زمان زیادی رو برای نوشتن میذارید، خیلی خوبه که توی ویکی این موارد رو بنویسید و به اونجا لینک بدید. اینطوری افراد بیشتری میتونن در آینده ازش استفاده کنند و بین پستها گم نمیشه.
چندین بار سعی کردم توی ویکی بنویسم ولی خیلی سخت میشه با اون کار کرد.
میگم من اگر جابجا هم بکنم لینوکس و گراب رو به فلش ، بازم امکان بالا اوردن توزیع زنده ممکنه ، من میخواستم جلوی اینو بگیرم ، که گویا در بایوس نمیشه ، فقط تنها فایدش اینه که نمیتونن خود سامانه نصب شده رو بالا بیارن درسته ؟
اینجوری نمیتونند به کرنل و initramfs دسترسی داشته باشند.
همچنان میشه کامپیوتر رو با یه توزیع زنده بالا آورد.
چندین پارامتر کرنل هم هستند که با تغییر اونها میشه امنیت سیستم رو بهبود داد. ولی با توجه به شرایط، ممکنه امنیت رو بهبود نده.
ممنون میشم اگر این مورد رو بیشتر باز کنید : )
خود همون lynis یه سری از اونها رو گفته.
میتونید test هایی که خودتون نوشتید رو برای من بزارید ؟
خودم برای lynis تستی ننوشتم. lynis که همراه دبیان هست، یه سری تستهایی که داره که تقریبا جامع هست و جنبههای زیادی از سیستم رو بررسی میکنه.
شاید بتونید با جستوجو توی اینترنت تستهای بیشتری پیدا کنید.
و اینکه اون چیزای مربوط چین و چجوری ازشون استفاده کنم برای بررسی بیشتر امنیتی ؟
منظورم تستهای همراهش بوده.
این (https://paste.ubuntu.ir/zjtag) پاسخ ترسناک lynis هست که زیاد ازش سر درنیاوردم ! مورد اشتباهی وجود داره ؟
خیلی زیاد نگران نباشید. چیزهای زیادی رو بررسی کرده و اون آخر سر یه سری راهنماییها کرده که چیکار کنید. تستهای ا ن یکم سختگیرانه هست.
اون پایین یه سری راهنمایی کرده و به طور مختصر گفته چیکار کنید. یه سری لینک هم داده که معمولا میشه اونجا توضیحات بیشتری پیدا کرد.
خود بسته apt-listbugs پنجاه مگ جا گرفت ، این باگ ریپورت ها و کاتالوگ ها کجا قرار میگیرن و بهتره چجوری و چه موقعی پاکشون کرد و تمیز ؟
مطمئن نیستم که ذخیره بشن. اگه ذخیره میشن، باید توی /var/lib/ قرار داشته باشند.
پرسش اینجاست که سرانجام باید به یکی اعتماد کرد دیگه ؟ راهی فراتر از وی پی ان و پروکسی نیست که هیچ چیز دست هیچ کس نباشه ؟
اطلاعات شما از طریق یه شبکه به مقصد منتقل میشه. هر کاری کنید، باید این اطلاعات رو بدید به یه نفر دیگه. با رمزنگاری و مسیریابی پیازی (https://fa.m.wikipedia.org/wiki/%D9%85%D8%B3%DB%8C%D8%B1%DB%8C%D8%A7%D8%A8%DB%8C_%D9%BE%DB%8C%D8%A7%D8%B2%DB%8C) میشه کاری کرد تا افراد وسط راه کمتر متوجه بشن که شما کی هستید به چه کسی چه چیزی میفرستید.
خب یعنی اگر توزیع رو عوض کنیم چجوری میتونه به داده های روی دیسک رمز شده دسترسی داشته باشه ؟ چون کلید که دست توزیع قبلی بود !
مثلا اون کلید بعد از رمزنگاری بهمون داده میشه ؟ بعد باید خودمون بدیمش به نرم افزار و سامانه ای که میخوایم بتونه به دیسک دسترسی داشته باشه ؟
توی این ارسال (https://forum.ubuntu-ir.org/index.php?topic=155063.msg1216887#msg1216887) گفتم.
-
سپاس جناب دراگون 💙