Bezpieczeństwo baz danych powinno być postrzegane jako wymaganie pierwszoplanowe już na etapie projektowania bazy.
Proces projektowania systemu bazy danych musi być nierozłącznie związany z uwzględnianiem problemów bezpieczeństwa. Oznacza to, że modelowanie danych, funkcji, zdarzeń, musi być związane z modelowaniem polityki bezpieczeństwa wynikającej z wymagań obowiązujących w odwzorowywanym systemie rzeczywistym.
Bezpieczeństwo baz danych obejmuje następujące zagadnienia:
Utrzymanie spójności - system bazy danych gromadzi w swoich zbiorach nie tylko dane , ale i warunki spójności bazy danych - ich spełnienie jest podstawą poprawności bazy danych.
Odporność na błędy - wyraża się w umiejętności systemu bazy danych do odtworzenia spójnego stan bazy w przypadku awarii systemu.
Dostępność - każdy użytkownik ma zapewniony dostęp do bazy danych, systemy zabezpieczeń, struktura danych, awarie sprzętu (łączy) są dla niego niewidoczne.
Ochrona przed nieupoważnionym dostępem - zestaw mechanizmów systemu zapewniających właściwą realizację polityki bezpieczeństwa w zakresie dostępu do danych
Budowa bezpiecznej bazy danych może opierać się na uniwersalnym DBMS, pozwalających na identyfikację użytkownika, kontrolę dostępu, prowadzenie dziennika.
Polega to na umieszczeniu w aplikacjach odpowiednich punktów kontroli bezpieczeństwa oraz na budowie schematów danych zgodnie z wymaganiami bezpieczeństwa.
Analiza wymagań dotyczących bezpieczeństwa rozpoczyna się od szczegółowego i dokładnego przestudiowania wszystkich możliwych zagrożeń , na jakie narażony jest system.
Do systematycznej analizy zagrożeń i wrażliwości systemu należą:
Analiza wartości - ustala wrażliwość danych i aplikacji na nich pracujących, kontrola dostępu wzrasta proporcjonalnie do wrażliwości danych.
Identyfikacja zagrożenia - identyfikowane są prawdopodobne zagrożenia, tryby pracy różnych aplikacji oraz możliwe tryby dostepności danych.
Analiza odporności - identyfikowane są słabe punkty w systemie w oparciu o określone zagrożenia.
Analiza ryzyka - możliwe zagrożenia, słabość systemu, tryb dostępności danych są porównywane z możliwymi naruszeniami bezpieczeństwa systemu i jego integralności (nieautoryzowany dostęp, odmowa obsługi)
Oszacowanie ryzyka - szacuje się prawdopodobieństwa zdarzeń krytycznych oraz zdolność reakcji systemu w momencie niepożądanego zajścia
Definiowanie wymagań - na podstawie wykrytych zagrożeń i zdarzeń krytycznych i prawdopodobieństwa ich wystąpienia, określane są wymagania bezpieczeństwa.
Kryteria doboru strategii bezpieczeństwa baz danych:
Tajność a integralność i niezawodność - równowaga pomiędzy tymi cechami bazy danych
Maksymalizacja współdzielenie a minimalizacja uprawnień - dostęp do danych tylko w obszarze realizowanych działań.
Zakres kontroli - kontrola jednostek danych, obiektów danych, kontrola obszarów.
Atrybuty używane przy kontroli dostępu - polityka bezpieczeństwa zgodna z potrzebami kontroli danego środowiska.
Priorytety - uprawnienie zgodnie ze stanowiskiem
Uprawnienia - funkcje możliwe do wykonywania przez użytkownika
Role - różne typy ról określające uprawnienia w ramach systemu
Zasady projektowania zabezpieczeń
Występują 3 kryteria zabezpieczeń przed nieupoważnionym ujawnieniem danych, zmianą lub zniszczeniem:
bezpieczeństwo danych - ochrona danych środkami bezpieczeństwa przed przypadkowym lub umyślnym zniszczeniem, ujawnieniem, modyfikacją;
poufność - dane udostępniane są tym, którzy mają odpowiednio wymagane uprawnienia;
tajność - dane muszą być przechowywane i udostępniane z zachowaniem pewnego stopnia tajności:
Zasady projektowania:
domniemana odmowa udzielenia dostępu - gdy użytkownik ma brak dostępu i chce go uzyskać to można go zmusić do uzasadnienia potrzeby uzyskania dostępu przed udzieleniem mu go;
jawny projekt zabezpieczenia - ukazanie słabych punktów projektu w czasie planowania ułatwi wprowadzenie poprawek przed wdrożeniem go. Jeśli projekt jest dobry to można go opublikować poza parametrami zabezpieczającymi (klucz, itp);
akceptowalność - system zabezpieczeń ma być taki, aby nie drażnił użytkownika. System musi być prosty, naturalny i łatwy w obsłudze dla użytkownika;
całkowite pośredniczenie - zabezpieczenie powinno być takie aby zawsze kontrolowany był dostęp każdego użytkownika do BD;
najmniejsze uprzywilejowanie - system powinien każdemu użytkownikowi przydzielać przywileje ale poczynając od najmniejszych;
ekonomiczność mechanizmu - prostota mechanizmu spełniająca oczekiwania wobec systemu;
rozdzielanie przywilejów - im więcej jest zabezpieczeń niezależnych od siebie tym lepiej;
najmniejszy wspólny mechanizm - taki mechanizm reprezentuje potencjalną ścieżkę przepływu informacji między użytkownikami, dlatego wielodostępność musi być minimalna
Hasła w bazie danych
Hasło to ciąg znaków wprowadzonych przez użytkownika i sprawdzanych przez komputer. Hasła mogą być wykorzystywane niezależnie od użytkownika dla ochrony zbiorów, rekordów, pól w rekordach itp.
Identyfikator to niepowtarzalna nazwa lub numer nadany obiektowi. Uwierzytelnianie to sprawdzenie, czy osoba lub obiekt jest tym, za kogo się podaje; procedura upoważniania bada, czy osoba ta lub obiekt ma prawo do chronionego zasobu.
Wszystko to jest brane pod uwagę w celu podjęcia decyzji o udzieleniu dostępu. Identyfikator podaje tylko niepotwierdzoną tożsamość.
Numery identyfikacyjne powinne w miarę możliwości używać cyfr kontrolnych lub stosować inne metody samokontroli, by zminimalizować szansę błędnej identyfikacji.
Uwierzytelnienie zwykle jest dokonywane jednorazowo, ale w instalacjach o dużym stopniu bezpieczeństwa może być wymagana okresowa lub stała weryfikacja.
Dla uwierzytelniania tożsamości użytkowników komputery używają haseł lub innych metod dialogowych. Z punktu widzenia użytkownika znacznie ważniejsze są czynniki takie jak: liczba znaków do wprowadzenia, wysiłek umysłowy i sposób postępowania w wypadku popełnienia błędu przy wpisywaniu.
Działania w wyniku odmowy udzielenia dostępu - dziennik systemu i zwłoka czasowa przy źle wprowadzonej odpowiedzi, oraz ilość prób wejścia do systemu.
Ogólne ostrzeżenia dotyczące haseł i ich używania:
Hasła nie powinny nigdy być przechowywane w jawnej postaci;
Hasła nie powinny być drukowane na drukarkach;
Powinny być często zmieniane;
Nie wolno podawać nowego hasła po zakończeniu sesji;
Metody uwierzytelniania:
podanie hasła:
- metoda prostych haseł - użytkownik wprowadza hasło, które może sam sobie wybrać, przy czym nie może to być hasło zbyt oczywiste
- wybrane znaki - komputer może żądać od użytkownika podania pewnych znaków. Numery znaków mogą być wyliczane na podstawie transformacji zegara wewnętrznego lub generatora
- hasła jednorazowe - użytkownik ma listę N haseł, tę samą listę pamięta komputer. Po użyciu danego hasła użytkownik skreśla je z listy. Wada jest taka, że użytkownik musi pamiętać lub mieć przy sobie całą listę i znać aktualne hasło oraz w przypadku błędów w transmisji użytkownik nie wie które hasło ma podać
metoda pytań i odpowiedzi - system ma zbiór odpowiedzi i zbiór pytań dostarczonych przez użytkownika. System zadaje pytania, użytkownik odpowiada:
wariant I: zadawanie losowo wybranych pytań
wariant II: jest zbiór pytań systemu, ale oprócz tego są zbiory pytań każdego użytkownika
wariant III: prawo użytkownika do zmiany pytań w swoim zbiorze
Metoda ta zajmuje dużo pamięci, ale jest komunikatywna
uwierzytelnienie tożsamości komputera - po uwierzytelnieniu użytkownik komputera ma podać swoje hasło, które wcześniej wprowadził użytkownik
procedura przywitania - wykonanie przez użytkownika poprawnie jakiegoś algorytmu. Metoda ta ma wyższy stopień bezpieczeństwa, brak jej jawności ale jest czasochłonna i żmudna dla użytkownika
procedury użytkownika - dostarczenie przez użytkownika procedur, które są wykonywane przed wejściem do systemu. Po zakończeniu danej procedury system wywołuje własną kontrolę bezpieczeństwa
Fizyczne metody uwierzytelniania - inne metody uwierzytelniania niż programowe sprawdzają czy użytkownik posiada jakiś przedmiot lub czy charakteryzuje się jakąś cechą fizyczną np. odciski palców, karty magnetyczne, zamki z kluczami itp.
Administrator baz danych
Pełni on ważną funkcję podczas tworzenia i użytkowania baz danych. Jest odpowiedzialny za:
skonstruowanie schematu pojęciowego i zewnętrznego;
określenie praw dostępu użytkowników do danych;
określenie organizacji fizycznej danych i metod dostępu do danych;
definiowanie procedur zapewniających dobry poziom niezawodności systemu.
Administrator musi mieć swobodę zmiany struktury pamięci lub strategii dostępu bez konieczności modyfikowania programów użytkowych. Jest on także odpowiedzialny za następujące sprawy:
decyduje o tym jakie informacje będą utrzymywane w bazie danych;
ustala, jakie dane powinny być reprezentowane w bazie danych i określa cechy tej reprezentacji oraz odpowiednie odwzorowanie między strukturą pamięci a schematem pojęciowym;
utrzymuje kontakt z użytkownikiem w celu zapewnienia dostępu do danych;
definiuje procedury badania legalności i poprawności;
definiuje i realizuje odpowiednią strategię odtwarzania;
musi zapewnić wydajność najlepszą dla zakładu oraz odpowiednie dostosowanie systemu do zmieniających się wymagań.
Bezpieczeństwo baz danych w Internecie
Każdy ruch w Internecie jest jawny i każdy, kto go śledzi, może odczytać prywatne informacje. Tylko specjalnie oprogramowanie umożliwia zabezpieczenie i utajnienie przesył informacji.
Bezpieczeństwo baz danych (wg Thomasa Conndly) w WWW polega na zapewnieniu przesyłania i pobierania informacji poprzez Internet w sposób gwarantujący:
Tajność informacji - jest ona dostępna jedynie dla nadawcy i odbiorcy.
Spójność Informacji - nie zostanie ona zmieniona w czasie transmisji.
Autoryzacja - odbiorca posiada całkowita pewność, iż informacja pochodzi od odbiorcy i odwrotnie.
Niekwestionowalność - nadawca nie może wyprzeć się wysłania wiadomości.
Ochrona danych na serwerze WWW - zabezpieczenie architektury bazy danych wymagają różnych mechanizmów i aplikacji.
Bezpieczeństwo transmisji danych - przesyłane informacje mogą zawierać kody wykonywalne, np. strony w języku HTML mogą zawierać komponenty ActiveX czy Javy. Zawartość wykonywalna może spowodować następujące straty:
Zniszczenie danych lub zakłócenie pracy programów.
Całkowite sformatowanie dysku.
Spowodowanie całkowitego zamknięcia systemu.
Podszycie się pod użytkownika w celu wykonania w jego imieniu ataku na inne cele w sieci.
Zablokowanie zasobów w celu uniemożliwienia dostępu do nich uprawnionym użytkownikom i programom.
Spowodowanie zakłóceń dotyczących np. urządzeń wyjściowych.
Serwery zastępcze - proxy
W środowisku WWW serwer zastępczy umieszczony jest pomiędzy przeglądarką WWW a serwerem WWW. Przechwytuje on wszystkie żądania do serwera WWW i określa czy może sam je spełnić. Serwery zastępcze poprawiają wydajność systemu oraz filtrują żądania.
Zapory - firewall
Technologia zapór zapobiega nieuprawnionemu dostępowi, o ile zostanie odpowiednio zainstalowana i utrzymywana we właściwym stanie.
„Firewall (zapora) to system opracowany w calu zapobiegania nieuprawnionym dostępom do sieci prywatnej (T.Conndly)”
Zapory są realizowane programowo i sprzętowo. Wszystkie komunikaty wchodzące i wychodzące z sieci przechodzą przez zaporę, która je analizuje i zatrzymuje te, które nie spełniają określonych wymogów bezpieczeństwa.
Najważniejsze techniki realizacji zapór:
Filtrowanie pakietów - kontrola każdego pakietu danych i jego akceptacja na wejściu i wyjściu z systemu. Mechanizm efektywny, niewidoczny dla użytkownika. Główna wada to możliwość podszywania się pod IP (protokół internetowy) - technika włamywania się z użyciem adresu IP wskazującego na zaufane źródło danych).
Bramki aplikacji - mechanizmy bezpieczeństwa dla specyficznych aplikacji np. FTP czy Telnet, obniżają wydajność systemu.
Bramki sprzętowe - procedury bezpieczeństwa na etapie nawiązywania połączenia, po połączeniu pakiety przesyłane są bez dalszej kontroli.
Serwer zastępczy - ukrywa prawdziwe adresy sieciowe.
Zapora to pierwsza linia obrony informacji w sieci.