Skip to content

Latest commit

 

History

History
324 lines (237 loc) · 10.1 KB

File metadata and controls

324 lines (237 loc) · 10.1 KB

Безопасность

Политика безопасности

Безопасность является приоритетом для системы управления складом и отслеживания оборудования. Этот документ описывает политику безопасности проекта и процедуры сообщения об уязвимостях.

🛡️ Поддерживаемые версии

В настоящее время поддерживаются следующие версии проекта:

Версия Поддержка безопасности
1.0.x ✅ Активно поддерживается
< 1.0 ❌ Не поддерживается

🔍 Сообщение об уязвимостях

Как сообщить об уязвимости

Если вы обнаружили уязвимость безопасности, пожалуйста, НЕ создавайте публичный issue. Вместо этого:

  1. Отправьте email на: oglenyaboss@icloud.com
  2. Включите следующую информацию:
    • Описание уязвимости
    • Шаги для воспроизведения
    • Возможное влияние
    • Предлагаемое решение (если есть)
  3. Мы ответим в течение 48 часов с подтверждением получения
  4. Обновления будут предоставляться каждые 72 часа до решения

Процесс обработки уязвимостей

  1. Получение отчета (Day 0)

    • Подтверждение получения в течение 48 часов
    • Первичная оценка серьезности
  2. Анализ и воспроизведение (Days 1-3)

    • Воспроизведение уязвимости
    • Оценка влияния и риска
    • Присвоение CVSS рейтинга
  3. Разработка исправления (Days 4-14)

    • Создание патча
    • Внутреннее тестирование
    • Подготовка advisory
  4. Развертывание и раскрытие (Days 15-30)

    • Выпуск патча
    • Публикация security advisory
    • Координированное раскрытие

Критерии серьезности

🔴 Критичная (CVSS 9.0-10.0)

  • Удаленное выполнение кода
  • Полный компромисс системы
  • Доступ к blockchain приватным ключам

🟠 Высокая (CVSS 7.0-8.9)

  • SQL injection в критичных компонентах
  • Обход аутентификации
  • Несанкционированный доступ к данным

🟡 Средняя (CVSS 4.0-6.9)

  • XSS атаки
  • CSRF уязвимости
  • Информационные утечки

🟢 Низкая (CVSS 0.1-3.9)

  • DoS атаки
  • Минорные утечки информации
  • Проблемы конфигурации

🔒 Реализованные меры безопасности

Аутентификация и авторизация

// JWT токены с коротким временем жизни
const (
    AccessTokenExpiry  = 15 * time.Minute
    RefreshTokenExpiry = 7 * 24 * time.Hour
)

// Роли и права доступа
type Role string
const (
    RoleAdmin     Role = "admin"
    RoleManager   Role = "manager"
    RoleOperator  Role = "operator"
    RoleViewer    Role = "viewer"
)

Шифрование данных

  • Пароли: Bcrypt с cost 12
  • JWT токены: RS256 алгоритм
  • Данные в transit: TLS 1.2+
  • Blockchain: Ethereum cryptography

Валидация входных данных

// Валидация на уровне структур
type User struct {
    Username string `validate:"required,alphanum,min=3,max=50"`
    Email    string `validate:"required,email"`
    Password string `validate:"required,min=8,max=128"`
}

// Санитизация HTML
func sanitizeInput(input string) string {
    p := bluemonday.UGCPolicy()
    return p.Sanitize(input)
}

Защита от атак

CSRF Protection

// Frontend автоматически включает CSRF токены
const csrfToken = document
  .querySelector('meta[name="csrf-token"]')
  ?.getAttribute("content");

XSS Protection

// Экранирование всех пользовательских данных
const safeHTML = DOMPurify.sanitize(userInput);

SQL/NoSQL Injection

// Использование подготовленных запросов
filter := bson.M{"username": username}
err := collection.FindOne(ctx, filter).Decode(&user)

Аудит и логирование

// Структурированное логирование
log.WithFields(log.Fields{
    "user_id":    userID,
    "action":     "login_attempt",
    "ip_address": clientIP,
    "success":    false,
    "timestamp":  time.Now(),
}).Warn("Failed login attempt")

Контейнеризация и изоляция

# Использование non-root пользователя
RUN addgroup -g 1001 -S nodejs
RUN adduser -S nextjs -u 1001
USER nextjs

# Минимальный базовый образ
FROM node:18-alpine AS runner

🔧 Конфигурация безопасности

Environment Variables

# Критичные переменные должны быть установлены
JWT_SECRET=your-256-bit-secret
DATABASE_ENCRYPTION_KEY=your-encryption-key
CORS_ALLOWED_ORIGINS=https://yourdomain.com

# Безопасные значения по умолчанию
SESSION_TIMEOUT=900
MAX_LOGIN_ATTEMPTS=5
RATE_LIMIT_REQUESTS=100

Сетевая безопасность

# Docker Compose сеть
networks:
  warehouse-network:
    driver: bridge
    ipam:
      config:
        - subnet: 172.20.0.0/16

Мониторинг безопасности

// Детекция аномальной активности
func (s *SecurityService) DetectAnomalies(userID string, action string) {
    // Проверка частоты запросов
    if s.rateLimiter.IsExceeded(userID) {
        s.logSuspiciousActivity(userID, "rate_limit_exceeded")
    }

    // Проверка необычного времени активности
    if s.isUnusualTime(time.Now()) {
        s.logSuspiciousActivity(userID, "unusual_time_activity")
    }
}

🛠️ Инструменты безопасности

Static Analysis

# Go security scanner
go install github.com/securecodewarrior/gosec/v2/cmd/gosec@latest
gosec ./...

# JavaScript/TypeScript security audit
npm audit
npm audit fix

Dependency Scanning

# Go модули
go list -m -u all

# Node.js пакеты
npm outdated
npm update

Container Security

# Сканирование Docker образов
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
  aquasec/trivy image your-image:tag

📋 Security Checklist

Для разработчиков

  • Все пользовательские данные валидируются
  • Используются параметризованные запросы
  • Пароли хэшируются с солью
  • Токены имеют ограниченное время жизни
  • Логируются события безопасности
  • Код проходит static analysis
  • Зависимости регулярно обновляются

Для деплоя

  • TLS сертификаты настроены
  • Firewall правила применены
  • Секреты не хранятся в коде
  • Backup и disaster recovery настроены
  • Мониторинг безопасности активен
  • Rate limiting настроен
  • CORS политики применены

🚨 Инциденты безопасности

Планы реагирования

  1. Немедленные действия (0-1 час)

    • Изоляция пораженных систем
    • Оценка масштаба инцидента
    • Уведомление команды безопасности
  2. Короткосрочные меры (1-24 часа)

    • Применение временных исправлений
    • Сбор доказательств
    • Уведомление заинтересованных сторон
  3. Долгосрочное восстановление (1-7 дней)

    • Постоянные исправления
    • Анализ первопричин
    • Обновление процедур

📚 Дополнительные ресурсы

Стандарты и руководства

Инструменты для тестирования

  • SAST: SonarQube, CodeQL, Semgrep
  • DAST: OWASP ZAP, Burp Suite
  • Container Security: Trivy, Clair, Snyk
  • Dependency Check: NPM Audit, Go mod tidy

🤝 Сотрудничество

Мы приветствуем участие сообщества в улучшении безопасности проекта:

  • Bug Bounty: Рассматриваем внедрение программы
  • Security Reviews: Приглашаем экспертов для аудита
  • Community: Обсуждения в security каналах

Помните: Безопасность - это непрерывный процесс, а не одноразовое действие. Регулярно обновляйте свои знания и следите за новыми угрозами.