Eksploracja i ochrona danych multimedialnych

Podobne dokumenty
Multimedialne bazy danych - laboratorium

Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie. dr inż. Adam Piórkowski. Jakub Osiadacz Marcin Wróbel

Standard SQL/MM: SQL Multimedia and Application Packages

Multimedialne bazy danych. Andrzej Łachwa, WFAiIS UJ 2011

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

15. Funkcje i procedury składowane PL/SQL

Język SQL, zajęcia nr 1

PL/SQL. Zaawansowane tematy PL/SQL

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Programowanie w Ruby

Oracle PL/SQL. Paweł Rajba.

Pakiety podprogramów Dynamiczny SQL

Blaski i cienie wyzwalaczy w relacyjnych bazach danych. Mgr inż. Andrzej Ptasznik

PHP: bazy danych, SQL, AJAX i JSON

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Język PL/SQL. Rozdział 5. Pakiety podprogramów. Dynamiczny SQL

KOLEKCJE - to typy masowe,zawierające pewną liczbę jednorodnych elementów

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Tworzenie raportów XML Publisher przy użyciu Data Templates

Prezentacja specjalności studiów II stopnia. Inteligentne Technologie Internetowe

1 Kursory 1. 2 Wyjątki Wyjątki predefiniowane Wyjątki niezdefiniowane wcześniej Definiowanie własnych wyjątków...

Pakiety są logicznymi zbiorami obiektów takich jak podprogramy, typy, zmienne, kursory, wyjątki.

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

PODSTAWY BAZ DANYCH 13. PL/SQL

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Procedury i funkcje składowane

Oracle PL/SQL. Paweł Rajba.

Relacyjne bazy danych. Podstawy SQL

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

MECHANIZMY WYSZUKIWANIA OBRAZEM W ORACLE 11g

Oracle11g: Wprowadzenie do SQL

Materiały. Technologie baz danych. Plan wykładu Kursory. Wykład 5: Kursory jawne. Podprogramy. Kursory jawne. Kursory niejawne

PRZESTRZENNE BAZY DANYCH WYKŁAD 2

Oracle PL/SQL. Paweł Rajba.

Wykład 5. SQL praca z tabelami 2

Programowanie MSQL. show databases; - pokazanie jakie bazy danych są dostępne na koncie

strukturalny język zapytań używany do tworzenia i modyfikowania baz danych oraz do umieszczania i pobierania danych z baz danych

Model semistrukturalny

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

Funkcje w PL/SQL Funkcja to nazwany blok języka PL/SQL. Jest przechowywana w bazie i musi zwracać wynik. Z reguły, funkcji utworzonych w PL/SQL-u

Generowanie dokumentów XML z tabel relacyjnych - funkcje SQLX

Rozkład materiału do realizacji informatyki w szkole ponadgimnazjalnej w zakresie rozszerzonym

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Relacyjne bazy danych. Podstawy SQL

Programowanie obiektowe

Bloki anonimowe w PL/SQL

Wprowadzenie do multimedialnych baz danych. Opracował: dr inż. Piotr Suchomski

Tworzenie aplikacji bazodanowych

Język PL/SQL Pakiety podprogramów

6. Bezpieczeństwo przy współpracy z bazami danych

Przykłady najlepiej wykonywać od razu na bazie i eksperymentować z nimi.

Wykład I. Wprowadzenie do baz danych

Projektowanie systemów baz danych

P o d s t a w y j ę z y k a S Q L

RELACYJNE BAZY DANYCH

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

Dlaczego GML? Gdańsk r. Karol Stachura

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Bazy danych. Wykład IV SQL - wprowadzenie. Copyrights by Arkadiusz Rzucidło 1

Multi-projekt z przedmiotów Inżynieria oprogramowania, Współczesne bazy danych i Programowanie w języku Java

Obiektowe bazy danych

Systemy GIS Tworzenie zapytań w bazach danych

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Bazy danych Wykład zerowy. P. F. Góra

Wyzwalacz - procedura wyzwalana, składowana fizycznie w bazie, uruchamiana automatycznie po nastąpieniu określonego w definicji zdarzenia

Materiały do laboratorium MS ACCESS BASIC

Jednolite zarządzanie użytkownikami systemów Windows i Linux

Alicja Marszałek Różne rodzaje baz danych

Oracle intermedia na tle standardu SQL/MM i prototypowych systemów multimedialnych baz danych

SZKOLENIE TWORZENIE SYSTEMÓW

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Wybrane problemy z dziedziny modelowania i wdrażania baz danych przestrzennych w aspekcie dydaktyki. Artur Krawczyk AGH Akademia Górniczo Hutnicza

SYSTEM INFORMATYCZNY KS-SEW

ORACLE (Wykład 1) aragorn.pb.bialystok.pl/~aonisko. Typy rozproszonych baz danych. Systemy klient-serwer. Klient-serwer: Przykład

Projektowani Systemów Inf.

WPROWADZENIE DO BAZ DANYCH

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Programowanie w SQL procedury i funkcje. UWAGA: Proszę nie zapominać o prefiksowaniu nazw obiektów ciągiem [OLIMP\{nr indeksu}] Funkcje użytkownika

77. Modelowanie bazy danych rodzaje połączeń relacyjnych, pojęcie klucza obcego.

Wykład 6. SQL praca z tabelami 3

PODSTAWY BAZ DANYCH. 17. Obiektowość w Oracle. 2009/2010 Notatki do wykładu "Podstawy baz danych"

Ćwiczenia laboratoryjne nr 11 Bazy danych i SQL.

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Modelowanie i Programowanie Obiektowe

Monitoring procesów z wykorzystaniem systemu ADONIS. Krok po kroku

SQL Server i T-SQL w mgnieniu oka : opanuj język zapytań w 10 minut dziennie / Ben Forta. Gliwice, Spis treści

OfficeObjects e-forms

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

PRZEWODNIK PO PRZEDMIOCIE

Język PL/SQL Procedury i funkcje składowane

Bazy danych. Zenon Gniazdowski WWSI, ITE Andrzej Ptasznik WWSI

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Czym jest Oracle Multimedia?

Diagramy związków encji. Laboratorium. Akademia Morska w Gdyni

Mechanika i Budowa Maszyn II stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

Transkrypt:

Rozdział 35 Eksploracja i ochrona danych multimedialnych 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. 1 Wstęp 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, jacek@iis.ap.siedlce.pl

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. 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 2 Standard danych multimedialnych: SQL/MM 342

Eksploracja i ochrona danych multimedialnych 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. 3 Oracle intermedia 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 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

A. Barczak, J. Garbaczewski, J. Skaruz 3.2 Struktura Oracle intermedia 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. 4 Eksploracja danych multimedialnych w Oracle intermedia 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 Classes 1. 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

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 ); 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). create or replace procedure zaladuj_obraz (url in varchar2, plik in varchar2, m_id in integer) is m_obraz ORDSYS.ORDImage; m_miniatura ORDSYS.ORDImage; m_sygnatura ORDSYS.ORDImageSignature; bufor RAW(4000) := NULL; 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; -- 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 wybierz_obrazy 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. create or replace procedure wybierz_obrazy (m_id integer, kolor number, tekstura number, ksztalt number, lokalizacja number) is wagi varchar2(200); 345

A. Barczak, J. Garbaczewski, J. Skaruz m_wynik number; m_obraz ORDSYS.ORDImage; m_sygnatura ORDSYS.ORDImageSignature; 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; 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; 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 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ów 2. 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

Eksploracja i ochrona danych multimedialnych 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. 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 aktyw 5.1 Atak SQL injection 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]: 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 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ń 347

A. Barczak, J. Garbaczewski, J. Skaruz 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. 6 Systemy wykrywania anomalii w bazach danych 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

Eksploracja i ochrona danych multimedialnych 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 PHPNuke 3 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. 7 Podsumowanie 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. Literatura 1. 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 2. ISO/IEC 13249-1:2002, Information Technology Database Languages SQL Multimedia and Application Packages Part 1: Framework. ISO, 2002. 3. ISO/IEC 13249-2:2000, Information Technology Database Languages SQL Multimedia and Application Packages Part 2: Full-Text. ISO, 2000. 3 http://phpnuke.org/ 349

A. Barczak, J. Garbaczewski, J. Skaruz 4. ISO/IEC 13249-3:1999, Information Technology Database Languages SQL Multimedia and Application Packages Part 3: Spatial, ISO. 1999. 5. ISO/IEC 13249-5:2001, Information Technology Database Languages SQL Multimedia and Application Packages Part 5: Still Image. ISO, 2002, Second Edition. 6. ISO/IEC 13249-6:2002, Information Technology Database Languages SQL Multimedia and Application Packages Part 6: Data mining. ISO, 2002. 7. Bulusu Lakshman, Oracle i Java Programowanie, Mikom, Warszawa 2002. 350