العودة إلى التحديثات
New releaseAug 18, 2026

pii-shield v2.2.0

سايدكار K8s بدون كود لتنظيف السجلات. يكتشف الأسرار عبر تحليل الانتروبيا، ويحافظ على سلامة JSON، ويخفي المعلومات الشخصية القابلة للتحديد (PII) بشكل حتمي. 🛡️

مشاركة

PII-Shield 🛡️

حاوية جانبية (sidecar) لتعقيم السجلات بدون كود لـ Kubernetes. يمنع تسرب البيانات (GDPR/SOC2) عبر حجب المعلومات الشخصية (PII) من السجلات قبل مغادرتها للحاوية (pod).

يعمل PII-Shield داخل العملية نفسها — عبر CLI أو sidecar أو WASM. لا توجد واجهة برمجية مستضافة ولا خادم تُرسل إليه بياناتك.

نفس الاسم، مشاريع مختلفة. هذا ليس وكيل الخصوصية PII Shield من مدونة مجتمع مطوري Microsoft (مايو 2026، vikasgautam18/pii-shield)، وليس منتجات حجب الأوامر piishield.ai أو piishield.com، وليس حزمة pii-shield على PyPI من Intellirim. حزمنا هي pii-shield-wasi على PyPI و@aragossa/pii-shield-wasi على npm؛ وفي النصوص نسمي هذا المشروع PII-Shield sidecar.

Release License Docker Pulls Artifact Hub
OpenSSF Best Practices Go Report Card Test Coverage Sponsor

"لا تدع المعلومات الشخصية تسمم نماذج الذكاء الاصطناعي الخاصة بك." يضمن PII-Shield ألا تصل البيانات الحساسة أبدًا إلى مجموعة بيانات التدريب الخاصة بك، مما يحميك من إعادة تدريب النموذج المفروضة بموجب GDPR.

[!WARNING] هل تقوم بالترقية إلى v2.0.0؟ لقد نقلنا توزيع المستخدم النهائي إلى عمليات التثبيت المعتمدة على Helm والحاويات الجانبية الأصلية Distroless. لم يعد Kustomize مسار تثبيت مدعومًا للإصدارات لمستخدمي الإنتاج، رغم أن مستودع المشغّل (operator) لا يزال يحتفظ بهيكل Kustomize للتطوير المحلي وتوليد البيانات الوصفية (manifests). لم يعد الوصول إلى /bin/sh داخل حاوية PII-Shield الجانبية مدعومًا. اقرأ دليل الترحيل.

نموذجا النشر

يقدم PII-Shield طريقتين متميزتين للتكامل مع بنيتك التقنية:

  1. مشغّل Kubernetes (بدون كود): نموذج النشر الرائد لدينا. مشغّل K8s مؤتمت بالكامل يحقن حاوية جانبية Distroless عالية الأمان في الحاويات (pods) الخاصة بك لاعتراض السجلات وتعقيمها أثناء التشغيل.
  2. WASM داخل العملية (للتكاملات الأساسية): للحصول على أداء فائق، يمكن تضمين المحرك الأساسي مباشرة عبر WASM، مما يوفر زمن استجابة <1ms دون قفزات شبكية.

حالة المشروع وخارطة الطريق

PII-Shield أداة أمنية مفتوحة المصدر قيد التطوير النشط في مرحلة تقوية الإنتاج. يوفر خط إصدار v2.x أدوات CLI وحاويات وHelm/operator وWASM SDK قابلة للاستخدام. مسارات الحجب الأساسية جاهزة لعمليات النشر المُتحكَّم بها، بينما لا تزال بعض أوضاع النشر على Kubernetes وضمانات سلسلة التوريد قيد التثبيت.

المكوّنالحالة
الماسح الأساسيمُصدَر / عمليات نشر مُتحكَّم بها
CLI sidecarمُصدَر / عمليات نشر مُتحكَّم بها
مشغّل Kubernetesمرحلة التثبيت
WASM SDKsإصدار تجريبي مُصدَر
تكامل بوابة Proxy-Wasmبحث وتطوير مخطط له
واجهة لوحة التحكمبحث وتطوير مخطط له
اعتراض eBPFبحث وتطوير تجريبي

راجع KNOWN_LIMITATIONS.md لحدود تقوية الإنتاج الحالية.

لماذا PII-Shield؟

غالبًا ما ينسى المطورون إخفاء البيانات الحساسة. مرشحات regex التقليدية في Fluentd/Logstash بطيئة وصعبة الصيانة وتستهلك CPU مكلفًا على مجمّعات السجلات.

يجلس PII-Shield بجوار حاوية تطبيقك مباشرة:

  • محرك أساسي مُقوّى للإنتاج: مُحسَّن للحاويات الجانبية على Kubernetes مع تخصيصات ذاكرة منخفضة على المسارات الساخنة ومطابقة regex حتمية.
  • تحليل الإنتروبيا الواعي بالسياق: يكتشف الأسرار عالية الإنتروبيا حتى بدون مفاتيح (مثل Error: ... 44saCk9...) عبر تحليل الكلمات المفتاحية السياقية.
  • قواعد regex مخصصة: حجب حتمي للبيانات المهيكلة (UUIDs، المعرّفات) يتجاوز فحوصات الإنتروبيا للأنماط المعروفة.
  • توقيعات الأسرار المدمجة: بيانات الاعتماد ذات البادئة المُصدِرة — مفاتيح AWS وGoogle API، ورموز GitHub وSlack وStripe، وJWTs، وبيانات اعتماد Bearer، وكتل المفاتيح الخاصة PEM — تُحجب بناءً على صيغتها، فيُلتقط المفتاح الصالح حتى عندما يكون جسمه منخفض الإنتروبيا أو تم رفع الحد الأدنى.
  • أرقام الهواتف حسب الشكل: الأرقام الدولية التي تبدأ بـ +، وصيغ أمريكا الشمالية (555) 234-5678، والأرقام تحت مفتاح باسم هاتف (phone، mobile، wa_id، ...) تُخفى رغم أن الأرقام وحدها لا تُحتسب أبدًا كسر.
  • أرقام الهوية حسب المفتاح: الأرقام تحت مفتاح يسمّي وثيقة هوية (idNumber، national_id، ssn، passport_number، tax_id، ...) تُخفى؛ أما معرّف سجل مثل user_id أو order_id فلا.
  • تغطية الانحدار والاختبار العشوائي (Fuzz): مُختبر ضد حالات الإجهاد بما في ذلك البيانات الثنائية العشوائية، وتداخل JSON، والسجلات متعددة اللغات.
  • تجزئة حتمية: يستبدل الأسرار بتجزئات فريدة (مثل [HIDDEN:a1b2c])، مما يسمح لفريق ضمان الجودة بربط الأخطاء دون رؤية البيانات الخام.
  • إسقاط مباشر (Drop-in): لا يتطلب تغييرات في الكود. يعمل مع أي لغة (Node، Python، Java، Go).
  • دعم القائمة البيضاء: السماح صراحةً بالأنماط الآمنة (مثل تجزئات git، معرّفات النظام) باستخدام PII_SAFE_REGEX_LIST لمنع الإيجابيات الكاذبة.

إدارة PII-Shield عبر عشرات العناقيد؟

نحن نبني لوحة تحكم مستضافة مع إدارة قواعد مركزية وتنبيهات Slack وتحليلات الحجب. Join the Waitlist

التكاملات

يُشحن بناء WASM داخل العملية الخاص بـ PII-Shield داخل GuardSpine Code، وهو إجراء GitHub مفتوح المصدر لحوكمة كود الذكاء الاصطناعي، يضمّن الملف الثنائي ويشير إليه في ملف NOTICE الخاص به.

اعتبارات الأداء

رغم أن PII-Shield مُحسَّن للغاية، فإن الفحص العميق للسجلات المعقدة يتطلب اهتمامًا دقيقًا بالإعدادات.

  • السجلات النصية: سريعة للغاية (>100k سطر/ثانية).
  • سجلات JSON: تحليل بدون تخصيص ذاكرة (بدون عبء encoding/json). يحلل الماسح بنى JSON يدويًا لضمان إنتاجية عالية (~7MB/s) دون ارتفاع مفاجئ في الذاكرة.
  • التوصية: الاستخدام آمن للإنتاجية العالية. نستخدم ضمانات الحماية من التكرار (recursion) لمنع تجاوز سعة المكدس (stack overflow) في 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 في الحاويات (Pods) الخاصة بك دون الحاجة إلى أي تغييرات في الكود أو Dockerfile.

Docker

احصل على أحدث صورة خفيفة من Docker Hub أو GHCR:

docker pull thelisdeep/pii-shield:2.2.7
# OR from GitHub Container Registry (Enterprise):
docker pull ghcr.io/pii-shield/pii-shield:2.2.7

البناء من المصدر

يمكنك بناء الملف الثنائي مباشرة من الكود المصدري:

go build -o pii-shield ./cmd/cleaner

مكتبة Go

يمكن تشغيل الماسح داخل برنامج Go، على سبيل المثال في slog.Handler يحجب كل سجل قبل كتابته. يحتاج فقط إلى المكتبة القياسية:

go get github.com/pii-shield/pii-shield/v2/pkg/scanner
import "github.com/pii-shield/pii-shield/v2/pkg/scanner"

clean := scanner.ScanAndRedact(line)         // one line
cleanText := scanner.ScanAndRedactText(text) // several lines, line endings kept

تقرأ الحزمة نفس متغيرات البيئة PII_* التي يقرأها CLI عند تحميلها. الإصدارات قبل v2.2.8 تُعلن مسار الوحدة (module path) بدون /v2، لذا يرفضها go get.

الفئات