compliance as code with inspec - devops melbourne 2017

58
Compliance as Code DevOps Melbourne March 28, 2017

Upload: matt-ray

Post on 11-Apr-2017

114 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Compliance as Code with InSpec - DevOps Melbourne 2017

Compliance as CodeDevOps Melbourne

March 28, 2017

Page 2: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 3: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 4: Compliance as Code with InSpec - DevOps Melbourne 2017

Chef Workflow

Page 5: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 6: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 7: Compliance as Code with InSpec - DevOps Melbourne 2017

SSH Control

"SSH supports two different protocol versions. The original version, SSHv1, was subject to a number of security issues. Please use SSHv2 instead to avoid these."

Page 8: Compliance as Code with InSpec - DevOps Melbourne 2017

How will I verify this?

Page 9: Compliance as Code with InSpec - DevOps Melbourne 2017

Whip up a one-liner!

grep "^Protocol" /etc/ssh/sshd_config | sed 's/Protocol //'

Page 10: Compliance as Code with InSpec - DevOps Melbourne 2017

Apache Server Information Leakage

• Description

This Directive Controls wheather Server response field is sent back to clients includes a description of Generic OS Type of the Server.

This allows attackers to identify web servers details greatly and increases the efficiency of any attack,as security vulnerabilities are dependent upon specific software versions.

• How to Test

In order to test for ServerToken configuration, one should check the Apache configuration file.

• Misconfiguration

ServerTokens Full

• Remediation

Configure the ServerTokens directive in the Apache configuration to value of Prod or ProductOnly. This tells Apache to only return "Apache" in the Server header, returned on every page request.

ServerTokens ProdorServerTokens ProductOnly

https://www.owasp.org/index.php/SCG_WS_Apache

Page 11: Compliance as Code with InSpec - DevOps Melbourne 2017

More grep and sed!

grep "^ServerTokens" /etc/httpd/conf/httpd.conf | sed 's/ServerTokens //'

Page 12: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 13: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 14: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 15: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 16: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 17: Compliance as Code with InSpec - DevOps Melbourne 2017

Compliance

Page 18: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 19: Compliance as Code with InSpec - DevOps Melbourne 2017

Two-thirds of organizations did not adequately test the security of all in-scope systems

Page 20: Compliance as Code with InSpec - DevOps Melbourne 2017

Key Trends

• While individual rule compliance is up, testing of security systems is down

• Sustainability is low. Fewer than a third of companies were found to be still fully compliant less than a year after successful validation.

Page 21: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 22: Compliance as Code with InSpec - DevOps Melbourne 2017

Shell Scripts

grep "^Protocol" /etc/ssh/sshd_config | sed 's/Protocol //'grep "^ServerTokens" /etc/httpd/conf/httpd.conf | sed 's/ServerTokens //'

Page 23: Compliance as Code with InSpec - DevOps Melbourne 2017

Infrastructure Code

package 'httpd' doaction :install

end

service 'httpd' doaction [ :start, :enable ]

end

Page 24: Compliance as Code with InSpec - DevOps Melbourne 2017

We Have A Communications Problem

Page 25: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 26: Compliance as Code with InSpec - DevOps Melbourne 2017

Security != Compliance

Page 27: Compliance as Code with InSpec - DevOps Melbourne 2017

Secure

Compliant

Page 28: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 29: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 30: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 31: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 32: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 33: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 34: Compliance as Code with InSpec - DevOps Melbourne 2017

Compliance Language

Page 35: Compliance as Code with InSpec - DevOps Melbourne 2017

One LanguageLinux

Page 36: Compliance as Code with InSpec - DevOps Melbourne 2017

One LanguageLinux, Windows

Page 37: Compliance as Code with InSpec - DevOps Melbourne 2017

Windows

Page 38: Compliance as Code with InSpec - DevOps Melbourne 2017

One LanguageLinux, Windows, BSD, Solaris, AIX, ...

Page 39: Compliance as Code with InSpec - DevOps Melbourne 2017

Examples of Available Resourcesapache_conf

apt

audit_policy

auditd_conf

auditd_rules

bond

bridge

Command

crontab

directory

etc_group

file

gem

group

host

inetd_conf

interface

iptables

kernel_module

kernel_parameter

limits_conf

login_defs

mount

mysql_conf

mysql_session

npm

ntp_conf

oneget

os

os_env

package

parse_config

parse_config_file

passwd

pip

port

postgres_conf

postgres_session

powershell

processes

registry_key

security_policy

service

ssh_config

sshd_config

user

windows_feature

yum

Page 40: Compliance as Code with InSpec - DevOps Melbourne 2017

What is it not?

• IDS / IPS• Firewall• Antivirus• Pentesting tool

Page 41: Compliance as Code with InSpec - DevOps Melbourne 2017

One LanguageLinux, Windows, BSD, Solaris, AIX, ...

Bare-metal

Page 42: Compliance as Code with InSpec - DevOps Melbourne 2017

One LanguageLinux, Windows, BSD, Solaris, AIX, ...

Bare-metal, VMs

Page 43: Compliance as Code with InSpec - DevOps Melbourne 2017

One LanguageLinux, Windows, BSD, Solaris, AIX, ...

Bare-metal, VMs, Containers

Page 44: Compliance as Code with InSpec - DevOps Melbourne 2017

One LanguageLinux, Windows, BSD, Solaris, AIX, ...

Bare-metal, VMs, Containers

Nodes

Page 45: Compliance as Code with InSpec - DevOps Melbourne 2017

One LanguageLinux, Windows, BSD, Solaris, AIX, ...

Bare-metal, VMs, Containers

Nodes, GRUB, DBs

Page 46: Compliance as Code with InSpec - DevOps Melbourne 2017

DB Testing

Page 47: Compliance as Code with InSpec - DevOps Melbourne 2017

One LanguageLinux, Windows, BSD, Solaris, AIX, ...

Bare-metal, VMs, Containers

Nodes, GRUB, DBs, Endpoints, APIs, ...

Page 48: Compliance as Code with InSpec - DevOps Melbourne 2017

Cloud Testing

Page 49: Compliance as Code with InSpec - DevOps Melbourne 2017

InSpec

> inspec exec test.rb

Test a machine remotely via SSH

> inspec exec test.rb -i identity.key -t ssh://[email protected]

Test your machine locally

> inspec exec test.rb -t winrm://[email protected] --password super

Test Docker Container

> inspec exec test.rb -t docker://5cc8837bb6a8

Test a machine remotely via WinRM AG

EN

TL

ESS

Page 50: Compliance as Code with InSpec - DevOps Melbourne 2017

Operating System & Application Coverage

• Microsoft Windows• Microsoft Windows Server• Red Hat Enterprise Linux• Ubuntu Linux• SUSE Linux Enterprise Server• Oracle Enterprise Linux• AIX• HP-UX• Solaris

• VMware ESXi• MySQL• Oracle • PostgreSQL• Tomcat• SQL Server• IIS• HTTP request

Page 51: Compliance as Code with InSpec - DevOps Melbourne 2017

Scan for Compliance

Build & Test Locally

Build & Test CI/CD Remediate Verify

New Workflow

Page 52: Compliance as Code with InSpec - DevOps Melbourne 2017

Detect Correct

Continuous Workflow

Page 53: Compliance as Code with InSpec - DevOps Melbourne 2017

CONTINUOUS COMPLIANCE AUTOMATION

InSpec - Part of your InfoSec toolchain

FIREWALL ANTIVIRUS

INTRUSION DETECTION/PREVENTION

PENETRATIONTESTING

Page 54: Compliance as Code with InSpec - DevOps Melbourne 2017

Open Source Community

•InSpec•https://inspec.io•Chef Audit cookbook•https://github.com/chef-cookbooks/audit•Kitchen-InSpec•https://github.com/chef/kitchen-inspec•Supermarket.chef.io

Page 55: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 56: Compliance as Code with InSpec - DevOps Melbourne 2017

The Chef Automate PlatformContinuous Automation for High Velocity IT

Workflow • Local development • Integration • Tooling (APIs & SDKs)

COLLABORATE

▪ Package▪ Test▪ Approve

BUILD▪ Provision▪ Configure▪ Execute▪ Update

DEPLOY▪ Secure▪ Comply▪ Audit▪ Measure▪ Log

MANAGE

Infrastructure Automation Compliance AutomationApplication Automation

OSS AUTOMATION ENGINES

Increase Speed

▪ Package infrastructure and app configuration as code

▪ Continuously automate infrastructure and app updates

Improve Efficiency

▪ Define and execute standard workflows and automation

▪ Audit and measure effectiveness of automation

Decrease Risk

▪ Define compliance rules as code

▪ Deliver continuous compliance as part of standard workflow

Page 57: Compliance as Code with InSpec - DevOps Melbourne 2017
Page 58: Compliance as Code with InSpec - DevOps Melbourne 2017