Open-ASM is an open-source platform for cybersecurity Attack Surface Management (ASM). Built to help security teams identify, monitor, and manage external assets and exposure.
The Open-ASM project is divided into three main components:
Central API built on NestJS, providing RESTful endpoints and data management:
- User authentication and authorization
- Job management and task distribution to workers
- Data storage and querying from PostgreSQL database
- Automatic API documentation with Swagger
Web user interface built with React, TypeScript, and Vite:
- Modern interface with Material UI
- Routing with React Router
- Rapid development with Vite HMR
Workers run scanning and information gathering tasks:
- Built on Bun runtime for high performance
- Support for different worker types (subdomains, httpx, ports)
- Process jobs from queue and report results back to Core API
- Node.js (latest version)
- Bun runtime
- PostgreSQL
- Docker and Docker Compose (optional)
# Install dependencies for all components
npm run install
# Run all components in development mode
task dev
# Or run each component separately
task api:dev
task console:dev
task worker:dev
# Build all components
task build
# Create .env files from examples
cp core-api/example.env core-api/.env
cp worker/example.env worker/.env
# Edit .env files according to your configuration
# Start containers
task docker-compose
├── core-api/ # Central API (NestJS)
├── console/ # User interface (React)
├── worker/ # Job processing workers (Bun)
├── open-api/ # Auto-generated OpenAPI documentation
├── docker-compose.yml # Docker Compose configuration
└── taskfile.yml # Task Runner configuration file
The project supports three main types of workers:
- Subdomains Worker: Scans and detects subdomains
- HTTPX Worker: Checks and analyzes HTTP/HTTPS services
- Ports Worker: Scans and detects open ports
Each worker can be scaled independently in a Docker environment.
We welcome all contributions! Please refer to the contribution guidelines for more details.
This project is licensed under the MIT License - see the LICENSE file for details.