"ShadowGuard" is a robust and flexible security engine for web applications and APIs, providing a wide array of features to safeguard your services. Developed in Go, "ShadowGuard" acts as a protective layer, analyzing and filtering incoming HTTP/HTTPS requests to ensure that only legitimate traffic gets through.
"ShadowGuard" can operate in two modes: Active and Passive. In , it actively filters incoming requests and blocks malicious traffic. In , it only logs requests and responses, and alerts when it detects a threat. Active mode is recommended for APIs which are critical to the functioning of the application.
"ShadowGuard" employs a modular architecture, built around the Factory Design Pattern, allowing for robust scalability and reliability. Designed as a middleware, it integrates seamlessly with any application, independent of the backend technology stack. It employs a plugin-based system where each plugin handles a specific type of security task. This plugin-based approach provides an extensible framework where new plugins can be added to enhance the security features without disrupting the existing system.
The behavior of each plugin is driven by configuration, making "ShadowGuard" highly adaptable to the needs of different applications. This configurability enables fine-tuning of the security parameters to match the specific requirements and threat profiles of each application.
The architecture also facilitates both active and passive modes of operation, allowing the system to either block malicious traffic actively or to monitor and alert on potential threats passively. This flexibility of operation modes allows "ShadowGuard" to be tailored to the specific security posture of your application or API.
TODO: Instructions on how to setup "ShadowGuard", its dependencies, and how to get it running.
Run build.sh
to setup install the necessary dependencies including Postgresql and configures the gorm database.
This script does a couple of things in this sequence.
sudo bash build.sh
The program can be ran in a multitde of ways.
go run cmd/main.go
chmod +x run.sh
./run.sh
docker build . -t shadow_guard
docker run --network=host shadow_guard
In order to run unit tests, you can use the shell script run_tests.sh
in the root directory. The unit tests can be ran using convential Go commands.
TODO: Link to full API documentation, or brief outline of main methods and how to use them.
TODO: Information on the licensing of "ShadowGuard".