Who is BLST and what do we do?
BLST (Business Logic Security Testing) is a startup company that's developing an automatic penetration tester, replacing the manual penetration tester by using an advanced neural network and helping developers build more secure applications by catching bugs before they hit production.
What is BLST's Firecracker?
BLST's Firecracker is meant to be a free version of our main SaaS product. It's an easy to use CLI that scans your APIs for invalid business logic flows.
What exactly is "Business Logic"?
Business logic is the part of an application that contains all of the rules and procedures related to how data is created, stored, and changed. It is used when describing computer applications like databases and websites. If you don't write the business logic correctly, your database or website may not work properly -- thus making it vulnerable. One of the most common root causes of business logic vulnerabilities is making flawed assumptions and blindingly trusting user behavior or input.
How does this CLI differs from our SaaS product?
Main differences are the cut-down Decider algorithm, lack of CI/CD integration and no management dashboard. We made it so you can easily download, install and run it on your local machine to get a better understanding of what our main product is capable of. Learn more about us and what we can do for your business
Features
- Mapper - takes in traffic logs and maps the business logic flow of the application, outputs a digest file.
- Decider - takes in traffic logs and decides whether a certain business logic flow is an anomaly or not.
- Attacker - takes in the digest file from the mapper and "attacks" the API while using the Decider to determine whether something is an anomaly or not.
- Visualizer - takes in the digest file from the mapper and visualizes the business logic flow of the application. Use the JSON you get from the CLI and put it here to visualize your network now!
Installation
Clone the repository
Firecracker can be installed by cloning our git repository and building it with cargo. Note that you must have Rust installed on your machine (see Direct download to avoid this step).
git clone https://github.com/blst-security/firecracker
cd firecracker
cargo build --release
Direct download
You can also download the binary file directly from our website. This is a binary file and you DO NOT have to install Rust.
Usage
After installing the CLI, verify it's working by running
firecracker --version
Now, start by mapping your logs by running
firecracker map --file
--output
Passive checking for anomalies (1 step)
To run the decider only to passively check for anomalies in your logs, run
firecracker decide --file
--map
Active attacking and checking for anomalies (2 steps)
After mapping, prepare the attacker by running the command below. This will print the populations (API groups) so you can choose which one you want to run the attacker on.
firecracker prepare --url
--map
Now you can use the attacker to actively attack the API by running
firecracker attack --map
(the same one you used in the prepare step) --output
--population
(the one you got from the prepare step) --generations
--verbosity
In the future, if you want to load new logs to an existing map file, run
firecracker load --file
--map
Upcoming features
This product is currently under active development, and we are working on stabilizing more features. Here's a small taste of what's coming in the future:
- More installation options - APT, Homebrew, crates.io, npm, Yarn etc.
- Decider - A more advanced algorithm that can detect more anomalies.
- Mapper - Path parameters analysis and support for more complex business logic flows.
- Attacker - Better support for more complex business logic flows.
What's new in the latest version?
- More formats - added another way to load sessions, explained in the docs.
- More HTTP methods support - now supports PUT, DELETE, PATCH and OPTIONS.
- Mapper: enabled path parameter extractions.
- Attacker: some refactoring, fixed a bug that caused random genomes not being random in the first generation.
- CLI: seperated the map.json from the map checkpoint to allow for less loading time in the visualizer.
Support
Documentation
Please read our documentation to understand the format of sessions our mapper needs to function correctly.
Get help
If you have any questions, please send us a message to [email protected]. You are also welcome to open an Issue here on GitHub.
Contributing
While this is an open source project, it is meant to be as an easy to get-started with example of our SaaS project, and outside contribution is not necessary. You can talk to us in our developers' discord channel.