Soi mã JavaScript của 5 triệu app, phát hiện 42.000 secrets khóa bảo mật bị lộ công khai

VNZ-TECHS
Công ty an ninh mạng Intruder vào tháng trước đã công bố một báo cáo, trong đó tiến hành quét chuyên sâu 5 triệu ứng dụng trên toàn cầu và phát hiện hơn 42.000 thông tin mật (secrets) bị lộ dưới dạng văn bản thuần trong các file JavaScript.

Báo cáo lần này tập trung kiểm tra các thông tin nhạy cảm bị ẩn trong những file JavaScript đã được đóng gói. Báo cáo dạng văn bản thuần được tạo ra có dung lượng hơn 100MB, ghi nhận tổng cộng trên 42.000 thông tin xác thực bị lộ, bao phủ 334 loại bí mật khác nhau.

Trong số các thông tin rò rỉ, token của kho mã nguồn (như GitHub và GitLab) được đánh giá là có mức độ rủi ro cao nhất. Các nhà nghiên cứu phát hiện 688 token thuộc loại này, trong đó nhiều token không chỉ còn hiệu lực mà còn có quyền truy cập đầy đủ vào kho mã riêng tư, thậm chí có thể mở khóa khóa AWS và SSH trong các pipeline CI/CD.

Javascript-secrets-key-1.webp

Ngoài ra, khóa API của các công cụ quản lý dự án (như Linear) cũng bị nhúng trực tiếp vào mã front-end, khiến toàn bộ hệ thống ticket nội bộ, chi tiết dự án và các liên kết tới dịch vụ phía sau của tổ chức bị lộ hoàn toàn. Những rò rỉ khác còn bao gồm bản vẽ thiết kế CAD, dữ liệu danh sách email, cùng hàng trăm webhook đang hoạt động của các phần mềm trò chuyện.

Wehook-Javasecrets-key-1.webp

Vì sao lại có quá nhiều thông tin mật bị bỏ sót? Theo Intruder, nguyên nhân cốt lõi nằm ở việc các công cụ quét tự động truyền thống “không hiểu JavaScript”.

Những trình quét kiểu cũ thường chỉ kiểm tra các đường dẫn URL đã biết và đối chiếu theo biểu thức chính quy, chứ không thực thi JavaScript hay render trang giống như trình duyệt. Lấy ví dụ với các ứng dụng một trang (SPA), công cụ quét thường chỉ gửi yêu cầu tới URL cơ bản, bỏ qua các file JavaScript chịu trách nhiệm dựng giao diện, khiến những thông tin xác thực ẩn bên trong hoàn toàn lọt khỏi tầm phát hiện.

Dù kiểm thử bảo mật ứng dụng tĩnh (SAST) có thể phân tích mã nguồn, nhưng phương pháp này không bao phủ được các bí mật được đưa vào trong quá trình build. Nhiều thông tin xác thực chỉ “lọt” vào file front-end ở giai đoạn đóng gói và triển khai, nằm ngoài phạm vi mà phân tích tĩnh có thể phát hiện.

Ở chiều ngược lại, kiểm thử bảo mật ứng dụng động (DAST) tuy rất mạnh, hỗ trợ thu thập dữ liệu ứng dụng và xác thực đăng nhập, nhưng do chi phí cao và cấu hình phức tạp, nên thường chỉ được áp dụng cho một số ít ứng dụng cốt lõi, không thể bao phủ toàn bộ tài sản số rộng lớn của doanh nghiệp.
 
  • Like
haivu Reactions: haivu