A comprehensive web application for generating configuration files for MaxPatrol VM data collection standards and controls. The application provides an intuitive interface for creating security compliance checks and data collection configurations for both Unix and Windows environments.
π― Project Overview VMAuECC (VM Audit and Compliance Configuration) is a full-stack application that simplifies the creation of MaxPatrol VM control configurations. It enables security professionals to generate standardized files for various security checks, file integrity monitoring, registry audits, and compliance controls across different operating systems.
π Available Control Types
- File/Directory Existence Check - Verify presence of critical files and directories
- File/Directory Permission Check - Audit file and directory permissions
- File Content Check - Validate specific content within files
- File Integrity Check - Monitor file integrity using checksums
- Directory Integrity Check - Ensure directory structure integrity
- Command Result Check - Validate command execution outputs
- Script Result Check - Monitor custom script execution results
- Directory Search Check - Find files matching specific criteria
- Registry Key Existence - Verify registry key presence
- Registry Permission Check - Audit registry access permissions
- Registry Value Content Check - Validate registry value contents
- Registry Value Existence - Check for specific registry values
- Windows File Info - Collect detailed file information
- Windows File Integrity Check - Monitor Windows file integrity
- Windows Directory Integrity Check - Ensure Windows directory integrity
- Windows Command Result Check - Validate Windows command outputs
- Group Membership Check - Verify user group memberships
- Share Access Check - Audit network share access
- WMI Query Check - Execute and validate WMI queries
- Script Result Check - Monitor Windows script execution
ποΈ Project Structure
VMAuECC/
βββ frontend/ # Angular frontend application
β βββ yaml-generator-frontend/
β βββ src/app/
β β βββ components/ # UI components
β β β βββ control-type-selection/ # Control type chooser
β β β βββ os-selection/ # OS selection interface
β β β βββ yaml-form/ # Configuration form
β β β βββ header/ # Navigation header
β β βββ models/ # TypeScript interfaces
β β βββ services/ # API communication
β β βββ assets/i18n/ # Internationalization
β βββ nginx/ # Web server configuration
βββ backend/ # .NET Core backend application
β βββ YamlGenerator.API/ # REST API controllers
β βββ YamlGenerator.Core/ # Business logic and services
β β βββ Data/ # Control type definitions
β β β βββ ControlTypes/ # YAML templates
β β β β βββ unix/ # Unix control templates
β β β β βββ windows/ # Windows control templates
β β β βββ Templates/ # Base templates
β β βββ Models/ # Data models
β β βββ Services/ # Business services
β βββ YamlGenerator.Tests/ # Unit tests
βββ docker-compose.yml # Container orchestration
π Quick Start
- Docker
- Docker Compose
# Clone the repository
git clone https://github.com/your-username/VMAuECC.git
cd VMAuECC
# Start the application
docker-compose up --buildOpen your browser and navigate to: http://localhost:8080
- Select Operating System - Choose between Unix or Windows controls
- Choose Control Type - Select from available security checks
- Configure Parameters - Fill in required and optional parameters
- Generate YAML - Create the configuration file
- Download - Save the generated YAML for use in MaxPatrol VM
π οΈ Technology Stack
- Angular 17 - Modern web application framework
- TypeScript - Type-safe JavaScript development
- SCSS - Advanced CSS styling
- Angular Material - Material Design components
- i18n - Internationalization support (English/Russian)
- .NET 8 - High-performance web framework
- ASP.NET Core - RESTful API development
- YamlDotNet - YAML serialization/deserialization
- Dependency Injection - Modular architecture
- Docker - Containerized deployment
- Docker Compose - Multi-container orchestration
- Nginx - Reverse proxy and static file serving
π§ API Endpoints
GET /api/controltypes/{os}- Get available control types for OSGET /api/controltypes/{os}/{controlTypeId}- Get specific control type details
POST /api/yaml/generate- Generate YAML configuration- Request: JSON configuration object
- Response: Generated YAML content
GET /api/localization/{language}- Get localized strings
π Features
- Comprehensive Coverage - Support for 20+ security check types
- OS-Specific Templates - Optimized configurations for Unix and Windows
- Parameter Validation - Built-in validation for all control parameters
- Default Values - Pre-configured sensible defaults
- Intuitive Interface - Step-by-step configuration wizard
- Real-time Preview - Live YAML preview during configuration
- Multi-language Support - English and Russian interfaces
- Responsive Design - Works on desktop and mobile devices
- Template System - Reusable configuration templates
- Parameter Inheritance - Smart parameter handling
- Validation Rules - Automatic parameter validation
- Export Options - Direct download of generated files
π§ͺ Testing
# Run backend tests
cd backend
dotnet test
# Run frontend tests
cd frontend/yaml-generator-frontend
npm test# Test the full application stack
docker-compose up --build
# Navigate to http://localhost:8080 and test functionalityπ§ Configuration
# Frontend configuration
ANGULAR_ENVIRONMENT=development
API_BASE_URL=http://localhost:5000
# Backend configuration
ASPNETCORE_ENVIRONMENT=Development
ASPNETCORE_URLS=http://+:5000# docker-compose.yml
version: '3.8'
services:
frontend:
build: ./frontend
ports:
- "8080:80"
depends_on:
- backend
backend:
build: ./backend
ports:
- "5000:5000"π Performance
- Lazy Loading - Components load on demand
- Caching - Static assets and API responses cached
- Compression - Gzip compression for faster loading
- CDN Ready - Optimized for content delivery networks
- Health Checks - Application health monitoring
- Error Tracking - Comprehensive error logging
- Performance Metrics - Response time monitoring
π€ Contributing
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Angular style guide for frontend
- Use .NET coding conventions for backend
- Write unit tests for new features
- Update documentation as needed
- Use TypeScript strict mode
- Create YAML template in appropriate OS directory
- Add localization strings
- Update control type definitions
- Add unit tests
- Update documentation
π License This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
- MaxPatrol VM - For the security platform integration
- Angular Team - For the excellent frontend framework
- Microsoft .NET Team - For the robust backend framework
- Open Source Community - For the amazing tools and libraries
π Support If you have questions or need help:
- Create an Issue on GitHub
- Check the Wiki for detailed documentation
- Contact the development team
- Review the API documentation
β If this project helps you manage MaxPatrol VM configurations, please give it a star!
About VMAuECC A comprehensive web application for generating YAML configuration files for MaxPatrol VM data collection standards and controls. The application provides an intuitive interface for creating security compliance checks and data collection configurations for both Unix and Windows environments.