Secret Gate
Bộ chặn phát hành hiểu rõ các secret thực tế của bạn: không có gì được đưa lên cho đến khi không tìm thấy gì.
- Linux or macOS
- Python 3.9+
- Git hooks
- CI

Tính năng chính
Secret Gate trả lời một câu hỏi trước khi bất kỳ thứ gì rời khỏi tay bạn, dù đó là tệp zip phát hành, bản sao dành cho khách hàng, bản đẩy mã nguồn mở hay commit tiếp theo: liệu thứ này có chứa bí mật của tôi không? Nó biết bí mật của bạn là gì, vì nó đọc các tệp nơi chúng được lưu trữ, và nó không bao giờ hiển thị một bí mật nào: một phát hiện nêu tên tệp, dòng và nguồn gốc của giá trị.
- Các giá trị chính xác của bạn. Mọi giá trị trong các tệp env, cấu hình JSON và YAML,
.netrcvà các tệp khóa, được tìm kiếm dưới dạng nguyên văn, mã hóa base64 và mã hóa URL. Một mật khẩu trông giống một từ thông thường, hoặc một token nội bộ không có tiền tố đã biết, đều bị phát hiện như bất kỳ thứ nào khác. - Các bí mật từ những máy mà nó không chạy trên đó. Tạo các dấu vết trên máy tính xách tay của bạn; máy chủ build tìm thấy các giá trị đó mà không bao giờ nắm giữ chúng.
- Các máy khác kiểm tra dựa trên bí mật của riêng chúng. Các tệp được gửi đến từng máy qua SSH, được quét tại đó và xóa đi. Các bí mật không bao giờ di chuyển, và một máy không thể trả lời sẽ chặn bản phát hành.
- Các mẫu hình, tên và nhiễu cũng vậy. 25 định dạng token, tên, máy chủ, tên miền và ID tài khoản của bạn, địa chỉ IP riêng, địa chỉ email cá nhân, số điện thoại, IBAN, đường dẫn thư mục home và các chuỗi ngẫu nhiên nằm cạnh các tên có vẻ như chứa bí mật.
- Nó tự chứng minh mỗi lần. Mỗi lần quét bắt đầu bằng cách đặt các canary thuộc mọi loại; nếu bất kỳ kiểm tra nào bỏ sót canary của nó, lần quét sẽ không chạy.
- Nơi bạn đã làm việc. Thư mục, tệp lưu trữ zip và tar, hook pre-commit hoặc pre-push của git, mã thoát cho CI, một báo cáo JSON.
Đã kiểm thử trên những gì chúng tôi cung cấp
- Mọi Bộ công cụ chúng tôi bán: 8 tệp lưu trữ đã phát hành được quét đối chiếu với 133 giá trị bí mật trên máy build của chúng tôi và 16.259 dấu vết từ máy tính xách tay của chúng tôi. Tất cả đều đạt, trong tổng cộng 5,4 giây.
- Một bí mật thực được đặt vào bản sao phát hành đã bị phát hiện ở dạng nguyên văn và mã hóa base64, mỗi lần đều được nêu tên theo tệp nguồn gốc. Giá trị không xuất hiện ở bất kỳ đâu trong đầu ra hoặc báo cáo.
- Một lần quét từ xa qua SSH đã kiểm tra một bản phát hành đối chiếu với 499 giá trị bí mật của máy thứ hai trong 1,4 giây, và phát hiện một token được đặt vào bản sao chỉ tồn tại trên máy đó.
Bên trong gồm những gì
Cổng kiểm soát
Bốn bước kiểm tra, tự kiểm tra, quét tệp lưu trữ và các tệp đã staged trong git, một báo cáo dễ đọc và một báo cáo JSON.
Dấu vết
Các dấu vết từ bí mật của một máy, dùng cho một lần quét trên máy khác, mà không cần các giá trị.
Quét từ xa
Các tệp tương tự được kiểm tra trên mọi máy lưu giữ thông tin bí mật, kèm theo các quy tắc của dự án của bạn.
Cài đặt và CI
Công cụ tìm kiếm các tệp bí mật, git hooks và một workflow GitHub Actions cho các bản lưu trữ phát hành.
Yêu cầu
- Linux hoặc macOS với Python 3.9 trở lên; không cần cài đặt gì từ pip.
- Git cho các hook, SSH cho các lần quét từ xa.
Nên biết
- Công cụ đọc các tệp ở trạng thái hiện tại. Một bí mật đã nằm trong lịch sử git vẫn sẽ ở đó: hãy xoay vòng bí mật đó.
- Các tệp lưu trữ bên trong thư mục được quét sẽ không được mở; hãy quét từng tệp lưu trữ.
- Giữ các tệp dấu vân tay riêng tư như chính các bí mật: chúng lưu giữ 4 ký tự đầu tiên của mỗi giá trị có từ 16 ký tự trở lên.
Câu hỏi
Điều này khác biệt thế nào so với gitleaks hoặc TruffleHog?
Các công cụ đó tìm kiếm các mẫu bí mật thường gặp và làm rất tốt việc này. Secret Gate còn biết chính xác bí mật của bạn là gì: nó đọc các tệp bí mật của bạn và tìm kiếm các giá trị chính xác đó, vì vậy một mật khẩu cơ sở dữ liệu hoặc một token nội bộ không có hình dạng nhận dạng được cũng sẽ bị phát hiện. Nó được xây dựng cho một thời điểm, trước khi một thứ gì đó được phát hành, và fail closed (dừng khi có lỗi).
Có gửi bí mật của tôi đi đâu không?
Không. Các giá trị được đọc từ tệp của bạn vào bộ nhớ để quét và không bao giờ được in, ghi hoặc gửi đi; một tệp dấu vân tay, nếu bạn tạo một tệp, sẽ lưu giữ một hash và 4 ký tự đầu tiên của mỗi giá trị. Các lần quét từ xa gửi các tệp bạn sắp phát hành đến máy của riêng bạn; các bí mật trên máy đó vẫn nằm trên máy đó.
Còn các cảnh báo giả thì sao?
Một phát hiện có nghĩa là "hãy xem xét điều này". Nếu nó ổn, hãy thêm một quy tắc cho phép hẹp cho loại phát hiện đó trong cấu hình dự án, ví dụ như địa chỉ hỗ trợ của riêng bạn. Không có công tắc nào để tắt một bước kiểm tra.
Có thể quét lịch sử git của tôi không?
Không. Nó kiểm tra những gì bạn sắp phát hành: một thư mục, một tệp lưu trữ, hoặc commit tiếp theo. Đối với một bí mật đã nằm trong lịch sử, hãy xoay vòng bí mật đó.
Đã cập nhật: