Bảo vệ chống lại người giúp việc độc ác, làm thế nào để xử lý loại bỏ phân vùng / boot


11

Khi sử dụng mã hóa toàn bộ đĩa LUKS, bạn sẽ bảo vệ chống lại những người giúp việc độc ác như thế nào?

Cuộc tấn công người giúp việc độc ác là khi ai đó truy cập vật lý vào máy tính của bạn khi bạn đi vắng và thỏa hiệp phân vùng khởi động / không được mã hóa để lấy mật khẩu FDE của bạn vào lần tiếp theo bạn khởi động máy tính của mình

Một trong những giải pháp là để phân vùng / boot của bạn trên một chiếc USB luôn ở bên bạn (người giúp việc không thể lấy nó), nhưng tôi nên sử dụng hệ thống tập tin nào trên đó và làm cách nào để định cấu hình hệ thống của tôi để xử lý loại bỏ một cách duyên dáng của thanh USB (và do đó, phân vùng / boot chính nó)?

Tôi đang sử dụng CentOS, nhưng những câu trả lời chung chung, không rõ ràng đều được hoan nghênh. Cảm ơn.

Câu trả lời:


5

Cuối cùng đã tìm ra nó. Điều này vẫn cảm thấy thực sự khó khăn và bẩn thỉu vì hệ thống không bao giờ biết rằng /bootcó thể không được gắn kết và bạn sẽ phải tự gắn nó trước khi làm bất cứ điều gì có thể ghi vào nó (nghĩ cập nhật hệ thống, v.v.), nhưng ngoài việc nó hoạt động hoàn hảo .

  • chuẩn bị ổ đĩa flash của bạn với một phân vùng duy nhất với cờ khởi động được đặt trên đó. Bạn có thể chạy shred -n 1 -v /dev/sdXtrên nó để xóa nó hoàn toàn, bao gồm mọi thành phần khởi động trước đó; một khi đã xong chạy fdiskđể tạo một phân vùng và mkfshệ thống tập tin của bạn trên đó.
  • gắn ổ đĩa flash của bạn ở đâu đó, /mnt/boothoặc thậm chí /newbootsẽ làm tốt.
  • di chuyển qua tất cả mọi thứ từ /bootổ đĩa flash với mv /boot/* /newboot.
  • chỉnh sửa /etc/fstabvà thay đổi UUID của phân vùng khởi động ban đầu (hoặc tạo một mục nhập nếu không có) để khớp với một trong các ổ đĩa flash của bạn. Bạn có thể lấy UUID với lsblk -o name,uuid. Đồng thời thêm noautotùy chọn để ổ đĩa sẽ không được gắn tự động để có thể gỡ bỏ nó ngay khi hệ thống bắt đầu khởi động (một khi kernel được tải) mà không làm hỏng FS trên nó.
  • ngắt kết nối phân vùng khởi động ban đầu và ổ đĩa flash ( umount /boot && umount /newboot) và gắn ổ đĩa flash; nếu mục nhập fstab của bạn là chính xác, bạn chỉ có thể chạy mount /bootvà nó sẽ tự động gắn kết nó dựa trên UUID được chỉ định trong fstab.
  • tạo lại cấu hình bộ nạp khởi động của bạn để phản ánh vị trí UUID và "vật lý" của phân vùng mới, đối với GRUB, ổ flash sẽ thực sự xuất hiện dưới dạng ổ cứng đầu tiên trong máy tính ( hd0). Nếu bạn ổn với việc sử dụng các tập lệnh cấu hình GRUB mặc định được cung cấp bởi hầu hết các bản phát hành, bạn có thể chạy grub-mkconfig -o /path/to/grub.cfgvà nó sẽ tạo tệp theo các phân vùng và / hoặc fstab hiện được gắn. Lưu ý rằng đối với CentOS 7, chính xác grub.cfgthực sự nằm ở /boot/grub2/grub.cfg.

Khi thực hiện bất kỳ thao tác nào có thể truy cập vào phân vùng khởi động, hãy kết nối thẻ USB của bạn và chạy mount /boot. Sau khi hoàn thành, bạn có thể chạy umount /boot. Lưu ý rằng lệnh sau có thể mất vài phút để hoàn thành vì nó sẽ xóa bộ đệm vào đĩa (bản thân đĩa bị chậm nên kernel đệm một số thao tác ghi để tăng tốc mọi thứ).


Không bẩn chút nào, đó là cách rõ ràng nhất để làm điều đó. Cảm ơn bạn đã viết nó ra!
dbanet

0

Một cách tiếp cận khác cho vấn đề cụ thể này là sử dụng TPM để lưu trữ khóa mã hóa, nhưng việc phòng thủ không phụ thuộc vào người dùng để làm cho nó hiệu quả. Một giải pháp thô sơ, dựa trên RHEL7 là tpm-luks ( https://github.com/GeisingerBTI/tpm-luks ).

Cách thức hoạt động của nó là khi khởi động, mỗi bước của quy trình khởi động sẽ đo bước tiếp theo và lưu trữ phép đo này vào các PCR trên TPM. Khi quá trình khởi động hoàn tất, tpm-luks sẽ kiểm tra trạng thái của các PCR dựa trên cấu hình "đã biết". Nếu trong cấu hình "đã biết", TPM sẽ bỏ khóa khóa LUKS và tpm-luks sẽ truyền dữ liệu này để mở khóa phân vùng LUKS gốc.

Bởi vì mọi thứ quan trọng đều được đo bằng hàm băm của crpytographic, về cơ bản không có cách nào để một cô hầu gái độc ác thay thế GRUB / kernel / ramdisk của bạn để thu thập mật khẩu FDE của bạn một cách chính xác. Là một phần thưởng bổ sung, bạn hoàn toàn không cần cụm mật khẩu FDE! Về lý thuyết, bạn có thể loại bỏ hoàn toàn cụm mật khẩu có thể đọc được của con người và hoàn toàn dựa vào tpm-luks, nhưng nếu bạn đi theo con đường đó, có lẽ nên lưu trữ tiêu đề LUKS của bạn và giữ nó làm bản sao lưu.

Như tôi đã đề cập, điều này đòi hỏi một số sự siêng năng đối với người dùng. Nếu bạn để máy tính không giám sát và bạn được hiển thị một dấu nhắc mật khẩu, có lẽ đó là một ý tưởng tồi để nhập nó cho đến khi bạn thực hiện một số điều tra. Tại thời điểm đó, bạn nên khởi động vào môi trường CD trực tiếp và xem thử xem có lỗi trong tpm-luks hay không, nếu /bootphân vùng thực sự bị thay đổi. Bạn vẫn đang để /bootphân vùng không được mã hóa, nhưng nếu bất cứ điều gì quan trọng bị thay đổi, đĩa chính sẽ không bao giờ được giải mã.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.