Testowanie baz danych - bezpieczeństwo
Testy bezpieczeństwa bazy danych są wykonywane w celu znalezienia luk w mechanizmach bezpieczeństwa, a także znalezienia luk lub słabości systemu baz danych.
Głównym celem testów bezpieczeństwa bazy danych jest wykrycie luk w systemie oraz określenie, czy jego dane i zasoby są chronione przed potencjalnymi intruzami. Testy bezpieczeństwa określają sposób skutecznej identyfikacji potencjalnych luk w zabezpieczeniach, jeśli są wykonywane regularnie.
Poniżej podano główne cele wykonywania testów bezpieczeństwa bazy danych -
- Authentication
- Authorization
- Confidentiality
- Availability
- Integrity
- Resilience
Rodzaje zagrożeń w systemie baz danych
Wstrzyknięcie SQL
Jest to najczęstszy rodzaj ataku w systemie baz danych, w którym złośliwe instrukcje SQL są wstawiane do systemu bazy danych i wykonywane w celu uzyskania krytycznych informacji z systemu bazy danych. Atak ten wykorzystuje luki w implementacji aplikacji użytkownika. Aby temu zapobiec, należy ostrożnie obchodzić się z polami wprowadzanymi przez użytkownika.
Podniesienie uprawnień w bazie danych
W tym ataku użytkownik ma już pewien dostęp w systemie bazy danych i próbuje tylko podnieść ten dostęp do wyższego poziomu, aby mógł wykonywać nieautoryzowane działania w systemie bazy danych.
Odmowa usługi
W tego typu ataku osoba atakująca powoduje, że system bazy danych lub zasoby aplikacji stają się niedostępne dla swoich uprawnionych użytkowników. Aplikacje mogą być również atakowane w sposób, który powoduje, że aplikacja, a czasem cała maszyna, stają się bezużyteczne.
Nieautoryzowany dostęp do danych
Innym rodzajem ataku jest uzyskanie nieautoryzowanego dostępu do danych w aplikacji lub systemie bazodanowym. Nieautoryzowany dostęp obejmuje -
- Nieautoryzowany dostęp do danych za pośrednictwem aplikacji opartych na użytkownikach
- Nieautoryzowany dostęp do poprzez monitorowanie dostępu innych osób
- Nieautoryzowany dostęp do informacji uwierzytelniających klienta wielokrotnego użytku
Podszywanie się pod tożsamość
W przypadku fałszowania tożsamości haker wykorzystuje poświadczenia użytkownika lub urządzenia do przeprowadzania ataków na hosty sieciowe, kradzieży danych lub ominięcia kontroli dostępu do systemu bazy danych. Zapobieganie temu atakowi wymaga infrastruktury IT i środków zaradczych na poziomie sieci.
Manipulacja danymi
W ataku polegającym na manipulacji danymi haker zmienia dane, aby uzyskać przewagę lub zaszkodzić wizerunkowi właścicieli baz danych.
Techniki testowania bezpieczeństwa bazy danych
Testy penetracyjne
Test penetracyjny to atak na system komputerowy w celu znalezienia luk w zabezpieczeniach, potencjalnego uzyskania do niego dostępu, jego funkcjonalności i danych.
Znalezienie ryzyka
Szukanie Ryzyka to proces oceny i podejmowania decyzji o ryzyku związanym z rodzajem straty i możliwością wystąpienia podatności. Jest to określane w organizacji poprzez różne wywiady, dyskusje i analizy.
Test iniekcji SQL
Polega na sprawdzeniu danych wprowadzonych przez użytkownika w polach aplikacji. Na przykład wprowadzenie znaku specjalnego, takiego jak „,” lub „;” w żadnym polu tekstowym w aplikacji użytkownika nie powinno być dozwolone. Gdy wystąpi błąd bazy danych, oznacza to, że dane wejściowe użytkownika są wstawiane do jakiegoś zapytania, które jest następnie wykonywane przez aplikację. W takim przypadku aplikacja jest podatna na wstrzyknięcie SQL.
Ataki te stanowią duże zagrożenie dla danych, ponieważ osoby atakujące mogą uzyskać dostęp do ważnych informacji z bazy danych serwera. Aby sprawdzić punkty wejścia SQL do aplikacji internetowej, znajdź kod z bazy kodu, w którym wykonywane są bezpośrednie zapytania MySQL w bazie danych, akceptując niektóre dane wejściowe użytkownika.
Testy SQL Injection można wykonać dla nawiasów, przecinków i cudzysłowów.
Łamanie haseł
Jest to najważniejsza kontrola podczas testowania systemu bazy danych. Aby uzyskać dostęp do krytycznych informacji, hakerzy mogą użyć narzędzia do łamania haseł lub odgadnąć wspólną nazwę użytkownika / hasło. Te popularne hasła są łatwo dostępne w Internecie, a narzędzia do łamania haseł istnieją również swobodnie.
Dlatego konieczne jest sprawdzenie w czasie testów, czy polityka haseł jest utrzymywana w systemie. W przypadku jakichkolwiek aplikacji bankowych i finansowych istnieje potrzeba ustalenia ścisłej polityki haseł we wszystkich systemach baz danych o krytycznych informacjach.
Audyt bezpieczeństwa systemu baz danych
Audyt bezpieczeństwa to proces oceny zasad bezpieczeństwa firmy w regularnych odstępach czasu w celu określenia, czy przestrzegane są niezbędne standardy. Aby zdefiniować politykę bezpieczeństwa, można postępować zgodnie z różnymi standardami bezpieczeństwa, zgodnie z wymaganiami biznesowymi, a następnie można przeprowadzić ocenę ustalonych zasad pod kątem tych standardów.
Przykładami najpopularniejszych standardów bezpieczeństwa są ISO 27001, BS15999 itp.
Narzędzia do testowania bezpieczeństwa baz danych
Na rynku dostępnych jest wiele narzędzi do testowania systemów, które można wykorzystać do testowania systemu operacyjnego i sprawdzania aplikacji. Poniżej omówiono niektóre z najpopularniejszych narzędzi.
Zed Attack Proxy
Jest to narzędzie do testów penetracyjnych służące do znajdowania luk w aplikacjach internetowych. Jest przeznaczony do użytku przez osoby z szerokim wachlarzem doświadczeń związanych z bezpieczeństwem i jako taki jest idealny dla programistów i testerów funkcjonalnych, którzy są nowicjuszami w testach penetracyjnych. Jest powszechnie używany w systemach Windows, Linux, Mac OS.
Paros
Wszystkie dane HTTP i HTTPS między serwerem a klientem, w tym pliki cookie i pola formularzy, mogą być przechwytywane i modyfikowane za pomocą tych skanerów. Jest używany do obsługi wielu platform Java JRE / JDK 1.4.2 lub nowszych.
Zestaw narzędzi dla inżynierów społecznych
Jest to narzędzie typu open source, w którym atakowane są elementy ludzkie, a nie element systemu. Umożliwia wysyłanie e-maili, apletów java itp. Zawierających kod ataku. Jest preferowany dla systemów Linux, Apple Mac OS X i Microsoft Windows.
Skipfish
To narzędzie służy do skanowania ich witryn w poszukiwaniu luk. Raporty generowane przez narzędzie mają służyć jako podstawa do profesjonalnych ocen bezpieczeństwa aplikacji internetowych. Jest preferowany dla systemów Linux, FreeBSD, MacOS X i Windows.
Vega
Jest to wieloplatformowe narzędzie bezpieczeństwa internetowego typu open source, które służy do znajdowania wystąpień iniekcji SQL, skryptów między witrynami (XSS) i innych luk w aplikacjach internetowych. Jest preferowany dla Java, Linux i Windows.
Wapiti
Wapiti to narzędzie internetowe o otwartym kodzie źródłowym, które skanuje strony internetowe aplikacji internetowej i sprawdza skrypty i formularze, do których może wstrzykiwać dane. Jest zbudowany w Pythonie i może wykryć błędy obsługi plików, wstrzyknięcia bazy danych, XSS, LDAP i CRLF, wykrywanie wykonania poleceń.
Web Scarab
Jest napisany w języku Java i służy do analizowania aplikacji, które komunikują się za pośrednictwem protokołów HTTP / HTTPS. To narzędzie jest przeznaczone przede wszystkim dla programistów, którzy potrafią samodzielnie pisać kod. To narzędzie nie jest zależne od systemu operacyjnego.