Metadata-Version: 2.1
Name: py-openkat
Version: 1.2.0
Summary: A lightweight version of OpenKAT.
Home-page: https://github.com/Donnype/py-openkat
Keywords: OpenKAT,Security Analysis
Author: Donny Peeters
Author-email: donny.peeters@hotmail.com
Maintainer: Donny Peeters
Maintainer-email: donny.peeters@hotmail.com
Requires-Python: >=3.8,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Requires-Dist: Django (==3.2.15)
Requires-Dist: SQLAlchemy (>=1.4.41,<2.0.0)
Requires-Dist: ares (>=0.7.1)
Requires-Dist: beautifulsoup4 (>=4.11.1)
Requires-Dist: colorama (>=0.4.5)
Requires-Dist: cwe (>=1.6)
Requires-Dist: django-csp (>=3.7)
Requires-Dist: django-markdownify (>=0.9.1)
Requires-Dist: django-otp (>=1.1.3)
Requires-Dist: django-password-validators (>=1.7.0)
Requires-Dist: django-two-factor-auth (>=1.14.0)
Requires-Dist: dnspython (>=2.1.0)
Requires-Dist: docker (>=6.0.0,<7.0.0)
Requires-Dist: mmh3 (>=3.0.0,<4.0.0)
Requires-Dist: phonenumbers (>=8.12.55,<9.0.0)
Requires-Dist: pydantic (>=1.8.2)
Requires-Dist: python-gettext (>=4.1,<5.0)
Requires-Dist: requests (>=2.26.0,<3.0.0)
Project-URL: Repository, https://github.com/Donnype/py-openkat
Description-Content-Type: text/markdown

# Openkat

An experimental sandbox environment to easily experiment with (some) functionality of [openkat](https://openkat.nl/).
This version of openkat runs all services in a single process and replaces services such as
[Bytes](https://github.com/minvws/nl-kat-bytes), Rabbitmq and Celery with an in-memory implementation.
As a consequence, the current version does not guarantee persistence beyond the lifetime of the process.
It speaks for itself that this library **should not be used in a production environment**.
To properly deploy an openkat instance,
please refer to the [official documentation](https://github.com/minvws/nl-kat-coordination) on Github.


## Features

These features of openkat are currently present in this package:
- The Rocky interface: UI around reporting on Findings
- The Octopoes models: for modelling the Objects Of Interest (OOIs)
- The Boefjes/Normalizers: the python scripts that find OOIs (excluding the containerized versions)
- The Scheduler: dispatching Boefjes and Normalizers automatically

The benefits and extra features of this package are:
- Lightweight: a single process for the app, reducing overhead of the official services and installation times
- A default superuser and development organization
- OTP disabled to optimize for restarting the service even after an update
- Docker not a dependency
- Adding plugins by creating plugins in a custom `plugins` folder

However, some features are excluded from this version on purpose:
- Audit trailing using Bytes
- Miscellaneous functionality in the interface, such as specifying a depth of an OOI tree and custom images in the KATalogus
- Deletion Propagation: you have to manually delete every single OOI
- ScanProfile inheritance: you have to manually add scan profiles to observed OOIs
- Valid times: you cannot browse the OOI history through time

Some missing features are still to be added:
- Bits

## Installation

```shell
$ pip install py-openkat
```

### Usage

To start the instance, run

```shell
$ python -m openkat
```

and navigate to http://localhost:8000.
Login with email `super@user.com` and password `superuser`.

### Dependencies

To use the Dockerized boefjes, you must have Docker installed on your machine.


## Contributing

Dependencies:
- `poetry`
- `yarn`


To setup a development environment, run
```shell
$ make init
```

To build, run
```shell
$ make build
```

