Konfiguracja security.txt dla Zgodności z CRA: 10-Minutowy Przewodnik

Szybki, praktyczny przewodnik po implementacji security.txt dla twoich produktów. Zawiera szablony, opcje hostingu i częste błędy do uniknięcia.

Zespół CRA Evidence Opublikowano 6 lutego 2026 Zaktualizowano 6 kwietnia 2026
Konfiguracja security.txt dla Zgodności z CRA: 10-Minutowy Przewodnik
W tym artykule

CRA wymaga publicznie dostępnego punktu kontaktowego do zgłaszania podatności. Standardem jest RFC 9116, zwykły plik tekstowy o nazwie security.txt, hostowany pod /.well-known/security.txt. Dwa wymagane pola, kilka zalecanych i około 10 minut pracy.

Ten przewodnik omawia pola, hosting, typowe błędy i to, co trzeba uwzględnić w dokumentacji technicznej.

Podsumowanie

  • security.txt to standaryzowany plik (RFC 9116) informujący badaczy, jak zgłaszać podatności
  • Umieść go pod /.well-known/security.txt na swojej obecności w sieci
  • Minimalne wymagane pola: Contact, Expires
  • Zalecane: Dodaj również Preferred-Languages, Policy, Canonical
  • Dla produktów bez interfejsów webowych, dołącz URL w dokumentacji

Czym Jest security.txt?

security.txt to standard RFC (RFC 9116), który zapewnia czytelny maszynowo i przez człowieka sposób publikowania informacji kontaktowych dotyczących bezpieczeństwa.

CRA wymaga od producentów opublikowania kontaktu do zgłaszania podatności. security.txt to standardowy sposób na spełnienie tego wymogu. Automatyczne narzędzia skanujące i badacze bezpieczeństwa domyślnie sprawdzają jego obecność, a jego istnienie jest dla regulatorów konkretnym sygnałem, że wdrożono właściwe kanały ujawniania.

Minimalny security.txt

Oto najprostszy zgodny plik:

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

To wszystko. Dwie linie. Technicznie zgodny.

Ale zróbmy to lepiej.

Zalecany security.txt

Kompletny security.txt:

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

Wyjaśnienie Pole po Polu

Contact (Wymagane)

Jak badacze powinni się z tobą kontaktować.

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

Używaj aliasu zespołu, nie osobistego emaila. Dołącz zarówno adres email, jak i formularz webowy, jeśli go masz. Wiele linii Contact jest dozwolone, a formularz zapewnia strukturalny odbiór zgłoszeń.

Expires (Wymagane)

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

Ustaw 6-12 miesięcy w przyszłość, w formacie ISO 8601 ze strefą czasową. Dodaj przypomnienie kalendarzowe przed datą wygaśnięcia. Nieaktualny plik sygnalizuje badaczom, że nie jest utrzymywany.

Encryption (Zalecane)

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

Używaj klucza zespołu, nie indywidualnego, i przechowuj klucz prywatny w HSM, jeśli to możliwe. Dołącz odcisk klucza w komentarzach, żeby badacze mogli go zweryfikować niezależnie.

Preferred-Languages (Zalecane)

Preferred-Languages: en, de, fr

Wymieniaj tylko języki, w których twój zespół bezpieczeństwa faktycznie może odpowiadać. Sortuj według preferencji. Jeśli podasz język, którego nikt w zespole nie zna, będziesz otrzymywać zgłoszenia, których nie dasz rady obsłużyć.

Canonical (Zalecane)

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

Zapobiega podszywaniu i wyjaśnia, czy plik jest lustrzany.

Policy (Zalecane)

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

Upewnij się, że strona istnieje i ładuje się bez uwierzytelniania. Martwy link Policy podczas przeglądu bezpieczeństwa to nie jest dobre wrażenie.

Acknowledgments (Opcjonalne)

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

Badacze, którzy znajdą błędy, są często dobrymi kandydatami do twojego zespołu bezpieczeństwa. Uznanie zachęca do kolejnych zgłoszeń. Większość badaczy priorytetyzuje organizacje, które doceniają ich pracę.

Hiring (Opcjonalne)

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

Warto dołączyć, jeśli masz otwarte stanowiska w bezpieczeństwie. Badacze aktywnie szukający pracy sprawdzają te linki.

Konfiguracja Krok po Kroku

Krok 1: Utwórz Plik

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

Krok 2: Wybierz Lokalizację Hostingu

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

Krok 3: Skonfiguruj Serwer Web

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 statyczny: Umieść plik w katalogu .well-known.

Krok 4: Zweryfikuj

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

Walidator online: https://securitytxt.org/

Krok 5: Podpisz (Opcjonalne, ale Zalecane)

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

Dla Produktów Bez Interfejsów Webowych

Urządzenia Wbudowane

Opcja 1: Hostuj pod http://device-ip/.well-known/security.txt Opcja 2: Dołącz URL w dokumentacji produktu, odwołaj się do firmowego security.txt.

Oprogramowanie Desktopowe

  • Dołącz kontakt bezpieczeństwa w Pomoc > O programie
  • Dodaj do README/dokumentacji

Aplikacje Mobilne

  • Dołącz w Ustawienia > O aplikacji > Bezpieczeństwo
  • Dodaj do opisu w sklepie z aplikacjami

Odniesienie w Dokumentacji

## Security Vulnerability Reporting
- Email: security@yourcompany.com
- Web: https://yourcompany.com/security/report
- Policy: https://yourcompany.com/security/policy
Our security.txt file: https://yourcompany.com/.well-known/security.txt

Częste Błędy

Wygasły Plik

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

Naprawa: Ustaw datę w przyszłości. Dodaj przypomnienie kalendarzowe.

Zła Lokalizacja

/security.txt           # Wrong
/.well-known/security.txt  # Correct

Nieprawidłowy Format

Naprawa: Używaj dat ISO 8601, URI mailto: lub https:.

Martwe Linki

Naprawa: Zweryfikuj, że wszystkie linki działają. Sprawdzaj po wdrożeniach.

Osobisty Email

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

Naprawa: Używaj aliasu zespołu.

Brak HTTPS

Naprawa: Zawsze używaj HTTPS dla URL związanych z bezpieczeństwem.

Lista Kontrolna Walidacji

SECURITY.TXT VALIDATION CHECKLIST

REQUIRED FIELDS:
[ ] Contact field present (mailto: or https:)
[ ] Expires field present (future date, ISO 8601)

RECOMMENDED FIELDS:
[ ] Preferred-Languages included
[ ] Canonical URL matches actual location
[ ] Policy link works and points to CVD policy

HOSTING:
[ ] File at /.well-known/security.txt
[ ] HTTPS accessible
[ ] Content-Type: text/plain

VERIFICATION:
[ ] curl test successful
[ ] Online validator passes
[ ] Links all resolve (no 404s)

MAINTENANCE:
[ ] Calendar reminder set for before Expires date
[ ] Update process documented

Harmonogram Utrzymania

Zadanie Częstotliwość
Sprawdź datę wygaśnięcia Miesięcznie
Zweryfikuj, że linki działają Miesięcznie
Aktualizuj klucz PGP (jeśli wygasa) W razie potrzeby
Przejrzyj adresy kontaktowe Kwartalnie
Pełna kontrola walidacji Przed wygaśnięciem

Co Umieścić w Dokumentacji Technicznej

CRA wymaga od producentów prowadzenia dokumentacji technicznej (Annex VII) opisującej proces obsługi podatności. Plik security.txt i polityka CVD, do której odsyła, są bezpośrednimi elementami tej dokumentacji.

Dokumentacja techniczna powinna zawierać:

  • URL pliku security.txt i jakie metody kontaktu udostępnia
  • URL polityki ujawniania, do której odsyła
  • SLA dotyczące odpowiedzi, do których zobowiązałeś się w tej polityce

Regulatorzy przeglądający dokumentację techniczną szukają dowodów na to, że działa sprawny proces przyjmowania zgłoszeń o podatnościach. Aktywny, niewyekspirowały security.txt z działającym linkiem Policy to konkretny sygnał. Wygasły plik lub martwe linki działają na twoją niekorzyść.

Vulnerability Reporting Contact Points:
- security.txt: https://company.com/.well-known/security.txt
- Email: security@company.com
- Web Form: https://company.com/security/report
- Policy: https://company.com/security/policy

Kompletny Przykład

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

Wskazówka: Konfiguracja security.txt zajmuje 10 minut i spełnia kluczowy wymóg CRA dotyczący opublikowanego kontaktu do zgłaszania podatności. Zrób to dziś.

Ważne: Twój security.txt musi zawierać metodę kontaktu, preferowany język i datę wygaśnięcia. Powinien znajdować się pod /.well-known/security.txt w twojej domenie.

Jak Pomaga CRA Evidence

security.txt to jeden element szerszego obrazu obsługi podatności. Trudniejsza część to pełny proces stojący za tym plikiem: polityka, SLA dla triażu, zgłaszanie do ENISA i dokumentowanie wszystkiego w dokumentacji technicznej. Do tego służy CRA Evidence.

Zacznij na craevidence.com.


Ten artykuł służy wyłącznie celom informacyjnym i nie stanowi porady prawnej. W celu uzyskania konkretnych wskazówek dotyczących zgodności, skonsultuj się z wykwalifikowanym prawnikiem.

CRA Zarządzanie podatnościami Standardy Bezpieczeństwa
Share

Czy CRA dotyczy Twojego produktu?

Odpowiedz na 6 prostych pytań, aby dowiedzieć się, czy Twój produkt podlega pod Cyber Resilience Act UE. Uzyskaj wynik w mniej niż 2 minuty.

Gotowy na osiągnięcie zgodności z CRA?

Zacznij zarządzać swoimi SBOM-ami i dokumentacją zgodności z CRA Evidence.