SlideShare uma empresa Scribd logo
1 de 87
!
From The Heaven to Hell CI/CD
Security concerns in the dark world
RootedCON 2020
FOLLOW AND
COMMENT THE TALK
IN REAL TIME
http://bit.do/rootedcon2020
WHO WE ARE
Security research. Hacking
tools developer, DevSecOps.
Python developer.
Daniel García (cr0hn)
Can’t define myself.
I go where my curiosity drives to.
Most of the time goes bad.
I process TeraBytes for breakfast.
César Gallego
@ggdaniel
https://bit.do/cr0hn
@CesarGallegoR
https://bit.do/cesar-gallego
Disclaimer!
Any opinions expressed are personal
opinions and don’t represent our
employer’s view in any way
Shared vocabulary
Core Concepts
In software engineering, continuous integration (CI) is the practice
of merging all developers' working copies to a shared mainline
several times a day. Grady Booch first proposed the term CI in his
1991 method, although he did not advocate integrating several
times a day. Extreme programming (XP) adopted the concept of CI
and did advocate integrating more than once per day – perhaps as
many as tens of times per day
- Wikipedia
What CONTINUOUS
INTEGRATION is ?
“
”
Continuous delivery is a software engineering approach in which
teams produce software in short cycles, ensuring that the
software can be reliably released at any time and, when releasing
the software, doing so manually.
- Wikipedia
What CONTINUOUS
DEPLOYMENT is ?
“
”
CONTINUOUS DELIVERY
VS
CONTINUOUS DEPLOYMENT
Legacy
Systems
No CD
OpsDev
No CI/CD
OpsDev
Hell
Dev
Some
Reasons
WHY CI/CD ?
CI/CD It’s all about reaching
customers faster and
more frequently.
HOW CI/CD ?
CI/CD has become so popular
that now is a complete
software landscape.
WHAT
PIPELINE IS ?
A pipeline is a chain of
processing elements.
WHAT DevOps
IS ?
DevOps is a set of practices that combines
software development (Dev) and information-
technology operations (Ops) which aims to
shorten the systems development life cycle and
provide continuous delivery with high software
quality
WHAT
DevSecOps IS ?
It’s SecDevOps when security is
a value and not an obstacle.
Typical
Setup
STEPS IN BUILDING SOFTWARE CONSTRUCTION
STEPS IN BUILDING SOFTWARE CONSTRUCTION
User Code Building step Deployment step Production
STEPS IN BUILDING SOFTWARE CONSTRUCTION
User Code Building step Deployment step Production
STEPS IN BUILDING SOFTWARE CONSTRUCTION
User Code Building step Deployment step Production
Follow us down the rabbit hole
Starting the journey
In source
code
IN THE SOURCE CODE
User Code Building step Deployment step Production
● IDEs are great, but their configuration files
shouldn't be in the source code repository.
● Please, use gitignore file.
The IDE Leaks!
● There is not way to set fine grained permissions
at common source control versions system.
● Can’t set up permissions for specific files os
directories.
The BAD ROLE
Granularity!
Even could be worse... if the repository code is the
developer computer
Keep the code safe at Source Code servers. Do backups.
Keep the workplace safe.
The DEV Machine as only
source code server!
● There is a cowboy coder in your team?
● You have very tiny software in production only
managed by one developer?
● You a have a guru developer?
● You have the correct security at the workplace?
● Are your developers BYOD?
No all
StackOverflow
people are good
persons (or even
humans)
In STACK OVERFLOW
Works Great!
https://trojan-killer.net/the-most-copied-piece-of-java-code-on-stackoverflow-contains-an-error/
● Are your developers using safe libraries?
● Are you check the libraries they use?
● Even more… they ask you for advice when
choice a new library?
All Libraries
Allowed!
https://securityintelligence.com/news/popular-javascript-library-for-node-js-infected-with-malware-to-empty-bitcoin-
wallets/
You trust all libraries? so you know that all
libraries are malware / vulnerabilidades free?
● Passwords
● API keys
● Private keys
● ….
SECRETS & LEAKS
In the
building step
IN THE BUILDING STEP
User Code Building step Deployment step Production
● What if C.I. clone your code in read/write
mode?
● What if the build script from user can
modify the project source code in building
step?
Be sure you clone/download your source
code as read/only in building step
Non read-only source
code in building time
Control Artifacts
Repository
● What if a developer can publish an arbitrary code into
artifacts / libraries repository?
● What if a developer publish a trojanized version of a
library?
● What if a developer publish, intentionally, an artifact
with known vulnerabilities?
You must control who and what publish in the
artifact repository
● Usually C.I. / C.D. system stores sensitive
information.
● They need them to access to productive
environments, publish artifacts, perform some
checks, etc
● They, usually, store as environment vars.
The ENV Leak!
https://docs.gitlab.com/ee/ci/variables/
Ensure you mark as Protected environment
variables in your C.I. system
● What if an user can execute anything in a
Pipeline?
● What if the C.I. has not limited the output
traffic?
A reverse Shell
in the Pipeline
https://alionder.net/jenkins-script-console-code-exec-reverse-shell-java-deserialization/
Limit user permissions and output
destinations
https://www.youtube.com/watch?v=QDGGPoK4gbk
Keep in mind that the bot user do what developer
demands.
Do not grant more access permissions that you’ll grant
to developers.
The mighty CI
BOT
● Is your CI/CD executed as root?
● There is only one all mighty bot user?
● Your bot user has admin permissions over production?
● Do you control what can download a developer when
they runs in a pipeline?
● Do you control which command can launch a developer
in a C.I. / C.D. configuration file? (Jenkinsfile,
gitlab.yaml…)
● Is your C.I / C.D. in different network? Are you sure?
The EVIL AGENT (1 / 3)
The EVIL AGENT (3 / 3)
➔ Limit internet access in the pipeline.
➔ Perform a correct hardening of the
infrastructure
➔ Fix the execution permissions
● Is your company using free tier services?
● Has your company GitHub Business account?
The Greedy
Service
consumer!
Keep in mind that free tier has limits by IP. Like GitHub, Google
Maps… If your deploy rely on this services may be stuck if
someone exceed the IP quota.
A git Bomb cannot be cloned. Only a problem with
old git versions. Be aware in your older systems.
The Git BOMB!
● Are your commits PGP signed?
● You know who can access wrigths?
● Are you using third party repositories?
Allow only some agents to publish images. Check
docker layers contents. Check Dockerfile.
The DOCKER HUB
Leak!
● You have your own container registry?
● Do you check your Dockerfiles?
● Your pipelines has permissions and access to
publish in docker hub?
● Do you use the API?
● Do you control the CI/CD network access?
Keep API Safe!
Disable access from unnecessary places
with a firewall. Do not install vulnerable
Plugins.
● What frequency has your deployment?
● Do you check your dependencies?
● If some deploy software become too old, do you
perform again the security analysis?
The FOREVER
analysis!
Monitor your artifacts and check for new
vulnerabilities even if your pipeline do not trigger.
● Do you keep your source code repository safe?
● Do you keep your developers machines safe?
● Do you backup your code?
The SOURCE CODE
ransomware!
If a ransomware exists is
because it works. Check
permissions and do backups.
Break HISTORY!
● Do you monitor who modify your code?
● Do you have outsourcing in your team?
● You receive third party commits?
Are you sure of your source code history. An
attacker can break the source code history to
cover their trail.
An attacker can convert any program into their own
vector. Keep an eye on the software supply chain of
your build environments.
The evil
COMPILER!
● Are your agents ephemeral?
● Are your containers trusted?
● Do you have specialized machine for some exotic
language?
A very fat container can spend all free space and
avoid new docker builds. A fat container make
deploy a slow and error prone process.
The Fat DOCKER!
● Do you inspect your Dockerfiles?
● Do you have Docker builds correctly configured?
● Do you control where layers are built?
Without the hash in FROM clause anyone can build a container
using the name of popular one. A docker registry can add extra
security if is well configured avoiding local cache.
The evil DOCKER
twin!
● Do you think that a containers registry is a
complex overhead?
● You build a small number of containers?
● Your team don’t know how to write good
Dockerfiles?
In the
deployment step
IN THE DEPLOYMENT STEP
User Code Building step Deployment step Production
Use firewall and security proxies to secure the
internet access.
Run FREE
Internet!
● Some people think that CI/CD is “developer stuff”
● Good networking is critical in the place where a
lot of security secrets live
● Agents must access internet only were they need
to
Outsourcing happens, and an evil user can delay
the CI CD action to prevent production fixes. At
the same time an outsider attacker can exploit a
vulnerable system.
The EVIL
insider!
● Your company use Outsourcing?
● You think that slow pipelines are harmless?
● You suffer the lack of dependency check?
Modify a Jar to add a trojan is very easy. Hard to
detect and can be unbelievable persistent.
The Trojan Jar!
● Do you suffer the Jar Hell?
● Your servers has outdated Java stuff?
● Your company has no java artifact repo?
Critical production infrastructure as code must be
managed by security aware experts.
Secure Infra as
Code!
● Do you let your developers decide how to create
production machines?
● You rely security on cloud promises?
● ZIP Bomb is an old attack.
● The attack is very simple but very useful
● Some of system has basic routines to detect
these kinds of attacks.
The ZIP BOMB (1 / 4)
● Major of packaged software is packed as a ZIP
file: .jar, .war, .docx, .xlsx….
● Some Application Servers auto deploy them when
put files in specific path
● What if we put a ZIP bomb renamed as a valid
packed Application for a Tomcat?
The ZIP BOMB (2 / 4)
Perform a correct hardening of host and set
conservative limits of files, CPU and memory
that a processes can get
The ZIP BOMB (4/ 4)
● Memory bomb is type of attack that aims to fill all
system memory.
● Not only RAM also SWAP is affected.
● If you don’t have limits in your host it can
consume all of your HD space as a SWAP space.
Memory BOMB (1 / 5)
● What if you can run a memory bomb in a C.I. / C.D.
system?
● What if the C.I. is deployed as multi-agent?
Memory BOMB (2 / 5)
Jenkins agent 1 Jenkins agent 1 Jenkins agent 1
Jenkins behavior:
1 - You put a memory bomb in your Jenkinsfile
Memory BOMB (3 / 5)
2 - The Jenkins Master send to the job to an Jenkins
agent and it runs the pipeline and the memory bomb. So
the Jenkins agent host break down
Jenkins master
3 - Jenkins Master detect that the jobs was not finished.
So the send the same job to another Jenkins Agent
4 - Jenkins agent runs memory bomb and… break down
5 - Go to step 2
➔ Less Known but more effective in Docker.
➔ Today powerful computers can die very fast
with no clue who pipeline is responsible.
➔ You can lost all your agents berore you find
where the problem is.
Memory BOMB (5 / 5)
● Fork bomb is type of attack that aims exhaust a
system by creating new processes recursively
● It very difficult to detect if you don’t have a very
good log system configured
● Run in a Pipeline is so easy
● In multi-agent system the results are the same
that with Memory Bomb
Fork BOMB! (1 / 2)
In production
Monitor your CI/CD as the critical system that it
is.
Must Monitor
The system!
● The health of CI/CD is very important
● Even if your pipelines are not executed for a long
time you must perform periodic security checks
● Logs are useful information
● Metrics can warn you of misused infrastructure
The API contract must be fulfilled. No less, No
more. The more is more problematic.
Is your API
Honest!?
● Do you use thread model on you APIs?
● How do you know all the endpoints that you have
deployed?
● Are debug url opened in production?
Human interactions in production environments can be
dangerous. Keep your production inmutable. Use infrastructure
as code.
No HUMANS Beyond
this point!
● Do you know how the current state of your
production?
● Do you allow manual “fixes” on production?
● Do you know how many people can access?
● Do you monitor when and how they access?
Security authentication proxies are good tools for this
job.
Trust the
PASSWORD!?
● The passwords are supplied to third party software?
● No human can access but code can?
● Humans can write code to leak passwords
You can mount trojanized libraries like libc as a volume.
Keep in mind you deploy volumes.
The Docker MOUNTED
Trojan libraries!
Containers are just a bunch o deltas on a file storage and a lot
of genius around. Don’t forget that layers can be accessed.
keep SECRETS
safe!
● Do you store secrets in your containers?
● Do you store security configurations on your
containers?
● Do you store intellectual property on your
containers?
● Where are your containers published?
In the
infraestructure
IN THE DEPLOYMENT STEP
User Code Building step Deployment step Production
● Old hack attack but useful
● Alias commands could be the best trojan in
a system.
● There are very complicated to detect
The Evil Alias!
Perform a well hardening of your host systems & be
careful with the bot users
● Do you deploy the C.I. software in your infrastructure?
● Do you have a network isolation from the building software
to the production machine?
● Do you remember the scan by using Jenkins? Can you
imagine use that with Metasploit to Production machines?
The Shared infra!
➔ PLEASE use isolated networks (VPC, VLAN o something
applicable to your infrastructure)
➔ If your C.I. system need to access to the production
machines use LIMITED access API keys.
● Agents need a firewall to avoid lateral movements
● Don’t share the production network with any
CI/CD software
● Don’t share the internal network with any CI/CD
software
keep NETWORK
safe!
If you can keep the CI/CD in their own network. Access
control is mandatory.
Keep this in mind
Wrap up
● When your agents go down are less problematic if agents are
deploy thru resilient infrastructure (like kubernetes).
● Containers from scratch are blessed simplicity, use often as
you can.
● Deploy Critical software thru configurations (and trusted
software) over complex code.
● You know about security just apply your knowledge in your
CI/CD
● Don’t let that your automation tools become automated
INsecurity
The TIP Of the
iceberg
➔ Who will watch the watchers? Manage your CI/CD as
a critical software (because it is).
➔ Assume that you have a lot of potential insiders
attackers.
➔ Protect your C.I. as your production systems.
➔ Monitoring. Always monitoring. Not only in the
building step.
QUIS CUSTODIET IPSOS
CUSTODES?
https://www.99cs.io
http://book.99cs.io/

Mais conteúdo relacionado

Mais procurados

Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRDenis Ristic
 
Continuous Integration @ MeetMagento Germany 2015
Continuous Integration @ MeetMagento Germany 2015Continuous Integration @ MeetMagento Germany 2015
Continuous Integration @ MeetMagento Germany 2015Aleksey Razbakov
 
scaling compiled applications - highload 2013
scaling compiled applications - highload 2013scaling compiled applications - highload 2013
scaling compiled applications - highload 2013ice799
 
DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...
DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...
DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...Felipe Prado
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodeKris Buytaert
 
Devops is (not ) a buzzword
Devops is (not ) a buzzwordDevops is (not ) a buzzword
Devops is (not ) a buzzwordMiguel Fonseca
 
A Modest Introduction to Swift
A Modest Introduction to SwiftA Modest Introduction to Swift
A Modest Introduction to SwiftJohn Anderson
 
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...CloudBees
 
2017 DevSecCon ZAP Scripting Workshop
2017 DevSecCon ZAP Scripting Workshop2017 DevSecCon ZAP Scripting Workshop
2017 DevSecCon ZAP Scripting WorkshopSimon Bennetts
 
Master Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins PlatformMaster Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins Platformdcjuengst
 
The New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonThe New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonAll Things Open
 
Developing for LinkedIn's Application Platform
Developing for LinkedIn's Application PlatformDeveloping for LinkedIn's Application Platform
Developing for LinkedIn's Application PlatformTaylor Singletary
 
TDC2016SP - Trilha DevOps Java
TDC2016SP - Trilha DevOps JavaTDC2016SP - Trilha DevOps Java
TDC2016SP - Trilha DevOps Javatdc-globalcode
 
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...Ontico
 
Infrastructure as code might be literally impossible / Joe Domato (packageclo...
Infrastructure as code might be literally impossible / Joe Domato (packageclo...Infrastructure as code might be literally impossible / Joe Domato (packageclo...
Infrastructure as code might be literally impossible / Joe Domato (packageclo...Ontico
 
Resources For Floss Projects
Resources For Floss ProjectsResources For Floss Projects
Resources For Floss ProjectsJon Spriggs
 

Mais procurados (20)

Magento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HRMagento Continuous Integration & Continuous Delivery @MM17HR
Magento Continuous Integration & Continuous Delivery @MM17HR
 
Continuous Integration @ MeetMagento Germany 2015
Continuous Integration @ MeetMagento Germany 2015Continuous Integration @ MeetMagento Germany 2015
Continuous Integration @ MeetMagento Germany 2015
 
Pluginize ALL the things
Pluginize ALL the thingsPluginize ALL the things
Pluginize ALL the things
 
scaling compiled applications - highload 2013
scaling compiled applications - highload 2013scaling compiled applications - highload 2013
scaling compiled applications - highload 2013
 
DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...
DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...
DEF CON 27 - workshop - RYAN CHAPMAN - understanding and analyzing weaponized...
 
Pipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as CodePipeline as code for your infrastructure as Code
Pipeline as code for your infrastructure as Code
 
Unit Testing TypeScript
Unit Testing TypeScriptUnit Testing TypeScript
Unit Testing TypeScript
 
Devops is (not ) a buzzword
Devops is (not ) a buzzwordDevops is (not ) a buzzword
Devops is (not ) a buzzword
 
A Modest Introduction to Swift
A Modest Introduction to SwiftA Modest Introduction to Swift
A Modest Introduction to Swift
 
Elixir koans
Elixir koansElixir koans
Elixir koans
 
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
JUC Europe 2015: Continuous Integration and Distribution in the Cloud with DE...
 
2017 DevSecCon ZAP Scripting Workshop
2017 DevSecCon ZAP Scripting Workshop2017 DevSecCon ZAP Scripting Workshop
2017 DevSecCon ZAP Scripting Workshop
 
Master Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins PlatformMaster Continuous Delivery with CloudBees Jenkins Platform
Master Continuous Delivery with CloudBees Jenkins Platform
 
The New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonThe New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by Python
 
Developing for LinkedIn's Application Platform
Developing for LinkedIn's Application PlatformDeveloping for LinkedIn's Application Platform
Developing for LinkedIn's Application Platform
 
The way Devs do Ops
The way Devs do OpsThe way Devs do Ops
The way Devs do Ops
 
TDC2016SP - Trilha DevOps Java
TDC2016SP - Trilha DevOps JavaTDC2016SP - Trilha DevOps Java
TDC2016SP - Trilha DevOps Java
 
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...
 
Infrastructure as code might be literally impossible / Joe Domato (packageclo...
Infrastructure as code might be literally impossible / Joe Domato (packageclo...Infrastructure as code might be literally impossible / Joe Domato (packageclo...
Infrastructure as code might be literally impossible / Joe Domato (packageclo...
 
Resources For Floss Projects
Resources For Floss ProjectsResources For Floss Projects
Resources For Floss Projects
 

Semelhante a From Heaven to Hell: Security Concerns in CI/CD Pipelines

Droidcon it-2014-marco-grassi-viaforensics
Droidcon it-2014-marco-grassi-viaforensicsDroidcon it-2014-marco-grassi-viaforensics
Droidcon it-2014-marco-grassi-viaforensicsviaForensics
 
Security Testing for Containerized Applications
Security Testing for Containerized ApplicationsSecurity Testing for Containerized Applications
Security Testing for Containerized ApplicationsSoluto
 
Continuous Security for GitOps
Continuous Security for GitOpsContinuous Security for GitOps
Continuous Security for GitOpsWeaveworks
 
DevSecCon Tel Aviv 2018 - Security Testing for Containerised Apps by Omer Levi
DevSecCon Tel Aviv 2018 - Security Testing for  Containerised Apps by Omer LeviDevSecCon Tel Aviv 2018 - Security Testing for  Containerised Apps by Omer Levi
DevSecCon Tel Aviv 2018 - Security Testing for Containerised Apps by Omer LeviDevSecCon
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOpsOmid Vahdaty
 
Kubernetes and container security
Kubernetes and container securityKubernetes and container security
Kubernetes and container securityVolodymyr Shynkar
 
Hacking Vulnerable Websites to Bypass Firewalls
Hacking Vulnerable Websites to Bypass FirewallsHacking Vulnerable Websites to Bypass Firewalls
Hacking Vulnerable Websites to Bypass FirewallsNetsparker
 
[2020 git lab commit] continuous infrastructure
[2020 git lab commit] continuous infrastructure[2020 git lab commit] continuous infrastructure
[2020 git lab commit] continuous infrastructureRodrigo Stefani Domingues
 
AV Evasion with the Veil Framework
AV Evasion with the Veil FrameworkAV Evasion with the Veil Framework
AV Evasion with the Veil FrameworkVeilFramework
 
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on KubernetesKCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetessparkfabrik
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'acorehard_by
 
TSC Summit #3 - Reverse engineering and anti debugging techniques
TSC Summit #3 - Reverse engineering and anti debugging techniquesTSC Summit #3 - Reverse engineering and anti debugging techniques
TSC Summit #3 - Reverse engineering and anti debugging techniquesMikal Villa
 
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdfManaging Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdfAndrew Lamb
 
Devoops: DoJ Annual Cybersecurity Training Symposium Edition 2015
Devoops: DoJ Annual Cybersecurity Training Symposium Edition 2015Devoops: DoJ Annual Cybersecurity Training Symposium Edition 2015
Devoops: DoJ Annual Cybersecurity Training Symposium Edition 2015Chris Gates
 
An Introduction to Docker
An Introduction to DockerAn Introduction to Docker
An Introduction to Dockerbwinterton
 
DevAssistant, Docker and You
DevAssistant, Docker and YouDevAssistant, Docker and You
DevAssistant, Docker and YouBalaBit
 
The Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldThe Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldDevOps.com
 
Preventing Code Leaks & Other Critical Security Risks from Code
Preventing Code Leaks & Other Critical Security Risks from CodePreventing Code Leaks & Other Critical Security Risks from Code
Preventing Code Leaks & Other Critical Security Risks from CodeDevOps.com
 

Semelhante a From Heaven to Hell: Security Concerns in CI/CD Pipelines (20)

Droidcon it-2014-marco-grassi-viaforensics
Droidcon it-2014-marco-grassi-viaforensicsDroidcon it-2014-marco-grassi-viaforensics
Droidcon it-2014-marco-grassi-viaforensics
 
Security Testing for Containerized Applications
Security Testing for Containerized ApplicationsSecurity Testing for Containerized Applications
Security Testing for Containerized Applications
 
Continuous Security for GitOps
Continuous Security for GitOpsContinuous Security for GitOps
Continuous Security for GitOps
 
Docker e git lab
Docker e git labDocker e git lab
Docker e git lab
 
DevSecCon Tel Aviv 2018 - Security Testing for Containerised Apps by Omer Levi
DevSecCon Tel Aviv 2018 - Security Testing for  Containerised Apps by Omer LeviDevSecCon Tel Aviv 2018 - Security Testing for  Containerised Apps by Omer Levi
DevSecCon Tel Aviv 2018 - Security Testing for Containerised Apps by Omer Levi
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Kubernetes and container security
Kubernetes and container securityKubernetes and container security
Kubernetes and container security
 
Hacking Vulnerable Websites to Bypass Firewalls
Hacking Vulnerable Websites to Bypass FirewallsHacking Vulnerable Websites to Bypass Firewalls
Hacking Vulnerable Websites to Bypass Firewalls
 
[2020 git lab commit] continuous infrastructure
[2020 git lab commit] continuous infrastructure[2020 git lab commit] continuous infrastructure
[2020 git lab commit] continuous infrastructure
 
AV Evasion with the Veil Framework
AV Evasion with the Veil FrameworkAV Evasion with the Veil Framework
AV Evasion with the Veil Framework
 
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on KubernetesKCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
KCD Italy 2023 - Secure Software Supply chain for OCI Artifact on Kubernetes
 
Настройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'aНастройка окружения для кросскомпиляции проектов на основе docker'a
Настройка окружения для кросскомпиляции проектов на основе docker'a
 
Security in open source projects
Security in open source projectsSecurity in open source projects
Security in open source projects
 
TSC Summit #3 - Reverse engineering and anti debugging techniques
TSC Summit #3 - Reverse engineering and anti debugging techniquesTSC Summit #3 - Reverse engineering and anti debugging techniques
TSC Summit #3 - Reverse engineering and anti debugging techniques
 
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdfManaging Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
Managing Software Dependencies and the Supply Chain_ MIT EM.S20.pdf
 
Devoops: DoJ Annual Cybersecurity Training Symposium Edition 2015
Devoops: DoJ Annual Cybersecurity Training Symposium Edition 2015Devoops: DoJ Annual Cybersecurity Training Symposium Edition 2015
Devoops: DoJ Annual Cybersecurity Training Symposium Edition 2015
 
An Introduction to Docker
An Introduction to DockerAn Introduction to Docker
An Introduction to Docker
 
DevAssistant, Docker and You
DevAssistant, Docker and YouDevAssistant, Docker and You
DevAssistant, Docker and You
 
The Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote WorldThe Future of Security and Productivity in Our Newly Remote World
The Future of Security and Productivity in Our Newly Remote World
 
Preventing Code Leaks & Other Critical Security Risks from Code
Preventing Code Leaks & Other Critical Security Risks from CodePreventing Code Leaks & Other Critical Security Risks from Code
Preventing Code Leaks & Other Critical Security Risks from Code
 

Mais de Daniel Garcia (a.k.a cr0hn)

Rooted 2018 - Crawlino: The next level of crawling systems
Rooted 2018 - Crawlino: The next level of crawling systemsRooted 2018 - Crawlino: The next level of crawling systems
Rooted 2018 - Crawlino: The next level of crawling systemsDaniel Garcia (a.k.a cr0hn)
 
Ingenieria social aplicada: Mucho mas fácil de lo que parece
Ingenieria social aplicada: Mucho mas fácil de lo que pareceIngenieria social aplicada: Mucho mas fácil de lo que parece
Ingenieria social aplicada: Mucho mas fácil de lo que pareceDaniel Garcia (a.k.a cr0hn)
 
Ingeniería social aplicada: Mucho más fácil de lo que parece
Ingeniería social aplicada: Mucho más fácil de lo que pareceIngeniería social aplicada: Mucho más fácil de lo que parece
Ingeniería social aplicada: Mucho más fácil de lo que pareceDaniel Garcia (a.k.a cr0hn)
 
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker imagesRootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker imagesDaniel Garcia (a.k.a cr0hn)
 
Identificando y rompiendo servicios de las 4 capas de TCP/IP
Identificando y rompiendo servicios de las 4 capas de TCP/IPIdentificando y rompiendo servicios de las 4 capas de TCP/IP
Identificando y rompiendo servicios de las 4 capas de TCP/IPDaniel Garcia (a.k.a cr0hn)
 
Cybercamp 2015 - Python, hacking y sec-tools desde las trincheras
Cybercamp 2015 - Python, hacking y sec-tools desde las trincherasCybercamp 2015 - Python, hacking y sec-tools desde las trincheras
Cybercamp 2015 - Python, hacking y sec-tools desde las trincherasDaniel Garcia (a.k.a cr0hn)
 
Tu DevOp me da trabajo: Soy auditor de seguridad
Tu DevOp me da trabajo: Soy auditor de seguridadTu DevOp me da trabajo: Soy auditor de seguridad
Tu DevOp me da trabajo: Soy auditor de seguridadDaniel Garcia (a.k.a cr0hn)
 
Scapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azul
Scapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azulScapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azul
Scapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azulDaniel Garcia (a.k.a cr0hn)
 
III Hack and beers: evadiendo técnicas de fingerprinting en Linux y Wordpress
III Hack and beers: evadiendo técnicas de fingerprinting en Linux y WordpressIII Hack and beers: evadiendo técnicas de fingerprinting en Linux y Wordpress
III Hack and beers: evadiendo técnicas de fingerprinting en Linux y WordpressDaniel Garcia (a.k.a cr0hn)
 
El poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácilEl poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácilDaniel Garcia (a.k.a cr0hn)
 
Qué es el fingerprinting: Definición, peligros y medidas mitigadoras
Qué es el fingerprinting: Definición, peligros y medidas mitigadorasQué es el fingerprinting: Definición, peligros y medidas mitigadoras
Qué es el fingerprinting: Definición, peligros y medidas mitigadorasDaniel Garcia (a.k.a cr0hn)
 

Mais de Daniel Garcia (a.k.a cr0hn) (20)

Security in AWS Lambdas - NavajaNegra CON 2018
Security in AWS Lambdas - NavajaNegra CON 2018Security in AWS Lambdas - NavajaNegra CON 2018
Security in AWS Lambdas - NavajaNegra CON 2018
 
Rooted 2018 - Crawlino: The next level of crawling systems
Rooted 2018 - Crawlino: The next level of crawling systemsRooted 2018 - Crawlino: The next level of crawling systems
Rooted 2018 - Crawlino: The next level of crawling systems
 
Ingenieria social aplicada: Mucho mas fácil de lo que parece
Ingenieria social aplicada: Mucho mas fácil de lo que pareceIngenieria social aplicada: Mucho mas fácil de lo que parece
Ingenieria social aplicada: Mucho mas fácil de lo que parece
 
Ingeniería social aplicada: Mucho más fácil de lo que parece
Ingeniería social aplicada: Mucho más fácil de lo que pareceIngeniería social aplicada: Mucho más fácil de lo que parece
Ingeniería social aplicada: Mucho más fácil de lo que parece
 
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker imagesRootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
RootedCON 2017 - Docker might not be your friend. Trojanizing Docker images
 
Identificando y rompiendo servicios de las 4 capas de TCP/IP
Identificando y rompiendo servicios de las 4 capas de TCP/IPIdentificando y rompiendo servicios de las 4 capas de TCP/IP
Identificando y rompiendo servicios de las 4 capas de TCP/IP
 
Security in NodeJS applications
Security in NodeJS applicationsSecurity in NodeJS applications
Security in NodeJS applications
 
RootedCON 2016 - Broker & MQ injection
RootedCON 2016 - Broker & MQ injectionRootedCON 2016 - Broker & MQ injection
RootedCON 2016 - Broker & MQ injection
 
Hacking y python: Hacking de redes con Python
Hacking y python: Hacking de redes con PythonHacking y python: Hacking de redes con Python
Hacking y python: Hacking de redes con Python
 
Cybercamp 2015 - Python, hacking y sec-tools desde las trincheras
Cybercamp 2015 - Python, hacking y sec-tools desde las trincherasCybercamp 2015 - Python, hacking y sec-tools desde las trincheras
Cybercamp 2015 - Python, hacking y sec-tools desde las trincheras
 
Tu DevOp me da trabajo: Soy auditor de seguridad
Tu DevOp me da trabajo: Soy auditor de seguridadTu DevOp me da trabajo: Soy auditor de seguridad
Tu DevOp me da trabajo: Soy auditor de seguridad
 
Scapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azul
Scapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azulScapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azul
Scapy: Crear un Frankenstein de red y hacerlo pasar por el príncipe azul
 
Topera: Evadiendo Snort con IPv6
Topera: Evadiendo Snort con IPv6Topera: Evadiendo Snort con IPv6
Topera: Evadiendo Snort con IPv6
 
III Hack and beers: evadiendo técnicas de fingerprinting en Linux y Wordpress
III Hack and beers: evadiendo técnicas de fingerprinting en Linux y WordpressIII Hack and beers: evadiendo técnicas de fingerprinting en Linux y Wordpress
III Hack and beers: evadiendo técnicas de fingerprinting en Linux y Wordpress
 
GoLismero: The Web Knife
GoLismero: The Web KnifeGoLismero: The Web Knife
GoLismero: The Web Knife
 
El poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácilEl poder de los reptiles: Hacer herramientas de hacking es fácil
El poder de los reptiles: Hacer herramientas de hacking es fácil
 
Cybercam 2014
Cybercam 2014Cybercam 2014
Cybercam 2014
 
Introduccion muy básica a Python
Introduccion muy básica a PythonIntroduccion muy básica a Python
Introduccion muy básica a Python
 
Qué es el fingerprinting: Definición, peligros y medidas mitigadoras
Qué es el fingerprinting: Definición, peligros y medidas mitigadorasQué es el fingerprinting: Definición, peligros y medidas mitigadoras
Qué es el fingerprinting: Definición, peligros y medidas mitigadoras
 
Extreme security in web servers
Extreme security in  web serversExtreme security in  web servers
Extreme security in web servers
 

Último

Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf31events.com
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Rob Geurden
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 

Último (20)

Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Sending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdfSending Calendar Invites on SES and Calendarsnack.pdf
Sending Calendar Invites on SES and Calendarsnack.pdf
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...Simplifying Microservices & Apps - The art of effortless development - Meetup...
Simplifying Microservices & Apps - The art of effortless development - Meetup...
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 

From Heaven to Hell: Security Concerns in CI/CD Pipelines

  • 1. ! From The Heaven to Hell CI/CD Security concerns in the dark world RootedCON 2020
  • 2. FOLLOW AND COMMENT THE TALK IN REAL TIME http://bit.do/rootedcon2020
  • 3. WHO WE ARE Security research. Hacking tools developer, DevSecOps. Python developer. Daniel García (cr0hn) Can’t define myself. I go where my curiosity drives to. Most of the time goes bad. I process TeraBytes for breakfast. César Gallego @ggdaniel https://bit.do/cr0hn @CesarGallegoR https://bit.do/cesar-gallego
  • 4. Disclaimer! Any opinions expressed are personal opinions and don’t represent our employer’s view in any way
  • 6. In software engineering, continuous integration (CI) is the practice of merging all developers' working copies to a shared mainline several times a day. Grady Booch first proposed the term CI in his 1991 method, although he did not advocate integrating several times a day. Extreme programming (XP) adopted the concept of CI and did advocate integrating more than once per day – perhaps as many as tens of times per day - Wikipedia What CONTINUOUS INTEGRATION is ? “ ”
  • 7. Continuous delivery is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, when releasing the software, doing so manually. - Wikipedia What CONTINUOUS DEPLOYMENT is ? “ ”
  • 14. WHY CI/CD ? CI/CD It’s all about reaching customers faster and more frequently.
  • 15. HOW CI/CD ? CI/CD has become so popular that now is a complete software landscape.
  • 16. WHAT PIPELINE IS ? A pipeline is a chain of processing elements.
  • 17. WHAT DevOps IS ? DevOps is a set of practices that combines software development (Dev) and information- technology operations (Ops) which aims to shorten the systems development life cycle and provide continuous delivery with high software quality
  • 18. WHAT DevSecOps IS ? It’s SecDevOps when security is a value and not an obstacle.
  • 20. STEPS IN BUILDING SOFTWARE CONSTRUCTION
  • 21. STEPS IN BUILDING SOFTWARE CONSTRUCTION User Code Building step Deployment step Production
  • 22. STEPS IN BUILDING SOFTWARE CONSTRUCTION User Code Building step Deployment step Production
  • 23. STEPS IN BUILDING SOFTWARE CONSTRUCTION User Code Building step Deployment step Production
  • 24. Follow us down the rabbit hole Starting the journey
  • 26. IN THE SOURCE CODE User Code Building step Deployment step Production
  • 27. ● IDEs are great, but their configuration files shouldn't be in the source code repository. ● Please, use gitignore file. The IDE Leaks!
  • 28. ● There is not way to set fine grained permissions at common source control versions system. ● Can’t set up permissions for specific files os directories. The BAD ROLE Granularity! Even could be worse... if the repository code is the developer computer
  • 29. Keep the code safe at Source Code servers. Do backups. Keep the workplace safe. The DEV Machine as only source code server! ● There is a cowboy coder in your team? ● You have very tiny software in production only managed by one developer? ● You a have a guru developer? ● You have the correct security at the workplace? ● Are your developers BYOD?
  • 30. No all StackOverflow people are good persons (or even humans) In STACK OVERFLOW Works Great! https://trojan-killer.net/the-most-copied-piece-of-java-code-on-stackoverflow-contains-an-error/
  • 31. ● Are your developers using safe libraries? ● Are you check the libraries they use? ● Even more… they ask you for advice when choice a new library? All Libraries Allowed! https://securityintelligence.com/news/popular-javascript-library-for-node-js-infected-with-malware-to-empty-bitcoin- wallets/ You trust all libraries? so you know that all libraries are malware / vulnerabilidades free?
  • 32. ● Passwords ● API keys ● Private keys ● …. SECRETS & LEAKS
  • 34. IN THE BUILDING STEP User Code Building step Deployment step Production
  • 35. ● What if C.I. clone your code in read/write mode? ● What if the build script from user can modify the project source code in building step? Be sure you clone/download your source code as read/only in building step Non read-only source code in building time
  • 36. Control Artifacts Repository ● What if a developer can publish an arbitrary code into artifacts / libraries repository? ● What if a developer publish a trojanized version of a library? ● What if a developer publish, intentionally, an artifact with known vulnerabilities? You must control who and what publish in the artifact repository
  • 37. ● Usually C.I. / C.D. system stores sensitive information. ● They need them to access to productive environments, publish artifacts, perform some checks, etc ● They, usually, store as environment vars. The ENV Leak! https://docs.gitlab.com/ee/ci/variables/ Ensure you mark as Protected environment variables in your C.I. system
  • 38. ● What if an user can execute anything in a Pipeline? ● What if the C.I. has not limited the output traffic? A reverse Shell in the Pipeline https://alionder.net/jenkins-script-console-code-exec-reverse-shell-java-deserialization/ Limit user permissions and output destinations
  • 40. Keep in mind that the bot user do what developer demands. Do not grant more access permissions that you’ll grant to developers. The mighty CI BOT ● Is your CI/CD executed as root? ● There is only one all mighty bot user? ● Your bot user has admin permissions over production?
  • 41. ● Do you control what can download a developer when they runs in a pipeline? ● Do you control which command can launch a developer in a C.I. / C.D. configuration file? (Jenkinsfile, gitlab.yaml…) ● Is your C.I / C.D. in different network? Are you sure? The EVIL AGENT (1 / 3)
  • 42.
  • 43. The EVIL AGENT (3 / 3) ➔ Limit internet access in the pipeline. ➔ Perform a correct hardening of the infrastructure ➔ Fix the execution permissions
  • 44. ● Is your company using free tier services? ● Has your company GitHub Business account? The Greedy Service consumer! Keep in mind that free tier has limits by IP. Like GitHub, Google Maps… If your deploy rely on this services may be stuck if someone exceed the IP quota.
  • 45. A git Bomb cannot be cloned. Only a problem with old git versions. Be aware in your older systems. The Git BOMB! ● Are your commits PGP signed? ● You know who can access wrigths? ● Are you using third party repositories?
  • 46. Allow only some agents to publish images. Check docker layers contents. Check Dockerfile. The DOCKER HUB Leak! ● You have your own container registry? ● Do you check your Dockerfiles? ● Your pipelines has permissions and access to publish in docker hub?
  • 47. ● Do you use the API? ● Do you control the CI/CD network access? Keep API Safe! Disable access from unnecessary places with a firewall. Do not install vulnerable Plugins.
  • 48. ● What frequency has your deployment? ● Do you check your dependencies? ● If some deploy software become too old, do you perform again the security analysis? The FOREVER analysis! Monitor your artifacts and check for new vulnerabilities even if your pipeline do not trigger.
  • 49. ● Do you keep your source code repository safe? ● Do you keep your developers machines safe? ● Do you backup your code? The SOURCE CODE ransomware! If a ransomware exists is because it works. Check permissions and do backups.
  • 50. Break HISTORY! ● Do you monitor who modify your code? ● Do you have outsourcing in your team? ● You receive third party commits? Are you sure of your source code history. An attacker can break the source code history to cover their trail.
  • 51. An attacker can convert any program into their own vector. Keep an eye on the software supply chain of your build environments. The evil COMPILER! ● Are your agents ephemeral? ● Are your containers trusted? ● Do you have specialized machine for some exotic language?
  • 52. A very fat container can spend all free space and avoid new docker builds. A fat container make deploy a slow and error prone process. The Fat DOCKER! ● Do you inspect your Dockerfiles? ● Do you have Docker builds correctly configured? ● Do you control where layers are built?
  • 53. Without the hash in FROM clause anyone can build a container using the name of popular one. A docker registry can add extra security if is well configured avoiding local cache. The evil DOCKER twin! ● Do you think that a containers registry is a complex overhead? ● You build a small number of containers? ● Your team don’t know how to write good Dockerfiles?
  • 55. IN THE DEPLOYMENT STEP User Code Building step Deployment step Production
  • 56. Use firewall and security proxies to secure the internet access. Run FREE Internet! ● Some people think that CI/CD is “developer stuff” ● Good networking is critical in the place where a lot of security secrets live ● Agents must access internet only were they need to
  • 57. Outsourcing happens, and an evil user can delay the CI CD action to prevent production fixes. At the same time an outsider attacker can exploit a vulnerable system. The EVIL insider! ● Your company use Outsourcing? ● You think that slow pipelines are harmless? ● You suffer the lack of dependency check?
  • 58. Modify a Jar to add a trojan is very easy. Hard to detect and can be unbelievable persistent. The Trojan Jar! ● Do you suffer the Jar Hell? ● Your servers has outdated Java stuff? ● Your company has no java artifact repo?
  • 59. Critical production infrastructure as code must be managed by security aware experts. Secure Infra as Code! ● Do you let your developers decide how to create production machines? ● You rely security on cloud promises?
  • 60. ● ZIP Bomb is an old attack. ● The attack is very simple but very useful ● Some of system has basic routines to detect these kinds of attacks. The ZIP BOMB (1 / 4)
  • 61. ● Major of packaged software is packed as a ZIP file: .jar, .war, .docx, .xlsx…. ● Some Application Servers auto deploy them when put files in specific path ● What if we put a ZIP bomb renamed as a valid packed Application for a Tomcat? The ZIP BOMB (2 / 4)
  • 62.
  • 63. Perform a correct hardening of host and set conservative limits of files, CPU and memory that a processes can get The ZIP BOMB (4/ 4)
  • 64. ● Memory bomb is type of attack that aims to fill all system memory. ● Not only RAM also SWAP is affected. ● If you don’t have limits in your host it can consume all of your HD space as a SWAP space. Memory BOMB (1 / 5)
  • 65. ● What if you can run a memory bomb in a C.I. / C.D. system? ● What if the C.I. is deployed as multi-agent? Memory BOMB (2 / 5)
  • 66. Jenkins agent 1 Jenkins agent 1 Jenkins agent 1 Jenkins behavior: 1 - You put a memory bomb in your Jenkinsfile Memory BOMB (3 / 5) 2 - The Jenkins Master send to the job to an Jenkins agent and it runs the pipeline and the memory bomb. So the Jenkins agent host break down Jenkins master 3 - Jenkins Master detect that the jobs was not finished. So the send the same job to another Jenkins Agent 4 - Jenkins agent runs memory bomb and… break down 5 - Go to step 2
  • 67.
  • 68. ➔ Less Known but more effective in Docker. ➔ Today powerful computers can die very fast with no clue who pipeline is responsible. ➔ You can lost all your agents berore you find where the problem is. Memory BOMB (5 / 5)
  • 69. ● Fork bomb is type of attack that aims exhaust a system by creating new processes recursively ● It very difficult to detect if you don’t have a very good log system configured ● Run in a Pipeline is so easy ● In multi-agent system the results are the same that with Memory Bomb Fork BOMB! (1 / 2)
  • 70.
  • 72. Monitor your CI/CD as the critical system that it is. Must Monitor The system! ● The health of CI/CD is very important ● Even if your pipelines are not executed for a long time you must perform periodic security checks ● Logs are useful information ● Metrics can warn you of misused infrastructure
  • 73. The API contract must be fulfilled. No less, No more. The more is more problematic. Is your API Honest!? ● Do you use thread model on you APIs? ● How do you know all the endpoints that you have deployed? ● Are debug url opened in production?
  • 74. Human interactions in production environments can be dangerous. Keep your production inmutable. Use infrastructure as code. No HUMANS Beyond this point! ● Do you know how the current state of your production? ● Do you allow manual “fixes” on production? ● Do you know how many people can access? ● Do you monitor when and how they access?
  • 75. Security authentication proxies are good tools for this job. Trust the PASSWORD!? ● The passwords are supplied to third party software? ● No human can access but code can? ● Humans can write code to leak passwords
  • 76. You can mount trojanized libraries like libc as a volume. Keep in mind you deploy volumes. The Docker MOUNTED Trojan libraries!
  • 77. Containers are just a bunch o deltas on a file storage and a lot of genius around. Don’t forget that layers can be accessed. keep SECRETS safe! ● Do you store secrets in your containers? ● Do you store security configurations on your containers? ● Do you store intellectual property on your containers? ● Where are your containers published?
  • 79. IN THE DEPLOYMENT STEP User Code Building step Deployment step Production
  • 80. ● Old hack attack but useful ● Alias commands could be the best trojan in a system. ● There are very complicated to detect The Evil Alias! Perform a well hardening of your host systems & be careful with the bot users
  • 81.
  • 82. ● Do you deploy the C.I. software in your infrastructure? ● Do you have a network isolation from the building software to the production machine? ● Do you remember the scan by using Jenkins? Can you imagine use that with Metasploit to Production machines? The Shared infra! ➔ PLEASE use isolated networks (VPC, VLAN o something applicable to your infrastructure) ➔ If your C.I. system need to access to the production machines use LIMITED access API keys.
  • 83. ● Agents need a firewall to avoid lateral movements ● Don’t share the production network with any CI/CD software ● Don’t share the internal network with any CI/CD software keep NETWORK safe! If you can keep the CI/CD in their own network. Access control is mandatory.
  • 84. Keep this in mind Wrap up
  • 85. ● When your agents go down are less problematic if agents are deploy thru resilient infrastructure (like kubernetes). ● Containers from scratch are blessed simplicity, use often as you can. ● Deploy Critical software thru configurations (and trusted software) over complex code. ● You know about security just apply your knowledge in your CI/CD ● Don’t let that your automation tools become automated INsecurity The TIP Of the iceberg
  • 86. ➔ Who will watch the watchers? Manage your CI/CD as a critical software (because it is). ➔ Assume that you have a lot of potential insiders attackers. ➔ Protect your C.I. as your production systems. ➔ Monitoring. Always monitoring. Not only in the building step. QUIS CUSTODIET IPSOS CUSTODES?

Notas do Editor

  1. Nuestra opinión es solo nuestra.
  2. Las herramientas de integración contínua nacieron como un mecanismo para asegurar el funcionamiento del código cuando un grupo de desarrolladores trabajan en la misma base de código. En un principio para asegurar solamente que el código seguía compilando después de los “merges”; después para asegurar la funcionalidad comenzaron a poner énfasis en más fases, como todos los tipos de test que hay hoy en día. https://en.wikipedia.org/wiki/Continuous_delivery
  3. La calidad del código creado con las técnicas de integración contínua aumentó tanto que los equipos tenían la confianza de productivizar sin necesidad de una revisión “manual”. De repente cada commit tenía muchas posibilidades de llegar a producción sin ningún tipo de intervención. Y para conseguir esto surgieron técnicas alrededor de este concepto, como “A/B testing”, “zero downtime” y muchas otras orientadas a la automatización más extrema del proceso.
  4. CI but not CD Not CI nor CD
  5. CI but not CD Not CI nor CD
  6. CI but not CD Not CI nor CD
  7. Por qué el CI/CD? CI/CD CONSISTE EN LLEGAR A PRODUCCIÓN MÁS RÁPIDO Y CON MAYOR FRECUENCIA Las empresas que dependen de la productivización de software han visto, con envidia, como las grandes tecnológicas hacían cambios en producción decenas de veces al día. Adaptándose al mercado en tiempo record. El software tradicionalmente tardaba meses (o años) en llegar a producción. En las aproximaciones más agresivas de esta filosofía se persigue que cada commit del código acabe en producción.
  8. Hoy en día es rara la empresa que no usa, al menos, una de estas herramientas para automatizar sus procesos. Su adopción ha sido un proceso que ha mantenido la aceleración durante los últimos años.
  9. Para poder llevar a cabo el despliegue decenas de veces al día hay que minimizar el factor humano, todo lo que sea posible. Un pipeline lleva a cabo una de las fases, como compilar, pasar test, crear infraestructura virtual o desplegar el artefacto en un servidor.
  10. La forma de acabar con la típica batalla de operaciones vs desarrollo es crear un grupo mixto y una figura nueva (el DevOps). De esta forma los problemas que puedan surgir en cualquier fase son tratados sin discusiones sobre en qué tejado está la pelota.
  11. Como pasó con desarrolladores y operadores los conflictos con seguridad fueron el siguiente obstáculo a derribar camino a una producción más rápida. Si los proyectos incluyen especialistas en seguridad minimizan riesgos y dejaban de ser “parados” por seguridad.
  12. Si además estas personas tienen la seguridad comprometida es muy probable que infecten tus sistemas de trabajo. Sin contar que si pierde la máquina pierdes el código.
  13. Repositorio de solo lectura
  14. Repositorio de artefactos y dependencias controlado y seguro
  15. Variables de entorno marcadas seguras
  16. Reverse shell en el CI, un atacante puede tener acceso a todo lo que el usuario del CI tenga
  17. Reverse shell en el CI, un atacante puede tener acceso a todo lo que el usuario del CI tenga
  18. Exceso de privilegios al bot
  19. Evil Agent - usar ci/cd para hacking Mediante un Pipeline arbitrario o ganando persistencia en el agente
  20. Evil Agent - usar ci/cd para hacking Mediante un Pipeline arbitrario o ganando persistencia en el agente
  21. Evil Agent - usar ci/cd para hacking Mediante un Pipeline arbitrario o ganando persistencia en el agente
  22. Consumir límites de servicios públicos. Parece una tontería pero imagina que tu empresa crece mucho, y hemos dado github por sentado. Y de repente deja de funcionar el pipeline, y github parece caido solo para ti. Si necesitas un hotfix estás en problemas.
  23. GitBomb (no en Jenkins)
  24. Dockerhub leak mediante docker
  25. El Api del CI/CD debe ser segura, y pon especial cuidado con credenciales guardadas en texto plano (enlace a jenkins)
  26. Analisis de seguridad One Shot, lo hago en construcción y me olvido para siempre
  27. Source Code Ramsonware. Si exsite el softaware de este tipo es que a la gente le funciona.
  28. Romper el historico
  29. Cuando empujas este tipo de contendores con varias versiones al registry puedes cargartelo
  30. Acceso a internet
  31. Evil insider - un complice maligno retrasa la salida a producción activamente para que un atacante externo pueda explotar una vulnerabilidad no detectada
  32. Zip Bomb
  33. Zip Bomb
  34. Zip Bomb
  35. Zip Bomb
  36. Zip Bomb
  37. Zip Bomb
  38. En algunos casos el pc ha muerto tanto que no se ha grabado ni el log, el único indicio de ejecución es que el contador pierde los números de la ejecución fantasma.
  39. En algunos casos el pc ha muerto tanto que no se ha grabado ni el log, el único indicio de ejecución es que el contador pierde los números de la ejecución fantasma.
  40. En algunos casos el pc ha muerto tanto que no se ha grabado ni el log, el único indicio de ejecución es que el contador pierde los números de la ejecución fantasma.
  41. En algunos casos el pc ha muerto tanto que no se ha grabado ni el log, el único indicio de ejecución es que el contador pierde los números de la ejecución fantasma.
  42. En algunos casos el pc ha muerto tanto que no se ha grabado ni el log, el único indicio de ejecución es que el contador pierde los números de la ejecución fantasma.
  43. In the same way a typical fork bomb can blown away your agents. A fork bomb is also hard to find, sometimes the pipeline ends correctly, and then your agent crash.
  44. In the same way a typical fork bomb can blown away your agents. A fork bomb is also hard to find, sometimes the pipeline ends correctly, and then your agent crash.
  45. Monitorización continua que enlaza con los análisis de seguridad en fases de construcción.
  46. Comprobar que las apps cumplen las apis acordadas
  47. No humans allowed in production - infraestructura inmutable
  48. Exfiltar contraseñas solo accesibles en producción
  49. Librería troyanizada como volumen - que parezca culpa de otro
  50. Alias de comandos con mala baba
  51. Alias de comandos con mala baba
  52. Muchas veces el ci y el cd están en la misma
  53. Infraestructure as code done by security aware professionals.
  54. Infraestructure as code done by security aware professionals.