SlideShare a Scribd company logo
1 of 46
APPLICATION SECURITY
FROM THE INSIDE OUT
TALES FROM THE TRENCHES
DISCLAIMER
$ WHOAMI
Ulisses Albuquerque
Application Security Engineer
@urma
ulissesalbuquerque
• Open-source advocate
• Software engineer turned security professional
• Builder of breaking tools
CONTEXT
Cloud-First
• All new applications
and services
designed with focus
on maximising cloud
usage and technical
excellence.
Risk Appetite
• Low resistance to
adoption of new
technologies,
SaaS/PaaS solutions
and developer
autonomy.
Build It, Run It
• Teams own
development and
operations of their
solutions, enabling
technical excellence
and encouraging
risk ownership.
Greenfields
• Early days with full
autonomy to run
application security
program as seen fit
for organisation.
IDENTIFYING GAPS
AND LAYING A
PLAN
EARLY DAYS (~18 MONTHS AGO)
• Shift-left approach already
agreed upon
• Vendor-centric perspective on
application security and
DevSecOps
People
• Trials on a few tools done in
collaboration with contractors
• Only one (open source) tool
deployed by SRE team for
container image scanning
Tools
• Penetration testing as change
management control for
releases
• Security only involved during
design and delivery
Process
AWS SHARED
RESPONSIBILITY
MODEL
Security information mixed
with regular CI output in build
logs
EARLY DAYS
 Challenges in identifying gaps and mapping tools
 Significant number of repositories (600+) and AWS accounts (100+)
 Multitude of programming languages, including Java, JavaScript, Go,
Kotlin, Swift, Scala, Python and more
 Sophisticated development environment and stacks
 Providing security scan results as early as possible in CI environments
 Leveraging SaaS solutions while ensuring security and confidentiality of
data
STACK DIVERSITY
DETERMINES
TOOLSET
TOOLS MUST SUPPORT ALL LANGUAGES
AND TECH STACK COMPONENTS USED
STARTING
LEFT OF THE
SDLC
LESSONS LEARNED
Not every repository is relevant, but no single individual or team knows
which ones are
Licensing per unique contributor (SCA) can get expensive if you have
turnover and/or outsource
Licensing per repository (SAST) can get expensive with highly
compartmentalized architectures (e.g., microservices)
STEALTH MODE
LESSONS LEARNED
Automation of security scans is not enough…
SAST reports are useless in text/log output formats
SAST scans can take a long time to complete, resulting in slow builds if
done inline
SCA scans are much better when done inline, but hooking to
dependency management tools can get tricky
STARTING LEFT OF THE SDLC
• Individual developers
interested in testing security
tools
• Informal security champions
identified
People
• Checkmarx (SAST) and Snyk
(SCA) chosen as first tools
• Manually triggered scans
across all repositories
Tools
• On demand triage of findings
• No mandatory scans for
change requests
• JIRA tickets created for
confirmed findings
Process
PROVIDING FRIENDLY
SECURITY TOOLING
OUTPUT
SECURITY SCAN RESULTS
CAN BE MUCH EASIER TO
INTERPRET WHEN NOT
BURIED IN BUILD LOGS
HOW TO PROVIDE
SECURITY
FEEDBACK AS
EARLY AS
POSSIBLE?
Code
Change
Pull
Request
CI Build
Artefacts
Cloud
Resources
SHORTENING THE FEEDBACK LOOP
OWASP TO THE
RESCUE
SHORTENING THE FEEDBACK LOOP
Scan
• Run security tools via
scripts in CI
01
Submit
• Publish scan results to
OWASP DefectDojo
02
Annotate
• Annotate GitHub pull
request with link to
DefectDojo scan results
03
OUR SOLUTION:
APPSEC HUB
APPSEC HUB FLOW
1. GitHub PR webhooks trigger
build in CI and notify hub
2. Hub requests SAST and SCA
scans
3. SCA and SAST pull code from
GitHub
4. CI scans container using Clair
5. Clair scan log published as
artefact to CI
6. SCA and SAST scan results
fetched and published to PR
7. Clair scan results published to PR
APPSEC HUB
APPSEC HUB: FUNCTIONAL, NOT PRACTICAL
“BUILD IT, RUN IT” PROVEN EASIER SAID THAN DONE
APPSEC HUB:
LIMITATIONS
 Debugging failed scans is a nightmare
 Inconsistent APIs across tools
 Asynchronous APIs with no notification (e.g.,
webhooks) require polling
 Extensive sanity checks to prevent triggering
actions on unmanaged repositories and CI
pipelines
 Side effect: explosive license usage due to
scans on irrelevant code
 Implementation architecture misaligned with
other services/applications in organisation
EAT YOUR OWN DOG
FOOD
BUILD AND OPERATE
SYSTEMS THE SAME
WAY THE TEAMS
YOU ARE
SUPPORTING DO
EAT YOUR OWN DOG
FOOD
 Converging on stack used by development
teams enabled…
 Better understanding of user experience
 Early identification of common false positives
 Support from development teams
 Credibility and respect
LESSONS LEARNED
Scanning code and artefacts with security tools is the bare minimum
Security orchestration > security automation
Security checks and gates must be aligned with existing development
practices and flows
⚠ Security checks should only block if 100% accurate
⚠ Do not create long-lived issues automatically, developers might
address issues as soon as they are reported via pull request annotations
Automation might expose broken or questionable patterns and
processes
Engineering decisions might impact ability to perform security checks (e.g., Snyk automated pull
requests)
APPSECD HUB
IMPROVING ON THE
ORIGINAL DESIGN
APPSECD HUB
 Lambda orchestration (using
AWS Step Functions)
 Full traceability via state
machine
 Monitoring and alarms with
real time notifications in Slack
 Aligned with best practices
from development teams
BUILDING
RELATIONSHIPS
ACROSS TEAMS
BEYOND TECHNOLOGY
Most developers consider security a distraction
or a roadblock – often for a good reason
“Security Ivory Tower” is still alive in many
organizations
Encouraging engagement requires giving back
and knowing when to compromise
BEYOND
TECHNOLOGY
 Providing security results inline
with pull requests encourages
risk ownership
 Approving PR = approving
associated issues found
 Do not underestimate the impact
of ❌ instead of ✅
 Full audit trail via configuration
management – who submitted the
pull request, who approved, who
merged
 Shared accountability for
security issues
https://speakerdeck.com/chriseng/time-to-grow-up-counterproductive-security-behaviors-that-must-end
Security Approval
Security Endorsement
Security Advice
https://www.slideshare.net/wickett/how-to-effect-change-in-the-epistemological-wasteland-of-application-security
CONCLUSIONS
Tools are means of achieving
alignment against security policies
Scanning profiles must adhere to expectations
and have optimal signal-to-noise ratios
Working reference implementations
over reporting violations
Libraries and code patterns provide security
make the developer’s work easier
Remove all ambiguity
Any room for ambiguous interpretation on
policies and expectations might cause problems
CONCLUSIONS
 Where are we today?
 200+ GitHub collaborators
 1,200 GitHub repositories
 Supported by a team of 5 people – 3 security architects and 2 security
engineers
 DevSecOps..?
 Ongoing journey
 Left side of SDLC (mostly) taken care of
 Enable other parts of security capability operate at DevOps speeds

More Related Content

What's hot

Implementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in JenkinsImplementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in JenkinsSuman Sourav
 
[DevSecOps Live] DevSecOps: Challenges and Opportunities
[DevSecOps Live] DevSecOps: Challenges and Opportunities[DevSecOps Live] DevSecOps: Challenges and Opportunities
[DevSecOps Live] DevSecOps: Challenges and OpportunitiesMohammed A. Imran
 
DevSecOps : an Introduction
DevSecOps : an IntroductionDevSecOps : an Introduction
DevSecOps : an IntroductionPrashanth B. P.
 
Integrating security into Continuous Delivery
Integrating security into Continuous DeliveryIntegrating security into Continuous Delivery
Integrating security into Continuous DeliveryTom Stiehm
 
Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Securitysedukull
 
ABN AMRO DevSecOps Journey
ABN AMRO DevSecOps JourneyABN AMRO DevSecOps Journey
ABN AMRO DevSecOps JourneyDerek E. Weeks
 
DevSecOps: essential tooling to enable continuous security 2019-09-16
DevSecOps: essential tooling to enable continuous security 2019-09-16DevSecOps: essential tooling to enable continuous security 2019-09-16
DevSecOps: essential tooling to enable continuous security 2019-09-16Rich Mills
 
Dev seccon london 2016 intelliment security
Dev seccon london 2016   intelliment securityDev seccon london 2016   intelliment security
Dev seccon london 2016 intelliment securityDevSecCon
 
DevSecOps : The Open Source Way by Yusuf Hadiwinata
DevSecOps : The Open Source Way by Yusuf HadiwinataDevSecOps : The Open Source Way by Yusuf Hadiwinata
DevSecOps : The Open Source Way by Yusuf HadiwinataHananto Wibowo Soenarto
 
DevSecOps - Building Rugged Software
DevSecOps - Building Rugged SoftwareDevSecOps - Building Rugged Software
DevSecOps - Building Rugged SoftwareSeniorStoryteller
 
SecDevOps 2.0 - Managing Your Robot Army
SecDevOps 2.0 - Managing Your Robot ArmySecDevOps 2.0 - Managing Your Robot Army
SecDevOps 2.0 - Managing Your Robot Armyconjur_inc
 
A Successful SAST Tool Implementation
A Successful SAST Tool ImplementationA Successful SAST Tool Implementation
A Successful SAST Tool ImplementationCheckmarx
 
DevSecOps | DevOps Sec
DevSecOps | DevOps SecDevSecOps | DevOps Sec
DevSecOps | DevOps SecRubal Jain
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaMohammed A. Imran
 
Integrating DevOps and Security
Integrating DevOps and SecurityIntegrating DevOps and Security
Integrating DevOps and SecurityStijn Muylle
 
Devops security-An Insight into Secure-SDLC
Devops security-An Insight into Secure-SDLCDevops security-An Insight into Secure-SDLC
Devops security-An Insight into Secure-SDLCSuman Sourav
 
Application Security at DevOps Speed - DevOpsDays Singapore 2016
Application Security at DevOps Speed - DevOpsDays Singapore 2016Application Security at DevOps Speed - DevOpsDays Singapore 2016
Application Security at DevOps Speed - DevOpsDays Singapore 2016Stefan Streichsbier
 
DevSecCon London 2017: when good containers go bad by Tim Mackey
DevSecCon London 2017: when good containers go bad by Tim MackeyDevSecCon London 2017: when good containers go bad by Tim Mackey
DevSecCon London 2017: when good containers go bad by Tim MackeyDevSecCon
 
DevSecOps-OWASP Indonesia Day 2017
DevSecOps-OWASP Indonesia Day 2017DevSecOps-OWASP Indonesia Day 2017
DevSecOps-OWASP Indonesia Day 2017Suman Sourav
 
10 things to get right for successful dev secops
10 things to get right for successful dev secops10 things to get right for successful dev secops
10 things to get right for successful dev secopsMohammed Ahmed
 

What's hot (20)

Implementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in JenkinsImplementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in Jenkins
 
[DevSecOps Live] DevSecOps: Challenges and Opportunities
[DevSecOps Live] DevSecOps: Challenges and Opportunities[DevSecOps Live] DevSecOps: Challenges and Opportunities
[DevSecOps Live] DevSecOps: Challenges and Opportunities
 
DevSecOps : an Introduction
DevSecOps : an IntroductionDevSecOps : an Introduction
DevSecOps : an Introduction
 
Integrating security into Continuous Delivery
Integrating security into Continuous DeliveryIntegrating security into Continuous Delivery
Integrating security into Continuous Delivery
 
Code Quality - Security
Code Quality - SecurityCode Quality - Security
Code Quality - Security
 
ABN AMRO DevSecOps Journey
ABN AMRO DevSecOps JourneyABN AMRO DevSecOps Journey
ABN AMRO DevSecOps Journey
 
DevSecOps: essential tooling to enable continuous security 2019-09-16
DevSecOps: essential tooling to enable continuous security 2019-09-16DevSecOps: essential tooling to enable continuous security 2019-09-16
DevSecOps: essential tooling to enable continuous security 2019-09-16
 
Dev seccon london 2016 intelliment security
Dev seccon london 2016   intelliment securityDev seccon london 2016   intelliment security
Dev seccon london 2016 intelliment security
 
DevSecOps : The Open Source Way by Yusuf Hadiwinata
DevSecOps : The Open Source Way by Yusuf HadiwinataDevSecOps : The Open Source Way by Yusuf Hadiwinata
DevSecOps : The Open Source Way by Yusuf Hadiwinata
 
DevSecOps - Building Rugged Software
DevSecOps - Building Rugged SoftwareDevSecOps - Building Rugged Software
DevSecOps - Building Rugged Software
 
SecDevOps 2.0 - Managing Your Robot Army
SecDevOps 2.0 - Managing Your Robot ArmySecDevOps 2.0 - Managing Your Robot Army
SecDevOps 2.0 - Managing Your Robot Army
 
A Successful SAST Tool Implementation
A Successful SAST Tool ImplementationA Successful SAST Tool Implementation
A Successful SAST Tool Implementation
 
DevSecOps | DevOps Sec
DevSecOps | DevOps SecDevSecOps | DevOps Sec
DevSecOps | DevOps Sec
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
 
Integrating DevOps and Security
Integrating DevOps and SecurityIntegrating DevOps and Security
Integrating DevOps and Security
 
Devops security-An Insight into Secure-SDLC
Devops security-An Insight into Secure-SDLCDevops security-An Insight into Secure-SDLC
Devops security-An Insight into Secure-SDLC
 
Application Security at DevOps Speed - DevOpsDays Singapore 2016
Application Security at DevOps Speed - DevOpsDays Singapore 2016Application Security at DevOps Speed - DevOpsDays Singapore 2016
Application Security at DevOps Speed - DevOpsDays Singapore 2016
 
DevSecCon London 2017: when good containers go bad by Tim Mackey
DevSecCon London 2017: when good containers go bad by Tim MackeyDevSecCon London 2017: when good containers go bad by Tim Mackey
DevSecCon London 2017: when good containers go bad by Tim Mackey
 
DevSecOps-OWASP Indonesia Day 2017
DevSecOps-OWASP Indonesia Day 2017DevSecOps-OWASP Indonesia Day 2017
DevSecOps-OWASP Indonesia Day 2017
 
10 things to get right for successful dev secops
10 things to get right for successful dev secops10 things to get right for successful dev secops
10 things to get right for successful dev secops
 

Similar to Application Security from the Inside Out

Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOpsSetu Parimi
 
AWS live hack: Atlassian + Snyk OSS on AWS
AWS live hack: Atlassian + Snyk OSS on AWSAWS live hack: Atlassian + Snyk OSS on AWS
AWS live hack: Atlassian + Snyk OSS on AWSEric Smalling
 
Unleash Team Productivity with Real-Time Operations (DEV203-S) - AWS re:Inven...
Unleash Team Productivity with Real-Time Operations (DEV203-S) - AWS re:Inven...Unleash Team Productivity with Real-Time Operations (DEV203-S) - AWS re:Inven...
Unleash Team Productivity with Real-Time Operations (DEV203-S) - AWS re:Inven...Amazon Web Services
 
Cloud security : Automate or die
Cloud security : Automate or dieCloud security : Automate or die
Cloud security : Automate or diePriyanka Aash
 
Digital Product Security
Digital Product SecurityDigital Product Security
Digital Product SecuritySoftServe
 
AppSec in an Agile World
AppSec in an Agile WorldAppSec in an Agile World
AppSec in an Agile WorldDavid Lindner
 
HouSecCon 2019: Offensive Security - Starting from Scratch
HouSecCon 2019: Offensive Security - Starting from ScratchHouSecCon 2019: Offensive Security - Starting from Scratch
HouSecCon 2019: Offensive Security - Starting from ScratchSpencer Koch
 
How Splunk and AWS Enabled End-to-End Visibility for PagerDuty and Bolstered ...
How Splunk and AWS Enabled End-to-End Visibility for PagerDuty and Bolstered ...How Splunk and AWS Enabled End-to-End Visibility for PagerDuty and Bolstered ...
How Splunk and AWS Enabled End-to-End Visibility for PagerDuty and Bolstered ...Amazon Web Services
 
Security's DevOps Transformation
Security's DevOps TransformationSecurity's DevOps Transformation
Security's DevOps TransformationMichele Chubirka
 
Secure SDLC in mobile software development.
Secure SDLC in mobile software development.Secure SDLC in mobile software development.
Secure SDLC in mobile software development.Mykhailo Antonishyn
 
Cncf checkov and bridgecrew
Cncf checkov and bridgecrewCncf checkov and bridgecrew
Cncf checkov and bridgecrewLibbySchulze
 
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程Duran Hsieh
 
Building and Adopting a Cloud-Native Security Program
Building and Adopting a Cloud-Native Security ProgramBuilding and Adopting a Cloud-Native Security Program
Building and Adopting a Cloud-Native Security ProgramPriyanka Aash
 
Deploying Secure Modern Apps in Evolving Infrastructures
Deploying Secure Modern Apps in Evolving InfrastructuresDeploying Secure Modern Apps in Evolving Infrastructures
Deploying Secure Modern Apps in Evolving InfrastructuresSBWebinars
 
A Warrior's Journey: Building a Global AppSec Program - OWASP Global AppSec 2020
A Warrior's Journey: Building a Global AppSec Program - OWASP Global AppSec 2020A Warrior's Journey: Building a Global AppSec Program - OWASP Global AppSec 2020
A Warrior's Journey: Building a Global AppSec Program - OWASP Global AppSec 2020Brian Levine
 
PIACERE - DevSecOps Automated
PIACERE - DevSecOps AutomatedPIACERE - DevSecOps Automated
PIACERE - DevSecOps AutomatedPIACERE
 
Security and DevOps: Agility and Teamwork - SID315 - re:Invent 2017
Security and DevOps: Agility and Teamwork - SID315 - re:Invent 2017Security and DevOps: Agility and Teamwork - SID315 - re:Invent 2017
Security and DevOps: Agility and Teamwork - SID315 - re:Invent 2017Amazon Web Services
 
Security Checkpoints in Agile SDLC
Security Checkpoints in Agile SDLCSecurity Checkpoints in Agile SDLC
Security Checkpoints in Agile SDLCRahul Raghavan
 
Pentest is yesterday, DevSecOps is tomorrow
Pentest is yesterday, DevSecOps is tomorrowPentest is yesterday, DevSecOps is tomorrow
Pentest is yesterday, DevSecOps is tomorrowAmien Harisen Rosyandino
 

Similar to Application Security from the Inside Out (20)

Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOps
 
AWS live hack: Atlassian + Snyk OSS on AWS
AWS live hack: Atlassian + Snyk OSS on AWSAWS live hack: Atlassian + Snyk OSS on AWS
AWS live hack: Atlassian + Snyk OSS on AWS
 
Unleash Team Productivity with Real-Time Operations (DEV203-S) - AWS re:Inven...
Unleash Team Productivity with Real-Time Operations (DEV203-S) - AWS re:Inven...Unleash Team Productivity with Real-Time Operations (DEV203-S) - AWS re:Inven...
Unleash Team Productivity with Real-Time Operations (DEV203-S) - AWS re:Inven...
 
Cloud security : Automate or die
Cloud security : Automate or dieCloud security : Automate or die
Cloud security : Automate or die
 
Digital Product Security
Digital Product SecurityDigital Product Security
Digital Product Security
 
AppSec in an Agile World
AppSec in an Agile WorldAppSec in an Agile World
AppSec in an Agile World
 
HouSecCon 2019: Offensive Security - Starting from Scratch
HouSecCon 2019: Offensive Security - Starting from ScratchHouSecCon 2019: Offensive Security - Starting from Scratch
HouSecCon 2019: Offensive Security - Starting from Scratch
 
How Splunk and AWS Enabled End-to-End Visibility for PagerDuty and Bolstered ...
How Splunk and AWS Enabled End-to-End Visibility for PagerDuty and Bolstered ...How Splunk and AWS Enabled End-to-End Visibility for PagerDuty and Bolstered ...
How Splunk and AWS Enabled End-to-End Visibility for PagerDuty and Bolstered ...
 
Security's DevOps Transformation
Security's DevOps TransformationSecurity's DevOps Transformation
Security's DevOps Transformation
 
Secure SDLC in mobile software development.
Secure SDLC in mobile software development.Secure SDLC in mobile software development.
Secure SDLC in mobile software development.
 
Cncf checkov and bridgecrew
Cncf checkov and bridgecrewCncf checkov and bridgecrew
Cncf checkov and bridgecrew
 
Agile and Secure SDLC
Agile and Secure SDLCAgile and Secure SDLC
Agile and Secure SDLC
 
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
DevSecOps 實踐與 GitHub 進階安全: 建立安全的開發流程
 
Building and Adopting a Cloud-Native Security Program
Building and Adopting a Cloud-Native Security ProgramBuilding and Adopting a Cloud-Native Security Program
Building and Adopting a Cloud-Native Security Program
 
Deploying Secure Modern Apps in Evolving Infrastructures
Deploying Secure Modern Apps in Evolving InfrastructuresDeploying Secure Modern Apps in Evolving Infrastructures
Deploying Secure Modern Apps in Evolving Infrastructures
 
A Warrior's Journey: Building a Global AppSec Program - OWASP Global AppSec 2020
A Warrior's Journey: Building a Global AppSec Program - OWASP Global AppSec 2020A Warrior's Journey: Building a Global AppSec Program - OWASP Global AppSec 2020
A Warrior's Journey: Building a Global AppSec Program - OWASP Global AppSec 2020
 
PIACERE - DevSecOps Automated
PIACERE - DevSecOps AutomatedPIACERE - DevSecOps Automated
PIACERE - DevSecOps Automated
 
Security and DevOps: Agility and Teamwork - SID315 - re:Invent 2017
Security and DevOps: Agility and Teamwork - SID315 - re:Invent 2017Security and DevOps: Agility and Teamwork - SID315 - re:Invent 2017
Security and DevOps: Agility and Teamwork - SID315 - re:Invent 2017
 
Security Checkpoints in Agile SDLC
Security Checkpoints in Agile SDLCSecurity Checkpoints in Agile SDLC
Security Checkpoints in Agile SDLC
 
Pentest is yesterday, DevSecOps is tomorrow
Pentest is yesterday, DevSecOps is tomorrowPentest is yesterday, DevSecOps is tomorrow
Pentest is yesterday, DevSecOps is tomorrow
 

More from Ulisses Albuquerque

Software Composition Analysis Deep Dive
Software Composition Analysis Deep DiveSoftware Composition Analysis Deep Dive
Software Composition Analysis Deep DiveUlisses Albuquerque
 
Using Online Activity as Digital Fingerprints to Create a Better Spear Phisher
Using Online Activity as Digital Fingerprints to Create a Better Spear PhisherUsing Online Activity as Digital Fingerprints to Create a Better Spear Phisher
Using Online Activity as Digital Fingerprints to Create a Better Spear PhisherUlisses Albuquerque
 
ROM Hacking for Fun, Profit & Infinite Lives
ROM Hacking for Fun, Profit & Infinite LivesROM Hacking for Fun, Profit & Infinite Lives
ROM Hacking for Fun, Profit & Infinite LivesUlisses Albuquerque
 

More from Ulisses Albuquerque (6)

Software Composition Analysis Deep Dive
Software Composition Analysis Deep DiveSoftware Composition Analysis Deep Dive
Software Composition Analysis Deep Dive
 
Better Do What They Told Ya
Better Do What They Told YaBetter Do What They Told Ya
Better Do What They Told Ya
 
Using Online Activity as Digital Fingerprints to Create a Better Spear Phisher
Using Online Activity as Digital Fingerprints to Create a Better Spear PhisherUsing Online Activity as Digital Fingerprints to Create a Better Spear Phisher
Using Online Activity as Digital Fingerprints to Create a Better Spear Phisher
 
PCI DSS e Metodologias Ágeis
PCI DSS e Metodologias ÁgeisPCI DSS e Metodologias Ágeis
PCI DSS e Metodologias Ágeis
 
SmartTV Security
SmartTV SecuritySmartTV Security
SmartTV Security
 
ROM Hacking for Fun, Profit & Infinite Lives
ROM Hacking for Fun, Profit & Infinite LivesROM Hacking for Fun, Profit & Infinite Lives
ROM Hacking for Fun, Profit & Infinite Lives
 

Recently uploaded

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsPrecisely
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsAndrey Dotsenko
 

Recently uploaded (20)

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Unlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power SystemsUnlocking the Potential of the Cloud for IBM Power Systems
Unlocking the Potential of the Cloud for IBM Power Systems
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

Application Security from the Inside Out

  • 1. APPLICATION SECURITY FROM THE INSIDE OUT TALES FROM THE TRENCHES
  • 3. $ WHOAMI Ulisses Albuquerque Application Security Engineer @urma ulissesalbuquerque • Open-source advocate • Software engineer turned security professional • Builder of breaking tools
  • 4. CONTEXT Cloud-First • All new applications and services designed with focus on maximising cloud usage and technical excellence. Risk Appetite • Low resistance to adoption of new technologies, SaaS/PaaS solutions and developer autonomy. Build It, Run It • Teams own development and operations of their solutions, enabling technical excellence and encouraging risk ownership. Greenfields • Early days with full autonomy to run application security program as seen fit for organisation.
  • 5.
  • 7. EARLY DAYS (~18 MONTHS AGO) • Shift-left approach already agreed upon • Vendor-centric perspective on application security and DevSecOps People • Trials on a few tools done in collaboration with contractors • Only one (open source) tool deployed by SRE team for container image scanning Tools • Penetration testing as change management control for releases • Security only involved during design and delivery Process
  • 9. Security information mixed with regular CI output in build logs
  • 10. EARLY DAYS  Challenges in identifying gaps and mapping tools  Significant number of repositories (600+) and AWS accounts (100+)  Multitude of programming languages, including Java, JavaScript, Go, Kotlin, Swift, Scala, Python and more  Sophisticated development environment and stacks  Providing security scan results as early as possible in CI environments  Leveraging SaaS solutions while ensuring security and confidentiality of data
  • 11. STACK DIVERSITY DETERMINES TOOLSET TOOLS MUST SUPPORT ALL LANGUAGES AND TECH STACK COMPONENTS USED
  • 13. LESSONS LEARNED Not every repository is relevant, but no single individual or team knows which ones are Licensing per unique contributor (SCA) can get expensive if you have turnover and/or outsource Licensing per repository (SAST) can get expensive with highly compartmentalized architectures (e.g., microservices)
  • 15. LESSONS LEARNED Automation of security scans is not enough… SAST reports are useless in text/log output formats SAST scans can take a long time to complete, resulting in slow builds if done inline SCA scans are much better when done inline, but hooking to dependency management tools can get tricky
  • 16. STARTING LEFT OF THE SDLC • Individual developers interested in testing security tools • Informal security champions identified People • Checkmarx (SAST) and Snyk (SCA) chosen as first tools • Manually triggered scans across all repositories Tools • On demand triage of findings • No mandatory scans for change requests • JIRA tickets created for confirmed findings Process
  • 17. PROVIDING FRIENDLY SECURITY TOOLING OUTPUT SECURITY SCAN RESULTS CAN BE MUCH EASIER TO INTERPRET WHEN NOT BURIED IN BUILD LOGS
  • 18.
  • 19. HOW TO PROVIDE SECURITY FEEDBACK AS EARLY AS POSSIBLE?
  • 22.
  • 23. SHORTENING THE FEEDBACK LOOP Scan • Run security tools via scripts in CI 01 Submit • Publish scan results to OWASP DefectDojo 02 Annotate • Annotate GitHub pull request with link to DefectDojo scan results 03
  • 24.
  • 26. APPSEC HUB FLOW 1. GitHub PR webhooks trigger build in CI and notify hub 2. Hub requests SAST and SCA scans 3. SCA and SAST pull code from GitHub 4. CI scans container using Clair 5. Clair scan log published as artefact to CI 6. SCA and SAST scan results fetched and published to PR 7. Clair scan results published to PR
  • 28. APPSEC HUB: FUNCTIONAL, NOT PRACTICAL “BUILD IT, RUN IT” PROVEN EASIER SAID THAN DONE
  • 29. APPSEC HUB: LIMITATIONS  Debugging failed scans is a nightmare  Inconsistent APIs across tools  Asynchronous APIs with no notification (e.g., webhooks) require polling  Extensive sanity checks to prevent triggering actions on unmanaged repositories and CI pipelines  Side effect: explosive license usage due to scans on irrelevant code  Implementation architecture misaligned with other services/applications in organisation
  • 30.
  • 31. EAT YOUR OWN DOG FOOD BUILD AND OPERATE SYSTEMS THE SAME WAY THE TEAMS YOU ARE SUPPORTING DO
  • 32.
  • 33.
  • 34. EAT YOUR OWN DOG FOOD  Converging on stack used by development teams enabled…  Better understanding of user experience  Early identification of common false positives  Support from development teams  Credibility and respect
  • 35. LESSONS LEARNED Scanning code and artefacts with security tools is the bare minimum Security orchestration > security automation Security checks and gates must be aligned with existing development practices and flows ⚠ Security checks should only block if 100% accurate ⚠ Do not create long-lived issues automatically, developers might address issues as soon as they are reported via pull request annotations Automation might expose broken or questionable patterns and processes Engineering decisions might impact ability to perform security checks (e.g., Snyk automated pull requests)
  • 36. APPSECD HUB IMPROVING ON THE ORIGINAL DESIGN
  • 37. APPSECD HUB  Lambda orchestration (using AWS Step Functions)  Full traceability via state machine  Monitoring and alarms with real time notifications in Slack  Aligned with best practices from development teams
  • 39.
  • 40. BEYOND TECHNOLOGY Most developers consider security a distraction or a roadblock – often for a good reason “Security Ivory Tower” is still alive in many organizations Encouraging engagement requires giving back and knowing when to compromise
  • 41. BEYOND TECHNOLOGY  Providing security results inline with pull requests encourages risk ownership  Approving PR = approving associated issues found  Do not underestimate the impact of ❌ instead of ✅  Full audit trail via configuration management – who submitted the pull request, who approved, who merged  Shared accountability for security issues
  • 45. CONCLUSIONS Tools are means of achieving alignment against security policies Scanning profiles must adhere to expectations and have optimal signal-to-noise ratios Working reference implementations over reporting violations Libraries and code patterns provide security make the developer’s work easier Remove all ambiguity Any room for ambiguous interpretation on policies and expectations might cause problems
  • 46. CONCLUSIONS  Where are we today?  200+ GitHub collaborators  1,200 GitHub repositories  Supported by a team of 5 people – 3 security architects and 2 security engineers  DevSecOps..?  Ongoing journey  Left side of SDLC (mostly) taken care of  Enable other parts of security capability operate at DevOps speeds

Editor's Notes

  1. While most of our story focuses on a specific organization, this is collation of experiences in multiple organizations of different sizes and cultures in implementing an application security program. It is intentionally told in a linear fashion to facilitate story telling but happened in a much more tortuous way in real life.
  2. Our not-so-fictional organization and the point in time in their journey to a devsecops/shared responsibility model
  3. Tech stack – top row: python, golang, java, swift, kotlin, javascript, scala Middle row: cloud formation, lambda, ecs, dynamodb, sagemaker, cognito, s3 Bottom row: buildkite, datadog, sumologic, github enterprise, slack, salesforce, apigee
  4. Support for languages/tech stacks limits products, which limits ability to shop around and exposes us to licensing issues
  5. We believed our experience as developers could be leveraged to deliver an implementation that is technically excellent in a short timeframe, and we could iterate from that. We enabled security scans in commits via an API we built, which allowed our pipeline tool to trigger scans by having security tools pull code from GitHub
  6. Why not move even further left and provide feedback via IDE (i.e., ”code change”?) – we do not have a standard IDE in the organization, and some artefacts on which we report (like containers) are only built as part of the CI pipeline
  7. Use OWASP as a reference – OWASP AppSec pipeline project Why remove defect tracker? Because we believe tickets created by systems are perceived as less valuable by development teams, and because those create a permanent record of what could potentially be an ephemeral/temporary vulnerable state during the development of a feature