• Stars
    star
    137
  • Rank 266,121 (Top 6 %)
  • Language
    Go
  • License
    GNU General Publi...
  • Created about 3 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

nuvola

Run Gosec golangci-lint

nuvola (with the lowercase n) is a tool to dump and perform automatic and manual security analysis on AWS environments configurations and services using predefined, extensible and custom rules created using a simple Yaml syntax.

The general idea behind this project is to create an abstracted digital twin of a cloud platform. For a more concrete example: nuvola reflects the BloodHound traits used for Active Directory analysis but on cloud environments (at the moment only AWS).

The usage of a graph database also increases the possibility of finding different and innovative attack paths and can be used as an offline, centralised and lightweight digital twin.

Quick Start

Requirements

  • docker-compose installed
  • an AWS account configured to be used with awscli with full access to the cloud resources, better if in ReadOnly mode (the policy arn:aws:iam::aws:policy/ReadOnlyAccess is fine)

Setup

  1. Clone the repository
git clone --depth=1 https://github.com/primait/nuvola.git; cd nuvola
  1. Create and edit, if required, the .env file to set your DB username/password/URL
cp .env_example .env;

You may need to edit the size of the memory allocated to Neo4j in you run the tool in a low-RAM device.

  1. Start the Neo4j docker instance
make start
  1. Build the tool
make build

Usage

  1. Firstly you need to dump all the supported AWS services configurations and load the data into the Neo4j database:
./nuvola dump -profile default_RO -outputdir ~/DumpDumpFolder -format zip
  1. To import a previously executed dump operation into the Neo4j database:
./nuvola assess -import ~/DumpDumpFolder/nuvola-default_RO_20220901.zip
  1. To only perform static assessments on the data loaded into the Neo4j database using the predefined ruleset:
./nuvola assess
  1. Or use Neo4j Browser to manually explore the digital twin.

Screenshot_20220904_185619

About nuvola

To get started with nuvola and its database schema, check out the nuvola Wiki.

No data is sent or shared with Prima Assicurazioni.

How to contribute

  • reporting bugs and issues
  • reporting new improvements
  • reviewing issues and pull requests
  • fixing bugs and issues
  • creating new rules
  • improving the overall quality

Presentations

License

nuvola uses graph theory to reveal possible attack paths and security misconfigurations on cloud environments.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this repository and program. If not, see http://www.gnu.org/licenses/.

More Repositories

1

docker-filebeat

Filebeat docker image
Dockerfile
47
star
2

event_sourcing.rs

event sourcing framework in rust
Rust
45
star
3

localauth0

Mock auth0 service for local development
Rust
33
star
4

csv_schema

Elixir
26
star
5

veil

Rust derive macro for redacting sensitive data in std::fmt::Debug
Rust
18
star
6

auth0_ex

auth0 elixir library
Elixir
14
star
7

posexional

A library to manage positional files in Elixir
Elixir
14
star
8

amqpx

Elixir AMQP client
Elixir
13
star
9

pyxis

Elm
12
star
10

opentelemetry_absinthe

Elixir
11
star
11

telepoison

Elixir
10
star
12

redact_ex

Elixir
10
star
13

docker-enter-completion

docker-enter command shell completion
Shell
9
star
14

docker-proxysql

Docker container automated build for ProxySQL
7
star
15

bridge_ex

Prima bridge pattern implementation for elixir
Elixir
7
star
16

robotframework-mailosaur

Python
7
star
17

jwks_client

Prima JWKS-sync client implementation for Auth0
Rust
6
star
18

prima_opentelemetry_ex

prima opentelemetry instrumentation for elixir projects
Elixir
6
star
19

teleplug

Elixir
6
star
20

ex_fuzzywuzzy

Elixir
4
star
21

bridge.rs

Prima bridge pattern implementation for rust
Rust
3
star
22

pyxis-components

Elm
3
star
23

prima_tracing.rs

opinionated rust tracing
Rust
3
star
24

elm-iban

Elm library that validates IBANs
Elm
2
star
25

pyxis-npm

SCSS
2
star
26

go-bin

Go bin
Go
1
star
27

robotframework-database-library

Python
1
star
28

cloudflare_access_ex

Elixir library to handle Cloudflare Access security
Elixir
1
star
29

prima_datadog.rs

opinionated rust client for datadog
Rust
1
star
30

docker-tsung

Docker container automated build for Tsung
1
star
31

fridevs

PHP
1
star
32

ex_toolbox

Elixir
1
star
33

prima-elm-extra

Elm
1
star
34

synchub

Go
1
star
35

positional.rs

A library to write/parse positional files in Rust
Rust
1
star
36

elixir-avro

Elixir code generator from Avro schema
Elixir
1
star