ghrc.io bị nghi là một trang web độc hại
(bmitch.net)- Sự nhầm lẫn đơn thuần giữa ghcr.io và ghrc.io do gõ sai đã gây ra mối đe dọa bảo mật nghiêm trọng
- ghrc.io thoạt nhìn trông như một máy chủ nginx mặc định, nhưng bên trong lại bị phát hiện bắt chước OCI API
- Trang này dùng header
www-authenticateđể khiến các container client gửi thông tin xác thực nhạy cảm - Nếu vô tình nhập thông tin đăng nhập như
docker loginhoặc sử dụng sai registry, có thể dẫn đến rò rỉ thông tin xác thực - Nếu đã đăng nhập vào máy chủ sai, cần đổi mật khẩu, thu hồi PAT và kiểm tra hoạt động bất thường trên tài khoản GitHub
Tổng quan
Sự nhầm lẫn thường gặp do gõ sai giữa ghcr.io và ghrc.io có thể dẫn đến một vấn đề bảo mật rất nguy hiểm. Tại ghrc.io, phiên bản gõ sai của GitHub Container Registry (ghcr.io) được nhiều nhà phát triển và nhóm sử dụng, đã phát hiện nỗ lực đánh cắp thông tin xác thực.
ghcr.io là gì
- ghcr.io là một registry tương thích OCI dành cho container image và OCI artifact
- Đây là một phần của GitHub và được dùng rộng rãi như một registry phổ biến trong nhiều dự án mã nguồn mở
ghrc.io: bề ngoài trông như thế nào
- Khi truy cập ghrc.io, chỉ thấy màn hình mặc định của nginx
- Các hành vi cơ bản như lỗi 404 điển hình cũng giống một máy chủ nginx thông thường
Bản chất của hành vi độc hại
- Vấn đề cốt lõi xuất hiện khi có gọi OCI API dưới tiền tố
/v2/ - Khi truy cập đường dẫn này, nó trả về header
www-authenticatevà phản hồi 401 với hành vi rất giống một container registry chính thức - Có tồn tại header
www-authenticate: Bearer realm="https://ghrc.io/token" - Vì header này, các client như Docker, containerd, podman, Kubernetes sẽ tự động thử gửi thông tin xác thực của người dùng tới
https://ghrc.io/token - Cấu hình nginx mặc định không có header đó, nên đây là thiết lập rõ ràng có chủ đích
Mức độ nguy hiểm: kịch bản đánh cắp thông tin xác thực
- Mẫu này được đánh giá là một cuộc tấn công đánh cắp thông tin xác thực dựa trên typo-squatting
- Rủi ro chỉ xảy ra khi client của người dùng đã nhập hoặc lưu thông tin xác thực cho ghrc.io
- Ví dụ về các tình huống thông tin xác thực thực sự có thể bị lộ
- Chạy
docker login ghrc.io - Dùng
docker/login-actiontrong GitHub Action và chỉ định registry là ghrc.io - Lưu thông tin xác thực registry cho ghrc.io trong Kubernetes secret rồi thử kéo image
- Chạy
- Chỉ đơn thuần thử push/pull image lên ghrc.io thì thông tin xác thực sẽ không bị lộ (sau khi thử token ẩn danh sẽ trả về lỗi)
Cách ứng phó
- Nếu từng vô tình đăng nhập vào ghrc.io, cần ngay lập tức đổi mật khẩu và thu hồi PAT (personal access token) đã sử dụng
- Bắt buộc phải kiểm tra đăng nhập bất thường hoặc hoạt động độc hại trên tài khoản GitHub
- Kẻ tấn công có thể lợi dụng điều này để thêm image độc hại vào repository trên ghcr.io hoặc chiếm quyền truy cập tài khoản
Kết luận
- Cần cảnh giác với trang phishing dùng địa chỉ tương tự ghcr.io
- Cần áp dụng chính sách nghiêm ngặt hơn trong việc quản lý thông tin bảo mật như thông tin xác thực, token và mật khẩu
Chưa có bình luận nào.