Dobrej jakości testy wymagają dobrych danych – najlepiej odzwierciedlających dane rzeczywiste. Bardzo często wykorzystywana w tym celu jest kopia danych produkcyjnych. Takie dedykowane środowisko testowe używane jest do reprodukowania zgłoszeń, debugowania problemów z danymi i realizowania testów obciążeniowych. Pomijając już to, że taka praktyka jest najczęściej niezgodna z RODO, to o ile środowisko produkcyjne jest monitorowane i audytowane niczym forteca, a dostęp do niego mają nieliczne osoby, to środowiska nieprodukcyjne są traktowane już zdecydowanie mniej restrykcyjnie. Grono osób mających do nich dostęp (nie licząc użytkowników) jest też zdecydowanie większe. Wiele poważnych wycieków danych osobowych to nie były włamania do fortecy, a wykorzystanie właśnie tych tzw. “niebronionych osad”.
W obszarze danych testowych najczęściej występują dwie skrajności – dane osobowe przetwarzane są przez testerów i deweloperów w kopiach baz produkcyjnych, lub czekamy pół roku na odświeżenie testowych środowisk sztucznymi danymi, najczęściej kiepsko przygotowanymi. Rozwiązaniem tego problemu może być wdrożenie anonimizacji, jednak okazuje się, że nie jest to łatwe zadanie.
Proste maskowanie danych może sprawdzać się w prostych przypadkach, jednak szybko można zauważyć, że nie jest to wystarczające dla zastosowań, z którymi zazwyczaj stykamy się na co dzień. Z drugiej strony, przeglądając istniejące rozwiązania zauważyliśmy, że nie spełniają naszych potrzeb – najczęściej nie wspierają mechanizmów pozwalających zachować spójność danych pomiędzy różnymi bazami danych. Trudno też znaleźć rozwiązanie wspierające automatyzację procesu anonimizacyjnego. Najbardziej popularne narzędzia nie pozwalają na definiowanie własnych generatorów nie tylko dotyczących pojedynczego wiersza, ale także uwzględniających rozkład danych. Implementując samemu rozwiązanie spełniające te założenia szybko można natknąć się na przeszkody:
Istnieje jednak złoty środek – zapewnienie swobodnego dostępu do wysokiej jakości danych odzwierciedlających charakterystykę danych produkcyjnych, przy jednoczesnym zapewnieniu bezpieczeństwa rozwiązania i zgodności z regulacjami prawnymi. Ten złoty środek to Nocturno – narzędzie do anonimizacji danych, który zaprojektowaliśmy wspólnie z zespołem. Pracując nad tym rozwiązaniem postanowiliśmy zadbać o:
Wdrażając anonimizację jesteśmy w stanie znacząco zmniejszyć liczbę osób posiadających dostęp do danych osobowych do absolutnego minimum. Dzięki dobrej jakości zanonimizowanych danych, wykorzystywanie ich w celach wytwórczych oprogramowania jest transparentne i zgodne z RODO. Proces oparty o Nocturno jest łatwo konfigurowalny i utrzymywalny przez deweloperów – może być równolegle rozwijany w tym samym codebase co aplikacja.
Nocturno wspiera dwa główne scenariusze wdrożeniowe:
Rys. miejsce Nocturno w automatycznym procesie dostarczania zanonimizowanych kopii baz danych
Więcej na temat Nocturno znajdziecie pod tym linkiem: https://wizards.io/nocturno/. W przypadku pytań na temat procesu anonimizacji, zachęcam do kontaktu.
Marcin Gorgoń, Senior Software Engineer