From 9eac67a83afcf6f69cd86fc4a2bc56588ca7c8d3 Mon Sep 17 00:00:00 2001 From: Ruben van der Linde Date: Tue, 26 Mar 2024 22:36:40 +0100 Subject: [PATCH] Update op de security beschrijving --- assets/PentTestSlack.png | Bin 0 -> 28528 bytes docs/product/Roadmap.md | 17 ++++++++++------- docs/product/SECURITY.md | 30 ++++++++++++++++++++++++------ 3 files changed, 34 insertions(+), 13 deletions(-) create mode 100644 assets/PentTestSlack.png diff --git a/assets/PentTestSlack.png b/assets/PentTestSlack.png new file mode 100644 index 0000000000000000000000000000000000000000..2584f81f7930be6ff323f6da42f04b88a5e6fcbc GIT binary patch literal 28528 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

9c{UdGJnmv&RNogIw&08q*R{j`e2P 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 JDrVsOzW|aAXNv#; literal 0 HcmV?d00001 diff --git a/docs/product/Roadmap.md b/docs/product/Roadmap.md index 71bff537..ada171a2 100644 --- a/docs/product/Roadmap.md +++ b/docs/product/Roadmap.md @@ -2,19 +2,17 @@ Organisaties kunnen bijdragen aan deze roadmap door items aan te dragen, deze zelf op te pakken en uit te voeren, of door de uitvoering ervan te financieren. -## Raadsinformatie Systemen (Medio December) +## Raadsinformatie Systemen (Word momenteel ontwikkeld) **Inschatting: 40 uur per RIS** Medio september gaat de gebruikersgroep verkennen of het mogelijk is om ook de Raadsinformatiesystemen te ontsluiten via Open WOO. Deze ontwikkeling zal de dienstverlening naar de inwoners verbeteren door de transparantie van de gemeente te vergroten. Het draagt ook bij aan de invulling van de Wet Open Overheid door overheidsinformatie beter toegankelijk te maken. -## Robot.txt en sitemap.xml (Medio December) +## Inlezen vanuit sharepoint (Word momenteel onderzocht) -**Inschatting: 20 uur** - -Begin oktober wil KOOP graag de decentrale portalen harvesten om een centrale index op te bouwen. Dit zal de zoekbaarheid van overheidsinformatie verbeteren, wat de dienstverlening aan de inwoners ten goede komt. Het past ook binnen de kaders van de Wet Open Overheid door het vergroten van de toegankelijkheid van overheidsinformatie. +**Inschatting: 120 uur** -## Aanleveren DROP (Geen ontwikkeling gepland) +## Aanleveren DROP (Word momenteel onderzocht) **Inschatting: 120 uur** @@ -87,7 +85,11 @@ Het is mogelijk om de openwoo.app te installeren via een Helm Chart. Dit maakt h De serverless Woo-pagina kan ook geinstalleerd worden via een GitHub Action. Door de installatie te automatiseren wordt het gemakkelijker om de website te installeren en te onderhouden, wat de operationele kosten verlaagt en de betrouwbaarheid verhoogt. Dit draagt bij aan de dienstverlening door de beschikbaarheid van de website te vergroten. -## Roadmap WOO KOOP +## Inmiddels afgerond + +### Robot.txt en sitemap.xml (Medio December) + +Begin oktober wil KOOP graag de decentrale portalen harvesten om een centrale index op te bouwen. Dit zal de zoekbaarheid van overheidsinformatie verbeteren, wat de dienstverlening aan de inwoners ten goede komt. Het past ook binnen de kaders van de Wet Open Overheid door het vergroten van de toegankelijkheid van overheidsinformatie. ### Woo 1.0 @@ -96,3 +98,4 @@ Voor de eerste opzet van de Woo-index van BZK is het belangrijk dat organisaties ### Woo 2.0 BZK heeft de ambitie om aan de hand van een harvester een eigen index op te bouwen op open.overheid.nl. Deze harvester maakt gebruik van `robots.txt` en `sitemap.xml`-bestanden om de verschillende pagina's en metadata van de organisatiespecifieke index te vinden en over te nemen. Dat betekent dat ook binnen de 2.0 variant van Woo een eigen indexpagina noodzakelijk blijft. Sterker nog, de kwaliteit van de ontsluiting wordt in grote mate afhankelijk van de kwaliteit van de index. + diff --git a/docs/product/SECURITY.md b/docs/product/SECURITY.md index df188cca..b1bbd812 100644 --- a/docs/product/SECURITY.md +++ b/docs/product/SECURITY.md @@ -2,20 +2,38 @@ Wij geloven in het integreren van beveiliging in de kern van ons ontwikkelingsproces. We maken gebruik van geautomatiseerde penetratietesten en scanning als onderdeel van onze Continuous Integration en Continuous Deployment (CI/CD) pipeline. Deze aanpak stelt ons in staat om mogelijke beveiligingskwetsbaarheden vroegtijdig te identificeren en aan te pakken, tijdens de ontwikkelingsfase in plaats van later in de productiefase. -## Geautomatiseerde Penetratietesten +## Design Principes +Goede beveiliging begint bij het ontwerp, dat geld zeker voor de Woo. We hebben er dan ook bewust voor gekozen om van de Woo index en publicatie platform een apparte applicatie te maken ten opzichte van de afhandel applicatie voor Woo verzoeken en annonimeserings tool. -Geautomatiseerde penetratietesttools zijn geïntegreerd in onze CI/CD-pipeline om aanvallen op onze systemen te simuleren en beveiligingszwaktes te identificeren. Deze tools voeren een reeks tests uit om te controleren op veelvoorkomende kwetsbaarheden, waaronder die vermeld staan in de OWASP Top 10. +We hebben daardoor als design principe kunnen afspreken dat de index géén persoon gegeven mag bevatten. Ofwel alleen maar gegevens die daadwerkelijk mogen worden gepubliceerd. Hiermee geven we ultieme invulling aan het concept dataminimalisatie. -De resultaten van deze tests worden vervolgens gebruikt om onze ontwikkelings- en beveiligingsteams te informeren over mogelijke kwetsbaarheden. Dit proces stelt ons in staat om deze kwetsbaarheden aan te pakken voordat de software wordt ingezet naar productie. +Een tweede design principe betreft bronnen, vanuit bronnen willen we alleen publieke informatie ontvangen. Hierop moet de bron een harde garantie kunnen afgeven aan de hand van autorisatie en filtering. Op deze manier voorkomen we per abuis toch persoons informatie kunnen ophalen. -## Scannen +Als derde principe hanteren we dat de index bij de bevraging op een individueel object altijd de data live bij de bron moet ophalen. Dit betekend los van data bij de bron ook dat in het geval van een interventie (vernietiging van een document omdat er per abuis persoons gegevens zijn opgenomen) dit document per direct niet meer kan worden uitgeleverd aan de voorkant. -Onze CI/CD-pipeline bevat ook geautomatiseerde scannertools die onze broncode, containers en cloud-infrastructuur controleren op beveiligingsproblemen. +Als vierde zou een bron altijd IP whitelisting moeten toepassen op de bevraging vanuit de OpenWoo service, zodat een eventueel ontvreemde authorisatie sleutel niet elders kan worden gebruikt. Gezamenlijk met filtering en sleutels formt dit de kern van onze multy layerd defence strategie. + +Gezamenlijk minimaliseren we op deze manier het risco bij een eventueel lek, in het meest extreme geval zou de volledige index en alle authorisatie sleutels kunnen worden onvreemd maar zou hierbij alsnog geen data worden verloren die niet reeds tot het publieke domein behoord. + + +## Als onderdeel van de development +Onze CI/CD-pipeline bevat ook geautomatiseerde scannertools die onze broncode, containers en cloud-infrastructuur controleren op beveiligingsproblemen. Broncodescanners analyseren onze code om beveiligingszwaktes te vinden, zoals die vermeld staan in de [OWASP](https://owasp.org/) Top 10-lijst van veelvoorkomende beveiligingsrisico's. Containerscanners inspecteren onze Docker- en andere containerimages op kwetsbaarheden, verkeerde configuraties en naleving van best practices. Dit sluit aan bij onze inzet om te voldoen aan de top tien tips voor containerbeveiliging. Cloudbeveiligingsscanners zorgen ervoor dat onze cloud-infrastructuur veilig is geconfigureerd, in overeenstemming met het principe van minimale rechten en andere best practices voor cloudbeveiliging. +## Gedurende productie +Security is echter geen 'one time' ding dat je eenmalig opzet, het vraagt continu aandacht en zorg. [Conduction]() neemt hier als beheerder van de code base verantwoordenlijkheid voor door het automatisch *dagenlijks* pentesten van zowel de productie als accepatie omgeving. Hierbij worden frontend en api los getest. +De resultaten van deze tests worden vervolgens gebruikt om onze ontwikkelings- en beveiligingsteams te informeren over mogelijke kwetsbaarheden. Dit proces stelt ons in staat om deze kwetsbaarheden aan te pakken voordat de software wordt ingezet naar productie. +## Zelf testen +- Internet.nl + + + +## Scannen + + ## Naleving van de Top Tien Tips voor Containerbeveiliging Om een robuuste beveiliging te waarborgen, houden we ons aan de top tien tips voor containerbeveiliging. Hier zijn enkele van de praktijken die we volgen: @@ -61,7 +79,7 @@ Ons systeem behandelt verschillende soorten gegevens, elk met verschillende beve ## Scheiding van Landingzone, Executionzone en Data -In onze opstelling maken we gebruik van NGINX- en PHP-containers om een ​​duidelijke scheiding van verantwoordelijkheden te waarborgen tussen internet/netwerktoegang, code-uitvoering en gegevensopslag. Deze ontwerpbenadering bevordert een robuuste beveiliging en verbeterde beheerbaarheid van onze applicaties en diensten. +In onze opstelling maken we gebruik van NGINX- en PHP-containers om een duidelijke scheiding van verantwoordelijkheden te waarborgen tussen internet/netwerktoegang, code-uitvoering en gegevensopslag. Deze ontwerpbenadering bevordert een robuuste beveiliging en verbeterde beheerbaarheid van onze applicaties en diensten. * **NGINX-containers als Landing Zone:** De eerste laag van onze architectuur bestaat uit NGINX-containers die dienen als een landing zone. NGINX is populaire open-source software die wordt gebruikt voor webserver, omgekeerde proxy, caching, load balancing en mediaserving, onder andere. In onze context gebruiken we het voornamelijk als een omgekeerde proxy en load balancer. Wanneer een verzoek binnenkomt vanaf het internet, komt het eerst bij de NGINX-container terecht. De rol van deze container is het verwerken van netwerkverkeer vanaf het internet, het uitvoeren van de nodige load balancing en het veilig doorsturen van verzoeken naar de juiste toepassingscontainers. Deze opstelling beschermt onze toepassingscontainers tegen directe blootstelling aan het internet en verbetert onze beveiligingspositie. * **PHP-containers als Execution Zone:** Nadat een verzoek is doorgestuurd door de NGINX-container, komt het terecht in de juiste PHP-container voor verwerking. Deze containers dienen als onze uitvoeringszone, waar toepassingslogica wordt uitgevoerd. Elke PHP-container draait een exemplaar van onze toepassing. Door de uitvoeringsomgeving op deze manier te isoleren, kunnen we ervoor zorgen dat problemen of kwetsbaarheden binnen één container geen invloed hebben op andere. Deze encapsulatie biedt een aanzienlijk beveiligingsvoordeel en maakt het gemakkelijker om individuele componenten van onze toepassing te beheren en schalen.