pobierz plik referatu

Transkrypt

pobierz plik referatu
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
Rozdział 35
w
Eksploracja i ochrona danych multimedialnych
1 Wstęp
da
.b
w
w
Streszczenie. Treścią rozdziału jest analiza funkcjonalności rozszerzenia
Oracle interMedia zarządzającego danymi multimedialnymi przechowywanymi w bazie danych Oracle pod kątem zgodności ze standardem SQL/MM
a także metod dostępu do danych. Omówiono podstawowe założenia
standardu SQL/MM oraz zaprezentowano możliwości analizy i eksploracji
danych multimedialnych za pomocą Oracle interMedia. Przedstawiono także
zasadnicze problemy związane z ochroną danych w systemach zarządzania
multimedialną bazą danych. Zwrócono uwagę na brak efektywnych
rozwiązań technicznych umożliwiających wykrywanie włamań do tego typu
baz danych. Obecnie znane metody wykrywania włamań oparte na
sygnaturach są niewystarczające, ponieważ rozwiązania takie zapewniają
jedynie wykrywanie włamań dobrze zdefiniowanych. Potrzeba zastosowania
inteligentnych systemów, zdolnych do wykrywania nieznanych metod
ataków jest inspiracją do badań naukowych z zakresu wykrywania anomalii.
W rozdziale dokonano także przeglądu aktualnego stanu badań naukowych
w tym zakresie.
pl
s.
Obecne wyzwania stojące przed systemami zarządzania bazami danych to już nie tylko
efektywna i sprawna obsługa ciągów tekstowych, ale coraz częściej także szybki i skuteczny sposób przechowywania danych multimedialnych. Dużego rozmiaru teksty, pliki audio,
obrazy i sekwencje wideo – to coraz częściej spotykane typy danych przechowywanych
w bazach danych. Multimedialne bazy danych znajdują zastosowanie głównie w rozwiązaniach komercyjnych, państwowych i instytucjonalnych, choć pojawiają się także w produktach zorientowanych na użytkownika domowego.
Ponieważ język SQL nie oferował metod dostępu i obsługi danych multimedialnych,
zaszła potrzeba stworzenia nowego standardu, uwzględniającego ten aspekt. W wyniku
prac naukowych powstał standard SQL Multimedia and Application Packages, którego
skrótowa nazwa to SQL/MM.
Na równi z potrzebą standaryzowania metod składowania danych multimedialnych pojawia się problem bezpiecznego korzystania z tych danych. Mimo wielomilionowych nakładów finansowych korporacji zajmujących się wytwarzaniem aplikacji bazodanowych, są
Andrzej Barczak, Jacek Garbaczewski, Jarosław Skaruz: Akademia Podlaska,
Instytut Informatyki, ul. Sienkiewicza 51, 08-110 Siedlce, Polska
e-mail:{a.barczak, jaroslaw.skaruz}@ap.siedlce.pl,
[email protected]
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
A. Barczak, J. Garbaczewski, J. Skaruz
one w dalszym ciągu przedmiotem częstych prób włamań i przejęcia kontroli nad przechowywaną w nich zawartością. Rynek XXI wieku szuka więc optymalnych rozwiązań w tej
dziedzinie, zwracając uwagę nie tylko na cenę ale i jakość, bezpieczeństwo i możliwości
rozwoju oferowanych produktów.
2 Standard danych multimedialnych: SQL/MM
w
da
.b
w
w
Struktura standardu SQL/MM podobna jest pod względem opisu do struktury standardu
SQL, który podzielony jest na wiele części opisujących poszczególne funkcjonalności języka. Inaczej jednak niż w przypadku standardu SQL, luźno powiązane ze sobą części specyfikacji SQL/MM pozwalają na wykorzystanie ich nie tylko w przetwarzaniu danych multimedialnych, ale również w innych rozwiązaniach. Obecnie standard obejmuje pięć części,
od I do VI – ponieważ prace nad czwartą częścią standardu SQL/MM zostały zawieszone.
Niedoszła czwarta część specyfikacji miała obejmować dane matematyczne i umożliwiać
operacje na nich. Mamy więc do czynienia z następującymi partiami standardu.
− Część I: SQL/MM Framework – nie dotyczy bezpośrednio żadnego typu danych,
zawiera jedynie wspólne dla pozostałych części standardu definicje metod i stosowanych typów danych [2].
− Część II: SQL/MM Full-text – jak wskazuje nazwa – definiuje zbiór typów danych
do składowania i przetwarzania dużych obiektów tekstowych. W tej części opisane
zostały także metody wyszukiwania obiektów według zadanych parametrów wejściowych. Nie chodzi tutaj już o proste przeszukiwanie bazy danych w oparciu o podawany w warunku przeszukiwania ciąg tekstowy ale ze względu na właściwość danego łańcucha tekstu [3]. W szczególności można tutaj mówić o porównywaniu kontekstów wystąpienia danego łańcucha tekstowego, uwzględniającego jego odmianę,
a nawet znaczenie poszczególnych słów w danym kontekście. Jedną z wielu podstawowych metod jest funkcja Contains, która posiada wiele możliwości zastosowań –
od prostego warunku porównania łańcucha (Contains (‘ ”ciąg do wyszukania” ’)) do
przeszukiwania ze względu na brzmienie danego ciągu tekstu (Contains (‘ SOUNDS
LIKE ”ciąg do wyszukania” ’)) czy ze względu na odwołania do tematyki tekstu
(Contains (‘ IS ABOUT ”ciąg do wyszukania” ’)).
− Część III: SQL/MM Spatial – definiuje typy danych opisujące dane przestrzenne.
Standard SQL/MM wspiera obiekty jedno-, dwu- oraz trzywymiarowe. W specyfikacji znalazły się dość obszerne opisy przestrzennych układów odniesienia, w większości pozwalających opisywać Ziemię i jej poszczególne regiony. Jest to naturalna
konsekwencja tego, że wielu użytkowników tego typu danych to państwowe urzędy
i instytucje, wykorzystujące dane geograficzne. SQL/MM Spatial zawiera zbiór
funkcji do prezentacji właściwości geograficznych przechowywanych danych, konwersji zewnętrznych danych (tekstowych, binarnych i GML – Geography Markup
Language), a także tworzenia nowych i porównywania istniejących obiektów [4].
− Część V: SQL/MM Still Image – opisuje metody definiowania i obsługi obrazów
w bazie danych. Szczególnie ważne są tutaj sposoby przeszukiwania bazy danych ze
względu na zawartość obiektów zawierających obrazy. Podstawowym typem dla tej
części standardu jest SI_StillImage, opisujący obrazy dwuwymiarowe w postaci kolekcji pikseli [5]. StillImage umożliwia przechowywanie i obróbkę obrazów w różnych formatach wejściowych (m.in. JPEG, TIFF, GIF), zawiera informację o wymiarach danego obrazu i jego właściwościach. Za pomocą metod typu SI_StillImage
możliwa jest obróbka obrazów – skalowanie, obracanie, obcinanie i konwersja do in-
pl
s.
342
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
Eksploracja i ochrona danych multimedialnych
w
nego formatu niż wejściowy. Dane typu SI_StillImage przechowywane są w bazie
danych jako duże obiekty binarne (BLOB). Część standardu SQL/MM poświęcona
pracy z obrazami posiada również szereg innych metod, służących do odczytu informacji o rozkładzie kolorów w obrazie (SI_ColorHistogram) czy uśrednionej wartości
koloru danego obiektu (SI_AverageColor). Jest to dotychczas jedyna część standardu
SQL/MM, która została zaimplementowana w bazie Oracle 10g.
− Część VI: SQL/MM Data Mining jest ostatnią częścią standardu SQL/MM,
dotyczy zaś metod eksploracji danych w multimedialnych bazach danych, wspierających ten standard. Podobnie jak część pierwsza (Framework), nie opisuje złożonych
rodzajów danych [6].
Prace nad standardem SQL/MM trwały kilka lat, a jego poszczególne części były wdrażane
pojedynczo. W 1999 roku zatwierdzono specyfikację dotyczącą danych przestrzennych,
w następnym roku część Full-Text, a w roku 2001 część dotyczącą obsługi i reprezentacji
obrazów. Najpóźniej wykrystalizowała się część dotycząca zagadnień eksploracji danych
multimedialnych, czyli SQL/MM Data Mining, gdzie prace zakończono dopiero w 2002
roku. Ewolucja standardu jednak ciągle trwa i nie wykluczone jest pojawienie się niedługo
kolejnych zmian w poszczególnych jego częściach.
w
w
3 Oracle interMedia
da
.b
Serwer baz danych Oracle 10g w swojej standardowej instalacji zawiera rozszerzenie
Oracle interMedia, przeznaczone do obsługi i zarządzania danymi multimedialnymi. Właściwość ta pozwala na składowanie, odczyt, analizę i obróbkę heterogenicznych danych
multimedialnych a także danych audio, wideo i obrazów.
3.1 Oracle interMedia a standard SQL/MM
pl
s.
Jak już zostało wspomniane, w zakresie odwzorowania standardu SQL/MM na aplikację
Oracle10g, jedynie część piąta standardu – StillImage – jest wspierana przez to rozwiązanie. Dzieje się tak nie tylko dlatego, że Oracle10g nie wspiera standardu SQL/MM np.
w części Spatial, ale również dlatego, że w standardzie nie znajdziemy jeszcze części poświęconych obsłudze obiektów multimedialnych typu audio i wideo, które z kolei znalazły
się już w rozwiązaniach Oracle10g.
Porównując sposób reprezentacji danych multimedialnych w standardzie SQL/MM oraz
w serwerze bazy danych Oracle10g można śmiało stwierdzić, że są one podobne. W obu
przypadkach rozwiązania opierają się o duże obiekty binarne (BLOB), składowane w bazie
danych lub jako zewnętrzne pliki (typ BFILE w Oracle10g). Także w zakresie obsługi
obrazów (bo tą właśnie część standardu wspiera rozwiązanie Oracle10g), znajdziemy tutaj
podobne metody. Nie obejdzie się oczywiście bez różnic, które można dostrzec nie tylko
w innych nazwach metod, stosowanych typów obiektów multimedialnych. Standard
SQL/MM w zakresie pracy z obrazami posiada wiele metod, których nie znajdziemy
w rozwiązaniu firmy Oracle, z kolei Oracle interMedia posiada funkcjonalność, nie zdefiniowaną przez standard.
343
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
A. Barczak, J. Garbaczewski, J. Skaruz
3.2 Struktura Oracle interMedia
w
W zależności od sposobu przechowywania danych multimedialnych, właściwość Oracle
interMedia można stosować do:
− plików przechowywanych poza bazą danych a dostępnych z poziomu bazy za pomocą typu BFILE,
− obiektów binarnych typu BLOB, przechowywanych w bazie danych,
− danych strumieniowych i innych dostarczanych przez specjalne serwery multimediów,
− obiektów umieszczonych w Internecie, dostępnych pod danym adresem URL.
Za obsługę dostępu do danych odpowiada typ ORDSource, który wspiera trzy z czterech
wymienionych rodzajów dostępu do danych. Jedynie w przypadku danych znajdujących się
na specjalistycznych serwerach multimediów (np. udostępnianych strumieniowo), potrzeba
jeszcze specjalnych interfejsów do ich prawidłowej obsługi. ORDSource zawiera informacje o typie źródła danych, sposobie przechowywania, obiekcie BLOB (w przypadku przechowywania lokalnego), adresie lokalizacji, nazwie obiektu i dacie modyfikacji. Metody typu ORDSource pozwalają na kontrolę przepływu danych pomiędzy plikami znajdującymi
się na zewnątrz bazy danych a odpowiednikami tych obiektów w bazie, w tym również na
odczyt zawartości tych obiektów. Jednak zaleca się, by dostęp do obiektów multimedialnych w systemie Oracle10g był możliwy przez specjalnie do tego stworzone typy obiektowe - dedykowane do konkretnych rodzajów multimediów.
Ze względu na rodzaj obsługiwanych multimediów, w schemacie ORDSys obsługującym
bazę Oracle10g, wyróżniamy następujące typy obiektowe: ORDAudio (obsługa plików audio), ORDVideo (obsługa sekwencji wideo), ORDDoc (obsługa tekstów a także dowolnych
multimediów jako dane występujące w jednej kolumnie tabeli) oraz ORDImage (przetwarzanie obrazów). Każdy z wyżej wymienionych czterech typów obiektowych zawiera jako
atrybut typ ORDSource, dzięki czemu metody składowania dla wszystkich rodzajów multimediów w bazie Oracle10g obsługiwane są przez jeden typ dostępu do danych.
da
.b
w
w
4 Eksploracja danych multimedialnych w Oracle interMedia
pl
s.
Dostęp do rozszerzenia Oracle interMedia jest możliwy z poziomu wielu języków programowania, jednak wyjątkowo mocno Oracle wspiera PL/SQL oraz język Java, dla którego
opracowane zostały nawet specjalne klasy Oracle interMedia Java Classes1. Stosunkowo
proste implementacyjnie wydaje się budowanie serwletów i aplikacji w języku JSP do
zarządzania i przetwarzania multimediami składowanymi w bazie danych Oracle.
Ponieważ Oracle interMedia nie posiada własnego interfejsu graficznego, skrypty
PL/SQL są naturalnie podstawowym sposobem ładowania multimediów do bazy danych
a także ich późniejszej eksploracji, porównywania i obróbki. Dlatego też w części poświęconej praktycznemu zastosowaniu tego rozszerzenia, przedstawione przykłady będą opierały się właśnie o język PL/SQL.
Rozważmy jeden ze sposobów ładowania i obróbki (w naszym przypadku tworzenie miniatury) obrazów w Oracle interMedia, z użyciem typu ORDImage.
1
Oracle interMedia Java Classes User’s Guide and Reference, Release 2 (9.2). Oracle 2002.
344
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
Eksploracja i ochrona danych multimedialnych
Tabela, w której będą przechowywane obrazy i ich miniatury, może mieć postać:
create table obrazy
(
id number primary key,
obraz ORDSYS.ORDIMAGE,
miniatura ORDSYS.ORDIMAGE,
sygnatura ORDSYS.ORDIMAGESIGNATURE
);
w
Procedura zaladuj_obraz prezentuje przykładowy sposób ładowania obrazu z podanej
lokalizacji w sieci Internet do bazy danych a następnie tworzenie jego miniatury i sygnatury
(za pomocą ORDImageSignature). W procedurze wykorzystano typ obiektowy ORDImage,
stworzony do obsługi obrazów w bazie Oracle10g. Ze względu na ograniczenia tekstowe,
zrezygnowano z prezentacji części obsługi wyjątków (exceptions).
w
create or replace procedure zaladuj_obraz (url in varchar2, plik in
varchar2, m_id in integer) is
w
m_obraz ORDSYS.ORDImage;
m_miniatura ORDSYS.ORDImage;
m_sygnatura ORDSYS.ORDImageSignature;
bufor RAW(4000) := NULL;
da
.b
begin
m_miniatura := ORDSYS.ORDIMAGE.init();
m_sygnatura := ORDSYS.ORDIMAGESIGNATURE.init();
insert into obrazy
values(m_id,
ORDSYS.ORDIMAGE.init('HTTP',url, plik), m_miniatura, m_sygnatura);
select obraz, miniatura, sygnatura
into m_obraz, m_miniatura, m_sygnatura
from obrazy
where id = m_id FOR UPDATE;
pl
s.
-- import obrazu do tabeli z uzyciem bufora (bufor)
m_obraz.import(bufor);
--- ustawienie atrybutow obrazu na podstawie wlasnosci MIME pliku
m_obraz.setproperties();
--- tworzenie miniatury obrazu
m_obraz.processcopy('fileFormat=JFIF maxScale=200 200', m_miniatura);
--- tworzenie sygnatury obrazu
m_sygnatura.generateSignature(m_obraz);
update obrazy
set obraz = m_obraz, miniatura = m_miniatura, sygnatura = m_sygnatura
where id = m_id;
commit;
exception
...
end;
Tak składowany obiekt może być w dalszym ciągu przetwarzany – poniższa procedura
przedstawia przykład odwołania do sygnatury obrazu i próby przeszukania tabeli obrazy pod kątem występowania obrazów o sygnaturze podobnej do obrazu badanego (parametry przekazywane jako argumenty procedury). Wykorzystano tutaj typ
IMGSimilar, którego parametrami są: kolor, tekstura, kształt i lokalizacja.
wybierz_obrazy
create or replace procedure wybierz_obrazy (m_id integer, kolor
number, tekstura number, ksztalt number, lokalizacja number) is
wagi varchar2(200);
345
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
A. Barczak, J. Garbaczewski, J. Skaruz
m_wynik number;
m_obraz ORDSYS.ORDImage;
m_sygnatura ORDSYS.ORDImageSignature;
w
cursor c1 (c_sygnatura ORDSYS.ORDImageSignature, c_waga varchar2)
is select obraz, ORDSYS.IMGScore(123) wynik
FROM obrazy i
where ORDSYS.IMGSimilar(i.sygnatura, c_sygnatura, c_waga, 100, 123) =
1 and m_id <> id order by wynik desc;
begin
select sygnatura, obraz into m_sygnatura, m_obraz from obrazy
where id=m_id for update;
wagi := 'color='||kolor||' texture='||tekstura||' shape='|| ksztalt
||' location='||lokalizacja;
w
w
open c1 (m_sygnatura, wagi);
loop
fetch c1 into m_obraz, m_wynik;
exit when c1%NOTFOUND;
dbms_output.put_line('Znaleziono obraz '||
m_obraz.getSourceName ||' z wynikiem '||to_char(m_wynik, '00.00'));
end loop;
exception
when no_data_found then
dbms_output.put_line('Nie ma obrazu dla tego numeru ID.');
end;
da
.b
Zapytanie wybiera z tabeli obrazy tylko te, które podobne są do obrazu o id = 1 oraz posiadają odpowiednio podobne własności określone przez parametry dla typu IMGSimilar,
odwołującego się z kolei do sygnatury obrazu.
Przetwarzanie i wyszukiwanie obiektów multimedialnych gromadzonych w bazie danych Oracle10g dzięki rozszerzeniu interMedia staje się zdecydowanie lepsze, prostsze
i efektywniejsze. Obiekty multimedialne stają się coraz powszechniejszym typem danych
przechowywanych w bazach danych, co powoduje też problem ich bezpiecznego zarządzania i udostępniania.
5 Problemy bezpieczeństwa multimedialnych baz danych
pl
s.
Jak informuje firma Oracle, dane multimedialne składowane i przetwarzane przez rozszerzenie Oracle interMedia mogą być bezpiecznie współdzielone i udostępniane wielu użytkownikom serwera baz danych. Jednak rosnąca złożoność oprogramowania, pomimo rozwoju nowoczesnych metodologii projektowania systemów informatycznych a także ich testowania powoduje, że wykrycie kolejnych błędów jest tylko kwestią czasu. W kontekście
bezpieczeństwa, błędy umożliwiające nieautoryzowanym użytkownikom na dostęp do danych, ich modyfikację lub zatrzymanie danej usługi stanowią lukę w systemie bezpieczeństwa zaimplementowanym w obrębie danego systemu informatycznego.
Problem ten dotyczy również systemów zarządzania bazą danych. Jeden z największych
producentów baz danych - Oracle, w dniu 18.10.2005 udostępnił łaty dla bazy Oracle10g
oraz kilkunastu swoich produktów2. Jak widać, problem zapewnienia wysokiej jakości
oprogramowania, pozbawionego błędów umożliwiających nadużycia, dotyczy również czołowych producentów oprogramowania.
2
http://www.oracle.com/technology/deploy/security/pdf/cpuoct2005.html
346
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
Eksploracja i ochrona danych multimedialnych
w
Powszechne wykorzystanie języków skryptowych do tworzenia dynamicznych stron
WWW wiąże się nierozerwalnie z wyborem bazy danych, zawierającej treści tych stron.
Z jednej strony, informacje z bazy danych są odczytywane i przesyłane do przeglądarki
użytkownika, z drugiej strony dane z formularzy na stronie WWW mogą być zapisywane
w bazie danych. Z punktu widzenia wiarygodności treści witryn WWW, baza danych stanowi kluczowy element, którego nadużycie może doprowadzić do utraty lub zmiany informacji. W większości architektur sprzętowo programowych środowisk WWW zawierających minimum serwer WWW oraz bazę danych, te dwie usługi rozdzielone są firewallem,
co w znacznym stopniu uniemożliwia dostęp do serwera baz danych użytkownikom z Internetu. Pomimo tego istnieją metody znane od kilku lat umożliwiające modyfikacje danych
w bazie.
w
5.1 Atak SQL injection
w
SQL injection jest klasą ataków, podczas których nieautoryzowany użytkownik za pomocą
formularzy WWW może zmienić postać zapytania SQL wysyłanego do bazy danych. Atak
ten możliwy jest do realizacji z powodu nieprawidłowej implementacji formularzy WWW
w językach skryptowych. Poniżej znajduje się przykładowy pseudokod implementujący
obsługę formularza[1]:
da
.b
Uname = getAuthenticateUser()
cctype = getUserInput()
result = sql(„SELECT nb FROM creditcards WHERE user=’” + uname + „’
AND type=’” + cctype + „’;”)
print(result)
Jeżeli użytkownik Ania zechce wyszukać wszystkich kart VISA to zapytanie będzie miało
postać:
SELECT nb FROM creditcards WHERE user='Ania' AND type='VISA';
Jeżeli natomiast Paweł zechce obejrzeć wszystkie karty Ani, to w polu formularza do
wyboru typu karty wpisze kod:
' OR user = 'Ania
pl
s.
Zapytanie SQL przyjmie wtedy postać:
SELECT nb FROM creditcards WHERE user='Paweł' AND type='' OR
user='Ania';
Aby uniknąć tego typu błędów, programista musi zaimplementować mechanizm sprawdzania struktury zapytania SQL, zanim zostanie ono przesłane do systemu zarządzania bazą
danych.
5.2 Systemy wykrywania włamań
Obecne systemy wykrywania włamań można sklasyfikować do jednej z dwóch grup: wykrywania nadużyć (ang. misuse detection) i wykrywania anomalii (ang. anomaly detection).
Systemy wykrywania nadużyć są najpopularniejsze i obecnie jako jedynie dostępne na rynku. Ich funkcjonowanie oparte jest na podobnej zasadzie jak wykrywanie wirusów. Posiadają one bazę danych sygnatur ataków. Sygnatura jest natomiast zwięzłym opisem cech
charakterystycznych danego ataku. Sondy monitorujące chronione środowisko przesyłają
informacje o zdarzeniach do modułu analizy, celem porównania zaobserwowanej aktyw347
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
A. Barczak, J. Garbaczewski, J. Skaruz
w
ności z sygnaturami. Dopasowanie analizowanych zdarzeń do jednej z sygnatur powoduje
wykrycie włamania.
Wszystkie rozwiązania oparte na sygnaturach posiadają wspólną wadę: jedynie te włamania mogą zostać wykryte, dla których istnieje zdefiniowana sygnatura. Wiąże się to
z nieustanną aktualizacją bazy danych sygnatur. Ponadto, systemy wykrywania nadużyć nie
są zdolne do wykrywania ataków, które nie są jeszcze znane na świecie.
Systemy wykrywania anomalii nie posiadają bazy danych sygnatur, w związku z tym
pozbawione są wady opisanej powyżej. Dodatkowo, w odróżnieniu od systemów wykrywania nadużyć, zdolne są do wykrywania ataków, które wystąpią w przyszłości a na dzień
obecny metoda ataku nie jest znana. Wadą ich jest natomiast duża ilość błędnych alarmów:
false positive i false negative. Pierwszy z nich dotyczy sytuacji, gdy system wszczyna
alarm na skutek błędnej analizy zdarzeń nie stanowiących ataku, drugi z nich oznacza brak
alarmu w przypadku aktywności intruza.
Systemy wykrywania anomalii są przedmiotem badań naukowych, nie istnieją tego typu
wysokiej klasy rozwiązania komercyjne. Tworzone w laboratoriach systemy oparte są na
metodach sztucznej inteligencji takich jak: sztuczne systemy immunologiczne, rekurencyjne sieci neuronowe, algorytmy genetyczne.
w
w
6 Systemy wykrywania anomalii w bazach danych
da
.b
pl
s.
Powodem niewielkiej ilość prac naukowych ukierunkowanych na wykrywanie anomalii
w bazach danych jest możliwość uogólnienia dużej liczby propozycji wykrywania anomalii
w sieciach komputerowych na inne obszary. W połowie 2005 roku ukazała się praca [1],
w której autorzy podjęli próbę stworzenia systemu wykrywania anomalii w zapytaniach
SQL, oznaczających ingerencję intruza, której celem jest uzyskanie nieautoryzowanego
dostępu do bazy danych.
Autorzy stworzyli system wykrywania anomalii, który zdolny jest do nauki profilu
zawierającego charakterystykę dostępu do bazy z poziomu aplikacji WWW, używając do
tego celu wielu modeli normalnego zachowania. Modele te umożliwiają wykrywanie nieznanych ataków przy niewielkim poziomie błędów false positive. Profile tworzone są automatycznie w fazie trenowania systemu na podstawie utworzonego wcześniej zbioru danych.
Natomiast podczas fazy testowania, rejestrowane dane porównywane są z profilem.
W przypadku, gdy zarejestrowane zachowanie nie pasuje do profilu zachowania, podnoszony jest alarm. Na rysunku poniżej przedstawiono architekturę systemu.
Rys. 1. Architektura systemu wykrywania anomalii
348
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
Eksploracja i ochrona danych multimedialnych
w
Zapytania SQL przesyłane przez serwer WWW do bazy danych wysyłane są również do
aplikacji. Celem modułu dostawcy jest wyodrębnienie z kanału komunikacyjnego pomiędzy serwerem WWW i bazą danych zapytań SQL i przesłanie ich do modułu konwertera.
Konwerter natomiast przetwarza zapytania SQL, produkując na wyjściu żetony z ustawioną
flagą oznaczającą typ tokenu jako stałą lub zmienną. Stałe dotyczą jedynie słów kluczowych języka SQL. Zmiennymi będą pozostałe elementy zapytania SQL. Tokeny oznaczające kolumny tabel zawierają również informacje o typie danych. Zadaniem kolejnego modułu jest przydzielenie modelu zawartego w profilu do przesyłanego żetonu. Każdy model
dotyczy cech charakterystycznych typu String danych. Pierwszy model to: długość String.
Celem tego modelu jest oszacowanie średniej długości elementów zapytania SQL. Kolejny
model to rozkład znaków stanowiących token. Podejście to jest oparte na obserwacji, że tokeny mają regularna strukturę tj. wszystkie znaki alfabetu występują z pewnym prawdopodobieństwem. Następny model to: wnioskowanie struktury zapytań. Celem tego modelu
jest uzyskanie informacji o gramatyce przesyłanych żetonów. Oznacza to tym samym, że
po pojawienie się pewnego żetony, system zna wszystkie możliwe (pasujące do gramatyki)
żetony, które mogą pojawić się jako kolejne. W sytuacji, gdy kolejnym żetonem będzie nie
pasujący do gramatyki, będzie to oznaczało anomalię.
Do testowania stworzonego systemu wykorzystano aplikację portal PHPNuke3 w starszej wersji, zawierającej błędy pozwalające na przeprowadzenie ataków SQL injection.
Wyniki przeprowadzonych eksperymentów pokazały, iż wszystkie ataki zostały wykryte.
da
.b
w
w
7 Podsumowanie
Literatura
1.
2.
3.
3
pl
s.
Zastosowanie multimedialnych baz danych do składowania obiektów audio, wideo, dużych
tekstów i obrazów staje się coraz powszechniejsze, jednak wraz ze wzrostem użytkowników tego typu rozwiązań rośnie liczba włamań do systemów zarządzania bazami danych.
Aplikacje i rozszerzenia – jak np. Oracle interMedia – wspierają standard obsługi danych
multimedialnych SQL/MM na razie w niewielkim stopniu, dlatego należy spodziewać się
wzrostu tego wsparcia w kolejnych produktach z dziedziny multimedialnych baz danych.
Projektanci systemów zarządzania bazami danych zapewne będą starali się także wyeliminować potencjalne zagrożenia ataków intruzów, choć tutaj skuteczność ograniczona jest
przez zdolności percepcyjne danego zespołu programistów. Jednak przyszłość multimedialnych baz danych – mimo problemów z bezpieczeństwem i ograniczonego wspierania
standardu – wydaje się być niezagrożona.
Valeur F., Mutz D., Vigna G., A Learning-Based Approach to the Detection of SQL Attacks.:
Proceedings of the Conference on Detrection of Intrusions and Malware & Vulnerability
Assesment (DIMVA), Wiedeń, 2005
ISO/IEC 13249-1:2002, Information Technology – Database Languages – SQL Multimedia and
Application Packages – Part 1: Framework. ISO, 2002.
ISO/IEC 13249-2:2000, Information Technology – Database Languages – SQL Multimedia and
Application Packages – Part 2: Full-Text. ISO, 2000.
http://phpnuke.org/
349
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006
A. Barczak, J. Garbaczewski, J. Skaruz
4.
5.
6.
7.
ISO/IEC 13249-3:1999, Information Technology – Database Languages – SQL Multimedia and
Application Packages – Part 3: Spatial, ISO. 1999.
ISO/IEC 13249-5:2001, Information Technology – Database Languages – SQL Multimedia and
Application Packages – Part 5: Still Image. ISO, 2002, Second Edition.
ISO/IEC 13249-6:2002, Information Technology – Database Languages – SQL Multimedia and
Application Packages – Part 6: Data mining. ISO, 2002.
Bulusu Lakshman, Oracle i Java – Programowanie, Mikom, Warszawa 2002.
w
da
.b
w
w
pl
s.
350
(c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006

Podobne dokumenty