| Termin | Definicja |
|---|---|
| Widok a bezpieczeństwo danych | Widok pozwala ograniczyć dostęp do wybranych kolumn lub wierszy bez ujawniania całej tabeli. Widok a bezpieczeństwo danych w tabeliWidok jest logicznym sposobem przedstawienia wybranego fragmentu danych zapisanych w tabeli. Nie tworzy odrębnej kopii informacji, lecz definiuje zapytanie, którego wynik może być prezentowany użytkownikowi albo aplikacji. Dzięki temu można pokazać tylko określone kolumny, ograniczyć zestaw wierszy według warunku lub połączyć kilka tabel w uporządkowany obraz potrzebny do konkretnego zadania. Z perspektywy bezpieczeństwa danych ma to znaczenie, ponieważ osoba korzystająca z widoku nie musi otrzymywać bezpośredniego dostępu do całej tabeli źródłowej. Przykładowo tabela pracowników może zawierać imię, nazwisko, dział, adres, numer telefonu, wynagrodzenie i informacje kadrowe. Widok przeznaczony do codziennego kontaktu może udostępniać wyłącznie imię, nazwisko, dział oraz służbowy numer telefonu. Dane dotyczące wynagrodzenia i prywatnego adresu pozostają poza wynikiem zapytania. W innym przypadku widok może prezentować tylko rekordy przypisane do określonego działu albo tylko dokumenty znajdujące się w ustalonym stanie. Takie ograniczenie nie powinno być traktowane jako pełna ochrona sama w sobie. Bezpieczeństwo zależy również od uprawnień, sposobu logowania, konfiguracji aplikacji, ochrony kopii zapasowych, szyfrowania połączeń oraz kontroli nad kontami użytkowników. Widok jest jednym z elementów warstwy kontroli dostępu, a jego skuteczność wymaga sprawdzenia w całym przepływie informacji. Widok danych i bezpieczeństwo w porównaniu z innymi metodamiWidok można porównać z kilkoma sposobami ograniczania dostępu. Najbardziej bezpośrednią metodą jest nadanie uprawnień do całej tabeli. Takie rozwiązanie bywa proste, lecz często udostępnia więcej informacji, niż jest potrzebne do wykonania zadania. Odebranie prawa do tabeli usuwa dostęp do wszystkich jej elementów, nawet wtedy, gdy użytkownik powinien widzieć część rekordów. Widok pozwala wprowadzić bardziej precyzyjny podział. Inną metodą jest przygotowanie osobnej tabeli zawierającej wybrane dane. Tabela może ułatwiać pracę aplikacji, ale wymaga synchronizacji z tabelą źródłową. Jeżeli aktualizacja zostanie pominięta, pojawia się ryzyko korzystania z nieaktualnych informacji. Widok zwykle odczytuje dane zgodnie z bieżącym stanem źródła, dlatego ogranicza problem rozbieżności. Jednocześnie zapytanie definiujące widok powinno być kontrolowane, ponieważ zmiana jego treści może rozszerzyć zakres ujawnianych informacji. Widok różni się także od anonimizacji. Anonimizacja zmienia sposób przedstawienia danych tak, aby utrudnić powiązanie rekordu z konkretną osobą. Widok może natomiast nadal zwracać dane pozwalające na identyfikację, tylko w węższym zakresie. Nie należy więc zakładać, że samo ukrycie części kolumn usuwa obowiązki związane z ochroną danych osobowych. Jeżeli wynik zawiera informacje o osobach, nadal trzeba ocenić cel dostępu, zakres przetwarzania oraz możliwość dalszego udostępnienia. W środowisku wieloużytkownikowym przydatne może być połączenie widoków z rolami. Jedna rola otrzymuje dostęp do widoku z danymi operacyjnymi, inna do widoku analitycznego, a jeszcze inna nie otrzymuje dostępu do danego obszaru. Warto rozdzielać uprawnienia do odczytu od uprawnień do modyfikacji. Sam fakt, że widok pokazuje ograniczony zestaw informacji, nie oznacza automatycznie, że użytkownik może bezpiecznie zmieniać dane przez ten widok. Widok a bezpieczeństwo danych przy typowych problemachJednym z częstych problemów jest pozostawienie w widoku kolumny, która nie była potrzebna do pierwotnego zadania. Może to dotyczyć identyfikatorów, danych kontaktowych, notatek wewnętrznych lub pól technicznych. Nawet jeżeli kolumna nie jest widoczna na ekranie aplikacji, może zostać pobrana przez dodatkowe zapytanie albo zapisany eksport. Z tego powodu zakres widoku powinien być określony jawnie, z wymienieniem wymaganych kolumn, zamiast polegania na automatycznym wyborze wszystkich pól. Drugim problemem jest zbyt szeroki warunek dotyczący wierszy. Widok może ograniczać dane do określonego działu, regionu lub właściciela rekordu, lecz błędnie zapisana reguła może zwrócić także wpisy należące do innych osób. Szczególnej uwagi wymagają wartości puste, różnice w wielkości liter, odmienne formaty identyfikatorów oraz rekordy bez przypisanej jednostki. Test powinien obejmować zarówno przypadki prawidłowe, jak i takie, które muszą zostać odrzucone. Ryzyko pojawia się również wtedy, gdy widok jest wykorzystywany przez aplikację z dodatkowymi filtrami. Filtr w aplikacji nie zastępuje ograniczenia po stronie bazy danych, ponieważ może zostać pominięty przez inne narzędzie, błędnie zaimplementowaną funkcję lub bezpośrednie zapytanie. Podstawowy zakres danych powinien być ograniczony w miejscu, które użytkownik nie może swobodnie zmienić. Warto sprawdzić także komunikaty błędów oraz funkcje wyszukiwania. Informacja o istnieniu rekordu, nawet bez pokazania pełnej treści, może ujawniać dane. Podobnie sortowanie, filtrowanie i liczniki wyników mogą pozwalać na wyciąganie wniosków o osobach lub dokumentach. Wrażliwe informacje nie powinny być dostępne pośrednio przez mechanizmy pomocnicze. Problemem bywa też brak przeglądu po zmianie struktury tabeli. Dodanie nowej kolumny, zmiana relacji albo modyfikacja aplikacji może sprawić, że dotychczasowy widok nie odpowiada już zasadzie minimalnego dostępu. Każda istotna zmiana powinna prowadzić do ponownego sprawdzenia definicji, uprawnień i rzeczywistych wyników. Widok danych jako praktyka bezpiecznego udostępnianiaPrzy projektowaniu widoku warto najpierw opisać zadanie użytkownika prostym językiem. Należy ustalić, jakie informacje są konieczne, kto powinien je otrzymać, jak długo dostęp ma być potrzebny i czy wynik będzie eksportowany poza system. Dopiero na tej podstawie można wskazać kolumny oraz wiersze, które powinny zostać udostępnione. Takie podejście pomaga uniknąć tworzenia widoków na podstawie całej tabeli z późniejszym ukrywaniem pojedynczych pól. Dobrą praktyką jest nadawanie widokom nazw opisujących ich przeznaczenie. Nazwa powinna wskazywać zakres i odbiorcę, a dokumentacja powinna zawierać właściciela, źródło danych, reguły filtrowania oraz datę ostatniego przeglądu. Ułatwia to ocenę, czy widok nadal jest potrzebny, gdy zmieniają się procesy albo osoby korzystające z danych. Przed udostępnieniem należy wykonać testy na kontach o różnych rolach. Trzeba sprawdzić, czy użytkownik widzi wyłącznie dozwolone kolumny, czy nie otrzymuje cudzych wierszy oraz czy nie może obejść ograniczeń przez eksport, sortowanie, wyszukiwanie lub inne zapytanie. Testy powinny obejmować również sytuacje wyjątkowe, takie jak brak przypisania rekordu, przeniesienie osoby między działami lub wycofanie uprawnienia. Przydatne jest prowadzenie rejestru dostępu. Zapis informacji o tym, kto korzystał z widoku, kiedy nastąpiło odczytanie oraz jakie działanie wykonano, ułatwia wykrywanie nietypowych zachowań. Sam rejestr również powinien być chroniony, ponieważ może zawierać identyfikatory użytkowników, nazwy rekordów albo informacje o zakresie wyszukiwania. Ważne jest rozdzielenie danych testowych od rzeczywistych. Widok sprawdzany na kopii może zachowywać się poprawnie, ale po połączeniu z aktualnym źródłem ujawnić rekordy nieuwzględnione w scenariuszu. Po wdrożeniu należy wykonać kontrolny odczyt z użyciem kont o najniższym wymaganym poziomie uprawnień. W razie wątpliwości można zlecić przegląd konfiguracji serwisu komputerowego, aby ocenić, czy problem wynika z ustawień, aplikacji, bazy danych lub sposobu korzystania ze sprzętu. Kiedy widok a bezpieczeństwo danych wymaga konsultacjiKonsultacja jest wskazana, gdy widok nagle pokazuje większą liczbę rekordów, ujawnia nowe kolumny albo zwraca dane należące do innej osoby. Nie należy ograniczać się do ukrycia problematycznego ekranu. Trzeba ustalić, czy zmieniono definicję widoku, uprawnienia roli, zapytanie aplikacji, strukturę tabeli lub dane używane do filtrowania. Do czasu wyjaśnienia można ograniczyć dostęp do kont, których działanie nie jest konieczne. Zgłoszenie jest również zasadne po utracie urządzenia, podejrzeniu nieautoryzowanego logowania, pojawieniu się nieznanych kont albo znalezieniu plików eksportowanych poza ustalonym miejscem. W takiej sytuacji analizuje się nie tylko sam widok, lecz także kopie danych, zapisane hasła, historię logowania, konfigurację sieciową i stan używanych urządzeń. Należy zachować dostępne informacje o czasie zdarzenia oraz nie usuwać pochopnie śladów potrzebnych do ustalenia przyczyny. Pomoc techniczna może być potrzebna także wtedy, gdy dane są poprawnie ograniczone w bazie, ale aplikacja wyświetla je w logach, plikach tymczasowych lub raportach. Zdarza się, że uprawnienia zostały ustawione prawidłowo, lecz użytkownicy korzystają ze wspólnego konta albo zapisują wyniki na nieszyfrowanym nośniku. Ocena bezpieczeństwa powinna obejmować cały sposób pracy, a nie tylko pojedynczą definicję widoku. W przypadku problemów ze sprzętem i konfiguracją można zwrócić się do Warszawskiego Pogotowia Komputerowego 24/7. Przed przekazaniem urządzenia warto opisać objawy, zakres danych oraz moment, w którym zauważono nieprawidłowość, ponieważ ułatwia to bezpieczne zaplanowanie dalszej diagnostyki. |