Skip to content

Added SYN Flooding to Scenario Example#54

Open
CarlosBeltranQ wants to merge 45 commits into
mainfrom
flooding
Open

Added SYN Flooding to Scenario Example#54
CarlosBeltranQ wants to merge 45 commits into
mainfrom
flooding

Conversation

@CarlosBeltranQ

@CarlosBeltranQ CarlosBeltranQ commented Nov 13, 2025

Copy link
Copy Markdown
Collaborator

Added SYN Flooding to SST Testbed

When the user launches the SYN Flood attack using the DoSSYN keyword, client will call a function in send_syn.cpp called send_syn_packets().

send_syn_packets() will create the headers and socket necessary to send syn packets to Auth.

Metric Logging

Added the ability to track metrics for the DoS and DDoS attacks by adding an optional -metrics flag when running ./client.

The metric log files are put into a file in the SST_Testbed/metric_logs/ directory.

These files are CSV files and the values they hold are the:

  1. Experiment ID
  2. Start Timestamp
  3. End Timestamp
  4. Successes
  5. Failures
  6. Average Duration
  7. Minimum Duration
  8. Maximum Duration
  9. Attempt Rate
  10. Success Rate

For more details about each of these values, please visit SST_Testbed/lib/README.md.

Plot Generators

A plot.py file was added in SST_Testbed/plot_generators/ that plots given metric files. These plots will extract the latency and throughput information from the metric log files and plot them on graphs.

The graphs will have either latency, in milliseconds, or throughput, in attempts per second, plotted on the y-axis and the number of malicious clients plotted on the x-axis.

latency is the average duration of each operation during an attack, in milliseconds.

throughput is the number of attempted operations during an attack, per second.

CarlosBeltranQ and others added 29 commits October 13, 2025 16:13
…tion send_one_syn(). Also created send_syn.hpp

@CarlosBeltranQ CarlosBeltranQ left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added SYN Flooding capabilities to Scenario. Plus, Metric Logging for all the DDoS attack types and Python files that plot given metric files.

Comment thread examples/SST_Testbed/README.md
Comment thread c_common.c
}
total_read += bytes_read;
}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Double check here.

Comment thread examples/server_client_example/c_client.config Outdated
@hokeun hokeun marked this pull request as ready for review December 22, 2025 20:04
Comment thread examples/SST_Testbed/lib/metrics.cpp Outdated
Comment on lines +19 to +21
using namespace std::chrono;
return duration_cast<microseconds>(system_clock::now().time_since_epoch())
.count();

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
using namespace std::chrono;
return duration_cast<microseconds>(system_clock::now().time_since_epoch())
.count();
return duration_cast<microseconds>(std::chrono::system_clock::now().time_since_epoch())
.count();

Comment thread examples/SST_Testbed/lib/metrics.cpp Outdated
#include <iomanip>
#include <mutex>

using namespace std;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest removing using namespace std; and always explicitly using std::blah.

Comment thread examples/SST_Testbed/lib/metrics.cpp Outdated
}

void metrics_end_row_and_write(MetricsRow& r) {
using namespace std::chrono;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto here for removing using namespace std::chrono;

2. Run `mkdir build && cd build`

3. Run `cmake ..`.
3. Run `cmake ..`

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add award winning on top of readme. @CarlosBeltranQ

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants