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

Rade Pobulić - Parallelbazi Narušeni: Business need to know Least privilege principle Bolje sprečiti, nego lečiti! Unutrašnje pretnje Separacija dužnosti odnosno ukidanje “superusera

  • Upload
    others

  • View
    32

  • Download
    0

Embed Size (px)

Citation preview

  • Tehnički aspekti primene Oracle Database Vault i Database Firewall

    Rade Pobulić generalni direktor, parallel group

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

  • Tehnički aspekti Database Vault-a

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

  • 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

  • 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

  • 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

  • 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

  • Pre implementacije je potrebno definisati:

    Politiku bezbednosti

    Sigurnosne procedure

    Instalacija DBV Konfiguracija DBV Implementacija

    DBV

    Implementacija DBV

  • 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

  • Realms

    Rule sets

    Factors

    Command rules

    Secure application roles

    Komponente DBV

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

  • 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

  • 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 1

  • Ako vlasnik šeme

    (schema owner) nije

    autorizovan u domenu,

    ne može izvršiti DDL

    naredbe.

    Realms – Primer 2

  • 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

  • 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

  • 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

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

  • 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

  • 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

  • Rezultat primera

  • 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

  • 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

    Secure application roles (SARs)

  • 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

  • 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

    Krađa podataka

    Izmena 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’

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

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

    Neovlašćen pristup

  • 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

  • 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

  • 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?

    NE

    DA

    Čekaj 15 sekundi

  • 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

    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

  • 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

    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

  • 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

  • Slide Number 1Slide Number 2Slide Number 3Slide Number 4Slide Number 5Slide Number 6Slide Number 7Slide Number 8Slide Number 9Slide Number 10Slide Number 11Slide Number 12Slide Number 13Slide Number 14Slide Number 15Slide Number 16Slide Number 17Slide Number 18Slide Number 19Slide Number 20Slide Number 21Slide Number 22Slide Number 23Slide Number 24Slide Number 25Slide Number 26Slide Number 27Slide Number 28Slide Number 29Slide Number 30Slide Number 31Slide Number 32Slide Number 33Slide Number 34Slide Number 35Slide Number 36Slide Number 37Slide Number 38Slide Number 39Slide Number 40Slide Number 41Slide Number 42Slide Number 43Slide Number 44Slide Number 45Slide Number 46Slide Number 47Slide Number 48Slide Number 49Slide Number 50Slide Number 51Slide Number 52Slide Number 53Slide Number 54Slide Number 55Slide Number 56