A distributed malware analysis system with secure file analysis through REST API
Getting Started • Features • Architecture • API Reference • Security
- 🚀 Getting Started
- ✨ Features
- 🔒 Security
- 🛠️ Development
- 🤝 Contributing
- 📄 License
- 👥 Team
- 🚀 Deployment
- 🙏 Acknowledgments
- Python 3.8+
- SurrealDB
- AWS S3 compatible storage
- Requires environment variables (see below)
-
Clone the repository:
git clone https://github.com/cordguard/cordguard.git cd cordguard -
Set up your environment variables:
cp .env.example .env
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python app.py
d
- Static and dynamic malware analysis
- Supports multiple file formats
- Extracts file metadata dynamically
- Distributed processing across VM workers
- FastAPI-powered REST API
- S3 integration for secure storage
- SurrealDB for data persistence
- Asynchronous task processing
- Ed25519 cryptographic signatures
- Secure file handling
- Memory-safe operations
- Path traversal prevention
- Ed25519 signatures for worker authentication
- Secure key management
- PEM format key storage
- Secure file uploads
- Validation and deduplication before analysis
AWS_ACCESS_KEY_ID=your_access_key
AWS_SECRET_ACCESS_KEY=your_secret_key
AWS_ENDPOINT_URL_S3=your_s3_endpoint
AWS_REGION=your_region
BUCKET_NAME_S3=your_bucket_name
OPENAI_API_KEY=your_openai_api_key
SURREALDB_USERNAME=your_surrealdb_username
SURREALDB_PASSWORD=your_surrealdb_password
SURREALDB_URL=your_surrealdb_url
REGISTRY_HOST=
API_HOST=
WORKER_HOST=
AI_API_HOST=
USERS_HOST=
API_KEY=
WORKER_API_KEY=
REGISTRY_API_KEY=
AI_API_KEY=
PORT=We eagerly await your contributions! Please read our Contributing Guide for more details.
- Fork the repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Security Team ([email protected])
Deploy with Fly.io:
fly deploy- SurrealDB
- FastAPI
- AWS S3
- Tigirs Storage
- Fly.io
Made with ❤️ by the CordGuard Team