Top Banner
copyright 2014 1 Docker, DevOps, Security Chris Swan, CTO @cpswan Cloud native networking
27
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Docker Chicago Meetup - July 2014

copyright 2014 1

Docker, DevOps, Security

Chris Swan, CTO

@cpswan

Cloud native networking

Page 2: Docker Chicago Meetup - July 2014

copyright 2014 2

TL;DR

Dockerfile is awesomely productive

Great for DevOps

Containers don’t contain

At least not yet

Images have a manifest problem

Keep track of your stuff

Page 3: Docker Chicago Meetup - July 2014

copyright 2014 3

Why me?

Page 4: Docker Chicago Meetup - July 2014

copyright 2014 4

Page 5: Docker Chicago Meetup - July 2014

copyright 2014 5

Let’s start with a demo

Page 6: Docker Chicago Meetup - July 2014

copyright 2014 6

Containers don’t contain

Page 7: Docker Chicago Meetup - July 2014

copyright 2014 7

With thanks to Dan Walsh @rhatdan

Watch his DockerCon 2014 presentation at http://is.gd/dcrhdw

Page 8: Docker Chicago Meetup - July 2014

copyright 2014

Shocker

8

The issue

The response

http://stealth.openwall.net/xSports/shocker.c

https://news.ycombinator.com/item?id=7910117

Page 9: Docker Chicago Meetup - July 2014

copyright 2014

Because containers aren’t VMs

and this has yet to come:

9

Page 10: Docker Chicago Meetup - July 2014

copyright 2014

Possible to have our cake and eat it?

10

Page 11: Docker Chicago Meetup - July 2014

copyright 2014

cgroups

11

Page 12: Docker Chicago Meetup - July 2014

copyright 2014

namespaces

mnt mount points, filesystems

pid processes

net network

ipc inter process communication

uts hostname

device devices

user UIDs 12

Page 13: Docker Chicago Meetup - July 2014

copyright 2014

capabilities

Fine grained control over ‘root’ privileges:

• deny all "mount" operations;

• deny access to raw sockets (to prevent packet

spoofing);

• deny access to some filesystem operations, like

creating new device nodes, changing the owner of files,

or altering attributes (including the immutable flag);

• deny module loading;

• etc.

13

Page 14: Docker Chicago Meetup - July 2014

copyright 2014

Mandatory Access Control (MAC):

AppArmor and SELinux

14

Page 15: Docker Chicago Meetup - July 2014

copyright 2014

Containers will contain

• Use of namespaces, capabilities and MAC will

improve • Might be a game of ‘whack a mole’

• Hard to tell when we’re done (is @solomonstre’s word going to

be enough?)

• Libcontainer can drive other mechanisms • More secure options might come

• Hardware support might come • Existing rings 1 & 2 aren’t used much, but aren’t really suitable

• VT-x introduced ring -1, do we need a ring 0.5?

15

Page 16: Docker Chicago Meetup - July 2014

copyright 2014 16

The manifest problem

Page 17: Docker Chicago Meetup - July 2014

copyright 2014

My Dockerfile from earlier

17

Page 18: Docker Chicago Meetup - July 2014

copyright 2014

Each active line creates a layer

18

Base OS

Sources

Update repos

Install nginx

Mod nginx.conf

Mod index.html

Page 19: Docker Chicago Meetup - July 2014

copyright 2014

An image binds layers together

19

Base OS

Sources

Update repos

Install nginx

Mod nginx.conf

Mod index.html

Page 20: Docker Chicago Meetup - July 2014

copyright 2014

Nginx example

The image is the unit of deployment

20

Page 21: Docker Chicago Meetup - July 2014

copyright 2014

Nginx example

What version of nginx is that?

21

Page 22: Docker Chicago Meetup - July 2014

copyright 2014

Nginx example

What version of OpenSSL installed?

22

?

Page 23: Docker Chicago Meetup - July 2014

copyright 2014

Problem 1 – non determinism

Whilst we want this to be cached in the short term:

apt-get install nginx

We perhaps don’t want it cached in the long term

What are those durations?

23

Page 24: Docker Chicago Meetup - July 2014

copyright 2014

2 – the manifest problem

When I run

apt-get install nginx

I don’t know which version of nginx I just got

Should I?

nginx –v > some_log.txt

Or maybe?

apt-cache policy nginx > some_log.txt

24

Page 25: Docker Chicago Meetup - July 2014

copyright 2014 25

TL;DR

Dockerfile is awesomely productive

Great for DevOps

Containers don’t contain

At least not yet

Images have a manifest problem

Keep track of your stuff

Page 26: Docker Chicago Meetup - July 2014

copyright 2014 26

Please give me feedback:

http://is.gd/chdmsf

Page 27: Docker Chicago Meetup - July 2014

copyright 2014 27

Chicago, US

[email protected]

+1 888 444 3962

Questions?