Tác động
Việc rò rỉ các bí mật như khóa, mã thông báo hoặc thông tin xác thực API có thể dẫn đến truy cập trái phép vào dữ liệu nhạy cảm, mạo danh dịch vụ và tổn thất tài chính đáng kể do lạm dụng tài nguyên [S1]. Sau khi một bí mật được đưa vào kho lưu trữ công cộng hoặc được gói vào một ứng dụng giao diện người dùng, [S1] đó sẽ được coi là bị xâm phạm.
Nguyên nhân gốc rễ
Nguyên nhân sâu xa là việc bao gồm các thông tin xác thực nhạy cảm trực tiếp trong mã nguồn hoặc tệp cấu hình mà sau đó được cam kết kiểm soát phiên bản hoặc cung cấp cho máy khách [S1]. Các nhà phát triển thường mã hóa khóa cứng để thuận tiện trong quá trình phát triển hoặc vô tình đưa các tệp .env vào cam kết [S1] của họ.
Sửa chữa bê tông
- Xoay đổi bí mật bị xâm phạm: Nếu bí mật bị rò rỉ, bí mật đó phải được thu hồi và thay thế ngay lập tức. Chỉ xóa bí mật khỏi phiên bản hiện tại của mã là không đủ vì nó vẫn còn trong lịch sử kiểm soát phiên bản [S1][S2].
- Sử dụng Biến môi trường: Lưu trữ bí mật trong các biến môi trường thay vì mã hóa chúng. Đảm bảo rằng các tệp
.envđược thêm vào.gitignoređể ngăn chặn các cam kết vô tình [S1]. - Triển khai Quản lý bí mật: Sử dụng các công cụ quản lý bí mật chuyên dụng hoặc dịch vụ kho tiền để đưa thông tin xác thực vào môi trường ứng dụng trong thời gian chạy [S1].
- Xóa lịch sử kho lưu trữ: Nếu một bí mật được cam kết với Git, hãy sử dụng các công cụ như
git-filter-repohoặc BFG Repo-Cleaner để xóa vĩnh viễn dữ liệu nhạy cảm khỏi tất cả các nhánh và thẻ trong lịch sử kho lưu trữ [S2].
FixVibe kiểm tra nó như thế nào
FixVibe hiện bao gồm tính năng này trong các bản quét trực tiếp. secrets.js-bundle-sweep thụ động tải xuống các gói JavaScript có cùng nguồn gốc và khớp với các mẫu khóa, mã thông báo và thông tin xác thực API đã biết với các cổng entropy và trình giữ chỗ. Các bước kiểm tra trực tiếp có liên quan sẽ kiểm tra bộ nhớ của trình duyệt, bản đồ nguồn, gói ứng dụng khách auth và BaaS cũng như các mẫu nguồn repo GitHub. Viết lại lịch sử Git vẫn là một bước khắc phục; Tin tức trực tiếp của FixVibe tập trung vào các bí mật có trong tài sản được vận chuyển, bộ nhớ trình duyệt và nội dung kho lưu trữ hiện tại.
