Defense-in-depth security scanner for Java projects integrating 6 industry-standard tools (Trivy, Gi
10K+
Comprehensive security scanning for Java projects with defense-in-depth approach
Laria is a Docker-based security scanner that provides comprehensive security analysis for Java projects and containerized applications. It integrates 10+ industry-standard security tools to detect vulnerabilities across multiple layers:
ā
10+ Security Tools - Gitleaks, Semgrep, SpotBugs, Trivy, Checkov, Hadolint, Grype, Kubescape, Kubeaudit, Helm, Syft
ā
Multi-Layer Scanning - Secrets, SAST, Dependencies, IaC, Containers, Helm Charts, Linting
ā
Container Image Scanning - Trivy & Grype for built Docker images
ā
Helm Chart Security - Kubescape, Kubeaudit, Helm lint, and Trivy for Kubernetes deployments
ā
Dependency Consistency - Detects diamond dependencies and version conflicts via SBOM analysis
ā
SBOM Generation - Software Bill of Materials via Syft for supply chain visibility
ā
Beautiful Reports - HTML, Markdown, and JSON formats with remediation guidance
ā
Fast Scans - ~2.5 minutes for comprehensive analysis with parallel execution
ā
CI/CD Ready - GitHub Actions workflow included
ā
Docker-based - No local tool installation required
ā
Remote Repository Support - Scan directly from GitHub/GitLab URLs
ā
Smart Builds - Auto-builds Maven/Gradle projects & Dockerfiles for deeper analysis
ā
Formatted Output - Clean tables instead of raw JSON
ā
Configurable Severity - Customizable thresholds and fail-on-severity levels
ā
Executive Summary - High-level overview for stakeholders
No installation required! Just pull and run the container:
docker pull dumanoj/laria:latest
docker run --rm -v $(pwd):/repo dumanoj/laria:latest /repo
Install Laria and all tools directly on your system (Linux/macOS):
curl -sfL https://raw.githubusercontent.com/manojisnow/laria/main/install.sh | bash
This will install everything to ~/.laria (isolated from your system):
~/.laria/bin~/.laria/venvUsage: Add the bin directory to your PATH:
export PATH="$HOME/.laria/bin:$PATH"
Then run:
laria /path/to/repo
To remove Laria cleanly:
curl -sfL https://raw.githubusercontent.com/manojisnow/laria/main/uninstall.sh | bash
This simply removes the ~/.laria directory. No other files are touched.
Option A: Pull from Docker Hub (Recommended)
docker pull dumanoj/laria:latest
Option B: Build from source
git clone https://github.com/manojisnow/laria.git
cd laria
docker build -t laria:latest .
# Using the scan script (easiest)
./scan-repo.sh /path/to/your/repository
# Or use Docker directly
# If you pulled from Docker Hub, use: dumanoj/laria:latest
# If you built locally, use: laria:latest
docker run --rm \
--tmpfs /tmp:rw,exec,size=4g \
-v /path/to/repo:/path/to/repo \
-v $(pwd)/reports:/laria/reports \
dumanoj/laria:latest /path/to/repo
# Open HTML report
open reports/laria_report_*.html
# Or view Markdown report
cat reports/laria_report_*.md
| Tool | Purpose | What it Finds |
|---|---|---|
| Gitleaks | Secrets Detection | API keys, passwords, tokens |
| Semgrep | SAST | SQL injection, XSS, code vulnerabilities |
| SpotBugs | SAST (Java) | Null pointers, resource leaks, security bugs |
| Trivy | Dependencies + IaC + Containers | CVEs, vulnerable packages, misconfigurations |
| Grype | Container Scanning | Container image vulnerabilities |
| Checkov | IaC Security | Dockerfile, K8s, Terraform issues |
| Hadolint | Dockerfile Linting | Best practices, security issues |
| Kubescape | Kubernetes Security | K8s misconfigurations, compliance checks |
| Kubeaudit | Kubernetes Auditing | Security policy violations |
| Helm | Helm Chart Linting | Chart validation and best practices |
| Syft | SBOM Generation | Software Bill of Materials, dependency analysis |
Laria generates three report formats:
š”ļø Laria Security Scanner Starting...
ā° Scan started at: 2025-12-06 22:36:51
š¦ Step 1: Repository Management
Using local repository: /path/to/example-project
š Step 2: Artifact Detection
Found artifacts:
⢠dockerfiles: 3 item(s)
⢠build_files: 4 item(s)
⢠jar_files: 2 item(s)
šØ Step 3: Building Artifacts
š³ Building Docker images...
ā Building Java projects...
š Step 4: Source Code Security Scanning
š Running secrets detection...
š Running static application security testing...
š Running dependency vulnerability scanning...
āļø Running infrastructure-as-code scanning...
š Step 6: Generating Reports
ā JSON report: reports/laria_report_20251206_223919.json
ā HTML report: reports/laria_report_20251206_223919.html
ā Markdown report: reports/laria_report_20251206_223919.md
ā
Scan completed in 148.12 seconds
name: Security Scan
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Laria
run: |
docker pull dumanoj/laria:latest
docker run --rm \
-v ${{ github.workspace }}:${{ github.workspace }} \
-v ${{ github.workspace }}/reports:/laria/reports \
dumanoj/laria:latest ${{ github.workspace }}
- name: Upload Reports
uses: actions/upload-artifact@v4
with:
name: security-reports
path: reports/
See .github/workflows/laria-scan.ymlā for a complete example.
Customize scanning behavior with config.yaml:
scanners:
secrets:
enabled: true
tools: [gitleaks]
sast:
enabled: true
tools: [semgrep, spotbugs]
dependencies:
enabled: true
tools: [trivy]
iac:
enabled: true
tools: [trivy, checkov]
severity:
fail_on: CRITICAL
report_threshold: LOW
reporting:
formats: [json, html, markdown]
build:
enabled: true
tool: auto # auto, maven, gradle
Optimization Tips:
laria/
āāā laria.py # Main orchestrator
āāā install.sh # Standalone installer
āāā Dockerfile # Production Docker image
āāā config.yaml # Default configuration
āāā scan-repo.sh # Convenience script
āāā scanners/ # Scanner implementations
ā āāā secrets_scanner.py
ā āāā sast_scanner.py
ā āāā dependency_scanner.py
ā āāā iac_scanner.py
ā āāā lint_scanner.py
āāā utils/ # Utilities
ā āāā repo_manager.py
ā āāā artifact_detector.py
ā āāā report_generator.py
ā āāā report_formatter.py
āāā tests/ # Unit and integration tests
āāā docs/ # Documentation
Laria is designed to be safe and transparent:
mvn package) to create artifacts in target/.~/.m2 is mounted to share your local dependency cache, speeding up builds and using your configured repositories.laria) by default to minimize risk.Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSEā file for details
This project integrates the following open-source security tools:
For issues, questions, or contributions, please open an issue on GitHub.
Made with š”ļø by the Laria team
Content type
Image
Digest
sha256:6df13801dā¦
Size
738.4 MB
Last updated
about 2 months ago
docker pull dumanoj/laria