Các nhà phát triển Java, .NET dễ gặp các lỗ hổng thường xuyên hơn

Các nhà phát triển Java, .NET dễ gặp các lỗ hổng thường xuyên hơn

Nút nguồn: 1901108

Hơn ba phần tư ứng dụng được viết bằng Java và .NET có ít nhất một lỗ hổng từ Top 10 của OWASP, một danh sách các điểm yếu của phần mềm mà các nhà phát triển thường sử dụng làm cơ sở để bảo mật ứng dụng.

Đó là theo công ty kiểm tra phần mềm Veracode, công ty đã tìm thấy trong một phân tích gần 760,000 ứng dụng rằng khoảng một phần năm ứng dụng sử dụng hai hệ sinh thái lập trình đó có ít nhất một lỗ hổng nghiêm trọng hoặc nghiêm trọng.

Nhìn chung, ứng dụng trung bình có 27% cơ hội có ít nhất một lỗ hổng được giới thiệu mỗi tháng, với các ứng dụng được viết kém và ứng dụng được quét không thường xuyên có khả năng có nhiều lỗi hơn, trong khi các ứng dụng có lịch sử quy trình bảo mật lâu hơn và được viết bởi những người được đào tạo bài bản. dữ liệu cho thấy các nhà phát triển ít có khả năng đưa ra các lỗ hổng mới.

Tim Jarrett, phó chủ tịch quản lý sản phẩm chiến lược tại Veracode cho biết, phân tích nêu bật tầm quan trọng của việc tích hợp bảo mật vào quy trình phát triển.

“Dữ liệu luôn cho thấy rằng nếu bạn xây dựng thói quen bảo mật trong quy trình của mình, bạn sẽ có kết quả tốt hơn, cả về mặt sửa chữa các lỗi tổng thể và… bạn cũng làm chậm quá trình tràn ngập nội dung và điều đó tạo ra sự khác biệt lớn. " anh ta nói.

Trong khi đó, các công ty phần mềm và nhóm phát triển tiếp tục đấu tranh để loại bỏ các lỗi và lỗ hổng khỏi mã ứng dụng. Trong khi các nhà phát triển và các dự án mã nguồn mở đang sửa lỗi phần mềm nhanh hơn, thời gian bán hủy của lỗ hổng bảo mật trung bình tiếp tục được đo bằng tháng chứ không phải ngày hay tuần, theo báo cáo “Tình trạng bảo mật phần mềm” của Veracode, được công bố vào ngày 11 tháng XNUMX. 

Ví dụ: các ứng dụng Java và .NET, chiếm 71% tổng số ứng dụng được nghiên cứu phân tích, cho thấy một nửa số lỗi vẫn ảnh hưởng đến các ứng dụng sau 243 ngày và 158 ngày tương ứng.

Chu kỳ bán rã của các lỗ hổng theo ngôn ngữ lập trình

Nguồn: Báo cáo “Tình trạng bảo mật phần mềm” của Veracode

Ứng dụng phình to và tuổi tác đều có tác động tiêu cực đáng kể đến bảo mật của chúng. Ứng dụng trung bình tích lũy thêm khoảng 40% mã và có nhiều khả năng có lỗ hổng hơn. Khoảng 54% ứng dụng hai năm tuổi có lỗi, trong khi 69% ứng dụng năm tuổi có lỗi, phân tích được tìm thấy.

Bảo mật đáng ngạc nhiên của JavaScript

Đáng ngạc nhiên là các ứng dụng được viết bằng JavaScript hoặc sử dụng một trong các khung JavaScript có xu hướng hoạt động tốt hơn trong quá trình quét lỗ hổng. Trong khi khoảng 80% ứng dụng Java và .NET có lỗ hổng thì chỉ có 56% ứng dụng JavaScript có lỗ hổng. Và trong khi khoảng 20% ​​ứng dụng Java và .NET có lỗ hổng nghiêm trọng cao, thì chỉ có dưới 10% ứng dụng JavaScript.

Jarret nói: Các khung JavaScript mới hơn, có tính bảo mật cao hơn và có các lợi ích của một hệ sinh thái mã nguồn mở, từ đó Java mới chỉ được hưởng lợi tương đối gần đây.

“JavaScript là một ngôn ngữ mới hơn, vì vậy các ứng dụng được viết bằng ngôn ngữ này [là] mới hơn và có mối tương quan mà chúng tôi đã thiết lập trong các báo cáo trước đây giữa tuổi của ứng dụng và thời gian khắc phục lỗ hổng,” ông nói. “Rất nhiều công cụ dành cho JavaScript [đã] trưởng thành và đó là ngôn ngữ được hỗ trợ tốt.”

Ngoài ra, khi lỗ hổng bảo mật trong ứng dụng Java là sự cố của bên thứ nhất — để nhà phát triển khắc phục sự cố — trong JavaScript và khung Node.js, lỗ hổng bảo mật thường là sự cố của bên thứ ba vì lỗ hổng đã xảy ra trong một thành phần mà phần mềm phụ thuộc vào.

Ông nói: “Cách bạn khắc phục sự cố bảo mật trong ứng dụng Java chủ yếu vẫn là [nơi] bạn thực hiện thay đổi đối với tệp lớp và bạn biên dịch nó. “Ở đâu trong một ứng dụng JavaScript, nó [là] vấn đề về quản lý gói nhiều hơn. Và đó là một điều khác biệt mà một nhà phát triển phải học, điều này có thể dễ dàng hơn.”

Ngôn ngữ lập trình mới mòn mỏi

Dữ liệu của báo cáo cũng nêu bật sự khác biệt giữa ngôn ngữ lập trình mà các nhà phát triển đang học và những ngôn ngữ thực sự được sử dụng trong phần lớn các doanh nghiệp. Các ngôn ngữ và hệ sinh thái hàng đầu — Java, .NET và JavaScript — được Veracode nhìn thấy không phải là lựa chọn công nghệ lập trình của các nhà phát triển.

Trong khi các khung dựa trên JavaScript và JS — chẳng hạn như Node.js, React.js và Angular — chiếm ưu thế trong danh sách công nghệ được nhà phát triển ưa thích, Java là một trong những ngôn ngữ lập trình ít được yêu thích nhất, với 54% số người được hỏi sợ ngôn ngữ này, so với với 46% người yêu thích nó, theo Stack Overflow's Khảo sát nhà phát triển năm 2022

Tuy nhiên, Java thống trị thị phần các ứng dụng được quét bởi máy khách Veracode (44%) so với 14% của JavaScript. 

Ngoài ra, ngôn ngữ lập trình được yêu thích nhất, Rust, thậm chí còn không xuất hiện trong dữ liệu của Veracode, trong khi ngôn ngữ lập trình số 6 của các nhà phát triển, Python, chỉ chiếm chưa đến 4% số ứng dụng được quét.

Jarrett của Veracode cho biết một phần lý do của việc ngắt kết nối là các ứng dụng đã thiết lập được viết bằng các ngôn ngữ lập trình đã thiết lập.

“Bạn có toàn bộ vũ trụ của tất cả các mã hiện có, và sau đó bạn có loại bọt trên đỉnh của làn sóng phát triển mới đang diễn ra, và đó là nơi bạn thấy mọi người chọn Go và Rust và Dart và Flutter,” anh nói.

Do cơ sở mã tổng hợp của các ứng dụng được viết bằng các ngôn ngữ đó nên tình trạng đó có thể sẽ không thay đổi.

Ông nói: “Thật không may, các ứng dụng cũ không bao giờ chết, vì vậy có rất nhiều khối lượng quan trọng trong các doanh nghiệp có các cơ sở mã Java và .NET lớn này.

Dấu thời gian:

Thêm từ Đọc tối