Автоматический технический и кибербезопасность-аудит сайтов
Automated technical & cybersecurity audit of websites
AuditGuard — это инструмент для автоматической проверки безопасности сайта: TLS, security headers, DNS, CVE-уязвимости через Shodan, утечки зависимостей. Даёт grade A+…❗, список находок с описанием и рекомендациями, экспорт SARIF 2.1.0 для GitHub Security.
Работает как публичный сервис (auditguard.ru) и как GitHub Action в CI/CD пайплайне.
| Направление | Что анализируем | Стандарты |
|---|---|---|
| 🔒 Security Headers | CSP, HSTS, X-Frame-Options, Permissions-Policy, Referrer-Policy | OWASP, CIS |
| 🔐 TLS / SSL | Версия, шифры, цепочка, срок, CT logs | NIST SP 800-52 |
| 🌐 DNS | SPF, DKIM, DMARC, CAA, NS конфигурация | RFC 7489, RFC 8659 |
| 🛡️ CVE / Уязвимости | NVD, EPSS score, CISA KEV, Shodan InternetDB | CVSSv3, BOD 22-01 |
| 🔍 Shodan | Открытые порты, баннеры, reputation | Shodan |
| 🌍 SEO & Видимость | Meta, canonical, robots.txt, sitemap, llms.txt | Google Guidelines |
| 🤖 AI / GEO | AI-crawler policy, structured data, AI-поиск | Emerging standards |
| 🔗 Зависимости | Внешние скрипты, CDN, supply chain риски | OWASP A08 |
| 📊 Производительность | TTFB, resource hints, Core Web Vitals baseline | CWV |
Данные на основе 965 завершённых аудитов
- 87% сайтов имеют хотя бы одну критическую или high-находку
- 86% сайтов без Content-Security-Policy
- Средний score AG-проектов: 86/100
- Среднее время аудита: 2–4 минуты
# 1. Запустить аудит
RESPONSE=$(curl -s -X POST https://auditguard.ru/api/audits \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","consentAccepted":true,"legalBasisConfirmed":true}')
AUDIT_ID=$(echo "$RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
echo "Audit ID: $AUDIT_ID"
# 2. Дождаться результата (polling)
while true; do
RESULT=$(curl -s "https://auditguard.ru/api/audits/$AUDIT_ID")
STATUS=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin).get('status',''))")
echo "Status: $STATUS"
[ "$STATUS" = "completed" ] && break
sleep 5
done
# 3. Вывести результат
echo "$RESULT" | python3 -c "
import sys, json
d = json.load(sys.stdin)
scores = d.get('scores', {})
print(f'Grade: {scores.get(\"trustGrade\",\"?\")} Score: {scores.get(\"overall\",0)}/100')
for f in d.get('findings', [])[:5]:
print(f' [{f[\"severity\"]}] {f[\"category\"]}: {f[\"title\"]}')
"
# 4. Экспорт SARIF (опционально)
curl -s "https://auditguard.ru/api/audits/$AUDIT_ID/sarif" > results.sarifПодключи AuditGuard к своему пайплайну: аудит запускается при каждом пуше или по расписанию.
# .github/workflows/security-audit.yml
name: Security Audit
on:
push:
branches: [main]
schedule:
- cron: '0 9 * * 1' # каждый понедельник в 9:00
jobs:
audit:
runs-on: ubuntu-latest
steps:
- name: AuditGuard Security Audit
uses: Gudvin82/auditguard@v1
with:
url: ${{ vars.SITE_URL }}
fail_on_critical: true # блокирует merge при критических находках
- name: Upload SARIF to GitHub Security
uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: results.sarif # результаты появятся во вкладке SecurityВыходные переменные action:
| Output | Описание |
|---|---|
grade |
Trust Grade: A+, A, B, C, D или ❗ |
score |
Числовой score 0–100 |
critical_count |
Количество критических находок |
high_count |
Количество high-находок |
report_url |
Ссылка на полный отчёт |
audit_id |
UUID аудита (для SARIF: /api/audits/{id}/sarif) |
Бесплатные инструменты для технического аудита и генерации конфигов — без регистрации, прямо в браузере.
Безопасность: SSL · Security Headers · CSP валидатор · CSP Generator · HSTS · Доступность сайта
DNS / Сеть: DNS записи · WHOIS · IP Lookup · Email: SPF/DMARC/DKIM · CIDR Calculator
HTTP / Контент: HTTP заголовки · CORS · Редиректы · Mixed Content
SEO / Robots: Robots.txt проверка · Robots.txt Generator · Sitemap
Разработчикам: JWT · JSON · Base64 · URL Encode · Hash Generator · Regex тестер · Nginx генератор · UUID / ULID · Password Checker · Diff Tool
Готовые клиенты в директориях репозитория — скопируй файл в свой проект:
- JavaScript / Node.js →
/js/auditguard.js(ESM, без зависимостей) - Python →
/python/auditguard/(толькоrequests) - curl →
/examples/curl_examples.sh
- 46+ источников данных: Shodan, EPSS API, CISA KEV, NVD, AlienVault OTX, AbuseIPDB, SSL Labs, crt.sh, Google Safe Browsing
- CVE приоритизация: CVSS v3 + EPSS + CISA KEV + Shodan InternetDB
- SARIF 2.1.0: экспорт для GitHub Security / SIEM
- Подробнее: auditguard.ru/methodology
AuditGuard is an automated website security audit tool: TLS, security headers, DNS, CVE vulnerabilities via Shodan, dependency leaks. Returns a grade (A+…❗), a list of findings with descriptions and recommendations, and SARIF 2.1.0 export for GitHub Security.
Available as a public service (auditguard.ru) and as a GitHub Action for CI/CD pipelines.
| Direction | What we analyze | Standards |
|---|---|---|
| 🔒 Security Headers | CSP, HSTS, X-Frame-Options, Permissions-Policy, Referrer-Policy | OWASP, CIS |
| 🔐 TLS / SSL | Version, ciphers, chain, expiry, CT logs | NIST SP 800-52 |
| 🌐 DNS | SPF, DKIM, DMARC, CAA, NS configuration | RFC 7489, RFC 8659 |
| 🛡️ CVE / Vulnerabilities | NVD, EPSS score, CISA KEV, Shodan InternetDB | CVSSv3, BOD 22-01 |
| 🔍 Shodan | Open ports, banners, IP reputation | Shodan |
| 🌍 SEO & Visibility | Meta, canonical, robots.txt, sitemap, llms.txt | Google Guidelines |
| 🤖 AI / GEO | AI-crawler policy, structured data, AI search | Emerging standards |
| 🔗 Dependencies | Third-party scripts, CDN, supply chain risks | OWASP A08 |
| 📊 Performance | TTFB, resource hints, Core Web Vitals baseline | CWV |
Based on 965 completed audits
- 87% of sites have at least one critical or high finding
- 86% of sites missing Content-Security-Policy
- Average score: 86/100
- Average audit time: 2–4 minutes
# 1. Start audit
RESPONSE=$(curl -s -X POST https://auditguard.ru/api/audits \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com","consentAccepted":true,"legalBasisConfirmed":true}')
AUDIT_ID=$(echo "$RESPONSE" | python3 -c "import sys,json; print(json.load(sys.stdin)['id'])")
# 2. Poll for result
while true; do
RESULT=$(curl -s "https://auditguard.ru/api/audits/$AUDIT_ID")
STATUS=$(echo "$RESULT" | python3 -c "import sys,json; print(json.load(sys.stdin).get('status',''))")
[ "$STATUS" = "completed" ] && break
sleep 5
done
# 3. Print findings
echo "$RESULT" | python3 -c "
import sys, json
d = json.load(sys.stdin)
scores = d.get('scores', {})
print(f'Grade: {scores.get(\"trustGrade\",\"?\")} Score: {scores.get(\"overall\",0)}/100')
for f in d.get('findings', [])[:5]:
print(f' [{f[\"severity\"]}] {f[\"category\"]}: {f[\"title\"]}')
"
# 4. Export SARIF (optional)
curl -s "https://auditguard.ru/api/audits/$AUDIT_ID/sarif" > results.sarif# .github/workflows/security-audit.yml
name: Security Audit
on:
push:
branches: [main]
schedule:
- cron: '0 9 * * 1' # every Monday at 9:00
jobs:
audit:
runs-on: ubuntu-latest
steps:
- name: AuditGuard Security Audit
uses: Gudvin82/auditguard@v1
with:
url: ${{ vars.SITE_URL }}
fail_on_critical: true # blocks merge on critical findings
- name: Upload SARIF to GitHub Security
uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: results.sarifNo registration required — use directly in browser:
Security: SSL · Security Headers · CSP Validator · CSP Generator · HSTS · Site Availability
DNS / Network: DNS Records · WHOIS · IP Lookup · Email SPF/DMARC/DKIM · CIDR Calculator
HTTP / Content: HTTP Headers · CORS · Redirects · Mixed Content
SEO / Robots: Robots.txt Checker · Robots.txt Generator · Sitemap Validator
Developer tools: JWT · JSON · Base64 · URL Encode · Hash · Regex · Nginx Generator · UUID/ULID · Password Checker · Diff Tool
→ All tools at auditguard.ru/tools/
| Grade | Score | Meaning |
|---|---|---|
| A+ | 95–100 | Exemplary security |
| A | 85–94 | Good posture |
| B | 70–84 | Needs attention |
| C | 50–69 | Serious gaps |
| D | 25–49 | Critical vulnerabilities |
| ❗ | 0–24 | Critical risk level |
AuditGuard uses NVD, EPSS, CISA KEV and Shodan InternetDB for CVE detection. Every CVE finding includes an interpretationNote:
⚠️ CVE presence does not confirm compromise — manual verification required.
CVE prioritization:
- CISA KEV — actively exploited vulnerabilities (BOD 22-01)
- EPSS ≥ 50% — high probability of exploit within 30 days
- Shodan InternetDB — CVEs associated with the server's IP
Ready-to-use clients included in this repository:
- JavaScript / Node.js →
/js/auditguard.js(ESM, zero dependencies) - Python →
/python/auditguard/(requestsonly) - curl →
/examples/curl_examples.sh
Apache License 2.0 — client code is open source. The audit engine runs as a cloud service.
🌐 Run audit · 🔧 Tools · 📖 Methodology · 📝 Blog · 📊 Cases