- Entropy는 대규모 코드베이스에서 높은 엔트로피 라인을 스캔해, 비밀값으로 보이는 문자열을 찾는 CLI 도구임
- 높은 엔트로피 라인은 시크릿일 가능성이 높은 대상으로 취급되며, 코드베이스 안의 노출된 비밀값을 찾는 용도에 초점을 둠
- 설치와 실행은 Go 소스 설치,
go run, Homebrew, Docker 방식으로 제공됨
- 실행 옵션으로
-top, -ext, -ignore-ext를 사용해 결과 개수, 포함 확장자, 제외 확장자를 지정할 수 있음
- Docker 실행 시 현재 디렉터리를
/data에 마운트하고 명령 끝에 /data를 넣어야 로컬 파일시스템을 스캔함
Entropy가 하는 일
- Entropy는 코드베이스를 스캔해 높은 엔트로피 라인을 찾는 CLI 도구임
- 높은 엔트로피 라인은 비밀값인 경우가 많아, 코드베이스에서 시크릿 누출을 찾는 데 도움을 줌
설치와 실행 방식
-
Go로 설치
- 권장 설치 방식은 Go를 이용한 소스 설치임
- 설치 후
entropy 명령으로 실행함
go install github.com/EwenQuim/entropy@latest
entropy
go run github.com/EwenQuim/entropy@latest
brew install ewenquim/repo/entropy
entropy
-
Docker로 실행
- Docker 실행은 현재 디렉터리를 컨테이너의
/data에 마운트하는 방식임
docker run --rm -v $(pwd):/data ewenquim/entropy /data
주요 옵션 예시
entropy -h
-top: 출력할 상위 결과 개수를 지정함
-ext: 스캔할 확장자를 지정함
entropy -top 20 -ext go,py,js
-ignore-ext: 제외할 확장자를 지정함
- 파일과 폴더를 함께 인자로 넘길 수 있음
entropy -top 5 -ignore-ext min.js,pdf,png,jpg,jpeg,zip,mp4,gif my-folder my-file1 my-file2
Docker 사용 시 주의점
- Docker의
-v 옵션은 현재 디렉터리를 컨테이너 안으로 마운트하는 데 사용됨
/data는 도구가 파일을 찾는 기본 디렉터리임
- 명령 끝에
/data를 추가하지 않으면 로컬 파일시스템이 아니라 컨테이너 내부를 검색함
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