590 likes | 709 Views
Using Cache’s Security Features. Štefan Havlíček. Proč se starat o zabezpečení aplikací. Když to neuděláte: Vaše rodina bude prodána do otroctví Strávíte zbytek žívota v táborech pro malomocné v deltě Mississipi Když to uděláte: Splníte požadavek dnešní doby
E N D
Using Cache’s Security Features Štefan Havlíček
Proč se starat o zabezpečení aplikací • Když to neuděláte: • Vaše rodina bude prodána do otroctví • Strávíte zbytek žívota v táborech pro malomocné v deltě Mississipi • Když to uděláte: • Splníte požadavek dnešní doby • Informační systémy jsou v současnosti ohrožovány řadami hrozeb a každým dnem přibývají nové metody útoku. • Získáte konkurenční výhodu • Provedete výše uvedené body vašim konkurentům
Co je potřeba mít na paměti • V teorii není rozdíl mezi teorií a praxí. V praxi tomu tak není!!! • Bezpečnost je hlavně proces. • Celková míra zabezpečení systému není dána jen použitým software, ale má i své další složky, z nichž velmi důležitou je rozhodně i organizační dimenze. • Bezpečnostní politika a standardy • Organizace bezpečnosti • Logická a fyzická bezpečnost …. • Certifikace software
Evaluation Assurance Level (EAL) • The Evaluation Assurance Level (EAL1 through EAL7) of an IT product or system is a numerical grade assigned following the completion of a Common Criteria security evaluation, an international standard in effect since 1999. • The EAL level does not measure the security of the system itself, it simply states at what level the system was tested to see if it meets all the requirements of its Protection Profile.
Evaluation Assurance Level (EAL) • Úrovně certifikatů EAL • EAL1: Functionally Tested • EAL2: Structurally Tested • EAL3: Methodically Tested and Checked • EAL4: Methodically Designed, Tested and Reviewed • EAL5: Semiformally Designed and Tested • EAL6: Semiformally Verified Design and Tested • EAL7: Formally Verified Design and Tested
Jsme certifikováni …. • Caché má certifikát , že splňuje požadavky pro EAL Level 3 Common Criteria Assurance Certification. • Tento certifikát je uznáván ve 24 zemích světa.
EAL 3 • EAL3: Methodically Tested and Checked • EAL3 is applicable in those circumstances where developers or users require a moderate level of independently assured security.
Certifikace Common Criteria • Kritériem přiznání certifikátu je funkcionalita produktu z hlediska bezpečnosti: • utajení (confidentiality) • integrita • dostupnost • z pohledu funkčnosti databázového serveru tzn.: • potřebu zajistit identifikaci a autentifikaci (ověření) uživatelů • řízení přístupu • šifrování a audit operací
Bezpečnostní model InterSystems Caché Advanced Security (od verze 5.1) • Jednoduchá unifikovaná architektura • Konsistentní vysoce výkonná infrastruktura pro podporu aplikací • Minimální režie systému • Založena na prověřených průmyslových standardech a certifikovaných technologiích
Bezpečnostní model InterSystems … • Zabezpečení databáze Caché • Zdroje (Resources) • Šifrování (Encryption) • Audit (System events auditing) • Umožnit vývojářům zabudovat bezpečnostní mechanismy do jejich aplikací • Delegovaná autentikace, ověřování autorizace, eskalace rolí • Audit aplikačních událostí • Zabezpečená komunikace klienta SSL/TLS
Bezpečnostní model InterSystems … • Pracovat efektivně s bezpečnostními technologiemi operačního prostředí • Autentikace: • Kerberos • Caché Login • LDAP • Server SSL/TLS
3 úrovně programového prostředí Chrání zdroje a poskytované služby Nabízí infrastrukturu pro implementaci a zprovoznění bezpečnostních pravidel na úrovni aplikace. Prostředky pro efektivní interakci s ostatními nástroji.
Dobře nastavená bezpečnost pokrývá 3 úrovně • Prevence • Autentikace • Autorizace • Zabezpečená komunikace • Šifrovaná databáze • Detekce • Audit • Reakce
System Management Portal • Webové rozhraní • Umožňuje vzdálenou správu systému • Minimalizuje závislost na verzi systému • Slučuje funkcionalitu nástrojů: • Configuration manager • Control panel • Explorer • SQL manager
Konfigurace CAS při instalaci • Nastavuje počáteční konfiguraci pro Služby a Zabezpečení: • Typy konfigurací: • Minimal • Normal • Locked Down
Konfigurace CAS při instalaci … • Rozdíly v uživatelském zabezpečení: • Maska pro zadávání hesla (3.32ANP nebo 8.32ANP) • Účet _SYSTEM (aktivován/zablokován) • Role účtu UnknownUser (%All, None) • Rozdíly ve vlastnostech služeb: • Které Služby jsou aktivovány • Zda oprávnění Use Service je Public • Zda služba vyžaduje autentikaci a jakého typu
Autentikace • Neautentikovaný přístup • Caché login • Operační systém • LDAP • Delegovaná autentikace • Kerberos
Autentikace na bázi OS • Uživatel je indetifikován na základě účtu OS • Je aplikována pouze na procesy běžící na straně serveru, (např. apliace s terminálovým přístupem) • Typické použití na systémech Unix, OpenVMS • Pro WIN je použitelné pouze pro lokální přihlašování
LDAP • Implementováno od verze 2007.1 • Rozšiřuje LDAP schema o atributy obsahující důležité informace pro autentikaci uživatelů Caché • Caché username • Caché roles • Default namespace • Použitelné jak s Active Directory tak s LDAP servery jiných stran
LDAP konfigurace LDAP přístupové atributy Nové Atributy (fields) získané z LDAP
Delegovaná autentikace • Uživatelsky definovaná autentikace • Použitelná: • V aplikacích • Ve službách Caché • Účel: • Re-use existujících mechanismů autentikace implementovaných do stávajících aplikací.
Autentikována “Logged In” “Logging in” znamená že: Autentikace byla úspěšná bez ohledu na způsob autentikace (Kerberos, LDAP, …) Oprávnění asociovaná s cílovám jmenným prostorem jsou v pořádku Jakmile jeuživatel “přilogován”, je možná další interakce s prostředím Caché 2 systémové proměnné jsou automatickyvytvořeny: $USERNAMEobsahujeuživatelské jménopoužíté při autentikaci $ROLESobsahujeseznamrolípřiřazených uživateli
Autorizace … • Definuje co smí autentikovaný uživatel dělat a k jakým prostředkům (zdrojům) má přístup • Terminologie: • Asset: něco co je chráněno (např. databáze, připojení k databázi, správcovské činnosti) • Resource (zdroj): něco co chrání Asset • Database Resource (%DB_Samples) • Administrative Resource (%Admin_Manage) • Development Resource (%Development) • Service Resource (%Service_CSP) • User Defined
Autorizace … • Permission (oprávnění): umožňuje vykonat určitou akci • Read (R) – vidět obsah zdroje, např. data a rutiny • Write (W) – vidět a měnit obsah zdroje • Use (U) – používat daný zdroj, např. aplikaci nebo službu • Privilege (výsada): uděluje povolení vykonat něco se zdrojem chránícím jeden nebo více assetů • Zápis: • %DB_Samples:Read • Mohou být veřejná (Public)
Role • Role: pojmenovaná kolekce výsad (privileges) • Více uživatelů potřebuje stejnou sadu výsad • Tato sada může být definována jednou a pak sdílena • Uživatel může mít více rolí
Role … • Předdefinované role: • Jsou nastaveny během instalace Caché a nejsou modifikovány během povýšení na novou verzi • Př.: %All, %Manager, %Development, … • Uživatelsky definované role • Vytvářeny uživatelem
Role %ALL • Předdefinovaná role • Vlastní všechna oprávnění ke všem zdojům systému • Nelze ji odstranit ani modifikovat • Vždy musí existovat alespoň jeden uživatel, který má přiřazenu roli %ALL
Šifrování databáze • Navrženo pro ochranu uložených dat před uživateli bez oprávnění přistupovat k těmto datům • Základní požadavky: • Šifrování dat v databázi musí být založeno na časem prověřených průmyslových standardech • Šifrování dat nesmí mít zásadní dopad na výkonnost databáze • Tato funkcionalita existuje nezávisle na CAS !!!
Šifrování databáze … • Využívá standard AES (Advanced Encryption Standard) • Nastavuje se pro každou databázi při vytváření databáze, ale lze šifrovat i dodatečně • Šifrování dat se provádí během během přístupu k nim • Položky v souboru WIF (Write Image Journal) jsou šifrovány též • Je možné šifrovat i databázi CACHETEMP, stejně jako žurnálovací soubory
Šifrovací klíče • Každá instalace Caché si může vytvořit jedinečný šifrovací klíč určený pro ochranu databáze • Délka klíče: 128, 192, 256 bitů • Klíč je používán pro všechny databáze na serveru • Je uložen v souboru Encryption Key File • Je asociován s účtem, který má na starost správu šifrovacích klíčů • Jakmile je vytvořen je dobré ho uložit na bezpečné místo
Klíč aktivován při startu systému • Jakmile je klíč aktivován je vhodné ho ze systému odebrat
Vytvoření šifrované databáze • Databázi lze zašifrovat v okamžiku jejího vytvoření • Před zapnutím šifrování db nebo jejím montování musí být aktivován šifrovací klíč • Je možné též šifrovat databáze CACHETEMP a žurnálovací soubory
Vypnutí a zapnutí šifrování • Zašifrování existující nešifrované databáze a obrácený proces lze provést pomocí utility „cvencrypt“ • Utilita je ve složce: • <cache_install>\bin • Volání utility: • cvencrypt cache.dat
Caché audit • Loguje určité klíčové události do zabezpečené databáze • Typy logovaných událostí: • Povinné systémové události, • Logovány vždy (např. startup, shutdown) • Volitelné systémové události • Logovány v případě explictního nastavení • Uživatelsky definované události • Musí být nastaveny explicitně. Aplikace mohou generovat vlastní záznamy pro audit pomocí $System.Security.Audit()
Co není automaticky auditováno • Aktivity spojené s databázovými operacemi • Všechny operace insert, update, delete • Toto mohou zajistit aplikace ve svém kódu pomocí objektových metod nebo triggerů
Zobrazení dat auditu • Log je uložen v chráněném souboru CACHEAUDIT • Databáze je žurnálována a zálohována • Chráněný zdrojem %DB_CACHEAUDIT • Caché nabízí několik standardních reportů prostřednictvím portálu • Portál umožňuje: • Kopírovat vybrané položky do specifikovaného jmenného prstoru • Exportovat vybrané položky do souboru • Čistit (mazat) vybrané položky z logu