Beschrijving
Binnen koppeltaal worden standaarden en technieken toegepast. Deze specifieke standaarden en technieken worden per topic omschreven. Dit topic is een uitzondering hierop, omdat dit topic de beveiligingsoverwegingen van koppeltaal bespreekt, en niet een of meerdere specifieke standaarden die worden toegepast rond een onderwerp. We kiezen ervoor dit als topic te bespreken om zo eenoverzicht van de aspecten te verzamelen.
...
- vertrouw geen input parameters en/of (binaire) objecten
- valideer lengte / formaat, enums en types - strong typing (number, boolean, date, time, enums, etc)
- valideer strings met reguliere expressies. Bv oid, id, uri, etc voldoen aan bepaalde formaten en worden vaak als string doorgegeven
- valideer inkomende content-types (application/xml of application/json). Content-Type header en content MOETEN hetzelfde zijn
- valideer response types. Kopieer NIET de Accept header naar de Content-Type header van de response
Output encoding
- Maak gebruik van security headers, zoals X-Content-Type-Options: nosniff en X-Frame-Options: deny
Manage de endpointsManagede endpoints
- CORS (Cross Origin Resource Sharing) - Beperkt het opvragen van resources in een ander domein, vanwaar uit de eerste resource vandaan komt
Security Headers
- Er zijn een aantal beveiliging gerelateerde headers die kunnen worden geretourneerd in de HTTP-responses om browsers te instrueren om op specifieke manieren te handelen, specifiek als de browser gebruik maakt van RESTful APIs. De volgende kopteksten headers moeten in alle (RESTful) API-reacties worden opgenomendeze APIs gebruikt worden. Zie ook REST Security - OWASP Cheat Sheet Series
Warning |
---|
Het is uitdrukkelijk niet de bedoeling dat de FHIR Service van Koppeltaal 2.0 direct vanuit de browser benaderd wordt. |
Header | Beschrijving |
---|---|
Cache-Control: no-store | Voorkom dat gevoelige informatie in de (browser) cache wordt opgeslagen |
Content-Security-Policy: frame-ancestors 'none' | Bescherming tegen drag-and-drop style clickjacking aanvallen |
Content-Type | Specificeer de content type van de response (antwoord). Dit MOET gevuld worden |
Strict-Transport-Security | Om een verbinding via HTTPS te vereisen en te beschermen tegen vervalste certificaten |
X-Content-Type-Options: nosniff | Om MIME-sniffing via de browser te voorkomen |
X-Frame-Options: DENY | Bescherming tegen clickjacking aanvallen met drag-and-drop style |
Eisen
Voorbeelden
[code]
Links naar gerelateerde onderwerpen
...
Zie ook: REST Security - OWASP Cheat Sheet Series
Oude tekst (kan op termijn weg)
Beschrijving
Elke applicatie MOET beveiliging toepassen. Dus applicatie MOET zich authenticeren en MOET autorisatie krijgen bij het opvragen of afgeven van gegevens bij een dienst. Geldt ook voor licht gewicht applicaties (eHealth modules).
HTTPS
- Beveiligde REST diensten/services mogen alleen hun diensten via een HTTPS-enpoint aanbieden.
- Dit beschermt de transport van authenticatie gegevens, zoals de JSON Web Tokens.
- Het stelt cliënten (dienst afnemers) ook in staat om de dienst te authenticeren en de integriteit van het bericht te waarborgen.
Access Control (toegangscontrole)
- Om de koppelingen tussen de diensten te minimaliseren, moet de besluitvorming over de toegang tot de diensten, lokaal worden genomen via (voor gedefinieerde) REST-endpoints
- Gebruikers authenticatie moet worden gecentraliseerd bij een Identiteit Provider (IdP), die authenticatie tokens uitgeeft.
- Systeem authenticatie moet bij een Autorisatie Server worden gecentraliseerd.
- URL validatie
JWT
...
Autoriseer HTTP interacties op de verschillende resources d.m.v. een autorisatie lijst.
Input validatie
- vertrouw geen input parameters en/of (binaire) objecten
- valideer lengte / formaat, enums en types - strong typing (number, boolean, date, time, enums, etc)
- valideer strings met reguliere expressies. Bv oid, id, uri, etc voldoen aan bepaalde formaten en worden vaak als string doorgegeven
- valideer inkomende content-types (application/xml of application/json). Content-Type header en content MOETEN hetzelfde zijn
- valideer response types. Kopieer NIET de Accept header naar de Content-Type header van de response
- ..
Output encoding
- Maak gebruik van security headers, zoals X-Content-Type-Options: nosniff en X-Frame-Options: deny
Manage de endpoints
CORS (Cross Origin Resource Sharing) - Beperkt het opvragen van resources in een ander domein, vanwaar uit de eerste resource vandaan komt
Security Headers
- Er zijn een aantal beveiliging gerelateerde headers die kunnen worden geretourneerd in de HTTP-responses om browsers te instrueren om op specifieke manieren te handelen. De volgende kopteksten moeten in alle (RESTful) API-reacties worden opgenomen.
...
Rationale
Behandel de (gebruikte) infrastructuur als onbekend en (niet) veilig.
Zie: REST Security - OWASP Cheat Sheet Series
Implicaties
Voorbeelden
Toepassingsgebied
Onderbouwen
Eisen
...