Skip to content

Sanders003/cloud-misconfiguration-scanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

☁️ Cloud Misconfiguration Scanner

The Cloud Misconfiguration Scanner is a web-based security tool designed to help users detect potential misconfigurations in their AWS cloud environments.
It allows users to securely connect their AWS accounts, automatically scan for risky configurations (e.g., open S3 buckets, weak IAM policies, exposed EC2 ports), and visualize findings via an interactive dashboard.

Disclaimer: This project is under active development. Expect significant updates, UI enhancements, and feature improvements in the coming days. Functionality, structure, and API endpoints may change without prior notice.


🚀 Features

🧩 Core Features

  • User Authentication
    • Register and log in securely.
    • Role-based navigation with Home, Dashboard, Settings, and Logout.
  • AWS Key Integration
    • Input AWS Access Keys & Secret Keys.
    • Fetch regions automatically.
  • Cloud Misconfiguration Scanning
    • Scans AWS resources: EC2, S3, IAM, RDS.
    • Detects security risks and categorizes them by severity (High, Medium, Low).
  • Metrics Dashboard
    • View real-time charts and summaries.
    • Interactive Bar Chart and Pie Chart visualizations using Recharts.
    • Filter findings by Region and Risk Level.
  • Settings Page
    • Update AWS credentials and re-trigger scans.
  • Logout and Session Handling
    • Secure session management with automatic timeout.

🏗️ Project Structure

Backend (Flask)


backend/
├── app.py                 # Main Flask application
└── scan.py

Frontend (React)


frontend/
├── src/
│   ├── api.js             # Handles API requests to Flask backend
│   ├── App.js             # Main React app router
│   ├── components/
│   └── pages/
└── package.json


⚙️ Setup Instructions

1️⃣ Prerequisites

Make sure you have installed:

  • Python 3.9+
  • Node.js 18+ and npm

2️⃣ Backend Setup

Run the Flask server:

cd backend
python app.py

By default, it runs on http://127.0.0.1:5000.


3️⃣ Frontend Setup

cd frontend
npm install
npm start

By default, it runs on http://localhost:3000.


4️⃣ Connect Backend & Frontend

In frontend/src/api.js, ensure the backend base URL matches:

const API_BASE_URL = "http://127.0.0.1:5000";

🧠 How It Works

  1. User Login

    • The user registers or logs in via the React frontend.
    • JWT tokens are stored in session storage for secure API access.
  2. AWS Credential Setup

    • The user enters AWS Access and Secret keys in the Settings page.
    • Backend validates the keys using the boto3 SDK.
  3. Misconfiguration Scan

    • Flask runs scanner modules for EC2, S3, IAM, and RDS.
    • Each finding is categorized by severity and region.
  4. Dashboard Visualization

    • React fetches aggregated metrics from /api/metrics.
    • Displays charts, summary, and a sortable, filterable findings table.

📊 Dashboard Preview

  • Bar Chart: Number of findings by risk severity.
  • Pie Chart: Percentage distribution of High, Medium, Low risks.
  • Filters: Region and Risk Level filters with “Apply Filter” button.
  • Table: Detailed findings with sorting on all columns.

🧩 Tech Stack

Layer Technology
Frontend React, Recharts
Backend Flask, Flask-JWT-Extended
Database SQLite / MySQL (configurable)
Cloud SDK Boto3 (AWS SDK for Python)
Auth JWT Tokens
Charts Recharts

🔐 Security Notes

  • All API calls are authenticated using JWT tokens.
  • Session timeout automatically logs inactive users out.

🧰 Future Enhancements

  • Add scheduling for periodic scans.
  • Support Azure and GCP misconfiguration scanning.
  • Email or Slack alerts for high-risk findings.
  • Export findings as PDF or CSV reports.
  • AI-based risk prioritization using historical data.
  • Solutions for some common misconfigurations

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published