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.
W tym artykule
- Podsumowanie
- Czym Jest security.txt?
- Minimalny security.txt
- Zalecany security.txt
- Wyjaśnienie Pole po Polu
- Konfiguracja Krok po Kroku
- Dla Produktów Bez Interfejsów Webowych
- Security Vulnerability Reporting
- Częste Błędy
- Lista Kontrolna Walidacji
- Harmonogram Utrzymania
- Co Umieścić w Dokumentacji Technicznej
- Kompletny Przykład
- Jak Pomaga CRA Evidence
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.txtna 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.
Powiązane artykuły
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.