Metadata-Version: 2.1
Name: adtrees
Version: 0.0.2
Summary: Implementation of attack(-defense) trees.
Home-page: https://github.com/wwidel/adtrees/
Author: Wojciech Widel
Author-email: wwidel@irisa.fr
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
Requires-Dist: numpy (==1.11.1)
Requires-Dist: scipy (==0.18.1)
Provides-Extra: testing
Requires-Dist: pytest ; extra == 'testing'

`adtrees` implements some methods for qualitative and quantitative evaluation of security using [attack trees](https://en.wikipedia.org/wiki/Attack_tree)
and [attack-defense trees](http://people.irisa.fr/Barbara.Kordy/papers/ADT12.pdf).

The package is intended to be used together with the [ADTool](https://satoss.uni.lu/members/piotr/adtool/), but this is not obligatory.

**Prerequisites**

Optimization problems on attack-defense trees are solved using *lp_solve*. For the installation of *lp_solve*, see [Using lpsolve from Python](http://lpsolve.sourceforge.net/5.5/Python.htm). General information on *lp_solve* can be found [here](http://lpsolve.sourceforge.net/5.5/).

No special prerequisites for the remaining functionalities of `adtrees`.

**Installation**

```
pip install adtrees
```

**Example**

```python
import adtrees as adt

# initialize attack(-defense) tree from an output file 'tree.xml' produced by the ADTool
T = adt.ADTree('tree.xml')

# create a basic assignment of cost for the basic actions of the defender in T
ba = adt.BasicAssignment()
for b in T.basic_actions('d'):
    ba[b] = 10

# create an instance of the 'maximal coverage' optimization problem
problem = adt.ADTilp(T, costassignment=ba, budget=100, problem='coverage')

# solve the problem
problem.solve()

# the optimal set of countermeasures and some additional information is displayed
```

For other functionalities and more details, refer to the walk-through examples in [examples folder](../examples).


