Hack Linux trong vòng 70 giây chỉ bằng cách giữ nút Enter

Nghiêm trọng hơn khi cách làm này có thể thực hiện với hầu hết các bản phân phối Linux như Debian, Ubuntu, Fedora, RHEL và SUSE.

Bạn tự tin rằng Linux sẽ an toàn hơn nhiều so với Windows? Điều này có thể đúng cho đến khi một tin tặc chỉ mất hơn một phút để vượt qua các thủ tục chứng thực trên các hệ thống Linux bằng cách giữ phím Enter trong khoảng 70 giây.

Kết quả là gì? Hành động này sẽ cấp phép cho hacker dùng lệnh shell với quyền root ưu tiên. Điều này cho phép hacker chiếm hoàn toàn quyền điều khiển từ xa máy tính Linux được mã hóa.

Vấn đề bảo mật này dựa trên một lỗ hổng (CVE-2016-4484) trong việc cài đặt chức năng Cryptsetup, được sử dụng để mã hóa ổ cứng thông qua Linux Unified Key Setup (LUKS), một cài đặt tiêu chuẩn cho việc mã hóa ổ đĩa trên hệ điều hành Linux (một tính năng tương tự như Bitlocker dùng để mã hóa ổ cứng trên hệ điều hành Windows).

Thực chất, lỗ hổng này là lỗi trong cách xử lý mật khẩu của chức năng Cryptsetup trong quá trình giải mã khi khởi động hệ điều hành, khi cho phép người dùng nhập thử mật khẩu nhiều lần khác nhau.

Điều tồi tệ hơn ở đây là gì? Ngay cả khi người dùng thử nhập mật khẩu 93 lần, người dùng cũng sẽ được chuyển đến giao diện lệnh shell (Busybox trong Linux) có các quyền root ưu tiên. Nói cách khác, nếu bạn nhập vào mật khẩu trống 93 lần – hay đơn giản chỉ cần giữ nút Enter trong khoảng 70 giây – bạn sẽ giành được quyền truy cập vào root shell của initramfs (tập tin hệ thống ban đầu trên RAM).

Khi vào được root shell trên máy tính Linux mục tiêu, bạn có thể sao chép, chỉnh sửa, hay phá hủy ổ đĩa cứng, hoặc sử dụng mạng để lọc lấy dữ liệu.

Lỗ hổng cũng có thể bị khai thác từ xa

Được khám phá bởi nhà nghiên cứu bảo mật người Tây Ban Nha, Hector Marco và Ismael Ripoll, lỗ hổng này tác động đến hầu như tất cả các bản phân phối của Linux, bao gồm Debian, Ubuntu, Fedora, Red Hat Enterprise Linux (RHEL) và SUSE Linux Enterprise Server (SLES), những bản phân phối đang được cài đặt trên máy tính của hàng triệu người dùng.

Dưới đây là những gì các nhà nghiên cứu giải thích về lỗ hổng này trong bản tư vấn an ninh của họ, được trình bày tại Hội nghị DeepSec trong năm nay tại Vienna, Áo:

“Lỗ hổng này cho phép bạn chiếm được root shell của initramfs trên các hệ điều hành bị ảnh hưởng. Cách khai thác lỗ hổng này rất ổn định, vì nó không phụ thuộc vào tính riêng biệt hay cấu hình của mỗi hệ điều hành. Kẻ tấn công có thể sao chép, chỉnh sửa hoặc phá hủy ổ đĩa cứng cũng như thiết lập mạng lưới để khai thác dữ liệu. Lỗ hổng này đặc biệt nghiêm trọng trong các môi trường sử dụng như, các thư viện, các máy ATM, máy tính của sân bay, các phòng thí nghiệm, … những nơi toàn bộ quá trình khởi động được bảo vệ bởi mật khẩu trong BIOS và GRUB, và chúng ta chỉ có bàn phím và chuột.”

Tuy nhiên, nếu bạn nghĩ rằng giữ nút Enter là cách duy nhất để khai thác lỗ hổng này, thì có lẽ bạn đã nhầm, nó còn có thể bị khai thác từ xa nữa. Nếu bạn sử dụng các dịch vụ đám mây trên nền Linux, bạn có thể khai thác lỗ hổng này từ xa mà không cần phải “tiếp xúc vật lý” với máy tính mục tiêu.

Lỗ hổng này nghiêm trọng như thế nào?

Tuy nhiên, theo các nhà nghiên cứu, điều quan trọng cần chú ý là lỗ hổng này không cho phép kẻ tấn công truy cập vào các nội dung trên ổ đĩa mã hóa, cho dù shell cho phép kẻ tấn công thực hiện một loạt các hành vi sau, theo mô tả của Marco:

Nâng cao quyền ưu tiên: do phân vùng khởi động trên máy tính thường không được mã hóa:

– Nó có thể được sử dụng để lưu tập tin thực thi đã được kích hoạt SetUID bit. Tập tin này sau đó được người dùng nội bộ sử dụng để nâng cao quyền ưu tiên của mình.

Nếu việc khởi động không được bảo mật, sau đó nó có thể cho phép kẻ tấn công thay thế nhân và file image của initrd.

Khai thác thông tin: kẻ tấn công cũng có thể lợi dụng lỗ hổng này để truy cập vào tất cả các ổ đĩa. Cho dù phân vùng hệ thống đã được mã hóa, nó vẫn có thể bị sao chép vào một bộ nhớ ngoài, sau đó tấn công vét cạn mật khẩu (brute force). Rõ ràng, khi được sao chép sang các thiết bị khác, kẻ tấn công có thể truy cập vào các thông tin không được mã hóa của phân vùng đó.

Tấn công từ chối dịch vụ (DoS): lỗ hổng này cũng cho phép kẻ tấn công xóa thông tin trên tất cả các ổ đĩa. Điểm yếu bảo mật này được xác nhận sẽ ảnh hưởng đến Debian, Ubuntu và Fedora, cùng với rất nhiều bản phân phối Linux khác. Người dùng Arch Linux, cũng như người dùng Solus, không bị ảnh hưởng bởi lỗ hổng này.

Dưới đây là cách sửa lỗ hổng bảo mật này:

Trên thực tế, nếu là người dùng cá nhân thì có thể bạn sẽ không phải quá lo lắng về lỗ hổng nghiêm trọng này. Trước tiên, cách khai thác lỗ hổng này chỉ có thể thực hiện nếu người dùng lựa chọn LUKS trong quá trình cài đặt. Hơn nữa, không những LUKS chỉ là một tùy chọn trong quá trình cài đặt, tương tự như Bitlocker trên Windows, tính năng này cũng thường không được người dùng ưa chuộng bởi sự phức tạp của nó.

Tuy nhiên, nếu bạn đã cài đặt LUKS cho hệ thống của mình, thật may là lỗ hổng này vẫn có thể được sửa chữa một cách dễ dàng.

Bước đầu tiên, ấn và giữ nút Enter tại màn hình nhập mật khẩu LUKS trong khoảng 70 giây, cho đến khi màn hình shell xuất hiện, bước này chỉ để xem liệu hệ điều hành của bạn có bị lỗ hổng này hay không.

Nếu có, bạn sẽ cần kiểm tra lại với bộ phận hỗ trợ của nhà cung cấp bản phân phối Linux này, để tìm hiểu xem liệu có bản vá cho nó hay không.

Nếu bản vá không có sẵn, lỗ hổng này có thể khắc phục bằng cách chỉnh sửa tập tin cryptroot để chặn việc kích hoạt chuỗi khởi động khi số lần nhập mật khẩu vượt quá giới hạn. Để khắc phục lỗi này, bạn có thể bổ sung dòng lệnh sau vào cấu hình khởi động của bạn:

sed -i ‘s/GRUB_CMDLINE_LINUX_DEFAULT=”/GRUB_CMDLINE_LINUX_DEFAULT=”panic=5 /’ /etc/default/grub grub-install

Nếu bản vá đã có, hãy đảm bảo hệ điều hành trên máy tính của bạn luôn được cập nhật lên phiên bản mới nhất.

Theo Genk

Khối Giáo dục FPT – fpt.edu.vn

Học Viện Mạng và Phần Cứng  – jetking.edu.vn