Pipeline Plugin for Akamai Data
Project description
Overview
This repo contains the scripts necessary to parse Akamai property and redirect configs and ingest them into Neo4j. It is a starting point to help visualize your external attack surface within Akamai.
Setup Neo4j
- Download and install Neo4j: https://neo4j.com/docs/desktop-manual/current/installation/download-installation/
- Create and start database (version 5.7.0: https://neo4j.com/docs/desktop-manual/current/operations/create-dbms/
- Install APOC: https://neo4j.com/docs/apoc/5/installation/
Download Akamai credentials
- Create and download akamai credentials: https://techdocs.akamai.com/developer/docs/set-up-authentication-credentials
NOTE: These values will be used in your .env
Install and run the app
- Install python3: https://www.python.org/downloads/
- Install poetry: https://python-poetry.org/docs/#installation
- Install nodestream: https://nodestream-proj.github.io/nodestream/0.5/docs/tutorial/
- Generate a new nodestream project
- Add
nodestream-akamaito your project dependencies in your nodestream projects pyproject.toml file. - Install necessary dependencies:
poetry install - In
nodestream.yamladd the following:
plugin_config:
akamai:
base_url: !env AKAMAI_BASE_URL
client_token: !env AKAMAI_CLIENT_TOKEN
client_secret: !env AKAMAI_CLIENT_SECRET
access_token: !env AKAMAI_ACCESS_TOKEN
# If you are using an akamai account key add the following line:
account_key: !env AKAMAI_ACCOUNT_KEY
targets:
my-db:
database: neo4j
uri: bolt://localhost:7687
username: neo4j
password: neo4j123
- Set environment variables in your terminal session for:
AKAMAI_BASE_URL,AKAMAI_CLIENT_TOKEN,AKAMAI_CLIENT_SECRET,AKAMAI_ACCESS_TOKENand if using an akamai account keyAKAMAI_ACCOUNT_KEY. - Verify nodestream has loaded the pipelines:
poetry run nodestream show - Use nodestream to run the pipelines:
poetry run nodestream run <pipeline-name> --target my-db
Using make
- Install make (ie.
brew install make) - Run
make run
Install Bloom visualization
- For detailed instructions on how to import a perspective: https://neo4j.com/docs/bloom-user-guide/current/bloom-perspectives/perspective-creation/
- Download the perspective to a file https://github.com/ccloes/neo4j-akamai/blob/main/Bloom_Perspective.json
Using the saved cypher queries
- Type
show endpoint <some.fqdn.com>(this will show that endpoint and the relationships to it)
- Type
show akamai graph(this will show the current akamai data loaded in the graph)
- Type
show schema(this will show the graph schema and how the nodes relate and their relationships)
Schema visualization
Authors
- Zach Probst
- Chad Cloes
- Bryan Norman
- Gabe Gallagher
- Stuart Macleod
- Grant Hoffman
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nodestream_plugin_akamai-0.14.6.tar.gz.
File metadata
- Download URL: nodestream_plugin_akamai-0.14.6.tar.gz
- Upload date:
- Size: 34.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
db1732f72f31583b6765a0eb354165cea6dceb8b8c72f0a9cf4136a2807d12b6
|
|
| MD5 |
c0196b3de42335088ae3f292060964ff
|
|
| BLAKE2b-256 |
7154fae47cd150c5d967f2df655b73e43383b84736617cc32e606f8f1f7a7f5b
|
Provenance
The following attestation bundles were made for nodestream_plugin_akamai-0.14.6.tar.gz:
Publisher:
release.yaml on nodestream-proj/nodestream-plugin-akamai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nodestream_plugin_akamai-0.14.6.tar.gz -
Subject digest:
db1732f72f31583b6765a0eb354165cea6dceb8b8c72f0a9cf4136a2807d12b6 - Sigstore transparency entry: 945613093
- Sigstore integration time:
-
Permalink:
nodestream-proj/nodestream-plugin-akamai@e5f845af51f5361e2d0119742e6ca0ca93ba6ba5 -
Branch / Tag:
refs/tags/0.14.6 - Owner: https://github.com/nodestream-proj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@e5f845af51f5361e2d0119742e6ca0ca93ba6ba5 -
Trigger Event:
release
-
Statement type:
File details
Details for the file nodestream_plugin_akamai-0.14.6-py3-none-any.whl.
File metadata
- Download URL: nodestream_plugin_akamai-0.14.6-py3-none-any.whl
- Upload date:
- Size: 59.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7c6aef356e7c0d0eee1aa0c4d9387dbe82a9afba3a9ea8a141d1b62fba3ef8a7
|
|
| MD5 |
536b2d2a21c3eaa2f419ba50a9780727
|
|
| BLAKE2b-256 |
852cb17348928e280fcfa0d4ffa3ab87222696d30faee5e06be62351c3341295
|
Provenance
The following attestation bundles were made for nodestream_plugin_akamai-0.14.6-py3-none-any.whl:
Publisher:
release.yaml on nodestream-proj/nodestream-plugin-akamai
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nodestream_plugin_akamai-0.14.6-py3-none-any.whl -
Subject digest:
7c6aef356e7c0d0eee1aa0c4d9387dbe82a9afba3a9ea8a141d1b62fba3ef8a7 - Sigstore transparency entry: 945613098
- Sigstore integration time:
-
Permalink:
nodestream-proj/nodestream-plugin-akamai@e5f845af51f5361e2d0119742e6ca0ca93ba6ba5 -
Branch / Tag:
refs/tags/0.14.6 - Owner: https://github.com/nodestream-proj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@e5f845af51f5361e2d0119742e6ca0ca93ba6ba5 -
Trigger Event:
release
-
Statement type: