Elasticsearch to wyszukiwarka oparta na Javie, która ma interfejs HTTP i przechowuje swoje dane w dokumentach JSON wolnych od schematów. Niestety, fala kosztownych i bolesnych naruszeń danych osobowych (PII) nadal nęka internetowe bazy danych Elasticsearch:
Gdyby wszystkie dane osobowe lub inne poufne informacje w tych bazach danych były zamaskowane, udane ataki hakerskie i kopie programistyczne mogą nie stanowić problemu. Celem IRI DarkShield jest zablokowanie tych informacji w produkcji lub testowaniu przy użyciu funkcji anonimizacji zgodnych z prawem prywatności.
Kreator wyszukiwania i maskowania Elasticsearch w graficznym IDE IRI Workbench dla IRI DarkShield używa tych samych narzędzi, co złącza MongoDB i Cassandra opisane w tym artykule. Ten kreator może być używany do klasyfikowania, lokalizowania i deidentyfikacji lub usuwania danych osobowych i innych poufnych informacji przechowywanych w kolekcjach Elasticsearch oraz do generowania wyników wyszukiwania i audytu.
Konfiguracja
Jeśli nie masz klastra Elasticsearch, z którym możesz się połączyć, możesz łatwo utworzyć klaster lokalny, pobierając Elasticsearch stąd i postępując zgodnie z instrukcją.
Do demonstracji tego kreatora używam jednego indeksu o nazwie klienci w klastrze hostowanym lokalnie. Ten indeks przechowuje podstawowe informacje o klientach, które normalnie byłyby widoczne na koncie i stanowią bogaty cel nadużyć. Obejmuje to:adres e-mail, imię i nazwisko oraz numer telefonu:
Wyszukaj
Podobnie jak w przypadku innych źródeł danych obsługiwanych przez DarkShield, musisz utworzyć .search plik specyfikacji pracy, aby zdefiniować kryteria skanowania i rynku. Tak jak w przypadku MongoDB lub Cassandra, wybierz Nowe zadanie wyszukiwania/maskowania NoSQL… z menu DarkShield na pasku narzędzi IRI Workbench. Wybierz folder projektu i wprowadź nazwę zadania.
Na następnej stronie utwórz źródłowy identyfikator URI:
Tutaj wprowadzasz parametry klastra Elasticsearch. Domyślny host i port dla Elasticsearch to localhost i 9200, jeśli te pola pozostaną puste.
Jeśli klaster, z którym się łączysz, wymaga nazwy użytkownika i hasła, wprowadź je w sekcji uwierzytelniania. W tym przykładzie używam hosta:localhost, portu:9200 i klastra:Elasticsearch.
Na tej stronie można również dodać nazwę użytkownika i hasło. Dla uproszczenia tej demonstracji klaster lokalny nie został skonfigurowany z myślą o bezpieczeństwie. Każdy prawdziwy klaster powinien mieć login i uprawnienia włączone dla rzeczywistych przypadków użycia.
Kliknij OK zakończyć, a nastąpi powrót do poprzedniej strony. Wpisz indeks, który chcesz przeszukać. W tym przykładzie używam indeksu o nazwie klienci .
Następnie musisz ustawić docelowy identyfikator URI dla zamaskowanych wyników. Należy pamiętać, że tylko zamaskowane wyniki Elasticsearch mogą być wysyłane tylko do celów Elasticsearch. W tym przypadku będę używał tego samego identyfikatora URI klienta utworzonego wcześniej, ale z innym indeksem. Spowoduje to utworzenie nowego indeksu z zamaskowanymi wynikami, które zostaną utworzone później w tej demonstracji.
Następnie zostaniesz poproszony o utworzenie Search Matcher, który jest odpowiedzialny za powiązanie klasy danych z odpowiadającą jej regułą (maskowania) danych. Jest to niezbędny krok, ponieważ bez niego nie można zastosować maskowania.
Jak wyjaśniono w artykule dotyczącym klasyfikacji danych, klasy danych centralnie katalogują i definiują globalne kryteria wyszukiwania i maskowania danych osobowych w ustrukturyzowanych, częściowo ustrukturyzowanych lub nieustrukturyzowanych źródłach zarówno dla FieldShield, jak i DarkShield. IRI Workbench jest dostarczany z kilkoma predefiniowanymi klasami danych (np. nazwiska, adresy e-mail i IP, numery kart kredytowych), które można znaleźć w Okno> Preferencje> IRI> Klasy i grupy danych . Możesz je edytować i dodawać własne.
Kliknij opcję Przeglądaj lub Utwórz w wierszu Klasa danych. Przeglądaj pozwoli Ci wybrać własne klasy danych lub jedną z kilku predefiniowanych klas lub grup, w tym e-mail, numer telefonu i nazwiska. W tym przypadku grupa klas danych NAMES zawiera klasę danych imion.
Tutaj wybrałem klasę danych EMAIL, która będzie szukać wiadomości e-mail w moim indeksie Elasticsearch:
Teraz reguła maskowania musi zostać zastosowana do wybranej klasy danych. Kliknij przycisk Utwórz przycisk, aby utworzyć nową regułę danych, lub Przeglądaj aby użyć dowolnych, które już zdefiniowałeś.
W przypadku wiadomości e-mail wybieram funkcję redakcji:
Oczywiście jednocześnie można maskować więcej niż jedną klasę danych. Dodałem klasy i przypisałem funkcję szyfrowania zachowującą format do numerów telefonów oraz losowy pseudonim (ustaw wyszukiwanie plików) dla imion osób:
Jeśli potrzebne są jakieś filtry wyszukiwania, można je dodać na poprzedniej stronie. Filtry mogą być używane do znajdowania określonych wyników lub do izolowania określonych pól w CSV, XML, JSON lub RDB w celu zamaskowania, co wyklucza konieczność skanowania zawartości wierszy. Jednak w tym przypadku nie określiłem żadnego.
Kliknij Zakończ po zakończeniu. To kończy działanie kreatora i tworzy .search plik zawierający szczegóły konfiguracji DarkShield do wykonywania zadań wyszukiwania i/lub maskowania.
Uwaga: Jeśli używasz domyślnego klastra hostowanego lokalnie, takiego jak ten w tym przykładzie, upewnij się, że klaster jest włączony, ponieważ w przeciwnym razie wszelkie zadania wyszukiwania lub maskowania zakończą się niepowodzeniem. Możesz sprawdzić, czy serwer działa, otwierając przeglądarkę internetową i wpisując „http://localhost:9200/” w pasku adresu.
Wyszukiwanie i maskowanie
DarkShield obsługuje wyszukiwanie i maskowanie jako oddzielne lub jednoczesne operacje. W takim przypadku chcę najpierw wyszukać i zobaczyć, co znalazłem, zanim to zamaskuję. Dzieje się tak, ponieważ (większe) zadania maskowania mogą zająć trochę czasu, a ja mogę chcieć udoskonalić moje metody wyszukiwania i ponownie je zweryfikować.
Aby to zrobić, kliknij prawym przyciskiem myszy .szukaj plik i uruchom plik jako zadanie wyszukiwania. Spowoduje to utworzenie .darkdata z wynikami właśnie przeprowadzonego wyszukiwania. Artefakt pojawia się w Workbenchu w następujący sposób:
Po sprawdzeniu wyników możesz uruchomić plik .darkdata plik jako maska zadanie naprawienia kolekcji za pomocą określonej przeze mnie funkcji redakcyjnej.
Wcześniej wyszukiwane wyniki zostaną zamaskowane w lokalizacji docelowej. Aby to sprawdzić, możesz ponownie przeprowadzić wyszukiwanie i zobaczyć, że dane zostały teraz „zaciemnione” zgodnie z opisem; tj. zredagowane e-maile, pseudonimizowane imiona i numery telefonów zamaskowane za pomocą szyfrowania zachowującego format:
Jeśli potrzebujesz pomocy w ochronie swoich kolekcji Elasticsearch poprzez maskowanie ich danych w spoczynku za pomocą interfejsu DarkShield w IRI Workbench lub jego CLI, lub jakichkolwiek częściowo/nieustrukturyzowanych danych w locie za pośrednictwem interfejsu API REST DarkShield, wyślij e-mail na adres [email protected].