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

0x01 graphic

Zasady projektowania zabezpieczeń

Występują 3 kryteria zabezpieczeń przed nieupoważnionym ujawnieniem danych, zmianą lub zniszczeniem:

  1. bezpieczeństwo danych - ochrona danych środkami bezpieczeństwa przed przypadkowym lub umyślnym zniszczeniem, ujawnieniem, modyfikacją;

  2. poufność - dane udostępniane są tym, którzy mają odpowiednio wymagane uprawnienia;

  3. tajność - dane muszą być przechowywane i udostępniane z zachowaniem pewnego stopnia tajności:

Zasady projektowania:

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:

  1. Hasła nie powinny nigdy być przechowywane w jawnej postaci;

  2. Hasła nie powinny być drukowane na drukarkach;

  3. Powinny być często zmieniane;

  4. Nie wolno podawać nowego hasła po zakończeniu sesji;

Metody uwierzytelniania:

  1. 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ć

  2. 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

  3. uwierzytelnienie tożsamości komputera - po uwierzytelnieniu użytkownik komputera ma podać swoje hasło, które wcześniej wprowadził użytkownik

  4. 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

  5. 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

  6. 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:

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:

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:

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.