Configurare security.txt per la Conformità CRA: Una Guida da 10 Minuti

Una guida rapida e pratica per implementare security.txt per i tuoi prodotti. Include template, opzioni di hosting e errori comuni da evitare.

Team CRA Evidence Pubblicato 6 febbraio 2026 Aggiornato 6 aprile 2026
Configurare security.txt per la Conformità CRA: Una Guida da 10 Minuti
In questo articolo

Con il CRA, i produttori devono avere un canale pubblicamente raggiungibile attraverso cui ricercatori e clienti possano segnalare vulnerabilità. Lo standard è RFC 9116: un file di testo semplice chiamato security.txt, ospitato a /.well-known/security.txt. Due campi obbligatori, qualche campo raccomandato e circa 10 minuti di lavoro.

Questa guida tratta i campi, l'hosting, gli errori più comuni e cosa occorre referenziare nel fascicolo tecnico.

Sintesi

  • security.txt è un file standardizzato (RFC 9116) che indica ai ricercatori come segnalare le vulnerabilità
  • Posizionalo a /.well-known/security.txt sulla tua presenza web
  • Campi minimi richiesti: Contact, Expires
  • Raccomandato: includere anche Preferred-Languages, Policy, Canonical
  • Per prodotti senza interfacce web, includi l'URL nella documentazione

Cos'è security.txt?

security.txt è uno standard RFC (RFC 9116) che fornisce un modo leggibile da macchina e da umano per pubblicare informazioni di contatto sulla sicurezza.

Il CRA richiede ai produttori di pubblicare un contatto per la segnalazione delle vulnerabilità. security.txt è il metodo standard del settore per farlo. Strumenti di scansione automatizzata e ricercatori di sicurezza lo verificano per impostazione predefinita, e averlo in essere fornisce ai regolatori un segnale concreto che si sono predisposti canali di divulgazione appropriati.

Il security.txt Minimo Necessario

Ecco il file conforme più semplice:

Contact: mailto:security@yourcompany.com
Expires: 2027-12-31T23:59:59.000Z

Tutto qui. Due righe. Si è tecnicamente conformi.

Ma facciamo meglio.

Il security.txt Raccomandato

Un security.txt completo:

# Security Contact Information for [Your Company]
Contact: mailto:security@yourcompany.com
Contact: https://yourcompany.com/security/report
Expires: 2027-01-01T00:00:00.000Z
Encryption: https://yourcompany.com/.well-known/pgp-key.txt
Preferred-Languages: en, de, fr
Canonical: https://yourcompany.com/.well-known/security.txt
Policy: https://yourcompany.com/security/disclosure-policy
Hiring: https://yourcompany.com/careers/security
Acknowledgments: https://yourcompany.com/security/thanks

Spiegazione Campo per Campo

Contact (Obbligatorio)

Come i ricercatori possono contattarLa.

Contact: mailto:security@yourcompany.com
Contact: https://yourcompany.com/security/report

Si utilizzi un alias di team, non un indirizzo personale. Si includano sia l'email sia un modulo web, se disponibile. Sono ammesse più righe Contact, e il modulo web consente una raccolta strutturata delle segnalazioni.

Expires (Obbligatorio)

Expires: 2027-01-01T00:00:00.000Z

Si imposti una data a 6-12 mesi nel futuro, in formato ISO 8601 con fuso orario. Si aggiunga un promemoria nel calendario prima della scadenza. Un file scaduto segnala ai ricercatori che non lo si sta manutenendo.

Encryption (Raccomandato)

Encryption: https://yourcompany.com/.well-known/pgp-key.txt

Si utilizzi una chiave di team anziché individuale, e si conservi la chiave privata in un HSM se possibile. Si includa l'impronta digitale nei commenti, così i ricercatori possono verificarla in modo indipendente.

Preferred-Languages (Raccomandato)

Preferred-Languages: en, de, fr

Si elenchino solo le lingue in cui il team di sicurezza può effettivamente rispondere. Si ordini per preferenza. Se si indica il tedesco e nessuno nel team lo legge, si riceveranno segnalazioni che non si riuscirà a gestire.

Canonical (Raccomandato)

Canonical: https://yourcompany.com/.well-known/security.txt

Previene lo spoofing e chiarisce se il file è replicato altrove. I ricercatori possono verificare l'URL canonico rispetto a quello recuperato per confermarne l'autenticità.

Policy (Raccomandato)

Policy: https://yourcompany.com/security/disclosure-policy

Ci si assicuri che la pagina esista e sia caricabile senza autenticazione. Un link Policy non funzionante durante una revisione di sicurezza è controproducente.

Acknowledgments (Opzionale)

Acknowledgments: https://yourcompany.com/security/thanks

I ricercatori che trovano bug sono spesso ottimi candidati per il team di sicurezza. Il riconoscimento pubblico incoraggia ulteriori segnalazioni. La maggior parte dei ricercatori dà priorità alle organizzazioni che riconoscono il loro lavoro.

Hiring (Opzionale)

Hiring: https://yourcompany.com/careers/security

Vale la pena includerlo se ci sono posizioni aperte nel settore sicurezza. I ricercatori in cerca di lavoro consultano questi link.

Configurazione Passo per Passo

Passo 1: Creare il File

cat > security.txt << 'EOF'
Contact: mailto:security@yourcompany.com
Contact: https://yourcompany.com/security/report
Expires: 2027-01-15T00:00:00.000Z
Preferred-Languages: en
Canonical: https://yourcompany.com/.well-known/security.txt
Policy: https://yourcompany.com/security/policy
EOF

Passo 2: Scegliere la Posizione di Hosting

Per i siti web:

https://yourcompany.com/.well-known/security.txt

Per prodotti con interfacce web:

https://192.168.1.1/.well-known/security.txt

Passo 3: Configurare il Web Server

Nginx:

location /.well-known/security.txt {
    alias /var/www/security.txt;
    default_type text/plain;
}

Apache:

Alias /.well-known/security.txt /var/www/security.txt
<Files "security.txt">
    ForceType text/plain
</Files>

Express.js:

app.get('/.well-known/security.txt', (req, res) => {
    res.type('text/plain');
    res.sendFile(__dirname + '/security.txt');
});

Hosting statico (S3, GitHub Pages, ecc.): Si posizioni il file nella directory .well-known.

Passo 4: Verificare

curl https://yourcompany.com/.well-known/security.txt

Si utilizzi un validatore online: https://securitytxt.org/

Passo 5: Firmare (Opzionale ma Raccomandato)

gpg --clearsign security.txt
mv security.txt.asc security.txt

Per Prodotti Senza Interfacce Web

Dispositivi Embedded

Opzione 1: Si ospiti security.txt a http://device-ip/.well-known/security.txt Opzione 2: Se non c'è interfaccia web: si includa l'URL nella documentazione del prodotto, con riferimento al security.txt aziendale.

Software Desktop

  • Si includa il contatto di sicurezza in Aiuto > Informazioni
  • Si aggiunga al README/documentazione

App Mobile

  • Si includa in Impostazioni > Informazioni > Sicurezza
  • Si aggiunga alla descrizione nell'app store

Riferimento nella Documentazione

## Segnalazione di Vulnerabilità di Sicurezza
- Email: security@yourcompany.com
- Web: https://yourcompany.com/security/report
- Policy: https://yourcompany.com/security/policy
Il nostro file security.txt: https://yourcompany.com/.well-known/security.txt

Errori Comuni

File Scaduto

Expires: 2024-01-01T00:00:00.000Z  # SCADUTO!

Correzione: Si imposti una data futura. Si aggiunga un promemoria nel calendario.

Posizione Sbagliata

/security.txt           # Sbagliato
/.well-known/security.txt  # Corretto

Formato Non Valido

Correzione: Si usino date ISO 8601, URI mailto: o https:.

Link Non Funzionanti

Correzione: Si verifichi che tutti i link funzionino. Si controlli dopo ogni deploy.

Email Personale

Contact: mailto:john.smith@yourcompany.com  # Sbagliato

Correzione: Si utilizzi un alias di team che sopravviva ai cambi di personale.

Nessun HTTPS

Correzione: Si usi sempre HTTPS per URL relativi alla sicurezza.

Checklist di Validazione

CHECKLIST DI VALIDAZIONE SECURITY.TXT

CAMPI OBBLIGATORI:
[ ] Campo Contact presente (mailto: o https:)
[ ] Campo Expires presente (data futura, ISO 8601)

CAMPI RACCOMANDATI:
[ ] Preferred-Languages incluso
[ ] URL Canonical corrisponde alla posizione effettiva
[ ] Link Policy funziona e punta alla policy CVD

HOSTING:
[ ] File a /.well-known/security.txt
[ ] Accessibile via HTTPS
[ ] Content-Type: text/plain
[ ] Nessuna autenticazione richiesta

VERIFICA:
[ ] Test curl riuscito
[ ] Validatore online superato
[ ] Tutti i link risolvono (nessun 404)

MANUTENZIONE:
[ ] Promemoria calendario impostato prima della data Expires
[ ] Processo di aggiornamento documentato

Calendario di Manutenzione

Compito Frequenza
Controllare la data di scadenza Mensile
Verificare che i link funzionino Mensile
Aggiornare la chiave PGP (se in scadenza) Quando necessario
Rivedere gli indirizzi di contatto Trimestrale
Verifica completa di validazione Prima della scadenza

Cosa Inserire nel Fascicolo Tecnico

Il CRA richiede ai produttori di mantenere un fascicolo tecnico (Annex VII) che documenti il processo di gestione delle vulnerabilità. Il file security.txt e la policy CVD a cui rimanda sono input diretti a quella documentazione.

In particolare, il fascicolo tecnico dovrebbe referenziare:

  • L'URL del security.txt e i metodi di contatto che espone
  • L'URL della policy di divulgazione a cui rimanda
  • Gli SLA di risposta a cui ci si è impegnati in quella policy

I regolatori che esaminano il fascicolo tecnico cercano evidenza che esista un processo funzionante di ricezione delle vulnerabilità. Un security.txt attivo, non scaduto, con un link Policy funzionante è un segnale concreto. Un file scaduto o link non funzionanti lavorano contro di Lei.

Si aggiunga questo blocco alla documentazione sulla gestione delle vulnerabilità:

Punti di Contatto per la Segnalazione di Vulnerabilità:
- security.txt: https://company.com/.well-known/security.txt
- Email: security@company.com
- Modulo Web: https://company.com/security/report
- Policy: https://company.com/security/policy

Esempio Completo

# SECURITY.TXT for AcmeTech Products
Contact: https://acmetech.eu/security/report
Contact: mailto:security@acmetech.eu
Expires: 2027-06-01T00:00:00.000Z
Preferred-Languages: en, de, es
Canonical: https://acmetech.eu/.well-known/security.txt
Policy: https://acmetech.eu/security/disclosure-policy
Acknowledgments: https://acmetech.eu/security/hall-of-fame
Hiring: https://acmetech.eu/careers#security

Suggerimento: Configurare security.txt richiede 10 minuti e soddisfa un requisito chiave del CRA per il contatto pubblico per le vulnerabilità. Fatelo oggi.

Importante: Il security.txt deve includere un metodo di contatto, una lingua preferita e una data di scadenza. Deve trovarsi a /.well-known/security.txt sul proprio dominio.

Come CRA Evidence Aiuta

security.txt è un tassello del quadro complessivo di gestione delle vulnerabilità. La parte più complessa è il processo che sta dietro: la policy, gli SLA di triage, la segnalazione all'ENISA e la documentazione nel fascicolo tecnico. A questo serve CRA Evidence.

Si inizi da craevidence.com.


Questo articolo è solo a scopo informativo e non costituisce consulenza legale. Per indicazioni specifiche sulla conformità, si consulti un avvocato qualificato.

CRA Gestione delle vulnerabilità Standard di Sicurezza
Share

Il CRA si applica al tuo prodotto?

Rispondi a 6 semplici domande per scoprire se il tuo prodotto rientra nell'ambito del Cyber Resilience Act dell'UE. Ottieni il risultato in meno di 2 minuti.

Pronto a raggiungere la conformità CRA?

Inizia a gestire i tuoi SBOM e la documentazione di conformità con CRA Evidence.