Bài liên quan
Mới đây, nhà nghiên cứu Jean-Baptiste Bédrune từ Quarkslab và nhà mật mã Marion Videau đã phát hiện một số lỗ hổng an toàn trên phần mềm mã hóa ổ đĩa phổ biến VeraCrypt, trong đó có 8 lỗ hổng nghiêm trọng, 3 lỗ hổng trung bình và 15 lỗ hổng yếu về tính an toàn của nó.
VeraCrypt là một dự án phần mềm mã hóa dựa trên nền tảng của TrueCrypt 7.1a và được duy trì bởi IDRIX. Nó được đưa ra sau khi dự án TrueCrypt bất ngờ ngừng phát triển vào năm 2014.
Các nhà nghiên cứu đã phân tích phiên bản VeraCrypt 1.18 và bộ nạp khởi động DCS EFI 1.18 (UEFI là chuẩn mới được phát triển để khắc phục và thay thế dần chuẩn BIOS). Họ tập trung chủ yếu vào các tính năng mới của VeraCrypt khi được nâng cấp lên từ TrueCrypt vào tháng 4/2015.
Một trong những tính năng quan trọng nhất mà VeraCrypt thực hiện là việc hỗ trợ UEFI, mã của nó được lưu trong một kho lưu trữ riêng có tên là VeraCrypt-DSC (Disk Cryptography Services). Môđun mới này chính là sự khác biệt lớn nhất so với TrueCrypt.
Trong cả hai chuẩn này, độ dài của mật khẩu đều có thể tính được khi quy trình mã hóa được thực hiện. Tuy nhiên, đối với chuẩn BIOS, khi khởi động, tổ hợp các phím được lưu trữ trong một bộ đệm cụ thể của khu vực dữ liệu BIOS. Còn đối với UEFI, mỗi driver có một bộ đệm riêng để chứa các tổ hợp các phím. Địa chỉ của bộ đệm này không được biết và hoàn toàn phụ thuộc vào việc cài đặt mật khẩu. Mật khẩu này được cung cấp bởi người dùng và được đọc theo từng ký tự bởi hàm GetKey của bộ nạp khởi động. Chính điều này khiến cho việc quản lý xóa bộ đệm chứa tổ hợp các phím không được đảm bảo.
Từ đó, các nhà nghiên cứu đã chỉ ra rằng, mật khẩu khởi động ở chế độ UEFI có thể bị lộ, vì ứng dụng không xóa mật khẩu khi người dùng thay đổi mật khẩu. Theo họ, các dữ liệu được xử lý bởi bộ nạp khởi động rất hiếm khi bị xóa. Thông thường, mật khẩu người dùng được xóa đúng lúc khởi động. Tuy nhiên, khi người dùng thay đổi mật khẩu của mình, các cấu trúc mật khẩu (chứa mật khẩu mới) sẽ không bị xóa (chức năng SecRegionChangePwd trong DcsInt/DcsINT.c).
Lỗ hổng quan trọng khác liên quan đến việc thực hiện các mã khối đối xứng GOST 28.147-89, thường được biết đến như một lỗi cài đặt. Do đó, các nhà phát triển cần loại bỏ mã khối theo chuẩn GOST 28.147-89 hay rộng hơn là bất kỳ thuật toán mã khối 64 bit nào trong danh sách có sẵn.
Ngoài ra, còn nhiều lỗ hổng trung bình và yếu cũng đã được phát hiện. Hiện tại, bản cập nhật VeraCrypt 1.9 đã giải quyết được gần hết các lỗ hổng này, tuy nhiên, vẫn còn một số chưa được vá hoàn thiện. Hiện tại, theo đánh giá của Quỹ cải tiến công nghệ mã nguồn mở, VeraCrypt đã an toàn hơn nhiều sau bản cập nhật này và người dùng đã có thể yên tâm tiếp tục sử dụng nó.
Các nhà nghiên cứu đã phân tích phiên bản VeraCrypt 1.18 và bộ nạp khởi động DCS EFI 1.18 (UEFI là chuẩn mới được phát triển để khắc phục và thay thế dần chuẩn BIOS). Họ tập trung chủ yếu vào các tính năng mới của VeraCrypt khi được nâng cấp lên từ TrueCrypt vào tháng 4/2015.
Một trong những tính năng quan trọng nhất mà VeraCrypt thực hiện là việc hỗ trợ UEFI, mã của nó được lưu trong một kho lưu trữ riêng có tên là VeraCrypt-DSC (Disk Cryptography Services). Môđun mới này chính là sự khác biệt lớn nhất so với TrueCrypt.
Trong cả hai chuẩn này, độ dài của mật khẩu đều có thể tính được khi quy trình mã hóa được thực hiện. Tuy nhiên, đối với chuẩn BIOS, khi khởi động, tổ hợp các phím được lưu trữ trong một bộ đệm cụ thể của khu vực dữ liệu BIOS. Còn đối với UEFI, mỗi driver có một bộ đệm riêng để chứa các tổ hợp các phím. Địa chỉ của bộ đệm này không được biết và hoàn toàn phụ thuộc vào việc cài đặt mật khẩu. Mật khẩu này được cung cấp bởi người dùng và được đọc theo từng ký tự bởi hàm GetKey của bộ nạp khởi động. Chính điều này khiến cho việc quản lý xóa bộ đệm chứa tổ hợp các phím không được đảm bảo.
Từ đó, các nhà nghiên cứu đã chỉ ra rằng, mật khẩu khởi động ở chế độ UEFI có thể bị lộ, vì ứng dụng không xóa mật khẩu khi người dùng thay đổi mật khẩu. Theo họ, các dữ liệu được xử lý bởi bộ nạp khởi động rất hiếm khi bị xóa. Thông thường, mật khẩu người dùng được xóa đúng lúc khởi động. Tuy nhiên, khi người dùng thay đổi mật khẩu của mình, các cấu trúc mật khẩu (chứa mật khẩu mới) sẽ không bị xóa (chức năng SecRegionChangePwd trong DcsInt/DcsINT.c).
Lỗ hổng quan trọng khác liên quan đến việc thực hiện các mã khối đối xứng GOST 28.147-89, thường được biết đến như một lỗi cài đặt. Do đó, các nhà phát triển cần loại bỏ mã khối theo chuẩn GOST 28.147-89 hay rộng hơn là bất kỳ thuật toán mã khối 64 bit nào trong danh sách có sẵn.
Ngoài ra, còn nhiều lỗ hổng trung bình và yếu cũng đã được phát hiện. Hiện tại, bản cập nhật VeraCrypt 1.9 đã giải quyết được gần hết các lỗ hổng này, tuy nhiên, vẫn còn một số chưa được vá hoàn thiện. Hiện tại, theo đánh giá của Quỹ cải tiến công nghệ mã nguồn mở, VeraCrypt đã an toàn hơn nhiều sau bản cập nhật này và người dùng đã có thể yên tâm tiếp tục sử dụng nó.
Nhật Minh (Theo cyberdefensemagazine.com)
Post a Comment