
자동 네트워크 탐색, CVE 기반 탐지, CVSS 점수, 위험 대시보드, gRPC를 통한 원격 에이전트, 그리고 엔터프라이즈 보안 팀을 위한 현대적인 웹 UI를 갖춘 오픈소스 취약점 스캐너입니다.

Sirius는 자동 탐색, CVE 기반 탐지, 최신 웹 UI를 갖춘 오픈소스 취약점 스캐너입니다. 저장소를 복제하고, 에이전트 TLS 인증서를 구성한 뒤 스캔을 시작하세요.
스택을 시작하기 전에 Agent gRPC TLS configuration에 설명된 대로 에이전트 서버 인증서와 키를 준비하세요. 설치 프로그램은 이를 생성하지 않습니다.
git clone https://github.com/SiriusScan/Sirius.git
cd Sirius
docker compose -f docker-compose.installer.yaml run --rm sirius-installer
docker compose up -d
**http://localhost:3000**을 열고 로그인합니다:
| 이메일 | [email protected] |
| 비밀번호 | 설치 프로그램이 출력합니다 (출력에서 INITIAL_ADMIN_PASSWORD를 찾으세요) |
필요한 구성이 갖춰지면 여섯 개의 서비스가 모두 자동으로 시작됩니다. 설치 프로그램은 첫 실행 시 애플리케이션 시크릿을 생성하며, 다시 실행해도 안전합니다.
기본적으로 설치 프로그램은 IMAGE_TAG를 설정하지 않은 상태로 두므로, Compose는 GHCR에서 **latest**를 가져옵니다. 릴리스를 고정하려면(예: .env에 v1.0.0), 해당 태그가 여섯 개 컨테이너 이미지 모두에 존재하는 경우에만 수행하세요. ghcr.io에 로그인하지 않은 셸에서 bash scripts/verify-ghcr-public-access.sh v1.0.0으로 확인할 수 있습니다.
요구 사항: Compose V2가 포함된 Docker Engine 20.10+, 4 GB RAM, 10 GB 디스크. Linux, macOS, Windows(WSL2)에서 동작합니다.
X-API-Key 인증)설치 프로그램 단계는 항상 동일합니다. docker compose up 명령만 달라집니다.
| 모드 | 명령 | 사용 사례 |
|---|---|---|
| 표준 | docker compose up -d | 대부분의 사용자 -- GHCR에서 전체 릴리스 스택을 가져옴 |
| 개발 | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | 로컬 코드 작업을 위한 라이브 리로드 |
| 소스 빌드 | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build | 명시적 로컬 전체 스택 빌드 |
| 프로덕션 | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d | 강화된 설정, pull_policy: always |
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --non-interactive --no-print-secrets
docker compose up -d
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --force
docker compose up -d --force-recreate
docker compose ps # all 6 services should show "healthy" or "running"
curl http://localhost:3000 # UI responds
curl http://localhost:9001/health # API responds
예상 서비스: sirius-ui (3000), sirius-api (9001), sirius-engine (5174, 50051), sirius-postgres (5432), sirius-rabbitmq (5672, 15672), sirius-valkey (6379).
graph TD
subgraph clients [Clients]
UI["Sirius UI (Next.js)"]
CLI["Terminal and Agent Runtime"]
end
subgraph core [Core Services]
API["Sirius API (Go/Gin)"]
Engine["Sirius Engine"]
end
subgraph infra [Infrastructure]
MQ["RabbitMQ"]
DB["PostgreSQL"]
Cache["Valkey"]
end
UI -->|"HTTP/WebSocket"| API
CLI -->|"gRPC"| Engine
API -->|"AMQP publish"| MQ
MQ -->|"Queue consume"| Engine
API -->|"SQL read/write"| DB
Engine -->|"SQL read/write"| DB
API -->|"Session/cache ops"| Cache
Engine -->|"Scan state cache ops"| Cache
| 서비스 | 기술 | 포트 | 목적 |
|---|---|---|---|
| sirius-ui | Next.js 14, React, Tailwind | 3000 | 웹 인터페이스 |
| sirius-api | Go, Gin | 9001 | REST API 및 비즈니스 로직 |
| sirius-engine | Go + 내장 gRPC 에이전트 | 5174, 50051 | 스캐너, 터미널, 에이전트 서비스 |
| sirius-postgres | PostgreSQL 15 | 5432 | 취약점 및 스캔 데이터 |
| sirius-rabbitmq | RabbitMQ | 5672, 15672 | 서비스 간 메시징 |
| sirius-valkey | Valkey (Redis 호환) | 6379 | 캐시 및 세션 데이터 |
| 대시보드 | 스캐너 | 취약점 탐색기 |
|---|---|---|
![]() | ![]() | ![]() |
| 환경 | 호스트 세부 정보 | 터미널 |
|---|---|---|
![]() | ![]() | ![]() |
Sirius는 내부 서비스 API 키로 보호되는 REST 엔드포인트를 포트 9001에서 노출합니다. Docker 시크릿 파일(SIRIUS_API_KEY_FILE, 기본값 /run/secrets/sirius_api_key)을 사용하는 것이 좋으며, SIRIUS_API_KEY도 지원되는 환경 변수 폴백으로 남아 있습니다. 설치 프로그램은 ./secrets/sirius_api_key.txt를 작성하고(모드 0644로 설정하여 비루트 앱 UID가 바인드 마운트된 시크릿을 읽을 수 있도록 함) 두 가지를 모두 구성합니다.
curl http://localhost:9001/health -H "X-API-Key: $SIRIUS_API_KEY"
curl http://localhost:9001/api/v1/scan/get/all -H "X-API-Key: $SIRIUS_API_KEY"
전체 API 문서: REST API Reference
프로덕션 배포 시:
--force로 실행하여 모든 자격 증명을 재생성합니다docker compose pull && docker compose up -d일반적인 문제에 대한 빠른 해결 방법:
| 문제 | 해결 방법 |
|---|---|
| 서비스가 시작되지 않음 | docker compose logs <service>로 오류 확인 |
| Dev 오버레이에서 인프라 누락 | 두 파일 모두 사용: -f docker-compose.yaml -f docker-compose.dev.yaml |
| 포트 충돌 | lsof -i :3000으로 충돌하는 프로세스 확인 |
| 데이터베이스 연결 오류 | docker exec sirius-postgres pg_isready |
| 재설정 후 오래된 시크릿 | 설치 프로그램을 다시 실행한 후 docker compose up -d --force-recreate |
자세한 운영 런북, 검증 절차 및 비상 복구에 대해서는 Operations & Troubleshooting을 참조하세요.
개발 환경 설정, 코딩 표준 및 PR 가이드라인은 CONTRIBUTING.md를 참조하세요.
빠른 링크: Issues | Discussions | Discord