The Backend Engineering Show with Hussein Nasser

Episode 96 - Denial of Service


Listen Later

 

Denial of Service attacks

Dos attacks (denial of service) are type of attack on a server to prevent users from consuming a particular service, usually this is an HTTP web server. This could happen by either saturating the bandwidth of the pipe going to the server or by bringing the server down to its knees so it stops taking requests all together. In this video we will learn about 3 different types of DOS attacks and explain each one by example. 

Bandwidth based DOS 2:15

  • Dos Sending Huge amount of data to a server with lower bandwidth from a client with higher bandwidth which ends up saturating the server pipe and queue up future requests, new requests will have to wait or perhaps denied service. Example, the attacker have 100mb/s bandwidth (upload) the server has 10Mb/s download. If the attacker starts sending 100 mb worth of data to the server, it will take it 1 second to leave the pipe. However, The server can only download 10 mb each second for processing because thats its bandwidth, so it needs 10 seconds to completely download that 100mb and process. In this 10 seconds the server is fully busy serving just 1 client. Other requests will not be able to even reach the server, they might get queued and they may never be executed. Thus denied service. It is important to know that the server must have an end point that actually accept such large data. Like upload file with no limit. Another example, is UDP where there is no connection. 
  • Ddos this previous scenario is less likely since servers usually has much more bandwidth than a single computer. A common attack is to do a DOS in distributed manner. Assume a server with 1 Gb and client with 10 mb/s no matter how much data the client can send it can only send 10mb per second, and the server can go through them real quick. Example, the client sends 1GB, it will leave the client’s pipe into 100 (10mb) means the client will take 100 seconds just to upload all the data because it can only sends 10 mb each seconds. And the server is processing it so fast it each second and it will still have enough bandwidth to process other requests(1000-10). But imagine 100 users with 10 mb connection each, all coordinate to send 1 Gb worth of data to the server at the same time (critical that its in the same time) 100x10 each second they can send 1 Gb in total to the server, the server can only process 1 GB per second so the server will not be able to process any other requests because its bandwidth is saturated processing this 1 GB from different place. Make it 200 users and you just clogged the pipe. 
  •  

    Max connections based DOS 10:13

    Another type of denial of service attack is by somehow force the server to reach its max connections. The web server usually sets a maximum number of tcp connections so that it doesn’t run out of memory. an attacker can perform a DOS attack to force the server to reach its max connection. once it does, it wont accept any more connections thus deny service of future requests. However it is not easy, web servers have good preventive measures to minimize unnecessary tcp connections. So you cannot just establish a connection and ghost the server. This isn’t your ex boyfriend. Server has good timeouts for connections that are idle, terminated or potentially harmful. However one possible attack is to establish a connection but send the data slowly so when the server tries to timeout it immediately reset the timeout and keep the connection alive! Assuming the max tcp connection is 200, Run your script 200 times and you just created 200 connections to the server so no new connection can connect.   

    Vulnerability based DOS 16:30 


    ...more
    View all episodesView all episodes
    Download on the App Store

    The Backend Engineering Show with Hussein NasserBy Hussein Nasser

    • 4.9
    • 4.9
    • 4.9
    • 4.9
    • 4.9

    4.9

    40 ratings


    More shows like The Backend Engineering Show with Hussein Nasser

    View all
    Freakonomics Radio by Freakonomics Radio + Stitcher

    Freakonomics Radio

    32,245 Listeners

    Software Engineering Radio - the podcast for professional software developers by team@se-radio.net (SE-Radio Team)

    Software Engineering Radio - the podcast for professional software developers

    273 Listeners

    Risky Business by Risky Business Media

    Risky Business

    373 Listeners

    Science Vs by Spotify Studios

    Science Vs

    12,138 Listeners

    Syntax - Tasty Web Development Treats by Wes Bos & Scott Tolinski - Full Stack JavaScript Web Developers

    Syntax - Tasty Web Development Treats

    991 Listeners

    Darknet Diaries by Jack Rhysider

    Darknet Diaries

    8,098 Listeners

    Practical AI by Practical AI LLC

    Practical AI

    216 Listeners

    Within Reason by Alex J O'Connor

    Within Reason

    1,664 Listeners

    All-In with Chamath, Jason, Sacks & Friedberg by All-In Podcast, LLC

    All-In with Chamath, Jason, Sacks & Friedberg

    10,188 Listeners

    Dwarkesh Podcast by Dwarkesh Patel

    Dwarkesh Podcast

    565 Listeners

    Big Technology Podcast by Alex Kantrowitz

    Big Technology Podcast

    511 Listeners

    Hard Fork by The New York Times

    Hard Fork

    5,600 Listeners

    The AI Daily Brief: Artificial Intelligence News and Analysis by Nathaniel Whittemore

    The AI Daily Brief: Artificial Intelligence News and Analysis

    675 Listeners

    Prof G Markets by Vox Media Podcast Network

    Prof G Markets

    1,479 Listeners

    The Pragmatic Engineer by Gergely Orosz

    The Pragmatic Engineer

    74 Listeners