Loại bỏ tận gốc các lỗ hổng an toàn bộ nhớ
Kết quả mang tính nghịch lý
- Khi codebase được viết bằng các ngôn ngữ không an toàn bộ nhớ ngày càng tăng, việc chuyển các tính năng mới sang ngôn ngữ an toàn bộ nhớ sẽ làm giảm mạnh các lỗ hổng an toàn bộ nhớ
- Điều này là do các lỗ hổng giảm theo hàm mũ theo thời gian
Giải thích bằng toán học
- Vòng đời của lỗ hổng tuân theo phân phối hàm mũ
- Lỗ hổng chủ yếu phát sinh trong mã mới, và theo thời gian mã sẽ trở nên an toàn hơn
- Mật độ lỗ hổng của mã đã 5 năm tuổi thấp hơn từ 3,4 đến 7,4 lần so với mã mới
Trường hợp thực tế trên Android
- Từ năm 2019, nhóm Android đã bắt đầu chuyển hoạt động phát triển mới sang các ngôn ngữ an toàn bộ nhớ
- Tính đến năm 2024, tỷ lệ lỗ hổng an toàn bộ nhớ đã giảm từ 76% xuống 24%
- Khi các lỗ hổng an toàn bộ nhớ giảm, rủi ro bảo mật tổng thể cũng giảm theo
Sự tiến hóa của chiến lược an toàn bộ nhớ
- Thế hệ 1: vá phản ứng - phát hiện rồi sửa lỗ hổng
- Thế hệ 2: giảm thiểu chủ động - khiến việc khai thác lỗ hổng trở nên khó hơn
- Thế hệ 3: phát hiện lỗ hổng chủ động - tìm ra lỗ hổng trước khi chúng bị khai thác
- Thế hệ 4: phòng ngừa độ tin cậy cao - chuyển sang ngôn ngữ an toàn bộ nhớ để ngăn lỗ hổng phát sinh ngay từ đầu
Ưu điểm của phòng ngừa độ tin cậy cao
- Chấm dứt cuộc chạy đua bất tận giữa bên phòng thủ và bên tấn công
- Nâng cao bảo mật và giảm chi phí thông qua các ngôn ngữ an toàn bộ nhớ
- Cải thiện tính đúng đắn của mã và năng suất của nhà phát triển
Từ bài học đến thực hành
- Không cần loại bỏ hoặc viết lại toàn bộ mã hiện có không an toàn bộ nhớ
- Tăng tốc quá trình chuyển sang ngôn ngữ an toàn bộ nhớ bằng cách cải thiện khả năng tương tác
- Phát triển các công cụ cải thiện khả năng tương tác giữa Rust và C++, cũng như giữa Rust và Kotlin
Vai trò của các thế hệ trước
- Sử dụng có chọn lọc các biện pháp giảm thiểu và phát hiện chủ động
- Khi chuyển sang mã an toàn bộ nhớ, nhu cầu về giảm thiểu và phát hiện sẽ giảm xuống
Kết luận
- Việc dùng ngôn ngữ an toàn bộ nhớ cho mã mới khiến lỗ hổng giảm theo hàm mũ
- Hơn 6 năm kết quả nhất quán trên Android đã chứng minh hiệu quả của cách tiếp cận này
Tóm tắt của GN⁺
- Việc chuyển sang các ngôn ngữ an toàn bộ nhớ là rất quan trọng để giảm các lỗ hổng an toàn bộ nhớ
- Trường hợp của nhóm Android cho thấy các lỗ hổng an toàn bộ nhớ đã giảm mạnh
- Cải thiện khả năng tương tác thực tế hơn so với việc viết lại hoàn toàn mã hiện có
- Sử dụng các ngôn ngữ an toàn bộ nhớ như Rust có thể đồng thời nâng cao bảo mật và năng suất
1 bình luận
Ý kiến Hacker News