OpenBSD sẽ tạo kernel riêng mỗi lần reboot máy, giúp bảo mật tốt hơn

Có tên gọi KARL - Kernel Address Randomized Link - và hoạt động bằng cách tái kết nối các tập tin kernel nội bộ theo một thứ tự ngẫu nhiên để tạo ra dữ liệu nhị phân kernel mới mỗi lần. Hiện tại, với bản stable đã phát hành, kernel của OpenBSD sử dụng thứ tự định sẵn để kết nối và tải tập tin nội bộ bên trong kernel, tạo ra kernel giống nhau cho mọi người dùng.

KARL khác với ASLR

Được phát triển bởi Theo de Raadt, KARL sẽ tạo ra kernel nhị phân mới mỗi khi cài đặt, nâng cấp hoặc reboot thiết bị. Nếu người dùng thực hiện các thao tác này, kernel mới tạo gần nhất sẽ thay thế kernel nhị phân hiện tại, hệ điều hành sẽ tạo kernel nhị phân mới và dùng nó cho lần boot/reboot/nâng cấp tiếp theo, từ đó liên tục thay đổi kernel.

Không nên nhầm lẫn KARL với ASLR - Address Space Layout Randomization - một kỹ thuật lấy ngẫu nhiên địa chỉ bộ nhớ nơi thực thi đoạn mã ứng dụng, từ đó kẻ khai thác không thể nhắm tới một vị trí cụ thể của bộ nhớ (nơi chạy kernel hoặc ứng dụng).

“Nó vẫn sẽ dùng cùng địa chỉ trong KVA (Kernel Virtual Address Space). Đây không phải là kernel ASLR”, de Raadt cho biết. Thay vào đó, KARL tạo kernel nhị phân với cấu trúc ngẫu nhiên, vì thế kẻ khai thác không thể tấn công các hàm, con trỏ, đối tượng.

Kernel độc nhất sẽ kết nối theo kiểu đoạn mã startup được giữ ở cùng một nơi, theo sau là khoảng trống với kích thước ngẫu nhiên, sau nữa là tất cả các tập tin .o được sắp xếp ngẫu nhiên. Kết quả là khoảng cách giữa hàm và biến là mới hoàn toàn. Thông tin rò rỉ từ một con trỏ (pointer) sẽ không tiết lộ thông tin của con trỏ hay đối tượng khác. Điều này cũng có thể giúp làm giảm số lượng tiện ích trên các kiến trúc có kích thước thay đổi tùy biến, bởi vì polymorphism (tính đa dạng) trong luồng lệnh (instruction stream) bị phá hủy do những thay đổi lồng nhau.

“ Kết quả là, mỗi kernel được tạo ra sẽ là độc nhất”, de Raadt cho biết.

Tính năng được phát triển trong 2 tháng qua

Bắt đầu làm việc với tính năng này từ tháng Năm và lần đầu tiên thảo luận vào giữa tháng Sáu trên danh sách mail kỹ thuật viên của OpenBSD, KARL vừa có mặt trên bản snapshot của OpenBSD 6.1.

“Vấn đề bây giờ là nhiều người cài kernel nhị phân từ OpenBSD và chạy nó trong 6 tháng hoặc hơn. Tất nhiên nếu bạn boot nó liên tục thì layout sẽ không thay đổi gì. Đó là lý do vì sao chúng tôi ở đây”, de Raadt nói. “Tuy vậy, snapshot hiện tại sẽ còn được thay đổi thêm vì tôi đang làm việc với Robert Peichaer. Thay đổi này sẽ gia cố thêm để đảm bảo bạn boot kernel mới tạo mỗi lần reboot".

KARL là tính năng độc nhất

Nói với tờ Bleeping Computer, Tiberiu C. Turbureanu, sáng lập của Techoethical, startup bán các sản phẩm tập trung vào tính bảo mật, nói rằng tình năng này sẽ là độc nhất với OpenBSD. Turbureanu nói về khả năng đưa tính năng này lên kernel Linux: “Nó không được thực thi trên Linux, đó có vẻ là ý tưởng hay”.

Tạo kernel mới ngẫu nhiên giúp bảo mật máy tính tốt hơn
Tạo kernel mới ngẫu nhiên giúp bảo mật máy tính tốt hơn

Thay vào đó, dự án Linux vừa thêm khả năng hỗ trợ Kernel Address Space Layout Randomization (KASLR), tính năng này giúp đưa ASLR tới kernel, nạp kernal tại địa chỉ bộ nhớ ngẫu nhiên. Tính năng này là mặc định trên Linux 4.12 phát hành tuần trước. Sự khác biệt giữa chúng là KARL nạp kernel nhị phân khác nhau ở cùng một nơi, trong khi KASLR nạp tập tin nhị phân giống nhau trên những vị trí ngẫu nhiên khác nhau. Nghĩa là cùng một đích đến, nhưng đường đi thì khác nhau.

Với Windows, KARL không được hỗ trợ nhưng MIcrosoft cũng đã dùng KASLR nhiều năm. Fabian Wosar, Trưởng bộ phận kỹ thuật của công ty diệt virus Emsisoft cũng sẵn sàng với việc thêm KARL vào kernel Windows. “Ý tưởng của OpenBSD có thể đi xa hơn (bảo vệ kernel Windows hiện tại_ bởi mọi người đều sẽ có kernel nhị phân riêng biệt”, Wosar cho biết.

“Vậy nên ngay cả khi có được địa chỉ kernel bắt đầu (chọn ngẫu nhiên), bạn cũng không thể dùng nó để xác định vị trí của bất kì hàm nào cũng như vị trí hàm có liên quan tới kernel khi bắt đầu cũng sẽ khác nhau trên từng hệ thống”. Có KARL trên OS sẽ cải thiện đáng kể khả năng bảo mật cho người dùng Windows và Linux.

Thứ Sáu, 07/07/2017 09:41
31 👨 258
0 Bình luận
Sắp xếp theo