micropatch-bench

Micropatching benchmarks compiled by Aarno Labs and MIT for DARPA Assured Micro-patching (AMP)

https://github.com/aarno-labs/micropatch-bench

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.2%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Micropatching benchmarks compiled by Aarno Labs and MIT for DARPA Assured Micro-patching (AMP)

Basic Info
  • Host: GitHub
  • Owner: Aarno-Labs
  • License: mit
  • Language: Dockerfile
  • Default Branch: main
  • Size: 864 MB
Statistics
  • Stars: 0
  • Watchers: 4
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 2 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation

README.md

MicroPatch Bench

This repository contains real-world source micro-patching examples from popular open-source programs. The patches focus on security vulnerabilities such as buffer overflows, integer overflows, command injection, etc.

Requirements

  • git LFS, please install and enable before you clone
  • Linux host (tested with Ubuntu 20.04)
  • Docker (tested with version 19.03.8)

Benchmark Artifacts

The benchmarks are located in the benchmarks directory. Each benchmark includes a Dockerfile that will build the binaries of the benchmark on any system that supports Docker. Inside of each benchmark directory is a compressed tarball of the source and a patch directory that includes a diff-based patch on the source code.

The Dockerfile will build the original binaries and the patched binaries and copy them to the build directory under the benchmark directory.

Building the Benchmarks

The build-benchmark.sh script builds a benchmark. Here is the usage (it must be run from the root directory of this repo):

Usage: build-benchmark.sh [-l] [benchmark-name] -a build arm version of benchmark (x86_64 is the default). -l List the names of the benchmarks only. Build benchmark: build-benchmark.sh benchmark-name

For example, to build the cwebp-0.3.1-mtpaint benchmark for arm you would run: ./build-benchmark.sh -a cwebp-0.3.1-mtpaint

If all goes well, you can find the original and patched binaries under the build folder: ``` $ ls benchmarks/cwebp-0.3.1-mtpaint/build/arm/* benchmarks/cwebp-0.3.1-mtpaint/build/arm/original: cwebp

benchmarks/cwebp-0.3.1-mtpaint/build/arm/patched: cwebp ```

The all.sh script will build all benchmarks. It has no arguments and must be run from the root directory of this repo.

Delete Docker Images

for i in $(ls benchmarks); do docker rmi $i-base; docker rmi $i-patched; done;

To Reference

If you plan to use any of the benchmarks in a publication, please let us know info@aarno-labs.com. Refer to the suite as "MicroPatch Bench".

Also, please cite this repository. See the CITATION.cff file.

Acknowledgments

The work on collecting the programs, patches, and developing the infrastructure to build the benchmarks was funded by the DARPA Assured Micropatching (AMP) program, contract N6600120C4025.

Owner

  • Name: Aarno-Labs
  • Login: Aarno-Labs
  • Kind: organization

GitHub Events

Total
  • Push event: 1
Last Year
  • Push event: 1

Dependencies

benchmarks/asterisk-11.1.2-cve-2013-2685/Dockerfile docker
  • asterisk-11.1.2-cve-2013-2685-common latest build
  • ubuntu 16.04 build
benchmarks/claws-mail-3.8.1-cve-2012-4507/Dockerfile docker
  • claws-mail-3.8.1-cve-2012-4507-common latest build
  • ubuntu 12.04 build
benchmarks/cwebp-0.3.1-feh/Dockerfile docker
  • cwebp-0.3.1-feh-common latest build
  • ubuntu 12.10 build
benchmarks/cwebp-0.3.1-mtpaint/Dockerfile docker
  • cwebp-0.3.1-mtpaint-common latest build
  • ubuntu 12.10 build
benchmarks/cwebp-0.3.1-viewnior/Dockerfile docker
  • cwebp-0.3.1-viewnior-common latest build
  • ubuntu 12.10 build
benchmarks/dillo-fltk.39-feh/Dockerfile docker
  • dillo-fltk.39-feh-common latest build
  • ubuntu 12.10 build
benchmarks/dillo-fltk.39-mtpaint/Dockerfile docker
  • dillo-fltk.39-mtpaint-common latest build
  • ubuntu 12.10 build
benchmarks/dillo-fltk.39-viewnior/Dockerfile docker
  • dillo-fltk.39-viewnior-common latest build
  • ubuntu 12.10 build
benchmarks/dillo-png.203-feh/Dockerfile docker
  • dillo-png.203-feh-common latest build
  • ubuntu 12.10 build
benchmarks/dillo-png.203-mtpaint/Dockerfile docker
  • dillo-png.203-mtpaint-common latest build
  • ubuntu 12.10 build
benchmarks/dillo-png.203-viewnior/Dockerfile docker
  • dillo-png.203-viewnior-common latest build
  • ubuntu 12.10 build
benchmarks/display-cache.3787-feh/Dockerfile docker
  • display-cache.3787-feh-common latest build
  • ubuntu 12.10 build
benchmarks/display-cache.3787-viewnior/Dockerfile docker
  • display-cache.3787-viewnior-common latest build
  • ubuntu 12.10 build
benchmarks/display-xwindow.5619-feh/Dockerfile docker
  • display-xwindow.5619-feh-common latest build
  • ubuntu 12.10 build
benchmarks/display-xwindow.5619-viewnior/Dockerfile docker
  • display-xwindow.5619-viewnior-common latest build
  • ubuntu 12.10 build
benchmarks/dnsmasq-2.77-cve-2017-14493/Dockerfile docker
  • dnsmasq-2.77-cve-2017-14493-common latest build
  • ubuntu 16.04 build
benchmarks/dnsmasq-2.77-cve-2017-14494/Dockerfile docker
  • dnsmasq-2.77-cve-2017-14494-common latest build
  • ubuntu 16.04 build
benchmarks/fbc-5458-5459/Dockerfile docker
  • fbc-5458-5459 latest build
  • i386/ubuntu 14.04 build