Версия:
3.3.51
Обновлено:
2026-01-23
Зависимости и безопасность Supply Chain
1. Backend зависимости (Go)
1.1 Прямые зависимости
| Пакет |
Версия |
Назначение |
Примечания по безопасности |
github.com/golang-jwt/jwt/v4 |
v4.5.1 |
JWT токены |
Официальный, активно поддерживается |
github.com/gorilla/mux |
v1.8.1 |
HTTP routing |
Широко используется, стабильный |
github.com/jmoiron/sqlx |
v1.4.0 |
SQL расширения |
Обёртка над database/sql |
github.com/lib/pq |
v1.10.9 |
PostgreSQL драйвер |
Официальный драйвер |
github.com/go-playground/validator/v10 |
v10.27.0 |
Валидация ввода |
Популярный, хорошо протестирован |
github.com/shopspring/decimal |
v1.4.0 |
Decimal арифметика |
Финансовая точность |
github.com/microcosm-cc/bluemonday |
v1.0.27 |
HTML санитизация |
Защита от XSS |
github.com/ethereum/go-ethereum |
v1.16.8 |
Ethereum утилиты |
Валидация адресов |
github.com/google/uuid |
v1.6.0 |
Генерация UUID |
Официальный от Google |
github.com/joho/godotenv |
v1.5.1 |
Загрузка env файлов |
Только для dev |
github.com/sirupsen/logrus |
v1.9.3 |
Логирование |
Широко используется |
go.uber.org/zap |
v1.27.0 |
Структурированное логирование |
Высокая производительность |
golang.org/x/oauth2 |
v0.32.0 |
OAuth клиент |
Официальный Go |
golang.org/x/time |
v0.14.0 |
Rate limiting |
Официальный Go |
1.2 Критичные для безопасности пакеты
Обработка JWT
github.com/golang-jwt/jwt/v4 v4.5.1
├── Назначение: Генерация и валидация токенов
├── Алгоритм: HS256 (HMAC-SHA256)
├── CVE: Не известны для v4.5.x
└── Рекомендация: Мониторить обновления
Криптографические операции
golang.org/x/crypto v0.45.0 (indirect)
├── Назначение: Криптографические примитивы
├── Используется: go-ethereum
└── CVE: Проверять golang.org/x/vuln
SQL база данных
github.com/lib/pq v1.10.9
├── Назначение: PostgreSQL драйвер
├── Безопасность: Использует параметризованные запросы
└── CVE: Не известны для v1.10.x
1.3 Косвенные зависимости (связанные с безопасностью)
| Пакет |
Через |
Назначение |
golang.org/x/crypto |
go-ethereum |
Криптопримитивы |
golang.org/x/net |
Несколько |
Сетевые утилиты |
google.golang.org/grpc |
Google APIs |
gRPC клиент |
google.golang.org/protobuf |
gRPC |
Protocol buffers |
2. Frontend зависимости (Node.js)
2.1 Production зависимости
| Пакет |
Версия |
Назначение |
Примечания по безопасности |
next |
^15.4.5 |
React framework |
Поддерживается Vercel |
@tanstack/react-query |
^5.90.2 |
Server state |
Хорошо поддерживается |
zod |
^3.23.8 |
Валидация |
Типобезопасный |
2.2 Development зависимости
| Пакет |
Версия |
Назначение |
typescript |
^5.6.3 |
Проверка типов |
@playwright/test |
^1.55.0 |
E2E тестирование |
eslint |
^8.57.0 |
Linting |
jest |
^29.7.0 |
Unit тестирование |
tailwindcss |
^3.4.17 |
CSS framework |
2.3 Сканирование безопасности
# Запуск npm audit
cd frontend && npm audit
# Ожидается: 0 high/critical уязвимостей
3. Инфраструктурные зависимости
3.1 Runtime
| Компонент |
Версия |
Назначение |
| Go |
1.24.3 |
Backend runtime |
| Node.js |
20.x |
Frontend сборка |
| PostgreSQL |
15 |
База данных |
| NGINX |
Latest |
Reverse proxy |
| Docker |
Latest |
Контейнеризация |
3.2 Внешние сервисы
| Сервис |
Провайдер |
Сертификация безопасности |
| Аутентификация |
Supabase |
SOC 2 Type II |
| Custody |
Fordefi |
Enterprise grade, multi-sig |
| Депозиты |
Crypto2B |
API security, webhooks |
| TLS сертификаты |
Let's Encrypt |
Бесплатные, автоматические |
4. Меры безопасности Supply Chain
4.1 Управление зависимостями
Go (go.mod):
- Зафиксированные версии через
go.sum
- Верификация checksums
- Module proxy:
proxy.golang.org
Node.js (package-lock.json):
- Точные версии зафиксированы
- Integrity hashes
- Registry:
registry.npmjs.org
4.2 Политика обновлений
| Приоритет |
Критерий |
Срок |
| Критический |
Известная CVE с эксплоитом |
24 часа |
| Высокий |
Security advisory |
1 неделя |
| Средний |
Минорная уязвимость |
1 месяц |
| Низкий |
Общее обновление |
Квартально |
4.3 Мониторинг уязвимостей
Инструменты:
govulncheck для Go (golang.org/x/vuln)
npm audit для Node.js
- GitHub Dependabot (если включён)
Процесс:
- Еженедельные автоматические сканы
- Ревью новых CVE в зависимостях
- Оценка влияния на Saga
- Патч или mitigate
5. SBOM (Software Bill of Materials)
5.1 Генерация Go SBOM
# Генерация SBOM в формате CycloneDX
cd backend
go install github.com/CycloneDX/cyclonedx-gomod/cmd/cyclonedx-gomod@latest
cyclonedx-gomod mod -json > sbom-backend.json
5.2 Генерация Node.js SBOM
# Генерация SBOM
cd frontend
npx @cyclonedx/cyclonedx-npm --output-file sbom-frontend.json
5.3 Сводка содержимого SBOM
Backend (Go):
- ~50 прямых зависимостей
- ~150 всего (включая косвенные)
- Ключевые: JWT, crypto, database, HTTP
Frontend (Node.js):
- ~30 прямых зависимостей
- ~800 всего (включая косвенные)
- Ключевые: React, Next.js, Zod
6. Статус известных уязвимостей
6.1 Текущий статус (Январь 2026)
| Критичность |
Количество |
Примечания |
| Критическая |
0 |
Не известно |
| Высокая |
0 |
Не известно |
| Средняя |
0 |
Не известно |
| Низкая |
0 |
Не известно |
6.2 Исторические уязвимости
| Дата |
Пакет |
CVE |
Решение |
| 2026-01-23 |
go-ethereum |
GO-2026-4315 и др. |
Обновлено v1.14.11 → v1.16.8 |
| 2026-01-23 |
golang.org/x/crypto |
GO-2025-4135, GO-2025-4134 |
Обновлено v0.43.0 → v0.45.0 |
| 2026-01-23 |
lodash/lodash-es |
GHSA-xxjr-mmjv-4gpg |
Prototype Pollution fix через npm audit |
7. Чек-лист безопасности зависимостей
Перед деплоем
Периодический ревью
8. Рекомендации
Немедленные
- Включить Dependabot (если используется GitHub)
- Добавить govulncheck в CI pipeline
- Зафиксировать версию NGINX в Dockerfile
Краткосрочные
- Рассмотреть генерацию SBOM в CI/CD
- Реализовать приватный module proxy для production
- Добавить npm audit в CI pipeline
Долгосрочные
- Оценить Sigstore для верификации supply chain
- Рассмотреть reproducible builds
- Реализовать dependency allow-list
9. Дерево зависимостей (критичные для безопасности пути)
flowchart TB
subgraph Auth["Путь аутентификации"]
JWT["golang-jwt/jwt/v4"]
JWT --> None1["Нет внешних зависимостей<br/>(pure Go)"]
end
subgraph DB["Путь базы данных"]
SQLX["jmoiron/sqlx"]
SQLX --> STDLIB["database/sql (stdlib)"]
STDLIB --> PQ["lib/pq"]
PQ --> None2["Нет внешних зависимостей"]
end
subgraph Crypto["Путь криптографии"]
ETH["go-ethereum"]
ETH --> XCRYPTO["golang.org/x/crypto"]
XCRYPTO --> None3["Нет внешних зависимостей<br/>(stdlib)"]
end
subgraph HTTP["Путь HTTP"]
MUX["gorilla/mux"]
MUX --> None4["Нет внешних зависимостей<br/>(pure Go)"]
end
Связанные документы