Difference between the tiers
All tiers have the same scope. There is a difference in bounties based on the following:
- Tier 1: actual vulnerabilities in the firewall
- Tier 2: bypasses of our detection (this doesn't directly expose a security risk, but improves our security product)
- Tier 3: false positives of our detection (this doesn't directly expose a security risk as well, but improves our security product)
How do I install firewall-node?
See https://github.com/AikidoSec/firewall-node/tree/main?tab=readme-ov-file#installation, and follow the instructions for Express.js based apps.
Ensure you set the environment variable AIKIDO_BLOCKING to true when launching your app. This ensures that you get immediate feedback during testing if your attack is blocked.
We recommend you to install firewall-node with any of the Express.js sample apps or with a DVWA like NodeGoat.
How do I install firewall-python?
You can install firewall-python directly from PyPi. Ensure you set the environment variable AIKIDO_BLOCKING to true when launching your app. Setting AIKIDO_DEBUG to true may be useful as well.
You can use one of the sample apps as starting point: https://github.com/AikidoSec/firewall-python/tree/main/sample-apps. The Dockerfile contains instructions to build aikido_firewall, so you don't have to do it yourself.
How do I install firewall-php?
Clone https://github.com/AikidoSec/firewall-php.
Browse to the /sample-apps/sqlite-php-server folder.
In this folder, docker compose up -d.
Visit the sample app at http://localhost:1337. Code of the sample app: https://github.com/AikidoSec/firewall-php/blob/main/sample-apps/sqlite-php-server/index.php.
How do I install firewall-ruby?
Clone https://github.com/AikidoSec/firewall-ruby, and navigate to the sample-apps directory.
Run docker-compose up -d to set-up the Docker containers for the database.
Afterwards, navigate to any of the rails7.1-x folder under the sample-apps directory and follow the instructions of the README.md (e.g. https://github.com/AikidoSec/firewall-ruby/tree/main/sample_apps/rails7.1_template), to launch your application.
Do I need to create an Aikido account to test the firewall?
No, you don't. Zen can be used without an Aikido account. An account is only needed when you want to report issues to your Aikido dashboard, but any reporting functionality is not in scope for the time being.
Do you offer a live Damn Vulnerable Web Application (DVWA) to test for bypasses?
We are considering it for future iterations, but for now, we recommend you to install Firewall with a project like OWASP NodeGoat. This would also allow you to use the debugger, which could help with understanding and testing the detection logic.
Beyond NodeGoat, you could also use some of our sample apps: https://github.com/AikidoSec/firewall-node/tree/main/sample-apps (Node.js) or https://github.com/AikidoSec/firewall-python/tree/main/sample-apps (Python). As an alternative, you can also write some vulnerabilities yourself.