Phân Tích Lỗ Hổng Bảo Mật Trong GitHub Actions Workflows
Một nghiên cứu gần đây đã phát hiện các lỗ hổng nghiêm trọng trong quy trình làm việc (workflows) của GitHub Actions tại một số dự án mã nguồn mở nổi tiếng như MITRE và Splunk. Bài viết này sẽ cung cấp cái nhìn chi tiết về lỗ hổng, cách thức khai thác, ảnh hưởng và các biện pháp khắc phục mà các chuyên viên bảo mật, quản trị hệ thống và lập trình viên cần áp dụng.
Thông Tin Tổng Quan Về Lỗ Hổng
Các lỗ hổng được phát hiện nằm trong quy trình làm việc của GitHub Actions, đặc biệt ảnh hưởng đến một số dự án mã nguồn mở có tầm ảnh hưởng lớn. Những lỗ hổng này tạo điều kiện để kẻ tấn công thu thập thông tin nhạy cảm, bao gồm các token truy cập đặc quyền.
Chi Tiết Lỗ Hổng (CVE)
- CVE-2025-47928: Lỗ hổng nghiêm trọng trong tệp
setup.py, cho phép kẻ tấn công thực hiện hành vi trích xuất thông tin bí mật thông qua một kịch bản trích xuất bộ nhớ (memory-dumping script).
Phân Tích Kỹ Thuật
Lỗ hổng cho phép kẻ tấn công khai thác quy trình cài đặt các phần phụ thuộc (dependency installation) trong các kho lưu trữ như MITRE’s Cyber Analytics Repository (CAR) và Splunk’s security_content repository. Thông qua việc này, kẻ tấn công có khả năng thu thập các token đặc quyền, gây rủi ro bảo mật nghiêm trọng cho hệ thống.
Cách Thức Khai Thác (Exploitation)
Kẻ tấn công có thể truy cập và trích xuất các thông tin xác thực nhạy cảm, bao gồm GITHUB_TOKEN. Trong trường hợp của kho lưu trữ Splunk, token này được cấu hình với quyền truy cập chỉ đọc (read-only). Tuy nhiên, việc trích xuất thông tin này vẫn có thể dẫn đến các hành vi tấn công tiếp theo nếu không có biện pháp kiểm soát chặt chẽ.
Ảnh Hưởng
Các lỗ hổng trong GitHub Actions workflows có thể dẫn đến việc rò rỉ các bí mật như API keys, từ đó cho phép kẻ tấn công leo thang đặc quyền hoặc thực hiện chuyển động ngang (lateral movement) trong tổ chức. Các hệ thống bị ảnh hưởng bao gồm các dự án mã nguồn mở lớn như MITRE và Splunk.
Biện Pháp Khắc Phục (Mitigation)
Để giảm thiểu rủi ro từ các lỗ hổng này, các biện pháp sau nên được áp dụng:
- Tránh sử dụng các workflow
pull_request_targettrừ khi thực sự cần thiết và đã hiểu rõ về cách hoạt động của nó. - Chia nhỏ các workflow thành các thành phần không đặc quyền (unprivileged) và đặc quyền (privileged) để hạn chế phạm vi ảnh hưởng.
- Sử dụng sự kiện
pull_requestđể xử lý ban đầu thay vìpull_request_target. - Hạn chế quyền của
GITHUB_TOKENxuống mức tối thiểu, chẳng hạn như chỉ cho phép truy cập chỉ đọc (read-only) đối với nội dung (contents).
Ví Dụ Mã Nguồn Dễ Bị Tấn Công
Dưới đây là một ví dụ minh họa về một tệp setup.py có thể chứa lỗ hổng. Lưu ý rằng đây chỉ là ví dụ giả định và không phải mã thực tế từ các dự án bị ảnh hưởng:
# Example of a vulnerable setup.py file
import os
def dump_memory():
return os.popen('cat /proc/meminfo').read()
Kết Luận Và Hành Động Cần Thiết
Các lỗ hổng trong GitHub Actions workflows đặt ra mối đe dọa đáng kể đối với bảo mật của các dự án mã nguồn mở và tổ chức sử dụng chúng. Quản trị viên hệ thống và các nhóm bảo mật nên xem xét lại cấu hình workflow của mình và áp dụng các biện pháp khắc phục được liệt kê ở trên để bảo vệ hệ thống khỏi các cuộc tấn công tiềm tàng.










