Một chiến dịch tấn công quy mô lớn có tên “EmeraldWhale” đã quét các tệp cấu hình Git bị lộ để đánh cắp hơn 15.000 thông tin đăng nhập tài khoản cloud từ hàng ngàn kho lưu trữ cá nhân.
Theo Sysdig, đơn vị phát giác chiến dịch này, EmeraldWhale sử dụng các công cụ tự động để quét các dải IP nhằm tìm kiếm các tệp cấu hình Git bị lộ và trong các tệp cấu hình này rất có thể chứa các mã thông báo xác thực (authentication token). Những token này sau đó được sử dụng để tải về các kho lưu trữ (repo) trên GitHub, GitLab và BitBucket, từ đó tìm kiếm thêm thông tin đăng nhập khác.
Dữ liệu bị đánh cắp được chuyển đến các Amazon S3 bucket của nạn nhân khác và sau đó được dùng trong các chiến dịch lừa đảo, spam, hoặc bán trực tiếp cho các tội phạm mạng.
Việc lộ mã thông báo xác thực từ Git không chỉ cho phép hacker đánh cắp dữ liệu mà còn có thể dẫn đến các vụ vi phạm dữ liệu bùng nổ như vụ Internet Archive gần đây.
Các tệp cấu hình Git bị lộ
Các tệp cấu hình Git, như /.git/config hoặc .gitlab-ci.yml, được sử dụng để xác định nhiều tùy chọn khác nhau như đường dẫn đến các kho lưu trữ, nhánh, liên kết từ xa. Đôi khi, các tệp này còn chứa cả thông tin xác thực như khóa API, mã thông báo truy cập và mật khẩu.
Các lập trình viên có thể lưu trữ những thông tin này trong kho lưu trữ cá nhân để tiện cho việc truyền dữ liệu và tương tác với API mà không cần cấu hình hoặc xác thực lại mỗi lần.
Điều này khá an toàn nếu kho lưu trữ được bảo mật và không công khai. Tuy nhiên, nếu thư mục /.git chứa tệp cấu hình bị công khai trên website, hacker có thể dễ dàng tìm thấy và đọc được.
Nếu các tệp cấu hình này chứa mã thông báo xác thực, kẻ tấn công có thể dùng chúng để tải về mã nguồn, database và các nội dung bảo mật khác.
Các hacker EmeraldWhale sử dụng các công cụ mã nguồn mở như ‘httpx’ và ‘Masscan’ để quét các trang web, ước tính khoảng 500 triệu địa chỉ IP được chia thành 12.000 dải IP.
Sysdig cho biết hacker thậm chí tạo ra danh sách tất cả các địa chỉ IPv4 có thể có (khoảng 4,2 tỷ địa chỉ) để tối ưu hóa quá trình quét.
Các tệp bị quét bao gồm /.git/config và các tệp môi trường (.env) trong ứng dụng Laravel, vì các tệp này có thể chứa các khóa API và thông tin đăng nhập cloud.
Khi phát hiện dữ liệu bị lộ, các token sẽ được kiểm tra qua các lệnh ‘curl’ để xác thực tính hợp lệ, và nếu hợp lệ, chúng sẽ được dùng để tải về các repo riêng.
Những repo đã được tải xuống này sau đó được quét lại để tìm thông tin xác thực cho AWS, các nền tảng cloud và các nhà cung cấp dịch vụ email. Hacker sử dụng các mã thông báo xác thực từ các nền tảng email để tiến hành các chiến dịch spam và lừa đảo.
Theo Sysdig, 2 bộ công cụ tự động hóa quy mô lớn gồm MZR V2 (Mizaru) và Seyzo-v2 đã được sử dụng để tăng tốc quy trình này.
Chuỗi tấn công EmeraldWhale (Nguồn: Sysdig)
Đối với các ứng dụng Laravel, hacker sử dụng công cụ Multigrabber v8.5 để kiểm tra các domain có tệp .env, đánh cắp chúng và phân loại dữ liệu dựa trên tiềm năng sử dụng.
Tổng quan về cuộc tấn công Laravel (Nguồn: Sysdig)
Đánh giá dữ liệu bị đánh cắp
Sysdig đã kiểm tra một S3 bucket bị lộ và phát hiện một terabyte dữ liệu bí mật có bao gồm thông tin đăng nhập và dữ liệu log. Theo dữ liệu thu thập, EmeraldWhale đã đánh cắp 15.000 thông tin đăng nhập cloud từ 67.000 URL có có tệp cấu hình bị lộ.
Trong đó, 28.000 URL thuộc về Git repo, 6.000 là mã xác thực GitHub, và 2.000 thông tin đăng nhập là hợp lệ.
Ngoài các nền tảng lớn như GitHub, GitLab và BitBucket, hacker còn nhắm vào 3.500 repo nhỏ thuộc các nhóm lập trình viên cá nhân và nhỏ lẻ.
Thông tin đăng nhập bị đánh cắp theo nền tảng (Nguồn: Sysdig)
Sysdig lưu ý rằng chỉ cần danh sách URL chứa các tệp cấu hình Git bị lộ cũng đã được bán trên Telegram với giá khoảng 100 USD, nhưng những kẻ có thể trích xuất và xác thực các dữ liệu này thậm chí còn có cơ hội kiếm được nhiều tiền hơn.
Các nhà nghiên cứu cho rằng chiến dịch này không quá phức tạp, chủ yếu dựa vào công cụ thông dụng và tự động hóa, nhưng vẫn thành công trong việc đánh cắp hàng nghìn thông tin bí mật, tiềm ẩn nguy cơ vi phạm dữ liệu nghiêm trọng.
Các lập trình viên có thể giảm thiểu rủi ro này bằng cách sử dụng các các công cụ quản lý bí mật để lưu trữ thông tin nhạy cảm và dùng biến môi trường (environment variable) để cấu hình thay vì lưu trực tiếp trong các tệp cấu hình Git.