# 파일을 스캔하여 높은 엔트로피 라인을 찾는 CLI 도구 Entropy

> Clean Markdown view of GeekNews topic #15194. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15194](https://news.hada.io/topic?id=15194)
- GeekNews Markdown: [https://news.hada.io/topic/15194.md](https://news.hada.io/topic/15194.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-06-06T08:51:42+09:00
- Updated: 2024-06-06T08:51:42+09:00
- Original source: [github.com/EwenQuim](https://github.com/EwenQuim/entropy)
- Points: 2
- Comments: 1

## Topic Body

### 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) 결과가 나올 수 있어 추가 검토가 필요함.

## Comments



### Comment 25966

- Author: neo
- Created: 2024-06-06T08:51:42+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=40578060) 
- **Perl 스크립트 사용**: Perl 스크립트를 사용하여 텍스트의 엔트로피를 측정하는 방법을 제안함. 짧은 줄에서는 압축이 잘 안 되는 문제가 있음.
- **데이터베이스 비밀번호**: 모든 데이터베이스 비밀번호를 'abcd'로 설정하여 문제를 해결함.
- **엔트로피 사용에 대한 궁금증**: 엔트로피를 텍스트 분석에 사용하는 방법에 대한 좋은 글을 찾고 있음. 엔트로피의 정의와 효과에 대해 궁금해함.
- **엔트로피 정의 문제**: 텍스트의 엔트로피를 정의하는 것이 모호함. 자연 언어와 무작위 문자열의 엔트로피를 비교하는 더 나은 방법이 필요함.
- **관련 프로젝트**: 트러플호그, 디텍트-시크릿, 세미그렙 시크릿과 같은 관련 프로젝트를 소개함.
- **고마움 표현**: 몇 년 전 엔트로피에 대한 질문을 한 DrJones에게 감사하며, 관련 좋은 글을 링크함.
- **CLI 도구 칭찬**: 유용한 CLI 도구이며, Go 코드도 훌륭하다고 칭찬함.
- **'ent' 프로그램**: 오래 사용해온 'ent' 프로그램을 떠올리게 함.
- **언어 모델 사용**: Llama 3 같은 언어 모델이 토큰별로 놀라움을 모델링하여 높은 엔트로피 영역을 감지할 수 있을 것이라고 제안함.
- **CLI 도구 개선 제안**: .gitignore 파일을 자동으로 읽어 내용을 제외하는 플래그와 다양한 비밀 탐지 전략을 추가하면 좋겠다고 제안함.
- **압축 비교 방법**: 파일을 압축하여 압축된 크기와 원본 크기를 비교하는 방법을 제안함. 암호화된 파일은 코드보다 압축이 잘 안 됨.
