2 điểm bởi GN⁺ 2024-06-06 | 1 bình luận | Chia sẻ qua WhatsApp

Entropy

Entropy là một công cụ CLI giúp quét các dòng có entropy cao trong codebase để tìm thông tin bí mật.

Cách cài đặt

Cài đặt từ mã nguồn bằng Go (khuyến nghị)

  • go install github.com/EwenQuim/entropy@latest
  • Có thể dùng lệnh entropy
  • Tùy chọn bổ sung: entropy -h, entropy -top 20 -ext go,py,js, entropy -top 5 -ignore-ext min.js,pdf,png,jpg,jpeg,zip,mp4,gif my-folder my-file1 my-file2
  • Cài đặt một dòng: go run github.com/EwenQuim/entropy@latest

Cài đặt bằng Brew

  • Đang trong quá trình thực hiện (WIP)

Cài đặt bằng Docker

  • docker run --rm -v $(pwd):/data ewenquim/entropy /data
  • Tùy chọn bổ sung: docker run --rm -v $(pwd):/data ewenquim/entropy -h, docker run --rm -v $(pwd):/data ewenquim/entropy -top 20 -ext go,py,js /data, docker run --rm -v $(pwd):/data ewenquim/entropy -top 5 /data/my-folder /data/my-file
  • Có thể dùng image trên Docker Hub
  • Tùy chọn -v được dùng để mount thư mục hiện tại vào container
  • Phải thêm /data ở cuối lệnh, nếu không công cụ sẽ tìm bên trong container thay vì hệ thống tệp cục bộ

Các dự án khác

  • Fuego: framework Go tạo tài liệu OpenAPI từ codebase
  • Renpy-Graphviz: công cụ tạo biểu đồ từ các màn hình và nhãn của game engine Ren'Py

Ý kiến của GN⁺

  • Tăng cường bảo mật: Có thể giúp tăng cường bảo mật bằng cách tự động tìm thông tin bí mật trong codebase.
  • Dễ sử dụng: Cung cấp nhiều cách cài đặt để người dùng dễ dàng cài đặt và sử dụng công cụ.
  • Công cụ tương tự: Các công cụ có chức năng tương tự gồm git-secrets, truffleHog, v.v.
  • Điểm cần cân nhắc khi áp dụng: Khi dùng công cụ, cần cân nhắc kích thước và độ phức tạp của codebase; các dòng có entropy cao không nhất thiết luôn là thông tin bí mật.
  • Lợi và hại của lựa chọn công nghệ: Dùng Entropy có thể giúp ngăn ngừa sự cố bảo mật, nhưng có thể xuất hiện kết quả dương tính giả (false positive) nên cần xem xét thêm.

1 bình luận

 
GN⁺ 2024-06-06
Ý kiến trên Hacker News
  • Dùng script Perl: Đề xuất cách dùng script Perl để đo entropy của văn bản. Với các dòng ngắn thì có vấn đề là không nén tốt.
  • Mật khẩu cơ sở dữ liệu: Giải quyết vấn đề bằng cách đặt tất cả mật khẩu cơ sở dữ liệu thành 'abcd'.
  • Thắc mắc về việc dùng entropy: Đang tìm một bài viết hay về cách sử dụng entropy trong phân tích văn bản. Tò mò về định nghĩa và hiệu quả của entropy.
  • Vấn đề định nghĩa entropy: Việc định nghĩa entropy của văn bản khá mơ hồ. Cần một cách tốt hơn để so sánh entropy giữa ngôn ngữ tự nhiên và chuỗi ngẫu nhiên.
  • Các dự án liên quan: Giới thiệu các dự án liên quan như TruffleHog, detect-secrets, Semgrep Secrets.
  • Lời cảm ơn: Cảm ơn DrJones vì đã đặt câu hỏi về entropy vài năm trước, đồng thời chia sẻ một bài viết hay liên quan.
  • Khen công cụ CLI: Khen đây là một công cụ CLI hữu ích, và mã Go cũng rất tốt.
  • Chương trình 'ent': Gợi nhớ đến chương trình 'ent' đã dùng từ lâu.
  • Sử dụng mô hình ngôn ngữ: Đề xuất rằng các mô hình ngôn ngữ như Llama 3 có thể mô hình hóa độ bất ngờ theo từng token để phát hiện các vùng entropy cao.
  • Đề xuất cải tiến công cụ CLI: Đề xuất thêm cờ tự động đọc file .gitignore để loại trừ nội dung, cùng nhiều chiến lược phát hiện bí mật khác nhau.
  • Cách so sánh bằng nén: Đề xuất nén file rồi so sánh kích thước sau nén với kích thước gốc. File được mã hóa sẽ khó nén hơn mã nguồn.