-
Notifications
You must be signed in to change notification settings - Fork 24
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
toevoegen maatregelen veiligheid (#461)
Co-authored-by: Nout van Deijck <168716911+noutvandeijck@users.noreply.github.com> Co-authored-by: BdV <155545133+BartdeVisser@users.noreply.github.com>
- Loading branch information
1 parent
fea1fad
commit e07ae8d
Showing
8 changed files
with
506 additions
and
0 deletions.
There are no files selected for viewing
58 changes: 58 additions & 0 deletions
58
...aan-wetten-en-regels/maatregelen/2-owp-36-voorkom-kwetsbaarheden-supplychain.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
--- | ||
title: Voorkom kwetsbaarheden die geïntroduceerd worden in de supply-chain van het algoritme. | ||
id: urn:nl:ak:mtr:owp-36 | ||
toelichting: Het in gebruik nemen van algoritmes die door anderen zijn ontwikkeld brengt risico’s met zich mee waar je je tegen moet beschermen. Deze risico’s moeten adequaat afgedekt worden door afhankelijkheden te analyseren en afspraken te maken met leveranciers en controles uit te voeren. | ||
vereiste: | ||
- aia-10-nauwkeurigheid-robuustheid-cyberbeveiliging | ||
- aia-22-gebruiksverantwoordelijken-monitoren-werking | ||
- aia-32-ai-modellen-algemene-doeleinden-systeemrisico-cyberbeveiliging | ||
- bio-01-beveiliging-informatie-en-informatiesystemen | ||
- avg-12-beveiliging-van-verwerking | ||
levenscyclus: | ||
- ontwerp | ||
onderwerp: | ||
- publieke-inkoop | ||
- data | ||
- technische-robuustheid-en-veiligheid | ||
rollen: | ||
- ontwikkelaar | ||
- beleid-en-advies | ||
- jurist | ||
hide: | ||
- navigation | ||
--- | ||
|
||
<!-- tags --> | ||
|
||
## Maatregel | ||
Het in gebruik nemen van algoritmes die door anderen zijn ontwikkeld brengt risico’s met zich mee waar je je tegen moet beschermen. | ||
Deze risico’s moeten adequaat afgedekt worden door afhankelijkheden te analyseren en afspraken te maken met leveranciers en controles uit te voeren. | ||
|
||
## Toelichting | ||
Veel algoritmes zullen niet zelf ontwikkeld worden, maar bijvoorbeeld compleet [ingekocht](../../onderwerpen/publieke-inkoop.md) worden of op een externe server getraind worden. | ||
Redenen om dit te doen zijn het reeds beschikbaar zijn van een voorgetraind algoritme of bijvoorbeeld een gebrek aan technische kennis, een gebrek aan voldoende trainingsdata en een gebrek aan rekenkracht binnen de eigen organisatie. | ||
|
||
Echter is het een stuk lastiger om deze modellen te beschermen tegen aanvallen zoals [backdoors] omdat er geen (directe) controle is op het correct uitvoeren van een trainingsproces. | ||
|
||
Een eerste stap is om in kaart te brengen welke afhankelijkheden er zijn en te onderzoeken of deze beheersbaar zijn. | ||
Er moeten er duidelijke afspraken gemaakt worden met leveranciers, bijvoorbeeld in de vorm van een [Service Level Agreement (SLA)](2-owp-26-maak-vereisten-onderdeel-van-service-level-agreement.md). | ||
Op deze manier kan bijvoorbeeld afgesproken wie er verantwoordelijk is voor bijvoorbeeld het correct trainen en functioneren van het algoritme en hoe incidenten afgehandeld moeten worden. | ||
|
||
Tot slot kunnen extra maatregelen genomen worden om te verifiëren dat het model inderdaad functioneert zoals afgesproken. Zo kunnen er formele methodes gebruikt worden om het algoritme te verifiëren, en kan het gedrag van het algoritme getest worden tegen bekende, foutieve invoerwaarden. | ||
|
||
|
||
## Bijbehorende vereiste(n) { data-search-exclude } | ||
??? expander "Bekijk alle vereisten" | ||
<!-- list_vereisten_on_maatregelen_page --> | ||
|
||
## Risico | ||
Als onvoldoende duidelijk is hoe een algoritme werkt en tot stand is gekomen kan deze onverwachts gedrag vertonen tijdens het gebruik. | ||
|
||
## Bronnen | ||
- [TNO, Ministerie van Justitie en Veiligheid, Verkenning van het raakvlak van cybersecurity en AI](https://www.rijksoverheid.nl/onderwerpen/terrorismebestrijding/documenten/rapporten/2024/10/28/tk-bijlage-4-tno-2024-r10768-verkenning-van-het-raakvlak-van-cybersecurity-en-ai) | ||
- [AIVD, AI-systemen: ontwikkel ze veilig](https://www.aivd.nl/documenten/publicaties/2023/02/15/ai-systemen-ontwikkel-ze-veilig#:~:text=Steeds%20meer%20computersystemen%20maken%20gebruik,organisaties%20zich%20hiertegen%20kunnen%20verdedigen ) | ||
|
||
## Voorbeeld | ||
|
||
Heb jij een goed voorbeeld? Laat het ons weten! | ||
|
59 changes: 59 additions & 0 deletions
59
docs/voldoen-aan-wetten-en-regels/maatregelen/3-dat-11-datamanipulatie.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
--- | ||
title: Controleer de data op manipulatie en ongewenste afhankelijkheden | ||
id: urn:nl:ak:mtr:dat-11 | ||
toelichting: De dataset die gebruikt wordt om een model te (her)trainen moet periodiek gecontroleerd worden op manipulatie (data poisoning). Voorkom ongewenste afhankelijkheden. | ||
levenscyclus: | ||
- dataverkenning-en-datapreparatie | ||
- monitoring-en-beheer | ||
vereiste: | ||
- aia-10-nauwkeurigheid-robuustheid-cyberbeveiliging | ||
- aia-22-gebruiksverantwoordelijken-monitoren-werking | ||
- aia-32-ai-modellen-algemene-doeleinden-systeemrisico-cyberbeveiliging | ||
- bio-01-beveiliging-informatie-en-informatiesystemen | ||
- avg-12-beveiliging-van-verwerking | ||
onderwerp: | ||
- data | ||
- technische-robuustheid-en-veiligheid | ||
rollen: | ||
- ontwikkelaar | ||
- beleid-en-advies | ||
hide: | ||
- navigation | ||
- toc | ||
--- | ||
|
||
<!-- Let op! onderstaande regel met 'tags' niet weghalen! Deze maakt automatisch de knopjes op basis van de metadata --> | ||
<!-- tags --> | ||
|
||
## Maatregel | ||
De dataset die gebruikt wordt om een model te (her)trainen moet periodiek gecontroleerd worden op manipulatie (data poisoning). Voorkom ongewenste afhankelijkheden. | ||
|
||
## Toelichting | ||
Manipulatie van data wordt een “data poisoning” aanval genoemd [^1] [^2] [^3]. Een kwaadwillende kan op verschillende manieren te werk gaan: | ||
|
||
- Bewust verkeerde informatie aan de dataset toevoegen. Dit is bijvoorbeeld mogelijk door als aanvaller zelf een foutieve dataset beschikbaar te stellen. Controleer daarom goed of een afgenomen dataset de kenmerken heeft die je verwacht. Daarnaast kun je ook nog verifiëren of bijvoorbeeld het proces waarmee de dataset vergaard is op de juiste manier is uitgevoerd. Tot slot is het verstandig om te voorkomen dat de dataset afhankelijk is van een enkele bron. | ||
- Een aanvaller kan een bestaande dataset aanpassen, door bijvoorbeeld labels om te draaien. In dit geval moet een aanvaller toegang krijgen tot de locatie van de dataset. Bescherming hiertegen begint met algemene beveiligingsmaatregelen, bijvoorbeeld zoals beschreven in de [BIO](../hulpmiddelen/BIO.md). Daarnaast moet er ook gekeken worden naar het voorkomen van een insider aanval. Dit kan door selectief te zijn in het verlenen van toegang tot de locatie van de data en bijvoorbeeld het toepassen van een vier-ogen principe. | ||
- In lijn met het aanpassen van de dataset kan een aanvaller ook een deel van de dataset verwijderen. Dit is naar verwachting makkelijker te realiseren dan het selectief aanpassen van de data. Door bijvoorbeeld alle data over een bepaalde groep personen uit de dataset te verwijderen functioneert het model minder goed voor die groep. Controleer daarom of de dataset waarmee uiteindelijk getraind wordt precies hetzelfde is als de origineel bedoelde data. Dit kan bijvoorbeeld door middel van een handtekening die geverifieerd kan worden. | ||
|
||
Op deze manieren kan een aanvaller een model slecht laten functioneren, of alleen fouten laten maken op specifiek gekozen invoerwaarden. Een aanvaller kan de trainingsdata zo beïnvloeden dat nummerborden met een stip altijd foutief gelezen worden, waardoor criminelen kentekencontroles kunnen ontwijken. In dit geval wordt ook wel gesproken over een [“backdoor” aanval](4-owk-09-adversarial-aanvallen.md#backdoor). | ||
|
||
### Adversarial traning | ||
Daarnaast kan het principe van [adversarial training](https://arxiv.org/abs/1611.01236) worden toegepast door zelf bewust foutieve invoerwaarden aan de trainingsdata toe te voegen. | ||
Door een algoritme hierop te laten trainen kan deze beter bestand gemaakt worden tegen aanvallen tijdens het gebruik. | ||
|
||
## Bijbehorende vereiste(n) { data-search-exclude } | ||
??? expander "Bekijk alle vereisten" | ||
<!-- list_vereisten_on_maatregelen_page --> | ||
|
||
## Risico | ||
Een aanvaller kan proberen om de trainingsdataset te manipuleren om het uiteindelijke model doelbewust fouten te laten maken. Dit kan leiden tot verkeerde antwoorden, vooroordelen of zelfs kwetsbaarheden in het model. | ||
|
||
## Bronnen | ||
- [Crowdstrike, Data Poisoning: The Exploitation of Generative AI](https://www.crowdstrike.com/en-us/cybersecurity-101/cyberattacks/data-poisoning/) | ||
- [TNO, Ministerie van Justitie en Veiligheid, Verkenning van het raakvlak van cybersecurity en AI](https://www.rijksoverheid.nl/onderwerpen/terrorismebestrijding/documenten/rapporten/2024/10/28/tk-bijlage-4-tno-2024-r10768-verkenning-van-het-raakvlak-van-cybersecurity-en-ai) | ||
- [AIVD, AI-systemen: ontwikkel ze veilig](https://www.aivd.nl/documenten/publicaties/2023/02/15/ai-systemen-ontwikkel-ze-veilig#:~:text=Steeds%20meer%20computersystemen%20maken%20gebruik,organisaties%20zich%20hiertegen%20kunnen%20verdedigen ) | ||
- [Kurakin, et al., Adversarial Machine Learning at Scale](https://arxiv.org/abs/1611.01236) | ||
|
||
[^1]: [Crowdstrike, Data Poisoning: The Exploitation of Generative AI](https://www.crowdstrike.com/en-us/cybersecurity-101/cyberattacks/data-poisoning/) | ||
[^2]: [Ministerie van Justitie en Veiligheid, Verkenning van het raakvlak van cybersecurity en AI](https://www.rijksoverheid.nl/onderwerpen/terrorismebestrijding/documenten/rapporten/2024/10/28/tk-bijlage-4-tno-2024-r10768-verkenning-van-het-raakvlak-van-cybersecurity-en-ai) | ||
[^3]: [AIVD, AI-systemen: ontwikkel ze veilig](https://www.aivd.nl/documenten/publicaties/2023/02/15/ai-systemen-ontwikkel-ze-veilig#:~:text=Steeds%20meer%20computersystemen%20maken%20gebruik,organisaties%20zich%20hiertegen%20kunnen%20verdedigen ) |
56 changes: 56 additions & 0 deletions
56
docs/voldoen-aan-wetten-en-regels/maatregelen/3-dat-12-controleren-inputdata.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
--- | ||
title: Controleer de input van gebruikers op misleiding | ||
id: urn:nl:ak:mtr:dat-11 | ||
toelichting: Controleer de inputdata van gebruikers op misleiding. | ||
levenscyclus: | ||
- dataverkenning-en-datapreparatie | ||
- monitoring-en-beheer | ||
vereiste: | ||
- aia-10-nauwkeurigheid-robuustheid-cyberbeveiliging | ||
- aia-22-gebruiksverantwoordelijken-monitoren-werking | ||
- aia-32-ai-modellen-algemene-doeleinden-systeemrisico-cyberbeveiliging | ||
- bio-01-beveiliging-informatie-en-informatiesystemen | ||
- avg-12-beveiliging-van-verwerking | ||
onderwerp: | ||
- data | ||
- technische-robuustheid-en-veiligheid | ||
rollen: | ||
- ontwikkelaar | ||
hide: | ||
- navigation | ||
- toc | ||
--- | ||
|
||
<!-- Let op! onderstaande regel met 'tags' niet weghalen! Deze maakt automatisch de knopjes op basis van de metadata --> | ||
<!-- tags --> | ||
|
||
## Maatregel | ||
Controleer de inputdata van gebruikers op misleiding. | ||
|
||
## Toelichting | ||
Een algemeen belangrijke stap in cyberveiligheid is het valideren of de inputdata voldoet aan de verwachting. | ||
Zo moet gecontroleerd worden of de [input valide, compleet en consistent](3-dat-01-datakwaliteit.md) is. | ||
Bijvoorbeeld door te verifiëren of een leeftijd niet negatief is en of er geen tegenstrijdige informatie gegeven wordt. | ||
Dit wordt typisch “*input sanitization*” genoemd. | ||
Veel programmeertalen en software bibliotheken bieden standaard oplossingen voor input sanitization. | ||
|
||
In de context van algoritmes is het raadzaam om ook nog specifieker te monitoren op wat voor inputs er gegeven worden aan bijvoorbeeld een AI-systeem. | ||
Zo kan het herhaaldelijk gebruiken van dezelfde input waarden met minimale aanpassingen wijzen op een poging tot een model engineering of een model inversion aanval. | ||
|
||
### Generatieve AI | ||
In het specifieke geval van generatieve AI moet er rekening gehouden worden met [*prompt injection attacks*](https://www.ibm.com/topics/prompt-injection). | ||
Dit zijn aanvallen waarbij aanvallers een kwaadaardige opdracht dusdanig verhullen dat standaard checks het niet doorhebben en het model bijvoorbeeld gemanipuleerd wordt om desinformatie te verspreiden, gevoelige data te lekken of zelfs kwaadaardige software uit te voeren. | ||
Op dit moment is nog weinig bekend over hoe dit over het algemeen effectief gemodereerd kan worden. | ||
Echter kunnen in bepaalde situaties bepaalde opdrachten uitgesloten worden. Een ontwikkelaar zal dus moeten onderzoeken om wat voor opdrachten het gaat. | ||
Zo hoeft een AI-systeem dat een klantenservice ondersteunt waarschijnlijk nooit een stuk code uit te voeren. | ||
|
||
## Bijbehorende vereiste(n) { data-search-exclude } | ||
??? expander "Bekijk alle vereisten" | ||
<!-- list_vereisten_on_maatregelen_page --> | ||
|
||
## Risico | ||
Als inputdata gemanipuleerd wordt dan kan dit leiden tot verkeerd gebruik van het algoritme. Een aanvaller kan bijvoorbeeld doelbewust een afwijkende input kiezen om ervoor te zorgen dat het algoritme op een andere manier gebruikt kan worden. | ||
Daarnaast kunnen onbewuste fouten ertoe leiden dat het model niet meer goed functioneert. | ||
|
||
## Bronnen | ||
- [IBM, What is a prompt injection attack?](https://www.ibm.com/topics/prompt-injection) |
71 changes: 71 additions & 0 deletions
71
docs/voldoen-aan-wetten-en-regels/maatregelen/4-owk-09-adversarial-aanvallen.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
--- | ||
title: Ontwerp en train het algoritme om bestand te zijn tegen (cyber)aanvallen | ||
id: urn:nl:ak:mtr:owk-09 | ||
toelichting: Bescherm het algoritme zoveel mogelijk tegen kwetsbaarheden van adversarial AI-aanvallen. | ||
levenscyclus: | ||
- ontwikkelen | ||
onderwerp: | ||
- technische-robuustheid-en-veiligheid | ||
rollen: | ||
- beleid-en-advies | ||
- ontwikkelaar | ||
vereiste: | ||
- aia-10-nauwkeurigheid-robuustheid-cyberbeveiliging | ||
- aia-22-gebruiksverantwoordelijken-monitoren-werking | ||
- aia-32-ai-modellen-algemene-doeleinden-systeemrisico-cyberbeveiliging | ||
- bio-01-beveiliging-informatie-en-informatiesystemen | ||
- avg-12-beveiliging-van-verwerking | ||
hide: | ||
- navigation | ||
- toc | ||
--- | ||
|
||
<!-- Let op! onderstaande regel met 'tags' niet weghalen! Deze maakt automatisch de knopjes op basis van de metadata --> | ||
<!-- tags --> | ||
|
||
## Maatregel | ||
Ontwerp en train het algoritme om bestand te zijn tegen adversarial aanvallen. | ||
|
||
## Toelichting | ||
De impact van een adversarial AI-aanval hangt af van de [mate van autonomie](../ai-verordening.md#definitie-van-een-ai-systeem) waarmee een algoritme wordt ingezet. | ||
Een algemene impact-beperkende maatregel is daarom om menselijke gebruikers duidelijke instructies mee te geven om de uitkomsten van de algoritmes te controleren. | ||
|
||
Voor de verschillende typen adversarial AI-aanvallen zijn specifieke maatregelen mogelijk: | ||
|
||
### Poisoning aanval | ||
Bij een poisoning aanval wordt het AI-systeem vergiftigd doordat een aanvaller aanpassingen aan de trainingsdata doet, waardoor het AI-systeem fouten gaat maken. | ||
Bijvoorbeeld een spamfilter die getraind is op gemanipuleerde data, en zo toch nog bepaalde spam e-mails doorlaat. | ||
Maatregelen gericht op het [behoud van de integriteit van de trainingsdata](3-dat-11-datamanipulatie.md) kunnen hiertegen worden ingezet. | ||
|
||
### Input- of evasion aanval | ||
Bij een input- of evasion aanval voegt een aanvaller hele kleine bewerkingen toe aan een input zodat een AI-systeem wordt misleid: het trekt een foute conclusie. | ||
Een voorbeeld hiervan is het plakken van een gele post-it op een stopbord, waardoor een auto met AI gebaseerde omgevingsherkenning het bord niet meer goed kan herkennen en zijn snelheid aanpast. | ||
Op evasion aanvallen kan geanticipeerd worden bij het testen van de [robuustheid](2-owp-34-technische-interventies-robuustheid.md) van algoritmes. Bijvoorbeeld door als onderdeel van een [representatieve testomgeving](5-ver-04-representatieve-testomgeving.md) ook rekening te houden met moedwillig, subtiel aangepaste input. | ||
|
||
### Backdoor | ||
Een backdoor in een algoritme geeft een aanvaller er toegang toe en/of de mogelijkheid om deze te manipuleren. | ||
Een voorbeeld hiervan is een nummerbord herkenningsalgoritme dat tijdens de ontwikkelfase van een backdoor voorzien is door een aanvaller, waardoor via een speciale toevoeging aan een nummerbord deze niet meer herkend wordt. | ||
Maatregelen gericht op controle van verwerking van trainingsdata, gebruik van ontwikkeltools en halffabricaten en het trainingsproces beperken de mogelijkheid om aanvallers backdoors te laten injecteren. | ||
|
||
### Model stealing | ||
Bij *model stealing* of *model reverse engineering* brengt een aanvaller in kaart hoe een algoritme in elkaar zit. | ||
Hierdoor kan een aanvaller het algoritme voor andere doeleinden misbruiken, zoals het vinden van kwetsbaarheden of van *evasion tactieken* voor het algoritme. | ||
|
||
### Inversion of inference aanval | ||
Met *inversion of inference* aanvallen kan een aanvaller achterhalen wat voor (mogelijk vertrouwelijke) trainingsdata is gebruikt. | ||
Zo kunnen gevoelige informatie worden blootgelegd, waaronder privacygevoelige gegevens en intellectueel eigendom. | ||
|
||
## Bijbehorende vereiste(n) { data-search-exclude } | ||
??? expander "Bekijk alle vereisten" | ||
<!-- list_vereisten_on_maatregelen_page --> | ||
|
||
## Risico | ||
Adversarial AI-aanvallen kunnen leiden tot ongewenste misleiding, manipulatie of uitschakeling van de werking van een algoritme of tot verlies van gevoelige gegevens. | ||
|
||
## Bronnen | ||
- [TNO, Adversarial AI | ||
in het cyberdomein](https://publications.tno.nl/publication/34640579/Mf1Fda/TNO-2023-R10292.pdf) | ||
- [OWASP Top 10 for Large Language Model Applications](https://owasp.org/www-project-top-10-for-large-language-model-applications/) | ||
|
||
## Voorbeeld | ||
<!-- Voeg hier een voorbeeld toe, door er bijvoorbeeld naar te verwijzen --> |
Oops, something went wrong.