Návrh a implementace bezpečnosti v podnikových aplikacích část X Pavel Horal, 2014
Rekapitulace I ● Informační bezpečnost ○
Confidentiality, Integrity, Availability, Authenticity, Non-repudiation
● Bezpečnostní procesy ○ Identification, Authentication, Authorization, Logging
● Řízení přístupů ○ Principal, Subject, Operation, Object ○ Role, Permission, Group ○ Policy, Rule, Condition, PEP, PAP, ...
● Spring ○ IoC, AOP, Invocation vs Domain Model Security
Rekapitulace II
Zdroj: Markus Schumacher, SAP AG
Informační bezpečnost
Informační bezpečnost Hashovací funkce
● VSTUP → OTISK (Z* → Zk) ● Jednosměrné a bezkolizní ● Kolize ○ ○
Nalezení libovolných M a M´ tak, že h(M) = h(M´). Pro M nalezení M´ tak, že h(M) = h(M´).
● Kryptograficky bezpečné (~PRNG) ● MD5, SHA-1, SHA-2, … ● Hesla, autenticita, ...
Informační bezpečnost Šifrování
● Symetrické ○ délka klíče, počet rund ○ DES, AES, IDEA, Blowfish, ...
● Asymetrické ○ jednosměrná funkce ○ délka klíče, obtížně řešitelná úloha (NP) ○ RSA, DSA, ECC, ...
Informační bezpečnost Podepisování
● Podpis ○ zašifrování hashe asymetrickou šifrou
● Časová razítka ● Public Key Infrastructure (PKI) ○ CA => certifikát ○ CSR ○ certifikační cesta, CRL
● X.509 -> ASN.1 -> DER (.cer, .crt, .der, .pem)
X.509 Ukázka Certificate: Data: Version: 1 (0x0) Serial Number: 7829 (0x1e95) Signature Algorithm: md5WithRSAEncryption Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc, OU=Certification Services Division,CN=Thawte Server CA/
[email protected] Validity: Not Before: Jul 9 16:04:02 1998 GMT Not After: Jul 9 16:04:02 1999 GMT Subject: C=US, ST=Maryland, L=Pasadena, O=Brent Baccala, OU=FreeSoft, CN=www.freesoft.org/
[email protected] Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (1024 bit) Modulus (1024 bit): 00:b4:31:98:0a:c4:bc:62:c1:88:aa:dc:b0:c8:bb:33:35:19:d5:0c:64:b9:3d:41:b2:96:fc:f3:31:e1: 66:36:d0:8e:56:12:44:ba:75:eb:e8:1c:9c:5b:66:70:33:52:14:c9:ec:4f:91:51:70:39:de:53:85:17: 16:94:6e:ee:f4:d5:6f:d5:ca:b3:47:5e:1b:0c:7b:c5:cc:2b:6b:c1:90:c3:16:31:0d:bf:7a:c7:47:77: 8f:a0:21:c7:4c:d0:16:65:00:c1:0f:d7:b8:80:e3:d2:75:6b:c1:ea:9e:5c:5c:ea:7d:c1:a1:10:bc:b8: e8:35:1c:9e:27:52:7e:41:8f Exponent: 65537 (0x10001) Signature Algorithm: md5WithRSAEncryption 93:5f:8f:5f:c5:af:bf:0a:ab:a5:6d:fb:24:5f:b6:59:5d:9d:92:2e:4a:1b:8b:ac:7d:99:17:5d:cd:19:f6:ad:ef:63:2f:92: ab:2f:4b:cf:0a:13:90:ee:2c:0e:43:03:be:f6:ea:8e:9c:67:d0:a2:40:03:f7:ef:6a:15:09:79:a9:46:ed:b7:16:1b:41:72: 0d:19:aa:ad:dd:9a:df:ab:97:50:65:f5:5e:85:a6:ef:19:d1:5a:de:9d:ea:63:cd:cb:cc:6d:5d:01:85:b5:6d:c8:f3:d9:f7: 8f:0e:fc:ba:1f:34:e9:96:6e:6c:cf:f2:ef:9b:bf:de:b5:22:68:9f
Informační bezpečnost Public Key Cryptography Standards
● IETF / RFC ● http://en.wikipedia.org/wiki/PKCS ● PKCS#7 ○ Cryptographic Message Syntax (.p7, .p7s)
● PKCS#10 ○ Certificate Signing Request (.p10)
● PKCS#12 ○ Personal Information Exchange Syntax (.pfx, .p12)
Technologie
Hardware Security Module ● FIPS 140-2 (Security Requirements for Cryptographic Modules) ● Podepisování, šifrování, generování klíčů, ... ● One-time password
Zdroj: http://www.pericosecurity.com/
Windows doména Workgroup vs. domain
● Workgroup ○ všechny počítače si jsou sobě rovny (peer to peer), každý je spravován samostatně
● Doména ○ jeden nebo více počítačů jsou centrální servery, pomocí kterých je možné spravovat připojené počítače ○ centrální správa uživatelů (cestovní profily) ○ centrální správa přístupových práv
Windows doména Active Directory
● Domain controller ○ centrální server pro spravující doménu ○ NetBIOS / DNS (SRV dotazy) a Netlogon ○ často poskytuje další služby - KDC, DNS, ...
● Active Directory ○ adresářová služba s nastavením domény (uživatelé, skupiny, služby, ...)
Windows doména Struktura domén
● OU, Tree, Forest, Trust (transitive a nontransitive)
Zdroj: technet.microsoft.com
Windows doména Access control
● Security Principal (User, Account, Group, ...) ● Security Identifier (SID) a Access Token ● Security Descriptor a DACL
Zdroj: technet.microsoft.com
Windows Domain RBAC
● AGLDP account, global, domain local, permission ● RBAC je realizován pomocí skupin ● ●
Globální skupiny jako role Lokální skupiny jako oprávnění
●
Skupiny mohou obsahovat další objekty (hierarchie rolí)
Zdroj: msdn.microsoft.com
PAM Pluggable Authentication Module
● API pro autentizační moduly ● de-facto UNIX standard ● Authentication management ○ autentizace, obnova credentials
● Account management ○ kontrola účtu a jiných restrikcí
● Session management ○ správa security session
● Password management ○ změna hesla Zdroj: OSF RFC 86.0
NSS Name Service Switch
● služba pro vyhodnocení názvů ● de-facto UNIX standard ● Kdo má právo na soubor? ● Kdo je 192.0.0.1? ● ...
JAAS Java Authentication and Authorization Service
● PAM port pro Javu ● ● ● ●
Principal Subject *.login.conf *.policy
● AccessController ● AccessControlContext ● SecurityManager Zdroj: www.parlint.com
Webové služby
XML Security ● XML Encryption ○ šifrování XML dokumentů nebo jejich částí XML
● XML Signature ○ podepisování XML dokumentů nebo jejich částí
● XKMS
http://www.w3.org/standards/xml/security
XML Security XML Encryption
Zdroj: www.w3.org
XML Security XML Signature
Zdroj: www.w3.org
Web Services WS-Sec
● ● ● ●
Nadstavba nad SOAP Podepisování SOAP zpráv Šifrování zpráv Připojování security tokenů
<soapenv:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"> <wsse:UsernameToken wsu:Id="UsernameToken-1"> <wsse:Username>login <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText" >XXXX
Web Services WS-*
● WS-Trust ○ Security Token Service
● WS-ReliableMessaging ○ spolehlivé doručování zpráv
● WS-Policy ○ politiky pro WSDL
● ...
REST
●
BASIC + SSL
● OAuth ● Token / session based (bezestavovost!)
Data lifecycle
Information Lifecycle Management ● Retention policies ● Retention period ● Disposal / shredding (skartace záznamů)
Collect
Store & Protect
Archive & Dispose
Zdroj: http://www.pericosecurity.com/
Metodika vývoje
Bezpečnost ve vývoji ● Bezpečnostní požadavky na základě usecases, požadavků a politik projektu ● Personální požadavky ● Kategorizace informací ● Definice projektových rolí ● Zabezpečení informací a kódu ● Testování a integrita kódu ● Kontrola komponent třetích stran ● Vzdělávání a osvěta
Analýza rizik ●
aktivum (asset) – vše co má pro společnost nějakou hodnotu a mělo by být odpovídajícím způsobem chráněno,
●
hrozba (threat) – jakákoliv událost, která může způsobit narušení důvěrnosti, integrity a dostupnosti aktiva
●
zranitelnost (vulnerability) – vlastnost aktiva nebo slabina na úrovni fyzické, logické nebo administrativní bezpečnosti, která může být zneužita hrozbou.
●
riziko – pravděpodobnost, že hrozba zneužije zranitelnost a způsobí narušení důvěrnosti, integrity nebo dostupnosti.
●
opatření (countermeasure) – opatření na úrovni fyzické logické nebo administrativní bezpečnosti, které snižuje zranitelnost a chrání aktivum před danou hrozbou.
Kontrola kódu ● Code review ○ Gerrit
● Continuous integration ○ Jenkins
● Code coverage ○ Cobertura
Zdroj: ibm.com
Bezpečnostní checklisty ● Kontrola nastavení ● Používání zastaralých nebo nebezpečných konstruktů ● Kontrola známých bezpečnostních chyb ● Kontrola manipulace s citlivými daty ● Kontrola výstupů provozních zásahů
Error handling ● I nepředvídatelná chyba musí mít přesně definovaný proces zpracování. ● Které chyby není z principu možné zpracovat? ● Monitoring a fail-over...
Provozní bezpečnost
Provoz a monitoring ● Monitoring služeb ○ proč je ping špatně ○ monitorované metriky (high / low water)
● Centrální logování ○ Kontrola logů
● Fraud prevention / intrusion detection ○ Active vs passive
● Profylaxe a její význam ○ Known errors
Provozní postupy ● Dokumentované provozní postupy ● Plány nasazení, upgrade, patchování ● Recovery plan ● Provozní deník ● Konfigurační řízení
Aktuálnost SW a HW ● zastaralý SW / HW nemá podporu ● zastaralý SW / HW ztrácí kompatibilitu ● problém interoperability ● definice závislostí (konfigurační řízení) ● sledování bezpečnostních novinek
Fyzická ochrana ● Pasivní fyzické hrozby ○ Nekvalitní kabel ○ Chybný rozvod ○ ...
● Ochrana přístupu ○ Místnost ○ Rack ○ Server
Ochrana lidských zdrojů ● Bus factor ● Vymezení rozsahu know-how a zodpovědností ● Školení, certifikace a ověření znalostí ● Ochrana proti lidskému selhání ● Ukončení pracovního poměru
Zdroj: southpark.wikia.com
Oddělení rolí ● Uživatel - používá aplikaci ● Operátor - monitoring ● Správce infrastruktury - fyzický přístup ● Administrátor - správce systému ● Auditor - kontrolní role ● Manažer bezpečnosti - určuje role
Audit
Audit ●
Bezpečnostní audit je veden za účelem trasování bezpečnostních a provozních operací, ze kterého lze zpětně provádět analýzu provedených činností, v případech rutinního dohledu, ale zejména pak v případech reklamací.
● Zamezení modifikace (MAC) ● Kolekce, filtrování, konverze, normalizace, analýza
Standardy s vazbou na bezpečnost
ITIL Information Technology Infrastructure Library
● Řízení IT služeb v organizacích ● Definice rolí, zodpovědností, procesů, … ● ● ● ● ●
ITIL Service Strategy ITIL Service Design ITIL Service Transition ITIL Service Operation ITIL Continual Service Improvement
Více v dalších předmětech...
ISO 17799 / BS7799 Information Technology - Code of practice for information security management
● ● ● ●
Best practices pro informační bezpečnost Information Security Management System Risk management QA
Zdroj: wikipedia.net
ISO/IEC 27000 Information Security ●
ISO 27001 ○
●
ISO 27002 ○
●
Covers information security system management measurement and metrics, including suggested ISO27002 aligned controls..
ISO 27005 ○
●
This will be the official number of a new standard intended to offer guidance for the implementation of an ISMS (IS Management System) .
ISO 27004 ○
●
27000 series standard number of what was originally the ISO 17799 standard (which itself was formerly known as BS7799-1)..
ISO 27003 ○
●
Specification for an information security management system (an ISMS) which replaced the old BS7799-2 standard
Methodology independent ISO standard for information security risk management..
ISO 27006 ○
Provides guidelines for the accreditation of organizations offering ISMS certification.
COBIT Control Objectives for Information and related Technology
● standard a soubor praktik pro správné postupy řízení, kontroly a auditu informačních technologií ● řeší referenční procesní model jednotlivých domén, měření výkonnosti procesů, hodnocení rizik a kontrolní rámec v kontextu minimalizace možného ohrožení IT ●
RiskIT
ISO/IEC 15408 Common Criteria
● Založeno na ITSEC, CTCPEC a TCSEC ● Evaluation assertion levels ○ Úroveň ověření bezpečnostních prvků ○ Certifikace produkců
Legislativa
Zákon 499/2004 Sb. Zákon o archivnictví a spisové službě
● Long-term digital preservation ● Význam metadat (NSESSS, METS) ○ administrativní ○ popisná ○ strukturální
● Zastarávání technologií a formátů ● OAIS ● Pronom ● PREMIS
Zákon 101/2000 Sb. Zákon o ochraně osobních údajů ● nesmí docházet ke sdružování osobních údajů pořízených k různým účelům ● správce je povinen zpracovávat pouze přesné osobní údaje a tyto údaje aktualizovat ● správce je povinen provést likvidaci osobních údajů, jakmile pomine účel, pro který byly osobní údaje zpracovány, nebo na základě žádosti subjektu údajů ● lze uchovávat osobní údaje pouze po dobu, která je nezbytná k účelu jejich zpracování ● správce musí zajistit logování přístupů a účelu přístupu
2012/0011 (COD) Personal data protection
● Zastřešující nařízení na evropské úrovni ● uchovávání je také forma zpracování ● osobní data jsou data, ze kterých lze přímo nebo nepřímo identifikovat fyzickou osobu ● uživatel musí mít možnost zjistit jaká data o něm poskytovatel služby schraňuje ● zpracování dat pouze po nezbytně nutnou dobu
Zákon 227/2000 Sb. Zákon o elektronickém podpisu
viz jiné přednášky