Phần mềm nguồn mở đang giúp doanh nghiệp công nghệ đi nhanh hơn bao giờ hết. Thay vì xây dựng mọi thứ từ con số 0, lập trình viên có thể sử dụng những thư viện đã được cộng đồng phát triển, kiểm thử, cập nhật trong nhiều năm. Song phía sau sự tiện lợi ấy là một hệ thống phụ thuộc phức tạp mà không phải doanh nghiệp nào cũng kiểm soát được.
Một thư viện phần mềm mở được tích hợp trực tiếp có thể kéo theo hàng loạt thư viện khác nằm sâu hơn trong hệ thống. Một thành phần đã cũ, bị bỏ rơi hoặc có giấy phép không tương thích cũng có thể trở thành điểm yếu của cả sản phẩm.
Phát biểu tại hội thảo “Linux và Phần mềm nguồn mở - Hướng đi giúp doanh nghiệp Việt Nam tuân thủ pháp luật về bản quyền với chi phí hợp lý”, TS. Nguyễn Hồng Quang, Nguyên Chủ tịch Câu lạc bộ Phần mềm Tự do Nguồn mở Việt Nam (VFOSSA), cho rằng doanh nghiệp cần thay đổi cách tiếp cận nguồn mở, từ sử dụng đơn thuần sang hiểu đúng, tuân thủ đầy đủ và đóng góp trở lại cộng đồng.
Chiếc bẫy nằm ở giấy phép bản quyền
Rủi ro của nguồn mở không chỉ nằm trong bảo mật, nó còn nằm ở giấy phép sở hữu trí tuệ.
Một trong những quan niệm sai lầm phổ biến được chỉ ra tại hội thảo là coi phần mềm nguồn mở đồng nghĩa với phần mềm không có bản quyền. Trên thực tế, đại đa số phần mềm nguồn mở vẫn được bảo vệ bởi bản quyền, ngoại trừ những phần thuộc phạm vi công cộng. Thứ trao cho người sử dụng các quyền nhất định chính là “giấy phép sử dụng” (license), đồng thời đi kèm với quyền này cũng đặt ra những nghĩa vụ tương ứng.
Đây là điểm nhiều doanh nghiệp có thể bỏ qua khi xây dựng sản phẩm. Không phải thư viện miễn phí nào cũng có thể được đưa vào mọi phần mềm theo cùng một cách. Mỗi giấy phép có những điều kiện riêng. Khi doanh nghiệp kết hợp nhiều thành phần nguồn mở với các giấy phép khác nhau, khả năng xung đột hoặc không tương thích giấy phép có thể xuất hiện.
Đặc biệt, doanh nghiệp cần hiểu rất rõ nghĩa vụ phát sinh khi mã nguồn được tích hợp, sửa đổi hoặc phân phối cùng sản phẩm. Việc coi một thư viện phần mềm mở đơn giản như một đoạn code miễn phí để kéo về sử dụng có thể tạo ra những hệ quả khác hoàn toàn so với các giấy phép có tính ràng buộc thấp hơn.
Đây là lý do câu chuyện nguồn mở không thể chỉ được giao cho lập trình viên. Nó liên quan trực tiếp tới tài sản trí tuệ, mô hình kinh doanh và khả năng thương mại hóa sản phẩm của doanh nghiệp.
Bên cạnh đó, các rủi ro còn đến từ quy mô sử dụng nguồn mở. Theo các báo cáo Open Source Security and Risk Analysis của Black Duck được trình bày tại hội thảo, từ 96% đến 98% các codebase thương mại được kiểm toán có chứa thành phần nguồn mở. Tỷ trọng mã nguồn mở trung bình trong các codebase này cũng dao động ở mức rất cao, khoảng 70% đến 78% tùy năm khảo sát.
Điều đó có nghĩa một phần mềm được doanh nghiệp quảng bá là sản phẩm do chính mình phát triển có thể thực tế được xây dựng trên một nền móng nguồn mở rất lớn.
Rủi ro xuất hiện khi lập trình viên chỉ nhìn vào những thành phần mình trực tiếp kéo về. Thư viện A có thể phụ thuộc vào thư viện B, B lại phụ thuộc vào C, D hoặc nhiều thành phần khác. Những thành phần nằm sâu như vậy được gọi là phụ thuộc gián tiếp.
Doanh nghiệp có thể biết mình đang sử dụng A mà không nhận ra A đang đưa thêm hàng loạt thành phần khác vào sản phẩm. Nếu một trong số đó đã quá cũ, không còn được duy trì hoặc tồn tại lỗ hổng chưa được vá, vấn đề không dừng ở thư viện nhỏ nằm sâu trong hệ thống. Nó có thể trở thành rủi ro đối với toàn bộ sản phẩm.
TS. Nguyễn Hồng Quang đặc biệt lưu ý doanh nghiệp phải quan tâm tới tính cập nhật của các phụ thuộc gián tiếp. Việc kết hợp nhiều thành phần nguồn mở với các giấy phép khác nhau cũng có thể tạo ra rủi ro pháp lý do không tương thích giấy phép.
Ngoài ra, một trong những hiểu lầm phổ biến là mã nguồn mở dễ bị tấn công hơn vì bất kỳ ai cũng có thể nhìn thấy mã nguồn. Theo TS. Nguyễn Hồng Quang, đây là cách hiểu không chính xác. Hacker không nhất thiết phải có mã nguồn để tìm cách chèn mã độc hoặc khai thác lỗ hổng. Với những dự án nguồn mở lớn, quy trình đưa mã lên kho được kiểm soát chặt chẽ, trách nhiệm được xác định rõ.
Nguồn mở cũng không phải chiếc khiên bảo mật tuyệt đối. Không có phần mềm nào an toàn tuyệt đối trong một không gian mạng kết nối. Các dự án nguồn mở có cộng đồng lớn thường có lợi thế về tốc độ phát hiện, kiểm thử và vá lỗi. Ngược lại, những thư viện ít người sử dụng, ít được duy trì có thể trở thành những mắt xích yếu trong hệ thống.
Điểm đáng sợ nằm ở chỗ một doanh nghiệp có thể không biết mình đang mang theo những mắt xích yếu ấy.
“Tuân thủ nguồn mở” không còn là chuyện của riêng kỹ sư
Theo TS. Nguyễn Hồng Quang, tuân thủ nguồn mở là quá trình người dùng, nhà tích hợp và nhà phát triển thực hiện đúng các thông báo bản quyền, đồng thời đáp ứng những nghĩa vụ cấp phép phát sinh từ việc sử dụng phần mềm nguồn mở. Một chương trình được thiết kế tốt không chỉ giúp doanh nghiệp tuân thủ license, mà còn bảo vệ tài sản trí tuệ của chính doanh nghiệp trước nguy cơ bị tiết lộ ngoài ý muốn.
Vấn đề là khái niệm này hiện vẫn còn khá mới tại Việt Nam. Theo quan sát được TS. Nguyễn Hồng Quang trình bày tại hội thảo, đóng góp của Việt Nam cho nguồn mở còn khiêm tốn. Rất ít doanh nghiệp có chính sách cho phép hoặc khuyến khích nhân viên đóng góp cho các dự án nguồn mở. Khái niệm tuân thủ nguồn mở gần như chưa được biết đến rộng rãi. Nhận thức về giấy phép nguồn mở từ lãnh đạo doanh nghiệp tới lập trình viên nhìn chung còn mơ hồ.
Điều này tạo ra một nghịch lý. Doanh nghiệp có thể đang sử dụng nguồn mở ở quy mô rất lớn, trong khi lại không có quy trình để biết chính xác mình đang sử dụng những thành phần nào, chúng được cấp phép ra sao, phiên bản hiện tại có còn được duy trì hay không.
Cách tiếp cận cần thiết không phải là loại bỏ nguồn mở khỏi sản phẩm. Điều đó gần như đi ngược với thực tế phát triển phần mềm hiện nay. Vấn đề là doanh nghiệp phải biết mình đang sử dụng gì. TS. Nguyễn Hồng Quang khuyến nghị lãnh đạo doanh nghiệp phải hiểu triết lý, văn hóa, mô hình phát triển, hệ sinh thái, giấy phép cùng cộng đồng người dùng và nhà phát triển của nguồn mở. Khi tích hợp nguồn mở vào sản phẩm thương mại, doanh nghiệp cần có chương trình Open Source Compliance, đồng thời chủ động đóng góp trở lại cộng đồng.
Nguồn mở vì thế không phải một kho code miễn phí để doanh nghiệp tùy ý lấy về sử dụng. Đó là một hệ sinh thái có luật chơi, có cộng đồng, có bản quyền, có giấy phép và có những nghĩa vụ đi kèm.
Doanh nghiệp càng phụ thuộc vào nguồn mở, càng cần biết chính xác những gì đang nằm bên trong sản phẩm của mình. Bởi đôi khi rủi ro lớn nhất không nằm ở đoạn code mà kỹ sư chủ động viết ra, mà nằm trong một thư viện nhỏ, ở tầng sâu, đã bị bỏ quên từ rất lâu.
Mai Mai
