Đạo đức nghiên cứu lỗ hổng bảo mật
(dịch từ bài The Ethics of Vulnerability Research của Bruce Schneier, trong CRYPTO-GRAM số ra ngày 15 tháng 05, năm 2008)
Cách thông thường để chiếm quyền điều khiển máy tính của người khác là tận dụng lỗi trong một chương trình cài trên máy đó. Điều này đúng từ những năm 1960 khi lỗi tràn bộ đệm bị tận dụng lần đầu tiên để tấn công máy tính. Điều này đúng vào năm 1988 khi sâu Morris tận dụng một lỗi Unix để tấn công các máy trên Internet, và nó vẫn là cách mà đa số các chương trình xấu hoạt động ngày nay.
Các lỗ hổng bảo mật là những lỗi phần mềm--lỗi trong đặc điểm kỹ thuật và thiết kế, nhưng đa số là lỗi trong lập trình. Bất kỳ gói phần mềm lớn nào cũng có hàng ngàn lỗi. Đây là những lỗ hổng nằm ủ mình trong hệ thống phần mềm của chúng ta, đợi đến khi bị phát hiện. Khi đó, chúng có thể được dùng để tấn công các hệ thống. Đây chính là mấu chốt của việc vá lỗi bảo mật: loại bỏ lỗ hổng đã biết. Nhưng nhiều hệ thống không được vá, cho nên Internet vẫn đầy những lỗ hổng đã biết, và có thể bị tận dụng.
Các lỗ hổng mới được phát hiện luôn là món hàng sốt. Một hacker khi tìm ra lỗi có thể bán nó ở chợ đen, tống tiền nhà sản xuất, hoặc chỉ đơn giản là công bố nó mà không quan tâm tới hậu quả. Cho dù hắn không làm bất kỳ việc gì đi nữa, việc lỗ hổng đã bị phát hiện bởi một kẻ nào đó cũng đã làm tăng rủi ro cho mọi người dùng phần mềm đấy. Do đó, liệu việc nghiên cứu lỗ hổng mới có hợp với đạo đức hay không?
Một cách không lập lờ, có. Mặc dù có rủi ro nhưng việc nghiên cứu lỗ hổng bảo mật có một giá trị vô cùng lớn. An ninh là một cách nghĩ, và việc tìm các lỗ hổng bảo mật nuôi dưỡng cách nghĩ đó. Nếu cấm các chuyên gia sử dụng công cụ học tập quan trọng này thì an ninh sẽ bị thui chột theo đó.
Các kỹ sư an ninh nhìn thế giới khác với những kỹ sư khác. Thay vì chú trọng vào vấn đề làm sao các hệ thống hoạt động, họ tập trung vào vấn đề làm sao các hệ thống hư hại, bị làm hư hại, và làm sao để phòng--hay chống--những hư hại đó. Đa số các lỗi bảo mật phần mềm không bao giờ xuất hiện trong quá trình hoạt động thông thường, chỉ xuất hiện khi có kẻ cố tình tận dụng chúng. Cho nên các kỹ sư an ninh cần phải suy nghĩ như những kẻ phá hoại này.
Có những người không có cách nghĩ như thế lại cho rằng mình có thể thiết kế sản phẩm an toàn, nhưng họ không thể nào làm được. Và bạn thấy kết quả của họ nhan nhản trong xã hội--mã hóa kém, phần mềm lỗi, giao thức Internet, máy kiểm phiếu, thẻ tiền, và các hệ thống thanh toán khác. Đa số những hệ thống này đều có một người nào đó chịu trách nhiệm về "an ninh" trong nhóm của họ, nhưng người đó không có cách nghĩ của một kẻ xấu.
Cách nghĩ này khó có thể được dạy, và có lẽ là một trong những thứ bạn sinh ra đã có, hoặc không. Nhưng để luyện tập những người có cách nghĩ này, họ cần tìm và phát hiện ra những lỗi bảo mật--ngày này qua ngày khác. Và điều này đúng trong mọi lĩnh vực. Những chuyên gia mã hóa giỏi tìm ra lỗ hổng trong các thuật toán và giao thức của người khác. Những chuyên gia bảo mật phần mềm tìm ra lỗ hổng trong mã của người khác. Các nhà thiết kế an ninh sân bay giỏi phát hiện ra những phương thức mới để lách an ninh. Và nhiều ví dụ khác nữa.
Điều này quan trọng đến nỗi khi ai đó chúng ta chưa biết giới thiệu một thiết kế an ninh thì câu hỏi đầu tiên chúng ta sẽ phải hỏi là "Anh đã phá được những gì?" Ai cũng có thể thiết kế một hệ thống an ninh mà ngay cả chính anh ta cũng không phá được. Cho nên khi một người nào đó nói rằng "Đây là hệ thống an ninh của tôi, và tôi không phá được nó" thì phản ứng đầu tiên của chúng ta có lẽ là "Thế anh là ai?" Nếu anh ta là một người đã từng phá vỡ cả chục hệ thống tương tự thì hệ thống của anh rõ ràng đáng được chú ý. Nhưng nếu anh ta chưa bao giờ phá được cái gì, thì hệ thống đó chẳng có lý do gì là một hệ thống tốt.
Việc nghiên cứu lỗ hổng bảo mật là quan trọng vì nó tập luyện những chuyên gia an ninh máy tính mới của chúng ta. Vâng, các lỗ hổng mới vừa được tìm ra đem lại rủi ro cho chúng ta, nhưng chúng cũng cho chúng ta thông tin thực tế về mức an toàn thật sự. Vâng, có những cách xử lý ít nhiều trách nhiệm--và ít nhiều hợp pháp--các lỗ hổng này. Nhưng những kẻ xấu luôn luôn tìm các lỗ hổng mới, và nếu chúng ta muốn có chút hy vọng nào về việc đảm bảo an ninh cho hệ thống của chúng ta, thì chúng ta cần những người tốt có khả năng ít nhất như những kẻ xấu kia. Câu hỏi không phải là có hợp đạo đức để nghiên cứu lỗ hổng hay không. Nếu một người có kỹ năng phân tích và cung cấp nhiều thông tin về vấn đề, thì câu hỏi phải là liệu có hợp đạo đức khi anh ta không nghiên cứu lỗ hổng hay không.
Nguyễn Thành Nam dịch