Segreti dentro un eseguibile
Una ditta ti ha consegnato un programma compilato, la cassaforte, e giura che nessuno può leggerne i segreti. Dimostra che si sbaglia: estrai il codice di servizio rimasto dentro il file.
Laboratorio 4 di 6 del percorso Codifiche e segreti. Se ti blocchi hai 3 aiuti, dal più vago al più preciso: costano 0, 40 e 120 XP.
Cosa impari
Gli obiettivi si completano da soli mentre lavori nel terminale; ognuno vale punti esperienza:
- Leggere il README (50 XP)
- Chiedere a file cos'è la cassaforte (100 XP)
- Estrarre il testo leggibile con strings (150 XP)
Argomenti: codici, strings, binari.
I comandi che userai
Il terminale è simulato e capisce una quarantina di comandi Linux. In questo laboratorio ti servono soprattutto questi:
cat: stampa il contenuto di un file: il modo più diretto di leggere configurazioni, note e registri.file: riconosce che tipo di file hai davanti (testo, eseguibile, immagine) guardando il contenuto, non il nome.strings: estrae il testo leggibile da un file binario: rivela password e indirizzi lasciati dentro un programma.grep: cerca le righe che contengono una parola, anche in intere cartelle con -r. È lo strumento principale per analizzare testo e registri.|: la barra verticale | collega i comandi: l'uscita del primo diventa l'ingresso del successivo, così piccoli strumenti formano un'analisi completa.
L'ambiente simulato
Lavori su una shell Linux simulata, nella home dell'utente runner: file e cartelle inventati, nessun bersaglio in rete.
La lezione di difesa
A laboratorio risolto, il writeup spiega cosa è andato storto e come ci si protegge:
Compilare un programma non lo trasforma in un cassetto chiuso: ogni testo scritto dentro (password, chiavi API, token, indirizzi interni) si recupera con strings in un secondo, senza nemmeno eseguirlo. I segreti non vanno né nel codice né negli eseguibili: si leggono all'avvio da variabili d'ambiente o da un gestore di segreti, si cambiano se trapelano e si cercano con strumenti di secret scanning prima del rilascio.
Prima e dopo questo laboratorio
Per aprirlo devi aver risolto:
- Esadecimale (Codifiche e segreti, facile)
- Cercare nel testo (Fondamenti Linux, medio)
Dopo questo laboratorio puoi passare a:
- Il rebus finale (Codifiche e segreti, difficile)
Il percorso Codifiche e segreti
Codifiche e segreti insegna una distinzione che salva molti dati: codificare non è cifrare. Base64, esadecimale, ROT13 e testo allo specchio cambiano l'aspetto delle informazioni ma non le proteggono, perché chiunque le riporta in chiaro senza nessuna chiave. Nei laboratori riconosci questi formati dall'aspetto, li togli uno strato alla volta anche quando sono impilati, estrai il testo leggibile da un programma compilato e capisci perché per proteggere davvero un segreto servono cifratura vera, hash con sale e un gestore di segreti.