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.
- 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.
backend/
├── app.py # Main Flask application
└── scan.py
frontend/
├── src/
│ ├── api.js # Handles API requests to Flask backend
│ ├── App.js # Main React app router
│ ├── components/
│ └── pages/
└── package.json
Make sure you have installed:
- Python 3.9+
- Node.js 18+ and npm
Run the Flask server:
cd backend
python app.pyBy default, it runs on http://127.0.0.1:5000.
cd frontend
npm install
npm startBy default, it runs on http://localhost:3000.
In frontend/src/api.js, ensure the backend base URL matches:
const API_BASE_URL = "http://127.0.0.1:5000";-
User Login
- The user registers or logs in via the React frontend.
- JWT tokens are stored in session storage for secure API access.
-
AWS Credential Setup
- The user enters AWS Access and Secret keys in the Settings page.
- Backend validates the keys using the
boto3SDK.
-
Misconfiguration Scan
- Flask runs scanner modules for EC2, S3, IAM, and RDS.
- Each finding is categorized by severity and region.
-
Dashboard Visualization
- React fetches aggregated metrics from
/api/metrics. - Displays charts, summary, and a sortable, filterable findings table.
- React fetches aggregated metrics from
- 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.
| 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 |
- All API calls are authenticated using JWT tokens.
- Session timeout automatically logs inactive users out.
- 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