1 điểm bởi GN⁺ 2025-08-25 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • 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 login hoặ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-authenticate và 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-action trong 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ỉ đơ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.

Chưa có bình luận nào.