Security Workshop 2013 Improving Security in a Hacker s World



Similar documents
activecho Driving Secure Enterprise File Sharing and Syncing

FileCloud Security FAQ

Interact Intranet Version 7. Technical Requirements. August Interact

Training module 2 Installing VMware View

Authenticating REST services in OpenEdge

The Panoptix Building Efficiency Solution: Ensuring a Secure Delivery of Building Efficiency

Data Security and Governance with Enterprise Enabler

Computer Security: Principles and Practice

SQL Server Encryption Overview. September 2, 2015

Backup Exec Private Cloud Services. Planning and Deployment Guide

FileMaker Security Guide The Key to Securing Your Apps

Installation Guide ARGUS Symphony 1.6 and Business App Toolkit. 6/13/ ARGUS Software, Inc.

FileMaker Security Guide

MySQL Security: Best Practices

Security Overview Enterprise-Class Secure Mobile File Sharing

SECURITY DOCUMENT. BetterTranslationTechnology

Security Best Practices for Microsoft Azure Applications

1. Scope of Service. 1.1 About Boxcryptor Classic

Cloud Services for Backup Exec. Planning and Deployment Guide

Securing Data in Oracle Database 12c

How To Secure Your Data Center From Hackers

Online Transaction Processing in SQL Server 2008

Oracle Database 11g: Security Release 2. Course Topics. Introduction to Database Security. Choosing Security Solutions

A Decision Maker s Guide to Securing an IT Infrastructure

Mobile Security Jump Start. Wayne Henshaw & Mike Jacobs Progress OpenEdge October 8, 2013

Cloud Security Best Practices

High Security Online Backup. A Cyphertite White Paper February, Cloud-Based Backup Storage Threat Models

Secure Messaging Server Console... 2

D50323GC20 Oracle Database 11g: Security Release 2

Securing Oracle E-Business Suite in the Cloud

Mobile Admin Security

IIS SECURE ACCESS FILTER 1.3

Securing Data on Microsoft SQL Server 2012

Microsoft SQL Server Security and Auditing Clay Risenhoover ISACA North Texas April 14,

SQL Server 2008 Designing, Optimizing, and Maintaining a Database Session 1

Oracle Database 11g: Security. What you will learn:

BlackBerry Enterprise Server Version: 5.0. Upgrade Planning Guide

TIBCO Spotfire Platform IT Brief

Security for Cloud- and On Premise Deployment. Mendix App Platform Technical Whitepaper

Ensuring Enterprise Data Security with Secure Mobile File Sharing.

Flexible Identity Federation

Architecture Guidelines Application Security

Compliance & Data Protection in the Big Data Age - MongoDB Security Architecture

BlackBerry Enterprise Service 10. Secure Work Space for ios and Android Version: Security Note

MS-55096: Securing Data on Microsoft SQL Server 2012

Directory Integration with Okta. An Architectural Overview. Okta Inc. 301 Brannan Street San Francisco, CA

WhatsUp Gold v16.3 Installation and Configuration Guide

Xerox DocuShare Security Features. Security White Paper

Central Administration QuickStart Guide

VMware Identity Manager Connector Installation and Configuration

BlackBerry Enterprise Service 10. Version: Configuration Guide

INTRODUCTION ADVANTAGES OF RUNNING ORACLE 11G ON WINDOWS. Edward Whalen, Performance Tuning Corporation

Server Software Installation Guide

Eylean server deployment guide

Enterprise Manager. Version 6.2. Installation Guide

CrashPlan Security SECURITY CONTEXT TECHNOLOGY

Entrust IdentityGuard Comprehensive

VMware Horizon Workspace Security Features WHITE PAPER

Security & Cloud Services IAN KAYNE

The increasing popularity of mobile devices is rapidly changing how and where we

HIPAA: MANAGING ACCESS TO SYSTEMS STORING ephi WITH SECRET SERVER

Progress OpenEdge REST

Connection Broker Managing User Connections to Workstations, Blades, VDI, and More. Quick Start with Microsoft Hyper-V

efolder BDR for Veeam Cloud Connection Guide

White Paper. Anywhere, Any Device File Access with IT in Control. Enterprise File Serving 2.0

Take Control of Identities & Data Loss. Vipul Kumra

RemotelyAnywhere. Security Considerations

To install Multifront you need to have familiarity with Internet Information Services (IIS), Microsoft.NET Framework and SQL Server 2008.

QUANTIFY INSTALLATION GUIDE

NovaBACKUP. Storage Server. NovaStor / May 2011

Criteria for web application security check. Version

Oracle Database 11g: Security Release 2

Installation and Configuration Guide

Agenda. How to configure

Easily Managing User Accounts on Your Cloud Servers. How modern IT and ops teams leverage their existing LDAP/Active Directory for their IaaS

BM482E Introduction to Computer Security

1 Copyright 2012, Oracle and/or its affiliates. All rights reserved. Public Information

Secret Server Qualys Integration Guide

Configuration Guide. BES12 Cloud

EMC Data Protection Search

Centrify Cloud Connector Deployment Guide

Design Principles for Protection Mechanisms. Security Principles. Economy of Mechanism. Least Privilege. Complete Mediation. Economy of Mechanism (2)

General DBA Best Practices

vsphere Security ESXi 6.0 vcenter Server 6.0 EN

Sync Security and Privacy Brief

inforouter V8.0 Server Migration Guide.

Blackboard Collaborate Web Conferencing Hosted Environment Technical Infrastructure and Security

Dell SonicWALL and SecurEnvoy Integration Guide. Authenticating Users Using SecurAccess Server by SecurEnvoy

S E C U R I T Y A S S E S S M E N T : B o m g a r A p p l i a n c e s

DESLock+ Basic Setup Guide Version 1.20, rev: June 9th 2014

Lesson Plans Microsoft s Managing and Maintaining a Microsoft Windows Server 2003 Environment

SAP HANA Security Guide

Media Shuttle s Defense-in- Depth Security Strategy

NovaBACKUP xsp Version 15.0 Upgrade Guide

Complying with PCI Data Security

<Insert Picture Here> Oracle Database Security Overview

SaaS Security for the Confirmit CustomerSat Software

$99.95 per user. SQL Server 2005 Database Administration CourseId: 152 Skill level: Run Time: 30+ hours (158 videos)

Transcription:

Security Workshop 2013 Improving Security in a Hacker s World Workshop Steve, Roy, Rob, Brian, Peter Progress Software Today

Agenda and Timeframes Topic Type Presenter Approx. Length (Minutes) Introductions / Opening Lecture Brian Bowman 10 A Wide Open World Lab 10 Data In Motion Lecture Steve Boucher 15 Enabling SSL Lab 15 Application Protection Lecture Rob Marshall 15 Client Principle Lab 30 External Security Lecture Brian Bowman & Roy Ellis 10 LDAP Authentication Lab 15 Physical Security Lecture Brian & Roy 10 TDE Lab 15 Misc. Topics Lecture Rob & Brian 10 Tying it all together Lecture Peter Judge 30 2

Agenda Everything Else!! Physical Security Application Protection Data in Motion Not a Single Solution Why Security? 3

Lab # 1 Introduction to Security 4

Why Security? The need to provide Security for data continues to increase Affects many Market segments Finance Retail Healthcare and more Governments have enacted legislation to enforce Compliance of data Protecting intellectual property (i.e. your application code) Mobile computing greatly increases security risks Laptops with sensitive data Mobile devices (phones and tablets) with passwords stored on them 5

Compliance Legislation Examples Payment Card Industry (PCI) Health Insurance Portability & Accountability Act (HIPPA) Sarbanes-Oxley Act (SOX) Public company accounting reform and investor protection European Union Data Protection Directive Must Have Conformance to do Business 6

Agenda Everything Else!! Physical Security Application Protection Data in Motion Not a Single Solution Why Security? 7

Security is Not a Solution Security is not a solution, but a process Requires a set of defined goals and exclusions Requires monitoring Requires updating as technology and system access evolve Protecting vital data via security is a multiple step approach using: Environment Process Hardware Software 8

Agenda Everything Else!! Physical Security Application Protection Data in Motion Not a Single Solution Why Security? 9

Data in Motion Internet Firewall/DMZ configuration Network Security Quick Notes 10

The Internet 11

The Internet 12

The Internet DMZ 13

The Internet DMZ WEB SERVER 14

Network Security HTTPS SSL For web communication Part of the Web Server For web communication from client to AppServer Needed elsewhere? It s your setup It s your call Performance latency? Using HTTPS/SSL will cause performance degradation Only encrypt information that is sensitive Use different AppServers w/ssl for sensitive data 15

The Internet and Intranet HTTPS SSL SSL Browser SSL OpenEdge/ OpenClient 16

Quick Notes Remember! Run in Production Mode Don t allow ABL compile Don t allow debug Disable WebSpeed Workshop Never use defaults! Ports: 20931, 5162, 3055, 3090 Broker names: wsbroker, asbroker1, NS1 Messenger, AIA, WSA names: wspd_cgi.sh, cgiip.exe, Aia, wsa1 17

Lab # 2 Enabling SSL 18

Agenda Everything Else!! Physical Security Application Protection Data in Motion Not a Single Solution Why Security? 19

Application Protection ABL Client Principal 3rd Party Authentication 20

The Basic Client Principal Login Finish Authenticate Logout Clear CP Logged In Do Work in Application 21

The Basic Client Principal What is needed: DEFINE VARIABLE hclientprincipal AS HANDLE NO-UNDO. CREATE CLIENT-PRINCIPAL hclientprincipal. hclientprincipal:initialize( rmarshal@progress.com ). hclientprincipal:seal( bedford ). 22

Basic Client Principal Authentication Authentication is not just verifying that you can login Authentication needs to have an expiry 24

Basic Client Principal Authentication 1 - Login 5 - Client Accesses Application 3 - Authenticate 2 - Create C-P C-P Expired? 6 - Logout 4 - Logged In Normal Activity 7 - Finish 25

Basic Client Principal Authentication 1 - Login 2 - Create C-P 3 - Authenticate 4 - Logged In 5 - Client Accesses Application User enters information required for the domain e.g. User Name Password C-P Expired? Company Name Normal Activity 6 - Logout 7 - Finish 26

Basic Client Principal Authentication 1 - Login 2 - Create C-P 3 - Authenticate 5 - Client Accesses Application Client-Principal object is created from the user claims Mandatory Attributes are set C-P Expired? 6 - Logout 4 - Logged In Normal Activity 7 - Finish 27

Basic Client Principal Authentication 1 - Login 2 - Create C-P User domain configurations _sec-authentication* tables 3 - Authenticate 5 - Client Accesses Application Managed through Data Administration -domain 4 - Logged In C-P Expired? -system _Domain-name _Domain-type = _Domain-type _Domain-description _Domain-access-code _Domain-runtime-options _oeusertable _oslocal User defined Normal Activity 6 - Logout 7 - Finish 28

Application Authentication ABL Client-Principal Current and future OpenEdge products rely on Client-Principal (multi-tenancy, auditing) A cryptographically sealed security token Container for authenticated credentials User, password, domain info, etc. Once sealed the client-principal is read-only Can be used by all ABL application components ABL Session, DB connection Some 3 rd party authentication recommendations LDAP Active Directories Kerberos Multi-Factor Authentication Require complex passwords! 29

Securing Your Application Protect your intellectual property (application code) Employ encryption (file or file system level) Utilize O/S and user access limitation The basics of runtime DBAuthkey (RCODEKEY)- ensure code running against the DB was compiled to use that DB Runtime table and column access controls Operating system file security settings, etc. 30

Lab # 3 Client Principal Programming 31

ABL Accessing LDAP AuthWP.zip is available on Communities The code is not perfect But it is a great place to start! http://communities.progress.com/pcom/docs/doc-45878 AuthWP.zip LDAPAuthenticationWP.doc We will be using Apache Directory Studio It has a developer IDE for easy use (not what you will see in production) Shows you what you need to change in the sample code 32

Lab # 4 LDAP Integration 33

Agenda Everything Else!! Physical Security Application Protection Data in Motion Not a Single Solution Why Security? 34

Physical Security Physical Security Transparent Data Encryption 35

The Real Physical Aspect Limit access to your building Discourage tailgating Second level security on your Server Room 36

Process Security Security Policies Monitoring tools Secure installations (protect code and db) 37

User Security Lock, timeout/lock unattended machines Control expired user accounts and files 38

System Security Don t forget O/S security! Directory & File Permissions User Permissions Separation of Responsibilities 39

OpenEdge 10.2B Transparent Data Encryption Option for Enterprise Database: At-Rest Data Encryption Data secure on-disk, backup, and binary dump Data is unencrypted In-Memory = (up to) normal speed Secure Key Store and Key Management Change keys on-line Policies control use of utilities Industry standard encryptions AES, DES, triple DES, etc. Encrypt on the fly As data changes or As an online process No application changes for TDE! 41

Securing Your Data A High Level View Client <SSL> Encrypted Messages Server Shared Memory Backups Encrypted Data Dump/Load Encrypted Data Database on Disk Encrypted Data 42

Securing Your Data OpenEdge Database Encryptable Objects Type I Database Storage Area Entire area encrypted Type II Database Storage Area Object-level encryption Tables Indexes LOBs Table Index Index Index LOB Table LOB Table LOB Index LOB Table LOB Table Index 43

Database Key Store Independent and Secure Entity Not part of the database One for each encrypted database Managed by the DB Administrator (a separate and distinct role) Stores DB Master Key (DMK) Each TDE-enabled database has one unique DMK- required to connect to the DB (via a passphrase) Only one database is accessible if the DMK is compromised Each DB Object Has One or More Unique Virtual Data Encryption Keys Generated by the key store service based on the DMK- no DBA action required If key is cracked, intruder only has access to that one database object Ability to change keys online 44

How Does It Work? Database Storage Engine Key Store Write I/O Encrypted Data Shared Memory Buffer Pool & Encrypt Database Files (plain text block) Decrypt Policy Area Read I/O Key Store Database Master Key (DMK) DMK Admin/User Passphrase Manual/Automatic Authentication on DB start Encryption Policy Area Encryption Policies - What (object) & how (cipher) 45

Why TDE from OpenEdge? Easy to use No Application changes needed for TDE! Add Encryption Policy Area, Enable, Add Policies, Encrypt! Protects data even when not in database Data encrypted in backup files Data encrypted in binary dump files Very fast performance Little to no performance impact! We always try to improve our performance and get things to run faster. We tested a fully encrypted database and there was only a 4% decrease in performance versus an unencrypted database. We tested that with alternative data pools, we actually gained back almost 2% of that initial performance degradation. We believe with additional fine tuning the performance will continue to improve. (A TDE user) 46

Lab # 5 Transparent Data Encryption (TDE) 47

Agenda Everything Else!! Physical Security Application Protection Data in Motion Not a Single Solution Why Security? 48

Miscellaneous Disaster Recovery Management Multi-Tenancy 49

Securing Your Data Other considerations Disaster Recovery Securing your data from catastrophic loss (soft and hard failures) Off-site backup storage Cloud storage is quickly growing in popularity Database Replication & Replication Plus Replicate to up to 2 databases at the same time Quick failover to backup databases Some customers have on-premise DB and Cloud Replication 50

Securely Managing Your Application OpenEdge Explorer and OpenEdge Management Has its own user authentication The AdminServer has security settings Require Username and Admin Groups Separation of Development and Production The internal developer threat to your production system Different machines, networks, ports, everything Keep your operating system up-to-date Download and install critical system updates Install and configure system firewall 51

Multi-Tenancy Securing Tenant Data Isolated Tenancy Infrastructure Tenancy Application Tenancy Shared Tenancy Tenant1 Tenant2 Tenant3 Tenant1 Tenant2 Tenant3 Tenant1 Tenant2 Tenant3 Tenant1 Tenant2 Tenant3 App App App App App App App App DB DB DB DB DB DB DB DB DB DB Infra. Infra. Infra. Infrastructure Infrastructure Infrastructure Isolating Sharing Easier customization, security Simpler throttling control Target dissimilar customers No transformation Better economy of scale Simpler management Target like-customers Least cost to serve 52

ODBC / JDBC Security By default there are 2 accounts with DBA rights The account that originally CREATED the database The sysprogress account (not enabled by default) Best practices are to create a DBA user and NOT USE the root/sysprogress account You can use any SQL tool of choice to connect to the OpenEdge database, for purposes of the labs we will use the command line tool sqlexp (SQL Explorer) Security rights can be changed while the database is online. 53

ODBC / JDBC Security It is a good idea to have separate brokers for SQL vs ABL clients When creating new SQL users, the ONLY thing they have rights to is the catalog (look at the db schema information) Remember that any ABL triggers WILL NOT FIRE when data is changed via SQL Give users access to only what they need and remember what database they are going against (you cannot change data on a replication target) Keep all SQL scripts in your source control 54

Lab # 6 Optional Lab - ODBC / JDBC 55

Tying It All Together Client Principal and Application Theory (Peter Judge) 56

Defense in Depth Physical Security Operating System Network AppServer Activate Procedure Service Interface Business Logic Language & Database Doors, locks, guards Login, ACL, SELinux Firewalls, SSH/TLS SESSION:EXPORT Service name Operation name Roles Multi-tenancy, CAN-*, TDE 57

Application Flow: Login User Interface Claims / Assertions Security Token Security Token Service Authentication Systems & Domains 58

Application Flow: Business Logic User Interface Security Token Authentication Authorisation Auditing Application Business Logic 59

Separate AppServers for STS & Business Logic Separate svr UI Client Firewall Security Token Service AppServer ssl Connection Restricted Access Creds Business Logic AppServer Activate Extra Layers tde 60

Separate AppServers for STS & Business Logic UI Client Security Token Service AppServer Security/Startup.p session:export( 'Security/Login.p' 'Security/LoginSSO.p' + ',' + 'Security/Logout.p' + ',' + 'Security/GetClientPrincipal.p' + ',' + Business Logic AppServer 'Security/ValidateToken.p' + ',' + 'Security/ValidateClientPrincipal.p' + ',' + 'Security/RegisterServer.p' + ',' + 'Security/DeregisterServer.p'). Activate 61

Separate AppServers for STS & Business Logic UI Client login.p Security Token Service AppServer LoginUser() Business Logic AppServer Activate 62

Separate AppServers for STS & Business Logic UI Client Security Token Service AppServer ValidateToken() getcustomer.p GetClientPrincipal() Business Logic AppServer Activate 63

Separate AppServers for STS & Business Logic UI Client Security Token Service AppServer getcustomer.p Business Logic AppServer Domain name, Access code Activate security-policy:set-client( ) 64

_sec-authentication-system & -domain Security Token Service Business Logic Service Common create _sec-authentication-system. _Domain-type = 'DBTABLE-Identity'. _PAM-plug-in = true. _PAM-callback-procedure = 'IdentityTableAuthenticate.p'. create _sec-authentication-system. _Domain-type = 'DBTABLE-Identity'. _PAM-plug-in = true. _PAM-callback-procedure = 'nologinauthenticate.p'. create _sec-authentication-domain. _Domain-name = 'employee'. _Domain-type = 'DBTABLE-Identity'. _Domain-access-code = audit-policy:encrypt-audit-mac-key( s00persecr1tk3y4employee'). _Domain-enabled = true. 65

_PAM-callback-procedure Security Token Service Business Logic Service procedure AuthenticateUser: /* snipped parameters*/ find ApplicationUser where ApplicationUser.LoginName eq phcp:user-id and ApplicationUser.LoginDomain eq phcp:domain-name no-lock no-error. if not available ApplicationUser then pipamstatus = Progress.Lang.PAMStatus:UnknownUser. else if ApplicationUser.Password ne encode(phcp:primary-passphrase) then pipamstatus = Progress.Lang.PAMStatus:AuthenticationFailed. else /* we're good to go */ pipamstatus = Progress.Lang.PAMStatus:Success. return. end procedure. procedure AuthenticateUser: /* snipped parameters*/ /* we're not allowed to do any logins here */ pipamstatus = PAMStatus:InvalidConfiguration. return. end. 66

Separate AppServers for STS & Business Logic UI Client Security Token Service AppServer getcustomer.p Business Logic AppServer Activate security-policy:set-client( ) AuthoriseOperation("getcust") CustomerBE:GetData( ) 67

Separate AppServers for STS & Business Logic UI Client logout.p Security Token Service AppServer LogoutUser() Business Logic AppServer Activate 68

Separate AppServers for STS & Business Logic UI Client Security Token Service AppServer ValidateToken() getcustomer.p Business Logic AppServer Activate 69

Application Security Principles Applications must have security designed in. Some proven application security principles 1. Identify and secure the weakest link 2. Practice defense in depth 3. Be reluctant to trust 4. Remember that hiding secrets is hard 5. Follow the principle of least privilege 6. Fail and recover securely 7. Compartmentalize 8. Keep it simple, stupid 9. Keep trust to yourself 10. Assume nothing Gary McGraw's 10 steps to secure software 70

Lather, Rinse, Repeat Think of security as a continuous improvement project. You are never done! Keep informed of the latest security tools and threats Progress will continue to give you tools to help secure your Application and valuable data Want more information on any of the topics in this presentation? Look in the briefcase available after this this talk Go to http://communities.progress.com 71

Summary Security is a complex issue that is constantly changing There are many options for you to choose from today you experience some options Start Simple, identify what is important, and don t stop evolving 72

Reference Materials http://directory.apache.org/studio/ - Apache Directory Studio http://www.nirsoft.net/utils/smsniff.html - Smart Sniffer http://www.openldap.org/ - OpenLDAP http://communities.progress.com/pcom/docs/doc-45878 - AuthWP.zip for LDAP http://communities.progress.com/pcom/docs/doc-106849 - Security Webinar Briefcase http://news.cnet.com/2008-1082-276319.html - 10 Steps to Secure Software 74

Other Exchange Security Sessions Identity Management Basics (Part 1) Peter Judge Coding with Identity Management & Security (Part 2) Peter Judge Transparent Data Encryption Doug Vanek Introduction to Multi-tenancy Gus Bjorklund Security and Session Management with Mobile Devices Mike Jacobs & Wayne Henshaw 75