75% ứng dụng thương mại bao gồm mã nguồn mở lỗi thời và có nhiều lỗ hổng

Tóm tắt công ty phân tích 1253 cơ sở mã thương mại và kết luận rằng gần như tất cả (99%) ứng dụng thương mại được xem xét đều bao gồm ít nhất một thành phần nguồn mở và 70% mã trong các kho được xem xét là nguồn mở. Để so sánh, trong một nghiên cứu tương tự vào năm 2015, tỷ lệ nguồn mở là 36%.

Tuy nhiên, trong hầu hết các trường hợp, mã nguồn mở của bên thứ ba được sử dụng không được cập nhật và tiềm ẩn các vấn đề bảo mật - 91% cơ sở mã được đánh giá có các thành phần mở chưa được cập nhật trong hơn 5 năm hoặc ở dạng bị bỏ rơi trong hơn 75 năm. ít nhất hai năm và không được các nhà phát triển duy trì. Kết quả là, 2018% mã nguồn mở được xác định trong kho chứa các lỗ hổng đã biết chưa được vá, một nửa trong số đó có mức độ nguy hiểm cao. Trong mẫu năm 60, tỷ lệ mã có lỗ hổng là XNUMX%.

Lỗ hổng nguy hiểm phổ biến nhất là
vấn đề CVE-2018-16487 (thực thi mã từ xa) trong thư viện nhà nghỉ đối với Node.js, các phiên bản dễ bị tấn công đã được gặp hơn 500 lần. Lỗ hổng lâu đời nhất chưa được vá là sự cố trong daemon lpd (CVE-1999-0061), được sửa đổi vào năm 1999.

Ngoài vấn đề bảo mật trong cơ sở mã của các dự án thương mại, còn có thái độ cẩu thả trong việc tuân thủ các điều khoản của giấy phép miễn phí.
Trong 73% cơ sở mã, các vấn đề được phát hiện về tính hợp pháp của việc sử dụng nguồn mở, ví dụ: giấy phép không tương thích (thường mã GPL được đưa vào các sản phẩm thương mại mà không mở sản phẩm phái sinh) hoặc sử dụng mã mà không chỉ định giấy phép. 93% tất cả các vấn đề về giấy phép xảy ra trong ứng dụng web và thiết bị di động. Trong trò chơi, hệ thống thực tế ảo, chương trình đa phương tiện và giải trí, vi phạm được ghi nhận ở 59% trường hợp.

Tổng cộng, nghiên cứu đã xác định được 124 thành phần mở điển hình thường được sử dụng trong tất cả các cơ sở mã. Những cái phổ biến nhất là: jQuery (55%), Bootstrap (40%), Font Awesome (31%), Lodash (30%) và jQuery UI (29%). Về ngôn ngữ lập trình, phổ biến nhất là JavaScript (được sử dụng trong 74% dự án), C++ (57%), Shell (54%), C (50%), Python (46%), Java (40%), TypeScript (36%), C# (36%); Perl (30%) và Ruby (25%). Tổng tỷ trọng của các ngôn ngữ lập trình là:
JavaScript (51%), C++ (10%), Java (7%), Python (7%), Ruby (5%), Go (4%), C (4%), PHP (4%), TypeScript ( 4%), C# (3%), Perl (2%) và Shell (1%).

Nguồn: opennet.ru

Thêm một lời nhận xét