rade pobulić

56
Tehnički aspekti primene Oracle Database Vault i Database Firewall Rade Pobulić generalni direktor, parallel group

Upload: others

Post on 04-Feb-2022

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Rade Pobulić

Tehnički aspekti primene Oracle Database Vault i Database Firewall

Rade Pobulić generalni direktor, parallel group

Page 2: Rade Pobulić

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!

Sef i zid (digitalni)

Page 3: Rade Pobulić

Tehnički aspekti Database Vault-a

Page 4: Rade Pobulić

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

Database Vault (DBV)

Page 5: Rade Pobulić

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!

Unutrašnje pretnje

Page 6: Rade Pobulić

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

Page 7: Rade Pobulić

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

Page 8: Rade Pobulić

Izveštaji

Database Vault izveštaji

Configuration Issues izveštaji

Auditing izveštaji General Security

izveštaji

Ukupno 53 ugrađena izveštaja

9 grupa General Security izveštaja

Prednosti DBV

Page 9: Rade Pobulić

PCI DSS

Restrict access to cardholder data by business need-to-know (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

Standardi

Page 10: Rade Pobulić

Pre implementacije je potrebno definisati:

Politiku bezbednosti

Sigurnosne procedure

Instalacija DBV Konfiguracija DBV

Implementacija DBV

Implementacija DBV

Page 11: Rade Pobulić

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

Segregacija dužnosti

Page 12: Rade Pobulić

Realms

Rule sets

Factors

Command rules

Secure application roles

Komponente DBV

Page 13: Rade Pobulić

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

Realms (kraljevstva)

Page 14: Rade Pobulić

Podrazumevano se kreiraju sistemski realmi:

• Realm za administratore koji kreiraju database usere i profile.

Realm za Oracle Data Dictionary, za sledeće šeme Oracle Catalog-a: 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)

Sistemski realmi

Page 15: Rade Pobulić

Pre postavljanja

realm-a, SYS može da

pristupi podacima o

platama

Realms – Primer 1

Page 16: Rade Pobulić

Posle kreiranja i

konfiguracije realm-a,

SYS ne može da

pristupi podacima o

platama, a direktor

može.

Realms – Primer 1

Page 17: Rade Pobulić

Ako vlasnik šeme

(schema owner) nije

autorizovan u domenu,

ne može izvršiti DDL

naredbe.

Realms – Primer 2

Page 18: Rade Pobulić

Rule set predstavlja skup pravila čijom se evaluacijom utvrđuje pravo pristupa

Rule sets

{ }

(

},{)(,

},{)...

,)...(

21

21

FalseTruePP

FalseTruePPP

FalseTruePPP

ii

n

n

∈−

∈∨∨∨

∈∧∧∧

τ

τ

τ

Pravilo

Rule set

Page 19: Rade Pobulić

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

Page 20: Rade Pobulić

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)

Page 21: Rade Pobulić

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

Page 22: Rade Pobulić

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

Factors (faktori)

Page 23: Rade Pobulić

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

Page 24: Rade Pobulić

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)

Command rules – Tekst primera

Page 25: Rade Pobulić

Rezultat primera

Page 26: Rade Pobulić

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

Command rules – Primer

Page 27: Rade Pobulić

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)

Page 28: Rade Pobulić

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

Secure application roles (SARs)

Page 29: Rade Pobulić

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.)

Zaključak

Page 30: Rade Pobulić

SQL Injection: Napadi i odbrane

Page 31: Rade Pobulić

Od 2005.-e do danas, SQL Injection je odgovoran za 83% uspešnih hakerskih

upada. ¹

¹ - Prema Privacyrights.org

Page 32: Rade Pobulić

Verizon-ova statistika za 2010-u godinu

Page 33: Rade Pobulić

SQL Injection je tehnika kojom se zloupotrebljava neparsirani unos

podataka kako bi se kroz web aplikaciju prosledile SQL komande bazi

na izvršenje.

Page 34: Rade Pobulić

Neovlašćen pristup

Krađa podataka

Izmena podataka

Brisanje podataka

Zadavanje komandi operativnom sistemu

Instalacija malicioznih softvera na mrežu

Page 35: Rade Pobulić

select * from users where username = ‘&username’ and password = ‘&password’

select * from users where username = ‘admin’ and password=‘adminisst12’

Page 36: Rade Pobulić

select * from users where username = ‘&username’ and password = ‘&password’

select * from users where username=‘admin’ or 1=1 -- and password=‘fhsdjfsdfjd’

Neovlašćen pristup

Page 37: Rade Pobulić

select * from users where username = ‘&username’ and password = ‘&password’

select * from users where username=‘admin’ union select * from credit_cards -- and password=‘fhsdjfsdfjd’

Krađa podataka

Page 38: Rade Pobulić

select * from users where username = ‘&username’ and password = ‘&password’

select * from users where username=‘admin’; update users set mail=‘[email protected]’ where id=1 -- and password=‘fhsdjfsdfjd’

Neovlašćena izmena podataka

Page 39: Rade Pobulić

Napad u kojem je web aplikacija ranjiva na SQL Injection, ali umesto njemu

korisnih poruka o grešci, napadač dobija generičku stranu

Page 40: Rade Pobulić

if exists (select * from users) sleep(15)

Da li postoji users?

NE

DA

Čekaj 15 sekundi

Page 41: Rade Pobulić

Neparsiran unos podataka

Aplikativnom user-u su date prevelike privilegije u bazi

Poruke o greškama odaju previše podataka

Baza potpuno veruje aplikaciji

Page 42: Rade Pobulić

Obavezno parsirati i prečistiti unos od strane korisnika

Aplikativnom korisniku dati najmanji skup privilegija

Kreirati generičku stranu za greške u aplikaciji

Koristiti Database Firewall za praćenje aktivnosti baze i

blokiranje SQL naredbi

Testirati aplikaciju na SQL Injection

Page 43: Rade Pobulić

Proverava svaku SQL naredbu i na osnovu politike može da: dozvoli, loguje, uzbuni,

supstituiše ili blokira naredbu

Page 44: Rade Pobulić
Page 45: Rade Pobulić
Page 46: Rade Pobulić
Page 47: Rade Pobulić
Page 48: Rade Pobulić
Page 49: Rade Pobulić

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

Page 50: Rade Pobulić

Obavezno parsirati i prečistiti unos od strane korisnika

Aplikativnom korisniku dati najmanji skup privilegija.

Kreirati generičku stranu za greške u aplikaciji

Koristiti Database Firewall za praćenje aktivnosti baze i

blokiranje SQL naredbi

Testirati aplikaciju na SQL Injection

Page 51: Rade Pobulić

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.

Page 52: Rade Pobulić

• 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

Page 53: Rade Pobulić

• 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

Page 54: Rade Pobulić

• 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

Page 55: Rade Pobulić

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

Page 56: Rade Pobulić