Skip to content
jfuruness edited this page Sep 9, 2024 · 45 revisions

Informational Badges:

PyPI version PyPy PyPI - Python Version Tests Linux macOS Intel macOS ARM Windows

Some Linting Badges (Where I could find them):

Ruff Code style: black Checked with mypy Imports: isort Pylint try/except style: tryceratops

bgpy

If you like the repo, it would be awesome if you could add a star to it! It really helps out the visibility. Also for any questions at all we'd love to hear from you at jfuruness@gmail.com

This documentation is meant to serve as an implementation guide for using and extending BGPy. From a high level, BGPy is an extendable BGP simulator that can be used for security simulations for attack and defense. You can see our previous publication of the tool here for a high level overview (albeit a bit outdated at this point). Additionally, unlike the paper, which takes a top down approach, this documentation takes a bottom up approach, from the as graph, to the simulation engine, to the framework, to the test suite.

The Simulation Engine at a high level can simulate BGP on the AS topology. It is flexible enough that a user can define their own routing policies for any given AS, and has built in functionality to be able to use real world ROV data in the simulations.

The Simulation Framework is a wrapper around the Simulation Engine. The Simulation Framework contains the ability to run various attack defense scenarios. It also contains default metrics that are used for analysis, enabling the user to easily compare different defensive and attacker strategies.

BGPy also contains a System Test Suite. This test suite allows users to run various attack defense scenarios on small topologies, ensure that they are functioning properly, and generates diagrams for easy viewing of these results.

For an in depth understanding, it is highly recommended that users go through the tutorial, which walks through the repository step by step.

BGPy Citation:

@inproceedings{10.1145/3607505.3607509,
author = {Furuness, Justin and Morris, Cameron and Morillo, Reynaldo and Herzberg, Amir and Wang, Bing},
title = {BGPy: The BGP Python Security Simulator},
year = {2023},
isbn = {9798400707889},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3607505.3607509},
doi = {10.1145/3607505.3607509},
abstract = {The security of Border Gateway Protocol (BGP), and inter-domain routing in general, remains a challenge, in spite of its well-known importance, repeated attacks and incidents, and extensive efforts and research over decades. We present BGPy, an open-source, extensible, robust, easy-to-use and efficient BGP security simulator, to be used for research and education. BGPy allows realistic simulations of a large variety of BGP attacks and defenses. It is provided as a Python package, and can be further customized and extended, e.g., to investigate new attacks and new defense mechanisms. We describe how BGPy is currently used by multiple BGP security projects.},
booktitle = {Proceedings of the 16th Cyber Security Experimentation and Test Workshop},
pages = {41–56},
numpages = {16},
location = {Marina del Rey, CA, USA},
series = {CSET '23}
}
Table of Contents