9. listopadu, 2011 Hotel Marriott Praha Zabezpečení dat v Oracle Database Aleš Novák Technology Sales Consultant 1 Copyright 2011, Oracle and/or its affiliates. All rights
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle s products remains at the sole discretion of Oracle. 2 Copyright 2011, Oracle and/or its affiliates. All rights
Agenda Zabezpečení databáze Základní principy Audit SQL Injection Závěr 3 Copyright 2011, Oracle and/or its affiliates. All rights
Komplexní bezpečnost Identity Management Databázová bezpečnost Bezpečná infrastruktura User Provisioning & správa rolí Identity and Access Governance Správa přístupů Adresářové služby Šifrování a maskování Kontrola privilegovaných uživatelů Více faktorová autentizace Audit, monitorování aktivit Zabezpečení konfigurací CPU, ASICs Operační systémy Virtualizace a hypervisory Ukládání dat, sítě 4 Copyright 2011, Oracle and/or its affiliates. All rights
Oracle Database 5 Copyright 2011, Oracle and/or its affiliates. All rights 5
Zabezpečení OS Solaris nebo SE Linux Hardened systems, omezení root přístupů 6 Copyright 2011, Oracle and/or its affiliates. All rights
Základní mechanismy Lidé Ztráta, dostupnost dat backup / recovery, HA Krádež dat SQL Injection, disky, pásky Správa konfigurací, záplat Audit 7 Copyright 2011, Oracle and/or its affiliates. All rights
DBA, SYSDBA Princip Least Privilege Omezte počet správců Prevence IdM, Analytics Detekce Audit (DB a OS) 8 Copyright 2011, Oracle and/or its affiliates. All rights
Oracle Database hloubková obrana Šifrování a maskování Správa přístupů Monitorování Správa uživatelů a rolí Šifrování a maskování Advanced Security Secure Backup Data Masking Správa přístupů Database Vault Label Security Monitorování Database Firewall Configuration Management Audit Vault Total Recall 9 Copyright 2011, Oracle and/or its affiliates. All rights
10 Copyright 2011, Oracle and/or its affiliates. All rights Audit
Identifikace ve třívrstvých aplikacích Connection Pool Účet aplikace A Účet aplikace A Účet aplikace A 1. Uživatelé se přihlašují ke střední vrstvě 2. Střední vrstva se připojuje (anonymně) k účtu aplikace 3. Databáze nezná skutečného uživatele nemůže řídit přístup, auditovat,... 11 Copyright 2011, Oracle and/or its affiliates. All rights 11
Udržení identity Client Identification, Proxy Authentication Podporované při připojení přes: OCI JDBC ODP.NET Connection Pool Modrý uživatel Červený uživatel Žlutý uživatel 1. Uživatelé se přihlašují ke střední vrstvě 2. Střední vrstva předává informace o uživateli 3. Databáze řídí přístup, provádí audit,... 12 Copyright 2011, Oracle and/or its affiliates. All rights 12
Snadné použití... Client Identifier Connection conn=ds.getconnection(); String[] metrics = new String[ OracleConnection.END_TO_END_STATE_INDEX_MAX]; metrics[oracleconnection.end_to_end_clientid_index] = endusername; ((OracleConnection) conn).setendtoendmetrics(metrics,(short)0);... Běžná práce se spojením metrics[oracleconnection.end_to_end_clientid_index] = null; ((OracleConnection) conn).setendtoendmetrics(metrics,(short)0); conn.close(); 13 Copyright 2011, Oracle and/or its affiliates. All rights
Snadné použití... Proxy Authentication Connection conn = ds.getconnection(); java.util.properties prop = new java.util.properties(); prop.put(oracleconnection.proxy_user_name, endusername); (OracleConnection)conn).openProxySession( OracleConnection.PROXYTYPE_USER_NAME, prop);... Běžná práce se spojením ((OracleConnection)conn).close( OracleConnection.PROXY_SESSION); conn.close(); 14 Copyright 2011, Oracle and/or its affiliates. All rights
Přínosy Prokazatelnost auditní log obsahuje jméno koncového uživatele Řízení přístupu Virtual Private Database Proxy Authentication navíc i běžné role a práva Diagnostika v$session obsahuje jméno koncového uživatele Trasování dle client_identifier... DBMS_MONITOR 15 Copyright 2011, Oracle and/or its affiliates. All rights
16 Copyright 2011, Oracle and/or its affiliates. All rights SQL Inject a Audit
SQL Injection Útok na aplikaci, kdy uživatelem vložená data jsou databází interpretována jako SQL příkaz či jeho část. Útočník může spuštěním neočekávaného dotazu získat neoprávněný přístup k datům nebo je pozměnit. Konkrétní techniky se různí, základní problém zůstává: Externí vstup (od uživatelů) je bez korektní validace zapojen do textu SQL příkazu a databází proveden Dynamické dotazy (SQL jako text) 17 Copyright 2011, Oracle and/or its affiliates. All rights
SQL Injection základní příklad User interface A' AND 2=1 UNION select... Aplikace sql="select email FROM employees WHERE last_name='" + vstup + "'"; stmt.execute(sql); Dotaz v databázi SELECT email FROM employees WHERE last_name='a' AND 2=1 UNION select to_char(salary) as email from 18 Copyright 2011, Oracle and/or its affiliates. All rights
Obrana před SQL Injection Nespojovat vstup uživatelů do textu SQL Používat vázané proměnné Používat statické SQL v PL/SQL Kontrola a filtrování vstupů (je-li nutné sestavovat SQL dynamicky) Preventivní omezení dopadu případného útoku Minimalizovat přidělená práva pro spojení Mechanismy detailního řízení přístupu v databázi 19 Copyright 2011, Oracle and/or its affiliates. All rights
Vázané proměnné Místo: sql = "select * from dba_users " + "where user_name = '" + jmeno + "'"; stmt.execute(sql); Raději použijte: sql = "select * from dba_users where user_name=?"; safestmt=conn.preparestatement(sql); safestmt.setstring(1,jmeno); Výhody: Bezpečnost, výkon nemění se text SQL použije se nacachovaný exekuční plán 20 Copyright 2011, Oracle and/or its affiliates. All rights
Oracle Database Firewall První linie obrany Applications Povolit Zaznamenat Upozornit Nahradit Zablokovat Upozornění Hotové výkazy Výkazy na míru Politiky Monitoruje aktivitu uživatelů Zabraňuje neautorizovanému přístupu, SQL injections, eskalaci práv či rolí Rychlá obrana před novými typy útoků Flexibilní úroveň vynucování pravidel v SQL na základě whitelistů a blacklistů Škálovatelná architektura zajišťuje výsoký výkon ve všech režimech nasazení 21 Copyright 2011, Oracle and/or its affiliates. All rights
Pozitivní Security Model SELECT * from stock where catalog-no='phe8131' White List Allow Applications SELECT * from stock where catalog-no= ' union select cardno,0,0 from Orders -- Block Povoleno lze definovat pro uživatele či aplikaci Multifaktorové politiky (IP adresa / síť, aplikace, čas) Out-of-policy databázová komunikace je okamžitě blokována 22 Copyright 2011, Oracle and/or its affiliates. All rights
Rozumí SQL SQL je jazyk s cca 400 klíčovými slovy a danou strukturou UPDATE tbl_users SET comments = The user has asked for another account_no, and wishes to be billed for services between 1/2/2009 and 2/2/2009, and wants to know where the invoice should be sent to. She will select the new service level agreement to run from 3/7/2009 next month WHERE id = A15431029 ; KEY WORDS SCHEMA DATA OPERATORS Gramatický kontext je nezbytný pro správnou kategorizaci 23 Copyright 2011, Oracle and/or its affiliates. All rights
Pokud někdo nerozumí SQL union je špatný pokud je blízko select u(?:nion\b.{1,100}?\bselect "(?:\b(?:(?:s(?:elect\b(?:.{1,100}?\b(?:(?:length count top)\b.{1,100}?\bfrom from\b.{1,100}?\bwhere).*?\b(?:d(?:ump\b.*\bfrom ata_type) (?:to_(?:numbe cha) inst)r)) p_(?:(?:addextendedpro sqlexe)c (?: oacreat prepar)e execute(?:sql)? makewebtask) ql_(?:longvarchar variant)) xp_(?:reg(?:re(?:movemultis tring ad) delete(?:value key) enum(?:value key)s addmultistring write) e(?:xecresultset numdsn) (?:te rminat dirtre)e availablemedia loginconfig cmdshell filelist makecab ntsec) u(?:nion\b.{1,100}?\bsele ct tl_(?:file http)) group\b.*\bby\b.{1,100}?\bhaving d(?:elete\b\w*?\bfrom bms_java) load\b\w*?\bdat a\b.*\binfile (?:n?varcha tbcreato)r)\b i(?:n(?:to\b\w*?\b(?:dump out)file sert\b\w*?\binto ner\b\w*? \bjoin)\b (?:f(?:\b\w*?\(\w*?\bbenchmark null\b) snull\b)\w*?\() a(?:nd\b?(?:\d{1,10} [\'\"][^=]{1,10}[\'\"])?[=<>]+ utonomous_transaction\b) o(?:r\b?(?:\d{1,10} [\'\"][^=]{1,10}[\'\"])?[=<>]+ pen(?:rowset query)\b) having\b?(?:\d{1,10} [\'\"][^=]{1,10}[\'\"])?[=<>]+ print\b\w*?\@\@ cast\b\w*?\() (?:;\W*?\b(?:shutdown drop) \@\@version)\b '(?:s(?:qloledb a) m sdasql dbo)') [Source: ModSecurity, Web Application Firewall] Je to bezpečné? Dá se to pochopit? 24 Copyright 2011, Oracle and/or its affiliates. All rights
Vynucení politik Log Allow Alert Applications Substitute Block Perfektní výkon a škálovatelnost Vysoce přesný bez problematických false positives Flexibilní vynucení na úrovni SQL: blokuj, nahraď, alert, pouze loguj 25 Copyright 2011, Oracle and/or its affiliates. All rights
5 kroků k nasazení Best practices 1. Trénink na živých datech (Log All/Log Unique) 2. Revize, vyčištění politik 3. Nasazení do produkce s výstrahami / alerty při aktivitách nevyhovujícím pravidlům 4. Doladění pravidel při detekci incidentu 5. Vynucení blokování 26 Copyright 2011, Oracle and/or its affiliates. All rights
Příklad od zákazníka: porušení pravidel Database Firewall nastaven na log all SQL Alert při out-of-policy komunikaci / statements Kontrola odhalila: SELECT * FROM customers (nový člen support týmu) 27 Copyright 2011, Oracle and/or its affiliates. All rights
Roadmapa MySQL 5.0, 5.1, 5.5 MS SQL Server 2008 R2 Podpora pro Oracle Advanced Security Integrace s Oracle Enterprise Manager Database Control Reporty založené na Oracle BI Publisher 28 Copyright 2011, Oracle and/or its affiliates. All rights
Kde začít? Programy pro zákazníky a partnery Insight, Discovery Workshop Roadmap to Security 29 Copyright 2011, Oracle and/or its affiliates. All rights
Závěr Oracle dokáže pomoci se zabezpečením systémů Metodika, postupy, produkty Operační systémy, databáze, middleware, aplikace Špičkové zabezpečení pro databáze Zamezení SQL Injection Audit s minimálním (µs) dopadem na výkon 30 Copyright 2011, Oracle and/or its affiliates. All rights
31 Copyright 2011, Oracle and/or its affiliates. All rights Q&A