Slide 1

Slide 1 text

DevSec: Continuous Compliance Christoph Hartmann @chri_hartmann | [email protected]

Slide 2

Slide 2 text

@chri_hartmann $> whoami Christoph Hartmann • 8+ years in industry • Deutsche Telekom and SAP • Co-Founded Dev-Sec.io project • Co-Founder of VulcanoSec • InSpec Creator • need for missing compliance solutions • close collaboration with auditors • Acquired by Chef Software • heading engineering for compliance chris-rock

Slide 3

Slide 3 text

Agenda #1 Cyber-Threat Landscape #2 Challenges #3 Compliance-Driven Infrastructure #4 Outlook

Slide 4

Slide 4 text

COMPLIANCE AND SECURITY Compliance Security

Slide 5

Slide 5 text

Cyber-Threat Landscape #1

Slide 6

Slide 6 text

The tip of the iceberg Heartbleed Shellshock WannaCry Cyber-Threat landscape

Slide 7

Slide 7 text

73% Financially motivated 51% Organized Criminal Groups 75% External attacker Verizon Data Breach Report 2017 The tip of the iceberg Cyber-Threat landscape

Slide 8

Slide 8 text

State of Security in 2014 • In 60% of cases, attackers can compromise organizations within minutes. • 99.9% of the exploited vulnerabilities were compromised more than a year after the vulnerability was published. • Ten vulnerabilities account for 97% of the exploits observed. Verizon Data Breach Report

Slide 9

Slide 9 text

OWASP Top 10

Slide 10

Slide 10 text

A5 – Security Misconfiguration Good security requires having a secure configuration defined and deployed for the application, frameworks, application server, web server, database server, platform, etc. Secure settings should be defined, implemented, and maintained, as defaults are often insecure. Additionally, software should be kept up to date. A9 – Using Components with Known Vulnerabilities Components, such as libraries, frameworks, and other software modules, run with the same privileges as the application. If a vulnerable component is exploited, such an attack can facilitate serious data loss or server takeover. Applications and APIs using components with known vulnerabilities may undermine application defenses and enable various attacks and impacts. OWASP Top 10

Slide 11

Slide 11 text

Drivers for Compliance Security Reduce risk and protect business Liability Avoid negligence

Slide 12

Slide 12 text

Surface check #1: Know your security stance

Slide 13

Slide 13 text

Surface check Deep analysis #1: Know your security stance

Slide 14

Slide 14 text

• Operating Systems • DBs, AppServers • Apps • On-prem, Cloud, Hybrid, Containers Deep analysis #1: Know your security stance

Slide 15

Slide 15 text

Faulty assumptions #1: Know your security stance

Slide 16

Slide 16 text

Faulty assumptions #1: Know your security stance

Slide 17

Slide 17 text

• Prevent insecure production env. • Report and alert continuously • Provide proof Faulty assumptions #1: Know your security stance

Slide 18

Slide 18 text

Source: http://content.time.com/time/covers/europe/0,16641,20020708,00.html

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Regulatory Compliance PCI-DSS Gramm-Leach-Bliley Act HIPAA Dodd-Frank ISO Sarbanes-Oxley HITECH Grundschutz European Central Bank Regulations

Slide 22

Slide 22 text

Reporting of compliance activity is extensive EY – A time of evolution for compliance: laying foundations for future success

Slide 23

Slide 23 text

Huge scope remains for tapping into the power of technology EY – A time of evolution for compliance: laying foundations for future success

Slide 24

Slide 24 text

Challenges #2

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

Language Compliance DevOps Security

Slide 28

Slide 28 text

Scale

Slide 29

Slide 29 text

Scale

Slide 30

Slide 30 text

Scale

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

Language Compliance DevOps Security

Slide 33

Slide 33 text

Compliance-Driven Infrastructure #3

Slide 34

Slide 34 text

Tradeoff: Speed vs Risk DevOps teams focus on faster innovation, potentially increasing risk InfoSec teams focus on mitigating risk, potentially reducing speed

Slide 35

Slide 35 text

QUALITY/COMPLIANCE RATE OF INNOVATION Scale Speed and Compliance

Slide 36

Slide 36 text

Let’s talk about solutions github.com/dev-sec

Slide 37

Slide 37 text

Detect Correct Compliance Continuous

Slide 38

Slide 38 text

Works with all DevOps tools e.g.

Slide 39

Slide 39 text

InSpec turns infrastructure testing, compliance and security requirements into code

Slide 40

Slide 40 text

Documentation 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.

Slide 41

Slide 41 text

Scripting tools

Slide 42

Slide 42 text

The better way TESTING A REQUIREMENT

Slide 43

Slide 43 text

Compliance Language

Slide 44

Slide 44 text

Standalone Usage $ inspec exec test.rb $ inspec exec test.rb -i vagrant.key -t ssh://[email protected]:11022 $ inspec exec test.rb -t winrm://[email protected] --password super $ inspec exec test.rb -t docker://3cc8837bb6a8 describe sshd_config do its('Protocol') { should cmp 2 } end

Slide 45

Slide 45 text

Supported Operating Systems

Slide 46

Slide 46 text

apache apache_conf apt audit_policy auditd_conf auditd_rules bash bond bridge bsd_service command crontab csv dh_params directory docker docker_container docker_image etc_group file gem group groups grub_conf host http iis_site iis_website inetd_conf ini interface iptables json kernel_module kernel_parameter key_rsa launchd_service limits_conf login_defs mount mssql_session mysql mysql_conf mysql_session npm ntp_conf oneget oracledb_session os os_env package packages parse_config parse_config_file passwd pip port postgres postgres_conf postgres_session powershell ppa processes rabbitmq_config registry_key runit_service script security_policy service shadow ssh_config sshd_config ssl sys_info systemd_service sysv_service upstart_service user users vbscript windows_feature windows_registry_key windows_task wmi x509_certificate xinetd_conf yaml yum yumrepo zfs_dataset zfs_pool Built-in resources

Slide 47

Slide 47 text

Mapping of Compliance Document to InSpec

Slide 48

Slide 48 text

Manage Baselines My CIS L1 (inspec overlay) CIS Lvl1 (xml base profile)

Slide 49

Slide 49 text

Manage Baseline Overlays Dev Production Test My CIS L1 (inspec overlay) CIS Lvl1 (xml base profile)

Slide 50

Slide 50 text

github.com/dev-sec

Slide 51

Slide 51 text

DevSec Profiles Operating Systems DevSec Linux Baseline DevSec Linux Patch Baseline DevSec Windows Baseline DevSec Windows Patch Baseline DevSec SSH Baseline DevSec SSL/TLS Baseline CIS Distribution Independent Applications DevSec Nginx Baseline DevSec MySQL Baseline DevSec PHP baseline DevSec Apache Baseline DevSec PostgreSQL Baseline Application Runtimes DevSec OpenStack Baseline CIS Docker Benchmark CIS Kubernetes Benchmark

Slide 52

Slide 52 text

InSpec Profiles github.com/dev-sec DevSec Windows Patch Baseline DevSec Linux Baseline DevSec Windows Baseline DevSec Linux Patch Baseline

Slide 53

Slide 53 text

InSpec Profiles github.com/dev-sec github.com/chris-rock/acme-inspec-profile DevSec Windows Patch Baseline DevSec Linux Baseline DevSec Windows Baseline DevSec Linux Patch Baseline

Slide 54

Slide 54 text

InSpec Profiles DevSec Windows Patch Baseline DevSec Linux Baseline DevSec Windows Baseline DevSec Linux Patch Baseline github.com/dev-sec github.com/chris-rock/acme-inspec-profile

Slide 55

Slide 55 text

InSpec Profiles

Slide 56

Slide 56 text

Continuous Compliance Compliance DevOps

Slide 57

Slide 57 text

Continuous Compliance Scan for Compliance Build & Test Locally Build & Test CI/CD Remediate Verify

Slide 58

Slide 58 text

Outlook #4

Slide 59

Slide 59 text

Infrastructure

Slide 60

Slide 60 text

chef/inspec-vmware chef/inspec-azure chef/inspec-aws InSpec for Platforms

Slide 61

Slide 61 text

describe aws_iam_user(’iam_user') do its('has_mfa_enabled?') { should be false } its('has_console_password?') { should be false } end InSpec for AWS

Slide 62

Slide 62 text

describe azure_virtual_machine(name: 'Linux- Internal-VM', resource_group: 'Inspec-Azure') do its('sku') { should eq '16.04.0-LTS' } its('publisher') { should eq 'Canonical' } its('offer') { should eq 'UbuntuServer' } its('size') { should eq 'Standard_DS2_v2' } its('location') { should eq 'westeurope' } its('admin_username') { should eq 'azure' } end InSpec for Azure

Slide 63

Slide 63 text

control 'vmware-7.3.3' do impact 0.7 title 'Ensure that the vSwitch Promiscuous Mode policy is set to reject.' describe vmhost_vswitch(datacenter: 'vm001', host: 'localhost.localdomain',vswitch: 'vSwitch0') do its('allowPromiscuous') { should be false } end end InSpec for VmWare

Slide 64

Slide 64 text

Further Resources inspec.io • Hands on tutorials • Extensive documentation • Code examples dev-sec.io • github.com/dev-sec/linux-baseline • github.com/dev-sec/windows-baseline • github.com/dev-sec/ssh-baseline • github.com/dev-sec/windows-patch-baseline • github.com/dev-sec/linux-patch-baseline

Slide 65

Slide 65 text

@chri_hartmann Christoph Hartmann [email protected]

Slide 66

Slide 66 text

Chef vs InSpec