← All field notes

Oracle Database Vault i szyfrowanie przstrzeni tabel VS administrator

Oracle stworzył Database Vault’a, żeby chronić wrażliwe dane przed administratorem DB. Po instalacji produktu i stworzeniu tzw. REALM’ów, SYSDBA traci uprawnienia do określonych czynności (m.in. zakładanie kont i wiele poleceń ALTER) ale głównie traci możliwość wybierania danych z tabel chronionych takim REALM’em. Sam Vault jednak nie wystarczy, bo admin mający dostęp do plików danych może pojechać sobie po nich poleceniem strings i przegrepować po odpowiednich wyrażeniach regularnych, szukając np. numerów kart kredytowych – na to jednak Oracle też ma odpowiedź – transparentne szyfrowanie przestrzeni tabel i wszystko gra!

Tylko, że jest jeden problem – jeśli w 11gR2 używamy automatycznego zarządzania pamięcią (MEMORY_TARGET), granulki pamięci zaczynają być reprezentowane poprzez pliki na urządzeniu tmpfs – /dev/shm. Na podstawie polecenia ipcs i lsof, można łatwo skorelować pamięć współdzieloną zaalokowaną przez bazę danych z plikami na urządzeniu /dev/shm… Standardowo użytkownik, będący właścicielem binariów bazy ma swobodny dostęp do tych pliczków a bloki danych po odczycie rezydują w pamięci w postaci niezaszyfrowanej – więc sytuacja się powtarza jak przy plikach danych – strings i egrep 🙂 Czy to bug? Czy może feature?

Pozdrawiam i polecam przetestować 🙂

P.S.

Dokładniej temat opisałem tutaj: http://ora-600.pl/art/oracle_database_vault_tde.pdf

Code listings

No code listings in this article.

END OF FIELD NOTE / 2013-03-15

Keep asking why. Keep looking deeper.

← Back to the blog