heygrc
Minimalizacja danych wg GDPR w kodzie

Zbieranie więcej, niż wymaga cel.

Minimalizacja danych, Art. 5(1)(c), nakazuje zbieranie i przechowywanie jedynie tych danych osobowych, które są niezbędne do realizacji celu, nie więcej. W kodzie jest naruszana, gdy zmiana zaczyna przechwytywać, rejestrować lub przesyłać więcej danych osobowych, niż wymaga funkcjonalność, co łatwo zrobić, ponieważ przesłanie całego obiektu zwykle wymaga mniej pracy niż wybór pól, których się potrzebuje.

How it shows up in a diff

The shapes the same control failure takes.

Minimalizacja rzadko jest naruszana celowo. Zazwyczaj dzieje się tak, ponieważ wygodne rozwiązanie niesie więcej, niż konieczne. Typowe przypadki:

  • Ładunek rozszerza się do całego obiektu

    Zdarzenie, żądanie lub wiadomość jest zmieniane tak, aby przesyłać pełny obiekt użytkownika lub klienta, podczas gdy wystarczyłby identyfikator i jedno lub dwa pola.

  • Nowe pole zbiera więcej, niż potrzeba

    Formularz, model lub import zaczyna zbierać dane osobowe, których funkcjonalność nie potrzebuje, tylko dlatego, że były dostępne.

  • Linia logu zawiera dane osobowe

    Log debugowania rejestruje całe żądanie lub rekord, umieszczając dane osobowe w magazynie logów, który ich nie wymagał.

  • Podmiot zewnętrzny otrzymuje więcej, niż konieczne

    Integracja z narzędziami analitycznymi, wsparciem lub marketingiem zaczyna odbierać pola, których nie potrzebuje, poszerzając krąg podmiotów przetwarzających dane.

  • Tekst swobodny jest przesyłany bez cenzurowania

    Pole, które może zawierać dane osobowe (np. notatka, wiadomość), jest przekazywane lub przechowywane bez ograniczenia do tego, czego wymaga cel.

Worked example

Zdarzenie analityczne przesyłające całego użytkownika.

Produkt chce śledzić rejestracje w narzędziu analitycznym. Najszybsze wywołanie przesyła cały obiekt użytkownika jako właściwości zdarzenia, w tym adres e-mail, imię i nazwisko oraz adres, podczas gdy analityka potrzebuje jedynie identyfikatora i planu.

analytics/track.ts+1 -1
analytics.track("signup", {-  userId: user.id, plan: user.plan,+  ...user, // send everything, filter later})
heygrcGDPR Art. 5(1)(c)

Przesyłanie całego obiektu użytkownika powoduje wysłanie adresu e-mail, imienia i nazwiska oraz adresu do dostawcy usług analitycznych, co stanowi więcej danych osobowych, niż wymaga śledzenie rejestracji, oraz przekazuje je nowemu podmiotowi przetwarzającemu. Art. 5(1)(c) (minimalizacja danych) oczekuje, że zmiana będzie zawierała jedynie dane osobowe niezbędne do realizacji celu. Należy przesłać identyfikator i konkretne pola, których faktycznie używa analityka, a nie cały rekord.

What an auditor does with this

Minimalizacja jest sprawdzana na każdym etapie przetwarzania.

Przegląd ochrony danych analizuje, jakie dane osobowe zbiera i przesyła każda czynność przetwarzania, i porównuje je z zadeklarowanym celem: wszystko, co wykracza poza to, co konieczne, stanowi ustalenie. Szczególną uwagę zwraca się na nowe przepływy danych do podmiotów zewnętrznych, ponieważ poszerzają one krąg podmiotów przetwarzających dane i mogą rodzić dodatkowe pytania dotyczące przekazywania danych. Te przepływy są tworzone w kodzie, jedna integracja lub zdarzenie na raz, tam też podejmowana jest decyzja dotycząca minimalizacji.

What this is, and is not

Przegląd, a nie porada prawna.

heygrc sygnalizuje zmiany, które dotyczą minimalizacji danych, i powołuje się na odpowiedni artykuł, aby naprawa nastąpiła w pull request. Nie decyduje o prawnych podstawach przetwarzania ani nie prowadzi rejestru czynności przetwarzania. Wychwytuje moment, w którym zmiana zaczyna przesyłać więcej danych osobowych, niż wymaga, na poziomie diff.