Skip to content

This is a design document developed for an AWS based Malware detection application

License

Notifications You must be signed in to change notification settings

arohanajit/Malware-Detection-Application

Repository files navigation

Malware Detection Application

A modern web application for scanning files for malware using ClamAV, built with Python Flask and React.

Features

  • Real-time file scanning using ClamAV antivirus engine
  • Modern, responsive web interface built with React and Material-UI
  • Drag-and-drop file upload functionality
  • Scan history tracking and viewing
  • Health monitoring endpoint
  • Docker containerization for easy deployment

Prerequisites

  • Docker and Docker Compose
  • Git

Quick Start

  1. Clone the repository:
git clone https://github.com/yourusername/Malware-Detection-Application.git
cd Malware-Detection-Application
  1. Build and start the services:
docker compose up --build -d
  1. Access the application:

Architecture

The application consists of two main services:

Scanner Service (Backend)

  • Flask application with RESTful API
  • ClamAV integration for virus scanning
  • SQLite database for scan history
  • Runs on port 8080

Web Service (Frontend)

  • React application with Material-UI
  • Drag-and-drop file upload
  • Real-time scan status updates
  • Runs on port 3000

API Endpoints

Health Check

GET /health/

Returns the health status of the scanner service and ClamAV daemon.

File Scan

POST /scan/

Upload and scan a file for malware. Accepts multipart/form-data with a 'file' field.

Scan History

GET /history/

Retrieve the history of all scanned files.

File Specifications

  • Maximum file size: 50MB
  • Supported file types: txt, pdf, doc, docx, xls, xlsx, zip, rar, exe, dll

Development

To run the services in development mode:

  1. Start the scanner service:
docker compose up scanner -d
  1. Start the web service in development mode:
cd src/web/frontend
npm install
npm start

Troubleshooting

  1. If the scanner service is not responding:

    • Check the logs: docker compose logs scanner
    • Ensure ClamAV is running: docker compose exec scanner clamdscan --version
  2. If the web interface can't connect to the scanner:

    • Verify the scanner service is healthy: curl http://localhost:8080/health/
    • Check CORS settings if running in development mode

License

[Add your license information here]

Contributing

[Add contribution guidelines here]

About

This is a design document developed for an AWS based Malware detection application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published