Markdown
Cloud Security Auditor 🛡️
A lightweight, multi-threaded, Layer 7 Cloud-Aware Web Security Auditor written in Python.
Unlike traditional port scanners that rely strictly on raw Layer 4 TCP socket connections—which frequently get blocked or misreported as CLOSED by cloud reverse proxies (e.g., Render, Cloudflare, Vercel, Heroku)—cloud_auditor utilizes Layer 7 protocol probes to accurately evaluate cloud-hosted targets.
🚀 Key Features
- Cloud-Aware Probing: Uses Layer 7 HTTP/HTTPS protocol handshakes to bypass edge proxy filtering on cloud platforms.
- Automated Warm-up: Sends initial requests to wake up sleeping serverless/containerized applications (e.g., Render free tiers) before auditing.
- Multi-Threaded Port Scanning: Rapidly audits standard web and database ports (
80,443,8080,8443,22,21,3306). - SSL/TLS Cryptographic Inspection: Evaluates certificate issuers, validity dates, and expiration risk.
- HTTP Header Hardening Audit: Evaluates implementation of security headers including
HSTS,CSP,X-Frame-Options,X-Content-Type-Options,Referrer-Policy, andPermissions-Policy. - Sensitive Content Enumeration: Checks for exposed sensitive endpoints (
/.env,/.git/HEAD,/backup.sql,/admin, etc.).
📦 Installation
Install directly via pip:
pip install cloud_auditor
Or install locally in editable mode:
Bash
git clone [https://github.com/yourusername/cloud_auditor.git](https://github.com/yourusername/cloud_auditor.git)
cd cloud_auditor
pip install -e .
💻 Usage
Quick Python Integration
Python
from cloud_auditor import CloudAuditor
# Instantiate with target domain
auditor = CloudAuditor("example.com")
# Run full security audit cycle
report = auditor.run_full_audit()
# Print results
print(f"Target IP : {report['ip']}")
print(f"Open Ports : {list(report['ports'].keys())}")
print(f"Header Score : {report['headers']['score']}%")
Modular Function Usage
You can also execute specific audit phases individually:
Python
from cloud_auditor import CloudAuditor
auditor = CloudAuditor("example.com")
# 1. Resolve IP & Warmup Container
auditor.resolve()
# 2. Audit Security Headers Only
headers_report = auditor.audit_headers()
print("Header Score:", headers_report["score"])
print("Missing Headers:", headers_report["missing"])
📊 Sample JSON Output
JSON
{
"target": "bluechat-ft0t.onrender.com",
"ip": "216.24.57.7",
"ports": {
"80": {"service": "HTTP", "status": "HTTP 200"},
"443": {"service": "HTTPS", "status": "HTTP 200"}
},
"headers": {
"score": 100.0,
"present": [
"Strict-Transport-Security",
"Content-Security-Policy",
"X-Frame-Options",
"X-Content-Type-Options",
"Referrer-Policy",
"Permissions-Policy"
],
"missing": []
},
"timestamp": "2026-08-30T16:00:00.000000+00:00"
}
📜 License
Distributed under the MIT License. See LICENSE for more information.
Metadata
Release files for cloud-auditor 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cloud_auditor-0.1.1.tar.gz | 4.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cloud_auditor-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.7 kB
Release files / cloud_auditor-0.1.1.tar.gz
| Download URL | cloud_auditor-0.1.1.tar.gz |
|---|---|
| Size | 4.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2a00dab66e8a96f0b4773a6799fde5e59ff91ac774d112af991958b734b6fd48
|
|
BLAKE2b-256 checksum How to use checksums |
cf5d72da31847f27523729410a86b77cee9acc9413efb67445ddf10996998e0b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.0
|
Release files / cloud_auditor-0.1.1-py3-none-any.whl
| Download URL | cloud_auditor-0.1.1-py3-none-any.whl |
|---|---|
| Size | 4.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4c7ee72c6db6a6f58bab330264aabfebefb655433ecf1004a49f99bc30f9e059
|
|
BLAKE2b-256 checksum How to use checksums |
a6732d8f47a7998acdba9721c954c11bfdf79f5a0fee18c01af977787c7fac15
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.0
|