Cuối tuần vừa rồi, Google đã thông báo công ty đang triển khai một dự án với nhiệm vụ là thêm chức năng mới cho Java, mang tên là Contracts hay Design-By-Contract (DBC). Dự án này có tên gọi Contracts for Java hay viết tắt là Cofoja.Các nhà nghiên cứu cho biết, Contracts sẽ giúp cho những nhà phát triển ngăn chặn lỗi tràn bộ đệm bằng cách cung cấp cách thức dễ sử dụng. Dù kiểu tấn công tràn bộ đệm là một trong những kỹ thuật tấn công lâu đời, nhưng nó luôn gây rắc rối cho bất cứ người dùng nào. Hồi cuối năm ngoái, Microsoft đã nhận diện khoảng 2,6 triệu trường hợp có thể bị tấn công qua tràn bộ đệm trong JRE (Java Runtime Engine). Cách hoạt động của Contracts là cứ mỗi lần một phương thức (method) nào đó được gọi trong lúc chạy chương trình. Lúc này, bất kỳ giá trị nào nằm trong phương thức đó phải được kiểm duyệt qua một bộ tiêu chuẩn thiết lập sẵn. Tương tự, mỗi lần một phương thức trả về một giá trị nào, giá trị đó cũng phải đáp ứng bộ tiêu chuẩn đã được đặt ra. Do vậy DBC cũng được xem như một dạng hợp đồng giữa các thành phần (component) trong phần mềm. Để có sự ra đời của Contracts, các nhà nghiên cứu đã “mượn” ý tưởng từ ngôn ngữ lập trình khác là Eiffel. Ngôn ngữ này cũng có khái niệm được biết như là DBC mang tính bảo mật hơn. Andreas Leitner, một kỹ sư kiểm tra phần mềm của Google cũng là thành viên của dự án Cofoja, cho biết Contracts sẽ giúp mã lệnh Java trở nên an toàn hơn. Nếu như không có DBC, Java cũng có một số thuận lợi hơn so với các ngôn ngữ khác là nó có thể phát hiện lỗi ở những giai đoạn phát triển đầu tiên, do Java được chạy trong sandbox và buộc các lập trình viên phải xác định kiểu biến trước khi sử dụng. Nhưng Leitner cũng nói rằng việc có hỗ trợ thêm DBC sẽ giúp Java hạn chế những kiểu tấn công tràn bộ đệm và ngăn chặn được những giá trị nhập vào với số lượng lớn khó kiểm soát. Các nhà phát triển Google đang đứng đằng sau dự án Cofoja và họ vẫn đang tiếp tục thực hiện dự án này. |
|
Công nghệ thông tin
Google thêm tính năng bảo mật cho Java
Google đang phát triển một bộ tiện ích mở rộng (extensions) để hỗ trợ bảo mật tốt hơn trong các chương trình Java nhằm tránh các kiểu tấn công tràn bộ đệm.
Nguồn: PC World Mỹ, 11/2/2011