Google, Microsoft nương tựa vào khả năng bảo mật tốt hơn của Rust Language

Google, Microsoft nương tựa vào bảo mật tốt hơn của Rust Language

Khi Fortanix ra mắt vào năm 2016, công ty đã đưa ra quyết định: Họ sẽ cam kết ngôn ngữ lập trình một năm tuổi của Rust sẽ được hưởng lợi từ sức mạnh và hiệu suất bảo mật của nó.

Bảy năm sau, cam kết của Fortanix với Rust đã thành công. Jethro Beekman, phó chủ tịch, cho biết công ty đã xây dựng tính năng hỗ trợ cho Intel Software Guard Extensions (SGX), cho phép sử dụng các vùng bảo mật cho dữ liệu người dùng và hưởng lợi từ khả năng của trình biên dịch Rust trong việc tránh một số loại lỗ hổng, đặc biệt là các vấn đề an toàn bộ nhớ. về công nghệ và CISO tại công ty bảo mật dữ liệu.

“Có một số người áp dụng sớm đã thực sự nhìn thấy tiềm năng đó và sau khi thực hiện một số nghiên cứu kỹ lưỡng cũng như có được một số kinh nghiệm thực tế với nó, về cơ bản, chúng tôi quyết định dốc toàn lực,” ông nói. “Công cụ và trình biên dịch thực sự giúp bạn tránh được sai sót.”

Tám năm sau khi phát hành phiên bản 1.0, ngôn ngữ Rust và nền tảng phát triển tiếp tục được các nhà phát triển và công ty ưa chuộng tập trung vào mã bảo mật. Trong khi Rust có giá thấp hơn nhiều Xếp hạng TIOBE hơn C hoặc C++, ngôn ngữ này đang có thêm người dùng đáng kể qua từng năm. Rust cũng có cam kết sau: Trong khi chỉ có 12% lập trình viên sử dụng công nghệ này trong năm qua, gần 85% trong số đó muốn tiếp tục sử dụng ngôn ngữ này, khiến nó trở thành ngôn ngữ lập trình “được ngưỡng mộ nhất”, theo Stack Overflow “Khảo sát nhà phát triển năm 2023.”

Biểu đồ thể hiện sự phát triển của ngôn ngữ lập trình Rust

Việc áp dụng Rust tiếp tục tăng theo cấp số nhân. Nguồn: Lib.rs (https://lib.rs/stats)

Ví dụ, như một phần trong nỗ lực loại bỏ các loại lỗi, Microsoft đang viết lại các phần của kernel bằng Rust, David Weston, phó chủ tịch phụ trách bảo mật doanh nghiệp và hệ điều hành tại Microsoft, cho biết trong BlueHat Israel vào tháng 5. Công ty đã tạo ra DWriteCore trong Rust để biến phân tích phông chữ thành một tính năng an toàn bộ nhớ và hiện đang thử nghiệm viết các phần của giao diện trình điều khiển đồ họa (GDI) trong Rust. Công ty đã nhận thấy hiệu suất tăng từ 15% đến XNUMX% trong các phiên bản đầu tiên của mã.

“Tôi có thể nói rằng chúng tôi đang ở giai đoạn thu thập dữ liệu… cho Rust trong Windows,” Weston nói trong một đoạn video ghi lại bài thuyết trình của anh ấy. “Chúng tôi đang thử nghiệm một chuỗi công cụ; chúng tôi đang xem xét việc tạo mã [eration] và đang cố gắng tìm hiểu xem liệu điều này có xứng đáng với số tiền bỏ ra để học Rust hay không.”

Tuy nhiên, Microsoft, nhà tài trợ của Rust Foundation, đã cam kết với ngôn ngữ này. “Thực tế là bạn sẽ khởi động Windows bằng Rust trong kernel,” Weston nói.

Google, 1Password và các dịch vụ khác tích hợp

Google cũng là người hỗ trợ chính cho Rust. Công ty cho rằng tỷ lệ lỗ hổng an toàn bộ nhớ trong Android đã giảm là do việc chuyển đổi sang Rust, Kotlin (ngôn ngữ lập trình chức năng) và Java từ C và C++. Vào năm 2022, các lỗ hổng an toàn bộ nhớ, chẳng hạn như lỗi tràn bộ đệm, chiếm chưa đến một nửa số lỗ hổng trên Android.

Lars Bergstrom, giám đốc kỹ thuật ngôn ngữ lập trình Android tại Google và chủ tịch ban giám đốc của Rust Foundation, cho biết: “Chúng tôi thường khuyên bạn nên sử dụng Rust ở bất kỳ nơi nào mà bạn đang cân nhắc việc viết mã C [hoặc] C++ mới”. “Vì vậy, Rust thường là một lựa chọn tốt khi bạn cần kiểm soát chặt chẽ hệ thống cơ bản và các tài nguyên của nó, chẳng hạn như bộ nhớ.”

Cơ quan An ninh Quốc gia cũng khuyến nghị rằng các nhà phát triển tìm kiếm các lựa chọn thay thế cho C và C++ cho mã quan trọng về bảo mật vì những ngôn ngữ đó phụ thuộc quá nhiều vào việc nhà phát triển không mắc lỗi.

Trong khi Fortanix đã cam kết sử dụng Rust một cách rộng rãi, các công ty khác lại có chiến thuật hơn trong cách họ đưa ngôn ngữ này vào cơ sở mã của mình. Công ty quản lý danh tính và mật khẩu 1Password, yêu cầu bảo mật vững chắc để bảo vệ kho lưu trữ mật khẩu của người dùng, đã sử dụng Rust làm nền tảng phát triển cho các thành phần bảo mật dữ liệu cốt lõi của mình, sử dụng các ngôn ngữ khác cho giao diện người dùng trên các hệ điều hành khác nhau, công ty đã nêu trong một bài đăng trên blog.

Weston cho biết Microsoft cũng đang ở trong tình trạng tương tự và sẽ không viết lại phần lớn cơ sở mã của mình bằng Rust.

“Tôi ghét phải nói với bạn - tôi biết những người hâm mộ Rust ngoài kia - việc viết lại Windows bằng Rust có lẽ sẽ không sớm xảy ra,” anh nói với những người tham dự hội nghị BlueHat Israel. “Mặc dù chúng tôi yêu thích Rust nhưng chúng tôi cần một chiến lược bao gồm cả việc bảo mật nhiều mã gốc hơn.”

Đường cong học tập không quá dốc

Rebecca Rambul, giám đốc điều hành và Giám đốc điều hành của Quỹ Rust.

“Những loại tổ chức này nằm trong số… những tổ chức đầu tiên bên ngoài các tổ chức công nghệ lớn thực sự nhìn thấy tiềm năng của Rust, không chỉ vì tính bảo mật mà còn vì tốc độ và hiệu suất," cô ấy nói. “Bạn có được mức độ bảo mật đó nhờ sự an toàn của bộ nhớ, nhưng bạn không mất bất kỳ thứ gì từ góc độ hiệu suất.”

Khi Fortanix bắt đầu, mọi lập trình viên đều phải học Rust. Trong khi mọi người đều cho rằng ngôn ngữ này khó học thì hơn XNUMX/XNUMX lập trình viên học Rust cho biết họ cảm thấy tự tin khi đóng góp cho một dự án trong vòng hai tháng, theo cuộc khảo sát các lập trình viên nội bộ của Google.

Cuộc khảo sát cũng cho thấy trong khi các lập trình viên mới tiếp cận Rust một cách nhanh chóng thì trình biên dịch vẫn tiếp tục chậm hơn nhiều so với mong muốn của nhiều người.

Michael Erquitt, một kỹ sư bảo mật cấp cao tại công ty đào tạo mã hóa an toàn Security Journey, thừa nhận rằng ngôn ngữ này cần một số điều chỉnh. Ngoài ra, các lập trình viên phải phát triển ý thức của riêng mình về những chức năng và ứng dụng nào sẽ được hưởng lợi từ ngôn ngữ này.

“Luôn có sự đánh đổi cố hữu khi lựa chọn ngôn ngữ và công cụ lập trình,” Erquitt nói. “Rust như một ngôn ngữ lập trình hiện đại có thể được sử dụng cho nhiều dự án, nhưng sự lựa chọn cuối cùng phụ thuộc vào ngôn ngữ nào đáp ứng tốt nhất các yêu cầu về chức năng/khách hàng của dự án của bạn.”

Dấu thời gian:

Thêm từ Đọc tối