17
Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education 15 August 2017 Cynthia Irvine, Michael Thompson, Michael McCarrin, and Jean Khosalim Department of Computer Science Naval Postgraduate School

Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

Labtainers:

ADocker-basedFrameworkforCybersecurityLabs

USENIXWorkshoponAdvancesinSecurityEducation15August2017

CynthiaIrvine,MichaelThompson,MichaelMcCarrin,andJeanKhosalim

DepartmentofComputerScienceNavalPostgraduateSchool

Page 2: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

Experientiallearningisdesirable,but…

•  Institutionalinfrastructuremaybeabsent•  Labsaredifficulttobuildanddifficulttomaintain

-  Overworkedinstructorsneedwell-vettedlabs

•  Studentplatformdiversityintroducesproblems-  Differentoperatingsystems,libraries,softwaretools,etc.-  Platformsetupforlabdistractsfromlearningobjectives-  Labresultsvarywidelyduetoconfigurationdifferences

•  Experientiallabsrequireexploration-  Howisthisobserved?

•  Studentsmayshareorreuseotherwork-  Needindividualizedlabs,butgradingeffortbecomeslarge

ASE,15Aug2017 22

Page 3: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

LabtainersObjectives

33ASE,15Aug2017

ConsistentandFair•  Studentsexecutelabsinidenticalenvironments•  Instructorsseeconsistentresultsandassessstudentsontheirwork

ratherthanenvironmentaleffects

Parameterizable•  Labsconfiguredsoeachstudent’sworkcanbeunique•  Labsaresamelevelofdifficultyforallstudents•  Expectedresultsareparameterizedtostreamlinegrading

SupportforAutomaticAssessment•  Collectedstudentworkisparsedforspecificoutputs•  Toolsmaybedevelopedtosupportassessmentofparticularaspects

ofexercise

Page 4: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

Stand-aloneLinuxCybersecurityLabs

• Multi-componentnetworktopologies-  PackagedusingDockercontainers-  Pre-configuredexecutionenvironments

•  Localtostudent’scomputer-  OneLinuxhost,(e.g.,VM)runsmanycontainers-  Noper-labprovisioningrequiredbythestudent

• Publicrepositoryoflabs&openframework

ASE,15Aug2017 44

Page 5: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

Architecture

•  LinuxcanruninaVMonanon-Linuxplatform•  Preconfiguredcontainersensureconsistencyacross

heterogeneousplatformsASE,15Aug2017 5

Hardware

Linux

DockerEngine

Bins/Libs Bins/Libs

App

A’’

App

B’

OtherApplications

App

A’

App

A

App

B

Page 6: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

WhyContainers?

•  Similarresourceandnamingisolation-  Dockerfilessimplifyprovisioningofcontainers

•  Studentlaptopcanrunseveralcontainers-  Butmaybeboggeddownby2ormoreVMs-  Enableslabswithmanynetworkedcomponents

• AllcontainersshareLinuxkernelwithhost-  Butcanhavedistinctpackages&libraryversions-  ContainerslimitedtoLinux

ASE,15Aug2017 66

Page 7: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

Parameterization

•  Individualizeslabsforeachstudent(optional)• Randomnumberseedbasedonstudentemail•  Example:sizeofbuffertooverflow

-  Symbolicreplacementofvalueinsourcecode-  Vulnerableprogramcompiledduringfirstrun-  Affectsoffsetofreturnaddresstooverwrite

ASE,15Aug2017 77

Page 8: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

AutomatedAssessment

•  Studentactivityandfilescollectedasartifacts-  Mostlytransparenttostudents,theyseeLinux-  Bashhookscapturestdin&stdout-  Artifactsforwardedtoinstructor

•  Instructortoolsassessstudentperformance-  Expectedresultsasdefinedbylabdesigner-  Viewofstudent’sfileandabilitytorunprograms

•  Labexercisesindividualizedforstudents-  Discouragessharinganswers&solutionmining-  Automatedassessmentmakesthispractical

ASE,15Aug2017 88

Page 9: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

RolesintheWorldofLabtainers

StudentPerforms lab exercise. Learns! Delivers results to instructor forassessment.

DesignerSMEwhoworkswith instructor to create labs basedon learningobjectives. Fine tunes and updates labs. May support auxiliaryassessmenttools.

InstructorDefines learning objectives.Works with (or is) designer. Ensuresstudentreadinesstoperformlabsandconductsassessments.

ASE,15Aug2017 99

Page 10: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

•  Designer-createdconfigurationfilesprovideautomation(red)for-  Containersetupandartifactanalysis

•  Manualsteps(green):studentrunslab,studentsendsartifactstoinstructor,instructorreviewsassessmenttable

ASE,15Aug2017 1010

Student Linux System Instructor Linux System

artifacts

Student Container

Docker

artifacts

artifacts

Instructor Container

Docker

artifacts

a

b

f

e

d

c

Page 11: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

# goals.config# # Please see labdesigner.md

# Recorded actions or results of student work to be summarized # for instructor

telnetview = matchany : string_equal : fileview : parameter.FSTRINGsshview = matchany : string_equal : sshfileview : parameter.FSTRINGtcpdump_plain = is_true : tcpdumprun failed_login = is_true : failed_login 1111

# results.config# # Please see labdesigner.md

# The following are meant to identify artifacts from telnet lab

fileview = client:telnet.stdout : 4 : STARTSWITH : My string is:sshfileview = client:ssh.stdout : 4 : STARTSWITH : My string is:tcpdumprun = server:tcpdump.stdout : CONTAINS : mydoghasfailed_login = server:/var/log/auth.log : CONTAINS : FAILED LOGIN

ASE,15Aug2017

Page 12: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

# Filename : start.config# Description:# A simple configuration file read by start.py

# Defines the containers used by both students and instructors

GLOBAL_SETTINGS # GRADE_CONTAINER - container where instructor will perform grading

GRADE_CONTAINER client# HOST_HOME_XFER - directory to transfer artifact to/from containersHOST_HOME_XFER seed_dir/

# LAB_MASTER_SEED - this is the master seed string specific to this laboratoryLAB_MASTER_SEED telnetlab_jean_seed

# SUBNETSNETWORK SOME_NETWORK

MASK 172.20.0.0/24 GATEWAY 172.20.0.100

# Container name and settings

CONTAINER clientUSER ubuntuTERMINALS 2SOME_NETWORK 172.20.0.2

CONTAINER serverUSER ubuntu

TERMINALS 1SOME_NETWORK 172.20.0.3 1212

Note

Forasimplesingle-containerlab,thereisadefaultconfigurationfile.

ASE,15Aug2017

Page 13: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

Parameterization

ASE,15Aug2017 1313

# parameter.config# # Please see labdesigner.pdf

# This string provides per-student parameterization of telnet labFSTRING : HASH_REPLACE : telnetlab.server.student=filetoview.txt : TELNET_STRING : mytelnetfilestirng

•  Labsparameterizedusing-  Perstudentuniquestring,e.g.emailaddress-  Bothstudentandinstructorknowstring

Page 14: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

AssessmentSupport

ASE,15Aug2017 1414

telnet SSH tcpdump failed_loginAlan Y X X XAlice Y Y X XBarbara Y Y Y YBill X Y Y XChuck X X X XCorrine Y Y Y Y

•  Instructorstartsthelabandautomatically-  Containerscreated-  Studentartifactspulledin-  Resultsconfigurationsetsupassessmentenvironment-  Loopthroughallstudentsusing

• Parameterconfiguration• Goalsconfiguration

-  Tableofper-studentgoalsproducedtosupportassessment

Page 15: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

StatusandNear-TermObjectives

• AfewproofofconceptlabsfromSEED•  CurrentLabs

-  Formatstring(printf)vulnerabilities-  Bufferoverflow-  Forensics-  Cryptographichashes-  Telnet(plaintextpasswordonthenetwork)-  VPN(configuringOpenvpntoprotecttraffic)-  nmap-  gdbintroduction-  Severalmore

ASE,15Aug2017 1515

Page 16: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

StatusandNear-TermObjectives

•  Summer2017-  Internaltesting-  Threehighschoolinterns-  Additionallabs,e.g.ICSsecurity

•  EarlyFall2017,initialgeneralrelease

ASE,15Aug2017 1616

Page 17: Labtainers: A Docker-based Framework for Cybersecurity Labs · 2019-12-18 · Labtainers: A Docker-based Framework for Cybersecurity Labs USENIX Workshop on Advances in Security Education

NCS,8June2017

JointheLabtainersTeam

•  ThebetaversionofLabtainerscanbefoundathttp://my.nps.edu/web/cisr/labtainers

[email protected]

[email protected]

DepartmentofComputerScience

NavalPostgraduateSchoolMonterey,CA93943U.S.A

ASE,15Aug2017 1717