Overzicht #
Dit artikel legt uit hoe u een veelgebruikte F5 BIG-IP iRule voor het invoegen van HTTP-beveiligingsheaders kunt migreren naar een andere applicatie. RELIANOID gebruikmakend van de native HTTP/S-farmfuncties.
De volgende iRule voegt verschillende HTTP-responsbeveiligingsheaders toe:
Als HTTP_RESPONSE_RELEASE aanwezig is, voeg dan de header "X-XSS-Protection" toe aan de HTTP-header met de status "1; mode=block". Als de header "Strict-Transport-Security" aanwezig is, voeg dan de header "Strict-Transport-Security" toe met de maximale leeftijd van 63072000; inclusief subdomeinen; preload. Als de header "content-security-policy" aanwezig is, voeg dan de header "content-security-policy" toe met de status "frame-ancestors 'none'". Als de header "X-Content-Type-Options" aanwezig is, voeg dan de header "X-Content-Type-Options" toe met de status "nosniff".
In RELIANOIDDeze beveiligingsinstellingen kunnen rechtstreeks via de webinterface worden geconfigureerd, zonder dat TCL-scripting nodig is.
HSTS (Strict-Transport-Security) inschakelen #
HSTS Dwingt browsers om alleen HTTPS-verbindingen te gebruiken. Voordelen zijn onder andere:
- SSL-stripping-aanvallen voorkomen
- Het afdwingen van versleutelde communicatie
- Verbetering van de transportbeveiliging aan de browserzijde
Het volgende iRule-gedeelte:
HTTP::header insert "Strict-Transport-Security" "max-age=63072000; includeSubDomains; preload"
Kan direct via de webinterface worden gemigreerd.
Navigeren naar: Farms > HTTP/S Farm > Services
Vervolgens:
- Selecteer de gewenste HTTP/S-service.
- Schakel de STS-schakelaar in.
Dit injecteert automatisch de Strict-Transport-Security header in HTTPS-reacties.
De X-XSS-Protection beveiligingsheader configureren #
Maakt XSS-filtering voor oudere browsers mogelijk. Hoewel moderne browsers meer gebruikmaken van CSP, is deze header nog steeds nuttig voor compatibiliteitsdoeleinden.
Navigeren naar: Farms > HTTP/S Farm > Globaal > Geavanceerd > HeadersKlik vervolgens. Create rule. Selecteer:
Type: Response: Add header
header: X-XSS-Protection
Waarde: 1; mode=block
De beveiligingsheader van het Content-Security-Policy configureren #
Hiermee wordt bepaald hoe content kan worden ingesloten en geladen. Voordelen:
- Voorkomt clickjacking
- Beperkt ongeautoriseerde framing
- Verbetert de beveiligingsstatus van de browser
Navigeren naar: Farms > HTTP/S Farm > Globaal > Geavanceerd > HeadersKlik vervolgens. Create rule. Selecteer:
Type: Response: Add header
header: Content-Security-Policy
Waarde: frame-ancestors 'none'
De beveiligingsheader X-Content-Type-Options configureren #
Voorkomt dat browsers MIME-gegevens onderscheppen. Voordelen:
- Voorkomt dat kwaadaardige inhoud wordt geïnterpreteerd
- Vermindert bepaalde manieren waarop scripts geïnjecteerd kunnen worden.
Navigeren naar: Farms > HTTP/S Farm > Globaal > Geavanceerd > HeadersKlik vervolgens. Create rule. Selecteer:
Type: Response: Add header
header: X-Content-Type-Options
Waarde: nosniff
Validatie #
Na het toepassen van de configuratie, valideer je de responsheaders met:
curl -I https://
Verwachte resultaten:
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload X-XSS-Protection: 1; mode=block Content-Security-Policy: frame-ancestors 'none' X-Content-Type-Options: nosniff
Problemen oplossen #
Kopteksten worden niet weergegeven #
Verifiëren:
- De regels worden toegepast op de juiste boerderij.
- HTTPS is ingeschakeld voor HSTS
- De headerregels zijn geconfigureerd als antwoord reglement
- De farmconfiguratie is toegepast/opnieuw geladen.
Dubbele headers #
Als de backend-applicatie al headers injecteert, kunnen er duplicaten verschijnen. Aanbeveling:
- Bepaal of de headers beheerd moeten worden door de backend-applicatie of door... RELIANOID boerderijconfiguratie
- Vermijd het gebruik van dezelfde kopteksten op beide plaatsen.
HSTS werkt niet #
het verzekeren:
- Clients maken verbinding via HTTPS.
- Er zijn geldige SSL-certificaten geïnstalleerd.
- Browsers testen niet via HTTP.
HSTS-headers worden genegeerd bij niet-TLS-verbindingen.
Samenvatting #
F5 iRules die worden gebruikt voor het invoegen van HTTP-beveiligingsheaders kunnen worden gemigreerd naar RELIANOID Gebruikmaken van native HTTP/S-farmfuncties zonder TCL-scripting.
Deze aanpak vereenvoudigt het beheer met behoud van gelijkwaardige beveiligingsfunctionaliteit.