وثائق المسجل

توثيق تسجيل الإثبات والأدلة المقاومة للتلاعب.

وثائق المنتجات الأخرى

نموذج تهديد المسجل

نظرة عامة

المسجل هو طبقة بيانات الأدلة الحتمية لأنظمة الحوكمة. يقوم بامتصاص أحداث الحدود غير المغلقة، ويقوم بإغلاقها في مظروفات متسلسلة بالهاش، ويحتفظ بها في مقاطع قابلة للإضافة فقط، ويصدر حزم قابلة للتحقق من أجل الفحوصات غير المتصلة بالإنترنت.

يتكون المسجل من:

  • Core contracts (recorder-core): identity, hash/signature abstractions, أنواع الفلتر/المؤشر، جبر الأخطاء.
  • Envelope model (recorder-envelope): canonical encoding, envelope/segment/bundle أنواع، نتيجة التحقق الجبري.
  • Decision Gate integration adapter (recorder-decision-gate-adapter): deterministic MCP/runpack transcript mapping, runpack integrity policy, and تنفيذ سياسة تعديل النصوص / الحدود.
  • OpenTelemetry integration adapter (recorder-otel-adapter): deterministic OTel JSON export mapping, strict record validation, and تنفيذ سياسة الحدود/التحرير.
  • Recorder runtime (recorder): ingest validation, segment lifecycle, باني الحزم، المدقق غير المتصل، تنفيذات المزود/المحول.
  • Rust SDK facade (recorder-sdk): deterministic builder and unified in-process واجهة فوق المسجل، المحول، المزود، المدقق، ومقابض التخزين.
  • Python sidecar SDK (recorder-client): contract-driven sync/async sidecar HTTP client with strict response/error typing, retry-safe idempotency behavior, وتم التحقق من انحراف العقد المولد.
  • Storage backends (recorder-store): SQLite and in-memory implementations of متاجر الظرف، والمرفق، والجزء.
  • Sidecar config authority (recorder-sidecar-config): canonical sidecar config model, fail-closed validation, and deterministic config projection artifacts (schema/compat/example/docs) المستخدمة في توليد العقود وبوابات CI.
  • Sidecar service surface (recorder-sidecar): HTTP/JSON runtime exposing recorder/query/bundle/config workflows over Unix/TCP with auth/bounds/ idempotency controls, strict media-type policy enforcement, and first-party مسار توافق إدخال OTel JSON.
  • CLI surface (recorder-cli): local operator commands for record/query/bundle/ config/doctor workflows plus Decision Gate وOTel fixture ingest.

يدعم المسجل الآن كل من سير العمل المحلي وعملية الخدمة الجانبية HTTP المدمجة. تظل الأغطية الخارجية (على سبيل المثال، جسور MCP أو بوابات API) ضمن النطاق كحدود معادية.

أهداف الأمان

  • نتائج سلامة الحزمة والغلاف القابلة للتحديد والتكرار.
  • تاريخ قابل للاكتشاف فقط مع فرض استمرارية السلسلة.
  • سلوك الفشل المغلق عند وجود بيانات مشوهة أو مفقودة أو غامضة أو غير قابلة للتحقق.
  • قابلية نقل الحزم القابلة للتحقق دون الاعتماد على مكونات حية موثوقة.
  • Clear trust boundaries between adapters, recorder runtime, stores, and تحديد حدود الثقة بوضوح بين المحولات، وقت تشغيل المسجل، المتاجر، والمستهلكين.
  • تعرض مدخلات/موارد محدودة عند نقاط دخول المشغلين.
  • Strong adversary posture: designs must remain defensible against compromised موقف الخصم القوي: يجب أن تظل التصاميم قابلة للدفاع ضد الداخلين المخترقين والمشغلين القادرين على مستوى الدول.

غير الأهداف / خارج النطاق

  • ضمانات السرية بعد الكشف عن الأدلة للأنظمة السفلية.
  • الدفاع ضد اختراق كامل للنظام/النواة دون الحاجة إلى تحكمات خارجية على المنصة.
  • Key custody/HSM/remote attestation infrastructure (beyond current local key بنية حراسة المفاتيح/HSM/التحقق عن بُعد (تتجاوز استخدام المفاتيح المحلية الحالية).
  • Built-in transport security for remote deployment wrappers (mTLS/authn/authz أمان النقل المدمج لتغليفات النشر عن بُعد (المسؤوليات المتعلقة بالنشر اليوم تشمل mTLS/authn/authz).
  • Non-repudiation signing of bundle archives at rest (external signing/WORM is التوقيع غير القابل للإنكار لأرشيفات الحزم في حالة السكون (يتطلب التوقيع الخارجي/WORM).

الأصول

  • Unsealed and sealed envelope data (event type, actor, environment, payload, بيانات الظرف المفتوح والمغلق (نوع الحدث، الفاعل، البيئة، الحمولة، الوقت، معرفات الترابط).
  • Envelope integrity material (content_hash, chain_hash, sequence position, مادة سلامة الظرف (content_hash, chain_hash, موقع التسلسل، ربط القطع).
  • بيانات المقطع (SegmentGenesis، ارتباطات الأسلاف، سجلات الختم).
  • بايتات المرفقات وهاش المحتوى.
  • محتويات الحزمة (المقاطع، الأظرف، المرفقات، نقاط إثبات).
  • بيانات التحقق، وأدلة الحكم، وأدلة نصوص المدقق.
  • Recorder runtime configuration (recorder_id, schema version, auto-seal, تكوين وقت تشغيل المسجل (recorder_id، إصدار المخطط، الإغلاق التلقائي، عمق التحقق عند بدء التشغيل).
  • ملف تخزين SQLite وحالة الذاكرة.
  • مواد مفتاح التوقيع ومعرفات المفاتيح المشتقة عند تكوين الموقّعين.
  • Persisted signer-rotation state (store_meta keys for current key, epoch, حالة تدوير الموقّع المستمرة (store_meta مفاتيح للمفتاح الحالي، العصر، وعلامة آخر حدث تدوير).
  • Generated contract artifacts under Docs/generated/recorder/** and manifest authority Docs/generated/recorder/index.json, including sidecar API artifacts (Docs/generated/recorder/apis/sidecar.*), sidecar config artifacts (Docs/generated/recorder/config/sidecar.*), and SDK projection artifacts (Docs/generated/recorder/sdk/*).
  • Performance policy artifacts (target/perf-matrix/latest.json, target/perf/v2/*.json, target/perf/triage/latest.md, system-tests/perf_baselines/*.json) وبيانات التعريف الخاصة بالعداء.
  • CLI artifacts (selector JSON, payload JSON, attachment file/inline payloads, Decision Gate fixture JSON, OTel fixture JSON, config JSON, bundle JSON, تحقق من نص JSON الخاص بالتحقق، والتحقق من مخرجات JSON الخاصة بالضمان).
  • Container deployment artifacts and runtime mounts (Dockerfile image outputs, compose/env definitions, mounted sidecar config/data/run paths, Docker secret مسارات مصدر الرمز، ومسارات هدف tmpfs للرمز).

نموذج الخصم

  • خصوم الدول-الأمة مع رؤية كاملة للشيفرة واستمرارية طويلة الأمد.
  • محولات/عملاء غير موثوق بهم يقدمون مظروفات أو مرفقات خبيثة.
  • المتسللون المساومون الذين لديهم حق الوصول للكتابة إلى التكوين، أو الملفات التنفيذية، أو التخزين.
  • Attackers tampering with on-disk SQLite data, bundle files, or exported المهاجمون يتلاعبون ببيانات SQLite المخزنة على القرص، أو ملفات الحزمة، أو العناصر المصدرة.
  • Attackers attempting replay, chain forking, payload mutation, or attachment المهاجمون الذين يحاولون إعادة التشغيل، أو تفرع السلسلة، أو تغيير الحمولة، أو استبدال المرفقات.
  • المهاجمون يتسببون في استنفاد الموارد من خلال مدخلات كبيرة الحجم أو مكلفة.
  • Malicious integrators exposing Recorder via remote transports without sufficient ضوابط الوصول.

حدود الثقة

  • حدود استهلاك المحول: UnsealedEnvelope وبيانات المرفقات غير موثوقة.
  • حدود CLI/المشغل: جميع قيم سطر الأوامر وملفات JSON غير موثوقة.
  • حدود تكوين وقت التشغيل: محتويات ملف التكوين ومسار التخزين غير موثوق بها.
  • Sidecar HTTP boundary: request line, headers, auth token, JSON body, and حدود HTTP في Sidecar: سطر الطلب، الرؤوس، رمز المصادقة، جسم JSON، وبيانات النقل غير موثوقة.
  • Sidecar enterprise bridge boundary: enterprise control-plane admission and استدعاءات الخطاف هي تبعيات شبكة غير موثوقة ويجب أن تفشل بشكل مغلق.
  • حدود التخزين: الصفوف/الكتل المستمرة غير موثوقة عند القراءة.
  • حدود الحزمة: حزمة JSON المستوردة غير موثوقة قبل التحقق.
  • Evidence provider boundary: consumer calls to list/fetch/verify/query are حدود مزود الأدلة: مكالمات المستهلك لقائمة/استرجاع/التحقق/الاستعلام هي طلبات غير موثوقة.
  • Rust SDK facade boundary: builder/runtime inputs (recorder_id, adapter metadata, storage path, trust root, signer/trust policy) are untrusted and يجب الحفاظ على سلوك الفشل المغلق للمسجل/المزود.
  • Python SDK boundary: sidecar endpoint/base URL, auth token, idempotency headers, retry/backoff policy inputs, request models, query parameters, and HTTP response payloads are untrusted and must fail closed on contract drift, أكواد أخطاء غير معروفة، أو عدم تطابق في المخطط.
  • Decision Gate adapter boundary: Decision Gate transcript/runpack fixture حدود موصل Decision Gate: حمولات نص/تشغيل Decision Gate غير موثوقة ويجب أن تمر بفحوصات التعيين/السلامة قبل الاستيعاب.
  • OTel adapter boundary: OpenTelemetry JSON export payloads are untrusted and must pass strict record-shape, identifier, timestamp, and bounded/redacted التحقق من الخرائط قبل الاستيعاب.
  • Signing boundary: signer/verifier integrations and key management are external حدود التوقيع: تكاملات الموقّع/المتحقق وإدارة المفاتيح هي تبعيات ثقة خارجية.
  • Contract generation boundary: generated projection artifacts are untrusted حدود توليد العقد: تعتبر القطع الأثرية الناتجة غير موثوقة حتى يتم التحقق من تجزئتها مقابل بيان الفهرس القياسي.
  • Performance harness boundary: runner-class labels, workload knobs, and perf artifacts are untrusted until lane identity (regression/capacity), تم التحقق من بيانات عبء العمل، وعمليات التحقق من سياسة العداء المثبت.
  • External wrapper boundary: any network-facing bridge is outside this repo and حدود الغلاف الخارجي: أي جسر يواجه الشبكة هو خارج هذا المستودع ويجب أن يفرض الحماية من المصادقة والتفويض وحماية النقل.
  • Container-orchestration boundary: compose/env/runtime mount definitions, Docker secret source paths, tmpfs token-target paths, and host filesystem ownership/permission models are untrusted deployment inputs and must satisfy قيود تقوية تكوين/رمز الجانبي.

نقاط الدخول وسطح الهجوم

  • CLI commands: recorder segment open|seal|status|list, recorder signer rotate, recorder envelope record|record-with-attachments, query envelopes, bundle build|verify|inspect, assurance startup|trust-root|gates, contract generate|check, decision-gate ingest-fixture, otel ingest-fixture, config validate, طبيب.
  • Sidecar commands: recorder-sidecar --config <path>, recorder-sidecar healthcheck --url <url>, recorder-sidecar healthcheck --unix-socket <path> --path <path>.
  • Sidecar HTTP routes: GET /health, GET /startup, GET /ready, GET /v1/segments, GET /v1/segments/active, POST /v1/envelopes, POST /v1/envelopes/with-attachments, POST /v1/query/envelopes, POST /v1/bundles/build|verify|inspect, POST /v1/ingest/otel, GET /v1/config.
  • File inputs: runtime config JSON/TOML, payload JSON/file, attachment file/inline base64, مدخلات الملفات: تكوين وقت التشغيل JSON/TOML، حمولة JSON/ملف، ملف مرفق/قاعدة 64 مشفرة مضمنة، JSON لقرار البوابة، JSON للمحدد، JSON للحزمة.
  • Container deployment inputs: docker/sidecar/Dockerfile, docker/sidecar/docker-compose.yml, docker/sidecar/.env, mounted sidecar.toml, Docker secret token source ملف، دليل الهدف لرمز tmpfs، والدلائل المرتبطة بالبيانات /run.
  • Library APIs: RecorderBuilder::build, Recorder::record|record_with_attachments, Recorder::build_bundle|verify_bundle, Recorder::list_bundles|fetch_bundle|query_envelopes, RecorderAdapter::emit_envelope, RecorderAdapter::emit_with_attachments, DecisionGateAdapter::ingest_fixture, RecorderEngine::open_segment|record_envelope|seal_segment, EvidenceProvider::list_bundles|fetch_bundle|verify_bundle|query_envelopes.
  • Storage entry points: SQLite DB creation/open, SQL row materialization, attachment fetch, genesis نقاط دخول التخزين: إنشاء/فتح قاعدة بيانات SQLite، تجسيد صف SQL، جلب المرفقات، فك تشفير الجينيس.
  • Bundle verification pipeline: manifest validation, attachment hash checks, content/chain checks, خط أنابيب التحقق من الحزمة: التحقق من صحة البيان، فحوصات تجزئة المرفقات، فحوصات المحتوى/السلسلة، فحوصات عبر القطاعات، مرحلة التوقيع.

ضوابط الأمان والثوابت

  • ترميز JCS القياسي لمدخلات التجزئة الحتمية (serde_jcs).
  • صيغة تجزئة محتوى الظرف وصيغة تجزئة السلسلة واضحة وثابتة.
  • يولد الجزء الأساسي سلسلة حسابات الظرف الأول.
  • تستخدم المساواة في التجزئة مقارنة في وقت ثابت في مسارات core/verifier/store.
  • طبقة المحول/التحقق تفرض فحوصات الفشل المغلق قبل التسجيل.
  • Envelope builder enforces required fields, UTC times, deterministic attachment يقوم منشئ الظرف بفرض الحقول المطلوبة، وأوقات UTC، وترتيب مرجع المرفقات المحدد.
  • Envelope attachment and segment-genesis constructors reject empty, blank, and ترفض مُنشئات إرفاق الحاويات وبناء القطاعات المدخلات الفارغة، والبيضاء، والتي تحتوي على أحرف تحكم content_type و recorder_id.
  • Recorder config validation fail-closes malformed recorder_id values at فشل التحقق من تكوين المسجل - يغلق القيم غير الصحيحة لـ recorder_id عند بدء تشغيل المحرك (يتطلب شكل هوية متوافق مع ActorId).
  • Core identity constructors reject blank/whitespace-only and control-character string inputs; key_id is enforced as exact lowercase ترفض مُنشئات الهوية الأساسية المدخلات الفارغة/التي تحتوي فقط على مسافات البيضاء وأحرف التحكم؛ يتم فرض key_id كتنسيق دقيق بحروف صغيرة تمامًا على شكل hex(SHA-256(public_key_bytes)) (64 حرفًا).
  • Core identity constructors enforce explicit max lengths: trace_id/session_id/actor_id/environment_id <= 256 chars, تفرض مُنشئات الهوية الأساسية أطوالًا قصوى صريحة: trace_id/session_id/actor_id/environment_id <= 256 chars, event_type/adapter_id <= 128 chars.
  • String-backed identity serde paths are constructor-validated; hostile JSON مسارات التعريف المدعومة بسلاسل يتم التحقق منها عند الإنشاء؛ لا يمكن لـ JSON العدائي تجاوز ثوابت المعرف عند حدود إلغاء التسلسل.
  • يفرض تخزين الإلحاق ثوابت الفقرة المفتوحة واستمرارية السلسلة.
  • Store segment creation enforces single-open-segment and duplicate-segment-ID يفرض إنشاء مقطع التخزين فحوصات فشل مغلقة لـ segment واحد مفتوح و duplicate-segment-ID.
  • Store active-segment lookup fail-closes on corrupted persisted state with أقسام مفتوحة متعددة بدلاً من اختيار صف عشوائي.
  • Store query/existence paths fail closed on storage-layer query errors instead مسارات استعلام/وجود التخزين تفشل في الإغلاق عند حدوث أخطاء في استعلام طبقة التخزين بدلاً من الافتراض إلى نتائج وجود مرنة.
  • مسار إضافة SQLite محصور في نطاق المعاملات لتحديثات البيانات/البيانات الذرية.
  • SQLite يتيح WAL والمفاتيح الخارجية أثناء تهيئة المخطط.
  • Bundle builder uses deterministic ordering (BTreeMap/BTreeSet) and tracks يستخدم منشئ الحزم ترتيبًا حتميًا (BTreeMap/BTreeSet) ويتتبع الآباء/مرتكزات الإثبات التي تم حذفها.
  • Verifier executes 7 phases with trust-root-aware signature verification; it يقوم المدقق بتنفيذ 7 مراحل مع التحقق من التوقيع المدرك لجذر الثقة؛ حيث يقوم بتحديد تخطي التوقيع فقط عندما لا يكون هناك جذر ثقة مُكون.
  • Verifier phase 1 fail-closes on manifest structural tampering (segment entry mismatches and attachment-manifest mismatches), not only version/algorithm مرحلة التحقق 1 تغلق تلقائيًا عند اكتشاف تلاعب هيكلي في البيان (عدم تطابق مدخلات القطاعات وعدم تطابق البيانات المرفقة)، وليس فقط عدم تطابق النسخة/الخوارزمية.
  • Verifier enforces bounded-work policy before phase execution: max segments 4096, max envelopes per segment 100000, max envelopes total 200000, max attachments total 200000, عدد مراجع المرفقات لكل ظرف 4096.
  • Recorder startup verification re-checks active segment read-back integrity for تحقق من بدء التسجيل يعيد التحقق من سلامة قراءة الجزء النشط للنوافذ المحددة (startup_verification_depth).
  • Evidence provider enforces stable bundle IDs and true fetch-by-ID semantics يفرض مزود الأدلة معرفات حزم مستقرة ودلالات صحيحة لجلب بواسطة المعرف للقطاعات المغلقة.
  • Evidence provider enforces bounded query/materialization policy: max list_bundles and query_envelopes limit 10000, يفرض مزود الأدلة سياسة استعلام/تجسيد محدودة: الحد الأقصى لـ list_bundles و query_envelopes هو 10000, الحد الأقصى لتجسيد مظروف لكل شريحة هو 200000.
  • CLI enforces bounded file-read limits: config 1 MiB, payload 4 MiB, selector 1 MiB, bundle 32 MiB, trust root 1 MiB, attachment file/inline payload 16 MiB, Decision Gate fixture 8 MiB, signer يفرض CLI حدود قراءة الملفات المحدودة: config 1 MiB، payload 4 MiB، selector 1 MiB، bundle 32 MiB، trust root 1 MiB، attachment file/inline payload 16 MiB، Decision Gate fixture 8 MiB، signer key 64 KiB، signer passphrase material 1 KiB.
  • CLI query enforces bounded page policy: default page size 1000, max page size 10000, and deterministic تفرض استعلامات CLI سياسة الصفحة المحدودة: حجم الصفحة الافتراضي 1000، الحد الأقصى لحجم الصفحة 10000، وعقد الاستمرار القائم على المؤشر المحدد في وضع JSON.
  • CLI i18n catalogs are build-validated fail closed: locale tag uniqueness, required en default locale, mandatory locale provenance (machine or human_reviewed), exact message-key parity against English, and exact placeholder-set parity for every key across enabled المحليات.
  • CLI localization rendering is strict and fail-closed: generated typed key/macro access prevents unknown message keys at compile time, and runtime rendering rejects placeholder-set mismatch and unresolved نصوص بديلة بدون تراجع صامت إلى معرفات المفاتيح أو الإنجليزية.
  • CLI locale provenance policy is explicit: machine-provenance locales emit deterministic operator notice, while JSON تظل حمولات الإخراج محايدة محليًا عبر اختيار المواقع.
  • CLI runtime resolution validates recorder_id using ActorId constructor semantics before command execution, including config validate parity with تحقق وقت تشغيل CLI من صحة recorder_id باستخدام دلالات منشئ ActorId قبل تنفيذ الأمر، بما في ذلك توازن config validate مع سلوك التحقق من تكوين المسجل.
  • CLI signer loading is profile-aware (secure default) and fail-closed on encrypted-key requirements, malformed key material, insecure opt-down misuse, وعدم تطابق المفتاح والحالة في الوضع الآمن.
  • Explicit key-rotation workflow emits deterministic lifecycle events (system.adapter.key_rotated / break-glass variant) and persists idempotence علامات في بيانات التعريف SQLite.
  • Contract generation emits deterministic projection artifacts with توليد العقود يصدر آثار إسقاط حتمية مع سلطة تجزئة البيان ووضع تحقق انحراف صارم.
  • Contract generation/check fail closed on unsafe output-root filesystem entries, including symlinked roots, hard-linked artifact files, or symlink التنقل تحت شجرة المخرجات.
  • Contract schema generation applies explicit runtime constraint overlays for identifier/text/hash/signature fields (including full BundleSelector variant algebra) and fails closed if expected schema pointer paths are مفقود.
  • Contract generation now emits sidecar API artifacts (sidecar.openapi/errors/enums/examples/compat) and generated manifest توليد العقود الآن يصدر مكونات واجهة برمجة التطبيقات الجانبية (sidecar.openapi/errors/enums/examples/compat) و تشمل السلطة المولدة للبيان تلك المسارات.
  • Contract generation now emits SDK projection artifacts (sdk/types.json, sdk/methods.json, sdk/test_vectors.json, sdk/manifest.json) and drift-check mode fail-closes on SDK artifact عدم تطابق.
  • Rust SDK builder/facade wiring fail-closes invalid identity/config/store مدخلات مع الحفاظ على حتمية المسجل/المزود وحدود العمل المحدودة.
  • Python SDK request/response wiring fail-closes invalid input/query parameter values, unknown problem codes, unexpected content types, and response schema drift against generated SDK projection artifacts while preserving sidecar دلالات عدم التغير عبر محاولات إعادة التشغيل.
  • Sidecar compatibility gates fail closed in CI by validating current pre-release-break /v1 policy, enum-wire stability, error-code registry stability, and تنفيذ عقد عدم التغير لنقطة النهاية المتغيرة من القطع الأثرية المولدة.
  • Sidecar perf policy gates split regression (sidecar_perf) and capacity (sidecar_capacity) lanes with explicit lane identity/workload metadata in artifacts to prevent fixed-workload regression signals from being misread as نتائج الحد الأقصى من الإنتاجية.
  • Pinned-runner capacity enforcement fails closed when required sidecar_capacity artifacts are missing, and capacity floors (max_sustainable_rps) are anti-sandbagging protected by threshold policy شيكات.
  • Sidecar config validation fail-closes invalid protocol/security settings (schema/API version, transport host/port, non-loopback token requirement, signer key parseability, hard header-size cap, and numeric limit bounds) قبل ربط المستمعين.
  • Sidecar config file and secret-material loading enforce bounded hostile-input file sizes and fail closed on oversize input: config <= 1 MiB, token/control-plane-token files <= 4096 bytes, ملف مفتاح الموقّع <= 65536 بايت.
  • Sidecar token/control-plane-token file opening uses fail-closed descriptor-bound semantics:
    • يونكس: عدم المتابعة المفتوحة (O_NOFOLLOW) بالإضافة إلى فحوصات الملفات العادية والوضع.
    • Windows: reparse-point-safe open (FILE_FLAG_OPEN_REPARSE_POINT) plus رفض نقطة إعادة التحليل ذات المقبض المفتوح.
    • Other targets: fail-closed unsupported-platform rejection for secret-token تحميل الملف.
  • Sidecar middleware stack enforces server/client correlation ID handling (x-server-correlation-id, x-correlation-id, legacy x-request-id), strict fail-closed media-type parsing (exact application/json with optional charset=utf-8) and strict JSON-only Accept parsing, aggregate header byte bounds, declared content-length bounds, bounded queue admission and in-flight التزامن، وسلوك الفشل المغلق عند انتهاء مهلة الطلب.
  • Sidecar request media-type policy is centralized in recorder-sidecar-config and projected into generated sidecar API compatibility تسمح قوائم السماح لنوع الوسائط للتشغيل والعقد بعدم الانحراف.
  • Sidecar token auth compares bearer tokens in constant time and bypasses auth only for explicit probe routes (/health, /startup, /ready) or open مصادقة رمز Sidecar تقارن رموز الحامل في وقت ثابت وتتجاوز المصادقة فقط للطرق الاستكشافية الصريحة (/health, /startup, /ready) أو وضع open.
  • Sidecar probe/readiness controls are explicit and fail closed: /health remains lightweight process liveness, /startup reports startup completion state, and /ready can enforce storage-only or storage+enterprise dependency readiness (probes.readiness_mode) with optional capacity-exhaustion تحكمات الاستعداد/التحقق من جانب السيارة واضحة وتفشل بشكل مغلق: /health تبقى عملية خفيفة للتحقق من الحياة، /startup تبلغ عن حالة اكتمال بدء التشغيل، و /ready يمكن أن تفرض الاستعداد للاعتماد على التخزين فقط أو التخزين + الاعتماد المؤسسي (probes.readiness_mode) مع سلوك الفشل المغلق الاختياري عند استنفاد السعة (probes.ready_fail_on_admission_saturation).
  • Sidecar bounds middleware explicitly bypasses probe routes so orchestrator liveness/startup/readiness signals are observable even under admission يتجاوز برنامج الوسيط لحدود Sidecar بشكل صريح مسارات الاستقصاء، بحيث تكون إشارات النشاط/البدء/الجاهزية الخاصة بالمنظم قابلة للرصد حتى في ظل تشبع القبول واستنفاد الطلبات النشطة.
  • Sidecar auth failures emit RFC 6750 WWW-Authenticate challenge metadata and فشل مصادقة Sidecar يصدر بيانات التعريف الخاصة بتحدي WWW-Authenticate وفقًا لـ RFC 6750، وتستخدم أخطاء Sidecar تفاصيل المشكلة وفقًا لـ RFC 9457 (application/problem+json).
  • Sidecar container packaging defaults to distroless nonroot runtime and compose profiles that require explicit UID/GID mapping, Docker secret token source inputs, and bootstrap materialization of hardened token files into مسارات وقت التشغيل tmpfs قبل بدء تشغيل sidecar.
  • Sidecar mutating operations enforce persistent idempotency replay/conflict semantics with stream-scoped persistent retention (idempotency_entries) ونطاق تجزئة طلبات الهاش الحتمية.
  • Sidecar mutating envelope operations enforce explicit stream identity inputs (tenant_id, recorder_id) ورفض عدم تطابق المسجلين يفشل بشكل مغلق.
  • SQLite operation dispatch uses bounded queueing (sync_channel) with تستخدم عملية إرسال SQLite قائمة انتظار محدودة (sync_channel) مع رفض مغلق حتمي عند امتلاء سعة القائمة (4096).
  • Verifier transcript emission is deterministic and schema-versioned; bundle verification can export transcript JSON for machine-auditable evidence حزم.
  • CLI assurance checks provide explicit fail-closed deployment assertions for startup-verification depth, trust-root mode parsing, and contract gate تنفيذ.
  • System tests validate tamper detection and fail-closed oversized-input تختبر أنظمة الاختبار الكشف عن التلاعب وسلوك الفشل المغلق عند إدخال بيانات كبيرة.
  • System tests validate external adapter-ingest coupling using OpenClaw mock event streams, including signed/unsigned verification and sequence-gap strict تختبر أنظمة الاختبار التحقق من اقتران جهاز التكيف الخارجي باستخدام تدفقات أحداث OpenClaw الوهمية، بما في ذلك التحقق من التوقيع/عدم التوقيع وسياسات الفشل المغلقة الصارمة مقابل تسجيل الشذوذ.
  • OpenClaw integration mapping applies deterministic sensitive-field redaction and bounded payload handling (string and JSON size limits) before immutable تطبيق تخطيط تكامل OpenClaw يطبق حذف الحقول الحساسة بشكل حتمي ومعالجة الحمولة المحدودة (حدود حجم السلسلة و JSON) قبل تسجيل الأدلة غير القابلة للتغيير.
  • System tests validate external control-plane coupling using Decision Gate MCP runpack flow fixtures, including signed/unsigned verification and runpack integrity strict fail-closed vs anomaly-recording policies, including تختبر أنظمة الاختبار التحقق من ارتباط وحدة التحكم الخارجية باستخدام Decision Gate MCP تثبيت تدفق runpack، بما في ذلك التحقق من التوقيع/عدم التوقيع وسلامة runpack مع سياسات الفشل الصارم المغلق مقابل تسجيل الشذوذ، بما في ذلك إعادة حساب سلامة البيان الذاتي من تجزئات الملفات المعلنة.
  • System tests validate sidecar subprocess lifecycle over real HTTP and fail-closed idempotency replay/conflict persistence across restart تختبر أنظمة الاختبار دورة حياة العمليات الفرعية الجانبية عبر HTTP حقيقي وتحقق من استمرارية إعادة التشغيل/التعارض الفاشل المغلق عبر حدود إعادة التشغيل.
  • Decision Gate integration mapping applies deterministic transcript-field redaction and bounded payload handling (string and JSON size limits) before تطبيق تخطيط تكامل Decision Gate يتضمن حذف حقول النص بشكل حتمي ومعالجة الحمولة المحدودة (حدود حجم string و JSON) قبل تسجيل الأدلة غير القابلة للتغيير.
  • Production recorder-decision-gate-adapter enforces mapping-contract version checks, deterministic event IDs/timestamps, transcript redaction, bounded بيانات الحمولة، ومعالجة سلامة تشغيل strict-vs-anomaly.
  • Production recorder-otel-adapter enforces deterministic OTel span/log mapping (otel.span, otel.log.<severity>), strict identifier/timestamp parsing, اشتقاق معرف حتمي، وإسقاط حمولة محدودة/مخفية.

معروفة الثغرات الأمنية الحالية ذات الصلة:

  • Sidecar does not include built-in TLS/mTLS; non-loopback deployments should لا تتضمن Sidecar TLS/mTLS مدمجة؛ يجب على النشر غير الدائري إنهاء TLS وفرض هوية العميل في واجهة أمامية/بوابة محصنة.
  • Sidecar provides bounded local admission controls but not distributed/global rate limiting; deployment platforms still need caller quotas and abuse يوفر Sidecar ضوابط قبول محلية محدودة ولكن لا يوفر تحديد معدل موزع/عالمي؛ لا تزال منصات النشر بحاجة إلى حصص للمتصلين وضوابط للاستخدام غير السليم.

التهديدات والتخفيفات

المصادقة، التفويض، والتحكم في الوصول

  • Threat: unauthorized local or remote invocation of recording/query/bundle التهديد: استدعاء غير مصرح به محليًا أو عن بُعد لمسارات التسجيل/الاستعلام/الحزمة.
  • Mitigation: sidecar supports explicit token mode with constant-time bearer token checks, RFC 6750 WWW-Authenticate challenge responses, and fail-closed التخفيف: يدعم sidecar وضع الرمز الصريح مع فحوصات رموز الحامل في وقت ثابت، واستجابات تحدي WWW-Authenticate وفقًا لمعيار RFC 6750، ومعالجة أخطاء تكوين المصادقة المغلقة؛ تظل واجهة سطر الأوامر عملية محلية.
  • Residual risk: open sidecar mode is deployment-sensitive and should only be used in trusted local IPC environments; non-loopback network deployments المخاطر المتبقية: وضع open sidecar حساس للنشر ويجب استخدامه فقط في بيئات IPC المحلية الموثوقة؛ تتطلب عمليات النشر عبر الشبكة غير المتكررة أيضًا هوية طبقة البوابة وضوابط النقل.

تحقق من صحة الإدخال وتحليله

  • Threat: malformed IDs, non-UTC times, invalid event types, malformed JSON, التهديد: معرفات مشوهة، أوقات غير UTC، أنواع أحداث غير صالحة، JSON مشوه، أو حمولة غامضة.
  • Mitigation: typed ID constructors, UTC enforcement, strict event-type validation, strict key-id hex shape validation, fail-closed envelope validation, strict attachment/segment text-field validation (content_type, recorder_id), strict recorder config recorder_id validation, typed JSON تحليل.
  • Mitigation: bounded file reads prevent oversized JSON ingestion at CLI التخفيف: تمنع قراءات الملفات المحدودة استيعاب JSON بحجم كبير عند حدود CLI، بما في ذلك مدخلات trust-root و signer-key.

سلامة الأدلة وموثوقيتها

  • Threat: payload mutation, chain forking, attachment substitution, or replayed التهديد: تغيير الحمولة، تفرع السلسلة، استبدال المرفقات، أو الأظرف المعاد تشغيلها.
  • Mitigation: canonical-hash content addressing + chain continuity checks at التخفيف: محتوى canonical-hash الذي يتناول التحقق من سلامة السلسلة بالإضافة إلى فحوصات استمرارية السلسلة في وقت الإضافة والتحقق.
  • Mitigation: verifier phase 1 enforces structural manifest integrity against التخفيف: مرحلة التحقق 1 تفرض سلامة الهيكلية للبيان ضد تجسيد جزء الحزمة والمواد المرفقة.
  • Mitigation: strict Ed25519 verification and trust-root policy enforcement are التخفيف: يتم تضمين التحقق الصارم من Ed25519 وفرض سياسة جذر الثقة في مرحلة التحقق 6.
  • Mitigation: secure-profile signer loading requires encrypted PKCS#8 key التخفيف: يتطلب تحميل الموقّع secure-profile مفتاح PKCS#8 مشفّر بشكل افتراضي وخيار صريح للتقليل من الأمان لتسهيل تجربة المطورين.
  • Mitigation: explicit key-rotation events and persisted idempotence markers التخفيف: أحداث تدوير المفاتيح الصريحة وعلامات الاستمرارية المحفوظة تحافظ على استمرارية سلسلة التوقيع ومصالحة استعادة النظام بعد التعطل.
  • Residual risk: authenticity remains configuration-dependent when operators المخاطر المتبقية: تظل الأصالة معتمدة على التكوين عندما يختار المشغلون التحقق بدون جذر ثقة (تحذير صريح تم إصداره).

كشف البيانات وتعريضها

  • التهديد: الكشف العرضي المفرط من خلال تصدير الحزم ونتائج الاستعلام.
  • التخفيف: أوامر تصدير/استعلام مدفوعة من قبل المشغل بشكل صريح ومرشحات محددة النوع.
  • Residual risk: no built-in field-level redaction policy in Recorder core; wrapper يجب على الطبقات فرض سياسة الإفصاح.

سلامة التخزين والحزمة

  • التهديد: التلاعب بقاعدة البيانات/الملفات، الفساد، أو الكتابات الجزئية.
  • Mitigation: SQLite WAL, transactional append, chain validation, corruption التخفيف: SQLite WAL، الإلحاق المعاملاتي، التحقق من السلسلة، اكتشاف الفساد عند تحليل الصفوف المخزنة غير الصالحة.
  • Mitigation: bundle verification recomputes attachment/content/chain links and التخفيف: إعادة حساب التحقق من الحزمة تعيد حساب روابط المرفقات/المحتوى/السلسلة وتعلم عن فشل السلامة.
  • Residual risk: bundle archives are not signed by default; use external المخاطر المتبقية: أرشيفات الحزم غير موقعة بشكل افتراضي؛ استخدم توقيعًا خارجيًا وضوابط تخزين غير قابلة للتغيير لضمان عدم الإنكار.

توافر واستنفاد الموارد

  • Threat: oversized config/payload/selector/bundle inputs and expensive التهديد: إدخالات config/payload/selector/bundle كبيرة الحجم وأعباء التحقق المكلفة.
  • التخفيف: حدود صارمة على قراءة الملفات من واجهة سطر الأوامر؛ رفض مغلق قبل التحليل.
  • التخفيف: أخطاء مطبوعة ورفض مبكر على محددات/مرشحات غير صالحة.
  • Mitigation: recorder verifier/provider APIs enforce bounded-work limits and التخفيف: واجهات برمجة التطبيقات لمحقق/مزود التسجيل تفرض حدود عمل محدودة وتفشل بشكل مغلق عند تحميلات الذاكرة الكبيرة.
  • Mitigation: sidecar middleware enforces bounded header/body/content-length التخفيف: يقوم برنامج الوسيط الجانبي بفرض حدود على رأس الرسالة/الجسم/طول المحتوى، ووجود طابور محدود + تزامن نشط، وسلوك فشل مغلق عند انتهاء المهلة.
  • Mitigation: SQLite operation dispatch is bounded; enqueue saturation fails التخفيف: عملية إرسال SQLite محدودة؛ فشل تشبع قائمة الانتظار مغلق بدلاً من السماح بنمو الذاكرة غير المحدود.
  • Residual risk: no distributed/global rate limiter exists for sidecar or wrapper-exposed deployments; operators still need caller quotas and abuse التحكمات.

بيئة سلسلة التوريد والتنفيذ

  • Threat: compromised binaries/config/runtime host or malicious dependency التهديد: ثغرات في الملفات التنفيذية/التكوين/المضيف أو سلوك الاعتماد الخبيث.
  • Mitigation: strict lint/no-panic posture, typed errors, deterministic التخفيف: موقف صارم من lint/no-panic، أخطاء محددة، عقود حتمية، وحدود معمارية واضحة.
  • Residual risk: host compromise and dependency compromise require external المخاطر المتبقية: تتطلب اختراق المضيف واختراق الاعتماد ضوابط خارجية (SBOM/تدقيق/توقيع/تقوية).

تعدد المستأجرين والعزل

  • التهديد: تعرض بيانات متعددة المستأجرين في النشر المشترك.
  • التخفيف: معرفات المسجل هي تسميات؛ لا توجد ادعاءات ضمنية لعزل المستأجرين.
  • Residual risk: shared deployments must enforce tenant-aware storage, المخاطر المتبقية: يجب أن تفرض النشر المشترك تخزينًا واعيًا للمستأجر، وتشفيرًا، والتحكم في الوصول على مستويات التغليف/النشر.

قابلية التدقيق والمراقبة

  • التهديد: عدم القدرة على إثبات ما حدث بعد الاشتباه في التلاعب.
  • Mitigation: append-only segment model, deterministic hashes, bundle manifests, التخفيف: نموذج مقطع قابل للإضافة فقط، تجزئة حتمية، بيانات حزمة، مدقق غير متصل، واختبارات نظام تركز على العناصر.
  • Residual risk: comprehensive security audit logging for remote auth decisions المخاطر المتبقية: تسجيل تدقيق أمني شامل لقرارات المصادقة عن بُعد يعتمد على الغلاف.

مراجع التنفيذ (التحكمات والحمايات)

سلامة النواة والغلاف

  • Canonical encoding and hash formulas: crates/recorder-envelope/src/encoding.rs.
  • Hash types, algorithm registry, constant-time equality: crates/recorder-core/src/hash.rs.
  • Identity and input-shape validation contracts: crates/recorder-core/src/identity.rs، crates/recorder-core/src/filter.rs.
  • Signature contracts and key identity model: crates/recorder-core/src/signature.rs, crates/recorder-envelope/src/signer.rs, crates/recorder-envelope/src/signature.rs.
  • Envelope/segment invariants: crates/recorder-envelope/src/envelope.rs, crates/recorder-envelope/src/segment.rs, crates/recorder-envelope/src/attachment.rs.

وقت تشغيل المسجل والتحقق

  • Recorder lifecycle, chain progression, seal behavior: crates/recorder/src/engine.rs.
  • Auto-seal policy validation: crates/recorder/src/config.rs.
  • Adapter boundary validation: crates/recorder/src/validation.rs, crates/recorder/src/local_adapter.rs.
  • Deterministic bundle assembly and proof anchors: crates/recorder/src/bundle_builder.rs.
  • 7-phase verification pipeline and warning model: crates/recorder/src/verifier.rs.
  • Evidence provider boundary behavior: crates/recorder/src/evidence_provider.rs.

واجهة SDK

  • Rust SDK facade composition and deterministic builder defaults: crates/recorder-sdk/src/builder.rs، crates/recorder-sdk/src/lib.rs.
  • SDK prelude and stable consumer import boundary: crates/recorder-sdk/src/prelude.rs.
  • SDK facade conformance tests: crates/recorder-sdk/tests/test_builder.rs, crates/recorder-sdk/tests/test_facade.rs.
  • Python SDK contract projection generator and typed client surface: sdk/python/scripts/generate_contract.py, sdk/python/src/recorder_client/generated_contract.py, sdk/python/src/recorder_client/client.py, sdk/python/src/recorder_client/client_common.py, sdk/python/src/recorder_client/sync_client.py, sdk/python/src/recorder_client/async_client.py, sdk/python/src/recorder_client/models.py, sdk/python/src/recorder_client/errors.py.
  • Python SDK unit/system conformance tests: sdk/python/tests/test_contract_generated.py, sdk/python/tests/test_models.py, sdk/python/tests/test_errors.py, sdk/python/tests/test_client_unit.py, sdk/python/tests/test_client_system.py.

محولات التكامل

  • Decision Gate adapter ingestion, deterministic mapping, and fail-closed integrity-policy enforcement: crates/recorder-decision-gate-adapter/src/adapter.rs.
  • Decision Gate mapping and redaction/bounds policy defaults: crates/recorder-decision-gate-adapter/src/policy.rs.
  • Decision Gate fixture input contract: crates/recorder-decision-gate-adapter/src/model.rs.
  • Decision Gate adapter typed error algebra: crates/recorder-decision-gate-adapter/src/error.rs.
  • OTel adapter ingestion, deterministic mapping, and strict-fail policy: crates/recorder-otel-adapter/src/adapter.rs.
  • OTel mapping and redaction/bounds policy defaults: crates/recorder-otel-adapter/src/policy.rs.
  • OTel JSON export input contract and adapter error algebra: crates/recorder-otel-adapter/src/model.rs, crates/recorder-otel-adapter/src/error.rs.

التخزين

  • Storage contracts and invariants: crates/recorder-store/src/traits.rs, crates/recorder-store/src/error.rs.
  • In-memory backend behavior: crates/recorder-store/src/memory.rs.
  • SQLite initialization, WAL, FK, connection thread model: crates/recorder-store/src/sqlite/schema.rs, crates/recorder-store/src/sqlite/connection.rs, crates/recorder-store/src/sqlite/mod.rs.
  • SQLite envelope/segment/attachment operations: crates/recorder-store/src/sqlite/envelope_ops.rs, crates/recorder-store/src/sqlite/segment_ops.rs, crates/recorder-store/src/sqlite/attachment_ops.rs.

واجهة سطر الأوامر وسطح التحقق

  • Command routing and runtime resolution: crates/recorder-cli/src/main.rs.
  • Input hard limits and bounded file reads: crates/recorder-cli/src/main.rs.
  • Localization and deterministic output behavior: crates/recorder-cli/build.rs, crates/recorder-cli/i18n/locales/en.toml, crates/recorder-cli/i18n/locales/ca.toml, crates/recorder-cli/src/i18n.rs.
  • Contract artifact generation and drift checks: crates/recorder-contract/src/lib.rs, crates/recorder-contract/src/sidecar_api.rs, crates/recorder-contract/src/sidecar_api/openapi.rs, crates/recorder-contract/src/sidecar_api/artifacts.rs, crates/recorder-contract/src/sidecar_api/specs/mod.rs, scripts/ci/generate_all.sh.
  • Sidecar contract compatibility and perf policy gates: scripts/ci/sidecar_contract_gates.py, scripts/ci/perf_matrix.py, scripts/ci/perf_gate.py, scripts/ci/perf_threshold_policy.py, scripts/perf/run.py, scripts/perf/update_baseline.py.

حدود خدمة Sidecar

  • Sidecar bootstrap/config and transport lifecycle: crates/recorder-sidecar-config/src/config.rs, crates/recorder-sidecar-config/src/validation.rs, crates/recorder-sidecar-config/src/validation/enterprise.rs, crates/recorder-sidecar/src/server.rs, crates/recorder-sidecar/src/shutdown.rs.
  • Sidecar auth and request-bound controls: crates/recorder-sidecar/src/middleware/auth.rs, crates/recorder-sidecar/src/middleware/bounds.rs, crates/recorder-sidecar/src/middleware/request_id.rs.
  • Sidecar single-writer ingest/idempotency and error contract: crates/recorder-sidecar/src/ingest.rs, crates/recorder-sidecar/src/idempotency.rs, crates/recorder-sidecar/src/error.rs, crates/recorder-sidecar/src/contract.rs.
  • Sidecar contract conformance integration tests: crates/recorder-sidecar/tests/error_registry_contract.rs, crates/recorder-sidecar/tests/idempotency_restart.rs.
  • Sidecar container packaging and operator profile: docker/sidecar/Dockerfile, docker/sidecar/docker-compose.yml, docker/sidecar/config/sidecar.toml, crates/recorder-sidecar/src/bin/docker_bootstrap.rs.

التحقق من النظام

  • Security/system tests: system-tests/tests/suites/security.rs, system-tests/tests/suites/bundle.rs, system-tests/tests/suites/persistence.rs, system-tests/tests/suites/recorder.rs, اختبارات الأمان/النظام: system-tests/tests/suites/security.rs, system-tests/tests/suites/bundle.rs, system-tests/tests/suites/persistence.rs, system-tests/tests/suites/recorder.rs, system-tests/tests/suites/sidecar.rs.
  • Docker packaging and compose-lifecycle validation: system-tests/tests/suites/sidecar_docker.rs, تعبئة Docker والتحقق من دورة حياة التكوين: system-tests/tests/suites/sidecar_docker.rs, system-tests/tests/helpers/docker.rs.
  • Registry-driven validation contract: عقد التحقق المدفوع بالسجل: system-tests/AGENTS.md, system-tests/test_registry.toml.

متطلبات التشغيل

  • Treat all deployments as hostile environments; assume compromised insiders and اعتبر جميع النشر كبيئات عدائية؛ افترض وجود متسللين مخترقين وأعداء قادرين على مستوى الدول.
  • Restrict filesystem access to store/config/bundle paths using least-privilege قيد الوصول إلى نظام الملفات لمسارات store/config/bundle باستخدام أقل الامتيازات OS ACLs.
  • Use signed releases, dependency auditing, and host hardening for production استخدم الإصدارات الموقعة، وتدقيق التبعيات، وتقوية المضيف لعقد الإنتاج.
  • If exposing Recorder sidecar or wrapper APIs over non-loopback networks, enforce مصادقة قوية / تفويض، إنهاء mTLS / TLS، وقوائم السماح للأوامر.
  • For containerized sidecar deployments, run non-root, provide token source via Docker secret input, materialize token files into tmpfs with owner-only mode (0600 on Unix) before sidecar startup, and map host UID/GID explicitly so تظل مسارات البيانات القابلة للكتابة / التشغيل حتمية.
  • احتفظ بحدود إدخال CLI مفعلة؛ شدد الحدود على مستوى الغلاف حيثما كان ذلك ممكنًا.
  • Do not treat unsigned bundles as non-repudiable artifacts; apply external لا تعالج الحزم غير الموقعة كأدلة غير قابلة للإنكار؛ طبق التوقيع الخارجي وضوابط الاحتفاظ غير القابلة للتغيير.
  • Segment tenants into isolated stores/processes unless explicit shared-tenancy قم بتقسيم المستأجرين إلى متاجر/عمليات معزولة ما لم يتم تنفيذ ضوابط مشاركة المستأجرين بشكل صريح.
  • Monitor verifier warnings (especially signature-skip and partial-segment راقب تحذيرات التحقق (خاصة تحذيرات تخطي التوقيع وتحذيرات الجزء الجزئي) كنتائج ذات أهمية سياسية.

وضع الفشل

  • الفشل مغلق عند المدخلات غير الصالحة أو الغامضة.
  • يتم رفض الإضافات التي تنتهك حالة الشريحة أو استمرارية السلسلة.
  • رفض تعريفات التكوين/التصفية/نطاق الوقت غير الصحيحة.
  • Mark tampered bundles as Invalid or fail verification with typed errors on قم بوسم الحزم المتلاعب بها على أنها غير صالحة أو فشل التحقق مع أخطاء مكتوبة على عدم تطابق البيان/البنية التحتية.
  • لا تفترض الثقة في الحالة المستمرة دون إعادة التحقق من النزاهة.

نموذج تهديد دلتا (2026-02-08، أساسيات OSS + Docker)

  • Initial Recorder repository threat model baseline added under Docs/security/threat_model.md.
  • Mapped trust boundaries, controls, and residual risks to concrete current تم رسم حدود الثقة، والضوابط، والمخاطر المتبقية إلى ملفات التنفيذ الحالية المحددة.
  • Closed signer/runtime wiring gap with profile-aware secure defaults, bounded تم سد فجوة التوقيع/التشغيل مع إعدادات افتراضية آمنة مدركة للملف الشخصي، وحدود مدخلات محدودة للتوقيع، ومعالجة المواد الرئيسية بطريقة تفشل في الإغلاق.
  • Added explicit signer-rotation workflow with deterministic lifecycle events تم إضافة سير عمل تدوير الموقّعين بشكل صريح مع أحداث دورة حياة حتمية وبيانات تعريفية مستمرة.
  • Added deterministic contract-generation boundary (recorder-contract) with تحكمات تجزئة البيان والسلطة وفحص الانجراف.
  • Hardened recorder-contract output-root handling to reject symlinked roots, hard-linked artifact files, and symlink traversal under generated artifact الأشجار في وضعي التوليد والتحقق.
  • Added first-party sidecar container deployment boundary: Dockerfile/Compose/config artifacts are now explicit attack surfaces and تمت إضافة حدود نشر حاويات sidecar من الطرف الأول: أصبحت ملفات Dockerfile/Compose/التكوين الآن أسطح هجوم واضحة وحدود ثقة للنشر.
  • Added system-test Docker coverage for sidecar packaging hardening and تمت إضافة تغطية اختبار النظام لـ Docker لتقوية حزمة sidecar والتحقق من دورة حياة Docker Compose (فتح/تسجيل/استعلام).
  • Closed tracked P1 system-test security-relevant coverage gaps for selector dedup, proof-anchor semantics, cross-segment mismatch fail-closed behavior, تم إغلاق الفجوات المتعلقة بالأمان في اختبار النظام P1 المتعقب المغلق للغطاء الخاص بـ selector dedup، ودلالات proof-anchor، وسلوك الفشل المغلق في حالة عدم التطابق عبر القطاعات، وسلوك الفشل المغلق في إغلاق المرفقات، وتوافق SQLite/في الذاكرة.
  • Hardened recorder-core identifier validation to reject whitespace-only and control-character string identifiers and require strict 64-char lowercase hex قيم key_id.
  • Hardened deserialize boundaries so constrained identifier and envelope text تم تعزيز حدود فك التسلسل بحيث لا يمكن إنشاء حقول المعرف المقيد ونص الظرف من حمولات serde دون إجراء فحوصات المُنشئ.
  • Hardened recorder config and verifier boundaries: recorder startup rejects malformed recorder_id values during config validation, phase-1 verification fail-closes on manifest structural mismatches, and verifier now يفرض حدودًا صريحة للعمل المحدود.
  • Hardened recorder evidence-provider library boundaries with explicit حدود الفشل المغلقة لعمليات العمل القائمة/الاستعلام/التجسيد.
  • Hardened recorder-store SQLite connection dispatch with bounded queue capacity و semantics رفض التشبع الحتمي.
  • Added system-test coverage for malformed identifiers, bounded CLI file input surfaces, secure signer-file policy, signer-rotation recovery/corruption behavior, contract CLI symlink safety, manifest structural tamper cases, SQLite corruption materialization failures, and single-open-segment CLI تنفيذ.
  • تم إغلاق جميع النتائج المتعقبة في Docs/security/audits/OSS_launch_0.md.
  • Implemented recorder-sidecar as a built-in HTTP/JSON boundary with fail-closed config validation, request auth/bounds controls, bounded queue/concurrency controls, structured error contract, and persistent idempotency semantics; updated trust boundaries, attack surfaces, mitigations, and residual risks to تعكس هذه السطحية في وقت التشغيل.
  • Implemented generated sidecar API artifact coverage (sidecar.openapi/errors/enums/examples/compat) with fail-closed CI compatibility gates enforcing current pre-release-break /v1, enum-wire stability, استقرار سجل رموز الخطأ، وعقود عدم التغير لنقاط النهاية المتغيرة.
  • Consolidated sidecar runtime config semantics into a dedicated recorder-sidecar-config crate and wired sidecar runtime startup to consume its تم كتابة حد التحقق من تكوين الفشل المغلق.
  • Expanded generated contract scope to include sidecar config artifacts (config/sidecar.schema.json, config/sidecar.compat.json, config/sidecar.example.toml, config/sidecar.md) emitted by recorder-contract من recorder-sidecar-config مساعدات الإسقاط.
  • Extended sidecar compatibility gates to fail closed on sidecar config تم توسيع بوابات التوافق مع الـ sidecar لتفشل في حالة انحراف تكوين الـ sidecar وعدم التناسق بين العناصر (schema/compat/example/docs).
  • Added sidecar integration/system validation for generated error-registry تم إضافة تكامل sidecar / التحقق من النظام لتوافق سجل الأخطاء المُولد واستمرارية إعادة التشغيل المعتمدة على الهوية.

نموذج التهديد دلتا (2026-02-08)

  • Added enterprise sidecar boundary mode with explicit fail-closed config validation (enterprise.mode, control-plane URL/token requirements, and تمت إضافة وضع حدود sidecar المؤسسي مع التحقق من تكوين الفشل المغلق بشكل صريح (enterprise.mode، ومتطلبات URL/token لطبقة التحكم، ومتطلبات أمان وضع الرمز).
  • Added enterprise identity extraction boundary (x-tenant-id, x-principal-id, x-authn-method, optional namespace) and fail-closed تمت إضافة حدود استخراج هوية المؤسسة (x-tenant-id, x-principal-id, x-authn-method, مساحة اسم اختيارية) وسلوك قبول مغلق عند وجود سياق هوية غير صحيح/مفقود.
  • Added pre-handler enterprise policy gate middleware that denies protected تمت إضافة وسيط سياسة بوابة المؤسسة قبل المعالجة الذي ينكر العمليات المحمية عندما تكون فحوصات تفويض/control-plane أو الحصص غير متاحة أو مرفوضة.
  • Added managed-cloud writer-lease assertion gating for mutating operations (x-recorder-writer-lease=true مطلوب عند التكوين).
  • Added explicit sidecar enterprise boundary hook emission to control-plane (/v1/enterprise/sidecar/hooks) at admission and result phases with fail-closed behavior for successful protected operations when hook export يفشل.
  • Result: sidecar ingress now has an additional external dependency on enterprise control-plane availability/integrity; outage or invalid responses are handled as fail-closed admission denials and successful-hook export النتيجة: أصبح ingress الخاص بـ sidecar يعتمد الآن على توفر/سلامة وحدة التحكم المؤسسية؛ يتم التعامل مع الانقطاع أو الاستجابات غير الصالحة كرفض دخول مغلق، وتُعتبر حالات فشل تصدير الخطاف الناجحة أخطاء طلب مغلقة.

نموذج تهديد دلتا (2026-02-08، تعزيز الاستعداد والتحقيق)

  • Added explicit startup probe route (GET /startup) to sidecar entry-point تمت إضافة مسار فحص بدء التشغيل الصريح (GET /startup) إلى نقطة دخول sidecar سياسة تجاوز فحص المخزون والمصادقة.
  • Added fail-closed readiness dependency modes (storage_only, storage_and_enterprise) with config validation and control-plane readiness تمت إضافة أوضاع الاعتماد على الجاهزية الفاشلة المغلقة (storage_only, storage_and_enterprise) مع التحقق من تكوين الاعتماد وفحوصات جاهزية وحدة التحكم في الأوضاع المفعلة للمؤسسات.
  • Added optional readiness fail-closed behavior when request admission/execution تمت إضافة سلوك الفشل الاختياري عند الاستعداد للإغلاق عندما يتم استنفاد سعة قبول/تنفيذ الطلبات (request_capacity_exhausted سبب الاستعداد).
  • Added explicit probe-priority middleware behavior: /health, /startup, and /ready bypass normal auth/policy/bounds request تمت إضافة سلوك وسيط أولوية الاستقصاء بشكل صريح: /health، /startup، و/ready تتجاوز بوابات المصادقة/السياسة/الحدود العادية للحفاظ على قابلية مراقبة التنسيق أثناء الحمل الزائد.
  • Added Docker system-test probe coverage validating containerized /startup and /ready behavior before and after segment-open lifecycle تمت إضافة تغطية اختبار النظام في Docker للتحقق من سلوك /startup و /ready المعبأ في الحاويات قبل وبعد انتقالات دورة حياة فتح الشريحة.

نموذج تهديد دلتا (2026-02-08، مستمر)

  • Renamed enterprise boundary adapter implementation from enterprise.rs to control_plane_bridge.rs to make the trust-boundary intent explicit تم إعادة تسمية تنفيذ محول حدود المؤسسة من enterprise.rs إلى control_plane_bridge.rs لجعل نية حدود الثقة واضحة (جسر التحكم فقط؛ لا سلطة رياضية للأدلة).
  • Centralized sidecar enterprise ingress/header/hook vocabulary in crates/recorder-sidecar/src/contract.rs and wired middleware/bridge paths to تلك الثوابت لتقليل مخاطر تجاوز السياسات الناتجة عن الانجراف.
  • Added conformance tests to ensure sidecar operation labels, identity headers, and hook boundary/outcome labels remain synchronized with control-plane تم إضافة اختبارات التوافق لضمان بقاء تسميات تشغيل الـ sidecar، ورؤوس الهوية، وتسميات حدود/نتائج الـ hook متزامنة مع مفردات عقد التحكم.
  • Added cross-repo end-to-end enterprise lane coverage proving control-plane deny decisions fail closed at sidecar mutation boundaries while successful تم إضافة تغطية شاملة عبر المستودعات لمسار المؤسسة من النهاية إلى النهاية، مما يثبت أن قرارات رفض التحكم في الطائرة تفشل في الإغلاق عند حدود تعديل الـ sidecar، بينما تحافظ المسارات المعتمدة الناجحة على نتائج تحقق الأدلة الحتمية.

نموذج التهديد دلتا (2026-02-08، توسيع CLI OSS)

  • Added CLI operator command recorder envelope record-with-attachments with تمت إضافة أمر مشغل CLI recorder envelope record-with-attachments مع تحقق من حدود المرفقات الفاشلة المغلقة لمدخلات الملفات و inline base64.
  • Added CLI operator command decision-gate ingest-fixture that routes fixture inputs through production recorder-decision-gate-adapter integrity and mapping السياسات.
  • Added CLI runtime config parity checks so malformed recorder_id values fail closed during config validate using the same identity-shape constraints as وقت تشغيل المسجل.
  • Expanded CLI auto-seal boundary to include duration and combined policies, تم توسيع حدود الإغلاق التلقائي في واجهة سطر الأوامر لتشمل المدة والسياسات المجمعة، مع رفض مغلق بفشل لقيمة صفر لكل من عتبات العدد والمدة.
  • Added CLI query page bounds (default 1000, max 10000) and deterministic JSON pagination contract (envelopes + next_cursor) to prevent unbounded تمت إضافة حدود صفحة استعلام CLI (افتراضي 1000، الحد الأقصى 10000) وعقد ترقيم JSON الحتمي (envelopes + next_cursor) لمنع التشكيل غير المحدود عند حدود المشغل.

نموذج تهديد دلتا (2026-02-10، واجهة SDK + مكونات SDK)

  • Added first-party Rust SDK facade crate (recorder-sdk) that composes existing recorder/adapter/provider/store/verifier boundaries without introducing new دلالات البروتوكول.
  • Added SDK builder trust boundary inputs (storage path, recorder and adapter identifiers, signer/trust-root injection, startup policy knobs) and required سلوك التحقق من الفشل المغلق الموروث من طبقات المسجل / المزود.
  • Expanded generated-contract asset inventory and controls to include SDK projection artifacts (Docs/generated/recorder/sdk/types.json, Docs/generated/recorder/sdk/methods.json, Docs/generated/recorder/sdk/test_vectors.json, Docs/generated/recorder/sdk/manifest.json) with manifest-hash authority and تنفيذ فحص الانجراف.
  • Added SDK facade integration tests covering builder defaults, storage اختيار، تسجيل/بناء/التحقق من التدفقات، واستعلام/جلب/التحقق من مزود التكافؤ.

نموذج التهديد دلتا (2026-02-14، تقسيم مسار الأداء واحتجاز السعة المثبتة)

  • Added explicit perf-harness trust boundary semantics: fixed-workload regression artifacts and saturation-capacity artifacts are distinct evidence فصول بقرارات تشغيلية مختلفة.
  • Added lane identity and workload metadata requirements to sidecar perf artifacts (lane, workload.*) so downstream gates can fail closed on سياق الأداء المفقود/الغامض.
  • Added pinned-runner conditional gate requirement for capacity artifacts: when pinned release jobs are configured for capacity enforcement, missing تُعالج تقارير sidecar_capacity كحالة فشل مغلقة.
  • Added anti-sandbagging policy coverage for capacity floors to prevent تخفيضات العتبة لـ max_sustainable_rps بدون حوكمة صريحة.
  • Added resource-exhaustion saturation test notes: capacity sweeps are allowed to intentionally drive bounded 429 and elevated latency to identify sustainable operating region and knee point without relaxing fail-closed سلوك وقت التشغيل.

نموذج التهديد دلتا (2026-02-15، حوكمة سير العمل للأداء والمخطط v2)

  • Added canonical perf orchestration boundary (scripts/perf/run.py) that normalizes matrix artifacts into schema-v2 per-suite reports with explicit بيانات بصمة العداء وهُوية المسار.
  • Added baseline-governance update surface (scripts/perf/update_baseline.py) requiring explicit sample-count/window/author/reason metadata on baseline تحديث.
  • Added per-suite macrobench artifact paths (target/performance/stress/latest.json, target/performance/bundle/latest.json) to reduce ambiguity and prevent دليل على تداخل الارتباك في تصنيف الأداء.

نموذج التهديد دلتا (2026-02-11، واجهة برمجة تطبيقات بايثون)

  • Added first-party Python sidecar SDK (sdk/python) as a committed projection مستهلك لـ Docs/generated/recorder/sdk/{types,methods,test_vectors,manifest}.
  • Added Python SDK trust boundary for endpoint/token/idempotency/retry inputs وسلوك فك تشفير الاستجابة مع موقف تحقق مغلق عند الفشل.
  • Added deterministic Python contract-constants generator that derives generated_contract.py مباشرةً من مخرجات SDK المولدة القياسية.
  • Added strict Python client controls for unknown error-code rejection, content-type validation, operation-local error-contract validation, and إعادة استخدام مفتاح الاستقرارية القابلة للتكرار عبر محاولات العمليات المتغيرة.
  • Added Python SDK unit and system tests and wired repository orchestration (scripts/ci/generate_all.sh) لتشغيل بوابات توليد/تحقق/اختبار Python SDK.

نموذج التهديد دلتا (2026-02-11، ضمان OSS WS1-WS3)

  • Added deterministic verifier transcript artifact model (VerificationTranscript) and wired CLI export surface (bundle verify --verdict-transcript-output) for machine-verifiable دليل حزمة التحقق.
  • Added explicit OSS assurance command boundary (assurance startup, assurance trust-root, assurance gates) to provide fail-closed deployment assertions for startup verification depth, trust-root وضع، وتنفيذ بوابة العقد.
  • Added system-test coverage proving SQLite operation queue saturation is تم رفض الفشل وإغلاقه مع مخرجات ملخص حتمي للأثر.

نموذج تهديد دلتا (2026-02-13، تعزيز توازن توكن دوكر)

  • تم القضاء على اعتماد ملف الرمز المربوط بالمضيف لملف تعريف Docker الجانبي.
  • Added dedicated container bootstrap binary (recorder-sidecar-docker-bootstrap) that ingests token source material from Docker secret file/env input and writes runtime token file to configured مسار الهدف مع التحقق من الفشل المغلق وأذونات خاصة بالمالك فقط.
  • Updated Docker Compose profile to use a Docker secret source and tmpfs token target mount, preserving explicit non-root UID/GID mapping for writable data ودليل التشغيل.
  • Expanded system-test Docker suite hardening checks to enforce سر-المصدر-إلى-tmpfs رمز سلوك التمهيد.
  • Result: Windows host ACL variance no longer determines runtime token-file mode parity inside Linux containers because sidecar token file is now created داخل الحاوية مع دلالات إذن حتمية.

نموذج التهديد دلتا (2026-02-13، المرحلة 1 تعزيز حدود نوع الوسائط الصارمة)

  • Replaced permissive sidecar media-type checks with strict fail-closed parser السلوك لـ Content-Type و Accept عند حدود HTTP.
  • Sidecar request-body endpoints now enforce exact application/json with optional charset=utf-8; unknown parameters, malformed values, and non-UTF-8 تُرفض قيم charset مع unsupported_media_type المستقرة.
  • Sidecar response negotiation now enforces strict JSON-only Accept ranges (application/json or */*) with malformed/non-JSON ranges rejected via مستقر not_acceptable.
  • Centralized route media-type policy in recorder-sidecar-config and projected that policy into generated sidecar OpenAPI/compat artifacts and CI contract البوابات، مما يقلل من مخاطر انحراف وقت التشغيل / العقد عند توسيع حدود البروتوكول.

نموذج التهديد دلتا (2026-02-13، المرحلة 3 سطح التوافق OTel)

  • Added production OTel compatibility adapter crate (crates/recorder-otel-adapter) and sidecar ingest route (POST /v1/ingest/otel) كحدود شبكة معادية جديدة.
  • New OTel ingest boundary enforces strict JSON-only media policy, bearer auth, enterprise policy middleware, bounded admission/execution controls, timeout controls, and idempotency-key requirements consistent with other mutating مسارات الجانبية.
  • OTel adapter mapping is deterministic and fail-closed: strict identifier/timestamp parsing, deterministic SHA-256-to-UUIDv7-shaped IDs, deterministic event-type mapping (otel.span, otel.log.<severity>), وتوقع الحمولة المحدودة/المحررة.
  • Added generated integration mapping contract artifacts for Decision Gate and OTel under Docs/generated/recorder/contracts/integrations/ with runtime/contract فحوصات الانجراف في تغطية اختبار المولد.
  • Added CLI operator parity command recorder otel ingest-fixture, expanding operator input attack surface while preserving bounded fixture reads and سلوك فشل المحول في الإغلاق.

نموذج تهديد دلتا (2026-02-13، اعتماد خطة التحكم المؤسسية الدائمة)

  • Expanded enterprise dependency threat posture to include durable control-plane state backends (Postgres-backed fleet/governance/cloud-ops) hosted in أصول-النواة والمستهلكة بواسطة مسارات قبول المؤسسات الجانبية.
  • Added explicit mutation-path outage fail-closed test coverage when control- plane dependency becomes unavailable: crates/recorder-sidecar/tests/enterprise_control_plane_e2e.rs and system-tests/tests/suites/sidecar_enterprise.rs.
  • Security effect: enterprise mode write paths deny on control-plane outage; لا يُسمح بسلوك التحور الذي يعتمد على أفضل جهد/يفتح الفشل.

نموذج التهديد دلتا (2026-02-14، إعادة هيكلة إدخال كاتب واحد في Sidecar)

  • Replaced direct mutating envelope handler writes with a bounded ingest queue plus dedicated single-writer runtime (IngestGateway / IngestWriterRuntime) that owns durable commit and stream-position التكليف.
  • Added stream-scoped identity and ordering boundary to sidecar mutating and query routes: tenant_id + recorder_id now define authoritative stream scope للطلب والتماثل.
  • Added persistent stream-scoped idempotency table (idempotency_entries) with deterministic request-hash replay/conflict دلالات واحتفاظ TTL/الحدود لكل دفق.
  • Added writer/projection persistence surfaces in SQLite schema v2: streams, idempotency_entries, and query_projection_envelopes; startup now fails closed on non-v2 databases and requires a fresh DB for this كسر ما قبل الإصدار.
  • Removed mutating segment HTTP routes (POST /v1/segments, POST /v1/segments/seal) from sidecar runtime, reducing external mutation سطح الهجوم مع الحفاظ على مسارات الرؤية للجزء القابل للقراءة فقط.

نموذج تهديد دلتا (2026-02-14، إكمال أداء كاتب واحد)

  • Completed hot-path migration to writer-native sealing and single-transaction SQLite micro-batch commits; mutating sidecar ingest no longer depends on تسجيل RecorderEngine::record_envelope يلتزم.
  • Added explicit SQLite durability/checkpoint tuning controls at sidecar config boundary (storage.sqlite_synchronous, storage.sqlite_wal_autocheckpoint_pages, storage.sqlite_busy_timeout_ms) with fail-closed validation and synchronous=FULL آمن بشكل افتراضي.
  • Updated segment observability contract: GET /v1/segments/active now returns paginated active-segment lists with stream identity (tenant_id, recorder_id), reducing ambiguity in عمليات التدحرج/التصحيح لكل تدفق.

نموذج تهديد دلتا (2026-02-15، ملف تكوين Sidecar - تعزيز حدود القراءة)

  • Hardened recorder-sidecar-config hostile file-input boundaries to fail closed على ملفات config/secret/key الكبيرة قبل التحليل/الاستخدام.
  • Added explicit bounded file-read ceilings at sidecar config boundary: sidecar config file <= 1 MiB, token/control-plane-token files <= 4096 بايت، ملف مفتاح الموقّع <= 65536 بايت.
  • Added unit coverage proving oversize config/token/control-plane-token/signer يتم رفض المدخلات الرئيسية مع رموز أخطاء ثابتة من نوع محدد.

نموذج التهديد دلتا (2026-02-15، تعزيز سرية المسار Sidecar TOCTOU)

  • Closed Unix and Windows token/control-plane-token path-check/use race windows in recorder-sidecar-config by opening secret files with no-follow/reparse-safe flags and applying validation to opened descriptors/handles before bounded يقرأ.
  • Added enterprise-path parity tests proving symlink and world-readable ملفات رموز التحكم في الطائرة يتم رفضها وتفشل بشكل مغلق.
  • Added fail-closed unsupported-platform handling for non-Unix/non-Windows يستهدف تجنب سلوك التراجع المتساهل.

نموذج تهديد دلتا (2026-02-15، حارس فساد الشريحة النشطة في سجل التخزين)

  • Hardened recorder-store active-segment readback to fail closed when hostile حالة الاستمرار تحتوي على عدة مقاطع مفتوحة.
  • Added deterministic tie-break ordering (created_at, then segment UUID bytes) for segment listings across in-memory and SQLite backends to remove عدم تحديد الوقت المتساوي.
  • Hardened SQLite filter handling for explicit empty segment_ids and envelope IN-list filter values so empty vectors deterministically return no matches بدلاً من ظهور أخطاء بناء جملة SQL.
  • Added regression tests in recorder-store covering multi-open-segment corruption الكشف، استقرار ترتيب الطوابع الزمنية المتساوية، ومعالجة تصفية القوائم الفارغة.

نموذج تهديد دلتا (2026-02-15، تعزيز سلامة كتالوج CLI I18n)

  • Replaced permissive CLI localization behavior with build-validated, fail-closed catalog generation (crates/recorder-cli/build.rs) sourced from كتالوجات اللغات المتعقبة بواسطة المستودع (crates/recorder-cli/i18n/locales/*.toml).
  • Added strict controls that block build/test on localization drift: required default locale en, locale-tag uniqueness, mandatory provenance metadata (machine or human_reviewed), exact key parity across locales, وتماثل مجموعة العناصر النائبة بالضبط لكل مفتاح رسالة.
  • Added compile-fail misuse gates for typed i18n macro invocation (crates/recorder-cli/tests/i18n_compile_fail.rs and trybuild fixtures), منع استخدام المفاتيح غير المعروفة والنماذج الوهمية من التجميع.
  • Enforced no-silent-fallback rendering semantics: runtime now fail-closes i18n integrity violations (unknown key in compatibility path, placeholder mismatch, unresolved placeholder token) instead of تراجع متساهل إلى معرفات المفاتيح أو الإنجليزية.
  • Added explicit locale provenance runtime behavior: machine-provenance locales emit a deterministic operator notice, while JSON تظل مخرجات وضع الآلة محايدة محليًا ومستقرة عبر اختيار الموقع.