Dyana#
Dyana is a sandbox environment using Docker and Tracee for loading, running and profiling a wide range of files, including machine learning models, ELF executables, Pickle serialized files, Javascripts and more. It provides detailed insights into GPU memory usage, filesystem interactions, network requests, and security related events.
Requirements#
- Python 3.10+ with PIP.
- Docker
- Optional: a GNU/Linux machine with CUDA and the nvidia-ctk runtime for GPU memory profiling support.
Installation#
Install with:
To upgrade to the latest version, run:
To uninstall, run:
Usage#
Show a list of available loaders with:
Show the help menu for a specific loader with:
Create a trace file for a given loader with:
To save artifacts from the container, you can pass the --save
flag:
It is possible to override the default events that Dyana will trace by passing a custom policy to the tracer with:
Show a summary of the trace file with:
Default Safeguards#
Dyana does not allow network access by default to the loader container. If you need to allow it, you can pass the --allow-network
flag:
Dyana uses a shared volume to pass your files to the loader and by default it does not allow writing to it. If you need to allow it, you can pass the --allow-volume-write
flag:
Loaders#
Dyana provides a set of loaders for different types of files, each loader has a dedicated set of arguments and will be executed in an isolated, offline by default container. Refer to the documentation for more information.
License#
Dyana is released under the MIT license. Tracee is released under the Apache 2.0 license.