Hai sentito parlare del file security.txt, ma non sai bene come funziona e come fare a crearne uno per il tuo sito web?
Dopo aver trattato nel dettaglio la sicurezza di WordPress e di Joomla, andiamo a parlare di un file poco conosciuto.
In questo articolo ti spieghiamo cos’è il file security.txt, quanto è diffuso e come fare a crearne uno per il tuo sito web.
Iniziamo subito vedendo a cosa serve.
Table of Contents
Cos’è il file security.txt
Il secuity.txt è un file di testo che i proprietari del sito possono inserire in una posizione nota del sito per condividere informazioni di contatto e ricevere segnalazioni su problemi di vulnerabilità.
Questo file è, infatti, indirizzato a ricercatori di sicurezza e ethical hacker che vogliono contattare un sito dopo aver scoperto un rischio o una vulnerabilità di sicurezza.
Il file security.txt è stato proposto come standard per avere un metodo univoco per comunicare un metodo di contatto e segnalare qualsiasi tipo di problema di sicurezza.
La proposta di utilizzare il file security.txt come standard è stata inviata nel settembre 2017 da Edwin Foudil. Tuttavia ad oggi, il file non è diventato uno standard, ma è stata pubblicata la documentazione tecnica RFC 9116 che stabilisce la struttura del file.
Cosa significa nella pratica?
Non è obbligatorio avere questo file, ma ci sono delle indicazioni precise che ci aiutano a creare il file correttamente se lo si vuole inserire nel proprio sito.
Prima di passare alla struttura del security.txt e a come crearlo, parliamo della sua diffusione.
Quanti siti utilizzano il file security.txt?
Attualmente il file security.txt non è molto diffuso.
Dai dati raccolti ad agosto 2022 da RedMapleTechnologies, sui siti top 1 milione solo 3.724 utilizzano il file security.txt che corrisponde allo 0,37% del totale dei siti analizzati.
Nonostante ciò, bisogna comunque considerare che ci sono diversi organi che promuovono l’utilizzo di questo file.
Ad esempio la CISA (Cybersecurity and Infrastructure Security Agency) nel 2019 ha richiesto a tutte le agenzie federali di pubblicare il file.
Tra le compagnie importanti che hanno adottato il file security.txt troviamo Google, Amazon e Facebook.
Ecco alcuni esempi di file security.txt.
Google:
Contact: https://g.co/vulnz
Contact: mailto:[email protected]
Encryption: https://services.google.com/corporate/publickey.txt
Acknowledgements: https://bughunters.google.com/
Policy: https://g.co/vrp
Hiring: https://g.co/SecurityPrivacyEngJobs
Amazon:
Contact: https://hackerone.com/amazonvrp/reports/new
Hiring: https://www.amazon.jobs/en/teams/infosec
# Bug Bounty Policy:
Policy: https://hackerone.com/amazonvrp
# For vulnerabilities related to Amazon Web Services (AWS):
https://aws.amazon.com/security/vulnerability-reporting/
Passiamo adesso a come creare un file security.txt.
Struttura del file security.txt
Nella pratica il file security.txt è un documento di testo all’interno del quale sono inclusi diversi campi. Proprio come negli esempi che abbiamo appena visto.
Ogni campo deve essere formato da un nome e un valore.
Il nome è la prima parte del campo ed è seguito dal simbolo dei due punti, ad esempio “Contact:”.
Il valore segue il nome e deve essere indicato con la sintassi corretta. Per esempio “mailto:[email protected]”.
Bisogna indicare ogni campo in una riga separata come in questo esempio:
Contact: mailto:[email protected]
Expires: 2024-12-31T15:00:02z
I campi obbligatori sono due: Contact e Expires. Tutti gli altri campi sono opzionali.
Vediamo ora i singoli campi.
Contact
Il campo Contact è uno dei più importanti del file. Indica il metodo con cui ricercatori di sicurezza possono contattare i proprietari del sito per segnalare le vulnerabilità.
Questo campo deve essere presente in tutti i file security.txt.
Le informazioni di contatto possono essere: indirizzo email, numero di telefono o anche una pagina web con informazioni di contatto o con un modulo di contatto.
È possibile anche inserire più metodi di contatto, in questo caso basta inserirli in ordine di preferenza in modo da inserire per primo il metodo preferenziale. Vediamolo con un esempio:
Contact: mailto:[email protected]
Contact: https://dominio.com/security-contact/
Contact: tel:+39-12345678
Come puoi vedere in questo esempio, email e numeri di telefono dovrebbero essere inseriti con i link mailto e tel.
In linea di massima è comunque preferibile utilizzare un form di contatto invece di inserire l’indirizzo email in chiaro per evitare spam.
Expires
Il campo Expires deve contenere la data “di scadenza” del file security.txt. Possiamo usare questo campo per indicare una data dopo la quale il file non deve essere più considerato attendibile.
Il formato da usare per la data è l’ISO 8601.
Ecco un esempio pratico:
Expires: 2024-12-31T15:00:02z
Encryption
Sebbene il campo Encryption sia opzionale, è consigliabile indicarlo per provare l’autenticità del file.
Nel campo Encryption bisogna inserire il link alla chiave pubblica, in genere OpenPGP, che è stata utilizzata per criptare la comunicazione. È importante inserire solo il link e non la chiave.
Esempio:
Encryption: https://dominio.com/public-key.txt
Canonical
Nel campo Canonical si può indicare l’URI della posizione del file security.txt.
Per esempio:
Canonical: https://dominio.com/.well-known/security.txt
Acknowledgments
Questo campo si può usare per inserire il link di una pagina in cui si ringraziano i ricercatori che hanno contribuito a segnalare vulnerabilità. Per motivi di sicurezza è bene non inserire informazioni riguardo alle vulnerabilità.
Esempio:
Acknowledgments: https://dominio.com/ringraziamenti/
Hiring
Nel campo Hiring si può inserire un link a una pagina in cui si offrono posizioni di lavoro legate alla cybersecurity.
Esempio:
Hiring: https://dominio.com/lavora-con-noi/
Policy
Il campo Policy può essere utilizzato per indicare il link con la policy sulla divulgazione e segnalazione delle vulnerabilità. In questo modo si comunica ai ricercatori il miglior modo per inviare una segnalazione.
Esempio:
Policy: https://dominio.com/vulnerability-disclosure-policy/
Preferred-Languages
Con il campo Preferred-Languages si possono indicare le lingue preferite che i ricercatori potranno usare per inviare i report.
L’ordine in cui vengono inseriti, nel caso in cui ce ne sia più di uno, è irrilevante e non indica la priorità.
Esempio:
Preferred-Languages: en, it
Come inserire i commenti nel file security.txt
Per aggiungere dei commenti all’interno del file security.txt basta iniziare una riga con il simbolo #. Dopo il simbolo # si possono inserire i commenti come in questo esempio:
# Questo è un commento.
Anche negli esempi di file security.txt che abbiamo visto prima c’erano dei commenti.
Firma digitale
Chi crea il file security.txt, può inserire una firma digitale tramite OpenPGP in modo da assicurare che il file sia autentico e non sia stato inserito da un utente malintenzionato.
Come creare il file security.txt
Per creare il file security.txt possiamo creare un semplice file di testo e nominarlo “security.txt”. Il file deve avere queste caratteristiche:
- type: text/plain
- default charset: UTF-8.
Il file deve contenere un campo per ogni riga, proprio come negli esempi che abbiamo visto prima.
In alternativa si può anche creare il file attraverso un’interfaccia dal sito ufficiale.
In questo modo possiamo creare passo passo il file con tutti i campi che riteniamo necessari.
Come puoi vedere dal sito, l’interfaccia ti aiuta anche a capire quali sono i campi richiesti e quelli opzionali, oltre a permetterti di inserire più alternative per ogni campo, ad esempio più metodi di contatto.
Il primo step consiste nell’inserire tutte le informazioni che andranno a costituire i campi del nostro file security.txt.
Dopo aver cliccato sul pulsante “Generate security.txt file” dalla sezione Step 2 potremo copiare il testo da incollare nel nostro file security.txt.
Dove bisogna inserire il file security.txt?
Questo file andrà caricato nella directory .well-known del nostro sito.
Il percorso completo del file sarà quindi di questo tipo:
https://dominio.com/.well-known/security.txt
In alternativa, nel caso in cui non si possa utilizzare la directory .well-known, si può anche caricare il file direttamente nella root.
Ci basta quindi aprire la cartella .well-known e creare al suo interno un file “security.txt”.
A questo punto possiamo inserire i campi uno per riga oppure incollare i campi che abbiamo generato direttamente dal sito securitytxt.org come abbiamo visto prima.
Conclusioni
Adesso sai come creare un file security.txt per indicare agli esperti di sicurezza un metodo per contattarti e segnalarti le vulnerabilità sul sito.
Come ultimo consiglio ricorda di fare attenzione allo spam. Non è escluso che potresti ricevere email che segnalano vulnerabilità solo per spingerti a richiedere una consulenza.
Avevi già sentito parlare di questo file? Lo utilizzi sul tuo sito? Facci sapere con un commento.
Lascia un commento