UWV Security SSD Instructies BESTEMD VOOR : Patrick van Grevenbroek AUTEUR(S) : Gabriele Biondo / T. Uding (vertaling) VERSIE : 1.0 DATUM : 20-03-2014
HISTORIE Datum Auteur(s) Omschrijving 20/03/2014 Gabriele Biondo / T. Uding (vertaling) SSD Instructies ter ondersteuning 1 / 5
SSD # Omschrijving Instructies SSD-1 Systeem verharden en updaten Periodiek bepalen welke gebruikers aanwezig zijn op systemen; Verwijder ongebruikte gebruikers; Periodiek controleren welke diensten op systemen draaien; Verwijder ongebruikte diensten; Periodiek bepalen welke programma's op systemen zijn geïnstalleerd; Verwijder ongebruikte programma's; Trek onnodige bevoegdheden in; Test patches; Patch na succesvol testen. SSD-2 Veilige cookies Enkele goede cookie ontleders (voor Firefox): SSD-3 Veilige FAT componenten (ActiveX, Flash, Java,...) https://addons.mozilla.org/it/firefox/addon/httpfox/; https://addons.mozilla.org/it/firefox/addon/view-cookies/; Vergeet niet dat een veilige cookie https aan heeft staan; Wat u ook zou willen zijn cookies met HttpOnly (geen AJAX). SSD-4 Data encryptie Wanneer gevoelige data wordt verzonden, gebruik HTTP POST methodes; Wanneer gevoelige data wordt verzonden, gebruik HTTPS; Vertrouw geen gesloten bron componenten van derde partijen, tenzij u precies weet wat de componenten doen; SSD-5 Juiste autorisatie voor externe gebruikers Overdrijf niet! Het kan zijn dat sterke encryptie niet nodig is: soms vertraagt het alleen de communicatie en het eindpunt is mogelijk niet congruent; Normale certificaten (X.509) gebaseerde encryptie is genoeg in de meeste gevallen. Controleer of er sterke (multifactor) systeem authenticatie aanwezig is. Dit vereist twee of meer uit te voeren controles; Controleer of de verificatiegegevens voldoen aan het wachtwoordbeleid. SSD-6 Juiste autorisatie voor interne gebruikers Controleer of de 'haken' van het UWV interne Identity en Access Management oplossing (ABS) aanwezig zijn; Controleer of de verificatiegegevens voldoen aan het wachtwoordbeleid. SSD-7 Functiescheiding Geen enkele gebruiker mag controle hebben over een proces van begin tot eind; Implementeer scheiding van taken waar mogelijk; Implementeer 'kennis vereist' en 'minste bevoegdheid' waar mogelijk. SSD-8 Minste bevoegdheid Implementeer scheiding van taken waar mogelijk; 2 / 5
SSD-9 Mislukte inlogpogingen SSD-10 Gelijktijdige sessiecontrole SSD-11 Systeemgebruik notificatie SSD-12 Sessieslot SSD-13 Verantwoording SSD-14 Geauthenticeerde sessies SSD-15 Scheiding van gegevens, presentatie en toepassingslagen SSD-16 Systeempositionering SSD-17 Management interfaces Implementeer 'kennis vereist' en 'minste bevoegdheid' waar mogelijk; Voor de implementatie van 'kennis vereist' en de 'minste bevoegdheid', moet u begrijpen wat een gebruiker precies moet weten om zijn / haar dagelijkse taken uit te kunnen voeren en wat de minimale bevoegdheden zijn om zijn / haar taak uit te voeren. Controleer of Captcha's zijn geïmplementeerd; Controleer of mislukte inlogpogingen worden gelogd; Controleer of er een vertraging na twee mislukte logins, voor de derde, wordt opgelegd. Laat niet meer dan een sessie per gebruiker toe voor elke toepassing, zelfs vanaf verschillende computers. Wanneer u inlogt op een systeem, merk dan op dat de standaard 'banner' is vervangen door iets 'minder spraakzaam' vanuit een technisch perspectief, maar wel aangeeft dat het systeem eigendom is van het UWV, dat alle activiteiten worden gelogd en dat elke overtreding zal worden vervolgd; Niet een actie-item. Toepassingssessies moeten in het ergste geval geblokkeerd worden na 15 minuten (5 minuten is gewenst). Zorg ervoor dat elke actie die een toepassing kan verrichten, een vermelding in een logboek produceert; Zorg ervoor dat er niet kan worden geknoeid met logboeken; Zorg ervoor dat elke gebruiker uniek kan worden geïdentificeerd in logboeken. Implementeer rangschikken van sessies; Controleer of de sessie serienummers echt willekeurig zijn; Controleer of de sessie serienummers veranderen wanneer een login / logout plaats vindt. Architectuur moet meerlaags zijn, het scheiden van presentatie (bijv. een webserver), van bedrijfslogica en van data (database); De webserver hoort thuis in de DMZ; Database, wanneer aanwezig, hoort NIET thuis in de DMZ, tenzij speciale zaken een dergelijke keuze rechtvaardigen; U kunt dit enkel controleren op basis van het HLD (High Level Design). Niet een actie-item. Geeft aan welke systemen in de DMZ geplaatst moet worden. Controleer of de webapplicatie een management interface heeft; Controleer of de logboeken management gerelateerde items bevatten; Houdt er rekening mee dat de gegevensbewaarder ook rechtstreeks toegang heeft tot de databases - dus misschien wilt u ook altijd de logs van de database controleren. 3 / 5
SSD-18 HTTP normalisering SSD-19 Invoer normalisatie SSD-20 Bescherming tegen ASCII injectie (uitvoer validatie) SSD-21 Geparametriseerde queries SSD-22 Invoer validatie SSD-23 Bestandsinvoeging SSD-24 HTTP header validatie SSD-25 HTTP headers informatielek De webapplicatie moet het volgende valideren: HTTP headers; Cookies; XML, in alle vormen; Formulierparameters. Controleer of er 'witte lijsten' zijn die alleen onschadelijke tekens accepteren (zie de spiekbrief van Invoer Normalisatie voor meer info); Spiekbrief: https://www.owasp.org/index.php/data_validation. Het meest complete spiekbriefje met betrekking tot XSS: https://www.owasp.org/index.php/xss_filter_evasion_c heat_sheet; Zorg ervoor dat de gebruiker geen opdrachten kan injecteren in: URL's; Formuliervelden. Zorg ervoor dat opgeslagen procedures worden gebruikt waar mogelijk; Zorg ervoor dat de gebruiker geen SQL-instructies kan injecteren in: URL's; Formuliervelden. Een goede SQL injectie preventie spiekbriefje is: https://www.owasp.org/index.php/sql_injection_preventi on_cheat_sheet; Een goede uitgebreide site is: http://www.sqlinjectionwiki.com/categories/1/mssql-sqlinjection-cheat-sheet/. Spiekbriefje: https://www.owasp.org/index.php/data_validation; Ga na of de applicatie de invoer valideert aan de hand van witte lijsten (bij voorkeur) in plaats van zwarte lijsten (verouderd); Indien de applicatie niet valideert op alle input, geef dan een ernstige waarschuwing af. U zult de code moeten controleren om te zien of de applicatie het invoegen van externe bestanden toelaat; Wellicht wilt u op voorhand deze spiekbrief doornemen om de inhoud van hetgeen besproken in onze lessen weer vers in het geheugen te hebben: https://www.owasp.org/index.php/php_security_cheat_ Sheet. Controleer de informatie die de webserver meestuurt in de HTTP-headers zorgvuldig; Controleer vooral dat de webserver de TRACE en OPTIONS methoden niet accepteert; De PUT methode mag niet zijn ingeschakeld, tenzij dit noodzakelijk is. De server versie en patch niveau mogen niet worden opgenomen in de normale HTTP-header. 4 / 5
SSD-26 HTTP methodes SSD-27 Foutafhandeling Controleer de informatie die de webserver meestuurt in de HTTP-headers zorgvuldig; Controleer vooral dat de webserver de TRACE en OPTIONS methoden niet accepteert; De PUT methode mag niet zijn ingeschakeld, tenzij dit noodzakelijk is. Beheer fouten altijd op een gracieuze manier; Vooral nooit toestaan dat fouten de systeeminformatie prijsgeven; Een test die u altijd moet uitvoeren is het zoeken naar een niet-bestaande pagina om vervolgens te bekijken of sommige web-server specifieke fouten worden weergegeven. SSD-28 Aantekeningen Verwijder altijd aantekeningen uit productiecode / controleer of er geen aantekeningen aanwezig zijn in de productiecode. SSD-29 Padtraverse Zeer oude aanval, maar gebeurt soms nog. Spiekbriefje vindt u hier: https://www.owasp.org/index.php/path_traversal; Een goed middel om mee te testen: http://dotdotpwn.sectester.net/. SSD-30 Veiligheid monitoring Niet een actie-item. SSD-31 Systeemcertificering Niet een actie-item. 5 / 5