Ćwiczenie — Zabezpieczanie danych przesyłanych, przechowywanych i wyświetlanych

Ukończone

Baza danych marketplaceDb przechowuje informacje poufne, takie jak adresy fizyczne, adresy e-mail i numery telefonów. Jeśli zostaną ujawnione, złośliwi atakujący mogą użyć tych informacji, aby zaszkodzić twojej firmie lub klientom. Przyjrzyj się sposobom używania szyfrowania i maskowania danych w celu zwiększenia bezpieczeństwa bazy danych.

Szyfrowanie sieciowe TLS

Usługa Azure SQL Database wymusza szyfrowanie tls (Transport Layer Security) zawsze dla wszystkich połączeń, co gwarantuje, że wszystkie dane są szyfrowane podczas przesyłania danych między bazą danych a klientem. Korzystając z szyfrowania TLS, można upewnić się, że każdy, kto może przechwycić ruch między serwerem aplikacji i bazą danych, nie będzie mógł odczytać danych. Szyfrowanie TLS jest standardem zabezpieczania ruchu w Internecie, a w tym przypadku gwarantuje, że ruch sieciowy do i z usługi Azure SQL Database jest domyślnie zabezpieczony.

Transparent Data Encryption

Usługa Azure SQL Database chroni dane magazynowane za pomocą technologii przezroczystego szyfrowania danych — Transparent Data Encryption (TDE). Technologia TDE w czasie rzeczywistym szyfruje i odszyfrowuje magazynowaną bazę danych, skojarzone kopie zapasowe i pliki dzienników transakcji bez konieczności wprowadzania jakichkolwiek zmian w aplikacji. Funkcja Transparent Data Encryption wykonuje szyfrowanie we/wy w czasie rzeczywistym i odszyfrowywanie danych na poziomie strony przy użyciu klucza szyfrowania bazy danych. Każda strona jest odszyfrowywana podczas wczytywania do pamięci, a następnie szyfrowana przed zapisaniem na dysku.

Technologia TDE jest domyślnie włączona dla wszystkich nowo wdrożonych baz danych usługi Azure SQL Database. Ważne jest, aby sprawdzić, czy szyfrowanie danych nie jest wyłączone. Starsze bazy danych programu Azure SQL Server mogą nie mieć włączonej funkcji TDE.

Zapoznaj się z witryną Azure Portal, w której skonfigurowano funkcję TDE w bazie danych marketplaceDb .

  1. Zaloguj się do witryny Azure Portal przy użyciu tego samego konta, za pomocą którego aktywowano piaskownicę.

  2. Na pasku wyszukiwania w górnej części witryny Azure Portal wyszukaj pozycję marketplaceDb, a następnie wybierz bazę danych.

  3. W okienku menu po lewej stronie w obszarze Zabezpieczenia wybierz pozycję Szyfrowanie danych.

  4. Sprawdź, czy dla opcji Szyfrowanie danych jest ustawiona wartość Włączone. Ponadto stan szyfrowania powinien mieć wartość Zaszyfrowane.

Ponieważ nowe bazy danych są domyślnie szyfrowane, możesz mieć pewność, że dane są szyfrowane na dysku od razu po utworzeniu bazy danych.

Uwaga

Platforma Azure obejmuje wbudowaną usługę o nazwie Microsoft Defender dla Chmury, która zapewnia wgląd w zabezpieczenia środowiska, w tym bazy danych Azure SQL Database. Microsoft Defender dla Chmury flaguje wszystkie bazy danych, które nie mają włączonej funkcji TDE, umożliwiając raportowanie i podejmowanie działań w celu zabezpieczenia danych.

Dynamiczne maskowanie danych

Możesz zauważyć, że podczas uruchamiania zapytania w poprzedniej lekcji niektóre informacje w bazie danych są poufne. Istnieją numery telefonów, adresy e-mail i inne informacje, które mogą nie być w pełni wyświetlane wszystkim osobom z dostępem do danych.

Być może nie chcesz, aby użytkownicy mogli zobaczyć pełny numer telefonu lub adres e-mail, ale nadal chcesz udostępnić część danych przedstawicielom działu obsługi klienta w celu zidentyfikowania klienta. Korzystając z funkcji dynamicznego maskowania danych usługi Azure SQL Database, można ograniczyć dane wyświetlane użytkownikowi. Dynamiczne maskowanie danych to funkcja zabezpieczeń oparta na zasadach, która ukrywa poufne dane w zestawie wyników zapytania w wyznaczonych polach bazy danych, podczas gdy dane w bazie danych nie są zmieniane.

Reguły maskowania danych składają się z kolumny, do której ma być zastosowana maska, oraz z instrukcji, jak dane powinny być maskowane. Możesz utworzyć własny format maskowania lub użyć jednej ze standardowych masek, takich jak:

  • Wartość domyślna — wyświetla domyślną wartość dla danego typu danych.
  • Wartość karty kredytowej, która pokazuje tylko cztery ostatnie cyfry liczby, konwertując wszystkie inne liczby na małe litery x.
  • Adres e-mail — ukrywa nazwę domeny i wszystko oprócz pierwszego znaku nazwy konta e-mail.
  • Liczba — podaje losową liczbę z określonego zakresu wartości. Na przykład dla miesiąca i roku wygaśnięcia karty kredytowej można wybrać losowy miesiąc z zakresu od 1 do 12 i ustawić zakres lat od 2018 do 3000.
  • Niestandardowy ciąg, który pozwala ustawić liczbę widocznych znaków od początku danych, liczbę widocznych znaków od końca danych i znaki, które mają być powtarzane dla pozostałej części danych.

Gdy administratorzy bazy danych wysyłają zapytania o kolumny, nadal widzą oryginalne wartości. Nieadministratorzy widzą zamaskowane wartości. Możesz zezwolić innym użytkownikom na wyświetlanie niemaskowanych wersji, dodając je do użytkowników SQL wykluczonych z listy maskowania.

Zobacz, jak maskowanie danych będzie działać w bazie danych marketplaceDb .

  1. W portalu na panelu bazy danych marketplaceDb w okienku menu po lewej stronie w obszarze Zabezpieczenia wybierz pozycję Dynamiczne maskowanie danych.

    Na ekranie reguł maskowania jest wyświetlana lista istniejących dynamicznych masek danych i zalecenia dotyczące kolumn, dla których ma być potencjalnie zastosowana dynamiczna maska danych.

    Screenshot of the Azure portal showing a list of the recommended masks for the various database columns of a sample database.

  2. Dodaj maskę dla numeru telefonu, który wyświetla tylko cztery ostatnie cyfry. Wybierz przycisk Dodaj maskę u góry, aby otworzyć okno dialogowe Dodawanie reguły maskowania.

  3. Wybierz następujące wartości.

    Ustawienie Value
    Schemat SalesLT
    Tabela kliencie
    Kolumna Phone (nvarchar)
    Format pola z maskowaniem Ciąg niestandardowy (prefiks [dopełnienie] sufiks)
    Ujawniany prefiks 0
    Ciąg wypełnienia XXX-XXX-
    Ujawniany sufiks 100
  4. Wybierz przycisk Dodaj, aby dodać regułę maskowania.

    Screenshot of the Azure portal showing the values to add a masking rule.

  5. Dodaj jeszcze jeden adres e-mail. Ponownie wybierz przycisk Dodaj maskę u góry, aby otworzyć okno dialogowe Dodawanie reguły maskowania.

    Ustawienie Value
    Schemat SalesLT
    Tabela kliencie
    Kolumna EmailAddress (nvarchar)
    Format pola z maskowaniem Adres e-mail (aXXX@XXX.com)
  6. Wybierz przycisk Dodaj, aby dodać regułę maskowania.

  7. Każda nowa maska jest dodawana do listy reguł maskowania. Wybierz pozycję Zapisz , aby zastosować maski.

Zobacz, jak maskowanie danych zmienia zapytanie.

  1. Teraz zaloguj się ponownie do bazy danych, ale jako użytkownik ApplicationUser .

    sqlcmd -S tcp:serverNNNNN.database.windows.net,1433 -d marketplaceDb -U 'ApplicationUser' -P '[password]' -N -l 30
    
  2. Uruchom poniższe zapytanie.

    SELECT FirstName, LastName, EmailAddress, Phone FROM SalesLT.Customer;
    GO
    

    Sprawdź, jak dane wyjściowe są maskowane.

    FirstName     LastName      EmailAddress         Phone
    ------------- ------------- -------------------- ------------
    Orlando       Gee           oXXX@XXXX.com        XXX-XXX-0173
    Keith         Harris        kXXX@XXXX.com        XXX-XXX-0127
    Donna         Carreras      dXXX@XXXX.com        XXX-XXX-0130
    Janet         Gates         jXXX@XXXX.com        XXX-XXX-0173
    ...
    

Po utworzeniu reguł maskowania dane są maskowane przy użyciu określonego formatu. Te reguły umożliwiają przedstawicielom działu obsługi klienta zweryfikowanie klienta z czterema ostatnimi cyframi ich numeru telefonu, ale ukrywa pełny numer i adres e-mail klienta z widoku.