ISLET: Jon Schipp, AIDE jonschipp.com. An Attempt to Improve Linux-based Software Training

Similar documents
Travis Cardwell Technical Meeting

SAINT LOUIS JAVA USER GROUP MAY 2014

Devops, Docker and Security. John

OS Virtualization. Linux Containers (LXC)

Lecture 09: VMs and VCS head in the clouds

The Bro Network Security Monitor

OS Containers. Michal Sekletár November 06, 2016

Splunk N Box. Splunk Multi-Site Clusters In 20 Minutes or Less! Mohamad Hassan Sales Engineer. 9/25/2017 Washington, DC

[Docker] Containerization

Introduction to Container Technology. Patrick Ladd Technical Account Manager April 13, 2016

Docker A FRAMEWORK FOR DATA INTENSIVE COMPUTING

Engineering Robust Server Software

Microservice Deployment. Software Engineering II Sharif University of Technology MohammadAmin Fazli

High Performance Containers. Convergence of Hyperscale, Big Data and Big Compute

The four forces of Cloud Native

Docker for HPC? Yes, Singularity! Josef Hrabal

Docker Deep Dive. Daniel Klopp

Virtualizaton: One Size Does Not Fit All. Nedeljko Miljevic Product Manager, Automotive Solutions MontaVista Software

Containerizing GPU Applications with Docker for Scaling to the Cloud

Docker and Oracle Everything You Wanted To Know

Introduction to Virtualization and Containers Phil Hopkins

What Makes Up the Modern Linux OS?

Spring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand

An introduction to Docker

Simple custom Linux distributions with LinuxKit. Justin Cormack

Portable, lightweight, & interoperable Docker containers across Red Hat solutions

ViryaOS RFC: Secure Containers for Embedded and IoT. A proposal for a new Xen Project sub-project

64-bit ARM Unikernels on ukvm

Using Linux Containers as a Virtualization Option

Flip the Switch to Container-based Clouds

TECHNICAL BRIEF. Scheduling and Orchestration of Heterogeneous Docker-Based IT Landscapes. January 2017 Version 2.0 For Public Use

Think Small to Scale Big

containerization: more than the new virtualization

Module 1: Virtualization. Types of Interfaces

Getting to Know Apache CloudStack

FreeBSD Jails vs. Solaris Zones

ovirt and Docker Integration

Deployment Patterns using Docker and Chef

Software containers are likely to become a very important tool over the

Getting Started With Containers

Quick Prototyping+CI with LXC and Puppet

SOFT CONTAINER TOWARDS 100% RESOURCE UTILIZATION ACCELA ZHAO, LAYNE PENG

AZURE CONTAINER INSTANCES

EE 660: Computer Architecture Cloud Architecture: Virtualization

Cloud and Datacenter Networking

Rok: Decentralized storage for the cloud native world

Operating system hardening

, Inc

Virtualization. ...or how adding another layer of abstraction is changing the world. CIS 399: Unix Skills University of Pennsylvania.

Kubernetes The Path to Cloud Native

LSST software stack and deployment on other architectures. William O Mullane for Andy Connolly with material from Owen Boberg

Real world Docker applications

Allowing Users to Run Services at the OLCF with Kubernetes

Table of Contents 1.1. Introduction. Overview of vsphere Integrated Containers 1.2

CONTAINERIZING JOBS ON THE ACCRE CLUSTER WITH SINGULARITY

Operating and managing an Atomic container-based infrastructure

IBM Bluemix compute capabilities IBM Corporation

Multi-Arch Layered Image Build System

Introduction to Containers

CS-580K/480K Advanced Topics in Cloud Computing. Container III

Rancher Part 4: Using the Catalog Example with GlusterFS

Linux Containers Roadmap Red Hat Enterprise Linux 7 RC. Bhavna Sarathy Senior Technology Product Manager, Red Hat

Microservices a security nightmare? GOTO Nights Zürich - March 3, 2016 Maximilian Container Solutions Switzerland

Table of Contents 1.1. Overview. Containers, Docker, Registries vsphere Integrated Containers Engine

/ Cloud Computing. Recitation 5 February 14th, 2017

Introduction to containers

Virtualization. Starting Point: A Physical Machine. What is a Virtual Machine? Virtualization Properties. Types of Virtualization

Making Immutable Infrastructure simpler with LinuxKit. Justin Cormack

Virtualization. ! Physical Hardware Processors, memory, chipset, I/O devices, etc. Resources often grossly underutilized

Docker 101 Workshop. Eric Smalling - Solution Architect, Docker

Getting started with LXD

Glauber Costa, Lead Engineer

1 Virtualization Recap

RDMA Container Support. Liran Liss Mellanox Technologies

Zdeněk Kubala Senior QA

Docker und IBM Digital Experience in Docker Container

UP! TO DOCKER PAAS. Ming

LINUX Virtualization. Running other code under LINUX

CHAPTER 16 - VIRTUAL MACHINES

State of Containers. Convergence of Big Data, AI and HPC

The Post-Cloud. Where Google, DevOps, and Docker Converge

IBM Research Report. A Comparison of Virtualization Technologies for Use in Cloud Data Centers

Xen Summit Spring 2007

LINUX CONTAINERS. Where Enterprise Meets Embedded Operating Environments WHEN IT MATTERS, IT RUNS ON WIND RIVER

October 23, CERN, Switzerland. BOINC Virtual Machine Controller Infrastructure. David García Quintas. Introduction. Development (ie, How?

Chapter 5 C. Virtual machines

OpenStack Havana All-in-One lab on VMware Workstation

Important DevOps Technologies (3+2+3days) for Deployment

SUSE An introduction...

Docker and Security. September 28, 2017 VASCAN Michael Irwin

Container Adoption for NFV Challenges & Opportunities. Sriram Natarajan, T-Labs Silicon Valley Innovation Center

iems Interactive Experiment Management System Final Report

Faculté Polytechnique

Alternatives to Solaris Containers and ZFS for Linux on System z

RStudio in Docker. Mark McCahill OIT. Monday, September 15, 14

CS 470 Spring Virtualization and Cloud Computing. Mike Lam, Professor. Content taken from the following:

Asterisk & the Docker revolution Some lessons from the trenches

Simplified CICD with Jenkins and Git on the ZeroStack Platform

InstallAnywhere: Requirements

TEN LAYERS OF CONTAINER SECURITY. Kirsten Newcomer Security Strategist

Transcription:

ISLET: An Attempt to Improve Linux-based Software Training Jon Schipp, AIDE 2015 jonschipp@gmail.com, @Jonschipp, jonschipp.com

About me: Security Engineer for the National Center for Supercomputing Applications

Project Contributions: Netsniff-NG Toolkit SecurityOnion Bro Team

Text Open Network Security Monitoring Group Weekly meetings with presentations, open to all irrespective of location. http://open-nsm.net

The Problem

Problems: Who s directly affected? User/Admin/Everyone Too much time is spent distributing, downloading, or copying Virtual Machines and other materials. 1.) Conference networks are slow and VM files are big Technical difficulties can occur and often do that end up putting some behind the group 1.) Hypervisor compatibility e.g. Virtualbox, VMware, etc. 2.) VM bus and network configuration Account management is repetitive and time consuming Changes are not easy 1.) Insertion of wrong exercises, versions, mistakes, etc.. How is this handled?

Solutions: Who s directly affected now? User/Admin/Everyone Avoid passing around or downloading VM s if possible. Give user s access to your server. Big time saver! Make barrier to participation as thin as possible 1.) Require only a cross-platform program for access 2.) Opens possibilities to phones, tablets, etc. Automated account management Changes can be easily completed 1.) Add, remove, or modify exercises during event 2.) Immediately available

Text Place the burden on the admins That s where it should go. Users should have a smooth experience. (don t worry, admins will too)

Goal Summary Admin: make something that is really easy to install, deploy, and configure User: design an intuitive interface and smooth training experience

Text Isolated, Scalable, and Lightweight Environment for Training A container system for teaching Linux based software with minimal participation effort. The participation barrier is set very low, students only need an SSH client.

ISLET is It gets all the components to work together in a way that solves our problems. Provides an easy 3-step process for deploying new training environments.

Uses: Excels at teaching command-line software on Linux Event training (intended design) Internal software training Capture the flag competitions Trying out tools in a containerized environment Development environments

Real World Use Cases: Launched the precursor at BroCon 14. Used to teach Bro scripting. ~50 users had shell access to Bro and unix tools in a container simultaneously on a lower end (m3.xlarge) EC2 VM, no problem. University of Illinois Digital Forensics 2 course FlowCon Bro training ~100 users Used to teach Linux tools at UIUC LUG meetings

Feedback loop Container logs show user s actions e.g. mistakes which can be used to improve future training

Technical Part

Linux Containers The technology behind ISLET

Text Isolation via kernel namespaces and cgroups The user can t tell the difference.

Text Scalability Could virtual machines teach all these people? You be the judge. 1000+ containers is possible

Text Lightweight ~100ms startup time, near bare metal performance, JeOS

Text Environments Provides shell access with the necessary pieces

Research Moment In general, Docker equals or exceeds KVM performance in every case we tested. IBM Research Report: An Updated Performance Comparison of Virtual Machines and Linux Containers < http://domino.research.ibm.com/library/cyberdig.nsf/papers/ 0929052195DD819C85257D2300681E7B/$File/rc25482.pdf>

Text Popularity It s making waves and for good reason

Deployment Tools/OS s CoreOS Kubernetes Project Atomic

Cloud hosting, many more Heroku

Linux Containers? Docker popularized the technology. It s actually been around for 7 years. Automates the deployment of Linux based container Provides layers of abstraction Various methods of container creation Docker hub and registries for sharing and deployment

Containers Important: "Linux Based Containers" There is no container specification There are different container (and like) technologies Linux: LXC, OpenVZ, Google containers, etc. Non-Linux: BSD Jails, Solaris Zones, AIX WPAR, etc. What do containers do? Light-weight process virtualization What do virtual machines do? Hardware virtualization

Linux Kernel Stuff Support: 3.8 introduce the building block for containers Namespaces: Process isolation Currently available: pid, net, ipc, uts, mnt, and user Control Groups: Resource management e.g. cpu, cpuset, blkio, memory, etc. It s not magic, you can create namespaces and cgroups directly from your shell by modifying procfs and sysfs. That s how they were deployed before userland tools like LXC and Docker existed.

Container Security Networking can be disabled Don t run processes as root Control CPU and RAM allocation Automatic cleanup is possible Devicemapper backend can also limit disk space Finer environment controls via ulimit for Docker processes: fsize, nproc, etc.

Host Security grsecurity patches sshd hardening - e.g. disable port forwarding, X11 forwarding, etc. iptables rate limiting to prevent excessive connections Least privileged user Run a HIDS like OSSEC

Working with ISLET

The Stack

Platform Linux only (currently), 64-bit only (because of Docker) Debian family is preferred but will work on others that support Docker. I do nearly all of my testing on Ubuntu so I recommend using that for the best experience.

$ git clone http://github.com/jonschipp/islet

Configuration & Workflow Global: configuration file i.e. /etc/islet/islet.conf Per-image: configuration files per image /etc/islet/*.conf Creating a new training environment (3 steps) 1. Build Docker image with the software for training 2. Create configuration file and point to new image 3. Place in /etc/islet/ e.g. new_image.conf

Other things Ability to port forward to containers to do things like web interfaces for training where each container is running a web interface that only the user is accessing. Requires user to have a unique IP address (e.g. no PAT device) Direct X11 works if user is running an X server and *trusts* connections from the ISLET server. You could train GUI applications using this method. export DISPLAY= 192.168.1.100:0 && wireshark

Easy updates $ make update

Demo F*** it, we'll do it live Bill O'Reilly

AIDE Special: $ ssh demo@islet1.jonschipp.com $ ssh demo@islet2.jonschipp.com Password: demo

Roadmap: Run ISLET from a container (Complete) 1.) Little modification to host system

Roadmap: Publish paper Port to FreeBSD using jails Auditing, pen testing Autoconf scripts Rewrite in Go Lang or Python Export containers and exercises 1.) Users can save their work or continue at home like they can with VM training Scalability testing beyond 1000+ containers, distributed setup

Contributing Send me pull requests, patches, feature requests, and issues. Use it and tell me what you think!

Testing & Dev $ git clone http://github.com/ jonschipp/vagrant $ cd vagrant/islet $ vagrant up $ ssh -p 2222 demo@127.0.0.1

Communication jonschipp@gmail.com http://jonschipp.com @JonSchipp #ISLET keisterstash on freenode

References: IBM Research Report: An Updated Performance Comparison of Virtual Machines and Linux Containers < http://domino.research.ibm.com/library/cyberdig.nsf/papers/ 0929052195DD819C85257D2300681E7B/$File/rc25482.pdf > Realizing Linux Containers (LXC): Building Blocks, Underpinnings, and Motivations < http://www.slideshare.net/bodenrussell/realizing-linux-containerslxc > Resource management: Linux kernel Namespaces and cgroups. < http:// www.haifux.org/lectures/299/netlec7.pdf > Linux Containers and the Future Cloud. < http://www.haifux.org/lectures/320/ netlec8_final.pdf > Lightweight Virtualization with Linux Containers (LXC) < http://www.ciecloud.org/2013/subject/07-track06-jerome%20petazzoni.pdf> www.docker.com https://images.google.com