Bezpieczeństwo baz danych
-
- Patryk Królikowski,
- 15.03.2010
Zabezpieczenia
Standardowo
Zabezpieczenie baz danych można rozpatrywać na wielu płaszczyznach. Pierwszym etapem jest z pewnością planowanie oraz właściwe zaprojektowanie rozmieszczenia serwerów bazodanowych w infrastrukturze.
Samo planowanie struktury bazy, właściwości użytkowników, mechanizmów wymiany danych - to zupełnie osobny temat (kwestię tę pominiemy). Znacznie częściej administrator bezpieczeństwa dostaje jakiś "stan zastany" i nie ma wpływu na to, w jaki sposób ktoś inny zaprojektował system.
Większość nowoczesnych aplikacji działa według modelu trójwarstwowego, obejmującego: interfejs webowy, serwer aplikacyjny i bazę. Te trzy elementy powinny znajdować się w różnych strefach bezpieczeństwa. Dotyczy to głównie aplikacji, których interfejs dostępny jest z internetu. Dobrą praktyką i sprawą raczej oczywistą (choć, jak pokazuje praktyka - nie zawsze) jest umieszczanie bazy danych w odseparowanym i kontrolowanym środowisku, np. centrum danych. Poziom kontroli tamże, to sprawa dość dyskusyjna i sama lokalizacja bazy nie gwarantuje od razu bezpieczeństwa. Niemniej jednak segmentacja daje pewne możliwości, jak chociażby oddzielenie każdego elementu systemu urządzeniami kontroli dostępu, a co za tym idzie ograniczenie ryzyka.

GreenSQL Database Firewall – Alerty
Podstawowym sposobem ochrony baz danych jest hardening, który polega na zmianie i dostrojeniu domyślnych parametrów konfiguracyjnych. Nie jest to zadanie trudne (zwłaszcza że dostępnych jest wiele poradników na ten temat), ale niestety żmudne. Na szczęście, już od lat znakomite przewodniki hardeningowe przygotowuje ośrodek CIS (The Center for Internet Security). Na stronie tej organizacji (cisecurity.org) znajdziemy najbardziej aktualne poradniki dla baz MySQL, Oracle, MSSQL, Sybase czy DB2. I tak przede wszystkim należy usunąć konta domyślne i pozmieniać hasła tym, które są potrzebne i aktywować natywne mechanizmy audytu, np. alterowanie w przypadku wielokrotnych nieudanych prób logowań. Kolejnym krokiem jest dbanie o aktualność zarówno systemu operacyjnego, jak i samej bazy danych. Wreszcie należy pamiętać o okresowym przeprowadzaniu audytów bezpieczeństwa. Mogą one polegać na skanowaniu w poszukiwaniu podatności, weryfikacji konfiguracji bazy i systemu operacyjnego, czy też kontroli kont użytkowników ze szczególnym zwróceniem uwagi na uprawnienia.
Szyfrowanie
Kolejną rzeczą do zrobienia, jeżeli chcemy coś zabezpieczyć, jest sprawdzenie, czy da się wprowadzić jakieś mechanizmy kryptografii. Czasami w tę stronę popychają wymogi regulacji, np. PCI. Tak samo jest w przypadku baz danych. Mechanizmy szyfrowania baz danych koncepcyjnie można przyrównać do technik szyfrowania dysków. Istnieje więc możliwość szyfrowania zarówno całych baz danych, jak i operowania nieco bardziej precyzyjnie na obiektach. Mechanizmy szyfrujące nie pozostają jednak bez wpływu na wydajność baz danych, jak również często na zajmowaną przez nie przestrzeń.
Często tak są nazywane Bazy danych. Czas więc, aby w korporacyjnych funduszach znalazły się środki na ich rzetelną ochronę. Z pewnością nakład ten przyniesie bardziej zauważalne korzyści, niż wprowadzane z coraz to większą zawziętością systemy minutowego rozliczania czasu pracy.