rov-collector


Namerov-collector JSON
Version 1.1.13 PyPI version JSON
download
home_pageNone
SummaryDownloads ROV info from various sources
upload_time2024-11-23 11:26:20
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseCopyright 2020 Justin Furuness Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
keywords furuness bgp hijack roa rov as
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Informational Badges:

[![PyPI version](https://badge.fury.io/py/rov_collector.svg)](https://badge.fury.io/py/rov_collector)
![PyPy](https://img.shields.io/badge/PyPy-7.3.17-blue)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/rov_collector)](https://pypi.org/project/rov_collector/)
![Tests](https://github.com/jfuruness/rov_collector/actions/workflows/tests.yml/badge.svg)
![Linux](https://img.shields.io/badge/os-Linux-blue.svg)
![macOS Intel](https://img.shields.io/badge/os-macOS_Intel-lightgrey.svg)
![macOS ARM](https://img.shields.io/badge/os-macOS_ARM-lightgrey.svg)

Some Linting Badges (Where I could find them):

[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![Checked with mypy](https://img.shields.io/badge/mypy-checked-2A6DBA.svg)](http://mypy-lang.org/)
[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)
[![Pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/pylint-dev/pylint/tree/main)
[![try/except style: tryceratops](https://img.shields.io/badge/try%2Fexcept%20style-tryceratops%20%F0%9F%A6%96%E2%9C%A8-black)](https://github.com/guilatrova/tryceratops)

# rov\_collector

### 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

* [Description](#package-description)
* [Usage](#usage)
* [Installation](#installation)
* [Testing](#testing)
* [Credits](#credits)
* [History](#history)
* [Development/Contributing](#developmentcontributing)
* [Licence](#license)


## Package Description

This package downloads ROV data from a variety of sources and aggregates this information.
This is useful for simulations where you want to run mixed deployment scenarios
See the citations and explanations for all sources in the [Credits](#credits)
When the collectors are run, they output results into a JSON object.
This JSON is a dict where the key is ASN and the value is a list of ROVInfo objects

The results of a run from Nov 30 2023 can be seen here. Additionally, from the "Friends" paper, it's important to note that category 4 and category 5 ASes are not considered as ROV adopting, but are included in the graph for clarity.
![Image](https://drive.google.com/uc?export=view&id=1JxbyrKyGVKvNwUazSr_7sU_xijF5WUqK)
![Image](https://drive.google.com/uc?export=view&id=1c_x8EkkZ05YXjWf0yzlgs5z2ECQitIDS)


## Usage
* [rov\_collector](#rov\_collector)

from a script:

```python
from pathlib import Path

from rov_collector import rov_collector_classes


def main():
    json_path: Path = Path.home() / "Desktop" / "rov_info.json"
    # Clear out old files, since by default the collectors append
    json_path.unlink(missing_ok=True)
    for CollectorCls in rov_collector_classes:
        # For some reason mypy is freaking out about the instantiation here
        CollectorCls(json_path=json_path).run()  # type: ignore


if __name__ == "__main__":
    main()
```

From the command line:

```
rov_collector
```

## Installation
* [rov\_collector](#rov\_collector)

Install python and pip if you have not already.

Then run:

```bash
pip3 install pip --upgrade
pip3 install wheel
```

For production:

```bash
pip3 install rov_collector
```

This will install the package and all of it's python dependencies.

If you want to install the project for development:
```bash
git clone https://github.com/jfuruness/rov_collector.git
cd rov_collector
pip3 install -e .[test]
pre-commit install
```

To test the development package: [Testing](#testing)


## Testing
* [rov\_collector](#rov\_collector)

To test the package after installation:

```
cd rov_collector
pytest rov_collector
ruff check rov_collector
ruff format rov_collector
mypy rov_collector
```

If you want to run it across multiple environments:

```
cd rov_collector
tox --skip-missing-interpreters
```

## Credits
* [rov\_collector](#rov\_collector)

#### Revisiting RPKI Route Origin Validation on the Data Plane

Explanation:

We recieved the data source from this paper through email from from Mar 22, 2022 from Matthias Waehlisch <m.waehlisch@fu-berlin.de>

When the CSV says strong confidence, this indicates that it is 1 hop from PEERING.
When the CSV days weak confidence, that indicates that is 2+ hops from PEERING

Paper URL: [URL](https://tma.ifip.org/2021/wp-content/uploads/sites/10/2021/08/tma2021-paper11.pdf)

Paper data sources: [github](https://github.com/nrodday/TMA-21)

Bibtex:

```
@inproceedings{mixed_deployment_3,
  title = {Revisiting RPKI Route Origin Validation on the Data Plane},
  author = {Nils Rodday and Ítalo S. Cunha and Randy Bush and Ethan Katz-Bassett and Gabi Dreo Rodosek and Thomas C. Schmidt and Matthias Wählisch},
  year = {2021},
  url = {http://dl.ifip.org/db/conf/tma/tma2021/tma2021-paper11.pdf},
  researchr = {https://researchr.org/publication/RoddayCBKRSW21},
  cites = {0},
  citedby = {0},
  booktitle = {5th Network Traffic Measurement and Analysis Conference, TMA 2021, Virtual Event, September 14-15, 2021},
  editor = {Vaibhav Bajpai and Hamed Haddadi and Oliver Hohlfeld},
  publisher = {IFIP},
  isbn = {978-3-903176-40-9},
}
```

Github links:
* [Collector](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/tma_collector.py)
* [emailed CSV](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/data/tma.csv)

#### Cloudflare's isbgpsafeyet.com

Explanation:

This site by cloudflare allows you to test your ISP for ROV safety and stores this info.
They also defined whether it filters all ASes or only peers

Paper URL: [URL](https://isbgpsafeyet.com/)

Paper data sources: [github](https://github.com/cloudflare/isbgpsafeyet.com/)

Bibtex:

```
@misc{mixed_deployment_1,
  title = {Is BGP Safe Yet?},
  author = {Cloudflare},
  url = {https://isbgpsafeyet.com/},
  year = {2023},
}
```

Github links:
* [Collector](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/is_bgp_safe_yet_collector.py)
* [CSV](https://raw.githubusercontent.com/cloudflare/isbgpsafeyet.com/master/data/operators.csv)

#### Measuring RPKI Route Origin Validation Deployment

Explanation:

At the time of publication this was one of the largest data sources for ROV ASes.
They also had a nice website listing out all the ROV AS data.
The website was last updated in 2020, so I'm not worried about a live feed.
Instead I've just right clicked inspect on their page using google chrome,
then clicked on the network tab,
reloaded the page,
and clicked on the asn query,
and then clicked on response,
and copy pasted this locally.
I've checked that it's the same as the page.

Paper URL: [URL](https://rov.rpki.net/paper)

Paper data sources: [github](https://github.com/RPKI/rov-measurement-code), [website](https://rov.rpki.net/)

Bibtex:

```
@article{mixed_deployment_2,
title={Towards a rigorous methodology for measuring adoption of rpki route validation and filtering},
author={Reuter, Andreas and Bush, Randy and Cunha, It{^a}lo and Katz-Bassett, Ethan and Schmidt, Thomas C and W{"a}hlisch, Matthias},
journal={ACM SIGCOMM Computer Communication Review},
volume={48},
number={1},
pages={19--27},
year={2018},
publisher={ACM}
}
```

Github links:
* [Collector](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/rpki_collector.py)
* [emailed CSV](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/data/rov.rpki.net.json)

#### Keep your friends close, but your routeservers closer: Insights into RPKI validation in the internet

Explanation:

This paper describes a new way to obtain ROV AS information and shows a drastic increase in ROV adoption, almost 27% adoption

Paper URL: [URL](https://www.usenix.org/system/files/usenixsecurity23-hlavacek.pdf)

Paper data sources: [github](https://www.dropbox.com/s/3zr7sjkyhdrdnap/rov-2022.tar.gz?dl=0)

Bibtex:

```
@inproceedings{mixed_deployment_4,
author = {Hlavacek, Tomas and Shulman, Haya and Vogel, Niklas and Waidner, Michael},
title = {Keep Your Friends Close, but Your Routeservers Closer: Insights into RPKI Validation in the Internet},
year = {2023},
isbn = {978-1-939133-37-3},
publisher = {USENIX Association},
address = {USA},
booktitle = {Proceedings of the 32nd USENIX Conference on Security Symposium},
articleno = {271},
numpages = {18},
location = {Anaheim, CA, USA},
series = {SEC '23}
}
```

Also adding another bibtex for a poster presentation about this topic by the same authors that seems to be a subset of this work:

```
@inproceedings{mixed_deployment_5,
author = {Shulman, Haya and Vogel, Niklas and Waidner, Michael},
title = {Poster: Insights into Global Deployment of RPKI Validation},
year = {2022},
isbn = {9781450394505},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3548606.3563523},
doi = {10.1145/3548606.3563523},
booktitle = {Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security},
pages = {3467–3469},
numpages = {3},
keywords = {rpki, prefix hijacks, bgp},
location = {Los Angeles, CA, USA},
series = {CCS '22}
}
```

And adding another bibtex here that cites this work as showing 37.8% adoption. I don't think that number is correct, but it does cite it:

```
(I couldn't find the bibtex, but the paper is "The CURE to Vulnerabilities in RPKI Validation", led by Donika Mirdita, Haya Shulman, etc)
```

Github links: [Collector](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/collectors/friends_collector.py), [data](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/data/friends.json)

It's just a dropbox, and additionally, the README said that results and reproduction steps would be later published, not sure if they just forgot about this?

I am able to run the code after some extra steps, which does take a long time to run. The resulting dataset is stored in the data/friends.json file. It's important to note that this was with 8.95% network errors (I believe their paper had some of these as well) and this took place Nov 30 2023.

#### ROVISTA

Explanation:

This paper references a website with a list of ROV ASes, including an API! Super helpful

Paper URL: [Not linked, will be published IMC 2023]()

Paper data sources: [github](https://github.com/lilanleo/RoVista), [website](https://rovista.netsecurelab.org/)

Bibtex:

```
@inproceedings{mixed_deployment_6,
  author = {Weitong Li and Zhexiao Lin and Mohammad Ishtiaq Ashiq Khan and Emile Aben and Romain Fontugne and Amreesh Phokeer and Taejoong Chung},
  title = {{RoVista: Measuring and Understanding the Route Origin Validation (ROV) in RPKI}},
  booktitle = {Proceedings of the ACM Internet Measurement Conference (IMC'23)},
  address = {Montreal, Canada},
  month = {October},
  year = {2023}
}
```

Github links:
* [Collector](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/rovista_collector.py)

#### https://stats.labs.apnic.net/rpki

Explanation:

I don't think this even has a paper, it's just a website detailing ROV measurements

Paper URL: [Doesn't appear to have a paper]()

Paper data sources: [doesn't appear to have a github](), [website](https://stats.labs.apnic.net/rpki)

Bibtex:

```

@misc{mixed_deployment_7,
title={RPKI},
url={https://stats.labs.apnic.net/rpki},
author={APNIC Labs},
year={2023}
}
```

Github links:
* [Collector](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/apnic_collector.py)



## History
* [rov\_collector](#rov\_collector)

* 1.1.13 Updated deps, removed windows support due to lack of windows pypy wheels (which broke CI/CD), ruff settings updates
* 1.1.12 Fixed low font size and low DPI
* 1.1.11 Fixed an issue in pyproject.toml resulting in improper installs when done non-locally
* 1.1.10 README updates, tox updates
* 1.1.9 Dependency and linter updates, README updates, support for many OSes
* 1.1.8 Dependency updates
* 1.1.7 README update, and update to the script to put tier-1 instead of input_clique
* 1.1.6 Updated tier graph script (outside of the repo)
* 1.1.5 Added a top level import for the enums
* 1.1.4 Fixed a typo in the MANIFEST.IN file that resulted in the data directly not being included in source distributions
* 1.1.3 Updated versions and dependencies

## Development/Contributing
* [rov\_collector](#rov\_collector)

1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Test it
5. Run tox
6. Commit your changes: `git commit -am 'Add some feature'`
7. Push to the branch: `git push origin my-new-feature`
8. Ensure github actions are passing tests
9. Email me at jfuruness@gmail.com if it's been a while and I haven't seen it

## License
* [rov\_collector](#rov\_collector)

BSD License (see license file)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rov-collector",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "Furuness, BGP, Hijack, ROA, ROV, AS",
    "author": null,
    "author_email": "Justin Furuness <jfuruness@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/b0/ae/60ab15618951c794c2631d4163d15473f32cfdcca6af1879ae8576ad37ba/rov_collector-1.1.13.tar.gz",
    "platform": null,
    "description": "Informational Badges:\n\n[![PyPI version](https://badge.fury.io/py/rov_collector.svg)](https://badge.fury.io/py/rov_collector)\n![PyPy](https://img.shields.io/badge/PyPy-7.3.17-blue)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/rov_collector)](https://pypi.org/project/rov_collector/)\n![Tests](https://github.com/jfuruness/rov_collector/actions/workflows/tests.yml/badge.svg)\n![Linux](https://img.shields.io/badge/os-Linux-blue.svg)\n![macOS Intel](https://img.shields.io/badge/os-macOS_Intel-lightgrey.svg)\n![macOS ARM](https://img.shields.io/badge/os-macOS_ARM-lightgrey.svg)\n\nSome Linting Badges (Where I could find them):\n\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Checked with mypy](https://img.shields.io/badge/mypy-checked-2A6DBA.svg)](http://mypy-lang.org/)\n[![Imports: isort](https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336)](https://pycqa.github.io/isort/)\n[![Pylint](https://img.shields.io/badge/linting-pylint-yellowgreen)](https://github.com/pylint-dev/pylint/tree/main)\n[![try/except style: tryceratops](https://img.shields.io/badge/try%2Fexcept%20style-tryceratops%20%F0%9F%A6%96%E2%9C%A8-black)](https://github.com/guilatrova/tryceratops)\n\n# rov\\_collector\n\n### 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\n\n* [Description](#package-description)\n* [Usage](#usage)\n* [Installation](#installation)\n* [Testing](#testing)\n* [Credits](#credits)\n* [History](#history)\n* [Development/Contributing](#developmentcontributing)\n* [Licence](#license)\n\n\n## Package Description\n\nThis package downloads ROV data from a variety of sources and aggregates this information.\nThis is useful for simulations where you want to run mixed deployment scenarios\nSee the citations and explanations for all sources in the [Credits](#credits)\nWhen the collectors are run, they output results into a JSON object.\nThis JSON is a dict where the key is ASN and the value is a list of ROVInfo objects\n\nThe results of a run from Nov 30 2023 can be seen here. Additionally, from the \"Friends\" paper, it's important to note that category 4 and category 5 ASes are not considered as ROV adopting, but are included in the graph for clarity.\n![Image](https://drive.google.com/uc?export=view&id=1JxbyrKyGVKvNwUazSr_7sU_xijF5WUqK)\n![Image](https://drive.google.com/uc?export=view&id=1c_x8EkkZ05YXjWf0yzlgs5z2ECQitIDS)\n\n\n## Usage\n* [rov\\_collector](#rov\\_collector)\n\nfrom a script:\n\n```python\nfrom pathlib import Path\n\nfrom rov_collector import rov_collector_classes\n\n\ndef main():\n    json_path: Path = Path.home() / \"Desktop\" / \"rov_info.json\"\n    # Clear out old files, since by default the collectors append\n    json_path.unlink(missing_ok=True)\n    for CollectorCls in rov_collector_classes:\n        # For some reason mypy is freaking out about the instantiation here\n        CollectorCls(json_path=json_path).run()  # type: ignore\n\n\nif __name__ == \"__main__\":\n    main()\n```\n\nFrom the command line:\n\n```\nrov_collector\n```\n\n## Installation\n* [rov\\_collector](#rov\\_collector)\n\nInstall python and pip if you have not already.\n\nThen run:\n\n```bash\npip3 install pip --upgrade\npip3 install wheel\n```\n\nFor production:\n\n```bash\npip3 install rov_collector\n```\n\nThis will install the package and all of it's python dependencies.\n\nIf you want to install the project for development:\n```bash\ngit clone https://github.com/jfuruness/rov_collector.git\ncd rov_collector\npip3 install -e .[test]\npre-commit install\n```\n\nTo test the development package: [Testing](#testing)\n\n\n## Testing\n* [rov\\_collector](#rov\\_collector)\n\nTo test the package after installation:\n\n```\ncd rov_collector\npytest rov_collector\nruff check rov_collector\nruff format rov_collector\nmypy rov_collector\n```\n\nIf you want to run it across multiple environments:\n\n```\ncd rov_collector\ntox --skip-missing-interpreters\n```\n\n## Credits\n* [rov\\_collector](#rov\\_collector)\n\n#### Revisiting RPKI Route Origin Validation on the Data Plane\n\nExplanation:\n\nWe recieved the data source from this paper through email from from Mar 22, 2022 from Matthias Waehlisch <m.waehlisch@fu-berlin.de>\n\nWhen the CSV says strong confidence, this indicates that it is 1 hop from PEERING.\nWhen the CSV days weak confidence, that indicates that is 2+ hops from PEERING\n\nPaper URL: [URL](https://tma.ifip.org/2021/wp-content/uploads/sites/10/2021/08/tma2021-paper11.pdf)\n\nPaper data sources: [github](https://github.com/nrodday/TMA-21)\n\nBibtex:\n\n```\n@inproceedings{mixed_deployment_3,\n  title = {Revisiting RPKI Route Origin Validation on the Data Plane},\n  author = {Nils Rodday and \u00cdtalo S. Cunha and Randy Bush and Ethan Katz-Bassett and Gabi Dreo Rodosek and Thomas C. Schmidt and Matthias W\u00e4hlisch},\n  year = {2021},\n  url = {http://dl.ifip.org/db/conf/tma/tma2021/tma2021-paper11.pdf},\n  researchr = {https://researchr.org/publication/RoddayCBKRSW21},\n  cites = {0},\n  citedby = {0},\n  booktitle = {5th Network Traffic Measurement and Analysis Conference, TMA 2021, Virtual Event, September 14-15, 2021},\n  editor = {Vaibhav Bajpai and Hamed Haddadi and Oliver Hohlfeld},\n  publisher = {IFIP},\n  isbn = {978-3-903176-40-9},\n}\n```\n\nGithub links:\n* [Collector](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/tma_collector.py)\n* [emailed CSV](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/data/tma.csv)\n\n#### Cloudflare's isbgpsafeyet.com\n\nExplanation:\n\nThis site by cloudflare allows you to test your ISP for ROV safety and stores this info.\nThey also defined whether it filters all ASes or only peers\n\nPaper URL: [URL](https://isbgpsafeyet.com/)\n\nPaper data sources: [github](https://github.com/cloudflare/isbgpsafeyet.com/)\n\nBibtex:\n\n```\n@misc{mixed_deployment_1,\n  title = {Is BGP Safe Yet?},\n  author = {Cloudflare},\n  url = {https://isbgpsafeyet.com/},\n  year = {2023},\n}\n```\n\nGithub links:\n* [Collector](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/is_bgp_safe_yet_collector.py)\n* [CSV](https://raw.githubusercontent.com/cloudflare/isbgpsafeyet.com/master/data/operators.csv)\n\n#### Measuring RPKI Route Origin Validation Deployment\n\nExplanation:\n\nAt the time of publication this was one of the largest data sources for ROV ASes.\nThey also had a nice website listing out all the ROV AS data.\nThe website was last updated in 2020, so I'm not worried about a live feed.\nInstead I've just right clicked inspect on their page using google chrome,\nthen clicked on the network tab,\nreloaded the page,\nand clicked on the asn query,\nand then clicked on response,\nand copy pasted this locally.\nI've checked that it's the same as the page.\n\nPaper URL: [URL](https://rov.rpki.net/paper)\n\nPaper data sources: [github](https://github.com/RPKI/rov-measurement-code), [website](https://rov.rpki.net/)\n\nBibtex:\n\n```\n@article{mixed_deployment_2,\ntitle={Towards a rigorous methodology for measuring adoption of rpki route validation and filtering},\nauthor={Reuter, Andreas and Bush, Randy and Cunha, It{^a}lo and Katz-Bassett, Ethan and Schmidt, Thomas C and W{\"a}hlisch, Matthias},\njournal={ACM SIGCOMM Computer Communication Review},\nvolume={48},\nnumber={1},\npages={19--27},\nyear={2018},\npublisher={ACM}\n}\n```\n\nGithub links:\n* [Collector](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/rpki_collector.py)\n* [emailed CSV](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/data/rov.rpki.net.json)\n\n#### Keep your friends close, but your routeservers closer: Insights into RPKI validation in the internet\n\nExplanation:\n\nThis paper describes a new way to obtain ROV AS information and shows a drastic increase in ROV adoption, almost 27% adoption\n\nPaper URL: [URL](https://www.usenix.org/system/files/usenixsecurity23-hlavacek.pdf)\n\nPaper data sources: [github](https://www.dropbox.com/s/3zr7sjkyhdrdnap/rov-2022.tar.gz?dl=0)\n\nBibtex:\n\n```\n@inproceedings{mixed_deployment_4,\nauthor = {Hlavacek, Tomas and Shulman, Haya and Vogel, Niklas and Waidner, Michael},\ntitle = {Keep Your Friends Close, but Your Routeservers Closer: Insights into RPKI Validation in the Internet},\nyear = {2023},\nisbn = {978-1-939133-37-3},\npublisher = {USENIX Association},\naddress = {USA},\nbooktitle = {Proceedings of the 32nd USENIX Conference on Security Symposium},\narticleno = {271},\nnumpages = {18},\nlocation = {Anaheim, CA, USA},\nseries = {SEC '23}\n}\n```\n\nAlso adding another bibtex for a poster presentation about this topic by the same authors that seems to be a subset of this work:\n\n```\n@inproceedings{mixed_deployment_5,\nauthor = {Shulman, Haya and Vogel, Niklas and Waidner, Michael},\ntitle = {Poster: Insights into Global Deployment of RPKI Validation},\nyear = {2022},\nisbn = {9781450394505},\npublisher = {Association for Computing Machinery},\naddress = {New York, NY, USA},\nurl = {https://doi.org/10.1145/3548606.3563523},\ndoi = {10.1145/3548606.3563523},\nbooktitle = {Proceedings of the 2022 ACM SIGSAC Conference on Computer and Communications Security},\npages = {3467\u20133469},\nnumpages = {3},\nkeywords = {rpki, prefix hijacks, bgp},\nlocation = {Los Angeles, CA, USA},\nseries = {CCS '22}\n}\n```\n\nAnd adding another bibtex here that cites this work as showing 37.8% adoption. I don't think that number is correct, but it does cite it:\n\n```\n(I couldn't find the bibtex, but the paper is \"The CURE to Vulnerabilities in RPKI Validation\", led by Donika Mirdita, Haya Shulman, etc)\n```\n\nGithub links: [Collector](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/collectors/friends_collector.py), [data](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/data/friends.json)\n\nIt's just a dropbox, and additionally, the README said that results and reproduction steps would be later published, not sure if they just forgot about this?\n\nI am able to run the code after some extra steps, which does take a long time to run. The resulting dataset is stored in the data/friends.json file. It's important to note that this was with 8.95% network errors (I believe their paper had some of these as well) and this took place Nov 30 2023.\n\n#### ROVISTA\n\nExplanation:\n\nThis paper references a website with a list of ROV ASes, including an API! Super helpful\n\nPaper URL: [Not linked, will be published IMC 2023]()\n\nPaper data sources: [github](https://github.com/lilanleo/RoVista), [website](https://rovista.netsecurelab.org/)\n\nBibtex:\n\n```\n@inproceedings{mixed_deployment_6,\n  author = {Weitong Li and Zhexiao Lin and Mohammad Ishtiaq Ashiq Khan and Emile Aben and Romain Fontugne and Amreesh Phokeer and Taejoong Chung},\n  title = {{RoVista: Measuring and Understanding the Route Origin Validation (ROV) in RPKI}},\n  booktitle = {Proceedings of the ACM Internet Measurement Conference (IMC'23)},\n  address = {Montreal, Canada},\n  month = {October},\n  year = {2023}\n}\n```\n\nGithub links:\n* [Collector](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/rovista_collector.py)\n\n#### https://stats.labs.apnic.net/rpki\n\nExplanation:\n\nI don't think this even has a paper, it's just a website detailing ROV measurements\n\nPaper URL: [Doesn't appear to have a paper]()\n\nPaper data sources: [doesn't appear to have a github](), [website](https://stats.labs.apnic.net/rpki)\n\nBibtex:\n\n```\n\n@misc{mixed_deployment_7,\ntitle={RPKI},\nurl={https://stats.labs.apnic.net/rpki},\nauthor={APNIC Labs},\nyear={2023}\n}\n```\n\nGithub links:\n* [Collector](https://github.com/jfuruness/rov_collector/blob/master/rov_collector/apnic_collector.py)\n\n\n\n## History\n* [rov\\_collector](#rov\\_collector)\n\n* 1.1.13 Updated deps, removed windows support due to lack of windows pypy wheels (which broke CI/CD), ruff settings updates\n* 1.1.12 Fixed low font size and low DPI\n* 1.1.11 Fixed an issue in pyproject.toml resulting in improper installs when done non-locally\n* 1.1.10 README updates, tox updates\n* 1.1.9 Dependency and linter updates, README updates, support for many OSes\n* 1.1.8 Dependency updates\n* 1.1.7 README update, and update to the script to put tier-1 instead of input_clique\n* 1.1.6 Updated tier graph script (outside of the repo)\n* 1.1.5 Added a top level import for the enums\n* 1.1.4 Fixed a typo in the MANIFEST.IN file that resulted in the data directly not being included in source distributions\n* 1.1.3 Updated versions and dependencies\n\n## Development/Contributing\n* [rov\\_collector](#rov\\_collector)\n\n1. Fork it!\n2. Create your feature branch: `git checkout -b my-new-feature`\n3. Test it\n5. Run tox\n6. Commit your changes: `git commit -am 'Add some feature'`\n7. Push to the branch: `git push origin my-new-feature`\n8. Ensure github actions are passing tests\n9. Email me at jfuruness@gmail.com if it's been a while and I haven't seen it\n\n## License\n* [rov\\_collector](#rov\\_collector)\n\nBSD License (see license file)\n",
    "bugtrack_url": null,
    "license": "Copyright 2020 Justin Furuness  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ",
    "summary": "Downloads ROV info from various sources",
    "version": "1.1.13",
    "project_urls": {
        "homepage": "https://github.com/jfuruness/rov_collector.git"
    },
    "split_keywords": [
        "furuness",
        " bgp",
        " hijack",
        " roa",
        " rov",
        " as"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9e6438d702a2ec094e1de12d21b7a3576a161e8ecd512173404a14b16847cf91",
                "md5": "f113e1cb93d7c65ffba9bb6200732497",
                "sha256": "80a1d072d7ae8feceabe6eb99cfe02f845d1c033e44b01adb8647f1127e8f196"
            },
            "downloads": -1,
            "filename": "rov_collector-1.1.13-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f113e1cb93d7c65ffba9bb6200732497",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 42382,
            "upload_time": "2024-11-23T11:26:18",
            "upload_time_iso_8601": "2024-11-23T11:26:18.707584Z",
            "url": "https://files.pythonhosted.org/packages/9e/64/38d702a2ec094e1de12d21b7a3576a161e8ecd512173404a14b16847cf91/rov_collector-1.1.13-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b0ae60ab15618951c794c2631d4163d15473f32cfdcca6af1879ae8576ad37ba",
                "md5": "503c392948d7e4b28fe88a01d63f3caf",
                "sha256": "a0f8a9ef6b9a69ee2508553833a23a1d12f167f813e5c4af2d176f1d6f6dc5b1"
            },
            "downloads": -1,
            "filename": "rov_collector-1.1.13.tar.gz",
            "has_sig": false,
            "md5_digest": "503c392948d7e4b28fe88a01d63f3caf",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 45432,
            "upload_time": "2024-11-23T11:26:20",
            "upload_time_iso_8601": "2024-11-23T11:26:20.675309Z",
            "url": "https://files.pythonhosted.org/packages/b0/ae/60ab15618951c794c2631d4163d15473f32cfdcca6af1879ae8576ad37ba/rov_collector-1.1.13.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-23 11:26:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jfuruness",
    "github_project": "rov_collector",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "rov-collector"
}
        
Elapsed time: 0.45040s