Комплексный инструмент для автоматизированного аудита безопасности веб-приложений
AutoSecAudit — это модульный Python-инструмент для пассивного и активного анализа безопасности веб-сайтов. Инструмент обнаруживает распространенные уязвимости, ошибки конфигурации и утечки информации без агрессивного сканирования.
Используйте этот инструмент ТОЛЬКО на ресурсах, которыми вы владеете, или при наличии явного письменного разрешения от владельца.
Несанкционированное сканирование чужих ресурсов может нарушать законы и расцениваться как кибератака.
| Модуль | Что проверяет | Время |
|---|---|---|
| 🔒 HTTP Заголовки | HSTS, CSP, X-Frame-Options, X-Content-Type-Options | ~1 сек |
| 🔐 SSL/TLS | Протоколы, сертификаты, срок действия | ~2 сек |
| 📧 DNS (Email) | SPF, DMARC (защита от Email Spoofing) | ~1 сек |
| 🍪 Cookie | Secure, HttpOnly, SameSite атрибуты | ~1 сек |
| 📂 Утечки файлов | .git, .env, phpinfo.php, wp-config.php |
~10 сек |
| 🚪 Открытые порты | 19 критических портов (Redis, MongoDB, SMB и др.) | ~5 сек |
| 📁 Открытые директории | Directory Listing в 27 типах директорий | ~15 сек |
| 🛠️ Технологии | CMS, фреймворки, серверы (WordPress, Nginx, PHP и др.) | ~2 сек |
| 🌐 CORS | Wildcard, отражение Origin, null origin уязвимости | ~3 сек |
| ⚙️ HTTP методы | TRACE, PUT, DELETE, XST-атаки | ~5 сек |
| 📜 Robots/Sitemap | Скрытые пути в robots.txt и sitemap.xml |
~10 сек |
| Модуль | Что проверяет | Время | Флаг |
|---|---|---|---|
| 🌍 Поддомены | DNS-перебор 100 популярных поддоменов | ~2 мин | --subdomains |
| 🔑 Дефолтные учётки | Проверка 26 популярных пар логин/пароль | ~5 мин | --brute |
- 📄 JSON — для машинной обработки и интеграции в CI/CD
- 🎨 HTML — красивый дашборд с тёмной темой, графиками и детальной информацией
- Python 3.8+
- pip
# Клонируйте репозиторий
git clone https://github.com/yourusername/autosecaudit.git
cd autosecaudit
# Создайте виртуальное окружение (рекомендуется)
python -m venv venv
source venv/bin/activate # Linux/Mac
# или
venv\Scripts\activate # Windows
# Установите зависимости
pip install -r requirements.txtrequests>=2.31.0
dnspython>=2.4.0
cryptography>=41.0.0
beautifulsoup4>=4.12.0
urllib3>=2.0.0python main.py https://example.comВремя: ~1 минута
Модулей: 11
Что проверяет: Заголовки, SSL, DNS, Cookie, утечки файлов, порты, директории, технологии, CORS, HTTP методы, robots/sitemap
python main.py https://example.com --subdomainsВремя: ~3 минуты
Модулей: 12
Дополнительно: DNS-перебор 100 популярных поддоменов с wildcard-фильтрацией
python main.py https://example.com --subdomains --bruteВремя: ~10 минут
Модулей: 13
Дополнительно: Проверка дефолтных учётных данных
⚠️ Флаг--bruteвыполняет активные действия! Используйте только на своих ресурсах.
# Аудит своего сайта
python main.py https://mysite.com
# Аудит с поиском поддоменов
python main.py https://mysite.com --subdomains
# Полный аудит (только для своих!)
python main.py https://mysite.com --subdomains --brute============================================================
[*] AutoSecAudit v3.0
[*] Цель: https://example.com
[*] Дата: 2026-07-27 14:30:52
============================================================
[ 1/11] 🔒 HTTP Заголовки...
[ 2/11] 🔐 SSL/TLS...
[ 3/11] 📧 DNS (Email)...
...
============================================================
[*] РЕЗУЛЬТАТЫ АУДИТА
============================================================
[!] 🔒 HTTP Заголовки:
[HIGH] Заголовок отсутствует: Content-Security-Policy
[MEDIUM] Заголовок отсутствует: X-Frame-Options
[!] 📂 Утечки файлов:
[CRITICAL] .env файл доступен публично
[!] 🛠️ Технологии:
[INFO] Обнаружена CMS: WordPress
[INFO] Обнаружена технология: Nginx v1.24.0
============================================================
[*] СВОДКА:
CRITICAL: 1
HIGH: 3
MEDIUM: 5
LOW: 2
============================================================
[+] JSON отчёт: audit_report_example.com_20260727_143052.json
[+] HTML отчёт: audit_report_example.com_20260727_143052.html
[+] Откройте HTML в браузере 🌐
После запуска откройте .html файл в браузере и увидите:
- 🛡️ Шапку с названием, целью и датой
- 📊 Общую оценку безопасности (CRITICAL/HIGH/MEDIUM/LOW/PASS)
- 📈 Сводку с графиками по уровням критичности
- 🔍 Детальные результаты по каждому модулю с цветными бейджами
autosecaudit/
├── main.py # Точка входа, CLI, сборка отчёта
├── requirements.txt # Зависимости
├── README.md # Этот файл
│
├── checks/ # Модули проверок
│ ├── __init__.py
│ ├── headers.py # HTTP заголовки безопасности
│ ├── ssl_tls.py # SSL/TLS сертификаты
│ ├── dns_records.py # SPF/DMARC записи
│ ├── cookies.py # Безопасность Cookie
│ ├── exposed_files.py # Поиск утечек (.git, .env)
│ ├── ports.py # Сканирование портов
│ ├── directory_listing.py # Открытые директории
│ ├── tech_stack.py # Определение технологий
│ ├── cors.py # Проверка CORS
│ ├── http_methods.py # HTTP методы (TRACE, PUT)
│ ├── subdomains.py # Поиск поддоменов
│ ├── robots_sitemap.py # Парсинг robots.txt/sitemap.xml
│ └── default_creds.py # Проверка дефолтных учёток ⚠️
│
└── reports/ # Генерация отчётов
├── __init__.py
└── html_report.py # HTML дашборд
- Создайте файл в
checks/your_check.py:
def check_your_feature(url: str) -> dict:
results = {"status": "PASS", "findings": []}
# Ваша логика проверки
if problem_found:
results["status"] = "FAIL"
results["findings"].append({
"issue": "Описание проблемы",
"severity": "HIGH", # CRITICAL/HIGH/MEDIUM/LOW/INFO
"solution": "Как исправить"
})
return results- Добавьте в
main.py:
from checks.your_check import check_your_feature
modules = [
# ... существующие модули
("🆕 Ваш модуль", check_your_feature, target_url),
]- 📊 PDF-отчёты через
weasyprint - 🐳 Dockerfile — запуск одной командой
- 🔄 Diff-режим — сравнение двух сканов
- 📧 Telegram/Email уведомления о критических находках
- 🎯 Интеграция с Nuclei — тысячи CVE-шаблонов
- 📈 База данных — хранение истории сканов
- 🌐 Web-интерфейс на Flask/FastAPI
- Интеграция с OWASP ZAP для активного сканирования
- Проверка на уязвимости в зависимостях (npm audit, safety)
- Поиск утечек в GitHub (trufflehog)
- Проверка на поддоменное захват (subdomain takeover)
- Интеграция с Shodan/Censys для разведки
Pull requests приветствуются! Для крупных изменений сначала откройте issue, чтобы обсудить, что вы хотите изменить.
- OWASP — за стандарты безопасности
- Mozilla Observatory — за вдохновение
- Nuclei — за отличные шаблоны
Happy Hacking! 🛡️