control, defend, extend securing containerspeople.redhat.com/abach/osaw/files/day2/11...

65
CONFIDENTIAL Designator OpenShift 4.x Architecture Workshop Securing Containers Control, Defend, Extend July 2019

Upload: others

Post on 14-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

CONFIDENTIAL Designator

OpenShift 4.x Architecture WorkshopSecuring Containers Control, Defend, Extend

July 2019

Page 2: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

2

CONTAINERS CHANGE HOW WE DEVELOP, DEPLOY AND MANAGE APPLICATIONS

● Sandboxed application processes on a shared Linux OS kernel

● Simpler, lighter, and denser than virtual machines

● Portable across different environments

● Package my application and all of its dependencies

● Deploy to any environment in seconds and enable CI/CD

● Easily access and share containerized components

INFRASTRUCTURE APPLICATIONS

Page 3: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

3

THEY ALSO CHANGE HOW WE SECURE OUR WORKLOADS

Page 4: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

ELEMENTS OF AN ENTERPRISE CONTAINER SOLUTION

4

OpenShift Application Lifecycle Management(CI/CD)

Build Automation Deployment Automation

Service Catalog(Language Runtimes, Middleware, Databases)

Self-Service

Infrastructure Automation & Cockpit

Networking Storage Registry Logs & Metrics

Security

Container Orchestration & Cluster Management(kubernetes)

Container Runtime & Packaging(Docker)

Enterprise Container Host

Red Hat Enterprise LinuxAtomic Host

Page 5: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

5

Container Content

Container Registry

CI/CD Pipeline

Deployment Policies

Security Ecosystem

Container Host Multi-tenancyContainer Platform

Network Isolation Storage

Audit & Logging API Management

AUTOMATED & INTEGRATED SECURITY

CONTROLApplication

Security

DEFENDInfrastructure

EXTEND

Page 6: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

CONTROLSecure the Pipeline & the Applications

Container Content

Container Registry

CI/CD Pipeline

Deployment Policies

Page 7: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

7

CIPrivate Registry

External Images

TrustedContent

CD

UnknownContent Git

Content Metadata

ImageStream Events

SECURE THE CONTAINER LIFECYCLE

Page 8: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

8

● Are the container images signed?

● Are the runtime and OS layers up to date?

● How frequently will the container be updated and how will I know when it’s updated?

CONTENT: USE TRUSTED SOURCES

Red Hat rebuilds container images when security fixes are released

External Images

Page 9: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

9

CONTENT: CONTAINER HEALTH INDEX

https://access.redhat.com/articles/2803031

External Images

Page 10: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

CONTENT: SIGNED IMAGES FROM RED HAT

● Cryptographically verifying that images have come from Red Hat

● Assure provenance and integrity

● Enable non-repudiation

● Red Hat images are signed using Hardware Security Modules (HSMs)

External Images

Page 11: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

● Manage access to and promotion of images

● Metadata to automate policies for approved use (e.g. dev, test, UAT, production)

● Monitor changes to external sources

● Manage image signatures for your custom containers

PRIVATE REGISTRIES: SECURE ACCESS TO IMAGES

INTEGRATEDIMAGE

REGISTRY

DEVELOPERGIT

SERVERARTIFACT

REPOSITORY

OPENSHIFT CI/CD PIPELINE (JENKINS)

INTEGRATEDIMAGEREGISTRY

PROMOTETO PROD

NON-PROD DEV TEST UAT

☒ ☑

PROMOTETO UAT

PROMOTETO TEST

IMAGE BUILD & DEPLOY

PROD

ARTIFACT REPOSITORY

Content MetadataImageStream Events

Private Registry

-Artifactory-Nexus-Quay

Page 12: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

12

RED HAT CONTAINER REGISTRYLOCAL AND SECURE WITH RBAC

Private Registry

Page 13: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

13

IS YOUR REGISTRY SECURE & AVAILABLE?Private Registry

Page 14: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

14

RESTRICT WHERE YOUR CONTAINERS COME FROM

- name: allow-images-from-internal-registry onResources: - resource: pods - resource: builds matchIntegratedRegistry: false - name: allow-images-from-dockerhub onResources: - resource: pods - resource: builds matchRegistries: - docker.io

Private Registry

Page 15: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

15

CONTINUOUS INTEGRATION MUST INCLUDE SECURITY GATES

UNITTEST

CODEQUAL

VULN SCAN

INTTEST

QAUAT

-Cucumber-Arquillian-Junit

-Sonarqube-Fortify

● Integrate security testing into your build / CI process

● Use automated policies to flag builds with issues

● Trigger automated rebuilds ● Sign your custom container

images● Design for separation of

concerns

OPENSHIFT CI/CD PIPELINE (JENKINS) PROMOTE

TO PROD

☒ ☑

PROMOTETO UAT

PROMOTETO TEST

IMAGE BUILD & DEPLOY

CI

-AtomicScan-AquaSecurity-Blackduck-Clair-Sonatype-Twistlock

Page 16: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

16

CI JENKINS-AS-A-SERVICE ON OPENSHIFT

● Certified Jenkins images with pre-configured plugins○ Provided out-of-the-box○ Follows Jenkins 1.x and 2.x LTS versions

● Jenkins S2I Builder for customizing the image○ Install Plugins○ Configure Jenkins○ Configure Build Jobs

● OpenShift plugins to integrate authentication with OpenShift and also CI/CD pipelines

● Dynamically deploys Jenkins slave containers

PluginsJobs

Configuration

Jenkins(S2I)

CustomJenkinsImage

JenkinsImage

Page 17: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

17

CI

APPLICATIONIMAGE

CONTINUOUS DELIVERY PIPELINE

DEV TEAM GIT SERVER ARTIFACT REPOSITORY

JENKINSIMAGE BUILD

● S2I build from source code● S2I build from app binary● Existing docker container image

build process

Page 18: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

18

CI EXAMPLE: SMALL LEAN RUNTIMES

DOCKER BUILDCUSTOM GO BUILD

CustomGo S2IBuilder Image

ScratchImage

Build the app binary and deploy on small scratch images

read more on https://blog.openshift.com/chaining-builds/

app

How to use a non-builderimage for the final application image

Page 19: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

19

OR BRING YOUR OWN CI & DESIGN FOR SEPARATION OF CONCERNS

Operations Architects Application developers

CI

Page 20: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

20

● Monitor image registry to automatically replace affected images

● Enforce signatures at node level via signing trust policy

● Use policies to gate what can be deployed: e.g. if a container requires root access, prevent deployment

● Trust is temporal; rebuild & redeploy as needed

MANAGING CONTAINER DEPLOYMENT

INTEGRATEDIMAGE

REGISTRY

OPENSHIFTCLUSTER

DEVELOPERGIT

SERVERARTIFACT

REPOSITORY

OPENSHIFT CI/CD PIPELINE (JENKINS) IMAGE BUILD

& DEPLOY

INTEGRATEDIMAGEREGISTRY

OPENSHIFTCLUSTER

GOLIVE?

PROMOTETO TEST

PROMOTETO UAT

PROMOTETO PROD

RELEASE MANAGER

NON-PROD PRODDEV TEST UAT

☒ ☑

ServiceNowJIRA Service DeskZendeskBMC Remedy

CD

Page 21: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

21

CONTAINER DEPLOYMENT PERMISSIONS:Security Context Constraints

CD

Page 22: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

22

REST ENDPOINT FOR SIGNATURES

READ:PUT /extensions/v2/{namespace}/{name}/signatures/{digest}$ curl http://<user>:<token>@<registry-endpoint>:5000/extensions/v2/<namespace>/<name>/signatures/sha256:<digest>

JSON:{ "version": 2, "type": "atomic", "name": "sha256:4028782c08eae4a8c9a28bf661c0a8d1c2fc8e19dbaae2b018b21011197e1484@cddeb7006d914716e2728000746a0b23", "content": "<base64 encoded signature>",}

WRITE:GET /extensions/v2/{namespace}/{name}/signatures/{digest}$ curl http://<user>:<token>@<registry-endpoint>:5000/extensions/v2/<namespace>/<name>/signatures/sha256:<digest>

JSON:{ "signatures": [ { "version": 2, "type": "atomic", "name": "sha256:4028782c08eae4a8c9a28bf661c0a8d1c2fc8e19dbaae2b018b21011197e1484@cddeb7006d914716e2728000746a0b23", "content": "<base64 encoded signature>", } ]}

Content Metadata

CD

Page 23: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

23

VALIDATE IMAGE SIGNATURES

# Verify the image and save the result back to image stream$ oadm verify-image-signature sha256:c13060b74c0348577cbe07dedcdb698f7d893ea6f74847154e5ef3c8c9369b2c \ --expected-identity=172.30.204.70:5000/test/origin-pod:latest --save --as=system:adminsha256:c13060b74c0348577cbe07dedcdb698f7d893ea6f74847154e5ef3c8c9369b2c signature 0 is verified (signed by key: "172B61E538AAC0EE")

Content Metadata

CD

Page 24: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

24

VULNERABLE? CLOUDFORMS TAKES ACTION!

Content Metadata

CD

Page 25: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

25

VULNERABLE? CLOUDFORMS TAKES ACTION!

Content Metadata

CD

Page 26: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

26

VULNERABLE? CLOUDFORMS TAKES ACTION!

Content Metadata

CD

Page 27: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

27

CloudForms sets the following annotations to prevent the image from running.

image.openshift.io/deny-execution: trueopenshift.io/image.managed: truesecurity.manageiq.org/failed-policy: openscap policy

VULNERABLE? CLOUDFORMS TAKES ACTION!

Content Metadata

CD

Page 28: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

28

VULNERABLE? CLOUDFORMS TAKES ACTION!

Content Metadata

CD

Page 29: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

29

GET UPDATED IMAGEContent Metadata

ImageStream Events

Page 30: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

30

CIPrivate Registry

External Images

TrustedContent

CD

UnknownContent Git

Content Metadata

ImageStream Events

AUTOMATE THE CONTENT LIFECYCLETrust is temporal; rebuild and redeploy as needed

Page 31: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

DEFENDSecure the Infrastructure

Container Host Multi-tenancyContainer Platform

Network Isolation Storage

Audit & Logging API Management

Page 32: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

RED HAT ENTERPRISE LINUX ATOMIC HOST

Minimized host environment tuned for running Linux containers while maintaining the built-in security features of Red Hat Enterprise Linux..

A stable, reliable host environment with built-in security features that allow you to isolate containers from other containers and from the kernel.

32

CONTAINER HOST & MULTI-TENANCY THE OS MATTERS

SELinux Kernel namespaces Cgroups Capabilities

RED HAT ENTERPRISE LINUX

THE FOUNDATION FOR SECURE, SCALABLE CONTAINERS

R/O Mounts

Page 33: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

33

SELINUX - MAC - MCS

● SElinux is a LABELING system● Every Process has a Label● Every file, Directory, System object has a Label● Policy rules control access between labeled processes and labeled

objects● The Kernel enforces the rules

Page 34: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

34

SELINUX - MAC - MCS - Process

system_u:system_r:container_runtime_t:s0

SElinux Policy module for the container

The OOTB SElinux policy container.te defines what you can execute and access with the label container_runtime_t

[root@osemaster ~]# ps -efZ | grep docker-containerd-shim-currentsystem_u:system_r:container_runtime_t:s0 root 3035 1479 0 Feb15 ? 00:00:01 /usr/bin/docker-containerd-shim-current 4d254785cbc6ee7aae8facc48555251e2385f65d89553b319b6324b1501e4b16 /var/run/docker/libcontainerd/4d254785cbc6ee7aae8facc48555251e2385f65d89553b319b6324b1501e4b16 /usr/libexec/docker/docker-runc-current

Page 35: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

35

SELINUX - MAC - MCS - Files

container_var_lib_t / svirt_sandbox_file_t

SElinux Policy module for the container

[root@osemaster ~]# ls -lZ /var/lib/docker/containers/97de4217a04b6532e312cfb3e4638529aeb7dfa281a2cc067e092fcee82e6737/-rw-r-----. root root system_u:object_r:container_var_lib_t:s0 97de4217a04b6532e312cfb3e4638529aeb7dfa281a2cc067e092fcee82e6737-json.log-rw-rw-rw-. root root system_u:object_r:container_var_lib_t:s0 config.v2.json-rw-rw-rw-. root root system_u:object_r:container_var_lib_t:s0 hostconfig.json-rw-r--r--. root root system_u:object_r:svirt_sandbox_file_t:s0 hostname-rw-r--r--. root root system_u:object_r:svirt_sandbox_file_t:s0:c0,c1 hosts-rw-r--r--. root root system_u:object_r:svirt_sandbox_file_t:s0 resolv.conf-rw-r--r--. root root system_u:object_r:container_var_lib_t:s0 resolv.conf.hashdrwxr-xr-x. root root system_u:object_r:svirt_sandbox_file_t:s0:c0,c1 secretsdrwx------. root root system_u:object_r:container_var_lib_t:s0 shm

Page 36: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

36

SELINUX TO THE RESCUE

On-entry container attack - CVE-2016-9962

On Red Hat systems with SELinux enabled, the dangers of even privileged containers are mitigated. SELinux prevents container processes from accessing host content even if those container processes manage to gain access to the actual file descriptors.

Page 37: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

37

NAMESPACESProcess Isolation

Mount UTS IPC PID Network

Namespaces

User

New in RHEL 7.4

Page 38: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

38

CGROUPS - Resource Isolation

CPU Memory Network Storage / IO

Container 1 slice

Container 2 slice

Page 39: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

39

CAP_SETPCAPCAP_SYS_MODULECAP_SYS_RAWIOCAP_SYS_PACCTCAP_SYS_NICECAP_SYS_RESOURCECAP_SYS_TIMECAP_SYS_TTY_CONFIGCAP_AUDIT_WRITECAP_AUDIT_CONTROLCAP_MAC_OVERRIDECAP_MAC_ADMINCAP_SYSLOGCAP_NET_ADMINCAP_SYS_ADMIN

Modify process capabilitiesInsert/Remove kernel modulesModify Kernel MemoryConfigure process accountingModify Priority of processesOverride Resource LimitsModify the system clockConfigure tty devicesWrite the audit logConfigure Audit SubsystemIgnore Kernel MAC PolicyConfigure MAC ConfigurationModify Kernel printk behaviourConfigure the network:

- Setting the hostname/domainname- mount(),unmount()- nfsservctl- ….

CAPABILITIES - DROPPING PRIVILEGES

Page 40: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

40

A root user inside a container running in OpenShift has none of the previous capabilities available!

CAPABILITIES - DROPPING PRIVILEGES

Page 41: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

41

READ ONLY MOUNTS

/sys

/proc/sys

/proc/sysrg-trigger

/proc/irq

/proc/bus

Page 42: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

42

Use a container orchestration platform with integrated security features including

● Role-based Access Controls with LDAP and OAuth integration

● Secure communication● Platform multitenant security● Integrated & extensible secrets management● Logging, Monitoring, Metrics● Enable integration with the security

ecosystem

SECURING THE CONTAINER PLATFORM

Page 43: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

X509

43

10101010101010101010101010101010101010101010101010101010101011010

Quotaetcd etcd

AUTHENTICATION & AUTHORIZATION (Master)

Page 44: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

44

OpenShift includes an OAuth server, which does three things:

● Identifies the person requesting a token, using a configured identity provider

● Determines a mapping from that identity to an OpenShift user○ Allows multiple identities to map to the same OpenShift user○ Allows deconflicting between identity provider roles

● Issues an OAuth access token which authenticates that user to the API

OAUTH API AUTHENTICATION

Page 45: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

45

● Matches request attributes (verb,object,etc)● If no roles match, request is denied ( deny by default )● Operator- and user-level roles are defined by default● Custom roles are supported

API ROLE-BASED AUTHORIZATION

Page 46: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

46

End to End Two Way SSL Encryption

https://developers.redhat.com/blog/2017/01/24/end-to-end-encryption-with-openshift-part-1-two-way-ssl/

SECURE COMMUNICATION

Page 47: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

47

PLATFORM MULTITENANCY

Node 1east

Node 2east

Node 1west

Node 2west

Master / Scheduler

$ oadm new-project myproject \ --node-selector='type=user-node,region=east'

pod pod

Isolate Workloads by Node

Page 48: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

48

SECRETS MANAGEMENT

● Etcd secrets encrypted by default● Flexvolume API supported for easier

integration with 3rd party vault solutions● Use Node Authorizer & Node Restriction

Admission to prevent Pods from gaining access to secrets, configMaps, PV, PVC or API objects from other nodes

NO PHISHINGALLOWED

# oadm policy remove-cluster-role-from-group system:node system:nodes

Page 49: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

49

LOGGING & AUDIT: EFK STACK

ElasticSearch, Fluentd, Kibana

● Event system with log aggregation● All login, docker, Master events ● All API calls● Use for ad hoc analytics and post

mortem forensics● Tech preview Central Audit policyFile

or policyConfiguration available with 3.7

Page 50: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

50

Use network namespaces to

● Isolate applications from other applications within a cluster

● Isolate environments (Dev / Test / Prod) from other environments within a cluster

NETWORK DEFENSE

Page 51: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

OVS - SUBNET / Reverse Proxy

OpenShift Routing Layer

OVS Bridge

Mas

ter 1

Route:Jboss.app.redhat.com:80 ->Endpoints:10.129.0.2:808010.129.0.4:8080

Route:hrm.app.redhat.com:443 ->Endpoints:10.129.0.23:844310.129.0.24:8443

Nod

e 1

OVS Bridge

jboss-pod10.129.0.2:8080

lbr

lbr

brX

brX

vxlan

hrm-pod10.129.0.23:8443

lbr

VNID 0 VNID 0

VNID 0VNID 0

51

optional

Page 52: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

OVS - MULTITENANT

OpenShift Routing Layer

OVS Bridge

Mas

ter 1

Route:Jboss.app.redhat.com:80 ->Endpoints:10.129.0.2:808010.129.0.4:8080

Route:hrm.app.redhat.com:443 ->Endpoints:10.129.0.23:844310.129.0.24:8443

Nod

e 1

OVS Bridge

jboss-pod10.129.0.2:8080

lbr

lbr

brX

brX

vxlan

hrm-pod10.129.0.23:8443

lbr

Proj

ect 1

Proj

ect 2

VNID 50 VNID 60

VNID 60VNID 50

52

Page 53: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

53

NETWORK POLICY: FINE GRAINED ISOLATION

401k

bonuses

rsu

project-finance

type: money

rainyday

webserver

sales

service

project-crm

type: crm

marketing

tcp/8080 tcp/443

kind: NetworkPolicyapiVersion: extensions/v1beta1metadata: name: allow-to-rsuspec: podSelector: matchLabels: type: rsu ingress: - {}

Page 54: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

54

NETWORK DEFENSE: EGRESS ROUTER

The OpenShift egress router runs a service that redirects egress pod traffic to one or more specified remote servers, using a pre-defined source IP address that can be whitelisted on the remote server. The egress router can also be run as a proxy.

NODEIP1

EGRESSROUTER

PODIP1

EGRESS SERVICE

INTERNAL-IP:8080

EXTERNAL SERVICE

Whitelist: IP1

POD

POD

POD

...- name: EGRESS_DESTINATION value: | 80 tcp 1.2.3.4 8080 tcp 5.6.7.8 80 8443 tcp 9.10.11.12 443 13.14.15.16...

Page 55: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

55

NETWORK DEFENSE: X509 Certificates

Secures cluster communications

● Encryption between all Master and Node hosts (L3)

● Uses OpenShift CA and existing certificates

● Simple setup via policy defn○ Groups (e.g. subnets)○ Individual hosts

Master

P1

Nodes

P2

172.16.0.0/16

Page 56: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

56

Secure storage by using

● SELinux access controls● Secure mounts● Supplemental group IDs for

shared storage

ATTACHED STORAGE

Page 57: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

57

STORAGE ISOLATION

Admin provisions storage User requests storage Claim usage

Page 58: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

58

STORAGE ISOLATION

SCC access Layer

supplementalGroups fsGroup runAsUserseLinuxOption

Create app with storage

Check for UID/GIDfor access to shared storage?

Is the pod’s "file system group" ID correct for the block storage?

Is the seLinuxContext user, role,type set and is this user allowed to mount it?

What is the RunAsUser or MustRunAsRange?

Page 59: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

59

Container platform & application APIs

● Authentication and authorization● LDAP integration● End-point access controls● Rate limiting

API MANAGEMENT

Page 60: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

EXTENDLeverage the Ecosystem

Page 61: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

61

For enhanced security, or to meet existing policies, integrate with enterprise security tools, such as

THE SECURITY ECOSYSTEM

● Identity and Access management / Privileged Access Management● External Certificate Authorities● External Vaults / Key Management solutions● Container content scanners & vulnerability management● Container runtime analysis & intrusion detection● Security Information and Event Monitoring (SIEM)

Page 63: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

BRINGING IT ALL TOGETHER

63

OpenShift Application Lifecycle Management(CI/CD)

Build Automation Deployment Automation

Service Catalog(Language Runtimes, Middleware, Databases)

Self-Service

Infrastructure Automation & Cockpit

Networking Storage Registry Logs & Metrics

Security

Container Orchestration & Cluster Management(kubernetes)

Container Runtime & Packaging(Docker)

Enterprise Container Host

Red Hat Enterprise LinuxAtomic Host

CONTROL

DEFEND

EXTEND

Page 64: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

ADDITIONAL RESOURCES

Ten Layers of Container SecurityOpenshift Security GuideContainer Image Signing Integration Guide

Page 65: Control, Defend, Extend Securing Containerspeople.redhat.com/abach/OSAW/FILES/DAY2/11 Securing... · production) Monitor changes to external sources Manage image signatures for your

CONFIDENTIAL Designator

Thank you !