Na stronie Norweskiego Organu Ochrony Danych znajdują się Wytyczne w sprawie rozwoju oprogramowania zgodnie z zasadami ochrony prywatności w fazie projektowania oraz domyślnej ochrony danych.
Poniżej znajduje się tłumaczenie listy kontrolnej dotyczącej projektowania oprogramowania. Treść przetłumaczonego rozdziału w języku angielskim dostępna jest tutaj: https://www.datatilsynet.no/globalassets/global/english/guidelines/privacy-by-design/checklist-design.pdf.
Projektowanie
Niniejsza lista kontrolna jest dynamiczna, nie jest wyczerpująca i będzie regularnie uaktualniana. […]
Wymogi projektowania zorientowane na ochronę danych
Minimalizuj oraz ograniczaj. Ilość zbieranych oraz przetwarzanych danych osobowych powinna być ograniczona do tego co jest zgodne z prawem oraz ściśle niezbędne. Dane muszą być usunięte, jeżeli ich przechowywanie nie jest dłużej wymagane do osiągnięcia celów. Przestrzegaj zasady: „wybierz zanim zbierzesz”.
Przykłady:
- Ponownie przejrzyj ocenę wpływu na ochronę danych (DPiA);
- Upewnij się, że zakres oraz ilość zebranych danych osobowych odpowiada potrzebom. Nie zbieraj więcej informacji niż to konieczne. Ograniczaj ilość informacji przetwarzanych w działach lub obszarach, które są mniej zaufane oraz zapewniają mniejsze bezpieczeństwo;
- Unikaj, ograniczaj oraz minimalizuj potrzebę zbierania szczególnych kategorii danych;
- Ograniczaj oraz minimalizuj ekspozycję niepotrzebnych funkcjonalności oraz danych osobowych w interfejsie użytkownika. Rozważ np. czy konieczne jest bezpośrednie przechowywanie identyfikujących informacji w samym oprogramowaniu czy wystarczyłaby spseudonimizowana informacja.
Chowaj i chroń – dane osobowe oraz relacje między nimi nie powinny być komunikowane, przetwarzane ani przechowywane w widocznym miejscu. W przypadku schowania bezpośrednio identyfikujących danych osobowych poza widocznym miejscem, ryzyko naruszenia oraz zakres potencjalnego incydentu jest znacznie zmniejszony. Przykłady obejmują pseudonimizację, szyfrowanie oraz agregowanie danych.
Przykłady:
- Przeprowadź modelowanie pod kątem zagrożeń oraz analizę powierzchni potencjalnego ataku (attack surface analysis) przy projektowaniu oprogramowania;
- Wykorzystuj mechanizm szyfrowania w celu bezpiecznego przekazywania, komunikowania, przetwarzania oraz przechowywania. Jest to szczególnie ważne jeżeli istnieje potrzeba przekazania danych osobowych poprzez niezabezpieczone obszary oraz sieci;
- Zanonimizuj lub pseudonimizuj dane osobowe zawsze gdy jest to możliwe;
- Unikaj niepotrzebnego eksponowania wzorów oraz połączeń komunikacyjnych (takich jak interfejs użytkownika, kanał internetowy, portal, interfejs logowania, etc.).
Oddzielaj: Gdy to możliwe dane osobowe powinny być oddzielone od innych danych. Dane powinny być przechowywane w oddzielnych bazach danych, podmiotach oraz obszarach
w odniesieniu do każdego celu oraz procesu. Poprzez oddzielenie przetwarzania lub przechowywania kilku źródeł danych osobowych należących do tej samej osoby, prawdopodobieństwo utworzenia kompletnych profili jednej osoby jest zredukowane. Oddzielenie jest również skutecznym środkiem wypełnienia zasady ograniczenia celu oraz uniknięcia połączenia pomiędzy różnymi zestawami danych. Tabele zawierające dane osobowe powinny być krócej przechowywane oraz krótszy powinien być okres, po którym zostaną automatycznie usunięte. Tabele niezawierające danych osobowych mogą być dłużej przechowywane. Środki służące temu celowi mogą obejmować: kontrolę dostępu do tabel, rozdzielenie tabeli baz danych, rozróżnienie pomiędzy komponentami, jednostkami oraz obszarami, co do których istnieje wysoki poziom zaufania od tych,co do których istnieje niski poziom oraz rozdzielenie dostępu do poszczególnych obszarów zgodnie z zasadą niezbędności.
Przykłady:
- Oddzielaj wrażliwe dane osobowe od tych mniej wrażliwych (w bazie danych,
w ramach dostępu do stron klientów oraz oddziałów, etc.); - Oddzielaj tabele w bazie danych oraz związane z tym prawa dostępu do tabel oraz obszarów zgodnie z zasadą konieczności dostępu do wykonywania pracy (zasady najmniej uprzywilejowanego dostępu);
- Utrzymuj mniej zaufane jednostki oraz obszary oddzielone od bardziej zaufanych jednostek;
- Rekordy w tabelach powinny być trudne do przyporządkowania względem siebie.
Agreguj – Dane osobowe powinny być zbierane oraz przetwarzane w tak bardzo zagregowany sposób jak to tylko możliwe, w celu zapewnienia wykonalności praw osób, których dane dotyczą, bez uszczerbku dla wartości biznesowej oraz celu zbierania oraz wykorzystania danych.
Przykłady:
- Ograniczaj wykorzystanie szczegółowych oraz wrażliwych danych osobowych;
- Usuwaj niepotrzebne oraz nadmierne informacje. Na przykład:
– zwiększ okresy poprzez wykorzystywanie tygodni zamiast dni lub godzin;
– korzystaj z krajów lub regionów, a nie z adresów przy alokowaniu osób lub jednostek;
– korzystaj z grupowania a nie przyporządkowania indywidualnego.
- Korzystaj z technik anonimizacji gdy to tylko możliwe.
Ochrona danych w fazie ustawień – domyślnie, wszystkie ustawienia powinny być skonfigurowane w sposób najbardziej przyjazny prywatności. Użytkownik musi mieć możliwość świadomego wyboru, jeżeli chce dokonać zmian, których skutkiem byłyby ustawienia mniej przyjazne prywatności. Np., to użytkownik powinien zdecydować czy chce udostępnić więcej danych innym użytkownikom.
Przykłady:
- Wszystkie ustawienia przyjazne prywatności muszą być domyślne włączone;
- Śledzenie użytkowników powinno być domyślnie wyłączone;
- Bluetooth powinien być domyślnie wyłączony;
- Śledzenie ruchu użytkowników pomiędzy stronami internetowymi powinno być domyślnie wyłączone;
- Ponowne wykorzystanie informacji dotyczące tego, które strony internetowe zostały odwiedzone przez użytkownika powinno być domyślnie wyłączone.
Wymogi projektowania zorientowane na proces.
Informowanie. Oprogramowanie powinno być zaprojektowane oraz skonfigurowane w taki sposób aby osoba, której dane dotyczą była wystarczająco poinformowana o tym w jaki sposób oprogramowanie działa oraz w jaki sposób dane osobowe są przetwarzane. W przypadku przeprowadzanie profilowania lub zautomatyzowanego podejmowania decyzji osoba, której dane dotyczą powinna być poinformowana o tym w jaki sposób się to odbywa. Ważnym jest aby pamiętać, że należy stosować specjalne wymagania gdy oprogramowanie jest kierowane do dzieci.
Przykłady:
Należy utworzyć oraz udostępnić osobom, których dane dotyczą stronę internetową zawierającą informacje dotyczące oprogramowania, zanim rozpoczną oni korzystanie
z oprogramowania;
- Wskaż punkt kontaktowy, formularz kontaktowy lub podobne narzędzie, aby osoba, której dane dotyczą mogła zwrócić się z pytaniem o informacje:
– dotyczącą celu oraz potrzeby zbierania danych;
– bezpieczeństwa oprogramowania (w jaki sposób dane są chronione);
– wykorzystania podwykonawców, oraz możliwym udostępnianiu danych podwykonawcom;
- Korzystaj z wielu podejść oraz kanałów w celu zapewnienia, że docierasz do wszystkich użytkowników oraz grup użytkowników;
- Używaj jasnego, zrozumiałego języka;
- Używaj kilku języków, jeżeli to odpowiednie;
- Wzbogacaj informacje oraz zmieniaj ją w zależności od grupy docelowej użytkowników za pomocą fotografii, ikon, plików audio, nagrań, etc.
Kontroluj – Osoba, której dane dotyczą ma prawo do kontroli nad swoimi własnymi danymi osobowymi. Obejmuje to prawo dostępu w celu obejrzenia, uaktualnienia oraz/ lub usunięcia swoich danych. W przypadku automatycznego przetwarzania lub podejmowania decyzji bez interwencji człowieka, osoba, której dane dotyczą może żądać aby przetwarzanie przeprowadzono w sposób ręczny. Oprogramowanie powinno być zaprojektowane w taki sposób, aby osoba, której dane dotyczą mogła wykonać te prawa w sposób tak łatwy jak to tylko możliwe.
Przykłady:
Stwórz oraz umożliwiaj korzystanie z następujących funkcji:
– podgląd, które elementy operacji przetwarzania danych są konieczne w celu wykonania umowy, a które podlegają dobrowolnej zgodzie;
– umożliwienie osobie, której dane dotyczą wyrażenia zgody na stronie zawierającej informacje poprzez checkbox, przed rozpoczęciem korzystania z oprogramowania;
– wycofanie zgody poprzez menu w ramach oprogramowania. Pamiętaj, że zbieranie danych osobowych musi zostać zakończone po wycofaniu zgody;
– udzielenie dostępu w celu poprawienia, zablokowania lub usunięcia danych osobowych, np. poprzez umożliwienie podejrzenia zebranych danych bezpośrednio przez osobę, której dane dotyczą w ramach oprogramowania;
– zapewnienie trwałego usunięcia danych osobowych z bazy danych oraz z wszelkich innych miejsc w których jest przechowywane (np. kopii zapasowych). Informacja może być również wyeksportowana do pliku lub wersji papierowej w celu ręcznego sprawdzenia wraz z odpowiednią procedurą pozwalającą osobie, której dane dotyczą na poprawienie, zablokowanie lub usunięcie danych ( w ciągu 30 dni);
– rozwiązanie umowy, zainstalowanie, odinstalowanie, włączenie oraz wyłączenie aplikacji, programu, komponentu lub systemu za pomocą funkcjonalności w menu lub dedykowanej strony internetowej lub ręcznie za pomocą formularza;
– przesyłanie pytań lub skarg dotyczących ochrony danych oraz bezpieczeństwa. Innym sposobem jest udostępnienie informacji na stronie internetowej wraz z informacją dot. kontaktu połączoną z kanałem komunikacyjnym w celu rozpatrywania pytań (w takim przypadku należy przyjąć udokumentowaną procedurę);
– wyrażanie sprzeciwu wobec profilowania poprzez umożliwienie użytkownikom podjęcia świadomego wyboru o odmowie profilowania oraz redystrybucji danych osobowych. Można to przeprowadzić np. poprzez menu z checkboxem oraz flagą przechowywaną w bazie danych lub ręcznie poprzez kanał komunikacyjny.
Określenie wymagań dotyczących otwartości oraz informacji dotyczącej sposobu podejmowania zautomatyzowanych decyzji, jak również umożliwienie osobie, której dane dotyczą zwrócenia się o ręczne przetwarzanie. Jest to opisane w dokumentacji systemu oraz powinno być udostępnione na stronie informacyjnej oprogramowania.
Wdrażaj –Oprogramowanie powinno być zaprojektowane w taki sposób, aby dokumentowało w jaki sposób zapewnia wykonalność praw osób, których dane dotyczą. Dokumentacja powinna obejmować rozliczalność oraz wskazywać w jaki sposób regulacje dotyczące ochrony danych są wdrażane. Powinno być one udostępniane w przypadku audytów oraz kontroli przetwarzania. Obejmuje to również sztuczną inteligencję, profilowanie oraz zautomatyzowane przetwarzanie.
Przykłady:
- Oprogramowanie musi zapewniać domyślnie najwyższe ustawienia prywatność:
– Ustawienia muszą być przedstawione w menu, gdzie osoba, której dane dotyczą podejmuje świadomą, aktywną decyzję o zmianie ustawień na mniej przyjazne prywatności;
– Jeżeli w późniejszym okresie oprogramowanie musi być zmienione na mniej przyjazne prywatności, osoba, której dane dotyczą musi być jasno poinformowana o zmianie i może się na to zgodzić poprzez zaznaczenie checkboxa po otrzymaniu/ odczytaniu informacji o zmianie;
- Oprogramowani musi spełniać wymogi w zakresie przenoszenia danych:
– Musi istnieć możliwość zwrócenia się o udostępnienie własnych danych osobowych przez osobę, której dane dotyczą lub o przekazanie danych innemu dostawcy usług w standardowym oraz nadającym się do ponownego wykorzystania formacie;-
– Prawo to ma zastosowanie jeżeli przetwarzanie opiera się na zgodzie lub na umowie;
– Osoba, której dane dotyczą może zażądać, aby dane osobowe zostały wyeksportowane oraz dostarczone w bezpieczny sposób (ręcznie lub pocztą tradycyjną lub inną bezpieczną metodą przesyłki) do nowego dostawcy usług;
Zgoda wymaga aktywnej partycypacji użytkownika:
- Zgoda lub zmiana zgody jest sygnalizowana przez wypełnienie pola tekstowego lub kliknięcie checboxu, który zaznacza flagę w bazie danych:
– Oprogramowanie skierowane do młodocianych oraz nieletnich musi zawierać funkcjonalność wymagającą zgody od rodzica bądź opiekuna zanim zostanie udzielony dostęp. Funkcjonalność ta musi zapewnić lub potwierdzić, że są oni upoważnieni do udzielenia tej zgody. Innym sposobem jest ustanowienie procedur dotyczących wymagania ręcznie udokumentowanej zgody rodzica lub opiekuna.
Osoba, której dane dotyczą powinna mieć wgląd w to kto, kiedy oraz w jaki sposób miał dostęp do danych (co obejmuje dostęp oraz zmiany dokonane przez osobę, której dane dotyczą) oraz jakich zgód udzielono. Każdy dostęp powinien być zarejestrowany
w logach, które mogą być udostępnione osobie, której dane dotyczą.
Wykaż – Administrator musi być w stanie udokumentować zgodność z regulacjami w zakresie ochrony danych oraz bezpieczeństwem przetwarzania. Oprogramowanie musi być zaprojektowane oraz stworzone w taki sposób, aby administrator był w stanie udokumentować oraz wykazać w jaki sposób wymogi regulacji w zakresie ochrony danych zostały wdrożone. Przykłady obejmują dokumentację wykazującą, że oprogramowanie zostało stworzone przy wykorzystaniu metodologii zapewniającej ochronę danych w fazie projektowania oraz bezpieczeństwo informacji (SSDLC – Secure Software Development Life Cycle), sprawozdania z audytów bezpieczeństwa, skanowanie podatności, testy bezpieczeństwa takie jak testy penetracyjne oraz sprawozdania dotyczące szkoleń w zakresie zarządzania naruszeniami ochrony danych.
Analiza oraz redukcja przestrzeni ataku w przypadku rozwijanego oprogramowania
- Przeanalizuj oraz zredukuj przestrzeń ataku rozwijanego oprogramowania;
- Przeanalizuj przestrzeń ataku uprzednio zaprojektowanego oprogramowania oraz zredukuj możliwości wykorzystania słabości oraz podatności oprogramowania;
- Ponownie przejrzyj projekt oraz przeanalizuj gdzie możliwe jest uzyskanie danych wyjściowych, danych wyjściowych oraz gdzie dane są przekazywane oraz przechowywane.
- Sprawdź czy ten sam rodzaj informacji jest zbierany w różnych miejscach (podwojona funkcjonalność) oraz oceń czy funkcjonalność ta może być uproszczona;
- Zredukuj prawdopodobieństwo wystąpienia błędów poprzez uproszczenie oprogramowania oraz usunięcie zbędnych funkcjonalności;
- Ponownie skorzystaj z oceny ryzyka dla bezpieczeństwa oraz wpływu na ochronę danych, które zostały przeprowadzone w fazie Wymagań;
- Zastosuj środki redukujące podatność w celu osiągnięcia akceptowalnych poziomów tolerancji ochrony danych oraz bezpieczeństwa, jeżeli analiza wykazuje że istniejące poziomy nie są satysfakcjonujące;
- Ponownie wykorzystaj poziomy tolerancji rozwinięte w czasie fazy wymagań;
- Zapewnij udokumentowanie analizy oraz redukcję powierzchni ataku.
Modelowanie zagrożeń
- Przeanalizuj składniki, punkty dostępu, przepływ danych oraz przetwarzanie danych
w oprogramowaniu; - Zapewnij, że osoby należące do zespołu rozwijającego aplikację przeanalizują w jaki sposób programowanie może być nienależycie wykorzystane w różnych scenariuszach;
- Oceń każdy scenariusz aby sprawdzić w jaki sposób projekt może być poprawiony w celu uniknięcia zidentyfikowanych zagrożeń. Można to zrobić poprzez wdrożenie środków redukujących podatności, których skutkiem będzie silniejsze oprogramowanie;
- Przeprowadź ocenę ryzyka wszelkich podatności, które pozostały oaz, którym należy zapobiec przy wykorzystaniu innych środków. Zapewnij, że te podatności są zawarte
w rejestrach ryzyka.
Przykłady narzędzi:
- Zaprojektowanie zasad służących bezpieczeństwu, obejmujące:
– Zasadę najmniejszego uprzywilejowania;
– Obronę w głąb;
– Uszkodzenie w kierunku bezpiecznym.
- Modelowanie zagrożeń;
- Analiza powierzchni ataku;
- Modelowanie przypadków wykorzystania oraz niewłaściwego wykorzystania;
- Drzewka ataków;
- DREAD/STRIDE;
- Wytyczne organów ochrony danych na temat technik anonimizacji oraz pseudonimizacji.
Dlaczego wymogi w obszarze projektowania są konieczne?
- Dane osobowe muszą być przetwarzane zgodnie z prawem, a projekt oprogramowania musi to odzwierciedlać, zobacz art. 6 Ogólnego Rozporządzenia o Ochronie Danych.
Z tego względu ważnym jest, aby być świadomym rodzaju przetwarzanych danych osobowych, celu oraz warunków przetwarzania oraz kompilacji danych osobowych; - Prawa osób, których dane dotyczą muszą być odzwierciedlone w projekcie, zobacz art. 12-23 Ogólnego Rozporządzenia o Ochronie Danych.