Hơn 42.000 secrets bị lộ trong mã JavaScript của hàng triệu ứng dụng web

Hơn 42.000 secrets bị lộ trong mã JavaScript của hàng triệu ứng dụng web

Một nghiên cứu quy mô lớn do công ty an ninh mạng Intruder thực hiện đã phát hiện hơn 42.000 thông tin xác thực nhạy cảm bị lộ công khai trong các tệp JavaScript của khoảng 5 triệu ứng dụng web trên toàn cầu. Thông tin được đăng tải bởi trang Bleeping Computer, cho thấy mức độ phổ biến và đáng lo ngại của việc nhúng “secrets” trực tiếp vào mã phía người dùng.

Theo báo cáo, nhóm nghiên cứu đã quét hàng triệu ứng dụng và phân tích các file JavaScript được phân phối công khai trên Internet. Kết quả thu được một tập dữ liệu hơn 100 MB, ghi nhận 42.000 secrets thuộc 334 loại khác nhau, bao gồm API key, access token, webhook và nhiều dạng thông tin xác thực khác. Phần lớn các dữ liệu này tồn tại dưới dạng văn bản thuần (plaintext), đồng nghĩa với việc bất kỳ ai truy cập vào file JavaScript tương ứng đều có thể đọc và khai thác nếu khóa vẫn còn hiệu lực.

Trong số các secrets bị lộ, token truy cập kho mã nguồn được đánh giá có mức độ rủi ro cao nhất. Nghiên cứu phát hiện 688 token liên quan đến các nền tảng như GitHub và GitLab, trong đó nhiều token vẫn còn hoạt động và sở hữu quyền truy cập đáng kể vào kho mã riêng tư. Nếu có quyền truy cập rộng, kẻ tấn công có thể đọc hoặc sao chép mã nguồn, can thiệp vào quy trình tích hợp và triển khai liên tục (CI/CD), thậm chí mở rộng sang hạ tầng đám mây như Amazon Web Services hoặc các khóa SSH sử dụng trong pipeline tự động.

Ngoài token kho mã, báo cáo còn ghi nhận sự xuất hiện của nhiều API key liên quan đến công cụ quản lý dự án, dịch vụ email, webhook của các nền tảng trò chuyện và các khóa truy cập dịch vụ kỹ thuật khác. Dù không phải mọi secrets đều cho phép chiếm quyền hệ thống ngay lập tức, chúng có thể cung cấp thông tin giá trị để tin tặc phân tích cấu trúc nội bộ và chuẩn bị cho các cuộc tấn công sâu hơn.

Theo Intruder, nguyên nhân chính khiến số lượng secrets bị lộ ở mức cao là do hạn chế của các công cụ quét truyền thống. Phần lớn giải pháp bảo mật tự động hiện nay chỉ kiểm tra URL hoặc phân tích mã nguồn tĩnh, mà không thực thi và phân tích JavaScript giống như một trình duyệt thực thụ. Trong khi đó, nhiều ứng dụng hiện đại sử dụng kiến trúc một trang (SPA), nơi phần lớn logic và cấu hình được đóng gói trong các bundle JavaScript. Điều này khiến secrets có thể “lọt” vào bản build cuối cùng mà không bị phát hiện.

Bài viết trên Bleeping Computer nhận định rằng bất kỳ dữ liệu nào được gửi xuống trình duyệt đều phải được xem là công khai về mặt kỹ thuật. Việc nhúng trực tiếp khóa truy cập vào mã front-end tiềm ẩn rủi ro lớn, đặc biệt khi doanh nghiệp chưa có cơ chế kiểm soát secrets chặt chẽ trong toàn bộ vòng đời phát triển phần mềm.

Các chuyên gia khuyến nghị doanh nghiệp tăng cường quản lý secrets ngay từ giai đoạn phát triển, build và triển khai; hạn chế tối đa việc đưa khóa truy cập vào mã phía người dùng; đồng thời bổ sung cơ chế quét chuyên biệt đối với JavaScript đã đóng gói. Phát hiện lần này cho thấy trong kỷ nguyên ứng dụng web hiện đại, rủi ro bảo mật không chỉ đến từ lỗ hổng phức tạp mà còn từ những thông tin xác thực vô tình bị để lộ trong các tệp JavaScript công khai mỗi ngày.

 

Bài viết liên quan