AttackerSynthesis

↞ Back to README.md

Korg is named after the KORG MicroKorg synthesizer, which has a dedicated attack knob (Knob 3). (Source: KORG MicroKorg Owner's Manual, page 9). Image below courtesty of KORG.

What is Korg?

Korg is a tool for attacker synthesis. Specifically, given:

Korg will try to generate a new process A called an attacker that has the interface IO and violates phi when composed with P.

Intuitively, Korg assumes the adversary can “hack” a process Q in an environment P, and attempts to prove that in so doing, an adversary might induce P to violate phi. The IO is used to stop the adversary from performing actions that Q could never perform in the first place.

How can I install Korg?

See the install docs.

How can I use Korg?

See the usage docs.

… using the Makefile

Read the #comments in the Makefile. TL;DR:

… using Bash

See the Usage docs, or, adapt the commands in the Makefile to your needs.

… using Windows

Use Cygwin, or, a virtual machine, or, the Linux Subsystem.

I ran Korg on my threat model. Now, how do I interpret the results?

See interpreting outputs.

Help! It’s not working!

See troubleshooting.

How can I directly reproduce the results from the ArXiV paper?

Simply build the Dockerfile. It automatically reproduces all results from the paper, and checks these results against a saved copy.