WhiteHat Team

Administrators
Thành viên BQT
09/04/2020
108
952 bài viết
Mối nguy ít ai để ý: Chỉ một Git repo lộ lọt cũng đủ phá hỏng cả hệ thống
Khi các cuộc tấn công lừa đảo và mã độc tống tiền vẫn chiếm sóng truyền thông, một nguy cơ khác lại đang diễn ra âm thầm nhưng vô cùng nguy hiểm: Git repository rò rỉ thông tin nhạy cảm, trở thành cửa hậu cho tin tặc xâm nhập vào hạ tầng doanh nghiệp.

Xương sống của phát triển phần mềm hiện đại nhưng cũng là điểm yếu mới​

Git là một hệ thống quản lý phiên bản phân tán mã nguồn mở (Open Source Distributed Version Control System), được thiết kế để theo dõi các thay đổi trong mã nguồn trong quá trình phát triển phần mềm.

Khác với các hệ thống quản lý phiên bản tập trung (Centralized VCS), Git lưu trữ toàn bộ lịch sử thay đổi của một dự án ngay trên máy tính của từng lập trình viên, giúp họ có thể làm việc độc lập, nhanh chóng và không cần kết nối mạng với máy chủ trung tâm.

1752565650484.png

Tuy nhiên, trong quá trình phát triển nhanh và liên tục, lập trình viên có thể vô tình để lại khóa API, token truy cập hoặc mật khẩu trong mã nguồn hoặc file cấu hình, biến Git repository thành cánh cửa không khóa dẫn tới hệ thống nội bộ.

Đây không chỉ là sai sót cá nhân mà còn là rủi ro chuỗi cung ứng nghiêm trọng. Các tiêu chuẩn bảo mật hiện đại như NIS2, SOC2, ISO 27001 đều yêu cầu tổ chức phải chứng minh khả năng kiểm soát rủi ro từ chuỗi phát triển phần mềm và Git repository chính là một trong những điểm bắt đầu.

Đáng báo động: Hơn 39 triệu thông tin mật đã bị rò rỉ trong GitHub chỉ trong năm 2024​

Theo thống kê của GitHub, trong năm 2024 đã có hơn 39 triệu thông tin mật bị lộ ra ngoài, tăng 67% so với năm trước. Phần lớn các rò rỉ này xuất phát từ:
  • Tài khoản lập trình viên cá nhân
  • Dự án bị bỏ quên hoặc bản fork không được kiểm tra
  • Repository bị sai cấu hình, thiếu kiểm soát truy cập
Các thông tin này bao gồm khóa truy cập đám mây, token API, thông tin đăng nhập cơ sở dữ liệu hoặc SSH và đều có thể bị kẻ tấn công khai thác để xâm nhập vào hệ thống thật.

Khi tìm thấy repository bị lộ, tin tặc có thể dễ dàng sử dụng các công cụ tự động để trích xuất thông tin nhạy cảm. Sau đó, chúng khai thác theo nhiều bước:

1. Truy cập ban đầu

Từ các thông tin nhạy cảm thu được trong Git repository, kẻ tấn công có thể xâm nhập hợp pháp vào nhiều hệ thống nội bộ, thường mà không gây nghi ngờ. Một số mục tiêu phổ biến bao gồm:
  • Hệ thống đám mây (Cloud Environments): sử dụng access key, token hoặc service principal để truy cập vào dịch vụ của AWS, Azure hoặc các nền tảng cloud khác.
  • Cơ sở dữ liệu (Databases): khai thác các chuỗi kết nối (connection strings) bị hardcode để truy cập vào MongoDB, MySQL, PostgreSQL, v.v.
  • Nền tảng SaaS: tận dụng token API hoặc thông tin cấu hình bị lộ để đăng nhập vào các ứng dụng phần mềm như dịch vụ (SaaS) có tích hợp trong quy trình làm việc của tổ chức.
2. Mở rộng quyền kiểm soát trong hệ thống

Sau khi giành được quyền truy cập ban đầu, tin tặc thường không dừng lại ở đó. Chúng sẽ tiếp tục mở rộng phạm vi xâm nhập, di chuyển ngang trong hệ thống để chiếm quyền điều khiển nhiều thành phần hơn. Các kỹ thuật thường được sử dụng bao gồm:
  • Phân tích tài liệu OpenAPI hoặc Swagger để xác định các API nội bộ còn đang mở và có thể bị khai thác.
  • Tấn công chuỗi CI/CD, lợi dụng các token bị rò rỉ từ GitHub Actions, GitLab CI hoặc Jenkins để kiểm soát pipeline và thực thi mã độc.
  • Lợi dụng phân quyền sai (misconfigured permissions) để truy cập trái phép vào các dịch vụ nội bộ khác hoặc di chuyển giữa các tài khoản cloud có liên kết với nhau.
3. Duy trì quyền truy cập và đánh cắp dữ liệu

Sau khi đã xâm nhập thành công vào hệ thống, tin tặc sẽ tìm cách duy trì chỗ đứng lâu dài và trích xuất dữ liệu nhạy cảm mà không bị phát hiện. Một số kỹ thuật phổ biến bao gồm:
  • Tạo mới người dùng IAM hoặc SSH key nhằm duy trì quyền truy cập lâu dài vào hệ thống mà không bị nghi ngờ.
  • Triển khai các thành phần độc hại, như hàm Lambda hoặc container giả mạo, để hoạt động ẩn mình trong môi trường đám mây mà vẫn hòa vào lưu lượng bình thường.
  • Trích xuất dữ liệu (data exfiltration) từ các dịch vụ lưu trữ và giám sát phổ biến như Amazon S3, Azure Blob Storage, CloudWatch hoặc Log Analytics, nơi thường chứa log, tài liệu và thông tin vận hành nhạy cảm.
Một khóa AWS bị lộ có thể dẫn đến toàn bộ hạ tầng đám mây bị kiểm soát. Một file .git/config bị quên có thể vẫn chứa thông tin truy cập đang hoạt động. Những sự cố như vậy thường không bị phát hiện bởi firewall hoặc các công cụ phòng thủ truyền thống, tạo điều kiện cho cuộc tấn công mở rộng từ Git repo đến máy tính lập trình viên, rồi tới mạng nội bộ.

Làm sao để giảm thiểu rủi ro từ Git repository?​

Không có giải pháp duy nhất nào có thể bảo vệ Git tuyệt đối nhưng kết hợp các biện pháp sau sẽ giúp giảm nguy cơ rò rỉ và thiệt hại nếu có lộ lọt xảy ra:

1. Quản lý thông tin tập trung
  • Không lưu trữ thông tin bí mật trong mã nguồn
  • Sử dụng công cụ quản lý secret chuyên biệt như HashiCorp Vault, AWS Secrets Manager hoặc Azure Key Vault
  • Truyền secret qua biến môi trường và API an toàn
  • Tự động xoay vòng thông tin mật để giảm thời gian tồn tại nếu bị lộ
2. Vệ sinh mã nguồn
  • Thiết lập quy tắc .gitignore nghiêm ngặt để loại trừ file chứa thông tin nhạy cảm như .env, config.yaml, credentials.json
  • Tích hợp công cụ quét mã như Gitleaks, Talisman hoặc git-secrets trong pipeline CI/CD
3. Kiểm soát truy cập
  • Áp dụng nguyên tắc tối thiểu quyền truy cập cho toàn bộ người dùng và công cụ
  • Sử dụng token ngắn hạn, thiết lập thời gian hết hạn rõ ràng
  • Kích hoạt xác thực đa yếu tố (MFA), đăng nhập một lần (SSO) cho nền tảng Git
  • Thường xuyên kiểm tra log truy cập, phát hiện hành vi bất thường

Git sẽ không an toàn nếu bạn không kiểm soát tốt​

Việc rò rỉ thông tin trong Git repository không còn là trường hợp hiếm gặp, mà đã trở thành một trong những điểm tấn công phổ biến nhất trong các môi trường DevOps hiện đại, nơi tốc độ phát triển phần mềm luôn được ưu tiên hàng đầu. Ngay cả khi tổ chức đã triển khai các công cụ quét tự động và quy trình kiểm soát bảo mật, vẫn có khả năng bỏ sót những kịch bản thực tế mà kẻ tấn công có thể khai thác.

Vấn đề không chỉ nằm ở việc bảo vệ từng file mã nguồn riêng lẻ mà ở chỗ Git cần được nhìn nhận như một bề mặt tấn công trọng yếu - nơi đòi hỏi phải được giám sát liên tục, xác minh chủ động và xử lý theo tư duy phòng thủ linh hoạt. Để thực sự giảm thiểu rủi ro, tổ chức cần tư duy như chính những kẻ tấn công: tìm ra lỗ hổng trước khi chúng bị lợi dụng.

Theo The Hacker News
 
Chỉnh sửa lần cuối:
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Thẻ
api key chuỗi cung ứng phần mềm data exfiltration devops git repository mã nguồn mở quản lý secret rò rỉ thông tin nhạy cảm tấn công chuỗi ci/cd token
Bên trên