Một Kỹ Sư Phần Mềm Ngăn Chặn Cuộc Tấn Công Mạng Trên Hàng Triệu PC
Cách đây vài tuần, Andres Freund, một kỹ sư phần mềm 38 tuổi sống tại San Francisco, đã có một khám phá kỳ lạ. Công việc của anh tại Microsoft liên quan đến việc phát triển một chương trình cơ sở dữ liệu, và anh đã nhận được những kết quả không bình thường khi thử nghiệm hệ thống. Các nỗ lực đăng nhập vào chương trình đột nhiên mất nửa giây lâu hơn thường lệ.
Nhiều người có lẽ sẽ nhún vai khi có sự chênh lệch thời gian quá ít ỏi và đã tiếp tục, nhưng Andres Freund lại bắt đầu xem xét nguyên nhân gây ra nó - và đã kịp thời ngăn chặn được một thảm họa.
"Cảm giác thật kỳ dị, có những lúc tôi tưởng mình chắc hẳn đã ngủ không ngon giấc và có cơn ác mộng chăng." Anh nói trong một cuộc phỏng vấn với New York Times.
Lỗi kỳ lạ này đã được truy nguồn đến từ XZ Utils, một phần mềm dùng để nén tập tin trong hệ điều hành dựa trên Linux. Đây là điều mà bạn chẳng bao giờ để ý đến, nhưng chương trình này được chạy trên hầu hết các máy chủ điều khiển internet và tất cả các loại chương trình trong các trung tâm dữ liệu lớn.
Điều mà Andres Freund phát hiện được gọi trong thuật ngữ bảo mật là "cửa sau". Một lỗ hổng bảo mật được cố tình đặt một cách ẩn dấu, để cho phép một người có kiến thức về cách thức hoạt động của lỗ hổng này có thể đánh cắp khóa mã hóa, cài đặt phần mềm độc hại hoặc chiếm quyền kiểm soát máy tính của người khác.
Vào Thứ Sáu Tuần Lễ Phục Sinh, Andres Freund đã gửi một cảnh báo trên an ninh mạng nguồn mở *** rằng phiên bản mới nhất của XZ Utils dường như đã bị tin tặc tấn công - và các vấn đề đã nhanh chóng được khắc phục.
"Vụ việc có thể đã rất nghiêm trọng, kẻ tấn công này có thể đã đăng nhập vào một lượng lớn máy chủ được kết nối vào mạng. Nó cho phép truy cập thẳng vào hệ thống." Pontus Johnson, giáo sư tại Trung tâm Phòng vệ Cyber tại Viện Công nghệ Hoàng gia ở Stockholm, cho biết.
Cuộc tấn công có thể được truy ngược lại đến năm 2021. Một người dùng có tên là Jia Tan đã đăng ký một tài khoản trên nền tảng Github, nơi mà các lập trình viên trên khắp thế giới có thể cùng nhau phát triển các dự án mã nguồn mở.
Mặc dù XZ Utils là một phần mềm được sử dụng trong các máy chủ trên toàn thế giới, nhưng từ 15 năm nay, nó đã được điều hành như một dự án bởi một nhà phát triển người Phần Lan đơn độc, Lasse Collin, người đôi khi được các lập trình viên khác trên Github giúp đỡ.
Vào ngày 26 tháng 2 năm sau, năm 2022, Jia Tan lần đầu tiên đóng góp mã cho việc phát triển XZ Utils, và sau đó nhanh chóng trở thành người tham gia siêng năng vào dự án.
Jia Tan đã mất vài năm để dần dần có được sự tin tưởng của các nhà phát triển XZ Utils khác và giành được nhiều quyền kiểm soát hơn đối với dự án, cuối cùng đã trở thành người bảo trì.
Vào ngày 16 tháng 2 năm nay, hai năm sau khi bắt đầu viết mã cho XZ Utils, Jia Tan bắt đầu lén đưa "cửa sau" của mình vào chương trình - và đã gần như là thành công. Vào tháng 3, một bản cập nhật mới cho phần mềm nén đã được phát hành cùng với các "cửa sau" tích hợp sẵn.
Chính trong phiên bản này Andres Freund đã phát hiện ra những điều kỳ lạ khi anh thử nghiệm chương trình - trước khi phiên bản được tích hợp vào các hệ thống Linux trên toàn thế giới.
Pontus Johnson cho biết rằng rủi ro bảo mật của các nguồn mở này đã được biết đến từ lâu. Ba năm trước, một cặp nghiên cứu đã viết một bài báo về cách họ lén đưa mã độc vào hệ thống Linux để cho thấy những nguy cơ và cảnh báo các nhà phát triển.
"Dựa trên bài báo của họ, rõ ràng kiểu tấn công này có thể xảy ra. Bây giờ chúng ta có thể thấy điều đó trở thành thực tế và thật may mắn khi nó được phát hiện kịp thời", Pontus Johnson nói.
Không rõ đằng sau người dùng tên Jia Tan là ai. Tuy nhiên, cách tiếp cận kiên nhẫn và "cánh cửa hậu" với công nghệ tiên tiến cho thấy đó không thể là của một kẻ đơn độc, mà phải có sự hỗ trợ của chính phủ, theo một số chuyên gia an ninh mạng nói với Wired.
"Rất hiếm khi có cá nhân đơn độc đứng đằng sau các cuộc tấn công phức tạp thế này, thường là các quốc gia", Pontus Johnson nói và cho biết thêm:
"Tôi đoán đó là Nga hoặc Trung Quốc."
*** Nguồn mở Open source) là khi mã nguồn của một chương trình có sẵn cho bất kỳ ai muốn xem và sử dụng, và thường là tự do để sử dụng và phát triển chương trình đó.
Các chương trình được phát triển với mã nguồn mở thường được chia sẻ qua các nền tảng như Github, nơi mà các lập trình viên trên toàn thế giới có thể tham gia và đề xuất cải tiến hoặc thay đổi mã nguồn của chương trình.