Artifacts for Usenix Security Symposium '25 paper "Voluntary Investments, Mandatory Minimums, or Cyber Insurance: What Minimizes Losses?"
Description
Artifacts for "Voluntary Investment, Mandatory Minimums, or Cyber Insurance: What minimizes losses?"
To appear at Usenix Security 2025
This repository contains the code and data necessary to reproduce all figures, regressions, and simulations used in the paper "Voluntary Investment, Mandatory Minimums, or Cyber Insurance: What minimizes losses?", to appear at Usenix Security 2025. This upload contains two components:
- artifacts.tar.gz: This is a compressed file containing two directories:
- parameter-calcs/ : The datasets used in the empirical research portion of this work as well as the scripts used to analyze the datasets, and the resulting figures and calculated outputs.
- simulator/. : The code of the model, as well as all config files and generated data, as well as all scripts used to analyze the generated data, and the resulting figures and outputs.
- containerized.tar.gz: The code in simulator/ may be difficult to compile. To ease artifact evaluation, we have also included a containerized version of the above app, to be run with Docker.
Finally, while not included in this Zenodo upload, we also refer to the website cyberspending.cs.columbia.edu, which hosts the containerized application. The link to this website is also included for ease of use. We intend to maintain and support this website indefinitely. Reproducing Parameter Calculations
python3 parameter-calcs/scripts/ransom_regression_plot.py
,which will produce outputs in parameter-calcs/figures/ransom_regression/
.python3 parameter-calcs/scripts/plot_erf.py
, which will produce outputs in parameter-calcs/figures/erf/
python3 parameter-calcs/scripts/curve_fit_attack_rate.py
, which will produce outputs in parameter-calcs/figures/attackrate_fitting/
python3 parameter-calcs/scripts/curve_fit_posture.py
, which will produce outputs in parameter-calcs/figures/posture_fitting/
python3 parameter-calcs/scripts/fit_marketcap_revenue_curves.py,
parameter-calcs/scripts/secinvestments.nb
(may require a Mathematica license).Reproducing Simulator Outputs
Baseline Model Behavior
cd simulator/scripts
python3 run_all.py ../logs/fullsize_short.csv
simulator/scripts/figures/fullsize_short/
../simulator/run/release/run_games simulator/configs/fullsize_short.json
One-Way Sensitivity Analysis
cd simulator/scripts
python3 plot_sensitivity_analysis.py
simulator/scripts/figures/sensitivvity_analysis/
simulator/configs/sweeps/
, e.g../simulator/run/release/run_games simulator/configs/sweeps/MAX_ITERATIONS=500/sweep_INEQUALITY.json
Mandated Security Investments
cd simulator/scripts
python3 run_all.py ../logs/fullsize_short_MANDATORY_INVESTMENT=0.01.csv
python3 run_all.py ../logs/fullsize_short_MANDATORY_INVESTMENT=0.02.csv
python3 run_all.py ../logs/fullsize_short_MANDATORY_INVESTMENT=0.03.csv
python3 run_all.py ../logs/fullsize_short_MANDATORY_INVESTMENT=0.04.csv
python3 run_all.py ../logs/fullsize_short_MANDATORY_INVESTMENT=0.05.csv
simulator/scripts/figures/
, e.g. simulator/scripts/figures/fullsize_short_MANDATORY_INVESTMENT=0.01/
./simulator/run/release/run_games simulator/configs/fullsize_short_MANDATORY_INVESTMENT=0.01.json
./simulator/run/release/run_games simulator/configs/fullsize_short_MANDATORY_INVESTMENT=0.02.json
./simulator/run/release/run_games simulator/configs/fullsize_short_MANDATORY_INVESTMENT=0.03.json
./simulator/run/release/run_games simulator/configs/fullsize_short_MANDATORY_INVESTMENT=0.04.json
./simulator/run/release/run_games simulator/configs/fullsize_short_MANDATORY_INVESTMENT=0.05.json
Mandated Insurance
cd simulator/scripts
python3 run_all.py ../logs/fullsize_short_mandatory_insurance.csv
simulator/scripts/figures/fullsize_short_mandatory_insurance/
./simulator/run/release/run_games simulator/configs/fullsize_short_mandatory_insurance.json
Actuarially Fair Insurance
cd simulator/scripts
python3 run_all.py ../logs/fullsize_short_selfless_insurers.csv"
simulator/scripts/figures/fullsize_short_selfless_insurers/
./simulator/run/release/run_games simulator/configs/fullsize_short_selfless_insurers.json
A Non-Closed Ecosystem
cd simulator/scripts
python3 run_all.py ../logs/fullsize_short_with_asset_growth_GROWTH_RATE=0.001.csv
python3 run_all.py ../logs/fullsize_short_with_asset_growth_GROWTH_RATE=0.002.csv
python3 run_all.py ../logs/fullsize_short_with_asset_growth_GROWTH_RATE=0.01.csv
simulator/scripts/figures/,
e.g. simulator/scripts/figures/fullsize_short_with_asset_growth_GROWTH_RATE=0.01/.
./simulator/run/release/run_games simulator/configs/fullsize_short_with_asset_growth_GROWTH_RATE=0.001.json
./simulator/run/release/run_games simulator/configs/fullsize_short_with_asset_growth_GROWTH_RATE=0.002.json
./simulator/run/release/run_games simulator/configs/fullsize_short_with_asset_growth_GROWTH_RATE=0.01.json
Files
Files
(401.5 MB)
Name | Size | Download all |
---|---|---|
md5:5ba9dee7f873e3f924605a75fd83e8b1
|
398.1 MB | Download |
md5:ce1cc60d7f68ecb5396e0e77036f47ff
|
3.4 MB | Download |