Skip to content

Multi-cloud xSPM platform to scan, visualize, and remediate security risks across cloud, containers, and Kubernetes environments.

Notifications You must be signed in to change notification settings

h4r5h1t/gandiva-xspm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Gandiva: Extended Security Posture Management (xSPM)

Gandiva-xSPM

⚠️ Note: This project was originally forked from shashvik/gandiva-xspm, but that repository has since been deleted. This repository is now maintained independently. Major parts of the original codebase were authored by shashvik. Credit goes to him for the core architecture and initial implementation.

Gandiva is an advanced Extended Security Posture Management (xSPM) platform designed to help organizations monitor, assess, and improve their cloud security posture across multi-cloud environments. It offers deep visibility into cloud assets, detects security issues, and provides actionable remediation guidance.

πŸ“š Table of Contents

πŸš€ How to Deploy

Prerequisites

Ensure you have:

  • Docker installed.
  • AWS credentials configured (~/.aws).
  • Kubernetes configuration (~/.kube).

Docker Deployment

To run Gandiva using Docker:

  1. Clone the repository:

    git clone https://github.com/h4r5h1t/gandiva-xspm.git
    cd gandiva-xspm
  2. Build Docker images:

    Note: Image builds may take several minutes. Please be patient.

    docker build -t gandiva-backend -f Dockerfile.backend . 
    docker build -t gandiva-frontend -f Dockerfile.frontend .
  3. Start the containers:

    chmod +x start_gandiva.sh
    ./start_gandiva.sh

Docker Compose Deployment

For a simpler deployment:

  1. Clone the repository:

    git clone https://github.com/h4r5h1t/gandiva-xspm.git
    cd gandiva-xspm
  2. Launch using Docker Compose:

    Note: Image builds may take several minutes. Please be patient.

    docker compose up -d --build
  3. Verify that containers are running:

    docker compose ps

Accessing Gandiva

✨ Key Features

  • πŸ” Multi-Cloud Asset Inventory – Unified view of AWS, Kubernetes, and other resources.
  • 🚨 Security Findings – Detect misconfigurations and compliance issues.
  • πŸ•ΈοΈ Relationship Visualization – Graph-based visualization of resource interconnections.
  • πŸ›‘οΈ Vulnerability Management – Identify and remediate resource vulnerabilities.
  • βœ… Benchmark Compliance – CIS, NIST compliance assessments.
  • 🐳 Container Security – Detect vulnerabilities in container images and configurations.
  • πŸ§ͺ Database Security – Analyze and monitor database posture.
  • πŸ” Secret Detection – Find exposed secrets in source code.
  • πŸ“Š Interactive Dashboard – Clean, intuitive interface for actionable insights.

πŸ—οΈ Architecture

Gandiva comprises the following core components:

  1. Backend API: Flask-based RESTful API server integrating various scanning tools.
  2. Frontend UI: React-based dashboard with rich visualization and controls.
  3. Analysis Engine: Integration with Steampipe and Neo4j for data analysis and visualization.

πŸ› οΈ Technology Stack

  • Frontend: React, TypeScript, Tailwind CSS, Shadcn UI, React Flow.
  • Backend: Python, Flask, Flask-RESTful, JWT Authentication.
  • Databases: MongoDB for application data, Neo4j for graph visualization.
  • Scanning: Steampipe for cloud resource scanning, Checkov, Trivy, custom scanners.
  • Deployment: Docker Compose, Kubernetes-ready.

πŸ—‚οΈ Project Structure

gandiva/
β”œβ”€β”€ backend/              # Flask backend application
β”‚   β”œβ”€β”€ app.py            # Main application entry point
β”‚   β”œβ”€β”€ resources.py      # API resources and endpoints
β”‚   β”œβ”€β”€ neo4j_*.py        # Neo4j integration
β”‚   β”œβ”€β”€ steampipe_*.py    # Steampipe integration
β”‚   └── *_scanner_*.py    # Various scanners
β”œβ”€β”€ frontend/             # React frontend application
β”‚   β”œβ”€β”€ src/              # Source code
β”‚   β”‚   β”œβ”€β”€ components/   # React components
β”‚   β”‚   β”œβ”€β”€ pages/        # Page components
β”‚   β”‚   └── services/     # API services
β”‚   └── public/           # Static assets
β”œβ”€β”€ docker-compose.yml    # Docker Compose configuration
└── Dockerfile.*          # Docker build configurations

πŸ” Cloud Resource Scanning

Gandiva leverages Steampipe to scan multi-cloud resources.

AWS Configuration

Ensure AWS CLI is set up with valid credentials:

aws configure

Kubernetes Configuration

Ensure your ~/.kube/config file is properly configured and has access to your cluster.

πŸ” Security Considerations

  • All endpoints are protected using JWT token authentication.
  • Role-based access control for administrative functions.
  • Secure storage of cloud credentials.
  • Token refresh mechanism for persistent sessions.

πŸ“– Documentation

πŸ“Έ Screenshots

Login Page

Login PageOverview

Dashboard Overview

Dashboard Overview

Commpliance Dashboard

Commpliance Dashboard

Commpliance Details

Commpliance Details

Graph Visualization

Graph Visualization

Asset Inventory

Asset Inventory

Asset Details

Asset Details

Security Controls

Security Controls

Security Controls Details

Security Controls Details

Data Security

Data Security

Data Security - S3 Bucket

Data Security (S3)

πŸ‘₯ Contributors

shashvik
shashvik
h4r5h1t
h4r5h1t

Special thanks to @shashvik for the original groundwork. This project is now independently maintained and developed by @h4r5h1t.