
파일 공유 도구로, 유출 시 책임자를 찾을 수 있게 해줍니다.
,_
,' '\,_ Utku Sen's
|_,-'_) wholeaked
/##c '\ (
' |' -{. ) "When you have eliminated the impossible,
/\__-' \[] whatever remains, however improbable,
/'-_'\ must be the truth" - Sherlock Holmes
' \
wholeaked는 파일 공유 도구로, 유출 사고 발생 시 책임자를 찾을 수 있도록 해줍니다. Go로 작성되었습니다.
wholeaked는 공유할 파일과 수신자 목록을 받습니다. 각 수신자에 대해 고유한 시그니처를 생성하여 파일에 비밀리에 추가합니다. 그런 다음 Sendgrid, AWS SES 또는 SMTP 통합을 사용하여 해당 수신자에게 파일을 자동으로 보낼 수 있습니다. 이메일로 보내는 대신 수동으로 공유할 수도 있습니다.
wholeaked는 모든 파일 형식에서 작동합니다. 그러나 PDF, DOCX, MOV 등 일반적인 파일 형식에 대한 추가 기능이 있습니다.
+-----------+
|Top Secret |
|.pdf |
| |
-| |
/ | |
/ |Hidden |
a@gov / |signature1 |
/ +-----------+
/ +-----------+
+-----------++-----------+ / |Top Secret |
|Top Secret ||Recipient | / |.pdf |
|.pdf ||List | +---------+ / | |
| || | |utkusen/ | / b@gov | |
| ||a@gov |----->|wholeaked| /----------+ |
| ||b@gov | | | \ |Hidden |
| ||c@gov | +---------+ \ |signature2 |
| || | \ +-----------+
+-----------++-----------+ \ +-----------+
\ |Top Secret |
\ |.pdf |
c@gov \ | |
\ | |
\ | |
\ |Hidden |
-|signature3 |
+-----------+
유출된 문서의 책임자를 찾으려면 유출된 파일을 wholeaked에 제공하기만 하면 됩니다. 그러면 데이터베이스의 시그니처를 비교하여 책임자를 밝혀냅니다.
+-----------+ +---------+
|Top Secret | |Signature|
|.pdf | +---------+|Database |
| | |utkusen/ || | Document leaked by
| |->|wholeaked|| |--------+
| | | || | b@gov
|Hidden | +---------+| |
|Signature2 | | |
+-----------+ +---------+
wholeaked는 파일의 다양한 섹션에 고유 시그니처를 추가할 수 있습니다. 사용 가능한 탐지 모드는 다음과 같습니다:
파일 해시: 파일의 SHA256 해시입니다. 모든 파일 형식이 지원됩니다.
바이너리: 시그니처가 바이너리에 직접 추가됩니다. 거의 모든 파일 형식이 지원됩니다.
메타데이터: 시그니처가 파일의 메타데이터 섹션에 추가됩니다. 지원되는 파일 형식: PDF, DOCX, XLSX, PPTX, MOV, JPG, PNG, GIF, EPS, AI, PSD
워터마크: 텍스트에 보이지 않는 시그니처가 삽입됩니다. PDF 파일만 지원됩니다.
릴리스 페이지에서 미리 빌드된 바이너리를 다운로드하여 실행할 수 있습니다. 예:
unzip wholeaked_0.1.0_macOS_amd64.zip
./wholeaked --help
시스템에 Go를 설치하세요.
실행: go install github.com/utkusen/wholeaked@latest
wholeaked는 파일의 메타데이터 섹션에 시그니처를 추가하기 위해 exiftool이 필요합니다. 이 기능을 사용하지 않으려면 설치할 필요가 없습니다.
apt install exiftool 실행brew install exiftool 실행exiftool.exe를 wholeaked와 같은 디렉토리에 넣으세요.wholeaked는 PDF 파일 내 워터마크를 확인하기 위해 pdftotext가 필요합니다. 이 기능을 사용하지 않으려면 설치할 필요가 없습니다.
bin64 폴더로 이동하세요.pdftotext(또는 pdftotext.exe) 실행 파일을 wholeaked와 같은 폴더에 복사하세요.apt install libfontconfig 명령을 실행하세요.wholeaked는 프로젝트 이름 -n, 시그니처가 추가될 기본 파일의 경로 -f, 대상 수신자 목록 -t가 필요합니다.
예제 명령: ./wholeaked -n test_project -f secret.pdf -t targets.txt
targets.txt 파일에는 다음 형식으로 이름과 이메일 주소가 포함되어야 합니다:
Utku Sen,[email protected]
Bill Gates,[email protected]
실행이 완료되면 다음과 같은 고유 파일이 생성됩니다:
test_project/files/Utku_Sen/secret.pdf
test_project/files/Bill_Gates/secret.pdf
기본적으로 wholeaked는 "파일 유형 및 탐지 모드" 섹션에 정의된 모든 사용 가능한 위치에 시그니처를 추가합니다. 특정 방법을 사용하지 않으려면 false 플래그로 정의할 수 있습니다. 예:
./wholeaked -n test_project -f secret.pdf -t targets.txt -binary=false -metadata=false -watermark=false
이메일을 보내려면 CONFIG 파일의 일부 섹션을 채워야 합니다.
Sendgrid를 통해 이메일을 보내려면 API 키를 SENDGRID_API_KEY 섹션에 입력하세요.
AWS SES 통합을 통해 이메일을 보내려면 컴퓨터에 awscli를 설치하고 필요한 AWS 키를 추가해야 합니다. wholeaked가 키를 자동으로 읽습니다. 그러나 설정 파일의 AWS_REGION 섹션은 채워야 합니다.
SMTP 서버를 통해 이메일을 보내려면 SMTP_SERVER, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD 섹션을 채우세요.
채워야 할 기타 필수 필드:
EMAIL_TEMPLATE_PATH 이메일 본문의 경로입니다. HTML 또는 텍스트 형식을 지정할 수 있습니다.EMAIL_CONTENT_TYPE html 또는 text가 될 수 있습니다.EMAIL_SUBJECT 이메일의 제목FROM_NAME 이메일의 보내는 사람 이름FROM_EMAIL 이메일의 보내는 사람 이메일전송 방법을 지정하려면 -sendgrid, -ses 또는 -smtp 플래그를 사용할 수 있습니다. 예:
./wholeaked -n test_project -f secret.pdf -t targets.txt -sendgrid
-validate 플래그를 사용하여 유출된 파일의 소유자를 밝힐 수 있습니다. wholeaked는 파일에서 감지된 시그니처와 프로젝트 폴더에 있는 데이터베이스를 비교합니다. 예:
./wholeaked -n test_project -f secret.pdf -validate
중요: 파일 검증 기능을 사용하려면 project_folder/db.csv 파일을 삭제하지 마십시오. 해당 파일이 삭제되면 wholeaked가 시그니처를 비교할 수 없습니다.
프로젝트가 마음에 드시나요? 커피 한 잔 사주실 수 있습니다.