SlideShare a Scribd company logo
Teleport at Decisiv
Hunter Madison
What we will cover
Who is Hunter?
What does Decisiv do?
Securing Developer Access
Implementation Decisions
Q&A Session
Security Audits
Auditable Standards
● ISO 27002
● ISO 9000
● PCI DSS
● FedRamp
● NIST 500-292
● GDPR
● CCPA
Two Core Questions
● Who can do what, when?
● Why did someone do something then?
Designing Secure Systems
● When Security Gets in the Way - Interactions, volume 16, issue 6: Norman, D.
○ “The audience, either not understanding the rationale or simply
disagreeing with the necessity for the procedures imposed upon
them, see these as impediments to accomplishing their jobs.”
● Music Software & Interface Design: Steinberg's Dorico - Tantacrul
○ “The reality of modern life is that we are now required to keep
learning software all the time. It’s overwhelming, and a designer’s job
should be to try and reduce that pain as much as possible.”
● It's not good enough to be secure
● It has to be usable
Users
Users Don’t Change...
● End user workflows are generally set in stone
○ Workflows don’t change as the company scales up
○ What is ok with 5 developers isn't ok with 60
● Anything change made that an end user doesn’t see
immediate benefit in is hard to sell
...But The World Does
● Your company will grow in size and attack surface
○ Laptops will get stolen
○ You will need more cloud resources
● What works for five developers won’t work for sixty,
six hundred, or six thousand
The User Role
The User Role
● Creates user accounts
● Adds ssh keys
● (Sometimes) tries to keep the UIDs consistent
● (Sometimes) sets up a .bash_profile
● (Sometimes) configures sudoers
The User Role Has Problems
● What happens when new people join and need access?
○ Hopefully, their key is provided to you the day they start
○ And they don’t need access immediately
○ Script needs to get run everywhere
● What happens when people leave?
○ Script needs to run everywhere again
○ Revocations don’t happen as fast as they should
● What happens when access is used to change application or server state
improperly?
○ Installing apps onto boxes scheduled for decommissioning
○ App consoles
● What happens when one developer really wants to connect their blackberry to
the vpn and ssh into boxes?
How We Fixed It
Teleport At A High Level
● It’s a highly available cluster of authentication and proxy
servers which create an auditable and IDP secured SSH
bastion host
● It’s also X.509 Certificate Authority
● It can store its state locally or in services like S3 and
DynamoDB
○ For this talk, we are assuming that Teleport is
configured to use S3 and DynamoDB
● It records end user actions into multiple auditable forms
IDP
Configure your IDP
● Teleport benefits from having a good ontology inside
of your IDP
● Your IDP pushes...
○ Groups which become Teleport roles
○ Attributes which are interpolated when evaluating
roles
● All of this data is accessible to you at login time
● Making good use of it cuts down on the administrative
headache significantly
First Time Provisioning Workflow
Use Labels and Metadata
Interpolation
commands:
- name: instance_id
command: ['/bin/curl', 'http://169.254.169.254/latest/meta-data/instance-id']
period: 24h0m0s
- name: account_id
command: ['/bin/sh', '-c', 'curl -s
http://169.254.169.254/latest/dynamic/instance-identity/document|jq -r .accountId']
period: 24h0m0s
- name: public_ip
command: ['/bin/curl', 'http://169.254.169.254/latest/meta-data/public-ipv4']
period: 24h0m0s
- name: app_owner
command: ['/opt/bin/get_tag’, ‘App_Owner’]
period: 24h0m0s
Labels in the Teleport UI
Use Labels and Metadata Interpolation
kind: role
metadata:
name: developers
spec:
allow:
logins:
- developers # '{{ external["ssh_user"] }}'
node_labels:
app_owner: '{{ external["team"] }}'
deny:
logins: null
node_labels:
app_owner: operations
options:
cert_format: standard
client_idle_timeout: 8h0m0s
enhanced_recording:
- command
- network
forward_agent: false
max_session_ttl: 8h0m0s
port_forwarding: true
version: v3
SSH
It’s Just SSH
Host proxy.example.com
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
CheckHostIP no
CertificateFile
~/.tsh/keys/example.com/%u@example.com-cert.pub
IdentityFile ~/.tsh/keys/example.com/%u@example.com
Port 3023
Host *.apps.example.com
Port 3022
ProxyCommand ssh %r@proxy.example.com -s proxy:%h:%p
StrictHostKeyChecking no
Really, Just SSH
● Your tools that use SSH and can read ~/.ssh/ssh_config will work with Teleport
too!
○ tsh login and go!
○ Provided it supports certificate authentication (IDEA-216138)
● I’ve tested
○ Ansible (Parminko)
○ Inspec (Train)
○ Capistrano (Net::SSH)
○ OpenSSH
● Windows
○ Enable OpenSSH for Windows
○ tsh.exe only provides the signed certificates
Who started this?
/proc/<pid>/environ
● Teleport sets environment variables for each session
○ The two to know TELEPORT_SESSION and
SSH_TELEPORT_USER
● If you are unsure who started a process (like a tmux or
screen session) check the environ and find the
TELEPORT_SESSION
Terminal Example
Looking at Sessions, Proactively
Session Recording
● Teleport records every session for playback
● These are great to watch, but hard to search through
at scale
Events Table
● With “Enhanced Session Recording” enabled, a new
“session.command” event becomes available.
● It’s worth getting this data into your SIEM/Logging solution
○ NEW_IMAGE
● This gives you a really quick and easy way to find and log
“problem commands”
○ Screen
○ Tmux
○ psql
SIEM Integration
Not Just SSH
You Have A X509 CA
● Every time a user logs in with tsh, they get a newly refreshed X509 certificate
● You can use these client certs to authenticate with a lot of tools that don’t
necessarily support SSO out of the box
○ OpenVPN
○ Postgres
○ Mariadb
● For server certs start with `tctl get --with-secrets cert_authority`
● Same session expiration rules apply
● Role support is application dependent
○ You can see groups (as organization), valid logins (as locality) and the
username (as common name) in the subject
○ Your mileage will vary if the application supports parsing that data
Demo
Implementation Decisions
Teleport Deployment
“User” Tier
● End Users
○ Everywhere!
○ We are a global, remote company
○ Okta as an IDP
● Nodes
○ Lots of AWS accounts
○ We do account vending
○ Join tokens via cross account STS/SSM
Cluster Mode
● Tunneled
○ Single cluster
○ Nodes connect via the internet
○ Single SAML SP
● Trusted
○ Each account gets is own cluster
○ Single SAML SP shared via a primary cluster
○ We used this up to 4.0
○ When it breaks, it *hurts*
○ Users need to be aware of cluster switches
Load Balancing Tier
● We run Teleport in a HA setup
● Application Load Balancers
○ Change your timeout to get the web console to work.
○ You can let teleport generate its own self signed SSL cert. ALBs don’t check SSL.
● Network Load Balancers
○ You will see constant errors in the logs because of the heartbeat.
Application Tier
● We run Teleport via an autoscaling group with one host per AZ
● We stack the Auth and Proxy components onto the same hosts
● Use SSM for your “break glass” mechanism
Database Tier
● We use S3 to store sessions and Dynamo to store state and events
● This makes our auth/proxy hosts stateless
○ Really nice for upgrades
● Events in Dynamo open up SIEM integrations
○ DyanmoDB streams with NEW_IMAGE
Teleport Deployment
Any Questions?
Recommended Next Steps
Download Teleport
https://gravitational.com/teleport/download
Join Teleport Community
https://community.gravitational.com
Read the Teleport Admin Guide
https://gravitational.com/teleport/docs/
Teleport at Decisiv
Hunter Madison

More Related Content

PDF
Industry Best Practices for SSH Access
PDF
Webinar - 2020-09-23 - Escape the ticketing turmoil with Teleport PagerDuty &...
PPTX
Ssl in a nutshell
PPTX
SSL/TLS
ODP
Tls 1.3
PPT
Cryptography - Overview
Industry Best Practices for SSH Access
Webinar - 2020-09-23 - Escape the ticketing turmoil with Teleport PagerDuty &...
Ssl in a nutshell
SSL/TLS
Tls 1.3
Cryptography - Overview

What's hot (20)

PPTX
TLS - Transport Layer Security
PDF
SSL Secure socket layer
PPT
Ssl (Secure Sockets Layer)
PDF
How ssl works
PPT
ssl
PPTX
Introduction to SSL/TLS
PPTX
Transport layer security (tls)
PPTX
Ssl (Secure Socket Layer)
PPTX
TLS v1.3
PPT
PPTX
OpenSSL
PPTX
secure socket layer
PPTX
Introduction to SSL and How to Exploit & Secure
PPTX
SSL TLS Protocol
PPT
PDF
encryption presentation (SAGE-WA, 2010-10-05)
PDF
SSl/TLS Analysis
PPTX
Secure Socket Layer
PDF
SSL/TLS
TLS - Transport Layer Security
SSL Secure socket layer
Ssl (Secure Sockets Layer)
How ssl works
ssl
Introduction to SSL/TLS
Transport layer security (tls)
Ssl (Secure Socket Layer)
TLS v1.3
OpenSSL
secure socket layer
Introduction to SSL and How to Exploit & Secure
SSL TLS Protocol
encryption presentation (SAGE-WA, 2010-10-05)
SSl/TLS Analysis
Secure Socket Layer
SSL/TLS
Ad

Similar to Secure Developer Access at Decisiv (20)

PDF
Easy Microservices with JHipster - Devoxx BE 2017
PDF
Devoxx Belgium 2017 - easy microservices with JHipster
PDF
Higher Level Malware
PDF
Crikeycon 2019 Velociraptor Workshop
PPTX
Not my problem - Delegating responsibility to infrastructure
PDF
MobSecCon 2015 - Burning Marshmallows
PPTX
Pen Testing Development
PDF
CodeMotion tel aviv 2015 - burning marshmallows
PDF
Dev Ops & Secops & Bears, oh my!
PPTX
Q Con New York 2015 Presentation - Conjur
PDF
The State of the Veil Framework
PDF
The Supporting Role of Antivirus Evasion while Persisting
PDF
XP Days 2019: First secret delivery for modern cloud-native applications
PDF
DevOps Fest 2020. immutable infrastructure as code. True story.
PDF
Thick Client Testing Basics
PDF
Cpp In Soa
PPTX
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
PDF
Voxxed Days Villnius 2015 - Burning Marshmallows
PPTX
Montreal MuleSoft_Meetup_16-Aug.pptx
PDF
Prometheus (Microsoft, 2016)
Easy Microservices with JHipster - Devoxx BE 2017
Devoxx Belgium 2017 - easy microservices with JHipster
Higher Level Malware
Crikeycon 2019 Velociraptor Workshop
Not my problem - Delegating responsibility to infrastructure
MobSecCon 2015 - Burning Marshmallows
Pen Testing Development
CodeMotion tel aviv 2015 - burning marshmallows
Dev Ops & Secops & Bears, oh my!
Q Con New York 2015 Presentation - Conjur
The State of the Veil Framework
The Supporting Role of Antivirus Evasion while Persisting
XP Days 2019: First secret delivery for modern cloud-native applications
DevOps Fest 2020. immutable infrastructure as code. True story.
Thick Client Testing Basics
Cpp In Soa
Debugging Your Debugging Tools: What to do When Your Service Mesh Goes Down
Voxxed Days Villnius 2015 - Burning Marshmallows
Montreal MuleSoft_Meetup_16-Aug.pptx
Prometheus (Microsoft, 2016)
Ad

More from Teleport (6)

PDF
Top 10 Hacks of the Last Decade
PDF
Introducing Teleport cloud
PDF
Teleport 5.0 release webinar
PDF
Industry Best Practices For SSH - DevOps.com Webinar
PDF
DevOpsTO meetup 2018-08
PDF
Introduction to Gravitational Teleport
Top 10 Hacks of the Last Decade
Introducing Teleport cloud
Teleport 5.0 release webinar
Industry Best Practices For SSH - DevOps.com Webinar
DevOpsTO meetup 2018-08
Introduction to Gravitational Teleport

Recently uploaded (20)

PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PPTX
ai tools demonstartion for schools and inter college
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Understanding Forklifts - TECH EHS Solution
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Digital Systems & Binary Numbers (comprehensive )
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PPTX
L1 - Introduction to python Backend.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
CHAPTER 2 - PM Management and IT Context
PPTX
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
PDF
top salesforce developer skills in 2025.pdf
PDF
Softaken Excel to vCard Converter Software.pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
history of c programming in notes for students .pptx
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
ai tools demonstartion for schools and inter college
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Operating system designcfffgfgggggggvggggggggg
Understanding Forklifts - TECH EHS Solution
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Digital Systems & Binary Numbers (comprehensive )
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
How to Choose the Right IT Partner for Your Business in Malaysia
Wondershare Filmora 15 Crack With Activation Key [2025
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Upgrade and Innovation Strategies for SAP ERP Customers
L1 - Introduction to python Backend.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
CHAPTER 2 - PM Management and IT Context
Agentic AI Use Case- Contract Lifecycle Management (CLM).pptx
top salesforce developer skills in 2025.pdf
Softaken Excel to vCard Converter Software.pdf
Design an Analysis of Algorithms II-SECS-1021-03
history of c programming in notes for students .pptx

Secure Developer Access at Decisiv

  • 2. What we will cover Who is Hunter? What does Decisiv do? Securing Developer Access Implementation Decisions Q&A Session
  • 4. Auditable Standards ● ISO 27002 ● ISO 9000 ● PCI DSS ● FedRamp ● NIST 500-292 ● GDPR ● CCPA
  • 5. Two Core Questions ● Who can do what, when? ● Why did someone do something then?
  • 6. Designing Secure Systems ● When Security Gets in the Way - Interactions, volume 16, issue 6: Norman, D. ○ “The audience, either not understanding the rationale or simply disagreeing with the necessity for the procedures imposed upon them, see these as impediments to accomplishing their jobs.” ● Music Software & Interface Design: Steinberg's Dorico - Tantacrul ○ “The reality of modern life is that we are now required to keep learning software all the time. It’s overwhelming, and a designer’s job should be to try and reduce that pain as much as possible.” ● It's not good enough to be secure ● It has to be usable
  • 8. Users Don’t Change... ● End user workflows are generally set in stone ○ Workflows don’t change as the company scales up ○ What is ok with 5 developers isn't ok with 60 ● Anything change made that an end user doesn’t see immediate benefit in is hard to sell
  • 9. ...But The World Does ● Your company will grow in size and attack surface ○ Laptops will get stolen ○ You will need more cloud resources ● What works for five developers won’t work for sixty, six hundred, or six thousand
  • 11. The User Role ● Creates user accounts ● Adds ssh keys ● (Sometimes) tries to keep the UIDs consistent ● (Sometimes) sets up a .bash_profile ● (Sometimes) configures sudoers
  • 12. The User Role Has Problems ● What happens when new people join and need access? ○ Hopefully, their key is provided to you the day they start ○ And they don’t need access immediately ○ Script needs to get run everywhere ● What happens when people leave? ○ Script needs to run everywhere again ○ Revocations don’t happen as fast as they should ● What happens when access is used to change application or server state improperly? ○ Installing apps onto boxes scheduled for decommissioning ○ App consoles ● What happens when one developer really wants to connect their blackberry to the vpn and ssh into boxes?
  • 14. Teleport At A High Level ● It’s a highly available cluster of authentication and proxy servers which create an auditable and IDP secured SSH bastion host ● It’s also X.509 Certificate Authority ● It can store its state locally or in services like S3 and DynamoDB ○ For this talk, we are assuming that Teleport is configured to use S3 and DynamoDB ● It records end user actions into multiple auditable forms
  • 15. IDP
  • 16. Configure your IDP ● Teleport benefits from having a good ontology inside of your IDP ● Your IDP pushes... ○ Groups which become Teleport roles ○ Attributes which are interpolated when evaluating roles ● All of this data is accessible to you at login time ● Making good use of it cuts down on the administrative headache significantly
  • 18. Use Labels and Metadata Interpolation commands: - name: instance_id command: ['/bin/curl', 'http://169.254.169.254/latest/meta-data/instance-id'] period: 24h0m0s - name: account_id command: ['/bin/sh', '-c', 'curl -s http://169.254.169.254/latest/dynamic/instance-identity/document|jq -r .accountId'] period: 24h0m0s - name: public_ip command: ['/bin/curl', 'http://169.254.169.254/latest/meta-data/public-ipv4'] period: 24h0m0s - name: app_owner command: ['/opt/bin/get_tag’, ‘App_Owner’] period: 24h0m0s
  • 19. Labels in the Teleport UI
  • 20. Use Labels and Metadata Interpolation kind: role metadata: name: developers spec: allow: logins: - developers # '{{ external["ssh_user"] }}' node_labels: app_owner: '{{ external["team"] }}' deny: logins: null node_labels: app_owner: operations options: cert_format: standard client_idle_timeout: 8h0m0s enhanced_recording: - command - network forward_agent: false max_session_ttl: 8h0m0s port_forwarding: true version: v3
  • 21. SSH
  • 22. It’s Just SSH Host proxy.example.com StrictHostKeyChecking no UserKnownHostsFile /dev/null CheckHostIP no CertificateFile ~/.tsh/keys/example.com/%u@example.com-cert.pub IdentityFile ~/.tsh/keys/example.com/%u@example.com Port 3023 Host *.apps.example.com Port 3022 ProxyCommand ssh %r@proxy.example.com -s proxy:%h:%p StrictHostKeyChecking no
  • 23. Really, Just SSH ● Your tools that use SSH and can read ~/.ssh/ssh_config will work with Teleport too! ○ tsh login and go! ○ Provided it supports certificate authentication (IDEA-216138) ● I’ve tested ○ Ansible (Parminko) ○ Inspec (Train) ○ Capistrano (Net::SSH) ○ OpenSSH ● Windows ○ Enable OpenSSH for Windows ○ tsh.exe only provides the signed certificates
  • 25. /proc/<pid>/environ ● Teleport sets environment variables for each session ○ The two to know TELEPORT_SESSION and SSH_TELEPORT_USER ● If you are unsure who started a process (like a tmux or screen session) check the environ and find the TELEPORT_SESSION
  • 27. Looking at Sessions, Proactively
  • 28. Session Recording ● Teleport records every session for playback ● These are great to watch, but hard to search through at scale
  • 29. Events Table ● With “Enhanced Session Recording” enabled, a new “session.command” event becomes available. ● It’s worth getting this data into your SIEM/Logging solution ○ NEW_IMAGE ● This gives you a really quick and easy way to find and log “problem commands” ○ Screen ○ Tmux ○ psql
  • 32. You Have A X509 CA ● Every time a user logs in with tsh, they get a newly refreshed X509 certificate ● You can use these client certs to authenticate with a lot of tools that don’t necessarily support SSO out of the box ○ OpenVPN ○ Postgres ○ Mariadb ● For server certs start with `tctl get --with-secrets cert_authority` ● Same session expiration rules apply ● Role support is application dependent ○ You can see groups (as organization), valid logins (as locality) and the username (as common name) in the subject ○ Your mileage will vary if the application supports parsing that data
  • 33. Demo
  • 36. “User” Tier ● End Users ○ Everywhere! ○ We are a global, remote company ○ Okta as an IDP ● Nodes ○ Lots of AWS accounts ○ We do account vending ○ Join tokens via cross account STS/SSM
  • 37. Cluster Mode ● Tunneled ○ Single cluster ○ Nodes connect via the internet ○ Single SAML SP ● Trusted ○ Each account gets is own cluster ○ Single SAML SP shared via a primary cluster ○ We used this up to 4.0 ○ When it breaks, it *hurts* ○ Users need to be aware of cluster switches
  • 38. Load Balancing Tier ● We run Teleport in a HA setup ● Application Load Balancers ○ Change your timeout to get the web console to work. ○ You can let teleport generate its own self signed SSL cert. ALBs don’t check SSL. ● Network Load Balancers ○ You will see constant errors in the logs because of the heartbeat.
  • 39. Application Tier ● We run Teleport via an autoscaling group with one host per AZ ● We stack the Auth and Proxy components onto the same hosts ● Use SSM for your “break glass” mechanism
  • 40. Database Tier ● We use S3 to store sessions and Dynamo to store state and events ● This makes our auth/proxy hosts stateless ○ Really nice for upgrades ● Events in Dynamo open up SIEM integrations ○ DyanmoDB streams with NEW_IMAGE
  • 43. Recommended Next Steps Download Teleport https://gravitational.com/teleport/download Join Teleport Community https://community.gravitational.com Read the Teleport Admin Guide https://gravitational.com/teleport/docs/