A comprehensive security scanning tool for Azure resources that identifies potential vulnerabilities and security misconfigurations across multiple Azure services.
AzurEye is a Flask-based web application that performs automated security assessments of your Azure environment. It scans various Azure services to identify hardcoded secrets, insecure configurations, and other security vulnerabilities.
- Storage Accounts - Scans for public access, container permissions, and sensitive data
- Key Vaults - Analyzes access policies, secrets, certificates, and keys
- Logic Apps (Standard & Consumption) - Checks for hardcoded secrets in connections, workflows, and app settings
- Function Apps - Scans app settings and code for sensitive information
- Automation Accounts - Analyzes runbooks for hardcoded credentials and sensitive data
- Service Principal Roles - Reviews role assignments and permissions
- Real-time Scanning - Live progress updates with Server-Sent Events (SSE)
- Comprehensive Reporting - Detailed HTML reports with vulnerability categorization
- Visual Data Dashboard - Interactive charts and graphs showing security posture
- Database Storage - SQLite database for scan history and results
- Export Functionality - Export scan results as HTML reports
- Multi-subscription Support - Scan across multiple Azure subscriptions
- Python 3.7 or higher
- Azure CLI 2.0 or higher
- Internet connection for Azure API calls
# Install Homebrew (if not already installed)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install Azure CLI
brew install azure-cli# Update package index
sudo apt-get update
# Install Azure CLI
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash# Install Azure CLI
sudo dnf install azure-cli# Download and run the MSI installer
# Visit: https://aka.ms/installazurecliwindows# Login to Azure
az login
# Verify login
az account show# Clone the repository
git clone https://github.com/simplyrishabh/AzurEye.git
cd AzurEye
# Run the automated installation script
./install.sh# 1. Clone the repository
git clone https://github.com/simplyrishabh/AzurEye.git
cd AzurEye
# 2. Install Python dependencies
pip install flask
# 3. Install Azure CLI extensions
az extension add --name logic
az extension add --name automation
# 4. Verify Azure CLI setup
az --version
az account showpython3 app.pyThe application will start on http://localhost:5000
- Open your browser and navigate to
http://localhost:5000 - Select the Azure service you want to scan
- Choose your subscription(s)
- Click "Start Scan" to begin the security assessment
- Monitor real-time progress and results
- Export detailed HTML reports
The application is primarily designed for web interface usage, but you can also run individual scan modules programmatically.
AzurEye/
βββ app.py # Main Flask application
βββ modules/ # Scan modules for different Azure services
β βββ automation.py # Automation Account scanner
β βββ functionapp.py # Function App scanner
β βββ keyvaults.py # Key Vault scanner
β βββ logicapp_consumption.py # Logic App Consumption scanner
β βββ logicapp_standard.py # Logic App Standard scanner
β βββ service_principal_roles.py # Service Principal scanner
β βββ storage.py # Storage Account scanner
βββ templates/ # HTML templates
β βββ base.html # Base template
β βββ dashboard.html # Dashboard view
β βββ index.html # Home page
β βββ [service].html # Service-specific templates
βββ static/ # Static assets
β βββ css/style.css # Stylesheets
β βββ js/scripts.js # JavaScript
βββ utils/ # Utility modules
β βββ az_cli_utils.py # Azure CLI utilities
β βββ display_utils.py # Display utilities
β βββ output_utils.py # Output formatting
β βββ report_utils.py # Report generation
β βββ sensitive_data_utils.py # Sensitive data detection
βββ results/ # Scan results (auto-generated)
βββ reports/ # HTML reports (auto-generated)
βββ azurEye.db # Main database
βββ azurEye_visualization.db # Visualization database
βββ visualization_db.py # Visualization database utilities
The application uses SQLite databases:
azurEye.db- Main database for scan results and vulnerability findingsazurEye_visualization.db- Database for visual data dashboard
- Max Run History: Configurable limit for Logic App run history analysis
- Sensitive Data Patterns: Customizable regex patterns for detecting sensitive information
- Timeout Settings: Configurable timeouts for Azure CLI commands
- Individual Service Reports - Detailed reports for each scanned service
- Comprehensive Dashboard Report - Overview of all scan results
- Vulnerability Details - Categorized findings with recommendations
- Executive summary with vulnerability counts
- Detailed vulnerability descriptions
- Code snippets showing issues
- Security recommendations
- Resource breakdown by subscription
- Timestamp and user information
- Scan results are stored locally in SQLite databases
- No data is transmitted to external services
- Sensitive information is detected but not stored in plain text
The application requires the following Azure permissions:
- Reader role on subscriptions to enumerate resources
- Key Vault Secrets User role to read Key Vault secrets
- Storage Blob Data Reader role to read Storage Account contents
- Run scans in a secure environment
- Regularly review and clean up scan results
- Use least-privilege access for Azure authentication
- Keep Azure CLI and extensions updated
# Install Azure CLI
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash# Login to Azure
az login# Check current user and permissions
az account show
az role assignment list --assignee $(az account show --query user.name -o tsv)# Install Flask
pip install flaskEnable debug mode by setting debug=True in app.py:
app.run(debug=True, port='5000')- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
# Install development dependencies
pip install flask
# Run in development mode
python3 app.pyThis project is licensed under the MIT License - see the LICENSE file for details.
This tool is designed for security assessment purposes only. Users are responsible for:
- Ensuring they have proper authorization to scan Azure resources
- Complying with their organization's security policies
- Using the tool in accordance with Azure's terms of service
- Properly handling and securing scan results
For support, please:
- Check the Issues page
- Create a new issue with detailed information about your problem
- Include Azure CLI version, Python version, and error messages
- v1.0.0 - Initial release with support for Storage Accounts, Key Vaults, Logic Apps, Function Apps, and Automation Accounts
Made with β€οΈ for Azure Security