SlideShare a Scribd company logo
1 of 62
Download to read offline
TADSummit 2022 -
How to bring your own
RTC platform down
Running DDoS simulations on your own
Sandro Gauci
2022-11-08
Introduction
What is this about?
provide a quick walk-through of performing DDoS attacks
speci c to RTC services
not complete but should help you get started
Distributed Denial of Service: distributed attacks that block
legitimate usage of your service
What makes me quali ed to
talk about this?
author of SIPVicious OSS - security testing toolset for SIP
in Infosec / Cyber security since > 20 years
last 14 years doing offensive security and leading Enable Security
What we do
we focus on RTC security testing
various cyber-security services
we do DDoS simulation for our clients
Why would you do such
a thing?
Pinky and the Brain, pondering why
obviously, to have some dangerous fun!
Serious answers only
to nd out how your critical services are going to react to a DDoS
attack
What if we got attacked?
the purpose is to create a system that can reasonably withstand
most DDoS attacks
What if we have some form
of protection mechanism?
most organisations operating in RTC have security solutions
or use technology that is known to be robust
often a hybrid approach, some things are better protected than
others
security protection is often implemented but rarely properly tested
until you test, you should not make any assumptions
because …
what often happens is that service providers nd out that they
don’t work during an actual attack
this is not ideal!
What if we’re trying to
evaluate an anti-DDoS
solution?
how well does it work?
comparing two or more solutions
which one works better given your situation?
Our experience
almost all DoS protection mechanisms fail at some point
maybe network tra c bursts are not handled well
maybe slow attacks lead to bypass but still trigger DoS
maybe the security solution looks for particular patterns which can
be bypassed
every organisation has limitations
bandwidth
system resources
application bugs / e ciency
the point is to understand if your current protection-level is
su cient against real life attacks
Part of Threat modelling
what are your most critical services?
how are they exposed to DDoS attacks?
what do we need to do to protect against these attacks?
once you have understood Why, you should move
on to What and How
Preparing for
destruction!
Decide on what your want to
attack and how
bandwidth saturation
generic protocol attacks
speci c app attacks
Bandwidth or generic
protocol attacks
often require generic or simple tools
e.g. targeting APIs or SIP servers ( ooding with GET or REGISTER
messages)
Attacking speci c
application functionality
needs some homework
Initial tests to determine which parts should be attacked
Look for:
errors, especially if generated during fuzzing
slow responses
increase in memory consumption (even a slight increase)
potential exhaustion of resources
Attack tools
for bandwidth saturation and generic protocol attacks, standard or
simple tools are enough
attack tools need to be more e cient than the target application
normally, they generate tra c - replaying messages
func flood() {
payload := "OPTIONS sip:demo.sipvicious.pro SIP/2.0rn" +
"Content-Length: 0rnrn"
b := make([]byte, 1024)
for {
c, err := net.Dial("udp", "demo.sipvicious.pro:5060")
if err != nil { log.Fatal(err) }
go func() { // Read loop
for { c.Read(b) }
}()
go func() { // Write loop
for { c.Write([]byte(payload)) }
}()
}
}
func main() {
flood()
}
func flood() {
payload := "OPTIONS sip:demo.sipvicious.pro SIP/2.0rn" +
"Content-Length: 0rnrn"
b := make([]byte, 1024)
for {
c, err := net.Dial("udp", "demo.sipvicious.pro:5060")
if err != nil { log.Fatal(err) }
go func() { // Read loop
for { c.Read(b) }
}()
go func() { // Write loop
for { c.Write([]byte(payload)) }
}()
}
}
func main() {
for i:=0;i<100;i++ { go flood() }
select{}
}
Useful features for such
tools
rate limiting
concurrency (e.g. connection count)
You need control tools
distribute the attack tools (e.g. use Terraform)
ability to start the attack
and stop the attack
#!/bin/bash
IPS=$(linode-cli linodes list --format ipv4 --json | jq -r '[.[][][]] | join(" ")')
for ip in $IPS;
do
ssh root@${ip} sipvicious sip dos flood udp://demo.sipvicious.pro:5060 &
done
#!/bin/bash
IPS=$(linode-cli linodes list --format ipv4 --json | jq -r '[.[][][]] | join(" ")')
for ip in $IPS;
do
ssh root@${ip} killall sipvicious &
done
The killswitch
emphasis on stopping the attack
if attacker machine is no longer reachable but still attacking
may lead to a real security incident!
#!/bin/bash
IDS=$(linode-cli linodes list --format id --json | jq -r '[.[][]] | join(" ")')
for id in $IDS;
do
linode-cli linodes shutdown ${id}
done
You need attack nodes
these are systems from where to launch your distributed attacks
Options
VPS: easy to get started and distributing attacks at low price
VMs: very useful for internal tests in lab environment
Bare metal servers: great for attacks that consume
bandwidth/require decent resources but more expensive
Caution when using third-
parties
you will want to make sure that the activity is allowed
that you are not affecting other customers
especially watch out for bandwidth saturation
Monitor your bandwidth
usage
even if not testing for bandwidth saturation
might give a false positives (incorrect results)
see our blog post: Why volumetric DDoS cripples VoIP providers
and what we see during pentesting
Monitor your bandwidth
usage
at the target
at the attack nodes
Monitor your application
and system resources
having the ability to switch pro ling on is very useful
ability to debug
Don’t forget the people!
the engineers who need to be involved/monitor systems: they
need to be booked
testing on live systems usually means doing tests during off-peak
hours
Finally
the test environment: you need a place to test
make sure it is as close to production as possible
sometimes, it is production
One more thing
i love it when a plan comes together
gure out what tests to do
start with the simpler tests rst
you will encounter problems that should be solved before moving
to more complex tests
Fun time!
a beverage
Start monitoring
bandwidth
application
system resources
dependencies (e.g. databases)
External monitoring
use a pinger
simulates legitimate tra c periodically (e.g. every 1s)
will indicate major problems but will miss more subtle issues
Demo time
we show our Attack Platform that we use to do such tests
Target server - a Kamailio/Asterisk server
Have 3 parts in this demo
Target server
Monitoring system sending SIP ping
Attack platform client (controlling the attacker nodes)
0:00 / 0:53
Next
when things break, you should get noti ed through monitoring
stop and assess: real work starts here
some of it might be done during the exercise, some later
understanding root cause
Best practices
1. Automate as much as possible (capturing of monitoring results,
bandwidth stats)
2. Have a real-time communication channel with the engineers
(e.g. Google Meet)
3. Work with the engineers not against them - collaborate don’t
compete
4. Test your tests ahead of time! don’t do your own QA during the test
5. Document every step done and the results (can be semi-
automated); otherwise you might forget what actually happened
. Set a xed scope + timeframe; know your limits (we stick to 2hrs,
very tiring)
What happens after the
fact
accept the risk?
really, it depends on your ndings
generally: root cause analysis
might have started already during the actual exercise
might need further exploration, dedicated time and effort
Once the root cause for
each nding is determined
solutions or mitigation techniques need to be discussed
jumping to solutions without proper assessment undermines the
whole effort
solutions need to be:
practical and make economic sense
not introduce new problems that prevent legitimate usage
actually address the problems that were identi ed
implemented
Examples of solutions
outdated logging library caused locks - updating that library (but
dependency hell)
changes in application con guration
rate limiting solutions
application code changes (result of pro ling and debugging)
Caveat
real solutions rarely consist of buying more
resources
Finally - documentation &
retest
update your documentation to include details about the solutions
test the solution again
does it work? where does it fail?
feedback loop
Moving forward
towards a more robust
RTC
by doing your own DDoS simulations, you learn about your system
no longer should have to guess if you will handle a real attack
as an RTC provider, you have a duty to keep your RTC <real(-time)=
One more thing
Security is often a cat and mouse game
No security solution is perfect, incidence response is critical
How will we handle the next time we get DDoSed?
This is the end
Thanks!
Alan Quayle
My colleague, Alfred Farrugia for the demos
Our clients for allowing us to cause trouble on their applications
and networks
Get in touch & References
Email:
Enable Security:
sandro@enablesecurity.com
https://www.enablesecurity.com
Communication Breakdown blog @ rtcsec.com
Subscribe to the RTCSec Newsletter

More Related Content

Similar to How to bring down your own RTC platform. Sandro Gauci

Incident Prevention and Incident Response - Alexander Sverdlov, PHDays IV
Incident Prevention and Incident Response - Alexander Sverdlov, PHDays IVIncident Prevention and Incident Response - Alexander Sverdlov, PHDays IV
Incident Prevention and Incident Response - Alexander Sverdlov, PHDays IVAlexander Sverdlov
 
System administration with automation
System administration with automationSystem administration with automation
System administration with automationShivam Srivastava
 
Best practice adoption (and lack there of)
Best practice adoption (and lack there of)Best practice adoption (and lack there of)
Best practice adoption (and lack there of)John Pape
 
Purple Teaming With Adversary Emulation.pdf
Purple Teaming With Adversary Emulation.pdfPurple Teaming With Adversary Emulation.pdf
Purple Teaming With Adversary Emulation.pdfprithaaash
 
Microservices and Prometheus (Microservices NYC 2016)
Microservices and Prometheus (Microservices NYC 2016)Microservices and Prometheus (Microservices NYC 2016)
Microservices and Prometheus (Microservices NYC 2016)Brian Brazil
 
Intro to-ssdl--lone-star-php-2013
Intro to-ssdl--lone-star-php-2013Intro to-ssdl--lone-star-php-2013
Intro to-ssdl--lone-star-php-2013nanderoo
 
Automated prevention of ransomware with machine learning and gpos
Automated prevention of ransomware with machine learning and gposAutomated prevention of ransomware with machine learning and gpos
Automated prevention of ransomware with machine learning and gposPriyanka Aash
 
SPO2-T11_Automated-Prevention-of-Ransomware-with-Machine-Learning-and-GPOs
SPO2-T11_Automated-Prevention-of-Ransomware-with-Machine-Learning-and-GPOsSPO2-T11_Automated-Prevention-of-Ransomware-with-Machine-Learning-and-GPOs
SPO2-T11_Automated-Prevention-of-Ransomware-with-Machine-Learning-and-GPOsRod Soto
 
Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)Brian Brazil
 
What is dr and bc 12-2017
What is dr and bc 12-2017What is dr and bc 12-2017
What is dr and bc 12-2017Atef Yassin
 
Your data is in Prometheus, now what? (CurrencyFair Engineering Meetup, 2016)
Your data is in Prometheus, now what? (CurrencyFair Engineering Meetup, 2016)Your data is in Prometheus, now what? (CurrencyFair Engineering Meetup, 2016)
Your data is in Prometheus, now what? (CurrencyFair Engineering Meetup, 2016)Brian Brazil
 
SEC 572 Entire Course NEW
SEC 572 Entire Course NEWSEC 572 Entire Course NEW
SEC 572 Entire Course NEWshyamuopiv
 
How to not fail at security data analytics (by CxOSidekick)
How to not fail at security data analytics (by CxOSidekick)How to not fail at security data analytics (by CxOSidekick)
How to not fail at security data analytics (by CxOSidekick)Dinis Cruz
 
Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...
Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...
Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...CODE BLUE
 
Possibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented ProgrammingPossibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented Programmingkozossakai
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsLinards Liep
 

Similar to How to bring down your own RTC platform. Sandro Gauci (20)

Incident Prevention and Incident Response - Alexander Sverdlov, PHDays IV
Incident Prevention and Incident Response - Alexander Sverdlov, PHDays IVIncident Prevention and Incident Response - Alexander Sverdlov, PHDays IV
Incident Prevention and Incident Response - Alexander Sverdlov, PHDays IV
 
Lab 10
Lab 10Lab 10
Lab 10
 
System administration with automation
System administration with automationSystem administration with automation
System administration with automation
 
Best practice adoption (and lack there of)
Best practice adoption (and lack there of)Best practice adoption (and lack there of)
Best practice adoption (and lack there of)
 
Purple Teaming With Adversary Emulation.pdf
Purple Teaming With Adversary Emulation.pdfPurple Teaming With Adversary Emulation.pdf
Purple Teaming With Adversary Emulation.pdf
 
Microservices and Prometheus (Microservices NYC 2016)
Microservices and Prometheus (Microservices NYC 2016)Microservices and Prometheus (Microservices NYC 2016)
Microservices and Prometheus (Microservices NYC 2016)
 
Intro to-ssdl--lone-star-php-2013
Intro to-ssdl--lone-star-php-2013Intro to-ssdl--lone-star-php-2013
Intro to-ssdl--lone-star-php-2013
 
Automated prevention of ransomware with machine learning and gpos
Automated prevention of ransomware with machine learning and gposAutomated prevention of ransomware with machine learning and gpos
Automated prevention of ransomware with machine learning and gpos
 
SPO2-T11_Automated-Prevention-of-Ransomware-with-Machine-Learning-and-GPOs
SPO2-T11_Automated-Prevention-of-Ransomware-with-Machine-Learning-and-GPOsSPO2-T11_Automated-Prevention-of-Ransomware-with-Machine-Learning-and-GPOs
SPO2-T11_Automated-Prevention-of-Ransomware-with-Machine-Learning-and-GPOs
 
Dev ops
Dev opsDev ops
Dev ops
 
Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)Prometheus for Monitoring Metrics (Fermilab 2018)
Prometheus for Monitoring Metrics (Fermilab 2018)
 
What is dr and bc 12-2017
What is dr and bc 12-2017What is dr and bc 12-2017
What is dr and bc 12-2017
 
Your data is in Prometheus, now what? (CurrencyFair Engineering Meetup, 2016)
Your data is in Prometheus, now what? (CurrencyFair Engineering Meetup, 2016)Your data is in Prometheus, now what? (CurrencyFair Engineering Meetup, 2016)
Your data is in Prometheus, now what? (CurrencyFair Engineering Meetup, 2016)
 
SEC 572 Entire Course NEW
SEC 572 Entire Course NEWSEC 572 Entire Course NEW
SEC 572 Entire Course NEW
 
How to not fail at security data analytics (by CxOSidekick)
How to not fail at security data analytics (by CxOSidekick)How to not fail at security data analytics (by CxOSidekick)
How to not fail at security data analytics (by CxOSidekick)
 
Writing srs
Writing srsWriting srs
Writing srs
 
Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...
Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...
Possibility of arbitrary code execution by Step-Oriented Programming by Hiroa...
 
Possibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented ProgrammingPossibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented Programming
 
Ci tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepinsCi tips and_tricks_linards_liepins
Ci tips and_tricks_linards_liepins
 
Web application Testing
Web application TestingWeb application Testing
Web application Testing
 

More from Alan Quayle

Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...Alan Quayle
 
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...Alan Quayle
 
What makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias GoebelWhat makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias GoebelAlan Quayle
 
eSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João CasaleSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João CasalAlan Quayle
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeAlan Quayle
 
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...Alan Quayle
 
Programmable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas GranigProgrammable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas GranigAlan Quayle
 
How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...Alan Quayle
 
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel BourgoisLatest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel BourgoisAlan Quayle
 
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...Alan Quayle
 
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...Alan Quayle
 
Open Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan QuayleOpen Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan QuayleAlan Quayle
 
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei IancuOpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei IancuAlan Quayle
 
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe LeitaoTADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe LeitaoAlan Quayle
 
What happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan QuayleWhat happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan QuayleAlan Quayle
 
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike BromwichStacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike BromwichAlan Quayle
 
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...Alan Quayle
 
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João CamarateFounding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João CamarateAlan Quayle
 
Radisys - Engage Digital - TADSummit Nov 2022
Radisys - Engage Digital - TADSummit Nov 2022Radisys - Engage Digital - TADSummit Nov 2022
Radisys - Engage Digital - TADSummit Nov 2022Alan Quayle
 

More from Alan Quayle (20)

What is a vCon?
What is a vCon?What is a vCon?
What is a vCon?
 
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
Supercharging CPaaS Growth & Margins with Identity and Authentication, Aditya...
 
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
Building a sub-second virtual ThunderDome: Considerations for mass scale sub-...
 
What makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias GoebelWhat makes a cellular IoT API great? Tobias Goebel
What makes a cellular IoT API great? Tobias Goebel
 
eSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João CasaleSIM as Root of Trust for IoT security, João Casal
eSIM as Root of Trust for IoT security, João Casal
 
Architecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin SimeArchitecting your WebRTC application for scalability, Arin Sime
Architecting your WebRTC application for scalability, Arin Sime
 
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
CPaaS Conversational Platforms and Conversational Customer Service – The Expe...
 
Programmable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas GranigProgrammable Testing for Programmable Telcos, Andreas Granig
Programmable Testing for Programmable Telcos, Andreas Granig
 
How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...How to best maximize the conversation data stream for your business? Surbhi R...
How to best maximize the conversation data stream for your business? Surbhi R...
 
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel BourgoisLatest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
Latest Updates and Experiences in Launching Local Language Tools, Karel Bourgois
 
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
What Everyone Needs to Know about Protecting the CPaaS Ecosystem from Unlawfu...
 
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
Master the Audience Experience Multiverse: AX Best Practices and Success Stor...
 
Open Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan QuayleOpen Source Telecom Software Survey 2022, Alan Quayle
Open Source Telecom Software Survey 2022, Alan Quayle
 
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei IancuOpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
OpenSIPS 3.3 – Messaging in the IMS and UC ecosystems. Bogdan-Andrei Iancu
 
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe LeitaoTADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
TADS 2022 - Shifting from Voice to Workflow Management, Filipe Leitao
 
What happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan QuayleWhat happened since we last met TADSummit 2022, Alan Quayle
What happened since we last met TADSummit 2022, Alan Quayle
 
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike BromwichStacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
Stacuity - TAD Summit 2022 - Time to ditch the dumb-pipe, Mike Bromwich
 
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
AWA – a Telco bootstrapping product development: Challenges with dynamic mark...
 
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João CamarateFounding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
Founding a Startup in Telecoms. The good, the bad and the ugly. João Camarate
 
Radisys - Engage Digital - TADSummit Nov 2022
Radisys - Engage Digital - TADSummit Nov 2022Radisys - Engage Digital - TADSummit Nov 2022
Radisys - Engage Digital - TADSummit Nov 2022
 

Recently uploaded

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 

Recently uploaded (20)

Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort ServiceHot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
Hot Sexy call girls in Panjabi Bagh 🔝 9953056974 🔝 Delhi escort Service
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
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
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 

How to bring down your own RTC platform. Sandro Gauci

  • 1. TADSummit 2022 - How to bring your own RTC platform down Running DDoS simulations on your own Sandro Gauci 2022-11-08
  • 3. What is this about? provide a quick walk-through of performing DDoS attacks speci c to RTC services not complete but should help you get started Distributed Denial of Service: distributed attacks that block legitimate usage of your service
  • 4. What makes me quali ed to talk about this? author of SIPVicious OSS - security testing toolset for SIP in Infosec / Cyber security since > 20 years last 14 years doing offensive security and leading Enable Security
  • 5. What we do we focus on RTC security testing various cyber-security services we do DDoS simulation for our clients
  • 6. Why would you do such a thing?
  • 7. Pinky and the Brain, pondering why
  • 8. obviously, to have some dangerous fun!
  • 9. Serious answers only to nd out how your critical services are going to react to a DDoS attack What if we got attacked? the purpose is to create a system that can reasonably withstand most DDoS attacks
  • 10. What if we have some form of protection mechanism? most organisations operating in RTC have security solutions or use technology that is known to be robust often a hybrid approach, some things are better protected than others
  • 11. security protection is often implemented but rarely properly tested until you test, you should not make any assumptions because …
  • 12. what often happens is that service providers nd out that they don’t work during an actual attack this is not ideal!
  • 13. What if we’re trying to evaluate an anti-DDoS solution? how well does it work? comparing two or more solutions which one works better given your situation?
  • 14. Our experience almost all DoS protection mechanisms fail at some point maybe network tra c bursts are not handled well maybe slow attacks lead to bypass but still trigger DoS maybe the security solution looks for particular patterns which can be bypassed
  • 15. every organisation has limitations bandwidth system resources application bugs / e ciency the point is to understand if your current protection-level is su cient against real life attacks
  • 16. Part of Threat modelling what are your most critical services? how are they exposed to DDoS attacks? what do we need to do to protect against these attacks?
  • 17. once you have understood Why, you should move on to What and How
  • 19. Decide on what your want to attack and how bandwidth saturation generic protocol attacks speci c app attacks
  • 20. Bandwidth or generic protocol attacks often require generic or simple tools e.g. targeting APIs or SIP servers ( ooding with GET or REGISTER messages)
  • 21. Attacking speci c application functionality needs some homework Initial tests to determine which parts should be attacked Look for: errors, especially if generated during fuzzing slow responses increase in memory consumption (even a slight increase) potential exhaustion of resources
  • 22. Attack tools for bandwidth saturation and generic protocol attacks, standard or simple tools are enough attack tools need to be more e cient than the target application normally, they generate tra c - replaying messages
  • 23. func flood() { payload := "OPTIONS sip:demo.sipvicious.pro SIP/2.0rn" + "Content-Length: 0rnrn" b := make([]byte, 1024) for { c, err := net.Dial("udp", "demo.sipvicious.pro:5060") if err != nil { log.Fatal(err) } go func() { // Read loop for { c.Read(b) } }() go func() { // Write loop for { c.Write([]byte(payload)) } }() } } func main() { flood() }
  • 24. func flood() { payload := "OPTIONS sip:demo.sipvicious.pro SIP/2.0rn" + "Content-Length: 0rnrn" b := make([]byte, 1024) for { c, err := net.Dial("udp", "demo.sipvicious.pro:5060") if err != nil { log.Fatal(err) } go func() { // Read loop for { c.Read(b) } }() go func() { // Write loop for { c.Write([]byte(payload)) } }() } } func main() { for i:=0;i<100;i++ { go flood() } select{} }
  • 25. Useful features for such tools rate limiting concurrency (e.g. connection count)
  • 26. You need control tools distribute the attack tools (e.g. use Terraform) ability to start the attack and stop the attack
  • 27. #!/bin/bash IPS=$(linode-cli linodes list --format ipv4 --json | jq -r '[.[][][]] | join(" ")') for ip in $IPS; do ssh root@${ip} sipvicious sip dos flood udp://demo.sipvicious.pro:5060 & done
  • 28. #!/bin/bash IPS=$(linode-cli linodes list --format ipv4 --json | jq -r '[.[][][]] | join(" ")') for ip in $IPS; do ssh root@${ip} killall sipvicious & done
  • 29. The killswitch emphasis on stopping the attack if attacker machine is no longer reachable but still attacking may lead to a real security incident!
  • 30. #!/bin/bash IDS=$(linode-cli linodes list --format id --json | jq -r '[.[][]] | join(" ")') for id in $IDS; do linode-cli linodes shutdown ${id} done
  • 31. You need attack nodes these are systems from where to launch your distributed attacks
  • 32. Options VPS: easy to get started and distributing attacks at low price VMs: very useful for internal tests in lab environment Bare metal servers: great for attacks that consume bandwidth/require decent resources but more expensive
  • 33. Caution when using third- parties you will want to make sure that the activity is allowed that you are not affecting other customers especially watch out for bandwidth saturation
  • 34. Monitor your bandwidth usage even if not testing for bandwidth saturation might give a false positives (incorrect results) see our blog post: Why volumetric DDoS cripples VoIP providers and what we see during pentesting
  • 35. Monitor your bandwidth usage at the target at the attack nodes
  • 36. Monitor your application and system resources having the ability to switch pro ling on is very useful ability to debug
  • 37. Don’t forget the people! the engineers who need to be involved/monitor systems: they need to be booked testing on live systems usually means doing tests during off-peak hours
  • 38. Finally the test environment: you need a place to test make sure it is as close to production as possible sometimes, it is production
  • 40. i love it when a plan comes together
  • 41. gure out what tests to do start with the simpler tests rst you will encounter problems that should be solved before moving to more complex tests
  • 45. External monitoring use a pinger simulates legitimate tra c periodically (e.g. every 1s) will indicate major problems but will miss more subtle issues
  • 46. Demo time we show our Attack Platform that we use to do such tests Target server - a Kamailio/Asterisk server Have 3 parts in this demo Target server Monitoring system sending SIP ping Attack platform client (controlling the attacker nodes)
  • 48. Next when things break, you should get noti ed through monitoring stop and assess: real work starts here some of it might be done during the exercise, some later understanding root cause
  • 49. Best practices 1. Automate as much as possible (capturing of monitoring results, bandwidth stats) 2. Have a real-time communication channel with the engineers (e.g. Google Meet) 3. Work with the engineers not against them - collaborate don’t compete 4. Test your tests ahead of time! don’t do your own QA during the test 5. Document every step done and the results (can be semi- automated); otherwise you might forget what actually happened . Set a xed scope + timeframe; know your limits (we stick to 2hrs, very tiring)
  • 50. What happens after the fact
  • 52. really, it depends on your ndings generally: root cause analysis might have started already during the actual exercise might need further exploration, dedicated time and effort
  • 53. Once the root cause for each nding is determined solutions or mitigation techniques need to be discussed jumping to solutions without proper assessment undermines the whole effort solutions need to be: practical and make economic sense not introduce new problems that prevent legitimate usage actually address the problems that were identi ed implemented
  • 54. Examples of solutions outdated logging library caused locks - updating that library (but dependency hell) changes in application con guration rate limiting solutions application code changes (result of pro ling and debugging)
  • 55. Caveat real solutions rarely consist of buying more resources
  • 56. Finally - documentation & retest update your documentation to include details about the solutions test the solution again does it work? where does it fail? feedback loop
  • 57. Moving forward towards a more robust RTC
  • 58. by doing your own DDoS simulations, you learn about your system no longer should have to guess if you will handle a real attack as an RTC provider, you have a duty to keep your RTC <real(-time)=
  • 59. One more thing Security is often a cat and mouse game No security solution is perfect, incidence response is critical How will we handle the next time we get DDoSed?
  • 60. This is the end
  • 61. Thanks! Alan Quayle My colleague, Alfred Farrugia for the demos Our clients for allowing us to cause trouble on their applications and networks
  • 62. Get in touch & References Email: Enable Security: sandro@enablesecurity.com https://www.enablesecurity.com Communication Breakdown blog @ rtcsec.com Subscribe to the RTCSec Newsletter