Ngôn Ngữ Lập Trình An Toàn Rust Đang Chiếm Lĩnh Công Nghệ (Phần 2)
Một loại lỗi phổ biến khác về an toàn bộ nhớ, được gọi là “sử dụng sau khi không có dung lượng”, liên quan đến tình huống chương trình đã từ bỏ xác nhận quyền sở hữu đối với một phần bộ nhớ (có thể bạn đã xóa tất cả các mục lịch của mình cho tháng 10 năm 2022) nhưng do nhầm lẫn vẫn giữ lại truy cập. Nếu sau đó bạn yêu cầu dữ liệu từ ngày 17 tháng 10, chương trình có thể lấy bất kỳ dữ liệu nào đã kết thúc ở đó. Và sự tồn tại của các lỗ hổng an toàn bộ nhớ trong mã cũng dẫn đến khả năng tin tặc có thể tạo ra một lời mời lịch độc hại với một ngày được chọn chiến lược hoặc tập hợp các chi tiết sự kiện được thiết kế để thao túng bộ nhớ để cấp cho kẻ tấn công quyền truy cập từ xa.
Những loại lỗ hổng này không chỉ là lỗi phần mềm. Nghiên cứu và tính toán nhiều lần đã phát hiện ra rằng chúng chiếm phần lớn tất cả các lỗ hổng phần mềm. Vì vậy, mặc dù bạn vẫn có thể mắc lỗi và tạo ra các lỗi bảo mật khi lập trình trong Rust, nhưng cơ hội để loại bỏ các lỗ hổng an toàn bộ nhớ là rất đáng kể.
Dan Lorenc, Giám đốc điều hành của công ty bảo mật chuỗi cung ứng phần mềm Chainguard cho biết: "Các vấn đề về an toàn bộ nhớ là nguyên nhân gây ra một tỷ lệ khổng lồ trong tất cả các lỗ hổng được báo cáo và điều này nằm trong các ứng dụng quan trọng như hệ điều hành, điện thoại di động và cơ sở hạ tầng". "Trong nhiều thập kỷ mà mọi người đã viết mã bằng các ngôn ngữ không an toàn về bộ nhớ, chúng tôi đã cố gắng cải thiện và xây dựng công cụ tốt hơn và dạy mọi người cách không mắc phải những sai lầm này, nhưng chỉ có giới hạn về mức độ bảo mọi người cố gắng hơn thực sự có thể hoạt động. Vì vậy, bạn cần một công nghệ mới khiến toàn bộ lớp lỗ hổng đó trở nên bất khả thi, và đó là những gì Rust đang mang lại.
Không phải là không có những người hoài nghi và gièm pha về Rust. Nỗ lực trong hai năm qua để triển khai Rust trong Linux đã gây tranh cãi, một phần vì việc thêm hỗ trợ cho bất kỳ ngôn ngữ nào khác vốn đã làm tăng độ phức tạp và một phần vì các cuộc tranh luận về cách, cụ thể, để làm cho tất cả hoạt động. Nhưng những người ủng hộ nhấn mạnh rằng Rust có các yếu tố cần thiết — nó không gây giảm hiệu suất và nó tương tác tốt với phần mềm được viết bằng các ngôn ngữ khác — và điều đó rất quan trọng đơn giản vì nó đáp ứng nhu cầu nghiêm trọng.
Lorenc, một nhà nghiên cứu và cộng tác viên mã nguồn mở lâu năm, nói: "Ít hơn là đó là sự lựa chọn đúng đắn và hơn thế nữa là nó đã sẵn sàng. " "Không có lựa chọn thay thế thực sự nào ngay bây giờ, ngoài việc không làm bất cứ điều gì, và đó không còn là một lựa chọn nữa. Tiếp tục sử dụng mã không an toàn về bộ nhớ trong một thập kỷ nữa sẽ là một vấn đề lớn đối với ngành công nghệ, đối với an ninh quốc gia, đối với mọi thứ ".
Tuy nhiên, một trong những thách thức lớn nhất của quá trình chuyển đổi sang Rust, chính xác là tất cả các thập kỷ mà các nhà phát triển đã dành để viết mã quan trọng bằng các ngôn ngữ không an toàn về bộ nhớ. Viết phần mềm mới trong Rust không giải quyết được lượng tồn đọng lớn đó. Ví dụ, việc triển khai nhân Linux đang bắt đầu ở ngoại vi bằng cách hỗ trợ trình điều khiển dựa trên Rust, các chương trình phối hợp giữa hệ điều hành và phần cứng như máy in.
"Khi bạn đang làm hệ điều hành, tốc độ và hiệu suất luôn được quan tâm hàng đầu và các bộ phận bạn đang chạy trong C ++ hoặc C thường là những phần mà bạn không thể chạy bằng Java hoặc các ngôn ngữ an toàn với bộ nhớ khác do hạn chế hiệu suất," Kleidermacher của Google nói. "Vì vậy, để có thể chạy Rust và có hiệu suất tương tự nhưng có được sự an toàn về bộ nhớ thực sự tuyệt vời. Nhưng đó là một cuộc hành trình. Bạn không thể chỉ đi và viết lại 50 triệu dòng mã trong một sớm một chiều, vì vậy chúng tôi đang cẩn thận chọn các thành phần quan trọng về bảo mật và theo thời gian, chúng tôi sẽ trang bị thêm những thứ khác ".
Trong Android, Kleidermacher cho biết rất nhiều tính năng quản lý khóa mã hóa hiện được viết bằng Rust, cũng như tính năng giao tiếp internet riêng tư DNS qua HTTPS, một phiên bản mới của ngăn xếp chip băng thông siêu rộng và Khung ảo hóa Android được sử dụng trong chip Tensor G2 tùy chỉnh của Google. Ông nói thêm rằng nhóm Android đang ngày càng chuyển đổi các ngăn xếp kết nối như Bluetooth và Wi-Fi sang Rust vì chúng dựa trên các tiêu chuẩn ngành phức tạp và có xu hướng chứa nhiều lỗ hổng. Nói tóm lại, chiến lược này bắt đầu nhận được các lợi ích bảo mật gia tăng từ việc chuyển đổi các thành phần phần mềm quan trọng hoặc tiếp xúc nhiều nhất sang Rust trước và sau đó làm việc bên trong từ đó.
Khi Rust thực hiện quá trình chuyển đổi sang áp dụng chính thống, trường hợp cho một số loại giải pháp cho các vấn đề an toàn bộ nhớ dường như được thực hiện lặp đi lặp lại mỗi ngày. Chỉ trong tuần này, một lỗ hổng nghiêm trọng trong thư viện giao tiếp an toàn phổ biến OpenSSL có thể đã bị ngăn chặn nếu cơ chế được viết bằng ngôn ngữ an toàn cho bộ nhớ. Và không giống như lỗ hổng OpenSSL khét tiếng năm 2014 không được chú ý trong hai năm và khiến các trang web trên Internet bị tấn công đánh chặn dữ liệu, lỗi mới này đã được đưa vào OpenSSL trong vài tháng qua, bất chấp những nỗ lực để giảm các lỗ hổng an toàn bộ nhớ.
Nguồn: Lily Hay Newman - Wire.com
Mọi chi tiết xin vui lòng liên hệ:
Công Ty Cổ Phần Trí Tuệ Và Công Nghệ Cao CNC ASIA | |
Địa chỉ: | Số 29 ngõ 26 phố Võ Văn Dũng, Phường Ô Chợ Dừa, Quận Đống Đa, Thành phố Hà Nội, Việt Nam |
Email: | info@cncasia.com.vn |
Hotline: | 0983.875.058 |
Website: | http://cncasia.com.vn |