Chmura w praktyce część 2 – bezpieczeństwo danych w chmurze (na przykładzie SQL databases w Azure)

 

We wpisie

Co to jest chmura i czy może nam się przydać?

jako jeden ze sposobów wykorzystania chmury w naszym środowisku informatycznym podałem wykorzystanie jej dość szeroko pojętej funkcjonalności nazwanej „baza danych”. Wpis ten jednak nie będzie roztrząsał rodzajów tego typu mechanizmów w poszczególnych typach chmury czy mechanizmów rozliczania. Uznajmy, że tego typu aspekty są do przedyskutowania na konkretnym przykładzie biznesowym. Tym wpisem chciałem zwrócić uwagę na bezpieczeństwo danych przechowywanych w mechanizmach chmurowych na przykładzie bazy danych. Wiadomo, rozwiązań chmurowych jest wiele i generalnie dostawcy radzą sobie z aspektami bezpieczeństwa na różne sposoby.

Na co warto zwrócić uwagę z punktu widzenia administratora danych osobowych i/lub pracowników działu IT w placówce medycznej?

Przepisy RODO regulują i dopuszczają powierzenie danych osobowych podmiotom trzecim, także w kontekście uwarunkowań formalno-prawnych przetwarzanie danych placówki ochrony zdrowia w chmurze nie jest wykluczone. Komisja Europejska w motywie 81 preambuły RODO wskazuje na konieczność korzystania wyłącznie z usług takich podmiotów przetwarzających, które zapewniają wystarczające gwarancje wdrożenia odpowiednich środków technicznych i organizacyjnych w szczególności jeżeli chodzi o wiedzę fachową, wiarygodność i zasoby, odpowiadających wymaganiom bezpieczeństwa przetwarzania, w tym wymaganiom określonym przez RODO.

Najlepszą wskazówką w szukaniu odpowiedniego usługodawcy usług chmurowych (także zgodnie z zaleceniami CZIOZ) mogą być międzynarodowe standardy postępowania z danymi osobowymi a zatem normy takie jak ISO/IEC 27001, ISO/IEC 27002, ISO/IEC 22301 oraz normy „branżowe” np. ISO 13606-1, ISO 13606-4.

Warto zwrócić też uwagę na normę ISO/IEC 27018, która nakłada następujące wymagania względem dostawców rozwiązań chmurowych:

  • Dane osobowe mogą być przetwarzane tylko i wyłącznie za wyrażeniem zgody przez klienta oraz wyłącznie do celów nieosobistych, oprócz sytuacji wyrażenia zgody przez klienta na tego rodzaju działanie.
  •  Należy zdefiniować procesy określające: zwrot, przekazanie, zniszczenie danych osobowych.
  •  Przed zakończeniem umowy należy ujawnić wszelkie podzlecenia usług przetwarzania oraz wszystkie kraje, w których występuje przetwarzanie danych.
  • Każdego rodzaju naruszenie ochrony danych należy udokumentować – łącznie z ustalonymi krokami rozwiązywania problemów i możliwymi następstwami.
  • Naruszenie ochrony danych należy niezwłocznie zgłosić klientowi
  • Należy wspierać klientów w zakresie postrzegania swoich praw: klientom, których dane przetwarzane są w chmurze należy oferować narzędzia, pozwalające by końcowi użytkownicy mogli uzyskać dostęp do swoich danych osobowych, w celu ich zmiany, usunięcia lub korekcji.
  • Przekazanie danych osobowych organom ścigania może nastąpić tylko i wyłącznie w przypadku istnienia prawnych zobowiązań w tym zakresie. Należy poinformować klienta, objętego takim postępowaniem, o ile informacja ta nie została utajniona.
  • Oferowane usługi „danych w chmurze” należy poddać regularnym kontrolom przez osoby trzecie.

Praktyka

Normy można sprawdzić i to istotne. Warto jednak wiedzieć jak to wygląda w praktyce. Aby od tego zacząć umieszczam poniżej do obejrzenia krótki filmik Microsoftu o tym w jaki sposób wygląda fizyczne i proceduralne zabezpieczenie do centrów danych będących częścią platformy Azure. Czy w szpitalu też tak macie? 🙂

Z ciekawostek – trwają ostre przygotowania do uruchomienia w Polsce platformy Azure Stack ( https://itreseller.com.pl/wspolna-oferta-microsoft-i-beyond-pl-w-oparciu-o-azure-stack-polscy-klienci-z-mozliwoscia-przetwarzania-danych-w-chmurze-z-lokalnego-polskiego-centrum-danych/ ). W centrum danych Beyond w Poznaniu powstanie zatem nasza „lokalna” platforma Azure`owa – gdyby ktoś się uparł na trzymanie danych u nas w kraju to idealne rozwiązanie. Ja jednak takiej potrzeby nie widzę, chociaż chętnie zmigruję kogoś do PL 🙂

Dlaczego Azure?

Działam na platformie Azure po pierwsze dlatego, że ją znam i wiem w jaki sposób wykorzystać niezliczone funkcjonalności do spełnienia naszych wymagań biznesowych w szeroko pojętym świecie medycyny. Po drugie dlatego, że bogactwo funkcjonalności i tempo rozwoju platformy jest ogromne. Świadczą o tym chociażby funkcjonalności, które poniżej zaprezentuję – jeszcze niedawno ich po prostu nie było. Po trzecie dlatego, że uważam, że to jest dobry wybór. I wcale nie oznacza to, że ograniczam się w swoich rozważaniach z klientami tylko do tej platformy. Znam wiele rozwiązań (OVH, Aruba Cloud, 3s DataCenter, Infomex DC) i w większym lub mniejszym stopniu z nich korzystam. Biorąc jednak pod uwagę funkcjonalności typowo usługowe – zwłaszcza mechanizmy PaaS Azure i AWS przodują i z pewnością będą.

Meritum

Wracając jednak do tematu. Jedną z przynajmniej kilku możliwości utworzenia bazy danych w Azure jest skorzystanie z usługi SQL database. Utwórzmy zatem nową instancję. W „Select source” wybrałem „Sample” – aby jakieś dane już były. Załóżmy, że to nasza baza pacjentów (a, że w tym przykładzie dane osobowe są to dobry przykład).

Po utworzeniu bazy możemy wejść w jej Dashboard:

Pragnę skupić się na następujących aspektach:

  • Set server firewall
  • Auditing and Threat Detection
  • Vulnerability Assesment
  • Data discovery and classifications
  • Dynamic Data Masking
  • Transparent data encryption.

Set server firewall – prosta funkcjonalność pozwalająca ustalić sobie zasady dostępu do bazy danych. W ustawieniach defaultowych mając server name (his1.database.windows.net) oraz użytkownika i hasło z bazą się po prostu połączymy. Można to okroić – do konkretnych adresów IP lub do konkretnych sieci wirtualnych. W tym wypadku prosta droga do skorzystania z mechanizmów opisanych we wpisie:

Chmura w praktyce – część 1 – VPN

Auditing and Threat Detection

Opcja inspekcji i wykrywania zagrożeń może zostać uruchomiona na poziomie pojedynczej instancji bazy danych lub na poziomie całego serwera. Domyślnie opcja Server-level jest wyłączona zarówno dla audytowania jak i wykrywania zagrożeń. Przy uruchamianiu tej opcji można podać także adres e-mail, na który będą przychodzić powiadomienia z alertami. Możemy wybrać tez wybrane zagrożenia, które mają być monitorowane.

Aha.. oto tabele w naszej bazie danych. Jak wcześniej wspomniałem to przykładowa baza, wypełniona danymi.

Po konfiguracji możemy sobie wyklinać pierwszy raport. Zawiera on wszystkie monitorowane przez nas aktywności wraz ze szczegółami – czyli. np który użytkownik jaką instrukcję lub operację na bazie danych wykonał lub chciał wykonać, z jakiego adresu ip itp. Dane możemy dowolnie filtrować a w przypadku gdy chcemy skorzystać z tych danych możemy podłączyć się do mechanizmu poprzez REST API.

Vulnerability Assesment

Ocena luk w zabezpieczeniach czy jak kto woli po prostu ocena podatności pozwala na automatyczny skan konfiguracji serwera bazy danych oraz danych zawartych w bazie. Wynikiem takiego skanowania jest rozbudowany raport zabezpieczeń bazy danych w następujących obszarach:

  • inspekcja i rejestrowanie
  • uwierzytelnianie i autoryzacja
  • zmniejszenie obszaru powierzchni
  • ochrona danych.

Jak widać na zrzucie powyżej mamy wyszczególnione wszystkie zadeklarowane i przeprowadzone kontrole oraz finalny status ich wykonania a także podsumowanie ryzyk wg. statusów (wysokie, niskie średnie). Szczegółowy raport rodzaju sprawdzanego zabezpieczenia, jego kategorii, instancji której dotyczy pozwala przyjrzeć się dokładnie wszystkim obszarom ryzyka. Mało tego – klikając na dane ryzyko otrzymujemy szczegółowy opis problemu a także zalecenie jego rozwiązania. Dla naszej bazy na przykład mamy informację, że niektóre kolumny w tabelach mogą zwierać dane wrażliwe (w rozumieniu Azure – mogą to być zatem dane osobowe lub inne). Dzięki temu możemy zareagować dokładając należytej staranności w opiece nad swoimi danymi. W opisanym przypadku w celu skorygowania tego problemu zostaniemy przeniesieni do Dynamic Data Masking, którą opisałem poniżej.

Data discovery and classifications

Kolejnym obszarem do analizy pod kątem bezpieczeństwa naszych danych w bazie jest mechanizm odnajdowania i klasyfikacji danych. Jest to narzędzie pozwalające nam na oznaczenie wszystkich kolumn w tabelach typem informacji która jest w danej kolumnie zawarta (np. Contact Info, Name, CreditCard) oraz nadania etykiet poufności. Dostępne na ten moment etykiety to:

Dodatkowo system sam rozpoznaje nam według swoich algorytmów typy danych i daje propozycje konfiguracji, którą możemy zaakceptować w całości lub częściowo wykorzystać. W razie konieczności system podpowiada nam także zalecenia do wykonania dla skonfigurowanej klasyfikacji danych.

Po zapisaniu klasyfikacji otrzymujemy rozkład przydzielonych etykiet oraz rozkład typu informacji w naszej bazie danych w przystępnej, graficznej formie. Raport ten możemy wyeksportować do Excela i dołączyć do swojej dokumentacji związanej z RODO.

Dynamic Data Masking

W skrócie dynamiczne maskowanie danych pomaga zapobiegać nieautoryzowanemu dostępowi do poufnych danych, umożliwiając klientom określenie, jak wiele wrażliwych danych ma się ujawnić przy minimalnym wpływie na warstwę aplikacji. Funkcja ta pozwala przykładowo wyświetlenie tylko części danych osobowych w recepcji placówki. W celu weryfikacji rozmówcy telefonicznego w systemie osobie obsługującej zgłoszenie mogą pojawić się wybrane dane osoby dzwoniącej – np. nazwisko, miejscowość zamieszkania oraz pierwsza i trzy ostatnie cyfry numeru PESEL. Myślę, że biznesowych zastosowań tej funkcjonalności w obliczu RODO czy po prostu mając świadomość wrażliwości tego typu danych (także proceduralną) można znaleźć wiele.

Transparent data encryption

Funkcjonalność ta wykonuje w czasie rzeczywistym szyfrowanie i deszyfrowanie bazy danych, powiązanych kopii zapasowych i plików dziennika transakcji bez konieczności wprowadzania zmian w aplikacji. Do realizacji tego zadania możemy wykorzystać zdefiniowane samodzielnie klucze znajdujące się w Key Picker. Dzięki wykorzystaniu tego mechanizmy mamy pewność, że wszystkie aplikacje i sposoby komunikowania się z naszą bazą danych otrzymują i wysyłają do niej dane zaszyfrowane.


Podsumowanie

Mam nadzieję, że opisane powyżej możliwości konfiguracji i dostosowania bazy danych do swoich restrykcyjnych potrzeb odnośnie przetwarzania danych rzucą nowe światło na ten temat. Zaznaczam, że wzięta na tapetę została tutaj tylko jedna z funkcjonalności – baza danych. Mechanizmów tych, dla różnych typów usług jest dużo więcej i postaram się o nich sukcesywnie pisać. Gdyby ktoś chciał poklikać sobie na żywo zapraszam do kontaktu – udostępnię subskrypcje testową bez konieczności podawania namiarów na swoją kartę kredytową 😉


Source: itwmedycynie