
uno strumento di condivisione file che ti consente di trovare la persona responsabile in caso di una fuga di dati
,_
,' '\,_ Utku Sen's
|_,-'_) wholeaked
/##c '\ (
' |' -{. ) "When you have eliminated the impossible,
/\__-' \[] whatever remains, however improbable,
/'-_'\ must be the truth" - Sherlock Holmes
' \
wholeaked è uno strumento di condivisione file che ti permette di trovare la persona responsabile in caso di fuga di dati. È scritto in Go.
wholeaked prende il file che verrà condiviso e una lista di destinatari. Crea una firma unica per ogni destinatario e la aggiunge segretamente al file. Successivamente, può inviare automaticamente i file ai rispettivi destinatari utilizzando le integrazioni con Sendgrid, AWS SES o SMTP. In alternativa, puoi anche condividerli manualmente invece di inviarli via email.
wholeaked funziona con ogni tipo di file. Tuttavia, ha funzionalità aggiuntive per tipi di file comuni come PDF, DOCX, MOV, ecc.
+-----------+
|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 |
+-----------+
Per scoprire chi ha fatto trapelare il documento, devi solo fornire il file trapelato a wholeaked, e rivelerà la persona responsabile confrontando le firme nel database.
+-----------+ +---------+
|Top Secret | |Signature|
|.pdf | +---------+|Database |
| | |utkusen/ || | Document leaked by
| |->|wholeaked|| |--------+
| | | || | b@gov
|Hidden | +---------+| |
|Signature2 | | |
+-----------+ +---------+
wholeaked può aggiungere la firma unica a diverse sezioni di un file. Le modalità di rilevamento disponibili sono elencate di seguito:
Hash del file: Hash SHA256 del file. Tutti i tipi di file sono supportati.
Binario: La firma viene aggiunta direttamente al binario. Quasi tutti i tipi di file sono supportati.
Metadati: La firma viene aggiunta a una sezione di metadati di un file. Tipi di file supportati: PDF, DOCX, XLSX, PPTX, MOV, JPG, PNG, GIF, EPS, AI, PSD
Watermark: Una firma invisibile viene inserita nel testo. Solo i file PDF sono supportati.
Puoi scaricare i binari precompilati dalla pagina delle release ed eseguirli. Ad esempio:
unzip wholeaked_0.1.0_macOS_amd64.zip
./wholeaked --help
Installa Go sul tuo sistema
Esegui: go install github.com/utkusen/wholeaked@latest
wholeaked richiede exiftool per aggiungere firme alla sezione dei metadati dei file. Se non vuoi utilizzare questa funzionalità, non è necessario installarlo.
apt install exiftoolbrew install exiftoolexiftool.exe nella stessa directory di wholeaked.wholeaked richiede pdftotext per verificare le watermark nei file PDF. Se non vuoi utilizzare questa funzionalità, non è necessario installarlo.
bin64.pdftotext (o pdftotext.exe) nella stessa cartella di wholeaked.apt install libfontconfig.wholeaked richiede un nome di progetto -n, il percorso del file base a cui verranno aggiunte le firme -f, e una lista di destinatari -t
Esempio di comando: ./wholeaked -n test_project -f secret.pdf -t targets.txt
Il file targets.txt deve contenere il nome e l'indirizzo email nel seguente formato:
Utku Sen,[email protected]
Bill Gates,[email protected]
Dopo l'esecuzione, verranno generati i seguenti file unici:
test_project/files/Utku_Sen/secret.pdf
test_project/files/Bill_Gates/secret.pdf
Per impostazione predefinita, wholeaked aggiunge firme in tutti i punti disponibili definiti nella sezione "Tipi di file e modalità di rilevamento". Se non vuoi utilizzare un metodo, puoi specificarlo con un flag false. Ad esempio:
./wholeaked -n test_project -f secret.pdf -t targets.txt -binary=false -metadata=false -watermark=false
Per inviare email, devi compilare alcune sezioni nel file CONFIG.
Se vuoi inviare email tramite Sendgrid, inserisci la tua chiave API nella sezione SENDGRID_API_KEY.
Se vuoi inviare email tramite integrazione AWS SES, devi installare awscli sulla tua macchina e aggiungere la chiave AWS richiesta. wholeaked la leggerà automaticamente. Ma devi compilare la sezione AWS_REGION nel file di configurazione.
Se vuoi inviare email tramite un server SMTP, compila le sezioni SMTP_SERVER, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD.
Gli altri campi necessari da compilare:
EMAIL_TEMPLATE_PATH Percorso del corpo dell'email. Puoi specificare il formato HTML o testo.EMAIL_CONTENT_TYPE Può essere html o textEMAIL_SUBJECT Oggetto dell'emailFROM_NAME Nome del mittente dell'emailFROM_EMAIL Email del mittente dell'email