dbs System zabezpieczenia dostępu do baz danych Oracle 1. Wstęp Bazy danych poddawane są nieustannie zagrożeniom ze strony osób działających świadomie lub nieświadomie wewnątrz firmy oraz napastników zewnętrznych, którzy nie szukają już hakerskiej sławy, lecz głównie zainteresowani są korzyściami finansowymi. Kwestia zabezpieczania baz danych stała się dzisiaj poważnym problemem dla coraz większej liczby korporacji. Różni dostawcy zabezpieczeń reagują na to zapotrzebowanie, projektując technologie uzupełniające tradycyjne rozwiązania bazodanowe i podejmując wyzwania, z którymi nie poradzili sobie ich producenci. Jedną z takich technologii jest wykrywanie włamań do baz danych. Tradycyjne zabezpieczenia baz danych Tabele w bazie danych są skonfigurowane przy wykorzystaniu odpowiednich środków kontroli dostępu tak, aby jedynie autoryzowani użytkownicy pełniący określone funkcje mogli wykonywać kwerendy w bazie. Technika ta stanowi niezbędny poziom ochrony baz danych. Kontrola dostępu jest jednak z reguły zbyt mało rygorystyczna ze względu na potrzeby
aplikacji klienckich. Jest to efekt różnicy w procesach tworzenia tego rodzaju aplikacji oraz baz danych. Skutkiem zbytniego rozszerzenia uprawnień dostępu do bazy danych jest zmniejszenie jej bezpieczeństwa. Jeżeli osoba atakująca może w jakikolwiek sposób naruszyć zabezpieczenia aplikacji, jest w stanie za jej pomocą wysyłać polecenia do bazy danych, dysponując poziomem uprawnień bliskim administracyjnemu - czyli takiemu, jaki został przyznany aplikacji. Wykrywanie ataków na poziomie sieci Tradycyjne rozwiązania bezpieczeństwa na poziomie sieci Network Intrusion Protection Systems, NIPS oraz zapory sieciowe mogą wykrywać ataki jedynie na poziomie protokołu sieci. Analiza przesyłanych danych jest ograniczona do najbardziej popularnych protokołów, takich jak FTP czy HTTP. Oparte na sieci szyfrowanie stosowane w bazach danych stanowi dodatkowe wyzwanie dla systemów NIPS. W wielu środowiskach połączenia pomiędzy aplikacją klienta i bazą danych są zaszyfrowane, co czyni, że transakcje stają się całkowicie "niewidzialne" dla systemu wykrywania włamań. Ponadto, chociaż tradycyjny system NIPS może z łatwością chronić przed błędnymi pakietami protokołu TCP/IP, nie jest w stanie wykryć pakietów destrukcyjnych zapytań, gdy są one wysyłane do bazy danych w zaszyfrowanej formie. Z perspektywy takiego systemu IPS cały destrukcyjny ruch sprawia wrażenie prawidłowego. Rozwiązanie na poziomie systemu operacyjnego Systemy wykrywania włamań na poziomie stacji roboczej (HIPS) mają własne ograniczenia, jeśli chodzi o ochronę baz danych. Większość systemów HIDS pracuje, opierając się na monitorowaniu i audycie zmian w systemie, więc są zdolne do wykrycia tylko tych zachowań, które zostały zalogowane przez aplikację, lub takich, które zmieniają normalne zachowanie stacji, dla której sygnatury mogą być utworzone, np. zmiana kluczowych plików systemowych etc. Niestety, wrogie zapytanie do bazy danych, np. pobranie wszystkich haseł lub numerów kart kredytowych, nie spowoduje wpisów do logów systemowych i nie zmieni zachowania wykrywanego przez system HIPS.
Z punktu widzenia bazy danych, wrogie zapytanie jest takie samo jak inne poprawne zapytania - jest prośbą o przesłanie danych. Skanery podatności baz danych Skanery podatności próbują określić bezpieczeństwo baz danych, poszukując kont z łatwymi do odgadnięcia hasłami, szukając niewłaściwej konfiguracji i luk w kontroli dostępu. Skaner podatności może powiedzieć administratorowi, że jego baza jest podatna na atak, ale nie może stwierdzić, że baza jest właśnie atakowana. Dodatkowo, od kiedy większość baz danych używana przez aplikacje jest skonfigurowana, aby używać pojedynczego konta z dużymi uprawnieniami, nawet jeśli nie wykryjemy żadnych podatności w bazie danych przez skaner bezpieczeństwa, baza jest wciąż podatna na atak typu SQL Injection oraz innego rodzaju ataki, gdy aplikacja (nie sama baza) zostanie skompromitowana. Nawet perfekcyjnie skonfigurowana baza danych nie może ochronić się przed skradzionym hasłem lub skompromitowaną aplikacją przed uzyskaniem zastrzeżonych danych. Szyfrowanie w bazie danych Proces szyfrowania danych jest przeprowadzany w samej bazie danych. Często numery kart kredytowych lub dane osobowe są szyfrowanymi obiektami. Takie szyfrowanie ma zabezpieczyć bazę danych przed próbą kradzieży dysków twardych lub wręcz całej maszyny. Ponieważ dane muszą być użyteczne dla aplikacji i użytkownika końcowego, dane są deszyfrowane przed ich wysłaniem z bazy danych. Atakujący, który uzyska dostęp do aplikacji będącej interfejsem użytkownika, będzie mógł pobrać już odszyfrowane dane. Szyfrowanie pól baz danych nie zapewnia więc ochrony przed atakiem poprzez aplikację czy atakiem przeprowadzonym przez pracownika ze źle ustawionym poziomem dostępu. System ochrony bazy danych System wykrywania włamań do bazy danych zwiększa i uzupełnia tradycyjne środki zabezpieczające, takie jak kontrola dostępu, szyfrowanie, skanery oraz
bezpieczeństwo sieci i hosta. System ten sprawdza każde polecenie SQL bądź zapytanie przesyłane do bazy, a następnie weryfikuje, czy ma ono charakter destrukcyjny. Operacja jest przeprowadzana w czasie rzeczywistym lub bliskim rzeczywistemu i umożliwia wykrycie destrukcyjnych ataków pochodzących zarówno z wewnętrznych, jak i zewnętrznych źródeł. Podsumowanie W obecnych czasach wielu administratorów baz typu Oracle staje przed wyzwaniem odpowiedniego zabezpieczenia zbioru danych za które są odpowiedzialni. Różnorodność przetrzymywania informacji, czy to finansowych czy osobowych powoduje, iż bezpieczeństwo włamania lub wycieku tego typu danych staje się punktem newralgicznym w każdej firmie. Ponadto każdy doświadczony administrator zajmujący się bazami danych ma świadomość zagrożenia jakie niesie ze sobą osoba mająca możliwość logowania do bazy danych. Bazy danych Oracle Database 10/11g podobnie jak ich poprzedniczki zapewniają wysoki poziom bezpieczeństwa wewnętrznego. Dzięki możliwości integracji z infrastrukturą narzędzi opisanych powyżej, zapewniają kompleksowe zarządzanie tożsamością, zarządzanie dostępem oraz funkcje wymuszające przestrzeganie zasad bezpieczeństwa. Wykrywanie włamań do bazy danych cechują jednak ograniczenia istniejących technologii mających na celu zapewnienie wysokiego poziomu bezpieczeństwa samej bazy. Wdrażając system ochrony baz danych, firmy stają przed nie lada wyzwaniem w gąszczu skomplikowanych narzędzi do ochrony swoich zasobów informacji, ochrony reputacji i ochrony zaufania klientów. 2. Opis działania W czasie pracy systemu bazodanowego Oracle zaawansowane mechanizmy ochrony bazy danych mogą zebrać dane o typowym zachowaniu aplikacji i użytkowników. Stworzone profile zachowań dają szansę na wykrycie ataku poprzez analizę zapytań generowanych przez użytkownika, np. zamiast zwykłego zestawu danych, użytkownik prosi o "wszystkie" dane. System, przechwytując
wszystkie zapytania i zwracane w ich wyniku dane, może szybko zareagować i poinformować o przeprowadzanym ataku. Tego typu wykrywanie anomalii pozwala na wykrycie prawidłowych, ale wrogich zapytań do bazy i powiadomienie administratorów, którzy mogą zablokować dalszą komunikację i dostęp do bazy lub przeprowadzić dokładną analizę przypadku. Niestety często zdarza się, iż wdrożenie wysokiego poziomu bezpieczeństwa niesie za sobą spadek wydajność działania całego systemu lub potrzebę rozbudowy obecnej infrastruktury informatycznej o nowe zasoby sprzętowe. Ponadto, opisany powyżej przykład opisuje sytuację w której osoba uzyskała już dostęp do części lub całości danych. Bezpieczne użytkowanie bazy danych w firmie informatycznej jest jedną z najważniejszych spraw, gdyż to właśnie ten aspekt bezpieczeństwa spędza sen z powiek większości doświadczonych administratorów. Dobrze skonfigurowany system bazodanowy, to godziny pracy oraz wysiłek wielu osób za który ktoś musi zapłacić. Planowanie i wdrażanie jakichkolwiek nowych poprawek bezpieczeństwa w oprogramowaniu bazy to godziny żmudnych testów oraz zaangażowanie sztabu ludzi odpowiedzialnych za testy. Mechanizm ochrony baz danych Wychodząc na przeciw wymaganiom ochrony stawianym przez nowoczesne systemy bazodanowe Oracle pragniemy zaprezentować Państwu aplikację DBS. Polecany przez nas mechanizm bezpieczeństwa polega na odpowiednim zarządzaniu dostępem do samej bazy danych. Mając na uwadze skomplikowaną architekturę aplikacji różnych dostawców oprogramowania, poziom weryfikacji bezpieczeństwa wyniesiony został na czoło bazy danych i zaczyna funkcjonować już na etapie samego logowania. Dzięki kontroli uprawnień danego użytkownika między innymi: ñ nazwy konta użytkownika (osuser) z maszyny z której nawiązywane jest ñ nazwy komputera użytkownika bądź serwera, ñ nazwy konta bazodanowego, ñ czasu w którym można się zalogować na konto, ñ opcjonalnie adresu IP komputera użytkownika bądź serwera rozwiązany został problem niekontrolowanego dostępu do bazy danych. Dzięki takiemu podejściu każde nowo nawiązywane połączenie, poddane zostaje
skrzętnej weryfikacji. W przypadku pozytywnego przejścia przez system restrykcji następuje połączenie do baz danych, w innych przypadkach baza zwraca odpowiednią o braku dostępu. 3. Sposób obsługi Aplikacja DBS przeznaczona jest głównie dla osób odpowiedzialnych za bezpieczeństwo w firmie informatycznej oraz administratorów baz danych. Dzięki temu administrator może odciąć na czas okienka serwisowego każdą próbę wejścia programistów czy wdrożeniowców, a ponadto w sposób opisany poniżej otrzymuje informację na temat każdego logowania do bazy danych. Projekt DBS wiąże ze sobą dwie technologię informatyczne. Pierwsza z nich to webowy interfejs administratora, wykonany w technologii PHP, pozwalający na odpowiednie skonfigurowanie wymaganych uprawnień, druga to zespół procedur wewnątrz bazodanowych PL/SQL. Do poprawnego działania wymagane jest również środowisko PHP w wersji min. 5.2, serwer aplikacyjny Apacze oraz klient ORACLE umożliwiający podłączenie do bazy danych. Po stronie samej bazy danych musi istnieć natomiast odpowiedni schemat opisujący zależności i uprawnienia do zalogowania do bazy, ponadto użytkownik (właściciel) danego schematu powinien posiadać dodatkowo odpowiedni przywilej bazodanowy, takie jak: SELEC CATALOG ROLE, które pozwoli mu na wyczytywanie potrzebnych informacji z perspektywy systemowej. Newralgiczną częścią całej aplikacji jest mechanizm kontroli logowania do bazy, który znajduje się w schemacie SYS. To właśnie za pomocą tego narzędzia odbywa się kontrola i odpowiednie sterowanie dostępem do bazy danych. Osoba korzystająca z aplikacji musi posiadać zainstalowaną przeglądarkę internetową. Zalecanymi są Internet Explorer w wersji >= 6 lub Mozilla Firefox. Interfejs aplikacji przedstawiony poniżej podzielony został na odpowiednie moduły tematyczne: panel Startowy panel Konfiguracji uprawnień Security panel TopSQL (opcja dodatkowa) panel Obiektów bazy danych panel Wykonywania SQL`i (opcja dodatkowa)
panel Administracyjny Panel Startowy Po zalogowaniu do aplikacji użytkownik lub administrator otrzymuje informację na temat: nazwy bazy danych na której chce wykonać jakieś czynności informacje o nadanych uprawnieniach w systemie DBS możliwość zmiany hasła do systemu
Panel Security Moduł Security to centralny punkt systemu kontroli dostępu do bazy danych. Dzięki opracowanym mechanizmom i funkcjom możliwe jest określenie niezbędnych parametrów konfiguracyjnych, takich jak: nazwa komputera z którego ma być nawiązane połączenie do bazy danych adres IP komputera (opcja dodatkowa) nazwa konta użytkownika na komputerze zdalnym tzw. osuser nazwa konta bazodanowego do którego ma być zrealizowany dostęp
Zakładka konta bazodanowe Funkcjonalność służąca określeniu listy wszystkich konta bazodanowych do których ma być realizowany dostęp, konta można wpisywać ręcznie, bądź pobrać je automatycznie za pomocą odpowiedniego klawisza. W tym momencie system analizuje listę kont bazodanowych i uzupełnia listę o brakujące.
Zakładka maszyny Funkcjonalność pozwalająca na utworzenie listy maszyn oraz osuser ów, którzy będą mogli uzyskać dostęp do bazy danych. Uzupełnianie list możliwe jest w sposób ręczny, jak również automatyczny opisany w dalszej części.
Zakładka Grupy Funkcjonalność, która pozwala na wprowadzenie logicznego podziały na struktury osobowe, bądź grupy maszyn w zależności od działania, czy przynależności. Dzięki tej opcji możliwe jest w późniejszym czasie efektywniejsze i szybsze zarządzanie dostępami dla pewnych użytkowników lub serwerów.
Zakładka osoby Funkcjonalność dzięki której zebrane powyżej informacje zostają scalone i przypisane do konkretnej osoby (imię i nazwisko) lub nazwy serwera (np: serwer apache). Dla danego użytkownika można przypisać wiele maszyn np: komputer stacjonarny i laptop, jak również określić wiele grup przynależności.
Konfiguracja dostępu dla użytkownika Wypełnienie opisanych powyżej zakładek, to połowa sukcesu. Aby system mógł kontrolować dostęp do bazy danych należy określić dla danego użytkownika nazwę konta bazodanowego lub listę kont oraz czas w jakim ma zostać zrealizowane zadanie. Warto zauważyć, iż jeden i ten sam użytkownik może pojawiać się na liście wielokrotnie realizując dostępy do różnych kont w różnych przedziałach czasu.
Konfiguracja dostępu dla grupy W celu szybszego i efektywniejszego zarządzania dostępem dla wielu użytkowników wprowadzono opisane wcześniej grupowanie logiczne. Dzięki jest opcji nadawanie uprawnień dostępowych dla określonej liczby osób, bądź serwerów staje się szybsze i łatwiejsze. Konfiguracja dostępu jest identyczna jak w przypadku dostępu dla użytkownika, z tą małą różnicą, iż zamiast wprowadzania nazwy osoby, wprowadzona zostaje nazwa danej grupy.
Konfiguracja kont bez weryfikacji dostępowej W związku z faktem, iż systemy bazodanowe, a w głównej mierze aplikacje nieustannie ewoluują, często zdarza się, iż proces wdrażania nowych funkcjonalności zajmuje pewne określone ramy czasowe. Tym bardziej, może zdarzyć się, iż w całym zadaniu uczestniczy różna liczba osób łączących się z różnych maszyn. Biorąc pod uwagę tego typu sytuacje wprowadzono możliwość wyłączania listy kont bazodanowych do których nie jest sprawdzany dostęp. Moduł w obsłudze jest bardzo prosty, wystarczy z rozwijalnej listy wybrać odpowiednią nazwę i zatwierdzić. Konfiguracja dostępu do SQL (opcja dodatkowa) W opcji dodatkowej możliwe jest wprowadzenie bardzo wysokiego bezpieczeństwa dostępu do bazy danych. Dzięki wykorzystaniu możliwości systemu DBS możliwe jest całkowite odcięcie programistów i wdrożeniowców od bazy danych. Niemniej jednak często zachodzi potrzeba wykonania pewnych czynności kontrolnych przez ww. osoby. Tym samym system DBS daje możliwość wykonania zapytania SQL z odpowiednimi uprawnieniami read, lub read-write, poprzez odpowiednie skonfigurowanie kolejnej bariery kontroli dostępu do wykonania zapytań SQL.
Konfiguracja skupia się na wybraniu zdefiniowanego w systemie DBS w zakładce osoby użytkownika i przypisania mu odpowiednich uprawnień do danego konta bazodanowego. Konfiguracja działania systemu dostępowego Z doświadczenia administratorów baz danych wynika, iż w niektórych sytuacjach zachodzi potrzeba pracy serwisowej. Może zdarzyć się, iż w wyniku jakieś awarii należy podjąć natychmiastowe kroki w celu rozwiązania problemu, dlatego też wprowadzono, z poziomu aplikacji, możliwość wyłączania lub załączania kontroli dostępu do bazy danych. Ponadto w czasie wdrażania nowych aplikacji w bazie danych (tu schematów) ciężko jest określić kto będzie się do nich docelowo logował. Tym samym w opisywanym module wprowadzona została możliwość sterowania procesem nasłuchu, zbierającym dane na temat tego kto zalogował się do bazy danych. Systemem rejestruje nazwę użytkownika osuser, nazwę maszyny oraz nazwę aplikacji i czas nawiązania połączenia. Ostatnią możliwością konfiguracji jest włączanie lub wyłączanie procesu zbierania zmian definicji obiektów bazodanowych. Dzięki temu, bez załączania specjalnych audytów w bazie danych, administrator jest w stanie stwierdzić czy jakikolwiek obiekt bazodanowy został zmodyfikowany.
Panel TopSQL (opcja dodatkowa) Dzięki zastosowaniu opcji monitorowania i zapamiętywania najbardziej obciążających zapytań SQL możliwe jest analizowanie i poprawa wydajności bazy danych. Panel wbudowanej wyszukiwarce możliwe jest szukanie kwerend wykonywanych przez konkretnego użytkownika bazodanowego w określonym przedziale czasu. Moduł sprawdza się zwłaszcza w procesie optymalizacji kodu aplikacji bazodanowych. Dzięki wprowadzeniu repozytorium przetrzymującego najbardziej obciążające zapytania, możliwa jest do wykonania analiza porównawcza charakterystyki obciążenia bazy.
Panel Obiektów bazy danych Panel posiada trzy funkcjonalności, wyszukiwanie: obiektów bazodanowych, których definicja uległa zmianie (obiekty zmienione) obiektów o tej samej nazwie (duplikaty) obiektów niepoprawnych (invalidy) Obiekty zmienione Po załączeniu opcji konfiguracyjnej dotyczącej monitorowania zmian w bazie danych, automatycznie wypełniana zostaje lista, tych obiektów w których dokonano zmian definicji. Duplikaty System analizuje obiekty bazodanowe wyszukując zduplikowanych nazw, sytuacja ta może wpływać w pewnych okolicznościach niekorzystnie na działanie aplikacji, zwłaszcza przy powiązaniach miedzy schematowych Invalidy System analizuje wszystkie lub wybrane obiekty bazodanowe, poszukując wszelkich nieprawidłowości w ich strukturze.
Panel Wykonywania SQL`i (opcja dodatkowa) W tym module użytkownicy którzy otrzymali prawo wykonywania zapytań SQL poprzez aplikację DBS mogą wywołać odpowiednie kwerendy. Panel Administracyjny Moduł służy do zarządzania funkcjonowaniem interfejsu webowego systemu DBS. Możliwi są tu do skonfigurowania: użytkownicy grupy komórki sprawdzenie logów systemu DBS Konfiguracja użytkowników
Moduł odpowiedzialny za zarządzanie listą osób uprawnionych do logowania do systemu DBS. Konfiguracja grup Moduł odpowiedzialny za zarządzanie listą grup z przydzielonymi uprawnieniami w systemie DBS. Odpowiednia grupa przypisana jest do każdego użytkownika.
Konfiguracja komórek Moduł odpowiedzialny za zarządzanie listą komórek z systemu kartoteki strukturalno organizacyjnej w daje firmie. Konkretna komórka zostaje przypisana do danego pracownika. Kontrola logów systemu DBS Moduł pozwala osobie z odpowiednimi uprawnieniami na kontrolę osób logujących się do aplikacji DBS. Dzięki temu możliwe jest wykluczenie nieprawidłowego wejścia do systemu. Więcej informacji o aplikacji oraz cenach uzyskacie Państwo kontaktując się bezpośrednio z nami. 2011