2P by neo 2달전 | favorite | 댓글 1개

Entropy

Entropy는 코드베이스에서 높은 엔트로피 라인을 스캔하여 비밀 정보를 찾아주는 CLI 도구임.

설치 방법

Go를 이용한 소스 설치 (권장)

  • go install github.com/EwenQuim/entropy@latest
  • entropy 명령어 사용 가능
  • 추가 옵션: 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
  • 한 줄 설치: go run github.com/EwenQuim/entropy@latest

Brew를 이용한 설치

  • 작업 진행 중 (WIP)

Docker를 이용한 설치

  • docker run --rm -v $(pwd):/data ewenquim/entropy /data
  • 추가 옵션: 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
  • Docker Hub에서 이미지 사용 가능
  • -v 옵션은 현재 디렉토리를 컨테이너에 마운트하는 데 사용됨
  • 명령어 끝에 /data를 추가해야 함, 그렇지 않으면 도구가 로컬 파일 시스템이 아닌 컨테이너 내부를 검색함

다른 프로젝트

  • Fuego: 코드베이스에서 OpenAPI 문서를 생성하는 Go 프레임워크
  • Renpy-Graphviz: Ren'Py 게임 엔진의 화면과 레이블을 그래프로 생성하는 도구

GN⁺의 의견

  • 보안 강화: 코드베이스에서 비밀 정보를 자동으로 찾아내어 보안 강화를 도울 수 있음.
  • 사용 편의성: 다양한 설치 방법을 제공하여 사용자가 편리하게 도구를 설치하고 사용할 수 있음.
  • 유사 도구: 비슷한 기능을 제공하는 도구로는 git-secrets, truffleHog 등이 있음.
  • 도입 고려 사항: 도구 사용 시 코드베이스의 크기와 복잡성을 고려해야 하며, 높은 엔트로피 라인이 반드시 비밀 정보를 의미하지 않을 수 있음.
  • 기술 선택의 득과 실: Entropy 도입으로 보안 사고를 예방할 수 있지만, 잘못된 긍정(false positive) 결과가 나올 수 있어 추가 검토가 필요함.
Hacker News 의견
  • Perl 스크립트 사용: Perl 스크립트를 사용하여 텍스트의 엔트로피를 측정하는 방법을 제안함. 짧은 줄에서는 압축이 잘 안 되는 문제가 있음.
  • 데이터베이스 비밀번호: 모든 데이터베이스 비밀번호를 'abcd'로 설정하여 문제를 해결함.
  • 엔트로피 사용에 대한 궁금증: 엔트로피를 텍스트 분석에 사용하는 방법에 대한 좋은 글을 찾고 있음. 엔트로피의 정의와 효과에 대해 궁금해함.
  • 엔트로피 정의 문제: 텍스트의 엔트로피를 정의하는 것이 모호함. 자연 언어와 무작위 문자열의 엔트로피를 비교하는 더 나은 방법이 필요함.
  • 관련 프로젝트: 트러플호그, 디텍트-시크릿, 세미그렙 시크릿과 같은 관련 프로젝트를 소개함.
  • 고마움 표현: 몇 년 전 엔트로피에 대한 질문을 한 DrJones에게 감사하며, 관련 좋은 글을 링크함.
  • CLI 도구 칭찬: 유용한 CLI 도구이며, Go 코드도 훌륭하다고 칭찬함.
  • 'ent' 프로그램: 오래 사용해온 'ent' 프로그램을 떠올리게 함.
  • 언어 모델 사용: Llama 3 같은 언어 모델이 토큰별로 놀라움을 모델링하여 높은 엔트로피 영역을 감지할 수 있을 것이라고 제안함.
  • CLI 도구 개선 제안: .gitignore 파일을 자동으로 읽어 내용을 제외하는 플래그와 다양한 비밀 탐지 전략을 추가하면 좋겠다고 제안함.
  • 압축 비교 방법: 파일을 압축하여 압축된 크기와 원본 크기를 비교하는 방법을 제안함. 암호화된 파일은 코드보다 압축이 잘 안 됨.