pobierz plik referatu
Transkrypt
pobierz plik referatu
Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 Rozdział 1 w Przegląd zagrożeń dla systemów baz danych oraz sposoby ochrony w 1 Wstęp da .b w Streszczenie. Jednym z stale aktualnych problemów w systemach informatycznych jest odpowiednie zabezpieczenie tychże systemów przed nieupoważnionym dostępem, a także przede wszystkim przed kradzieżą oraz manipulacją danych. Spośród możliwych rodzajów zagrożeń w rozdziale zwrócono uwagę szczególnie na te, które mają na celu ataki na bazy danych. Niniejsze opracowanie przedstawia również możliwości ochrony baz danych. Dane zgromadzone w bazach danych, powinny – i najczęściej są – chronione przed nieuprawnionym dostępem, utratą czy manipulacją. Chronienie danych jest nie tylko kwestią polityki czy wizerunku organizacji zajmującej się zarządzaniem nimi, jest także obowiązkiem regulowanym przez przepisy prawne. Bazy danych są obecnie zazwyczaj częścią trójwarstowej architektury, przykład której znajduje się na rysu. 1. Architektura trójwarstwowa jest rozszerzeniem architektury dwuwarstwowej klient-serwer o dodatkową warstwę pośrednią, czyli warstwę aplikacji. pl s. Rys. 1. Architektura trójwarstwowa. Anna Kotulla Politechnika Śląska, Instytut Informatyki, ul. Akademicka 16, 44-100 Gliwice, Polska email:[email protected] (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 A.Kotulla w Spośród znanych zagrożeń dla systemów informatycznych, wyodrębnić można takie, które odpowiednio dopasowane bezpośrednio dotyczyć mogą również baz danych, przykładem mogą tu być narzędzia typu rootkit, omówione w punkcie 2.4. Inną grupę stanowią zagrożenia typowe dla systemów zawierających bazy danych, jak wstrzykiwanie kodu SQL, omówione w punkcie 2.3. W rozdziale scharakteryzowane zostały te zagrożenia (które wykorzystane mogą być w sposób celowy), dotyczące bezpośrednio baz danych [4], [8], [9], [10]: − łamanie haseł użytkowników, − przepełnienie bufora, − ataki Denial of Service, − wirusy, robaki i trojany, − narzędzia typu rootkit, − wstrzykiwanie kodu SQL. W drugiej częsci wskazane zostały możliwości przeciwdziałania wymienionym zagrożeniom. Systemy zarządzania bazami danych zawierają w kolejnych wersjach coraz więcej dodatkowych komponentów, co powoduje, że czasem trudno jest jednoznacznie rozgraniczyć, co jest, a co nie jest bazą danych – jako przykład można podać tu środowisko Oracle, z którym – w zależności od dystrybucji - wraz z bazą danych otrzymuje się bogaty zestaw narzędzi i przykładowych aplikacji. Niektóre zagrożenia próbują wykorzystywać potencjalne luki wynikające z architektury konkretnego systemu zarządzania bazami danych (SZBD). W przypadku baz danych Oracle, przykładem może być tu omówiony w punkcie 2.2 atak na TNS Listener. Innym przykładem jest podejmowanie prób autentyfikacji z wykorzystywaniem typowych użytkowników (czasem nawet z standardowo im przypisanymi hasłami), w zależności od tego, jak SZBD został rozpoznany. W ramach zabezpieczania SZBD należy w tym przypadku przypisać nowe hasła i zablokować niepotrzebnych użytkowników. da .b w w 2 Przegląd zagrożeń typowych dla baz danych 2.1 Nieuprawniony dostęp, łamanie haseł pl s. Zagrożenia dla baz danych [8] wynikają z zaniedbań organizacyjnych (np. brakujące czy nieaktywne mechanizmy ochrony, niewystarczające planowanie i przetestowanie systemu), z błędów ludzkich (np. błędy w administracji, przypadkowa manipulacja danych), z zawodności technologii (np. niedostępność bazy danych, utrata integralności danych) oraz z zamierzonych działań – przegląd których przedstawiono w tym rozdziale. Zdobycie hasła, najlepiej użytkownika z dużymi uprawnieniami, jest prostą drogą do zdobycia dostępu do bazy danych. Próby łamania haseł [1], [9], [10] podejmowane są poprzez: − atak metodą siłową (ang. brute force attack), polegający na sprawdzaniu wszystkich możliwych kombinacji znaków mogących wystąpić w haśle. Efektywność metody zależy od długości hasła i złożoności algorytmu szyfrowania oraz mocy obliczeniowej komputera. − atak słownikowy (ang. dictionary attack), wykorzystujący słownik haseł – większość użytkowników stosuje hasła mające jakieś realne znaczenie. Inną możliwością jest 14 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 Przegląd zagrożeń dla systemów baz danych oraz sposoby ochrony − w − − w słownik złożony z potencjalnych haseł (np. standardowe hasła w bazach danych przydzielane podczas tworzenia tych baz). atak za pomocą tęczowych tablic [6] (ang. rainbow table attack), czyli przygotowanej bazy kryptogramów (ang. hash) wykorzystywaną w łamaniu haseł. Wyliczenie tęczowych tablic dla możliwych haseł i używanych algorytmów, jest wprawdzie akcją czasochłonną, ale jednorazową. P. Oechslin zaproponował również algorytmy, które pomimo tego, że używaja ułamka możliwych kryptogramów, gwarantują otworzenie ok. 90% haseł w parę minut. sniffing, czyli przechwycenie hasła bądź jego kryptogramu w sieci, za pomocą specjalnych programów (ang. sniffer). keylogger, służący do protokołowania naciskanych klawiszy i umożliwiający w ten sposób również wykradanie haseł. Keyloggery dzielą się na sprzętowe (z własną pamięcią, podłaczane np. przez USB, czy w formie przejściówki) oraz programowe. śledzenie klawiatury, odbywające się za pomocą urządzeń rejestrujących, takich jak kamera. przeszukiwanie komputera / serwera. Czasem hasła mogą być znalezione w postaci niezaszyfrowanej, np. w skryptach, plikach historii shella, plikach konfiguracyjnych. − − w Tabela 1. Algorytmy kryptograficzne używane do szyfrowania haseł w wybranych bazach danych da .b Baza danych Algorytmy kryptograficzne używane do szyfrowania haseł Oracle DES (wersje 7-10g R2) [11] SHA-1 (od wersji 11g R1) [11] MS SQL SHA-1 (wersja 2000, 2005) [3],[12] Server Oracle pl s. Metody łamania haseł zostały przytoczone jako pierwsze, ponieważ niestety w dalszym ciągu hasła są zbyt często na tyle proste (składające się z niewielu znaków, nie zawierające znaków specjalnych, cyfr), że przedstawione metody mogą poradzić sobie z nimi bez większego problemu. W przypadku licznych baz danych użytkownicy są po prostu dodatkowymi użytkownikami systemu operacyjnego, hasła są również pamiętane w systemie operacyjnym i tam przede wszystkim powinny być chronione. Z wiodących baz danych Oracle i MS SQL Server (tabela 1) zarządzają same użytkownikami, dlatego te dwa systemy zostaną dokładniej opisane. W przypadku haseł, Oracle [3], [11] używa dla wersji 7-10g R2 algorytmu Data Encryption Standard (DES), tworząc dla konkatenacji postaci <użytkownik><hasło> kryptogram 8bitowy, który pamiętany jest w tablicy SYS.USER$. Przykładowo, kombinacje sys/temp1 oraz system/p1 mają tę samą wartość kryptogramu 2E1168309B5B9B7A. Hasła mogą mieć długość do 30 znaków, nie są rozróżniane małe i wielkie litery. Od wersji 11g R1 opcjonalnie można stosować hasła długości do 50 znaków, a dzięki stosowaniu algorytmu SHA-1 także z rozróżnienem na duże/małe litery. Aby utrudnić złamanie haseł, stosuje się tzw. salt (w j. angielskim sól), czy liczbę losową, która konkatenowana jest przed zaszyfrowaniem z hasłem. Technika ta stosowana jest również od wersji Oracle 11gR1. Jednym z najbardziej znanych programów do ataków typu brute force, jest Orabf, który jest w stanie przeliczyć ponad 1.000.000 haseł na sekundę. Przy założeniu, że hasło 15 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 A.Kotulla ma długość 5 znaków i składa się z liter (26-znakowy alfabet), istnieje 11881376 możliwych haseł, do wyliczenia których współczesne komputery nie potrzebują nawet minuty. Microsoft SQL Server w W przypadku haseł, Microsoft SQL Server [3] używa dla wersji 2000 oraz 2005 algorytmu SHA-1. Dla wersji 2005, kryptogram pamiętany jest w tablicy sysxlogins i wyznaczany jest przez funkcję haszującą konaktenację <salt> + <hasło>. Jako salt używany jest wynik funkcji rand(), hasło składa się z znaków unicode (możliwe duże i małe litery). Maksymalna długość hasła to 128 znaków. Dostępne są darmowe programy sprawdzające złożoność haseł dla Microsoft SQL Server, jak NGSSQLCrack czy SQLdict. w 2.2 Ataki Denial of Service da .b w Ataki Denial of Service (DoS) [4] przeprowadzane są w celu uniemożliwienia uprawnionym użytkownikom dostępu do usług informatycznych. Ataki DoS dzielą się na dwie grupy pod względem sposobu działania: − Ataki DoS mające na celu wyczerpanie zasobów bazy danych, która nie może wtedy oferować żadnych usług. Dla Oracle może to być próba zakończenia Transparent Network Substrate (w skrócie TNS) Listener, za pomocą przekazanego polecenia stop. TNS Listener jest procesem nasłuchu (od ang. listen) serwera bazy danych (standardowy port 1521), odbierającym żądania nawiązania połączenia z bazą danych. Dalsza komunikacja po nawiązaniu połączenia odbywa się bez udziału procesu nasłuchu. − Ataki DoS zaburzające komunikację pomiędzy bazą danych a potencjalnymi klientami. Dla przykładu, biuletyn zabezpieczeń firmy Microsoft (ang. Microsoft security bulletin) MS99-059 opisuje błąd typu DoS na poziomie protokołu sieciowego w SQL Server 7, występujący wówczas, gdy pakiet TDS (ang. Tabular Data Stream) wysyłano z informacją o wielkości pakietu w nagłówku mniejszą od minimalnej dopuszczalnej wartości. Ataki DDoS (ang. Distributed Denial of Service) wykorzystują liczne komputery, tzw. zombi, do przeprowadzenia ataku DoS. pl s. 2.3 Wstrzykiwanie kodu SQL Wstrzykiwanie kodu SQL (ang. SQL Injection) [1],[4] polega na zmanipulowaniu przekazanego bazie danych do wykonania kodu SQL w taki sposób, aby skłonić bazę danych do wykonania dodatkowych bądź zmienionych poleceń. Powodzenie tego typu ataków można wykluczyć, a przynajmniej znacznie ograniczyć poprzez sprawdzenie wprowadzonych danych przed wykonaniem polecenia SQL. Przed zmanipulowanym kodem SQL należy chronić się także, kiedy przekazany jest w mniej typowej formie – dla przykładu możliwe jest zawarcie poleceń SQL w kodach kreskowych i wstrzykiwanie kodu SQL przy skanowaniu etykiet. Poniższy przykład ilustruje [1] wstrzyknięcie dodatkowego kodu dla MS SQL Server. Załóżmy, że w bazie danych istnieje tablica autorzy, zawierająca pola id, imie oraz nazwisko. Zapytanie SQL, zwracające dane dla autorów o imieniu Jan i nazwisku Kowalski może wyglądać tak: 16 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 Przegląd zagrożeń dla systemów baz danych oraz sposoby ochrony select id, imie, nazwisko from autorzy where imie = 'Jan' and nazwisko = 'Kowalski' Ważny - i stanowiący potencjalne zagrożenie - w tym przypadku jest fakt, że imię i nazwisko w zapytaniu ograniczone jest znakiem ', będącym dla MS SQL Server znakiem kończącym napis. Jeżeli aplikacja przekaże dalej zapytanie dla imienia J'an (i poprzedniego nazwiska Kowalski), wówczas zapytanie wygląda tak: w select id, imie, nazwisko from autorzy where imie = 'J'an' and nazwisko = 'Kowalski' Baza danych zwraca w tym przypadku błąd, ponieważ jako imię przekazane zostało J (ze względu na kończący znak '), natomiast dalszą część tekstu baza danych próbuje interpetować. W przykładzie baza danych nie potrafi zinterpretować an: w Server: Msg 170, Level 15, State 1, Line 1 Line 1: Incorrect syntax near 'an'. w Samo zwrócenie takiego komunikatu o błędzie jest sygnałem, że baza danych może być podatna na iniekcję SQL w tym miejscu. Jeżeli jednak jako imię podstawione zostanie polecenie J'; drop table autorzy--, wówczas baza danych wykona poprawne składniowo polecenie drop table autorzy i skasuje tabelę autorzy. 2.4 Narzędzia typu rootkit da .b Mianem narzędzi typu rootkit [5], [10], potocznie nazywanych rootkitami, określane są zestawy narzędzi używanych po włamaniu do systemów komputerowych, aby ukryć ślady włamania oraz obecność intruza, np. próby logowania, dodatkowe elementy – jak utworzonych przez intruza użytkowników, czy procesy. Tabela 2. Wybrane podobieństwa pomiędzy poleceniami systemu operacyjnego (Linux) oraz bazami danych, za [10] System operacyjny ps Oracle MS SQL Server list application; select * from sysprocesses; select * from view; select * from view; exec procedure Postgres select * from pg_stat_activity; pl s. select * from v$process; execute select * from view; exec procedure kill alter <id_procesu> system kill session ’12,55’ DB2 select * from view; execute procedure; force SELECT @var1 = application <id_procesu> (<id_procesu>) FROM sysprocesses WHERE nt_username='andrew' AND spid<>@@spidEXEC ('kill '+@var1); Pierwsze narzędzia typu rootkit pojawiły się dla systemów operacyjnych. Jednak bazy danych są również podatne na taki rodzaj ataków, ponieważ posiadają podobne elementy, będące celami narzędzi typu rootkit. Zarówno dla baz danych jak i dla systemów operacyj17 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 A.Kotulla w nych istnieją użytkownicy, procesy, zadania, wykonywalny kod. Przykład poleceń i struktur występujących w systemach operacyjnych oraz w bazach danych podano w tabeli 2. Pierwsze generacje narzędzi typu rootkit dla systemów operacyjnych ukrywały dodatkowych użytkowników - to samo może zdarzyć się w przypadku bazy danych Oracle [5], która pamięta użytkowników w tabeli systemowej SYS.USER$. Większość narzędzi administracyjnych (np. Oracle Enterprise Manager, Oracle Gird Control, Quest SQL Navigator, Quest TOAD) korzysta jednak nie z tabeli SYS.USER$ bezpośrednio, ale z perspektyw (ang. views) DBA_USERS oraz ALL_USERS. Narzędzie typu rootkit będzie się więc starało zmodyfikować te perspektywy dodając dodakowy warunek w ten sposób, aby nie pokazywały dodanych użytkowników, np. dopisując: AND U.USER# <> numer_dodatkowego_użytkownika da .b w w Narzędzia typu rootkit dla baz danych Oracle dzielą się na następujące grupy [5]: − Pierwsza generacja Narzędzia modyfikują obiekty słownika danych lub tworzą nowe. Są stosunkowo proste do wykrycia, przy regularnym porównywaniu sum kontrolnych obiektów w bazie danych z oryginalnymi wartościami. − Druga generacja Narzędzia typu rootkit wykorzystwać będą kompilację PL/SQL do kodu wewnętrznego lub mechanizm wirtualnych prywatnych baz danych VPD (ang. Virtual Private Database). Możliwe do wykrycia pod warunkiem znajomości sum kontrolnych plików zewnętrznych lub posiadania dodatkowych uprawnień. − Trzecia generacja Podobne do narzędzi typu rootkit jądra dla systemów operacyjnych, czy w przypadku Oracle modyfikujące obiekty bazy danych bezpośrednio w obszarze SGA. Narzędzia tej generacji będą bardzo trudne do wykrycia. 2.5 Błędy przepełnienia bufora. Trojany, robaki, wirusy. pl s. Przepełnienie bufora (ang. buffer overflow) [1], [4] jest błędem polegającym na załadowaniu do wyznaczonego obszaru pamięci zwanego buforem większej niż przewidziana ilości danych. W tej sytuacji następuje przepełnienie stosu i wykonany może być dowolny przekazany kod. Aby ustrzec się przed tego rodzaju błędami, konieczna jest weryfikacja rozmiaru przyjmowanych danych. Błędy umożliwiające przepełnienie bufora często wykorzystywane są przez omówione poniżej złośliwe oprogramowanie. Trojany, robaki i wirusy zostały ujęte we wspólnym podpunkcie, ponieważ są kategorią złośliwego kodu, wykorzystującego jakieś luki, np. przepełnienie bufora. Wirus [14] definiowany jest jako kod programu, który rozmnaża się. Obecnie termin wirus odnosi się do wszystkich rodzajów szkodliwego oprogramowania lub określa wszystkie „szkodliwe zmiany” powstałe w wyniku działania szkodliwego programu w zaatakowanym systemie. Robak [14] uznawany jest za podkategorię wirusów. Jest programem komputerowym rozprzestrzeniającym się samodzielnie i nie infekującym innych plików. Instaluje się na komputerze ofiary i szuka sposobu rozprzestrzeniania się. Trojan [14] jest pozornie użytecznym programem, który nie potrafi samodzielnie się rozprzestrzeniać, a jego celem jest wykonanie jakieś szkodliwej czynności na komputerze ofiary. 18 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 Przegląd zagrożeń dla systemów baz danych oraz sposoby ochrony Jednym z bardziej znanych robaków jest SQL Slammer [4],[13], który atakował bazę danych MS SQL Server 2000. SQL Slammer ujawnił się w styczniu 2003 (w tym czasie dostępna była już łata naprawiająca lukę) i szybko się rozprzestrzeniał, szczególnie w Azji. Robak przeprowadził atak DDoS wykorzystując lukę przepełnienia bufora w SQLDesktop-Engine MSDE. SQL Server, otrzymując pakiet UDP z wiodącym bajtem 0x04, próbował otworzyć klucz w rejestrze, wskazany w potencjalnie niebezpiecznym ciągu znaków znajdującym się za wiodącym bajtem. Przykładowo pakiet w \x04\x52\x45\x47\x4B\x45\x59 powodował, że SQL Server próbował otworzyć w rejestrze klucz HKLM\Software\Microsoft\Microsoft SQL Server\REGKEY\MSSQLServer\Curren tVersion w Jeżeli przekazany ciąg znaków był znacznie dłuższy od pokazanego 6-bajtowego pakietu, występowało przepełnienie wewnętrznego bufora, wykorzystane przez robaka Slammer. w 2.6 Bezpieczeństwo komputerów klienckich da .b Nie wolno zapominać o aspektach bezpieczeństwa komputerów klienckich [10]. W przypadku, kiedy bazy danych i centralne systemy są dobrze chronione, ataki poprzez komputery klienckie, mające dostęp do baz danych, a czasem nawet, jak to ma miejsce w przypadku programistów, posiadające stosunkowo duże uprawnienia, mogą być łatwiejszą i skuteczniejszą metodą atakowania baz danych. Dodatkowo często komputery klienckie łączą się z większą liczbą baz danych, wówczas wszystkie bazy mogą być zagrożone. Niektóre programy klienckie umożliwiające dostęp do baz danych mogą być łatwo użyte do wykonania w tle komend SQL w czasie łączenia się z bazą danych. Przykłady dla potencjalnie niebezpiecznych plików oraz ustawień dla programów klienckich bazy danych Oracle: − SQL*Plus – skrypty glogin.sql, login.sql − TOAD – toad.ini − SQLWorksheet – sqlplusWorksheetInit.sql − SQL*Navigator – w rejestrze pod Session_Auto_Run_Script. Bazy danych podatne są również na specjalnie spreparowane pliki biblioteczne (np. DLL pod Windows). Przygotowania i instalacja bazy danych [4], [5] pl s. 3 Możliwości zabezpieczenia baz danych Już podczas przygotowania do instalacji i samej instalacji bazy danych i aplikacji konieczne jest zachowanie obecnie obowiązujących standardów - aby baza danych była możliwie jak najlepiej zabezpieczona, należy starannie przeprowadzić instalację, wgrać dostępne łaty i deaktywować wszystkie niepotrzebne elementy (jak użytkowników, funkcje, itp.). W późniejszym czasie łaty należy wgrywać również regularnie. Warto również dla pakietów i definicji wyznaczać sumy kontrolne i regularnie je porównywać, wówczas możliwe jest szybkie wykrycie manipulacji. W przypadku sum kontrolnych dla plików często wyznaczane są sumy MD5. Algorytm został opracowany przez Ronalda Rivesta w roku 1991. Algorytm MD5 [15] z dowolnego ciągu danych generuje 19 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 A.Kotulla 128-bitowy skrót. Nazwa algorytmu pochodzi od angielskich słów Message-Digest algorithm 5, co w tłumaczeniu na język polski oznacza Skrót Wiadomości wersja 5. Popularną implementacją algorytmu MD5 jest md5sum, dostępny w systemach operacyjnych Unix bądź Linux. Implementacje istnieją również dla systemu Windows [16]. Aplikacje [4], [5] w Aplikacje, jak pokazano na rys. 1, są warstwą pośredniczącą pomiędzy bazą danych a komputerami klienckimi. Newralgiczne zapytania, np. zwracające użytkowników bazy danych, bezpieczniej jest wykonywać w taki sposób, aby nie korzystać ze struktur pośredniczących, takich jak perspektywy, a zamiast tego konstruować zapytania bezpośrednio do tabel. Jeżeli doszło do manipulacji w bazie danych, celem często są kody perspektyw, jak przedstawione to zostało w punkcie 2.4. Struktura bazy danych – szczególnie kluczowe tabele (np. przechowujące nazwy użytkowników i hasła), procedury i funkcje powinny mieć nazwy trudne do odgadnięcia. Funkcje należy wywoływać używając pełnych nazw, np. dla Oracle SYS.DBMS_CRYPTO, zamiast DBMS_CRYPTO. w w Komputery klienckie [4], [10] Hasła [3], [4] da .b Ochronę przed zagrożeniami zapewnia przeanalizowanie używanych aplikacji klienckich i pamiętanie newralgicznych plików np. na szyfrowanych obszarach dysku czy w obszarach tylko do odczytu. pl s. Jedną z najczęściej wykorzystywanych słabych stron są zbyt proste hasła. Należy dołożyć starań, aby hasła były odpowiednio złożone. Duża moc obliczeniowa obecnych komputerów oraz nowe metody, np. tęczowe tablice, stanowią duże zagrożenie. Hasła powinny mieć przynajmniej 10 znaków, aby zapobiec atakom za pomocą tęczowych tablic. Hasła nie powinny się powtarzać dla różnych baz danych. Warto ustalić odpowiednie reguły dla haseł. Hasła, o ile są przechowywane w bazie danych, nie powinny nigdy pamiętane być w postaci jawnej, konieczne jest używanie kryptogramów. Funkcje weryfikujące hasła również stanowią dobry cel do manipulacji, dlatego ważne jest ich zabezpieczenie (np. przez wygenerowane i sprawdzane regularnie sumy kontrolne). Kanały transmisji danych, w tym haseł bądź ich kryptogramów, powinny być bezpieczne. Przykładowo w przypadku danych przekazywanych przez internet należy używać protokołu HTTPS zamiast HTTP. Twórcy systemów zarządzania bazami danych również starają się przeciwdziałać zagrożeniom, jak atakom za pomocą tęczowych tablic. Aby utrudnić złamanie haseł, stosuje się wspomniany już salt. Dzięki temu zabiegowi trudniejszcze staje się złamanie hasła za pomocą tęczowych tablic, ponieważ trzeba je wyliczyć dla każdej możliwej wartości salt i dodatkowo użyte muszą być podczas ataku właściwe tęczowe tablice. 20 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 Przegląd zagrożeń dla systemów baz danych oraz sposoby ochrony 4 Podsumowanie w Bazy danych odgrywają bardzo ważną rolę w systemach informatycznych. Przechowują dane, które muszą być chronione przed nieuprawnionym dostępem i manipulacją. W rozdziale dokonano przeglądu zagrożeń dla baz danych i przedstawiono możliwości ochrony. Bazy danych [4] będą jednak dopiero wtedy odpowiednio zabezpieczone, kiedy w całym środowisku wprowadzone zostaną odpowiednie procedury bezpieczeństwa. W szczególności analizy i postępowania według ustalonej polityki bezpieczeństwa wymagają, oprócz samych baz danych: − infrastruktura, np. sieci LAN, − stosowane systemy operacyjne, − serwery aplikacji, − aplikacje klienckie, − komputery użytkowników o większych uprawnieniach, czyli administratorów oraz programistów, − komputery użytkowników korzystających pośrednio lub bezpośrednio z baz danych, − zachowania użytkowników. Do poprawy bezpieczeństwa z pewnością przyczyni się stosowanie rozwiązań identyfikacji biometrycznej lub z użyciem zewnętrznych narzędzi, takich jak karty identyfikacyjne. Wspomniane zagrożenia nie dotyczą w jednakowym stopniu wszystkich baz danych, a nawet dystrybucji konkretnego systemu. Nie można też jednoznacznie wskazać baz danych, które są bezpieczniejsze niż pozostałe. Producenci baz danych odpowiadają na zagrożenia i udostępniają łaty oraz wprowadzają poprawki w nowszych wersjach. Zgromadzone dane są jednak ciągle przedmiotem zainteresowania, więc nieustannie pojawiają się coraz doskonalsze narzędzia do przeprowadzania ataków. Dużym problemem jest istnienie firm wyspecjalizowanych na wyszukiwanie dziur w systemie bezpieczeństwa konkrentnych baz danych i oferujących gotowe programy, wykorzystujące poznane luki, lub elementy umożliwiające przeprowadzenie ataków, jak wyliczone tablice tęczowe. da .b w w 1. 2. 3. 4. 5. 6. 7. pl s. Literatura Anley Ch.: Advanced SQL Injection In SQL Server Applications, Next Generation Security Software Ltd, 2002. Birkholz E. P. (red): Special Ops: Host and Network Security for Microsoft, Unix and Oracle. Syngress Publishing, Inc. 2003. Bon G., van Loon S.: Research report : Password cracking in the field. Operating Systems and Database Management Systems. University of Amsterdam, 2006. Litchfield D., Anley Ch., Haesman J., Grindlay B.: The Database Hacker’s Handbook, Defending Database Servers.Wiley Publishing, Inc. Indianapolis, 2005, ISBN 13: 978-0-76457801-4. Kornbrust A. Rootkity w bazach danych Oracle. Hakin9, Hard Core It Security Magazine, Nr 1/2006, ISSN: 1731/7150. Oechslin P.: Making a Faster Crytanalytical Time-Memory Trade-Off, Advances in Cryptology CRYPTO 2003, 23rd Annual International Cryptology Conference, Santa Barbara, California, USA, August 17-21, 2003, Proceedings. Lecture Notes in Computer Science 2729 Springer 2003, ISBN 3-540-40674-3. Wright J., Cid C.: An Assessment of the Oracle Password Hashing Algorithm. 21 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008 Rozdział monografii: 'Bazy Danych: Rozwój metod i technologii', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2008 A.Kotulla 8. 9. 10. 11. 12. w Bundesamt für Sicherheit in der Informationstechnik, IT-Grundschutz-Kataloge (8. Ergänzugngslieferung), Bonn 2006, URL: http://www.bsi.bund.de/gshb/deutsch/index.htm (sprawdzono 16.03.2008). http://www.petefinnigan.com (sprawdzono 16.03.2008). http://www.red-database-security.com (sprawdzono 16.03.2008). http://www.red-database-security.com/whitepaper/oracle_passwords.html (sprawdzono 16.03.2008). Litchfield D.: Threat profiling Microsoft SQl Server (A Guide to Security Auditing), Next Generation Security Software, 2002, URL: http://www.nextgenss.com/papers/tp-SQL2000.pdf (sprawdzono 16.03.2008). TecChannel: MS-SQL Slammer: Ein Wurm und die Konsequenzen, 2003, URL: http://www.tecchannel.de/server/sicherheit/402050/ (sprawdzono 16.03.2008). Słownik złośliwego oprogramowania, URL: http://www.viruslist.pl/glossary.html (sprawdzono 16.03.2008). Network Working Group: The MD5 Message-Digest Algorithm, RFC 1321, URL: http://tools.ietf.org/html/rfc1321 (sprawdzono 16.03.2008). Microsoft File Checksum Integrity Verifier, URL: http://www.microsoft.com/downloads/details.aspx?FamilyID=B3C93558-31B7-47E2-A6637365C1686C08&displaylang=en (sprawdzono 16.03.2008). 13. 14. w 15. 16. da .b w pl s. 22 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2008