8/24/09

Lý do số 1 chuyển sang OpenSource là để cải thiện an ninh, bảo mật

Bill Vass là Chủ tịch kiêm Tổng Giám đốc điều hành (Chief Operating Officer) của Sun Microsystems Federal, Inc. Bài dưới đây đăng trên blog của ông, tôi lược dịch lại. Link gốc nhấn vào tên bài.

Thursday Apr 16, 2009


Lý do số 1 chuyển sang phần mềm nguồn mở là để cải thiện an ninh (The No. 1 Reason to Move to Open Source is to IMPROVE Security)


Nếu bạn cũng như tôi đã làm việc lâu năm trong lĩnh vực mã hóa và an ninh mạng thì sẽ thấy rõ ràng rằng các phần mềm mã nguồn mở thương mại an toàn hơn. Thực tế cho thấy  cuối những năm 90 nhiều hệ thống tác nghiệp của các cơ quan tình báo và các hệ thống chiến thuật của bộ Quốc phòng Mỹ chuyển sang dùng phần mềm nguồn mở CHỈ ĐỂ CẢI THIỆN AN NINH. Hiện nay, đại đa số các hệ thống quan trọng của các cơ quan tình báo (những người quan tâm nhất đến an ninh mạng - Cyber security) đều chạy trên các hệ điều hành nguồn mở như Solaris và Linux. Điều đó cũng đúng với các cơ quan khác như cục Hàng không Liên bang (FAA - Federal Aviation Administration), cục Thuế (Internal Revenue Service -IRS) và nhiều cơ quan khác quan tâm về an ninh mạng.

Dưới đây tôi sẽ dẫn bạn đi qua một vài lý do tại sao phần mềm nguồn mở thương mại lại an toàn hơn, rồi sẽ cung cấp cho bạn một vài số liệu cụ thể.

Trước tiên cần nhìn vào dây chuyền xây dựng phần mềm. Thực tế hiện nay, tất cả các phần mềm đều được viết trên toàn cầu. Bạn phải chấp nhận rằng phần mềm của Microsoft, Oracle và IBM được lập trình tại Ấn độ, Trung quốc và Nga. Nếu phần mềm có nguồn mở thì không có gì có thể giấu ẩn bên trong mã. Nếu con ngựa thành Troa được làm bằng thủy tinh thì những người dân thành Troa có kéo nó vào bên trong thành không? KHÔNG. Các chính phủ minh bạch (open gvernments) thì các công dân của họ an toàn hơn và phần mềm nguồn mở cũng an toàn hơn cho bất kỳ ai dùng chúng. Sự giám sát công cộng là một điều rất hay.

Giả sử bạn đang xếp hàng chờ qua cổng an ninh ở sân bay, trước bạn là một người mang một cái cặp "nguồn đóng" khóa kín. Anh ta nói với nhân viên an ninh sân bay rằng đừng lo, hãy tin vào anh ta, mọi thứ trong cặp đã được kiểm tra kỹ rồi. Bạn cảm thấy thế nào? Tốt hơn hết người đứng trước bạn là người mang cặp "nguồn mở" vui vẻ mời nhân viên an ninh kiểm tra mọi thứ trong đó vì anh ta không có gì phải che dấu.

Bạn sẽ cảm thấy an toàn hơn khi đi máy bay với người nào trong hai người nói trên? Vậy thì tại sao bạn lại phải tin một người bán phần mềm chất vào máy chủ của bạn những phần mềm cực kỳ quan trọng mà chẳng ai biết có gì trong đó trừ chính công ty bán phần mềm hoặc một nhóm nhà lập trình? Đôi khi tôi cũng có nghe những người bán phần mềm nguồn đóng nói rằng "nhưng ai cũng có thể nhìn thấy cơ chế bảo mật của phần mềm nguồn mở hoạt động như thế nào". Đó lại chính là điều làm cho phần mềm nguồn mở mạnh hơn phần mềm nguồn đóng.

Các nhà lập trình nguồn đóng chỉ biết nói: "Hãy tin vào chúng tôi". Các nhà lập trình nguồn mở thì có thể nói: "Hãy xem việc đảm bảo an ninh của chúng tôi. Chúng tôi xây dựng tính an toàn bảo mật trong mọi thứ: hồ sơ, mô hình, kiến trúc, quá trình xét duyệt, việc chọn ngôn ngữ lập trình, các tiêu chuẩn lập trình, mã nguồn, các phương pháp kiểm tra, các công cụ, kỹ thuật, cấp phép, quản lý rủi ro, sửa chữa, ....". Bạn có được bức tranh toàn cảnh của toàn bộ quá trình lập trình. Với phần mềm nguồn mở, ưu điểm về an ninh bảo mật không chỉ ở khả năng đọc được mã nguồn mà là cả vòng đời phát triển công nghệ ngay từ đầu đã dựa trên những nền tảng an ninh và mục tiêu an ninh.

Tất cả các loại thiết bị an ninh vật lý đều là nguồn mở. Bạn có thể đến phòng đăng ký sáng chế hoặc xem online trên mạng để biết một cái khóa có cấu tạo thế nào, hoạt động ra sao và chính điều đó làm cho chúng trở nên an toàn hơn. Tôi thường nghe các nhà bán phần mềm nguồn đóng nói rằng họ có những người "đủ năng lực" xem xét mã nguồn của họ. Anh chàng mang cặp "nguồn đóng" trong ví dụ trên có lẽ cũng đã có ai đó "đủ năng lực" trong công ty khám xét cặp của anh ta rồi và nhân viên an ninh sân bay tốt hơn hết là cứ cho cái cặp đó qua cổng an ninh mà không phải xem xét gì cả? Sai. Với cái cặp "nguồn mở" BẤT KỲ AI cũng có quyền khám xét ... kể cả các cơ quan tình báo.

Các cơ quan tình báo là một bộ phận của Cộng đồng Nguồn mở tham gia xem xét mã nguồn. Nhưng nên nhớ rằng có hàng triệu triệu dòng lệnh. Microsoft có khoảng 30 triệu dòng lệnh, Oracle khoảng 15 triệu, Solaris khoảng 20 triệu. Rồi Linux khoảng 12 triệu, MySQL khoảng ...Vài trăm chuyên gia chẳng có cách nào xem hết được cái đống lệnh đó.

Hệ điều hành Solaris của Sun trước đây đã được điểm cao nhất về an ninh mà chính phủ dành cho hệ điều hành dùng trong các tổ chức và ngày nay vẫn thế. Nó được cấp phép bởi chính phủ liên bang, được rà soát bởi các chuyên gia giỏi nhất của Sun, của các cơ quan tình báo và vô số những người thông minh khác trong cộng đồng. Ấy thế mà khi Solaris được công bố mã nguồn, trong vòng một tháng chúng tôi nhận được thông báo về 28 lỗi bảo mật mới do cộng đồng 160,000 người dùng Solaris phát hiện và đã kịp vá lỗi trước khi có kẻ khai thác chúng vào những mục đích xấu.

Cũng những điều nói trên đã xảy ra khi chúng tôi nguồn mở hóa Java. Ngay khi bạn nguồn mở hóa một phần mềm, một cộng đồng người dùng đông đảo sẽ xem xét mã nguồn đó và bạn sẽ kịp vá lỗi trước khi nó gây ra tai họa.

Vì thế tại sao các cơ quan an ninh quốc gia và nhiều tổ chức nhà nước khác đã có một sáng kiến lớn là chuyển sang dùng phần mềm nguồn mở. Sự quan sát, săm soi của công chúng sẽ làm tăng chất lượng của chương trình. Mỗi lần bạn mua bán trên mạng, bạn đều phải dùng thuật toán mã hóa RSA. Thuật toán này là nguồn mở, nó bị phê phán, sửa, rồi lại bị phê phán, lại sửa bởi rất nhiều người cứ như thế cho đến khi nó được đưa vào ứng dụng.

Một ví dụ ngược lại là clipper chip, một con chip mã hóa được chính quyền Clinton tung ra làm thiết bị bảo mật cho các công ty viễn thông. Sau khi ra đời được 48 giờ thì nó bị phá (chip này ra đời năm 1993 và đến 1996 thì chết - ND). Nếu nó là nguồn mở thì sẽ có người phát hiện được lỗi và sẽ kịp sửa trước lúc đưa vào ứng dụng. Nhưng nó lại là nguồn đóng. Thuật toán RSA theo tôi biết thì chưa bao giờ bị phá trừ khi dùng cách tấn công brute force.

Nếu bạn xem Cơ sở Lỗi bảo mật quốc gia (National Vulnerability Database - NVD), bạn sẽ thấy rằng các sản phẩm phần mềm nguồn mở có ít lỗi hơn và mức độ bị khai thác lỗi cũng thấp hơn các sản phẩm nguồn đóng tương đương.

Đồ thị dưới đây là mức độ rủi ro theo báo cáo Airius Risk Report tính toán dựa trên số liệu của NVD. Nhìn vào đó bạn sẽ thấy rằng các sản phẩm nguồn đóng có độ rủi ro (về bảo mật) cao hơn nhiều so với các sản phẩm nguồn mở tương đương.

sun-rr-b-123107-new-small

sun-rr-a-123107-new-small.jpg

Và cũng không phải vì các phần mềm nguồn mở ít người dùng. Có 6 tỷ lần cài đặt Java, 14 triệu lần Open Solaris, 120 triệu lần Open Office và 115 triệu lần MySQL.

No comments: