FuSec is a comprehensive security vulnerability management and analysis platform developed for the Siemens Challenge at HackaTUM 2025. This tool provides security teams with powerful insights into vulnerability landscapes, risk assessment, and AI-powered mitigation strategies.
- ๐ Security Dashboard: Real-time visualization of vulnerability metrics, host criticality, and risk levels
- ๐ CVE Analysis: Integration with NIST vulnerability database for detailed CVE information
- ๐ฏ Risk Assessment: Automated scoring system for hosts and applications based on vulnerability severity
- ๐ค AI-Powered Mitigations: Intelligent mitigation suggestions using Groq API, including Ansible playbooks
- ๐ Geographic Analysis: Visualization of vulnerability distribution across different regions
- ๐ฌ Advanced Investigation: Multi-parameter search and filtering capabilities for vulnerability research
- ๐ Interactive Visualizations: Dynamic charts and graphs powered by Plotly for data exploration
- Backend: Python 3.11, Neo4j Graph Database
- Frontend: Streamlit Web Framework
- Visualization: Plotly, Pandas
- AI Integration: Groq API for intelligent mitigations
- Data Sources: NIST CVE Database
- Deployment: Docker, Python Package Manager
- Python 3.11 or higher
- Neo4j Database (local or remote)
- Groq API key (for AI-powered mitigations)
- Docker (optional, for containerized deployment)
-
Clone the repository
git clone https://github.com/lukas-holzner/FuSec.git cd FuSec -
Install dependencies
pip install -r requirements.txt
-
Configure the application Create a
src/config.inifile with your database and API settings:[NEO4J] URI = bolt://localhost:7687 USER = neo4j PASSWORD = your_password [GROQ] API_KEY = your_groq_api_key
-
Run the application
streamlit run src/1_General.py
-
Access the dashboard Open your browser and navigate to
http://localhost:8501
-
Build the Docker image
docker build -t fusec . -
Run the container
docker run -p 8501:8501 \ -e NEO4J_URI=bolt://your-neo4j-host:7687 \ -e NEO4J_USER=neo4j \ -e NEO4J_PASSWORD=your_password \ -e GROQ_API_KEY=your_groq_api_key \ fusec
- View overall security metrics including total hosts, critical systems, and vulnerability counts
- Analyze vulnerability distribution by severity levels
- Monitor geographic spread of security issues
- CVE Search: Look up specific Common Vulnerabilities and Exposures
- Advanced Filtering: Search by software publishers, products, and version ranges
- Risk Analysis: Identify high-risk systems and applications
- Host Criticality: Evaluate system importance and exposure levels
- Input CVE details to receive AI-generated mitigation strategies
- Get both automated Ansible playbooks and manual step-by-step guides
- Access NIST database integration for comprehensive vulnerability information
FuSec/
โโโ src/
โ โโโ 1_General.py # Main dashboard application
โ โโโ pages/
โ โ โโโ 2_Investigation.py # Investigation and search tools
โ โ โโโ 3_Mitigations.py # AI-powered mitigation suggestions
โ โโโ database/
โ โ โโโ connection.py # Neo4j database connection and queries
โ โ โโโ nist.py # NIST CVE database integration
โ โโโ visualization/
โ โ โโโ dashboard.py # Dashboard components and charts
โ โโโ config.ini # Configuration file (create manually)
โโโ requirements.txt # Python dependencies
โโโ Dockerfile # Container configuration
โโโ README.md # This file
For Docker deployment or when config.ini is not available:
NEO4J_URI: Neo4j database connection URINEO4J_USER: Neo4j database usernameNEO4J_PASSWORD: Neo4j database passwordGROQ_API_KEY: Groq API key for AI-powered features
FuSec requires a Neo4j graph database with the following node types:
System: Represents hosts and infrastructureApplication: Software applications running on systemsVulnerability: CVE entries and security issuesFinding: Security findings and assessmentsWeakness: Security weaknesses and vulnerabilities
We welcome contributions to FuSec! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow PEP 8 style guidelines
- Add appropriate documentation for new features
- Include tests for new functionality
- Update README.md if needed
This project is licensed under the MIT License - see the LICENSE file for details.
FuSec was developed as part of the Siemens Challenge at HackaTUM 2025, one of Europe's largest hackathons focused on technology and innovation.
- Development team focused on cybersecurity and vulnerability management
- Special thanks to the Siemens Challenge organizers and mentors
- HackaTUM 2025 organizing committee
- Streamlit - Web application framework
- Neo4j - Graph database platform
- Plotly - Interactive visualization library
- Groq - AI inference platform
- NIST - National Vulnerability Database
If you encounter any issues or have questions:
- Check the Issues page
- Create a new issue with detailed description
- Include system information and error messages
- Integration with additional vulnerability databases
- Advanced machine learning models for risk prediction
- Real-time vulnerability scanning capabilities
- Enhanced reporting and export features
- Multi-tenant support for enterprise deployment
Built with โค๏ธ for cybersecurity professionals at HackaTUM 2025