Google Project Zero là một trong những tổ chức bảo mật được đánh giá rất cao về mặt chuyên môn hiện nay. Những phát hiện của nhóm không chỉ có ý nghĩa quan trọng đối với chính sản phẩm của Google, mà còn có thể góp phần “cứu sống” nhiều tổ chức, doanh nghiệp lớn trước nguy cơ về một thảm họa an ninh mạng, chẳng hạn như trường hợp vừa xảy ra với nền tảng lưu trữ mã nguồn mở lớn nhất thế giới GitHub.
Cụ thể, đội ngũ Project Zero vừa công khai tiết lộ một lỗ hổng bảo mật trong GitHub với xếp hạng mức độ nghiêm trọng “cao”. Lỗ hổng này có liên hệ với hàng loạt chi tiết kỹ thuật phức tạp, nhưng về cơ bản nó có liên quan trực tiếp các lệnh quy trình công việc (workflow command) trong GitHub Actions, vốn được biết đến là ẩn chứa nhiều vấn về và cực kỳ dễ bị tấn công. Nếu bạn chưa biết thì các lệnh quy trình làm việc trong GitHub Actions hoạt động như một kênh giao tiếp giữa các Action được thực thi và Action Runner. Do đó mọi chuyện sẽ trở nên hết sức phức tạp nếu có sự xuất hiện của lỗ hổng và các hành động can thiệp có chủ đích nhằm khai thác lỗ hổng đó.
Nhà nghiên cứu Felix Wilhelm, người đã phát hiện ra lỗ hổng bảo mật thông qua đánh giá mã nguồn, cho biết:
Vấn đề lớn với quy trình này là nó rất dễ bị tấn công. Khi quá trình runner phân tách các dòng lệnh được in thành STDOUT để tìm kiếm các lệnh quy trình làm việc, những nội dung không đáng tin cậy cũng sẽ được in như một phần của quy trình thực thi và chúng đều dễ bị tấn công. Trong hầu hết các trường hợp, khả năng đặt các biến môi trường tùy ý sẽ dẫn đến việc thực thi mã từ xa ngay khi một quy trình làm việc khác được thực thi.
Tôi đã dành thời gian xem xét các repositories phổ biến và nhận thấy rằng hầu như bất kỳ dự án nào có chứa các Github actions hơi phức tạp đều dễ bị tấn công bởi loại lỗi này.
Trong bài đăng ban đầu, Wilhelm nói rằng ông hiện không biết chắc làm thế nào để khắc phục sự cố vì cách các lệnh quy trình làm việc được thực hiện "về cơ bản là không an toàn". Giải pháp tình thế có thể tính đến là không dùng cú pháp lệnh, trong khi một giải pháp dài hạn sẽ liên quan đến việc chuyển các lệnh quy trình công việc sang một số kênh không bị ràng buộc, nhưng điều đó cũng sẽ phá vỡ các đoạn mã phụ thuộc khác.
Sau khi phát hiện ra lỗ hổng bảo mật vào ngày 21 tháng 7, nhóm Project Zero đã chủ động liên hệ với GitHub để cung cấp thông tin về lỗ hổng, và cho nền tảng này 90 ngày để giải quyết vấn đề theo đúng quy định trước khi ông bố công khai. Vào đầu tháng 10, GitHub đã quyết định không dùng các lệnh dễ bị tấn công và gửi khuyến nghị yêu cầu người dùng cập nhật lại quy trình làm việc của họ. Đến ngày 16 tháng 10, GitHub đã chấp nhận thời gian gia hạn 14 ngày của Google để vô hiệu hóa hoàn toàn các lệnh dễ bị tấn công, do đó hạn chót được lùi xuống ngày 2 tháng 11.
Tuy nhiên, tính đến hết ngày 2 tháng 11 vừa qua, GitHub vẫn chưa thể thực sự giải quyết triệt để vấn đề, và phía Project Zero đã công khai toàn bộ thông tin về lỗ hổng cũng như mã proof-of-concept liên quan theo đúng quy định.
Cách đây không lâu, đội ngũ Project Zero cũng đã tình cờ phát hiện ra một lỗ hổng zero-day nghiêm trọng tồn tại trên nền tảng Windows, ảnh hưởng trực tiếp đến các phiên bản từ Windows 7 đến Windows 10 version 1903 (mã định danh CVE-2020-17087), và một lỗ hổng Chrome có mã định danh CVE-2020-15999.