-
09/04/2020
-
112
-
1.103 bài viết
Kubernetes DNS bị lợi dụng để đánh cắp thông tin xác thực GitHub từ ArgoCD
Kubernetes DNS vừa được nhóm nghiên cứu Future Sight chứng minh có thể trở thành điểm yếu nghiêm trọng để đánh cắp thông tin nhạy cảm trong ArgoCD – công cụ GitOps phổ biến nhất hiện nay. Kỹ thuật tấn công mới cho phép một người dùng đã xác thực trong ArgoCD đánh cắp GitHub credentials, từ đó mở đường kiểm soát tài khoản Git và nhiều dịch vụ liên quan.
Theo nhóm nghiên cứu, cuộc tấn công lợi dụng cơ chế phân giải tên miền nội bộ của Kubernetes. Khi một pod cần truy vấn domain, nó sẽ ưu tiên hỏi DNS nội bộ trước. Kẻ tấn công có thể triển khai một Service độc hại đặt tên “github” trong namespace “com”, từ đó tạo bản ghi DNS khiến github.com trỏ về địa chỉ IP nội bộ do mình kiểm soát.
Khi ArgoCD repository server tải manifest từ GitHub qua HTTPS, attacker chèn chứng chỉ tùy chỉnh thông qua tính năng Trusted Certificates của ArgoCD. Sau khi chứng chỉ này được hệ thống tin cậy, kẻ tấn công thực hiện man-in-the-middle, giải mã toàn bộ luồng HTTPS, trích xuất header Authorization và ghi lại thông tin xác thực.
Để tránh gây gián đoạn hoạt động, attacker tiếp tục proxy các yêu cầu đến GitHub thật. Quá trình đồng bộ GitOps vẫn diễn ra bình thường, khiến hành vi đánh cắp gần như vô hình.
Future Sight cho biết cả HTTP(S) Basic Auth token, Git hoặc Helm token, và GitHub App JWT hoặc access token đều có thể bị đánh cắp. Điều kiện tiên quyết là tài khoản ArgoCD bị lợi dụng phải có đủ quyền tạo chứng chỉ, đọc repositories, applications, clusters và tùy chọn xem logs. Khi đáp ứng đủ các quyền này, attacker triển khai dịch vụ “Argexfil” chiếm luồng kết nối Git và ghi lại thông tin đăng nhập. Nhóm nghiên cứu còn phát hành script proof-of-concept mang tên “argexfil_verify.py” để giúp kiểm tra quyền và tự động triển khai kịch bản tấn công.
Để phòng ngừa, các chuyên gia khuyến nghị áp dụng nguyên tắc đặc quyền tối thiểu cho người dùng ArgoCD, giới hạn phạm vi dự án, giám sát DNS và lưu lượng pod-to-pod. Quyền tạo chứng chỉ chỉ nên cấp cho quản trị viên và nên ưu tiên sử dụng kết nối SSH để giảm nguy cơ lộ khóa bí mật. Ngoài ra, GitHub token nên được tạo với phạm vi tối thiểu. Future Sight cảnh báo kỹ thuật này có thể mở rộng sang các nền tảng GitOps khác như Flux hay CircleCI và cho biết sẽ tiếp tục nghiên cứu các phương pháp khai thác nâng cao, bao gồm tiêm YAML độc hại và lạm dụng hệ thống notification của ArgoCD.
Theo nhóm nghiên cứu, cuộc tấn công lợi dụng cơ chế phân giải tên miền nội bộ của Kubernetes. Khi một pod cần truy vấn domain, nó sẽ ưu tiên hỏi DNS nội bộ trước. Kẻ tấn công có thể triển khai một Service độc hại đặt tên “github” trong namespace “com”, từ đó tạo bản ghi DNS khiến github.com trỏ về địa chỉ IP nội bộ do mình kiểm soát.
Khi ArgoCD repository server tải manifest từ GitHub qua HTTPS, attacker chèn chứng chỉ tùy chỉnh thông qua tính năng Trusted Certificates của ArgoCD. Sau khi chứng chỉ này được hệ thống tin cậy, kẻ tấn công thực hiện man-in-the-middle, giải mã toàn bộ luồng HTTPS, trích xuất header Authorization và ghi lại thông tin xác thực.
Để tránh gây gián đoạn hoạt động, attacker tiếp tục proxy các yêu cầu đến GitHub thật. Quá trình đồng bộ GitOps vẫn diễn ra bình thường, khiến hành vi đánh cắp gần như vô hình.
Future Sight cho biết cả HTTP(S) Basic Auth token, Git hoặc Helm token, và GitHub App JWT hoặc access token đều có thể bị đánh cắp. Điều kiện tiên quyết là tài khoản ArgoCD bị lợi dụng phải có đủ quyền tạo chứng chỉ, đọc repositories, applications, clusters và tùy chọn xem logs. Khi đáp ứng đủ các quyền này, attacker triển khai dịch vụ “Argexfil” chiếm luồng kết nối Git và ghi lại thông tin đăng nhập. Nhóm nghiên cứu còn phát hành script proof-of-concept mang tên “argexfil_verify.py” để giúp kiểm tra quyền và tự động triển khai kịch bản tấn công.
Để phòng ngừa, các chuyên gia khuyến nghị áp dụng nguyên tắc đặc quyền tối thiểu cho người dùng ArgoCD, giới hạn phạm vi dự án, giám sát DNS và lưu lượng pod-to-pod. Quyền tạo chứng chỉ chỉ nên cấp cho quản trị viên và nên ưu tiên sử dụng kết nối SSH để giảm nguy cơ lộ khóa bí mật. Ngoài ra, GitHub token nên được tạo với phạm vi tối thiểu. Future Sight cảnh báo kỹ thuật này có thể mở rộng sang các nền tảng GitOps khác như Flux hay CircleCI và cho biết sẽ tiếp tục nghiên cứu các phương pháp khai thác nâng cao, bao gồm tiêm YAML độc hại và lạm dụng hệ thống notification của ArgoCD.
Theo Cyber Press