ora_user.DOC

(132 KB) Pobierz
Bożena Małysiak



Mechanizmy ochrony danych w wielodostępnym SZBD Oracle               349

Bożena MAŁYSIAK

Politechnika Śląska, Instytut Informatyki

MECHANIZMY OCHRONY DANYCH W WIELODOSTĘPNYM SYSTEMIE ZARZĄDZANIA BAZAMI DANYCH ORACLE

Streszczenie. W artykule przedstawiono mechanizmy ochrony danych w wielodostępnym systemie zarządzania bazą danych Oracle. Opisano metody ochrony przed nieautoryzowanym dostępem do bazy danych, przed nieautoryzowanym dostępem do obiektów schematu, a także mechanizmy kontroli używania zasobów oraz nadzorowania akcji użytkowników.

DATA SECURITY MECHANISMS IN MULTIACCESS DATABASE MANAGEMENT SYSTEM ORACLE

Summary. This article provides an overview of the data security mechanisms in multiaccess database management system such as Oracle. It explains strategy for protecting information, which is in database included. It also describes methods of database user authentication, creating profiles and limiting use of system resources.

1.                 Wprowadzenie

W ostatnich latach w otaczającej nas rzeczywistości można zaobserwować znaczny wzrost zainteresowania problematyką bezpieczeństwa systemów informatycznych. Wzrost ten jest związany z rozwojem obszaru zastosowań informatyki. Pojawiają się problemy związane na przykład z ochroną danych personalnych, bezpiecznym wykorzystywaniem informatycznych systemów bankowych czy też ochroną ważnych informacji gospodarczych.

Można sformułować pewne zadania bezpiecznego systemu informatycznego twierdząc, że jeżeli istnieje uzasadniona potrzeba ograniczania dostępu do pewnych lub wszystkich zgromadzonych zasobów informacyjnych, to system powinien zapewnić odpowiednią do zastosowania kontrolę dostępu do danych przy zachowaniu zarówno warunków integralności danych, jak i dostatecznego poziomu wydajności użytkowej systemu [4].

Próby rozwiązywania problemów związanych z ochroną systemów informatycznych rozpoczęły się około 30 lat temu w Stanach Zjednoczonych, a kilkanaście lat (od 1967 r. do 1982 r.) trwały prace nad sformalizowaniem metod rozwiązywania tych problemów i opublikowaniem ich w postaci dokumentu o nazwie „Orange Book” lub TCSEC[1]. Równie ważnym dokumentem dla problematyki bezpieczeństwa systemów baz danych jest TDI[2] [4].

„Orange Book” jest zbiorem pewnych warunków formalnych, stanowiących podstawę oceny stopnia bezpieczeństwa systemu informatycznego, w dziedzinach polityki bezpieczeństwa (security policy), oznaczania informacji (marking), identyfikacji użytkowników informacji (identification), nadzoru (accountability), mechanizmów zabezpieczających (assurance) i ciągłości ochrony (continous protection).

System informatyczny, w zależności od tego jakie warunki bezpieczeństwa zapewnia, może zostać zaklasyfikowany do jednej z siedmiu standardowych klas bezpieczeństwa (rys.1).



Rys. 1. Podwyższenie klasy ochrony

Fig. 1.  Direction of increase class of security

 

D àC1 àC2 àB1 àB2 à B3 àA1



Klasy C2 i B1 mają znaczenie dla produktów komercyjnych, jakimi są na przykład produkty Oracle’a, dlatego zostały wyróżnione.

W Europie także podjęto próby określenia pewnych standardów w dziedzinie oceny bezpieczeństwa  systemów informatycznych - powstał dokument o nazwie ITSEC[3], zawierający zbiór kryteriów oceny bezpieczeństwa systemów stosowanych w krajach europejskich. W podejściu europejskim wyróżniono dwa aspekty związane z bezpieczeństwem systemu: funkcjonalność bezpieczeństwa oraz poziom ochrony.

W roku 1991 Oracle poddał ocenie formalnej ze względu na bezpieczeństwo dwa produkty: Oracle7 Server oraz Trusted Oracle7 Server. Oracle7 Server został zaklasyfikowany do klasy C2 względem US TCSEC/TDI (F-C2/E3 względem European ITSEC), a Trusted Oracle7 Server do klasy B1 względem US TCSEC/TDI (F-B1/E3 względem European ITSEC).

W kolejnych punktach artykułu przedstawione zostaną mechanizmy bezpieczeństwa systemu informatycznego wykorzystane w produktach Oracle’a, zapewniające im przynależność do odpowiednich klas bezpieczeństwa.

2.                 Mechanizmy ochrony zapewniające przynależność do klasy C2

Z punktu widzenia ochrony bazy danych można wyróżnić dwie kategorie ochrony: ochronę systemu oraz ochronę danych.

Ochrona systemu powinna zawierać: sprawdzenie nazwy/hasła użytkownika, określenie, czy użytkownik ma prawo połączenia się z bazą (autoryzacja), przydzielanie miejsca na dysku dla obiektów użytkownika, określenie ograniczeń zasobów dla użytkownika, możliwość monitorowania bazy danych oraz określenie, jakie operacje systemowe użytkownik może wykonywać.

Natomiast ochrona danych powinna zawierać: określenie, jacy użytkownicy mają prawo dostępu do określonych schematów obiektów, określenie, jakie typy operacji są dozwolone dla określonych użytkowników, określenie operacji, które będą monitorowane dla każdego schematu obiektów.

2.1.            Tworzenie kont użytkowników

Po zainstalowaniu systemu zarządzania bazą danych Oracle wszystkimi uprawnieniami dysponuje wyłącznie administrator bazy danych. Po instalacji w bazie danych znajdują się następujące konta użytkowników:

-    SYS - właściciel słownika danych - hasło po instalacji „CHANGE_ON_INSTALL”, ma uprawnienia do stworzenia bazy danych oraz obiektów podczas rozpoczynania pracy z bazą (tabel, przestrzeni),

-    SYSTEM - pierwszy administrator bazy, który ma wszystkie prawa do zarządzania bazą danych - hasło po instalacji „MANAGER”. Użytkownik ten ma uprawnienia do tworzenia użytkowników bazy danych.

Administrator systemu bazy danych korzysta z mechanizmów pozwalających na utrzymanie bezpieczeństwa bazy danych. Mechanizmy te umożliwiają:

-    tworzenie kont użytkowników i przypisywanie im haseł (kontrola dostępu do bazy: autoryzowanie użytkowników do podłączenia się do bazy, przypisywanie im haseł, ograniczenie dostępnej przestrzeni dyskowej dla każdego użytkownika),

-    tworzenie schematów – kontrola, do jakich obiektów użytkownik ma dostęp,

-    nadawanie użytkownikom uprawnień (przywilejów) i ról – w celu kontroli poleceń oraz akcji na obiektach, jakie użytkownik może wykonywać,

-    ograniczenie dostępu do pamięci (storage quotas) – w celu kontroli zajętości przestrzeni dyskowej,

-    przydzielanie użytkownikom profili – w celu kontroli dostępu do zasobów przez poszczególnych użytkowników,

-    obserwację (śledzenie) - selektywną obserwację aktywności bazy danych w celu wykrycia podejrzanych akcji lub monitorowania użycia bazy.

Administrator, tworząc użytkowników, określa sposób, w jaki będą oni identyfikowani przez system. Możliwa jest identyfikacja bezpośrednia przez system bazy danych Oracle7 lub za pośrednictwem systemu operacyjnego komputera.

Z każdym użytkownikiem związany jest schemat o tej samej nazwie (generowany przy tworzeniu konta użytkownika). Wszystkie obiekty użytkownika są strukturami logicznymi. Po podłączeniu się do bazy użytkownik ma dostęp do wszystkich obiektów zawartych w jego schemacie. Dostęp do bazy i jej obiektów jest kontrolowany poprzez przywileje nadane każdemu schematowi.

W systemie Oracle do tworzenia konta użytkownika służy polecenie CREATE USER:

CREATE USER user

IDENTIFIED BY password

EXTERNALLY

DEFAULT TABLESPACE tablespace

TEMPORARY TABLESPACE tablespace

PROFILE profile

QUOTA integer ON tablespace (np.: dla kilku przestrzeni)

       UNLIMITED,

gdzie:

-    EXTERNALLY – oznacza, że użytkownik będzie weryfikowany z poziomu systemu operacyjnego komputera,

-    DEFAULT TABLESPACE – domyślna przestrzeń tabel, określa lokalizację tworzonych przez użytkownika obiektów, domyślnie przydzielana użytkownikom jest przestrzeń SYSTEM,

-    TEMPORARY TABLESPACE - tymczasowa przestrzeń tabel, określa miejsce na dysku wykorzystywane przez bazę przy używaniu niektórych operacji języka SQL (np.: sortowanie, grupowanie, indeksowanie),

-    PROFILE  - ograniczenie dostępu do zasobów systemowych - parametr ten określa:

-    ilość czasu CPU przeznaczonego na obsługę zadań jednego użytkownika,

-    logiczną liczbę odczytów z dysku na potrzeby jednego użytkownika,

-    liczbę konkurencyjnych sesji otwartych przez jednego użytkownika na                                                     kilku komputerach,

-    ilość czasu bez wykonywania operacji na bazie (idle_time),

-    QUOTA - ograniczenie zasobów w przestrzeni tabel - określenie limitu miejsca w przestrzeni tabel, umożliwia administratorowi ograniczenie możliwości przepełnienia przestrzeni tabel:

-    0 - oznacza, że obiekty pozostają, ale nie mogą alokować nowej przestrzeni, przestrzeń tabel jest niedostępna dla użytkownika,

-    UNLIMITED - oznacza, że użytkownik nie ma żadnych ograniczeń na                   ilość miejsca w przestrzeni tabel.

Przykład

CREATE USER student

IDENTIFIED BY stu23dent67

DEFAULT TABLESPACE stud_grup

TEMPORARY TABLESPACE stud_temp

PROFILE studenci

QUOTA 15M ON stud_grup

Jeśli użytkownik nie ma nadanego prawa ALTER USER może sam zmienić sobie tylko hasło. Pozostałe parametry może zmieniać tylko użytkownik posiadający uprawnienie ALTER USER.

2.2.            Identyfikacja użytkownika za pośrednictwem systemu operacyjnego

Aby mogła nastąpić identyfikacja użytkownika za pośrednictwem systemu operacyjnego, należy:

-    ustawić parametr OS_AUTHENT_PREFIX,

-    stworzyć konto użytkownika w bazie danych Oracle’a, który będzie weryfikowany przez system operacyjny (jego nazwa powinna być taka jak nazwa konta użytkownika w systemie operacyjnym, tyle że poprzedzona zdefiniowanym powyżej prefiksem), poleceniem:

CREATE USER user

IDENTIFIED EXTERNALLY;

-    podłączyć się do komputera jako zdefiniowany wcześniej użytkownik,

-    uruchomić program SQLPLUS  komendą sqlplus /.

W systemie operacyjnym musi być założone konto użytkownika i musi ono należeć do grupy DBA (np. w systemie Unix definicja kont użytkowników znajduje się w katalogu etc/group):

dba::20000: kadrowy

oper::20010:kadrowy

Po wykonaniu wymienionych wcześniej operacji i wpisaniu komendy sqlplus / nazwa użytkownika systemu operacyjnego, z dodanym do niej prefiksem (np. OPS$), porównywana jest z nazwami użytkowników zdefiniowanymi w bazie danych, jeśli znajdzie się w bazie konto użytkownika o takiej samej nazwie jak nazwa konta w systemie operacyjnym, następuje połączenie z bazą.

Przykład

Niech OS_AUTHENT_PREFIX = OPS$, nazwa użytkownika  w SO „kadrowy”, w bazie Oracle’a konto o nazwie „OPS$kadrowy”, po wykonaniu polecenia „sqlplus /” następuje dołożenie prefiksu do nazwy użytkownika zdefiniowanego w systemie operacyjnym, porównanie go z nazwą użytkownika w bazie i połączenie.

2.3.            Nadawanie uprawnień użytkownikom

Zadaniem każdego administratora jest kontrola dostępu do bazy danych i jej obiektów poprzez nadawanie użytkownikom odpowiednich uprawnień do wykonywania określonych operacji, ograniczanie dostępu i możliwości zmiany danych, ograniczanie możliwości wykonywania funkcji systemowych i zmian struktur bazy danych, nadawanie uprawnień: pojedynczym użytkownikom i rolom oraz wszystkim użytkownikom (PUBLIC).

Uprawnienia użytkownika można nadawać na dwa sposoby: bezpośrednio oraz poprzez role (grupy uprawnień).

2.3.1.      Przywileje systemowe i obiektowe

Przywileje bazodanowe można zdefiniować jako prawa do wykonywania określonych operacji na bazie przez uprawnionych przywilejem użytkowników.

Przywileje dzielimy na:

-    systemowe (system privileges) - określają prawa użytkownika do wykonywania dopuszczalnych operacji,

-    obiektowe (object privileges) - wyznaczają obiekty bazy danych, na których uprawnione operacje mogą być wykonywane.

Produkty Oracle’a udostępniają administratorom systemów baz danych około 70 uprawnień systemowych  oraz od 1 do 7, w zależności od klasy obiektu (tablica, procedura, perspektywa) uprawnień obiektowych.

Przykłady przywilejów systemowych (perspektywa System_privilege_map)

-    UPDATE ANY TABLE - umożliwia użytkownikowi zmianę zawartości wierszy każdej tablicy w dowolnym schemacie bazy,

-    CREATE SESSION - umożliwia użytkownikowi bazy na otwarcie sesji, czyli połączenie z bazą,

-    CREATE TABLE - umożliwia użytkownikowi bazy utworzenie tablicy w obrębie własnego schematu.

Przykład przywilejów obiektowych

SELECT TABLE pracownik

Nadawanie przywilejów systemowych lub ról użytkownikom lub rolom wykonuje się za pomocą polecenia GRANT, a odbieranie za pomocą polecenia REVOKE. Można nadać przywilej lub rolę jednocześnie wszystkim użytkownikom, wtedy należy zamiast nazwy użytkownika wpisać słowo kluczowe PUBLIC. Opcja WITH ADMIN OPTION umożliwia przekazywanie nadanego przywileju innym użytkownikom:

GRANT system_priv or role TO user or role 

                                                             PUBLIC

WITH ADMIN OPTION;

 

REVOKE system_priv or role FROM user or role;

                                                                        PUBLIC

Przykład

Nadanie uprawnień systemowych:

GRANT CREATE SESSION, CREATE TABLE, CREATE VIEW  TO STUDENT  oznacza, że użytkownik identyfikowany jako STUDENT posiada uprawnienia do nawiązania połączenia z bazą danych, tworzenia własnych tabel i perspektyw, ale nie ma innych uprawnień (do tworzenia innych obiektów), jak np. użytkownicy, role, procedury czy sekwencje.

W analogiczny sposób przekazywane są przywileje obiektowe, przy czym może tego dokonywać każdy użytkownik w stosunku do swoich własnych obiektów lub administrator, w odniesieniu do wszystkich obiektów bazy danych.

Nadawanie przywilejów obiektowych użytkownikom lub rolom wykonuje się za pomocą polecenia GRANT, a odbieranie za pomocą polecenia REVOKE. Można nadać przywilej jednocześnie wszystkim użytkownikom, wtedy należy zamiast nazwy użytkownika wpisać słowo kluczowe PUBLIC. Opcja WITH GRANT OPTION umożliwia przekazywanie nadanego przywileju innym użytkownikom:

GRANT object_priv (column1, column2)

ON               object or schema or role

TO user or role or PUBLIC

WITH GRANT OPTION;

 

REVOKE object_priv

ON object or schema

FROM user or role or PUBLIC

CASCADE CONSTRAINTS;                           

Przykład

Nadanie uprawnień obiektowych:

GRANT SELECT, UPDATE ON ASYSTENT.DOCHODY TO STUDENT przez użytkownika ASYSTENT lub administratora oznacza, że użytkownik identyfikowany jako STUDENT posiada prawa dostępu do tablicy DOCHODY w zakresie wyszukiwania i aktualizacji danych (ale bez możliwości wstawiania nowych lub usuwania).

2.3.2.      Role – tworzenie i nadawanie

Administrator, zamiast nadawania każdemu użytkownikowi z osobna różnych uprawnień do wykonywania operacji w bazie danych, może określić grupy użytkowników wykonujących w bazie podobne operacje i wymagających podobnych uprawnień, związanych ze stanowiskiem pracy lub funkcjami. Na podstawie wyodrębnionych użytkowników może stworzyć grupy niezbędnych uprawnień zwane rolami. Role mogą zawierać zarówno przywileje obiektowe, jak i systemowe. Nie należą do żadnego użytkownika i schematu, mogą być nadane dowolnemu użytkownikowi lub roli z wyjątkiem siebie, mogą być włączane lub wyłączane dla każdego użytkownika, mogą wymagać autoryzacji (podania hasła) do włączania, mogą również być nadawane z poziomu systemu operacyjnego.

Zalety używania ról:

-    ograniczenie liczby wymienianych uprawnień przez:

-    nadawanie i odbieranie wielu przywilejów jednym poleceniem,

-    nadawanie roli nowemu użytkownikowi bez pamiętania wszystkich niezbędnych przywilejów,

-    uproszczenie zarządzania przywilejami w systemach...

Zgłoś jeśli naruszono regulamin