
,_
,' '\,_ 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 は、ファイルの異なるセクションに一意の署名を追加できます。利用可能な検出モードは以下の通りです。
File Hash: ファイルの SHA256 ハッシュ。すべてのファイルタイプに対応しています。
Binary: 署名がバイナリに直接追加されます。ほぼすべてのファイルタイプに対応しています。
Metadata: 署名がファイルのメタデータセクションに追加されます。対応ファイルタイプ: PDF、DOCX、XLSX、PPTX、MOV、JPG、PNG、GIF、EPS、AI、PSD
Watermark: テキストに不可視の署名が挿入されます。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 経由でメールを送信する場合は、SENDGRID_API_KEY セクションに API キーを入力してください。
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 は署名を比較できなくなります。
プロジェクトを気に入っていただけましたか?コーヒーをおごっていただけると嬉しいです