SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
SESSION ID:
#RSAC
Vinayendra Nataraja
REPRONOW-SAVE TIME REPRODUCING
AND TRIAGING SECURITY BUGS
ASEC-W12
Senior Product Security Engineer
Salesforce
@vinayendra
Lakshmi Sudheer
Security Researcher
Adobe, Inc.
@Lak5hmi5udheer
#RSAC
About Us
Vinayendra Nataraja
• Senior Product Security Engineer @ Salesforce
• Heads one of the largest private Bug Bounty program
• Twitter: @vinayendra
#RSAC
Lakshmi Sudheer
• Security Researcher @ Adobe
• Twitter: @Lak5hmi5udheer
About Us
#RSAC
• Bug Bounty Program
• The Triaging Process
• How ReproNow can help?
• How does the tool work?
• DEMO
• Future Plans
Agenda
#RSAC
Bug Bounty (aka: Crowdsourced Security)
• Companies pay Hackers for a responsible disclosure
• Bounty is paid only for finding a valid security bug
• Company gets good security bugs for a fraction of the cost of
consulting firms or hiring full time hackers
• Hackers get bragging rights / reputation + part time / full
time income
Bug Bounty Program
#RSAC
Bug Bounty Setup
• Company decides on a structured program with defined
scope and rules
• Hackers are setup with credentials to login and test
• Hackers submit bugs which need to be validated and fixed
• Company pays bounty to hackers for valid bugs
Bug Bounty Program
#RSAC
Researcher
Submits
Security Bug
Security
Engineer
triages
Company
resolves the
bug
Researcher is
awarded
Bounty!
Expectation Vs Reality
#RSAC
Researcher
submits a
bug
Researcher
provides
requests and
screenshots
Security
Engineer tries
to triage but
needs more
info
Researcher
provides
video of the
vulnerability
Security
engineer
requests for
more info
Reality
Expectation Vs Reality
#RSAC
Information required for the Security Engineer to Triage
• Product
• URL
• Impact & Description
• Steps to Reproduce
• Request/Response
• Screenshots
• Video
• Documentation Links
Sometimes even more...
The Triaging Process
#RSAC
The Triaging Process : Report 1
#RSAC
The Triaging Process : Report 2
#RSAC
The Triaging Process
#RSAC
The Triaging Process
Triage Issues
• Communication Issues
– Non native English speakers
– Knowledge gap of product
– Not everyone can write a good report
• Complex workflows
• Long reports will be time consuming to setup and triage
• WannaBe Hackers
#RSAC
The Triaging Process
Bug Bounty Pains for Companies
• Time spent
– Going back and forth with researchers
– Reproducing the bug all over again
• Reduced efficiency
• Increase in average resolution time
• Researcher Relationship
• Researcher Retention
#RSAC
The Triaging Process
“Triage takes time. So much time .... we paid people to help us
run our bounty programs and it still took up a ton of time. Expect
the time commitment to be 2–3 people full-time … The price you
pay for the good issues is the cost of filtering out the junk.”
- Collin Greene, Facebook
#RSAC
ReproNow: Introduction
What is ReproNow?
• A browser extension to capture Desktop and Network Traffic
• Has a responsive UI for Security Engineers to view and search
• Hides the traffic inside a mkv/webm video files
• Works cross browser using extensibility API, currently supports and
#RSAC
ReproNow: Introduction
What is ReproNow? (Continued)
•No server interaction, everything on client
•Export requests as cURL
•Store history in Local Storage
•Multiple options to capture Network
•Open Source
#RSAC
ReproNow: Working
How it Works?
• getUserMedia API to Capture Screen
• WebRequest API to Capture Networks
• Local storage to store the video and traffic
• Mkv files to hide the Network data.
#RSAC
How Screen Capture Works?
• chrome.desktopCapture API allows to capture user screen.
• The desktopCapture API uses getUserMedia API which is a HTML5 API to capture
camera/mic and also screen.
• getUserMedia API uses MediaRecorder API to convert recorded video into
ArrayBuffer
ReproNow:Screen Capture
#RSAC
How Screen Capture Works? (Contd..)
• MediaRecorder Supports multiple mimetypes (we use
webm,codec: VP8)
• The generated ArrayBuffer can we converted in blob
URL using createObjectURL API
• The object can we piped into <video> tag for viewing or
can we downloaded to user’s device.
ReproNow:Screen Capture
#RSAC
ReproNow: Screen Capture of Code
#RSAC
ReproNow: Screen Capture of Code
#RSAC
How Network Capture Works?
• Two possible ways to intercept Network
– chrome.debugger API which lets you attach to tabs and intercept traffic
• But puts all tabs/windows into debugger mode :(
– chrome.webRequest API observe and analyze traffic and to intercept, block,
or modify requests in-flight
• Cannot fetch response body :(
ReproNow: Network Capture
#RSAC
chrome.webRequest API
onBeforeRequest
• Fires when a request is about to occur
onBeforeSendHeaders
• Initial headers have been prepared
onSendHeaders
• All headers are prepared (Read Only)
chrome.webRequest API - Request
#RSAC
onHeadersReceived
• Response header is received
onAuthRequired
• Request requires authentication of the user.
onBeforeRedirect
• Redirect is about to be executed
onResponseStarted
• First byte of the response body is received (Read Only)
onCompleted
• Request was succesful
onErrorOccurred
• Request Failed
chrome.webRequest API - Response
#RSAC
ReproNow uses
• onBeforeRequest to get URL, method and Request Body
• onBeforeSendHeaders to get all request headers
• onHeadersReceived to get all response headers
chrome.webRequest API (contd)
#RSAC
• Start clock between Screen and network to keep both in sync
• Option provided for user to capture network when navigating between tabs
– Capture a specific tab
– Capture all tabs
– Capture network of all activated tabs
– Capture traffic only activated tab
Network Capture (Cont’d)
#RSAC
Network Capture: Code
#RSAC
How do we share Screen + Network ?
Requirement:
All video operations must happen Client-side
Solution:
• Downloading 2 files - Network and video separately
• Zipping network file and the video file
What if we can insert the network file inside video?
Exporting Screen and Network
#RSAC
The Need:
1. Video Format that support adding a JSON file without breaking the video.
2. API/Tool to perform client side operation to manipulate the video file.
Inserting JSON into Video file
#RSAC
Inserting JSON into Video file
The Need:
1. Video Format that support adding a JSON file without breaking the video.
2. API/Tool to perform client side operation to manipulate the video file.
#RSAC
Video Formats
Video formats
Most common formats:
• MP4
• MKV
• AVI
• FLV
#RSAC
MPEG-4
MPEG-4 (MP4)
• Digital multimedia format container
• Directly based on from QuickTime File Format
• Stores audio, video, subtitles and images
• File Extensions:
– Video + Audio : .mp4
– Audio only : .m4a
– Raw MPEG-4 visual bitstream : .m4v
#RSAC
MPEG-4
MPEG-4 Structure
● ftyp - file type
● moov - contains metadata (song title, author, url,
and other information)
● mdat - contains the audio frames and video frames
#RSAC
MKV
Matroska(MKV)
• Open source container
• Free container format
• Holds unlimited audio tracks, video tracks, subtitles, files
• WebM was specifically designed for the internet is derived from Matroska and
can be used interchangeably
• File Extensions:
– Video + Audio : .mkv
– Stereoscopic Video: .mk3d
– Audio only : .mka
#RSAC
MKV: Structure
MKV Container
● Header: EBML version
● Meta Seek Information: Index to other groups like Track
information, Chapters, Tags, Cues, Attachments
● Segment Information: Basic information, title, UNique ID
● Track section: Basic information about each of the tracks,
codec, Sample Rate
#RSAC
MKV: Structure
● Chapters: Section lists all of the Chapters
● Clusters: contain all of the video frames and audio for
each track
● Cueing Data: Cues are the index for each of the tracks.
This is used for seeking to a specific time when playing
back the file
● Attachment section: Allows attaching any file type to
the video.
● Tagging section: This contains Tags that relate to the
the file and tracks like the actors, singers and song
information
#RSAC
MKV: Attachment Section
Attachment Section
#RSAC
• No restrictions on filetype in the attachment section
• Webm is built on MKV providing greater flexibility on the
client side
• Almost all browsers support MKV/WebM
• Easy to store and dump a JSON file
Why Mkv?
#RSAC
Inserting JSON into a Video file
The Need:
1. Video Format that support adding a JSON file without breaking the video.
2. API/Tool to perform client side operation to manipulate the video file.
#RSAC
Ffmpeg
Fast Forward MPEG ( ffmpeg )
• Free Multimedia Framework
• Encodes, Decodes, Muxes, Demuxes audio and performs other operations on video
and audio files
• Contains libraries like libavcodec which supports more than 200 video/audio formats
• One of the most widely used platform for audio/video manipulation
#RSAC
Embedding JSON
What we used..
• ffmpeg.js - Ffmpeg that can run on a browser
Ffmpeg
-i video.mkv
-attach network_data.json
-metadata:s:t mimetype=application/json
output.mkv
• ts-ebml - Node.js library that Encodes/Decodes Mkv files on browser using
Browserify
#RSAC
1. Record the Screen using getUserMedia API and store it as arrayBuffer
2. Capture Network using WebRequest API and store it as JSON
3. Save the video and JSON in localstorage
4. Preview the video using <video> tag
5. Sync Network with Screen
6. Download the Video in MKV by attaching the network JSON as an attachment
Putting it all together
#RSAC
DEMO
ReproNow: Demo
#RSAC
For Bug Bounty hunters
• Awesome screen capture tool!
• Preview the capture before sharing
• Ability to copy paste raw requests/responses and generate cURL script for
specific ones
• A video (with network) speaks thousand words
• No server is involved and is also open source, therefore no need to trust a
vendor to keep your data secure
• Faster Triage = Faster Bounty
How Can ReproNow Help?
#RSAC
For Organizations
• Reproduce without manually going through the steps
• Helps in reducing noise in your bug bounty program
• Saves your Security Engineer’s Time
• Saves money by reducing expenditure on managed services
• Can be used for QA internally
• Faster Traige = Faster Bounty = Researcher Retention
How Can ReproNow Help?
#RSAC
Extending ReproNow
Extending ReproNow
• Automatically Triage Bug Bounty Bugs
– Replay the network requests in internal builds to verify the bug
– Replay the network in various browsers
• Help Detect login to run ZAP
– Salesforce Appexchange Security Review uses Chimera (Appsec USA 2015 -
Tim Bach)
– Chimera login detection can be improved using ReproNow
#RSAC
Github: repro-now.com/github
Chrome Extension: repro-now.com/chrome
Website: repro-now.com
Links
#RSAC
Thank you!
repro-now.com
@vinayendra
@Lak5hmi5udheer

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

1000 to 0
1000 to 01000 to 0
1000 to 0
 
Socially Acceptable Methods to Walk in the Front Door
Socially Acceptable Methods to Walk in the Front DoorSocially Acceptable Methods to Walk in the Front Door
Socially Acceptable Methods to Walk in the Front Door
 
[Wroclaw #4] WebRTC & security: 101
[Wroclaw #4] WebRTC & security: 101[Wroclaw #4] WebRTC & security: 101
[Wroclaw #4] WebRTC & security: 101
 
Securing your Container Environment with Open Source
Securing your Container Environment with Open SourceSecuring your Container Environment with Open Source
Securing your Container Environment with Open Source
 
Alabama CyberNow 2018: Cloud Hardening and Digital Forensics Readiness
Alabama CyberNow 2018: Cloud Hardening and Digital Forensics ReadinessAlabama CyberNow 2018: Cloud Hardening and Digital Forensics Readiness
Alabama CyberNow 2018: Cloud Hardening and Digital Forensics Readiness
 
Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...
Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...
Dynamic SSL Certificates and Other New Features in NGINX Plus R18 and NGINX O...
 
Reading Group Presentation: Web Attacks on Host-Proof Encrypted Storage
Reading Group Presentation: Web Attacks on Host-Proof Encrypted StorageReading Group Presentation: Web Attacks on Host-Proof Encrypted Storage
Reading Group Presentation: Web Attacks on Host-Proof Encrypted Storage
 
QEWD Update
QEWD UpdateQEWD Update
QEWD Update
 
DevOps in a Cloud Native World
DevOps in a Cloud Native WorldDevOps in a Cloud Native World
DevOps in a Cloud Native World
 
Security Tips to run Docker in Production
Security Tips to run Docker in ProductionSecurity Tips to run Docker in Production
Security Tips to run Docker in Production
 
Automating Security Response with Serverless
Automating Security Response with ServerlessAutomating Security Response with Serverless
Automating Security Response with Serverless
 
Monitoring & Securing Microservices in Kubernetes
Monitoring & Securing Microservices in KubernetesMonitoring & Securing Microservices in Kubernetes
Monitoring & Securing Microservices in Kubernetes
 
Eclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesEclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimes
 
Intro to the Alfresco Public API
Intro to the Alfresco Public APIIntro to the Alfresco Public API
Intro to the Alfresco Public API
 
NGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEANGINX: Basics and Best Practices EMEA
NGINX: Basics and Best Practices EMEA
 
Open source security tools for Kubernetes.
Open source security tools for Kubernetes.Open source security tools for Kubernetes.
Open source security tools for Kubernetes.
 
What’s New in NGINX Ingress Controller for Kubernetes Release 1.5.0
What’s New in NGINX Ingress Controller for Kubernetes Release 1.5.0What’s New in NGINX Ingress Controller for Kubernetes Release 1.5.0
What’s New in NGINX Ingress Controller for Kubernetes Release 1.5.0
 
Hot potato Privilege Escalation
Hot potato Privilege EscalationHot potato Privilege Escalation
Hot potato Privilege Escalation
 
NGINX ADC: Basics and Best Practices – EMEA
NGINX ADC: Basics and Best Practices – EMEANGINX ADC: Basics and Best Practices – EMEA
NGINX ADC: Basics and Best Practices – EMEA
 
JavaCro'15 - Reactive I/O - Ivan Turčinović
JavaCro'15 - Reactive I/O - Ivan TurčinovićJavaCro'15 - Reactive I/O - Ivan Turčinović
JavaCro'15 - Reactive I/O - Ivan Turčinović
 

Similar a ReproNow—Save Time Reproducing and Triaging Security Bugs

HTML5 Programming
HTML5 ProgrammingHTML5 Programming
HTML5 Programming
hotrannam
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET
Yaniv Uriel
 

Similar a ReproNow—Save Time Reproducing and Triaging Security Bugs (20)

HTML5 Programming
HTML5 ProgrammingHTML5 Programming
HTML5 Programming
 
Remix
RemixRemix
Remix
 
The Hacking Games - A Road to Post Exploitation Meetup - 20240222.pptx
The Hacking Games - A Road to Post Exploitation Meetup - 20240222.pptxThe Hacking Games - A Road to Post Exploitation Meetup - 20240222.pptx
The Hacking Games - A Road to Post Exploitation Meetup - 20240222.pptx
 
WebRTC
WebRTCWebRTC
WebRTC
 
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
 
Meetup callback
Meetup callbackMeetup callback
Meetup callback
 
Silverlight Wireshark Analysis
Silverlight Wireshark AnalysisSilverlight Wireshark Analysis
Silverlight Wireshark Analysis
 
Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.Developing rich multimedia applications with FI-WARE.
Developing rich multimedia applications with FI-WARE.
 
Serverless Media Workflow
Serverless Media WorkflowServerless Media Workflow
Serverless Media Workflow
 
DevOPS training - Day 1/2
DevOPS training - Day 1/2DevOPS training - Day 1/2
DevOPS training - Day 1/2
 
Building real time applications with Symfony2
Building real time applications with Symfony2Building real time applications with Symfony2
Building real time applications with Symfony2
 
Recording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streamsRecording and media manipulation of WebRTC streams
Recording and media manipulation of WebRTC streams
 
Rami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with DockerRami Sayar - Node microservices with Docker
Rami Sayar - Node microservices with Docker
 
AMF Flash and .NET
AMF Flash and .NETAMF Flash and .NET
AMF Flash and .NET
 
Adding Real-time Features to PHP Applications
Adding Real-time Features to PHP ApplicationsAdding Real-time Features to PHP Applications
Adding Real-time Features to PHP Applications
 
Profiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty DetailsProfiling and Tuning a Web Application - The Dirty Details
Profiling and Tuning a Web Application - The Dirty Details
 
A Byte of Software Deployment
A Byte of Software DeploymentA Byte of Software Deployment
A Byte of Software Deployment
 
Kurento - FI-WARE Bootcamp
Kurento - FI-WARE BootcampKurento - FI-WARE Bootcamp
Kurento - FI-WARE Bootcamp
 
CI/CD with AWS Code Services
CI/CD with AWS Code ServicesCI/CD with AWS Code Services
CI/CD with AWS Code Services
 
KazooCon 2014 - WebRTC
KazooCon 2014 - WebRTCKazooCon 2014 - WebRTC
KazooCon 2014 - WebRTC
 

Más de Priyanka Aash

Más de Priyanka Aash (20)

Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
 
Verizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdfVerizon Breach Investigation Report (VBIR).pdf
Verizon Breach Investigation Report (VBIR).pdf
 
Top 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdfTop 10 Security Risks .pptx.pdf
Top 10 Security Risks .pptx.pdf
 
Simplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdfSimplifying data privacy and protection.pdf
Simplifying data privacy and protection.pdf
 
Generative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdfGenerative AI and Security (1).pptx.pdf
Generative AI and Security (1).pptx.pdf
 
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdfEVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
EVERY ATTACK INVOLVES EXPLOITATION OF A WEAKNESS.pdf
 
DPDP Act 2023.pdf
DPDP Act 2023.pdfDPDP Act 2023.pdf
DPDP Act 2023.pdf
 
Cyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdfCyber Truths_Are you Prepared version 1.1.pptx.pdf
Cyber Truths_Are you Prepared version 1.1.pptx.pdf
 
Cyber Crisis Management.pdf
Cyber Crisis Management.pdfCyber Crisis Management.pdf
Cyber Crisis Management.pdf
 
CISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdfCISOPlatform journey.pptx.pdf
CISOPlatform journey.pptx.pdf
 
Chennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdfChennai Chapter.pptx.pdf
Chennai Chapter.pptx.pdf
 
Cloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdfCloud attack vectors_Moshe.pdf
Cloud attack vectors_Moshe.pdf
 
Stories From The Web 3 Battlefield
Stories From The Web 3 BattlefieldStories From The Web 3 Battlefield
Stories From The Web 3 Battlefield
 
Lessons Learned From Ransomware Attacks
Lessons Learned From Ransomware AttacksLessons Learned From Ransomware Attacks
Lessons Learned From Ransomware Attacks
 
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
Emerging New Threats And Top CISO Priorities In 2022 (Chennai)
 
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
Emerging New Threats And Top CISO Priorities In 2022 (Mumbai)
 
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
Emerging New Threats And Top CISO Priorities in 2022 (Bangalore)
 
Cloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow LogsCloud Security: Limitations of Cloud Security Groups and Flow Logs
Cloud Security: Limitations of Cloud Security Groups and Flow Logs
 
Cyber Security Governance
Cyber Security GovernanceCyber Security Governance
Cyber Security Governance
 
Ethical Hacking
Ethical HackingEthical Hacking
Ethical Hacking
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

ReproNow—Save Time Reproducing and Triaging Security Bugs

  • 1. SESSION ID: #RSAC Vinayendra Nataraja REPRONOW-SAVE TIME REPRODUCING AND TRIAGING SECURITY BUGS ASEC-W12 Senior Product Security Engineer Salesforce @vinayendra Lakshmi Sudheer Security Researcher Adobe, Inc. @Lak5hmi5udheer
  • 2. #RSAC About Us Vinayendra Nataraja • Senior Product Security Engineer @ Salesforce • Heads one of the largest private Bug Bounty program • Twitter: @vinayendra
  • 3. #RSAC Lakshmi Sudheer • Security Researcher @ Adobe • Twitter: @Lak5hmi5udheer About Us
  • 4. #RSAC • Bug Bounty Program • The Triaging Process • How ReproNow can help? • How does the tool work? • DEMO • Future Plans Agenda
  • 5. #RSAC Bug Bounty (aka: Crowdsourced Security) • Companies pay Hackers for a responsible disclosure • Bounty is paid only for finding a valid security bug • Company gets good security bugs for a fraction of the cost of consulting firms or hiring full time hackers • Hackers get bragging rights / reputation + part time / full time income Bug Bounty Program
  • 6. #RSAC Bug Bounty Setup • Company decides on a structured program with defined scope and rules • Hackers are setup with credentials to login and test • Hackers submit bugs which need to be validated and fixed • Company pays bounty to hackers for valid bugs Bug Bounty Program
  • 8. #RSAC Researcher submits a bug Researcher provides requests and screenshots Security Engineer tries to triage but needs more info Researcher provides video of the vulnerability Security engineer requests for more info Reality Expectation Vs Reality
  • 9. #RSAC Information required for the Security Engineer to Triage • Product • URL • Impact & Description • Steps to Reproduce • Request/Response • Screenshots • Video • Documentation Links Sometimes even more... The Triaging Process
  • 13. #RSAC The Triaging Process Triage Issues • Communication Issues – Non native English speakers – Knowledge gap of product – Not everyone can write a good report • Complex workflows • Long reports will be time consuming to setup and triage • WannaBe Hackers
  • 14. #RSAC The Triaging Process Bug Bounty Pains for Companies • Time spent – Going back and forth with researchers – Reproducing the bug all over again • Reduced efficiency • Increase in average resolution time • Researcher Relationship • Researcher Retention
  • 15. #RSAC The Triaging Process “Triage takes time. So much time .... we paid people to help us run our bounty programs and it still took up a ton of time. Expect the time commitment to be 2–3 people full-time … The price you pay for the good issues is the cost of filtering out the junk.” - Collin Greene, Facebook
  • 16. #RSAC ReproNow: Introduction What is ReproNow? • A browser extension to capture Desktop and Network Traffic • Has a responsive UI for Security Engineers to view and search • Hides the traffic inside a mkv/webm video files • Works cross browser using extensibility API, currently supports and
  • 17. #RSAC ReproNow: Introduction What is ReproNow? (Continued) •No server interaction, everything on client •Export requests as cURL •Store history in Local Storage •Multiple options to capture Network •Open Source
  • 18. #RSAC ReproNow: Working How it Works? • getUserMedia API to Capture Screen • WebRequest API to Capture Networks • Local storage to store the video and traffic • Mkv files to hide the Network data.
  • 19. #RSAC How Screen Capture Works? • chrome.desktopCapture API allows to capture user screen. • The desktopCapture API uses getUserMedia API which is a HTML5 API to capture camera/mic and also screen. • getUserMedia API uses MediaRecorder API to convert recorded video into ArrayBuffer ReproNow:Screen Capture
  • 20. #RSAC How Screen Capture Works? (Contd..) • MediaRecorder Supports multiple mimetypes (we use webm,codec: VP8) • The generated ArrayBuffer can we converted in blob URL using createObjectURL API • The object can we piped into <video> tag for viewing or can we downloaded to user’s device. ReproNow:Screen Capture
  • 23. #RSAC How Network Capture Works? • Two possible ways to intercept Network – chrome.debugger API which lets you attach to tabs and intercept traffic • But puts all tabs/windows into debugger mode :( – chrome.webRequest API observe and analyze traffic and to intercept, block, or modify requests in-flight • Cannot fetch response body :( ReproNow: Network Capture
  • 24. #RSAC chrome.webRequest API onBeforeRequest • Fires when a request is about to occur onBeforeSendHeaders • Initial headers have been prepared onSendHeaders • All headers are prepared (Read Only) chrome.webRequest API - Request
  • 25. #RSAC onHeadersReceived • Response header is received onAuthRequired • Request requires authentication of the user. onBeforeRedirect • Redirect is about to be executed onResponseStarted • First byte of the response body is received (Read Only) onCompleted • Request was succesful onErrorOccurred • Request Failed chrome.webRequest API - Response
  • 26. #RSAC ReproNow uses • onBeforeRequest to get URL, method and Request Body • onBeforeSendHeaders to get all request headers • onHeadersReceived to get all response headers chrome.webRequest API (contd)
  • 27. #RSAC • Start clock between Screen and network to keep both in sync • Option provided for user to capture network when navigating between tabs – Capture a specific tab – Capture all tabs – Capture network of all activated tabs – Capture traffic only activated tab Network Capture (Cont’d)
  • 29. #RSAC How do we share Screen + Network ? Requirement: All video operations must happen Client-side Solution: • Downloading 2 files - Network and video separately • Zipping network file and the video file What if we can insert the network file inside video? Exporting Screen and Network
  • 30. #RSAC The Need: 1. Video Format that support adding a JSON file without breaking the video. 2. API/Tool to perform client side operation to manipulate the video file. Inserting JSON into Video file
  • 31. #RSAC Inserting JSON into Video file The Need: 1. Video Format that support adding a JSON file without breaking the video. 2. API/Tool to perform client side operation to manipulate the video file.
  • 32. #RSAC Video Formats Video formats Most common formats: • MP4 • MKV • AVI • FLV
  • 33. #RSAC MPEG-4 MPEG-4 (MP4) • Digital multimedia format container • Directly based on from QuickTime File Format • Stores audio, video, subtitles and images • File Extensions: – Video + Audio : .mp4 – Audio only : .m4a – Raw MPEG-4 visual bitstream : .m4v
  • 34. #RSAC MPEG-4 MPEG-4 Structure ● ftyp - file type ● moov - contains metadata (song title, author, url, and other information) ● mdat - contains the audio frames and video frames
  • 35. #RSAC MKV Matroska(MKV) • Open source container • Free container format • Holds unlimited audio tracks, video tracks, subtitles, files • WebM was specifically designed for the internet is derived from Matroska and can be used interchangeably • File Extensions: – Video + Audio : .mkv – Stereoscopic Video: .mk3d – Audio only : .mka
  • 36. #RSAC MKV: Structure MKV Container ● Header: EBML version ● Meta Seek Information: Index to other groups like Track information, Chapters, Tags, Cues, Attachments ● Segment Information: Basic information, title, UNique ID ● Track section: Basic information about each of the tracks, codec, Sample Rate
  • 37. #RSAC MKV: Structure ● Chapters: Section lists all of the Chapters ● Clusters: contain all of the video frames and audio for each track ● Cueing Data: Cues are the index for each of the tracks. This is used for seeking to a specific time when playing back the file ● Attachment section: Allows attaching any file type to the video. ● Tagging section: This contains Tags that relate to the the file and tracks like the actors, singers and song information
  • 39. #RSAC • No restrictions on filetype in the attachment section • Webm is built on MKV providing greater flexibility on the client side • Almost all browsers support MKV/WebM • Easy to store and dump a JSON file Why Mkv?
  • 40. #RSAC Inserting JSON into a Video file The Need: 1. Video Format that support adding a JSON file without breaking the video. 2. API/Tool to perform client side operation to manipulate the video file.
  • 41. #RSAC Ffmpeg Fast Forward MPEG ( ffmpeg ) • Free Multimedia Framework • Encodes, Decodes, Muxes, Demuxes audio and performs other operations on video and audio files • Contains libraries like libavcodec which supports more than 200 video/audio formats • One of the most widely used platform for audio/video manipulation
  • 42. #RSAC Embedding JSON What we used.. • ffmpeg.js - Ffmpeg that can run on a browser Ffmpeg -i video.mkv -attach network_data.json -metadata:s:t mimetype=application/json output.mkv • ts-ebml - Node.js library that Encodes/Decodes Mkv files on browser using Browserify
  • 43. #RSAC 1. Record the Screen using getUserMedia API and store it as arrayBuffer 2. Capture Network using WebRequest API and store it as JSON 3. Save the video and JSON in localstorage 4. Preview the video using <video> tag 5. Sync Network with Screen 6. Download the Video in MKV by attaching the network JSON as an attachment Putting it all together
  • 45. #RSAC For Bug Bounty hunters • Awesome screen capture tool! • Preview the capture before sharing • Ability to copy paste raw requests/responses and generate cURL script for specific ones • A video (with network) speaks thousand words • No server is involved and is also open source, therefore no need to trust a vendor to keep your data secure • Faster Triage = Faster Bounty How Can ReproNow Help?
  • 46. #RSAC For Organizations • Reproduce without manually going through the steps • Helps in reducing noise in your bug bounty program • Saves your Security Engineer’s Time • Saves money by reducing expenditure on managed services • Can be used for QA internally • Faster Traige = Faster Bounty = Researcher Retention How Can ReproNow Help?
  • 47. #RSAC Extending ReproNow Extending ReproNow • Automatically Triage Bug Bounty Bugs – Replay the network requests in internal builds to verify the bug – Replay the network in various browsers • Help Detect login to run ZAP – Salesforce Appexchange Security Review uses Chimera (Appsec USA 2015 - Tim Bach) – Chimera login detection can be improved using ReproNow
  • 48. #RSAC Github: repro-now.com/github Chrome Extension: repro-now.com/chrome Website: repro-now.com Links