Tehnički aspekti primene Oracle
Database Vault i Database Firewall
Rade Pobulić
generalni direktor, parallel group
Sef i zid (digitalni)
Oracle Database Vault i Database Firewall blokiraju dve
najveće sigurnosne pretnje:
Možemo imati puno poverenje u našeg DBA, ali
organizovani kriminal je sposobniji u ubeđivanju!
Najbolje je osloboditi ih teškog bremena nepotrebne
odgovornosti i onemogućiti im da pristupaju
poverljivim podacima.
Možemo imati puno poverenje u našu aplikaciju, ali
90% programera poslovnih aplikacija nije nikad čulo za
SQL Injection, a svaki haker jeste!
Tehnički aspekti Database Vault-a
Database Vault (DBV)
U verziji 11g ugrađen je u kernel baze
Spada u rešenja za kontrolu pristupa
U velikoj meri pruža zaštitu od unutrašnjih pretnji
Podržava rad sa Real Application Cluster (RAC)
okruženjem
Unutrašnje pretnje
Najveću pretnju predstavljaju korisnici koji imaju :
DBA rolu
Jake sistemske privilegije
DB administratori mogu čitati osetljive podatke u
bazi
Narušeni:
Business need to know
Least privilege principle
Bolje sprečiti, nego lečiti!
Prednosti DBV
Separacija dužnosti odnosno ukidanje “superusera”
DB administratori ne mogu čitati podatke!
Sprečava “hakere” da pristupe podacima iako su uspeli
da zaobiđu aplikaciju
Prednosti DBV
Dopunjuje DAC (Discretionary Access Control)
Kompleksna kontrola pristupa podacima
Definisanje uslova pod kojima je samo moguće
izvršiti neku komandu
Može da radi sa Label Security
Štiti Audit Trail
Monitoring
Prednosti DBV
Database Vault
izveštaji
Izveštaji
General Security
izveštaji
Ukupno 53 ugrađena izveštaja
9 grupa General Security izveštaja
Configuration
Issues izveštaji
Auditing izveštaji
Standardi
PCI DSS
Restrict access to cardholder data by business need-toknow (Req 7)
Enable accounts used by vendors for remote maintenance
only during the time period needed (Req 8.5.6)
Compensating Controls for Req 3.4
Requirement A.1
Basel II
SOX
Implementacija DBV
Pre implementacije je potrebno definisati:
Politiku bezbednosti
Sigurnosne procedure
Instalacija DBV
Konfiguracija
DBV
Implementacija
DBV
Segregacija dužnosti
Implementacijom Database Vault-a uvedene su
funkcije:
Security administrator
Account manager
Database administrator – sada ima:
ograničenu moć
adekvatno usklađene privilegije i radne
zadatke
Komponente DBV
Realms
Rule sets
Factors
Command rules
Secure application roles
Realms (kraljevstva)
Realmi su skupovi objekata u bazi zaštićeni od
pristupa preko sistemskih privilegija.
Definišu koji korisnici mogu da koriste sistemske
privilegije nad zaštićenim objektima
Objekti iz više šema mogu biti u jednom realmu,
jedan objekat može biti u više realma
Samo vlasnik realma može da dodeljuje sigurnosne
role realma učesnicima realma
Samo vlasnik ili administrator DBV može da određuje
vlasnike i učesnike realma
Sistemski realmi
Podrazumevano se kreiraju sistemski realmi:
• Realm za administratore koji kreiraju database usere i profile.
Realm za Oracle Data Dictionary, za sledeće šeme Oracle Cataloga: ANONYMOUS, DBSNMP, MDSYS, SYS, BI, EXFSYS, MGMT_VIEW,
SYSMAN, CTXSYS, MDDATA, OUTLN, SYSTEM
Ovaj realm takođe kontoliše dodeljivanje sistemskih privilegija i
administrativnih rola.
• Realm za DBV šeme (DVSYS, DVF, LBACSYS)
• Realm za Oracle Enterprise Manager šeme (SYSMAN, DBSNMP)
Realms – Primer 1
Pre postavljanja
realm-a, SYS može da
pristupi podacima o
platama
Realms – Primer 1
Posle kreiranja i
konfiguracije realm-a,
SYS ne može da
pristupi podacima o
platama, a direktor
može.
Realms – Primer 2
Ako vlasnik šeme
(schema owner) nije
autorizovan u domenu,
ne može izvršiti DDL
naredbe.
Rule sets
τ ( P1 ∧ P2 ∧ ... ∧ Pn ) ∈ {True, False}
Rule set
τ ( P1 ∨ P2 ∨ ... ∨ Pn ) ∈ {True, False}
Pi − Pravilo,τ ( Pi ) ∈ {True, False}
Rule set predstavlja skup pravila čijom se
evaluacijom utvrđuje pravo pristupa
Rule sets
Rule set može da koristi faktore
Samo definisanje Rule set-a nema nikakav uticaj na
zaštitu
Potrebno ga je primeniti u okviru neke od
komponenti:
Realm
Command rule
Secure application role
Rule sets – Tekst primera
Moguće je kreirati Rule set Radno vreme, čija je svrha da
utvrdi da li korisnik pokušava da pristupi van radnog
vremena (od ponedeljka do petka; 9h - 17h)
Moguće rešenje primera
Sastavljen je od 2 pravila:
Da li je dan OK?
// to_char (sysdate,’d’) between ‘2’ and ‘6’
Da li je vreme OK?
// to_char (sysdate,’hh24’) between ‘09’ and ‘17’
Potrebno odabrati opciju da su oba pravila zadovoljena (tačna) tj. All
True
Factors (faktori)
Faktor je imenovana promenjiva (npr. IP adresa)
Vrednost faktora se naziva Identity (npr. 127.0.0.1)
Postoji veliki broj ugrađenih faktora
Security administator može definisati nove faktore
Kombinacijom faktora je moguće implementirati
multifaktorsku autorizaciju
Command rules
Koriste rule set za definisanje pravila koja moraju biti
zadovoljena da bi se izvršila određena SQL naredba nad
određenim objektom
Command rule nema ime, jednoznačno je određen
trojkom:
SQL komandom (npr. UPDATE)
Imenom vlasnika objekta (npr. HR)
Nazivom objekta (npr. EMPLOYEES);
% označava sve objekte
Command rules – Tekst primera
Napravljen je command rule, koji omogućava izvršenje
UPDATE naredbe nad HR.EMPLOYEES
samo radnim danima od 9h do 17h
(Rule set Radno vreme)
Rezultat primera
Command rules – Primer
Na slici je prikazan deo strane Monitor iz Database Vault
Administrator alata, gde se vidi da je direktor pokušao da
poveća platu van radnog vremena
Secure application roles
(SARs)
DBV SAR, za razliku od običnog SAR, sastoji se
isključivo od naziva i pridruženog rule set-a
Specifični uslovi moraju biti zadovoljeni da bi rola
mogla biti omogućena za sesiju
Uslovi su definisani u okviru jednog (pridruženog)
rule set-a
Secure application roles
(SARs)
Rolu “aktivira” PL/SQL procedura koja se nalazi u
zaštićenom paketu, koji DBV pruža
Više nije potrebno pisanje PL/SQL procedure, kao
kod SAR-ova van DBV
SAR-ovi onemogućavaju zaobilaženje aplikacije
DBV SAR centralizuje pravila u rule set-ove, za razliku
od običnih SAR-ova čije se definicije nalaze razbacane
po PL/SQL procedurama
Zaključak
Primenom Database Vault-a se prave značajni koraci
u pravcu poboljšanja zaštite i ispunjenju zahteva
postojećih standarda
(PCI DSS, SOX, itd.)
SQL Injection: Napadi i odbrane
Od 2005.-e do danas, SQL Injection je
odgovoran za 83% uspešnih hakerskih
upada. ¹
¹ - Prema Privacyrights.org
Verizon-ova statistika
za 2010-u godinu
SQL Injection je tehnika kojom se
zloupotrebljava neparsirani unos
podataka kako bi se kroz web
aplikaciju prosledile SQL komande bazi
na izvršenje.
Neovlašćen pristup
Izmena podataka
Krađa podataka
Brisanje podataka
Zadavanje komandi operativnom sistemu
Instalacija malicioznih softvera na mrežu
select * from users where
username = ‘&username’
and
password = ‘&password’
select * from users where
username = ‘admin’
and
password=‘adminisst12’
Neovlašćen pristup
select * from users where
username = ‘&username’
and
password = ‘&password’
select * from users where
username=‘admin’
or 1=1
-- and password=‘fhsdjfsdfjd’
Krađa podataka
select * from users where
username = ‘&username’
and
password = ‘&password’
select * from users where
username=‘admin’
union
select * from credit_cards
-- and password=‘fhsdjfsdfjd’
Neovlašćena izmena podataka
select * from users where
username = ‘&username’
and
password = ‘&password’
select * from users where
username=‘admin’;
update users set [email protected]
where id=1
-- and password=‘fhsdjfsdfjd’
Napad u kojem je web aplikacija ranjiva
na SQL Injection, ali umesto njemu
korisnih poruka o grešci, napadač dobija
generičku stranu
if exists
(select * from users)
sleep(15)
Da li
postoji
users?
DA
Čekaj 15 sekundi
NE
Neparsiran unos podataka
Aplikativnom user-u su date
prevelike privilegije u bazi
Poruke o greškama odaju
previše podataka
Baza potpuno veruje
aplikaciji
Obavezno parsirati i prečistiti
unos od strane korisnika
Kreirati generičku stranu za
greške u aplikaciji
Aplikativnom korisniku dati
najmanji skup privilegija
Koristiti Database Firewall za
praćenje aktivnosti baze i
blokiranje SQL naredbi
Testirati aplikaciju na SQL
Injection
Proverava svaku SQL naredbu i na osnovu
politike može da: dozvoli, loguje, uzbuni,
supstituiše ili blokira naredbu
Ugrađeni „out of the box“ izveštaji za
sve veće standarde kao što su: PCI,
SOX, itd.
Koristi white list-e i black list-e koje
kao parametre mogu koristiti doba
dana, dan u nedelji, mrežu, aplikaciju
Moguće je postaviti da su za određenu
aplikaciju dozvoljene samo unapred
poznate SQL naredbe
Obavezno parsirati i prečistiti
unos od strane korisnika
Kreirati generičku stranu za
greške u aplikaciji
Aplikativnom korisniku dati
najmanji skup privilegija.
Koristiti Database Firewall za
praćenje aktivnosti baze i
blokiranje SQL naredbi
Testirati aplikaciju na SQL
Injection
SQL Injection predstavlja napad
koji je jednostavan za učenje, a
može naneti veoma veliku štetu.
Iz spomenutih razloga, potrebno
je posvetiti posebnu pažnju
odbrani od ovog napada.
• Kuća sa 20 godina iskustva u Oracla DBA
• Glavni konsultant sa 25 godina iskustva u Oracle DBA
• Jedini Oracle Partner u Srbiji sa dve specijalizacije:
• Oracle Database
• Oracle BI Foundation
• Jedini Oracle Partner u regionu sa ispunjenim competency
kriterijumom za sve Oracle Security specijalizacije:
• Oracle Database Security Options
• Identity Administration and Analytics
• Strateška saradnja sa Asseco SEE na integraciji Oracle
security rešenja sa proizvodima Asseco
• Strateška saradnja sa iskusnim Security timom najvećeg
ruskog Oracle partnera, FORS Development Center
• Potpuna sigurnost zahteva velika ulaganja u definisanje
security politika i procedura, u licence, hardver i
implementaciju
• Kroz glavni security plan je važno uzeti u obzir sve aspekte
sigurnosti da bi se ispunili kvalitetno svi zahtevi PCI DSS, a i
mnogo više
• U okviru glavnog plana, treba pragmatično graditi u manjim
koracima, po prioritetima određenim potrebama i
mogućnostima korisnika i karakteristikama sistema i
aplikacija
• Može se početi sa obukom, preliminarnim snimanjem stanja
i pravljenjem grubog security plana, na osnovu koga se
definišu prioriteti i redosled investicija
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Oracle Database 11g: Change Management Overview Seminar
Oracle Database 11g: Security
Oracle Database 11g: Implement Database Vault
Implementing Oracle Database Firewall
Implementing Oracle Audit Vault
Oracle Database 11g: Oracle Secure Backup
Oracle Enterprise Manager 11g: Grid Control Essentials
Oracle Directory Services 11g: Administration
Sun Java System Directory Server EE 6.x Analysis and Planning
Oracle Access Manager 11g: Administration
Oracle Adaptive Access Manager: Administration
Oracle Identity Analytics 11g R1: Administration
Oracle Identity Manager 11g: Essentials
Oracle Identity Manager 11g: Develop Identity Provisioning
Oracle Identity Manager: Administration and Implementation
Oracle ESSO Logon Manager: Implementation & Configuration
Oracle ESSO Logon Manager: Advanced Concepts
Oracle ESSO Password Reset: Implementation & Configuration
Oracle ESSO Provisioning Gateway: Implementation & Configuration
Oracle ESSO Suite Deep Dive
Kontakt
Autori:
Maja Veselica, Security Consultant
[email protected]
Zoran Pavlović, Security Manager
[email protected]
Rade Pobulić, Generalni direktor
[email protected]
Parallel d.o.o:
e-mail: [email protected]
adresa: Pariske komune 24, Novi Beograd
telefon: +381 11 260 74 84
Download

Rade Pobulić