ปกป้องตัวร้ายตัวร้ายวิธีจัดการกับการลบพาร์ติชั่น / boot


11

เมื่อใช้การเข้ารหัสดิสก์เต็มรูปแบบของ LUKS คุณจะป้องกันเกี่ยวกับสาวใช้ที่ชั่วร้ายอย่างไร

การโจมตีของสาวใช้ชั่วร้ายคือเมื่อมีคนเข้าถึงคอมพิวเตอร์ของคุณในขณะที่คุณไม่อยู่และยอมให้พาร์ติชั่นที่ไม่ได้เข้ารหัส / บูตเพื่อเก็บรหัสผ่าน FDE ของคุณในครั้งต่อไปที่คุณเริ่มคอมพิวเตอร์

หนึ่งในวิธีการแก้ปัญหาคือการทิ้งพาร์ติชั่น / boot ไว้บน USB stick ที่อยู่กับคุณเสมอ (แม่บ้านไม่สามารถเข้าถึงได้) แต่ฉันควรใช้ระบบไฟล์ใดในนั้นและฉันจะกำหนดค่าระบบของฉันอย่างไรเพื่อจัดการกับการลบอย่างงดงาม ของก้าน USB (และ / พาร์ทิชันนั้นทำให้ / boot ตัวเอง)?

ฉันใช้ CentOS แต่คำตอบทั่วไปผู้ไม่เชื่อเรื่องพระเจ้ายินดีต้อนรับแน่นอน ขอบคุณ

คำตอบ:


5

ในที่สุดก็คิดออก สิ่งนี้ยังคงรู้สึกว่าแฮ็คและสกปรกจริงๆเพราะระบบไม่เคยรู้มาก่อนว่า/bootอาจไม่ได้ติดตั้งและคุณจะต้องติดตั้งด้วยตนเองก่อนที่จะทำอะไรก็ได้ที่อาจเขียนลงไป (คิดว่าการอัปเดตระบบ ฯลฯ ) แต่อื่น ๆ .

  • เตรียมแฟลชไดรฟ์ของคุณด้วยพาร์ติชันเดียวโดยตั้งค่าสถานะการเริ่มระบบในนั้น คุณสามารถใช้shred -n 1 -v /dev/sdXเพื่อลบมันอย่างสมบูรณ์รวมถึงบูตเซกเตอร์ก่อนหน้า; เมื่อเสร็จแล้วfdiskให้เรียกใช้เพื่อสร้างพาร์ติชันและmkfsระบบไฟล์ที่คุณเลือก
  • ติดตั้งแฟลชไดรฟ์ของคุณที่ไหนสักแห่ง/mnt/bootหรือ/newbootจะทำได้ดี
  • ย้ายไปทุกอย่างจากแฟลชไดรฟ์ที่มี/bootmv /boot/* /newboot
  • แก้ไข/etc/fstabและเปลี่ยน UUID ของพาร์ติชันสำหรับเริ่มระบบดั้งเดิม (หรือสร้างรายการหากไม่มี) เพื่อให้ตรงกับแฟลชไดรฟ์ตัวใดตัวหนึ่งของคุณ คุณจะได้รับ UUID lsblk -o name,uuidกับ เพิ่มnoautoตัวเลือกเพื่อไม่ให้ไดรฟ์ถูกติดตั้งโดยอัตโนมัติเพื่อให้สามารถลบออกได้ทันทีที่ระบบเริ่มบูท (เมื่อเคอร์เนลถูกโหลด) โดยไม่เสี่ยงต่อการเสียหายของ FS
  • unmount พาร์ติชันสำหรับเริ่มระบบดั้งเดิมและแฟลชไดรฟ์ ( umount /boot && umount /newboot) แล้วติดตั้งแฟลชไดรฟ์ หากรายการ fstab ของคุณถูกต้องคุณสามารถเรียกใช้mount /bootและมันจะทำการติดตั้งโดยอัตโนมัติตาม UUID ที่ระบุใน fstab
  • สร้างการกำหนดค่า bootloader ของคุณใหม่เพื่อสะท้อน UUID ของพาร์ติชันใหม่และตำแหน่ง "กายภาพ" สำหรับ GRUB แฟลชไดรฟ์จะปรากฏเป็นฮาร์ดไดรฟ์ตัวแรกในคอมพิวเตอร์ ( hd0) หากคุณโอเคกับการใช้สคริปต์กำหนดค่าเริ่มต้นของ GRUB ที่มาจาก distros ส่วนใหญ่คุณสามารถเรียกใช้grub-mkconfig -o /path/to/grub.cfgและมันจะสร้างไฟล์ตามพาร์ทิชันที่ติดตั้งอยู่ในปัจจุบันและ / หรือ fstab โปรดทราบว่าสำหรับ CentOS 7 ที่ถูกต้องตั้งอยู่ในจริงgrub.cfg/boot/grub2/grub.cfg

เมื่อทำดำเนินการใด ๆ ที่อาจเข้าถึงพาร์ทิชันบูตเชื่อมต่อ USB mount /bootติดและการทำงานของคุณ umount /bootเมื่อเสร็จแล้วคุณอาจทำงาน โปรดทราบว่าคำสั่งหลังอาจใช้เวลาสักครู่จึงจะเสร็จสมบูรณ์เพราะมันกำลังล้างบัฟเฟอร์ไปยังดิสก์ (ดิสก์นั้นช้าดังนั้นเคอร์เนลบัฟเฟอร์จะดำเนินการเขียนบางอย่างเพื่อเร่งความเร็ว)


ไม่สกปรกเลยเป็นวิธีที่ชัดเจนที่สุดในการทำเช่นนั้น ขอบคุณที่เขียนมันออกมา!
2559

0

อีกวิธีหนึ่งสำหรับปัญหานี้คือการใช้ TPM เพื่อจัดเก็บคีย์การเข้ารหัส แต่การป้องกันจะพึ่งพาผู้ใช้เพื่อให้มีประสิทธิภาพ โซลูชันพื้นฐานที่ใช้ RHEL7 คือ tpm-luks ( https://github.com/GeisingerBTI/tpm-luks )

วิธีการทำงานของมันคือการบู๊ตแต่ละขั้นตอนของกระบวนการบู๊ตจะวัดค่าถัดไปและเก็บการวัดนี้ไว้ใน PCRs บน TPM เมื่อกระบวนการบู๊ตเสร็จสมบูรณ์ tpm-luks จะตรวจสอบสถานะของ PCRs กับการกำหนดค่า "รู้จักดี" หากอยู่ในการกำหนดค่า "รู้จักดี" TPM จะเปิดคีย์ LUKS และ tpm-luks จะส่งข้อมูลนี้เพื่อปลดล็อกพาร์ติชัน LUKS รูท

เนื่องจากทุกสิ่งที่สำคัญนั้นถูกวัดด้วยแฮช crpytographic ไม่มีวิธีใดที่แม่บ้านชั่วจะมาแทนที่ GRUB / kernel / ramdisk ของคุณเพื่อรวบรวมข้อความรหัสผ่าน FDE ของคุณ ในฐานะโบนัสที่เพิ่มเข้ามาคุณไม่จำเป็นต้องใช้รหัสผ่าน FDE เลย! ในทางทฤษฎีคุณสามารถลบข้อความรหัสผ่านที่มนุษย์อ่านได้และใช้ tpm-luk ทั้งหมด แต่ถ้าคุณไปเส้นทางนั้นอาจเป็นความคิดที่ดีในการเก็บส่วนหัว LUKS ของคุณและเก็บไว้เป็นข้อมูลสำรอง

ดังที่ฉันได้กล่าวไปแล้วสิ่งนี้ต้องการความขยันหมั่นเพียรสำหรับผู้ใช้ หากคุณออกจากคอมพิวเตอร์โดยไม่ต้องใส่ข้อมูลและคุณได้รับพรอมต์ข้อความรหัสผ่านอาจเป็นความคิดที่ไม่ดีที่จะพิมพ์ลงไปจนกว่าคุณจะทำการตรวจสอบเสร็จแล้ว ณ จุดนี้คุณควรบูตเข้าสู่สภาพแวดล้อมซีดีสดและดูว่ามีข้อผิดพลาดใน tpm-luks หรือไม่หรือว่า/bootพาร์ติชันนั้นถูกเปลี่ยนแปลงอย่างแท้จริง คุณยังคงออกจาก/bootพาร์ติชันที่ไม่ได้เข้ารหัส แต่หากมีสิ่งใดที่สำคัญที่จะถูกเปลี่ยนแปลงดิสก์หลักจะไม่ถูกถอดรหัส

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.