
pii-shield v2.2.3
Бескодовый sidecar для K8s для очистки логов. Обнаруживает секреты с помощью анализа энтропии, сохраняет целостность JSON и детерминированно скрывает PII. 🛡️
PII-Shield 🛡️
Сайдкар для санитизации логов без единой строки кода для Kubernetes. Предотвращает утечки данных (GDPR/SOC2), редактируя PII из логов до того, как они покинут под.
PII-Shield работает внутри процесса — CLI, сайдкар или WASM. Нет хостируемого API и нет сервера, на который отправляются ваши данные.
«Не позволяйте PII отравить ваши модели ИИ». PII-Shield гарантирует, что конфиденциальные данные никогда не попадут в ваш обучающий набор, избавляя вас от принудительного переобучения моделей из-за GDPR.
[!WARNING] Обновляетесь до v2.0.0? Мы перевели распространение для конечных пользователей на установку через Helm и Distroless Native Sidecars. Kustomize больше не является поддерживаемым способом установки для продакшн-пользователей, хотя репозиторий оператора по-прежнему содержит Kustomize-заготовки для локальной разработки и генерации манифестов. Доступ к
/bin/shвнутри сайдкара PII-Shield больше не поддерживается. Прочитайте руководство по миграции.
Две модели развертывания
PII-Shield предлагает два различных способа интеграции в ваш стек:
- Оператор Kubernetes (Zero-code): Наша флагманская модель развертывания. Полностью автоматизированный K8s-оператор, который внедряет высокозащищенный Distroless-сайдкар в ваши поды для перехвата и санитизации логов на лету.
- Внутрипроцессный WASM (для интеграций в ядро): Для экстремальной производительности основной движок может быть встроен напрямую через WASM, обеспечивая задержку
<1msбез сетевых переходов.
Статус проекта и дорожная карта
PII-Shield — это активно разрабатываемый инструмент безопасности с открытым исходным кодом, находящийся в фазе производственного закаливания. Линейка релизов v2.x поставляет рабочие артефакты CLI, контейнера, Helm/оператора и WASM SDK. Основные пути редактирования готовы к контролируемым развертываниям, в то время как некоторые режимы развертывания Kubernetes и гарантии цепочки поставок все еще стабилизируются.
| Компонент | Статус |
|---|---|
| Основной сканер | Выпущен / контролируемые развертывания |
| CLI-сайдкар | Выпущен / контролируемые развертывания |
| Оператор Kubernetes | Фаза стабилизации |
| WASM SDK | Выпущена бета-версия |
| Интеграция Proxy-Wasm gateway | Планируется R&D |
| UI Control Plane | Планируется R&D |
| Перехват eBPF | Экспериментальный R&D |
См. KNOWN_LIMITATIONS.md для текущих границ производственного закаливания.
Зачем нужен PII-Shield?
Разработчики часто забывают маскировать конфиденциальные данные. Традиционные regex-фильтры в Fluentd/Logstash медленные, сложны в поддержке и потребляют дорогостоящий CPU на агрегаторах логов.
PII-Shield находится прямо рядом с контейнером вашего приложения:
- Движок ядра, прошедший производственное закаливание: Оптимизирован для сайдкаров Kubernetes с низким выделением памяти на горячих путях и детерминированным сопоставлением regex.
- Контекстно-зависимый анализ энтропии: Обнаруживает секреты с высокой энтропией даже без ключей (например,
Error: ... 44saCk9...) путем анализа ключевых слов контекста. - Пользовательские regex-правила: Детерминированное редактирование структурированных данных (UUID, ID), которое переопределяет проверки энтропии для известных шаблонов.
- Покрытие регрессионными и фаззинг-тестами: Протестировано на стресс-кейсах, включая бинарный мусор, вложенность JSON и многоязычные логи.
- Детерминированное хеширование: Заменяет секреты уникальными хешами (например,
[HIDDEN:a1b2c]), позволяя QA коррелировать ошибки без просмотра исходных данных. - Бесшовная интеграция: Не требует изменений кода. Работает с любым языком (Node, Python, Java, Go).
- Поддержка белых списков: Явное разрешение безопасных шаблонов (например, git-хешей, системных ID) с помощью
PII_SAFE_REGEX_LISTдля предотвращения ложных срабатываний.
Управляете PII-Shield в десятках кластеров?
Мы создаем хостируемый Control Plane с централизованным управлением правилами, оповещениями в Slack и аналитикой редактирования.
Интеграции
Внутрипроцессная WASM-сборка PII-Shield поставляется внутри GuardSpine Code, GitHub Action с открытым исходным кодом для управления кодом ИИ, который включает бинарный файл и указывает его в своем NOTICE.
Вопросы производительности
Хотя PII-Shield высоко оптимизирован, глубокий анализ сложных логов требует внимательного подхода к конфигурации.
- Текстовые логи: Чрезвычайно быстрые (>100k строк/с).
- JSON-логи: Разбор с нулевым выделением памяти (без накладных расходов
encoding/json). Сканер вручную разбирает JSON-структуры для обеспечения высокой пропускной способности (~7MB/s) без скачков памяти. - Рекомендация: Использование безопасно для высокой пропускной способности. Мы используем защиту от рекурсии для предотвращения переполнения стека на глубоко вложенных JSON.
Установка
Helm-чарт (оператор Kubernetes)
Официальный и рекомендуемый способ развертывания PII-Shield в Kubernetes — через наш полностью автоматизированный оператор:
helm repo add pii-shield https://pii-shield.github.io/pii-shield/
helm repo update
helm install pii-shield-operator pii-shield/pii-shield-operator -n operator-system --create-namespace
Это развертывает оператор PII-Shield, который автоматически внедряет высокозащищенные distroless-сайдкары в ваши поды без необходимости изменений кода или Dockerfile.
Docker
Получите последний легковесный образ из Docker Hub или GHCR:
docker pull thelisdeep/pii-shield:2.2.3
# ИЛИ из GitHub Container Registry (Enterprise):
docker pull ghcr.io/pii-shield/pii-shield:2.2.3
Сборка из исходного кода
Вы можете собрать бинарный файл непосредственно из исходного кода:
go build -o pii-shield ./cmd/cleaner/main.go
Конфигурация
См. CONFIGURATION.md для полного списка переменных окружения, включая:
PII_SALT: Пользовательская HMAC-соль (обязательна для продакшена).PII_ADAPTIVE_THRESHOLD: Включение динамических базовых уровней энтропии.PII_DISABLE_BIGRAM_CHECK: Оптимизация для неанглоязычных логов.PII_CUSTOM_REGEX_LIST: Пользовательские regex-правила для детерминированного редактирования.PII_SAFE_REGEX_LIST: Regex-правила белого списка для игнорирования (совпадения возвращаются как есть).
Таблица чувствительности энтропии (порог по умолчанию: 3.6)
| Энтропия | Тип данных | Пример |
|---|---|---|
| 0.0 - 3.0 | Обычные слова, повторы | password, admin, 111111 |
| 3.0 - 3.6 | CamelCase, частичные хеши | ProgramCampaignInstanceJob, 8f3a11b2c |
| 3.6 - 4.5 | Пути, UUID, слабые пароли | /opt/application/runtime, P@ssw0rd2026! |
| 4.5 - 5.0 | Средние токены | E8s9d_2kL1 |
| 5.0+ | Ключи с высокой энтропией | (SHA-256, API-ключи) |
Быстрый старт
- Локальное тестирование (CLI) Вы можете пропустить любой вывод логов через PII-Shield, чтобы сразу увидеть его в действии:
# Эмуляция лога с конфиденциальным паролем
echo "Error: User password=MySecretPass123! failed login" | docker run -i --rm ghcr.io/pii-shield/pii-shield:2.2.3
# Вывод: Error: User password=[HIDDEN:8f3a11] failed login
- Kubernetes (автоматическое внедрение сайдкара)
С установленным оператором PII-Shield защита приложения сводится к созданию
PiiPolicyи маркировке ваших подов.
Создание политики:
apiVersion: core.pii-shield.io/v1alpha1
kind: PiiPolicy
metadata:
name: strict-policy
namespace: default
spec:
injectionMode: "file"
Маркировка вашего Deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
name: secure-app
spec:
template:
metadata:
labels:
pii-shield.io/inject: "true"
annotations:
pii-shield.io/policy: "strict-policy"
# ...
Оператор автоматически внедрит pii-shield-agent с использованием шаблона Native Sidecar (K8s 1.28+) и безопасно замаскирует все логи!
📋 Бесплатно: Контрольный список аудита PII в логах Kubernetes из 25 пунктов — где PII утекает из подов, какие пути логов обходят ваши фильтры и как проверить, что редактирование действительно работает. Получить контрольный список →
📦 Пакет соответствия GDPR — доступен сейчас (ранний доступ): 40+ протестированных правил редактирования, документация для DPO, шаблоны аудиторских следов. $149 → · HIPAA/PCI в листе ожидания →
💬 Используете PII-Shield? Расскажите нам о вашем развертывании → — 2 минуты, и это определяет, что будет создано дальше.
Верификация
Этот проект верифицируется растущим набором тестов, предназначенных для повышения уверенности перед производственным закаливанием:
- Модульные тесты: Покрывают граничные случаи, многоязычную поддержку и целостность JSON с покрытием >85%.
- Фаззинг: Нативный Go-фаззинг обеспечивает безопасность от сбоев при невалидных и случайных бинарных входных данных.
- Smoke-тестирование:
./scripts/test-smoke.shвыполняет смешанные рабочие нагрузки и сообщает о точности обнаружения. - Сквозное (E2E) тестирование: Набор
operator/tests/run_e2e.shвыполняет полностековую валидацию с использованием Minikube и Helm. Он собирает локальные образы, развертывает оператор без cert-manager, развертывает целевые Jobs и проверяет фактическое редактирование логов путем перехвата выводов сайдкаров.
Бенчмарки производительности
Для сравнения сквозной пропускной способности CLI между текущей веткой и базовым рефом:
./benchmark/run_benchmarks.sh
По умолчанию бенчмарк сравнивает HEAD с origin/main, обновляет origin/main, генерирует смешанный корпус логов, чередует порядок запуска старой/новой версии и сообщает медиану, p95, min/max и MiB/s:
BASE_REF=origin/main RUNS=9 LINES=500000 ./benchmark/run_benchmarks.sh
Это измеряет полный путь CLI от stdin до stdout. Для микробенчмарков только сканера выполните:
go test -bench=. -benchmem ./pkg/scanner
Интеграционные тесты оператора
Оператор держит быстрые модульные тесты отдельно от интеграционных тестов Kubernetes API. Обычные тесты оператора не запускают локальный API-сервер:
cd operator
go test ./...
Для запуска набора интеграционных тестов контроллера на основе envtest:
./scripts/test-operator-integration.sh
Эти тесты запускают локальный API-сервер Kubernetes и etcd через envtest, поэтому требуют разрешения на привязку к 127.0.0.1. В ограниченных песочницах запускайте их в локальной оболочке, среде Docker или CI-раннере, который разрешает привязку к localhost.
Поддержка
PII-Shield — это инфраструктура с открытым исходным кодом для логов, сохраняющих конфиденциальность. Если этот проект полезен вам или вашей организации, вы можете поддержать его разработку через GitHub Sponsors.
Верификация релизов
Руководство по проверке контрольных сумм релизов и дайджестов образов документировано в docs/release-verification.md. Релизы с подписями и подтверждением происхождения отслеживаются в рамках дорожной карты закаливания цепочки поставок.
Лицензия
Распространяется под лицензией Apache 2.0. См. LICENSE для получения дополнительной информации.