Skip to main content

A tool to make working with security analysis tools a breeze

Project description

🔥 Napalm

Napalm is a project management utility for custom solidity vulnerability detectors.

If you're an auditor you've probably played around with various static analysis tools, maybe even written a couple of custom modules. If so, you'll have noticed that you're reaching for different tools all the time, and that organising your 100+ custom modules is starting to become a hassle.

Napalm to the rescue!

With Napalm you can manage, and easily run your custom detection modules for multiple tools, all from one place.

  • reporting - Napalm takes care of building a comprehensive report for you, so you can focus on writing your modules.
  • installation - Zero hassle installation of your modules, and their dependencies, in a clean virtual environment.
  • batch processing - Run your modules against multiple contracts, or multiple versions of the same contract, in one go.

Installation

Napalm is available on PyPi, so you can install it with pip:

pip install napalm-toolbox[slither]

💣 Running scans with Napalm

Using napalm is simple, you've got two main concepts to keep in mind:

  1. Collection - A collection is a group of detection rules / modules.
  2. Workflow - A workflow is a set of collections that you commonly want to use together when analyzing a contract.

You've got three default workflows:

  • detect - This is likely your main workflow, and is commonly used to run all high-confidence detectors.
  • direct - Direct is a workflow commonly used by bounty hunters, it's detectors provide suggestions on where to look for bugs. Usually focused on high-impact.
  • inform - This workflow has all your common optimisations, suggestions, informational modules.

Running a workflow

To run a workflow, simply run the following command:

napalm run <workflow> <contract>
# or
napalm run <workflow> <directory>

💼 Installing Napalm packages

When you first install Napalm, things might seem a little boring. That's because you haven't installed any packages yet!

Napalm packages are simply python packages that contain Napalm collections. Here is the napalm base package that comes pre-loaded with tons of useful detection modules!

pip install napalm-base

Next time you run napalm it will automatically prompt you to add the collections in this package to your default workflows!

💡 Note: Try re-running napalm run detect now that you've got some collections installed!


🧑‍💻 Using Napalm as a module dev

To start a new Napalm project, run the following command in an empty directory:

napalm-dev init

This will automatically set up a napalm project for you that takes care of everything! The only thing you need to do is write detection modules and rules.

You'll see that the default project structure comes with two collections pre-loaded, detectors and indicators. Add your detection modules to either of these collections, and they'll be automatically loaded when you run napalm! Of course, if you'd like to add more collections, you can do so by just creating a new directory!

Note: the project acts like a python project so don't forget to add init.py files!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

napalm_toolbox-0.1.2.tar.gz (29.6 kB view details)

Uploaded Source

Built Distribution

napalm_toolbox-0.1.2-py3-none-any.whl (44.7 kB view details)

Uploaded Python 3

File details

Details for the file napalm_toolbox-0.1.2.tar.gz.

File metadata

  • Download URL: napalm_toolbox-0.1.2.tar.gz
  • Upload date:
  • Size: 29.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.10.13 Darwin/23.2.0

File hashes

Hashes for napalm_toolbox-0.1.2.tar.gz
Algorithm Hash digest
SHA256 319fc0cddf0bfb59357fac7efe7aaa724c65bdc4bfe8bc1162565416c7a94a6f
MD5 fdfc01674370ea5d92e37a9a60fe8b00
BLAKE2b-256 a36991966dc4f67db0773c879ea43070390a2aaa3b71c2202563f6e6c30ae4ea

See more details on using hashes here.

File details

Details for the file napalm_toolbox-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: napalm_toolbox-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 44.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.10.13 Darwin/23.2.0

File hashes

Hashes for napalm_toolbox-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 761fc74cfcc7e8e0859f1a2579ba9a5c32c85debf360109180d3a89f55659a05
MD5 82577fb0aa0b011c659bf4fca3d9832e
BLAKE2b-256 7d2cc29151bab0a2fe168c08cea4a6d9ff39669cbb2eaa0610623c03ab0a0f97

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page