70% lỗ hổng bảo mật ứng dụng liên quan đến thư viện nguồn mở

14:22 | 09/06/2020
M.C

Khoảng 70% ứng dụng cho thiết bị điện thoại, máy tính đang được sử dụng hiện nay tồn tại ít nhất một lỗ hổng bảo mật xuất phát từ việc sử dụng thư viện nguồn mở.

Theo báo cáo An ninh phần mềm hàng năm của công ty bảo mật Veracode (Hoa Kỳ), các thư viện mã nguồn mở (bao gồm kho lưu trữ mã tập trung miễn phí), cung cấp các ứng dụng được xây dựng sẵn cho các nhà phát triển đem đến nhiều rủi ro gây mất an toàn thông tin.

Các nhà nghiên cứu đã kiểm tra 351.000 thư viện trong 85.000 ứng dụng và thấy rằng, các thư viện nguồn mở là rất phổ biến. Hầu hết các ứng dụng JavaScript đều chứa hàng trăm thư viện nguồn mở, một số ứng dụng khác có hơn 1.000 thư viện khác nhau. Ngoài ra, hầu hết các ngôn ngữ đều có cùng một bộ thư viện cốt lõi.

Báo cáo chỉ ra rằng, các thư viện mã nguồn mở được sử dụng lại trong nhiều ứng dụng, nên khi một bộ thư viện cốt lõi nào tồn tại lỗ hổng có thể khiến hàng trăm ứng dụng khác bị khai thác. Mã nguồn mở đang là xu thế hiện nay, thư viện nguồn mở cho phép các nhà phát triển nhanh chóng thêm các chức năng cơ bản. Tuy nhiên, việc thiếu nhận thức về sử dụng các thư viện nguồn mở và các yếu tố rủi ro của chúng là một vấn đề lớn mà các nhà phát triển cần quan tâm.

Phần lớn các lỗi nguồn mở được tìm thấy trong các ứng dụng viết bằng ngôn ngữ: Swift, .NET, Go và PHP. Ứng dụng viết bằng ngôn ngữ Swift của Apple tồn tại ít lỗ hổng nhất nhưng mức độ của các lỗ hổng này lại ở mức cao nhất, còn các ứng dụng viết bằng ngôn ngữ .NET tồn tại ít lỗ hổng lỗ hổng ở mức cao nhưng mức độ phổ biến hơn Swift gấp 17 lần.

Ngôn ngữ Go có tỷ lệ lỗ hổng cao, nhưng tổng số lỗ hổng thấp ở mỗi thư viện riêng lẻ. Còn ngôn ngữ PHP có tỷ lệ thư viện có lỗ hổng cao hơn Go.

Nghiên cứu cho thấy, lỗ hổng Cross-Site Scripting (XSS) là loại lỗ hổng phổ biến nhất được tìm thấy trong các thư viện nguồn mở (chiếm 30% trong số các lỗ hổng). Tiếp theo là Insecure Deserialization (23,5%) và chiếm quyền kiểm soát truy cập (20,3%).

Cũng theo báo cáo, hầu hết các ứng dụng chứa các thư viện tồn tại lỗ hổng (chiếm khoảng 75%) có thể được giải quyết bằng một bản cập nhật mà không cần phải chuyển sang sử dụng các thư viện khác.