Po nawiązaniu połączenia z bazą danych użytkownicy IRI FieldShield i IRI DarkShield mają do dyspozycji szeroki zakres opcji klasyfikowania, wyszukiwania i deidentyfikowania poufnych danych w jednym lub kilku schematach. Mogą teraz realizować wszystkie te cele na raz, dzięki opartym na regułach obiektom w IRI Workbench.
W tym artykule przedstawiono krok po kroku użycie klas danych do znajdowania i maskowania informacji umożliwiających identyfikację w małym schemacie relacyjnej bazy danych przy użyciu FieldShield, chociaż można rozszerzyć te kroki na większe lub więcej schematów. Jeśli Twoja baza danych zawiera częściowo lub nieustrukturyzowane kolumny, zapoznaj się z tym artykułem o procedurach klasyfikacji masek wyszukiwania DarkShield dla baz danych RDB lub w tym artykule o bazach danych NoSQL.
W operacjach RDB opartych na kolumnach ustrukturyzowanych FieldShield dane są zwykle klasyfikowane według jednego schematu na raz, ale są maskowane globalnie przy użyciu zapisanych reguł, doraźnie lub zgodnie z harmonogramem aktualizacji.
Zdefiniowane reguły maskowania danych pozwalają wybrać funkcję najlepiej pasującą do każdej klasy danych i konsekwentnie ją stosować. Utworzenie tego samego unikalnego wyniku w postaci zaszyfrowanego tekstu dla każdej unikalnej oryginalnej wartości tekstu jawnego — w dowolnej tabeli lub pliku — również zachowuje integralność referencyjną; np. złączenia nadal będą działać po zamaskowaniu danych.
W tym przykładzie użyto przykładowych tabel Oracle w schemacie SCOTT dostarczonym w naszej piaskownicy maszyny wirtualnej. Aby połączyć się z inną bazą danych, musisz skonfigurować:
- Profil połączenia DTP dla Twojej bazy danych w IRI Workbench przy użyciu JDBC
- DSN ODBC dla tej źródłowej bazy danych
Aby uzyskać informacje na temat łączenia baz danych w celu użycia z FieldShield, zobacz Konfiguracja bazy danych tutaj.
Kroki, które opiszę to:
- Konfiguracja – Zdefiniuj klasy danych i reguły maskowania
- Skanuj – uruchom kreatora wyszukiwania klasy danych schematu
- Przejrzyj i dostosuj — Edytor biblioteki klas danych
- Maska — uruchom kreatora maskowania bazy danych klasy danych
Jest tu również połączona seria filmów z podobnymi instrukcjami krok po kroku.
Konfiguracja – Zdefiniuj klasy danych i reguły maskowania
Aby używać klas danych z regułami i kreatorami, należy najpierw zdefiniować i zapisać klasy danych. Można to zrobić za pomocą Okno> Preferencje> IRI> Klasy i grupy danych . Zobacz ten artykuł na temat klasyfikacji danych w IRI Workbench, aby dowiedzieć się więcej. Dostępne są również samouczki wideo dotyczące konfiguracji klasyfikacji danych i reguł maskowania.
Klasy danych można dopasować do kolumn według nazwy kolumny (klasa EMAIL pasuje do kolumny o nazwie EMAIL) lub przez dopasowanie danych zawartych w kolumnie. Ten przykład zawiera klasy, które mają wyrażenie regularne lub plik zestawu. Plik zestawu zawiera wpisy, które służą do wyszukiwania słownika.
Na tej stronie preferencji potwierdź, że te klasy danych istnieją:
- Klasa CREDIT_CARD który używa \b((4\d{12}(\d{3})?))|(?:5[1-5][0-9]{2}|222[1-9] |22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}|( 3[47]\d{13})|(3(0[0-5]|[68]\d)\d{11})|(6(011|5\d{2})\d{12 })|((2131|1800|35\d{3})\d{11})|(8\d{15})\b jako dopasowanie.
- Klasa EMAIL który używa \b[\w._%+-]+@[\w.-]+\.[A-Za-z]{2,4}\b
- Klasa PHONE_US który używa ^(\+?(1)([ .-]?)?)?(\(?([2-9]\d{2})\)?([ .-]?)? )([2-9]\d{2})([ .-]?)(\d{4})([ #eExXtT]*)(\d{2,6})?&
- Klasa PIN_US który używa \b([0-9]{3}[-]?[0-9]{2}[-]?[0-9]{4})\b
- Klasa LAST_NAME, która używa pliku zestawu C:/IRI/cosort100/sets/names/names_last.set
Jeśli nie, kliknij Przywróć domyślne .
U góry strony preferencji znajduje się wpis Dopasowany próg . Reprezentuje procent dopasowań wymaganych do przypisania do kolumny klasy danych. Wyszukiwanie schematu będzie skanować bloki danych 4K, aż dopasowania osiągną ten próg. Jeśli nigdy nie osiągnie tego progu, nie zostanie przypisana żadna klasa danych.
Ponieważ wiem, że mam kolumny zawierające nazwiska, które mogą nie być nazywane „NAZWISKO” lub mogą nawet nie mieć pasujących danych w pliku zestawu, mogę użyć wyrażenia regularnego, aby dopasować moją klasę danych do nazw kolumn. Na przykład może istnieć kolumna o nazwie LNAME lub LASTNAME.
Aby edytować klasę danych LAST_NAME, kliknij wpis LAST_NAME w widoku Klasy danych i kliknij Edytuj . Zmienić jego nazwę na L(AST)?[_-]?NAME (podkreślenie i myślnik w nawiasach). Kliknij OK . Kliknij Zastosuj i zamknij .
Powinieneś wstępnie określić sposób maskowania wartości w każdej klasie danych (tj. format kolumny docelowej), aby móc następnie zdefiniować te reguły. W naszym przykładzie będzie to redakcja, szyfrowanie z zachowaniem formatu i zasady pseudonimizacji. Każdą wystarczy zdefiniować tylko raz, w menu IRI.
Aby zdefiniować te reguły w tym przykładzie, wykonaj następujące czynności:
Zasada 1 – Redakcja (dla numerów ubezpieczenia społecznego)
- Wybierz menu IRI> Nowa reguła .
- Wybierz Zasady pól i kliknij Dalej .
- Wybierz funkcję redakcji , użyj SSN na początek nazwy reguły, tak aby brzmiała SSNRedactionRule, a następnie kliknij Dalej .
- Wybierz Definiuj maskę Przycisk radiowy. Wpisz 1 w pozycji początkowej i 5 w Długości . Kliknij Dodaj do tabeli i Zakończ .
Zasada 2 – Szyfrowanie (dla numerów kont kart kredytowych, adresów e-mail i numerów telefonów)
- Wybierz menu IRI> Nowa reguła .
- Wybierz Zasady pól i kliknij Dalej .
- Wybierz Funkcje szyfrowania i deszyfrowania i kliknij Dalej . Nie zmieniaj nazwy reguły.
- Wybierz enc_fp_aes256_alphanum opcja po lewej stronie. Wpisz sekret dla hasła . Zobacz tę stronę na temat opcji zarządzania kluczami szyfrowania.
- Kliknij Zakończ .
Zasada 3 – pseudonimizacja (dla nazwisk)
- Wybierz menu IRI> Nowa reguła .
- Wybierz Zasady pól i kliknij Dalej .
- Wybierz Zastępowanie pseudonimu , zmień jego nazwę LNamePseudonimRule i kliknij Dalej .
- Kliknij Użyj własnej listy pseudonimów i Przeglądaj do pliku wyszukiwania, C:/git/workbench-demos/Database_Classification_Masking/sets/lnames.set
- Wybierz Użyj losowego losowania z listy pseudonimów . Pamiętaj, że możliwa jest również odzyskiwalna pseudonimizacja, ale jest bardziej skomplikowana z powodu prawdopodobnych zmian w danych źródłowych.
- Kliknij Zakończ .
Teraz, gdy nasze reguły maskowania klas danych są zdefiniowane, możemy wykonywać operacje wyszukiwania i maskowania, aby znaleźć i naprawić dane globalnie w jednym lub większej liczbie schematów bazy danych.
Skanuj – uruchom Kreatora wyszukiwania klasy danych schematu
Aby znaleźć wszystkie dane zgodne z naszymi definicjami klas we wszystkich tabelach schematu, użyj Kreatora wyszukiwania klas danych schematu. Spowoduje to wygenerowanie raportu dla każdej tabeli i kolumny ze wstępnie sklasyfikowanymi informacjami umożliwiającymi identyfikację użytkownika, utworzenie pliku klasy danych specyficznego dla Twojego projektu i otwarcie edytora formularzy dla tego pliku. W tym oknie edycji (nasz następny krok po tym) możesz przejrzeć i zmodyfikować swoją klasę danych i definicje reguł maskowania przed przejściem do globalnego maskowania danych w ostatnim kroku.
Kreatora można uruchomić z grupy menu Wykrywanie danych na pasku narzędzi IRI Workbench. Możesz również uruchomić kreatora wyszukiwania bezpośrednio z Eksploratora źródeł danych, aby wstępnie wypełnić kreatora wybranym schematem. Kliknij prawym przyciskiem myszy schemat SCOTT w Eksploratorze źródeł danych (DSE) i wybierz IRI> Wyszukiwanie klas danych schematu .
Na stronie konfiguracji kreatora wyszukiwania wprowadź lokalizację, w której chcesz zapisać plik klasy danych. W każdym projekcie może być tylko jeden plik tego typu, stąd status tylko do odczytu pola nazwy. Pozostaw wartości domyślne bez zmian. Kliknij Dalej .
Strona wejściowa pokazuje, że wybrano jeden schemat. Kliknij Dalej . Następna strona pozwala ograniczyć przeszukiwane kolumny według typów danych. Uwzględnij NUMERYCZNE i kliknij Dalej .
Strona Wyklucz elementy umożliwia wykluczenie tabel lub kolumn podczas skanowania. Kliknij Dalej .
Strona klasy danych umożliwia filtrowanie klas danych, które będą używane podczas skanowania. Wybierz tylko CREDIT_CARD , E-MAIL , L(AST)?[_-]?NAME, PHONE_US i PIN_US . Kliknij Zakończ .
Wraz z raportami tworzy to (lub dołącza) bibliotekę klas danych z mapowaniami między kolumnami źródłowymi i klasami danych. Otwierający się edytor formularzy umożliwia przypisanie reguł do wyników.
To przeszukanie 46 tabel dało 18 dopasowań kolumn, które są w większości, ale nie w pełni kompletne:
Wiem, że kilka kolumn nie zostało dopasowanych, ponieważ tabele są puste lub nazwy nie znajdują dopasowań w zestawach. W następnym kroku mogę zająć się tymi błędami i potwierdzić moje zasady maskowania na podstawie tabeli.
Przejrzyj i dostosuj — Edytor biblioteki klas danych
Teraz, gdy wyniki wyszukiwania są otwarte w oknie edycji formularza biblioteki klas danych, możesz sprawdzać i modyfikować reguły kolumn na poziomie tabeli oraz eliminować puste tabele w schemacie z nazwami kolumn pasującymi do nazw klas danych. Wszystko to pomaga potwierdzić, że masz poprawnie skonfigurowane zadanie maskowania zbiorczego.
Należy zauważyć, że ten widok obsługuje również wyniki wyszukiwania w postaci plików prostych (klasa danych katalogowych) wraz z wynikami wyszukiwania w bazie danych. Łącząc te wyniki z biblioteką klas danych, łatwiej jest zachować takie same funkcje maskowania (reguły) w różnych źródłach danych. Pomaga to zachować integralność referencyjną i spójność danych testowych w bardziej rozproszonych środowiskach aplikacji.
Kliknij źródło danych (tabela), aby wyświetlić szczegółowe informacje o tym źródle i podgląd zawartych w nim danych. Jeśli dokonano dopasowania do klasy danych, ta kolumna pokazuje tę klasę i sposób jej dopasowania.
W przypadku mojej tabeli PERSONS poniżej widać, że:wszystkie wartości kolumn SSN pasowały do wzorca RegEx mojej klasy danych PIN_US, a kolumny LASTNAME i CREDIT_CARD pasowały do ich nazw klas danych, co wyklucza konieczność skanowania tych kolumn.
Edycję mapowania klas danych można wprowadzić, zmieniając klasę danych za pomocą listy rozwijanej lub odznaczając kolumnę, aby całkowicie usunąć mapowanie. Jeśli tabela jest pusta, może nie przypisywać wszystkich żądanych mapowań. Można to zrobić na trzy sposoby:
- Możesz dodać tabele do strony wykluczenia w kreatorze klasyfikacji powyżej, aby nie zostały dodane do biblioteki klas danych
- Jeśli tabela może zawierać dane w przyszłości, przypisz tutaj ręcznie klasy danych. Wtedy albo
- Odznacz je w kreatorze maskowania
- Pozostaw je, a kreator maskowania utworzy skrypty zadań, które działają, ale nie maskują
- lub usuń źródło danych z biblioteki klas danych
W tym przykładzie wybierz następujące źródła danych i kliknij Usuń ponieważ są puste lub nie trzeba ich maskować:
SCOTT.DEMO_ROWGEN
SCOTT.DM_EMPLOYEES
SCOTT.PATIENT_RECORD_ENCRYPTED
Należy zadbać o zweryfikowanie wyników w bibliotece klas danych przed maskowaniem. Czasami dopasowania są pomijane, ponieważ dane są nieprawidłowe lub konieczne jest zmodyfikowanie programu dopasowującego klasy danych. Możliwe jest również wystąpienie fałszywych alarmów.
W tym przykładzie klasę danych należy przypisać ręcznie, ponieważ istnieją nieprawidłowe formaty adresów e-mail i numerów telefonów w USA, ale mimo to chcemy zamaskować te kolumny. Możemy wybrać i sklasyfikować tę kolumnę jako:
SCOTT.EMPLOYEES.PHONE_NUMBER> PHONE_US
Po przejrzeniu wyników i zmodyfikowaniu ich w razie potrzeby kliknij klasy danych w bibliotece po lewej stronie, aby przypisać domyślne reguły. Umożliwi to przypisanie reguł do wszystkich źródeł poprzez przypisanie domyślnej reguły do klasy.
W tym przykładzie przypisałem moje reguły maskowania do klas danych w bibliotece w następujący sposób:
CREDIT_CARD> FieldEncryptionRule
EMAIL> FieldEncryptionRule
L(AST)?[_-]?NAME> LNamePseudonimRule
PHONE_US> FieldEncryptionRule
PIN_US> SSNRedactionRule
Możesz sprawdzić, czy globalne przypisania reguł propagowane są w pełni i poprawnie w źródłach danych, przeglądając reguły maskowania w każdym z nich. Na przykład w tabeli SCOTT.PERSONS pokazanej po raz pierwszy z regułami mamy teraz:
Jeśli w kolumnie w określonej tabeli brakuje reguły lub wymaga innej reguły, reguła ta może zostać dodana lub zmodyfikowana po zastosowaniu reguł domyślnych, adresując je w każdym źródle danych.
Maska — uruchom kreatora maskowania bazy danych klasy danych
Po upewnieniu się, że do klas danych przypisano właściwe reguły maskowania, można przystąpić do ich globalnego zastosowania.
Kliknij prawym przyciskiem myszy iriLibrary.dataclass w folderze projektu w drzewie Eksploratora projektów IRI Workbench i wybierz IRI> Nowe zadanie maskowania bazy danych klasy danych . Na pierwszej stronie kreatora sprawdź, czy folder projektu to miejsce, w którym zapisano klasę danych i bibliotekę reguł, i nazwij zadanie. Wybierz Pokaż stronę podsumowania aby zobaczyć szczegóły pracy.
Kreator umożliwia aktualizację zamaskowanych wyników w Takim samym tabele źródłowe (aby je zamaskować statycznie), na Różne tabele docelowe lub do plików płaskich (zalecane), aby można było najpierw zweryfikować wyniki i załadować je do celów. Zmień Wyjście do plików płaskich i kliknij Dalej .
Na stronie Filtr klas danych pozostaw zaznaczone wszystkie klasy danych. Kliknij Dalej . Na stronie Źródła danych pozostaw wszystkie zaznaczone elementy. Jeśli istnieją tabele, na których nie chcesz uruchomić zadania, odznacz je tutaj.
Ponieważ wybrałem wyświetlanie ekranu podsumowania, mogę zweryfikować pracę:
przed kliknięciem Zakończ .
Następnie tworzone są skrypty i otwierany jest diagram przepływu, aby zilustrować całe zadanie, które jest również serializowane jako plik wsadowy systemu Windows (lub Unix). Każda tabela, która będzie miała maskowaną kolumnę, jest reprezentowana przez brązowy blok mapowania transformacji, który jest serializowany w skrypcie zadania.
Przejrzyj operacje maskowania, klikając dwukrotnie bloki odwzorowania transformacji i sprawdzając pomarańczowe linie do celów. Oznaczają one zmianę kolumn z danych wejściowych.
Kliknij pola po prawej stronie pomarańczowej linii i zobacz widok właściwości na dole ekranu. Polecenie Advanced Field pokazuje zastosowaną transformację (funkcję maskowania).
Po zaznajomieniu się z utworzonym zadaniem maskowania uruchom je. W new_classProtection kliknij prawym przyciskiem myszy plik new_classProtection.bat plik i wybierz Uruchom jako> Program wsadowy .
Zadanie działa w wierszu poleceń, a zamaskowane pliki wyjściowe można otwierać do przeglądania z folderu projektu lub systemu plików. Rzeczywiście, po uruchomieniu operacji wsadowej wszystkie skrypty zadań maskujących i dane wyjściowe w postaci plików płaskich są wyświetlane w moim nowym folderze zadań.
Poniższy zrzut ekranu pokazuje te po lewej stronie, stan przed i po jednej z moich tabel, OSOBY, pośrodku, a konkretne instrukcje zadań w formie skryptu i konspektu po prawej stronie. Zobacz, jak trzy kolumny sklasyfikowane i przypisane do reguł w tej tabeli zostały zamaskowane zgodnie z planem:
Po uruchomieniu zadania masowania wsadowego możesz dwukrotnie sprawdzić wyniki, zanim:
- załaduj je do tabel w IRI Workbench (który może automatycznie tworzyć pliki ładujące);
- zmodyfikuj zadanie, aby wprowadzić zmiany; i/lub
- uruchom ponownie kreatora, aby zamiast tego skierować dane wyjściowe do tabel.
Te zadania maskowania są uruchamiane w wierszu poleceń i mogą być uruchamiane lub zaplanowane w celu odświeżenia danych i automatycznej archiwizacji. Skontaktuj się, jeśli masz jakiekolwiek pytania lub potrzebujesz pomocy w dowolnym aspekcie tego kompleksowego procesu konfiguracji lub jego wdrożenia.
- Aby wykluczyć możliwość uzyskania fałszywie pozytywnych wyników wyszukiwania na kartach kredytowych i krajowych numerach identyfikacyjnych, możesz automatycznie przeprowadzić sprawdzanie poprawności obliczeniowej podczas przeszukiwania wartości dopasowanych do wzorca. Wybierz lub utwórz skrypt walidacji klasy danych, aby powiązać go z definicją klasy danych.
- Jeśli używasz FieldShield w Vracity, możesz jednocześnie lub kolejno sortować te pliki według podstawowego klucza indeksu tabeli docelowej, aby przyspieszyć ładowanie zbiorcze i typowe zapytania.