MySQL Security for Security Audits



Similar documents
How To Comply With The Pci Ds.S.A.S

Security and Control Issues within Relational Databases

Teleran PCI Customer Case Study

How To Protect Data From Attack On A Network From A Hacker (Cybersecurity)

Passing PCI Compliance How to Address the Application Security Mandates

MySQL Security: Best Practices

How To Achieve Pca Compliance With Redhat Enterprise Linux

worldpay.com Understanding the 12 requirements of PCI DSS SaferPayments Be smart. Be compliant. Be protected.

What s New in MySQL 5.7 Security Georgi Joro Kodinov Team Lead MySQL Server General Team

Hardening MySQL. Maciej Dobrzański maciek at

Implementing Database Security and Auditing

PCI Compliance Can Make Your Organization Stronger and Fitter. Brent Harman Manager, Systems Consultant Team West NetPro Computing, Inc.

Guardium Change Auditing System (CAS)

Database as a Service (DaaS) Version 1.02

<Insert Picture Here> MySQL Security In A Cloudy World

Top 10 Database. Misconfigurations.

Auditing Data Access Without Bringing Your Database To Its Knees

Zero Downtime Deployments with Database Migrations. Bob Feldbauer

March

Credit Cards and Oracle E-Business Suite Security and PCI Compliance Issues

Catapult PCI Compliance

05.0 Application Development

NETASQ & PCI DSS. Is NETASQ compatible with PCI DSS? NG Firewall version 9

Hacking the WordpressEcosystem

Division of IT Security Best Practices for Database Management Systems

Sophos Enterprise Console Auditing user guide. Product version: 5.2

Question Name C 1.1 Do all users and administrators have a unique ID and password? Yes

PCI Data Security Standards (DSS)

MatriXay Database Vulnerability Scanner V3.0

Credit Card Acceptance Policy. Vice Chancellor of Business Affairs. History: Effective July 1, 2011 Updated February 2013

Database Security Guide

Getting Started with Attunity CloudBeam for Azure SQL Data Warehouse BYOL

GFI White Paper PCI-DSS compliance and GFI Software products

Credit Cards and Oracle: How to Comply with PCI DSS. Stephen Kost Integrigy Corporation Session #600

Client Security Risk Assessment Questionnaire

Accelerating PCI Compliance

Connecting to a Database Using PHP. Prof. Jim Whitehead CMPS 183, Spring 2006 May 15, 2006

Securing and Accelerating Databases In Minutes using GreenSQL

BM482E Introduction to Computer Security

Installing and Configuring Guardium, ODF, and OAV

Data Stored on a Windows Computer Connected to a Network

PCI COMPLIANCE GUIDE For Merchants and Service Members

Best Practices (Top Security Tips)

MySQL Security: What s New & Best Practices. Copyright 2015, Oracle and/or its affiliates. All rights reserved.

Key Steps to Meeting PCI DSS 2.0 Requirements Using Sensitive Data Discovery and Masking

PCI Compliance - A Realistic Approach. Harshul Joshi, CISM, CISA, CISSP Director, Information Technology CBIZ MHM hjoshi@cbiz.com

Oracle Health Sciences Network. 1 Introduction. 1.1 General Security Principles

Hacking databases for owning your data. Cesar Cerrudo Esteban Martinez Fayo Argeniss (

PAYMENTVAULT TM LONG TERM DATA STORAGE

Barracuda Web Site Firewall Ensures PCI DSS Compliance

Introduction. PCI DSS Overview

news from Tom Bacon about Monday's lecture

What is Web Security? Motivation

How To Protect Your Data From Being Stolen

Database Administration with MySQL

ensure prompt restart of critical applications and business activities in a timely manner following an emergency or disaster

FORT HAYS STATE UNIVERSITY CREDIT CARD SECURITY POLICY

Using MySQL for Big Data Advantage Integrate for Insight Sastry Vedantam

How Reflection Software Facilitates PCI DSS Compliance

<COMPANY> PR11 - Log Review Procedure. Document Reference Date 30th September 2014 Document Status. Final Version 3.

Migrating helpdesk to a new server

Hacking Database for Owning your Data

Note: With v3.2, the DocuSign Fetch application was renamed DocuSign Retrieve.

Network Segmentation

Payment Card Industry Self-Assessment Questionnaire

White Paper. PCI Guidance: Microsoft Windows Logging

ADO and SQL Server Security

Use Enterprise SSO as the Credential Server for Protected Sites

An Oracle White Paper January Using Oracle Enterprise Manager Configuration Management Pack for PCI Compliance

Who did what, when, where and how MySQL Audit Logging. Jeremy Glick & Andrew Moore 20/10/14

Installation Guide for contineo

Percona Server features for OpenStack and Trove Ops

Fortinet Solutions for Compliance Requirements

PCI COMPLIANCE ON AWS: HOW TREND MICRO CAN HELP

How to Audit the Top Ten E-Business Suite Security Risks

Tushar Joshi Turtle Networks Ltd

Citrix Client Installation

Assuria can help protectively monitor firewalls for PCI compliance. Assuria can also check the configurations of personal firewalls on host devices

Introduction to IT Security

74% 96 Action Items. Compliance

Maintaining PCI-DSS compliance. Daniele Bertolotti Antonio Ricci

Secure Messaging Server Console... 2

Oracle Database 10g Express

HRC Advanced Citrix Troubleshooting Guide. Remove all Citrix Instances from the Registry

Complying with PCI DSS

MANAGED FILE TRANSFER: 10 STEPS TO PCI DSS COMPLIANCE

Version 15.3 (October 2009)

SolarWinds Security Information Management in the Payment Card Industry: Using SolarWinds Log & Event Manager (LEM) to Meet PCI Requirements

enicq 5 System Administrator s Guide

2: Do not use vendor-supplied defaults for system passwords and other security parameters

National Fire Incident Reporting System (NFIRS 5.0) Configuration Tool User's Guide

PCI DSS 3.0 Changes Bill Franklin Executive IT Auditor January 23, 2014

PCI COMPLIANCE ON AWS: HOW TREND MICRO CAN HELP

Transcription:

MySQL Security for Security Audits Presented by, MySQL AB & O Reilly Media, Inc. Brian Miezejewski MySQL Principal Consultat

Bio Leed Architect ZFour database 1986 Senior Principal Architect American Airlines Enterprise Data Warehouse 1996-2001 Director Database Architecture and Systems Travelweb.com (acquired by priceline.com) Managed and/or Architected large production systems in Oracle, Informix, MS SQL Server, ObjectStore, ZFour up to 14TB in size. MySQL PS Since 2006; Currently leading the Storage Engine and Server Enhancements practice

Experience General Accounting audits Usually mainly focused on financial systems Will overflow to the portion of your operational systems that feed the accounting system Sarbanes-Oxley (SOX) http://en.wikipedia.org/wiki/sarbanes-oxley_act http://frwebgate.access.gpo.gov/cgi-bin/getdoc.cgi?dbname=107_cong_public_laws&docid=f:publ204.107 PCI - Payment Card Industry data security standard https://www.pcisecuritystandards.org/

Contents Keys to Success Payment Card Industry (PCI) requirements overview PCI requirements specifically related to MySQL Other thoughts

Keys To Success Responsibility, Ownership, and Accountability Roles (no, not that kind) Procedures and Policies user add/create/modify application and data add/create/modify regular security reviews Documentation Roles Procedures and Policies Change and Review Logs Log of security related actions

Typical Application (Yea right!) Console for Management MySQL

PCI Requirements I Build and Maintain a Secure Network 1. Install and maintain a firewall configuration to protect cardholder data 2. Do not use vendor-supplied defaults for system passwords and other security parameters Protect Cardholder Data 3. Protect stored cardholder data 4. Encrypt transmission of cardholder data across open, public networks

PCI Requirements II Maintain a Vulnerability Management Program 5. Use and regularly update anti-virus software 6. Develop and maintain secure systems and applications Implement Strong Access Control Measures 7. Restrict access to cardholder data by business need-to-know 8. Assign a unique ID to each person with computer access 9. Restrict physical access to cardholder data

PCI Requirements III Regularly Monitor and Test Networks 10.Track and monitor all access to network resources and cardholder data 11. Regularly test security systems and processes Maintain an Information Security Policy 12. Maintain a policy that addresses information security

2. Do not use vendor-supplied defaults for system passwords and other security parameters MySQL installs with 3 or more default accounts: SELECT User, Host, Password from mysql.user ; http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html

3. Protect stored cardholder data I Credit card numbers must be protected (encrypted) if they appear on storage (disk, tape, usb drive, etc.) Related customer data must also be protected if stored with the CC number Best place to encrypt data is in the application Encrypts communication of data Encrypts accidental logging of the data Encrypts data on disk Separates the encryption from the data Consider using a public key on the application and giving the private key to accounting

Typical Application of today (Yea right!) Console for Management MySQL Data Files

3. Protect stored cardholder data II If you have to use MySQL encryption functions be very careful with your : Do not use binary prior to 5.1 Optionally encrypt disk with bin-log Or increase the hardening of the database server Use row-based replication in 5.1 and after Do not turn on general query log Be careful with slow query log Don t log at application or between DB and app, i.e. proxy

3. Protect stored cardholder data II mysql> insert into tab values( aes_encrypt('mypassword', 'mykey')) ; Query OK, 1 row affected (0.00 sec) --------- binary log -------- SET TIMESTAMP=1208148932/*!*/; insert into tab values( aes_encrypt('mypassword', 'mykey'))/*!*/ --------- general query log -------- 080413 23:55:32 6 Query insert into tab values( aes_encrypt('mypassword', 'mykey'))

Typical Application of today (Yea right!) Web App Connection Console for Management MySQL Data Files Bin Log relay Slow Query log Slow Query log

3. Protect stored cardholder data III Public key encryption makes it easier to hide private key, but not practical for all applications. Give only the minimal security access needed for a person to do their job, MySQL has 30 security privileges, learn them and use them! PCI good source - review it! Have a documented policy, follow it, log the security events, and manage security change.

3. Protect stored cardholder data IV Watch the Logs when when you do a GRANT using the mysql command line tool mysql> grant all on *.* to 'me'@'localhost' identified by 'pwd' ; Query OK, 0 rows affected (0.00 sec) 080414 13:47:12 1 Query ----- General Query Log ----- grant all on *.* to 'me'@'localhost' identified by 'pwd' ----- Bin Log ----- grant all on *.* to 'me'@'localhost' identified by 'pwd'/*!*/; -----.mysql_history ----- grant all on *.* to 'me'@'localhost' identified by 'pwd' ;

Typical Application of today (Yea right!) Web App Connection Console for Management MySQL mysql history Data Files Bin Log relay Slow Query log Slow Query log

3. Protect stored cardholder data V Use mysqladmin in special account: mysqladmin -u me --password=pwd password ppp ----- General Query Log ----- 80414 14:05:07 2 Connect me@localhost on 2 Query SHOW VARIABLES LIKE 'old_passwords' 2 Query set sql_log_off=1 2 Quit SET TIMESTAMP=1208199907/*!*/; ----- Bin Log ---- SET PASSWORD FOR 'me'@'localhost'='*9cf9bf8b3b3440167987159a2dcce584d30d92e7'/*!*/; Need to disable history - set -o history Never use mysql -u user -ppassword Write scripts to look at users.bash_history to check

Typical Application of today (Yea right!) Web App Connection Console for Management MySQL mysql history bash history Data Files Bin Log relay Slow Query log Slow Query log

xkcd.com

3. Protect stored cardholder data VI Protection with stored procedures Create stored procedures for all operations and assigned each the minimum privilege it needs to to do its job. Create a separate with only enough privilege to run the stored procedures Minimize security access for all monitoring tools access Protect your encrypted data, the more one has, the easier it is to crack!

4. Encrypt transmission of cardholder data across open, public networks Note the clause open, public networks Can have separate closed dedicated network between application and database Still needs firewall! Already taken care of if you do encryption in the application Use ssl connections

Typical Application of today (Yea right!) Web App Connection Console for Management MySQL mysql history bash history Data Files Bin Log relay Slow Query log Slow Query log

6. Develop and maintain secure systems and applications I Have a regular process for identifying and applying security updates patches http://dev.mysql.com/tech-resources/articles/security_vulnerabilities.html http://forge.mysql.com/wiki/security_vulnerabilities_in_mysql_server Separate roles as much as possible Always perform security reviews for every application change Beware of extern applications that cache database data between the application, i.e memcache

8. Assign a unique ID to each person with computer access MySQL gives no help with: Aging passwords - PCI 90 days (SP) No reuse of the last four passwords (SP) Password quality checking 7+ Chars Alpha and Numeric Don t use valid words: Use phrases - I love to work on databases for MySQL and I think C++ is great becomes Il2woDBfM&ItC++ig8

10. Track and monitor all access to network resources and cardholder data Help coming in 6.0, audit logging plugin. http://forge.mysql.com/worklog/task.php?id=3771 Create script to monitor error log for failed logins and disable accounts based on failures Use triggers to monitor inserts, updates and deletes. Use stored procedures with built-in logging (to a table) to log accesses individual CC data.

Data Security Vulnerabilities Reasons for Vulnerability Bad Policies or processes Bad Design Bad Software Configuration Software Flaws Classes of Vulnerabilities Invalid access - Hackers, corrupt or inept employees Data in motion - Network connection Static data - Disk storage, backups,, etc.

Brian Miezejewski bmiezejewski@mysql.com