Skip to content

VirWex is a web virus scanning application built on Symfony that provides multiple scanning engines and a simple web interface for detecting malicious files.

License

Notifications You must be signed in to change notification settings

PeterRamotowski/VirWex

Repository files navigation

VirWex - Virus Web Scanner

VirWex is a web virus scanning application built on Symfony that provides multiple scanning engines and a simple web interface for detecting malicious files.

Features

  • Web-based interface: Clean and intuitive UI for scanning files and viewing results

  • Multiple Scanning Engines:

    • phpMussel: Signature-based scanning with ClamAV signatures integration
    • AMWScan (PHP-Antimalware-Scanner): Malware detection using heuristic analysis
    • scr34m PHP Malware Scanner: Specialized PHP malware detection
    • ClamAV: Industry-standard antivirus engine with real-time updates
    • PHP Malware Finder: YARA-based malware detection
  • Asynchronous processing: Queue-based scanning using Symfony Messenger and Redis for handling multiple concurrent scans

  • Real-time monitoring: Live status updates and progress tracking during scans

  • Multilingual support: Available in English, Spanish, French, and Polish

  • Docker containerization: Complete containerized environment with separate services for performance

Screenshots

Initial view Scanning in progress Report with threats details

System Requirements

  • PHP: >= 8.2
  • Docker and Docker Compose

Installation

Quick Start

  1. Clone and navigate to the project:

    cd /path/to/virwex
  2. Set up the environment:

    make setup

    This will make scripts executable and run the initial setup.

  3. Build Docker images:

    make build
  4. Start the application:

    make up
  5. Update malware signatures:

    make update-db

The application will be available at http://localhost:1310 (or your configured host).

Usage

Web Interface

Simply navigate to the application URL and:

  1. Upload a file or select files to scan
  2. Choose specific scanners or use all available ones
  3. Click the "Init scan" button
  4. View detailed threat detection results

Command Line

Start Services

make up          # Start all services
make down        # Stop all services
make restart     # Restart services

Docker Compose Services

The application runs the following services:

  • app: Main Symfony application container (PHP 8.3 with FPM)
  • nginx: Nginx web server (port 1310)
  • clamav: ClamAV daemon for signature-based scanning with health checks
  • redis: Message queue and caching service
  • worker: Background worker processes for asynchronous scanning

Architecture

Asynchronous scanning flow

  1. File upload - temporary storage
  2. Scan request queued via Symfony Messenger
  3. Background workers process scans in parallel
  4. Real-time status updates via AJAX polling
  5. Results aggregated and displayed

Troubleshooting

Scanners not available

Check scanner availability and status:

make check-scanners

View logs for errors:

make logs

Performance tuning

  • Adjust worker replica count in docker-compose.yml

Supported languages

  • English (en)
  • Spanish (es)
  • French (fr)
  • Polish (pl)

License

GNU 2.0 License. See LICENSE file for details.

Support

For issues, questions, or contributions, please submit an issue through the project's issue tracker.

About

VirWex is a web virus scanning application built on Symfony that provides multiple scanning engines and a simple web interface for detecting malicious files.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published