1
0

Compare commits

...

3 Commits

Author SHA1 Message Date
99f7c24325
Update gdpr_nl 2025-02-28 15:04:05 +01:00
088f72c6f3
Add gitignore 2025-02-28 15:03:53 +01:00
b41671b9a6
Add file add script 2025-02-28 15:03:42 +01:00
4 changed files with 215 additions and 132 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
.DS_Store

View File

@ -1,132 +0,0 @@
{
"id": "gdpr_nl",
"title": "Algemene Verordening Gegevensbescherming (AVG)",
"description": "Bevat de belangrijkste risico's van de Algemene Verordening Gegevensbescherming (AVG) in Nederland.",
"risks": [
{
"article": "5(1)(a)",
"name": "Onrechtmatige verwerking van persoonsgegevens",
"risk": "Verwerking van persoonsgegevens zonder een geldige rechtsgrondslag, wat kan leiden tot boetes en reputatieschade."
},
{
"article": "5(1)(b)",
"name": "Doelbinding niet nageleefd",
"risk": "Persoonsgegevens worden verwerkt voor andere doeleinden dan waarvoor ze zijn verzameld, zonder toestemming van de betrokkene."
},
{
"article": "5(1)(c)",
"name": "Verzameling van bovenmatige gegevens",
"risk": "Verzamelen van meer persoonsgegevens dan noodzakelijk is voor het beoogde doel, wat kan leiden tot overtredingen."
},
{
"article": "5(1)(d)",
"name": "Onjuiste of verouderde gegevens",
"risk": "Opslag van onjuiste of niet bijgewerkte persoonsgegevens, wat kan resulteren in verkeerde beslissingen en klachten."
},
{
"article": "5(1)(e)",
"name": "Bewaren van gegevens langer dan noodzakelijk",
"risk": "Persoonsgegevens worden langer bewaard dan nodig is voor het doel van de verwerking, in strijd met de regelgeving."
},
{
"article": "5(1)(f)",
"name": "Onvoldoende beveiliging van persoonsgegevens",
"risk": "Gebrek aan passende technische en organisatorische maatregelen om persoonsgegevens te beschermen, wat kan leiden tot datalekken."
},
{
"article": "6(1)",
"name": "Ontbreken van rechtsgrondslag voor verwerking",
"risk": "Verwerking van persoonsgegevens zonder een van de in de GDPR genoemde rechtsgrondslagen, wat kan leiden tot sancties."
},
{
"article": "7(3)",
"name": "Niet respecteren van het recht om toestemming in te trekken",
"risk": "Doorgaan met de verwerking van gegevens nadat de betrokkene zijn toestemming heeft ingetrokken."
},
{
"article": "9(1)",
"name": "Onrechtmatige verwerking van bijzondere categorieën van gegevens",
"risk": "Verwerken van gevoelige gegevens zonder aan de specifieke voorwaarden te voldoen, wat kan leiden tot ernstige overtredingen."
},
{
"article": "12(1)",
"name": "Gebrek aan transparante communicatie",
"risk": "Betrokkenen niet op een beknopte, transparante, begrijpelijke en gemakkelijk toegankelijke vorm informeren over de gegevensverwerking."
},
{
"article": "13(1)",
"name": "Niet verstrekken van verplichte informatie bij gegevensverzameling",
"risk": "Het nalaten om betrokkenen te informeren over essentiële details bij het verzamelen van hun gegevens."
},
{
"article": "15(1)",
"name": "Onvoldoende faciliteiten voor inzageverzoeken",
"risk": "Niet in staat zijn om betrokkenen toegang te geven tot hun eigen persoonsgegevens op verzoek."
},
{
"article": "16",
"name": "Niet corrigeren van onjuiste gegevens",
"risk": "Het niet tijdig rectificeren van onjuiste of onvolledige persoonsgegevens op verzoek van de betrokkene."
},
{
"article": "17(1)",
"name": "Niet voldoen aan verzoeken tot gegevenswissing",
"risk": "Het niet wissen van persoonsgegevens wanneer een betrokkene hierom verzoekt en er geen legitieme reden is om de gegevens te behouden."
},
{
"article": "18(1)",
"name": "Niet respecteren van het recht op beperking van de verwerking",
"risk": "Doorgaan met de verwerking van persoonsgegevens ondanks een geldig verzoek om beperking van de verwerking."
},
{
"article": "20(1)",
"name": "Niet faciliteren van gegevensoverdraagbaarheid",
"risk": "Het onvermogen om persoonsgegevens in een gestructureerd, gangbaar en machineleesbaar formaat aan de betrokkene te verstrekken."
},
{
"article": "25(1)",
"name": "Geen implementatie van gegevensbescherming door ontwerp",
"risk": "Het niet integreren van gegevensbeschermingsprincipes in de ontwerpfase van systemen en processen."
},
{
"article": "25(2)",
"name": "Geen gegevensbescherming door standaardinstellingen",
"risk": "Systemen en diensten zijn niet standaard zo ingesteld dat ze maximale privacybescherming bieden."
},
{
"article": "30(1)",
"name": "Ontbreken van een register van verwerkingsactiviteiten",
"risk": "Geen up-to-date documentatie van alle verwerkingsactiviteiten, wat kan leiden tot gebrek aan controle en naleving."
},
{
"article": "32(1)",
"name": "Onvoldoende beveiligingsmaatregelen",
"risk": "Het niet implementeren van passende technische en organisatorische maatregelen om een op het risico afgestemd beveiligingsniveau te waarborgen."
},
{
"article": "33(1)",
"name": "Niet tijdig melden van een datalek aan de toezichthouder",
"risk": "Het niet binnen 72 uur melden van een inbreuk in verband met persoonsgegevens aan de toezichthoudende autoriteit."
},
{
"article": "34(1)",
"name": "Niet informeren van betrokkenen over een datalek",
"risk": "Het nalaten om betrokkenen zonder onredelijke vertraging te informeren over een inbreuk die een hoog risico inhoudt voor hun rechten en vrijheden."
},
{
"article": "35(1)",
"name": "Geen uitvoering van een gegevensbeschermingseffectbeoordeling (DPIA)",
"risk": "Het niet uitvoeren van een DPIA voor verwerkingen die waarschijnlijk een hoog risico inhouden voor de rechten en vrijheden van natuurlijke personen."
},
{
"article": "37(1)",
"name": "Geen aanstelling van een functionaris voor gegevensbescherming (FG)",
"risk": "Het niet benoemen van een FG wanneer dit verplicht is volgens de GDPR, wat kan leiden tot non-compliance."
},
{
"article": "44",
"name": "Onrechtmatige doorgifte van persoonsgegevens naar derde landen",
"risk": "Overdracht van persoonsgegevens naar landen buiten de EU zonder adequate waarborgen, wat kan leiden tot verlies van gegevensbescherming."
}
]
}

File diff suppressed because one or more lines are too long

51
write_file_to_riskset.py Executable file
View File

@ -0,0 +1,51 @@
#!/usr/bin/env python
import base64
import json
import os
import argparse
def encode_file_to_base64(file_path, json_path):
'''
Reads a file, encodes its content in Base64, and writes it to a JSON file under ['files'][filename].
'''
if not os.path.isfile(file_path):
print(f'Error: File "{file_path}" not found.')
return
with open(file_path, 'rb') as f:
encoded_content = base64.b64encode(f.read()).decode('utf-8')
filename = os.path.basename(file_path)
json_data = {}
# Read existing JSON if the file exists
if os.path.exists(json_path):
with open(json_path, 'r', encoding='utf-8') as json_file:
try:
json_data = json.load(json_file)
except json.JSONDecodeError:
print('Warning: JSON file is empty or invalid. Creating a new structure.')
# Ensure 'files' key exists
if 'files' not in json_data:
json_data['files'] = {}
# Add Base64 content under filename
json_data['files'][filename] = encoded_content
# Write updated data back to JSON file
with open(json_path, 'w', encoding='utf-8') as json_file:
json.dump(json_data, json_file, indent=4)
print(f'Successfully encoded "{filename}" and saved to "{json_path}".')
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Encode a file to Base64 and store it in a JSON file.')
parser.add_argument('file_path', help='Path to the file to encode.')
parser.add_argument('json_path', help='Path to the JSON output file.')
args = parser.parse_args()
encode_file_to_base64(args.file_path, args.json_path)