Skip to content

feat: v0.3.0 — OpenZiti Overlay, XDP Edge Protection, System Attestation#28

Open
PenguinzTech wants to merge 10 commits intomainfrom
v0.3.x
Open

feat: v0.3.0 — OpenZiti Overlay, XDP Edge Protection, System Attestation#28
PenguinzTech wants to merge 10 commits intomainfrom
v0.3.x

Conversation

@PenguinzTech
Copy link
Copy Markdown
Contributor

@PenguinzTech PenguinzTech commented Feb 26, 2026

Summary

  • OpenZiti Overlay Rework: L7 dark-service model replacing broken L3/HandlePacket abstraction — config-driven, same binary, dual-mode default (WireGuard + OpenZiti)
  • XDP/eBPF Edge Protection: Kernel-level rate limiting, SYN/UDP flood protection, IP blocklist, AF_XDP zero-copy (build-tag gated: -tags xdp)
  • Input Validation: Pydantic 2.x schemas on all API endpoints, Zod frontend schemas
  • Squawk DNS Integration: DNS-over-HTTPS via PenguinTech's Squawk proxy, policy-based DNS filtering
  • WaddlePerf Fabric Metrics: Cluster-to-cluster latency/jitter/packet-loss monitoring
  • Default-Deny NetworkPolicy: Namespace-wide default-deny with explicit allowlists
  • System Attestation: Hardware fingerprinting (TPM 2.0, cloud IID, DMI, FleetDM) with weighted confidence scoring and drift detection for infrastructure clients

System Attestation Details

New in this update — hardware-rooted trust verification for native Go infrastructure clients:

  • Go attestation collector with composite SHA-256 hash of stable hardware fields
  • TPM 2.0 PCR quote with challenge-response nonce (build-tag gated: -tags tpm)
  • Cloud instance identity auto-detection (AWS/GCP/Azure via IMDS)
  • FleetDM optional server-side hardware cross-reference
  • Hub-api attestation validator with weighted confidence scoring (0-115 points)
  • Drift detection on token refresh (product_uuid change -> 403)
  • JWT claims: attest_conf, attest_method
  • Challenge endpoint: POST /api/v1/attestation/challenge

Test plan

  • go vet ./... passes on clients/native
  • 20 Go attestation unit tests pass
  • Python files parse without syntax errors
  • Smoke test: attestation build (build + vet + test)
  • Smoke test: attestation collection (run on dev machine, verify hash + platform fields)
  • E2E: registration with attestation returns confidence score
  • E2E: drift detection rejects altered product_uuid on refresh

Generated with Claude Code

PenguinzTech and others added 5 commits February 25, 2026 09:09
Unifies three disconnected policy systems (policy_rules PyDAL table,
firewall_rules table, access_control_manager) into a single canonical
schema enforced across WireGuard clients (Go PolicyEngine) and
Kubernetes services (CiliumNetworkPolicy CRDs).

## What's new

### Phase 1 — Unified policy schema
- Replace firewall_rules with policy_rules table (scope, direction,
  JSON array fields for domains/ports/src_cidrs/dst_cidrs/users/groups)
- Policy CRUD API routes (py4web @action) + firewall compat shim
- gRPC proto updated with repeated string fields

### Phase 2 — Go PolicyEngine wired
- Fix REST fetch envelope unwrap in grpc_client.go
- PolicyEngine enhanced with SrcCIDRs, DstCIDRs, 6-dimension matching
- policy_adapter.go bridges api.Policy → policy.RawPolicy
- Replace firewallManager.CheckAccess at all 5 proxy check sites

### Phase 3 — FRR iBGP + OSPF underlay
- deploy/frr/ configs for us-east and eu-west (AS 65001 iBGP)
- vrf_manager.py generates iBGP stanzas and pushes via RESTCONF
- Helm frr-configmap + frr-daemonset templates

### Phase 4 — Cilium WireGuard + CiliumNetworkPolicy
- values-cilium.yaml: WireGuard node encryption, Hubble, DSR LB
- cilium_translator.py: policy_rules → CiliumNetworkPolicy CRDs
- k8s_client.py: create/update/delete CRDs via kubernetes-client
- networkpolicy.yaml: conditional standard/Cilium CRD selection
- WireGuard manager: clientPeersOnly filter for Cilium coexistence

### Phase 5 — Zeek network analysis
- deploy/zeek/: site scripts for WireGuard + TLS + DNS analysis
- mirror/manager.go: Zeek VXLAN tap alongside Suricata
- Helm zeek-configmap + zeek-daemonset templates

### Phase 6 — gRPC policy streaming
- grpc/server.py: PolicyServicer with FetchPolicies + SubscribePolicyUpdates
- Redis policy:updates channel triggers on CRUD mutations
- main.py: gRPC server lifecycle wired into lifespan coroutine
- Dockerfile: EXPOSE 50051

### Phase 7 — WebUI API wiring
- hub-webui/src/lib/api.ts: ApiEnvelope unwrapping, typed Policy model
- PolicyManagement.tsx: live API calls replace mock data

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Three-layer identity mesh: OIDC management plane, SPIFFE/SPIRE workload
identity, and cross-cloud Cilium Cluster Mesh over hub-router WireGuard.

Management plane:
- RFC 9068 OIDC-compliant JWTs with tenant/team/role/scope claims
- Scope-based authorization middleware (require_scope decorator)
- Hub-api as built-in OIDC provider (discovery, JWKS, token, userinfo)
- External IdP federation with token exchange
- SQLAlchemy + Alembic schema management, PyDAL runtime (migrate=False)
- Multi-tenant isolation with Global → Tenant → Team → Resource hierarchy

Workload identity:
- Cloud-native identity first (EKS Pod Identity, GCP WI, Azure WI)
- SPIRE fallback for on-prem/bare-metal (TPM, cloud IID, K8s PSAT)
- Unified token exchange: any provider → Tobogganing JWT
- Identity bridge: bidirectional SPIFFE ↔ OIDC mapping

Cross-cloud connectivity:
- Hub-to-hub WireGuard mesh bridge for Cilium Cluster Mesh
- Policy engine with 9-dimension matching (tenant + scopes + SPIFFE ID)
- Cilium identity-aware policy translation
- SPIRE Helm chart with multi-attestor support

WebUI:
- Tenant, Team, and Workload Identity management pages
- ScopeGate component for role-based UI rendering

Includes unit tests (Python + Go), documentation, and Helm charts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rework the overlay abstraction from broken L3/HandlePacket model to
correct L7/net.Listener semantics. Add config-driven overlay selection
(same binary, runtime switch), dual-mode WireGuard+OpenZiti client,
and XDP/eBPF kernel-level edge protection for bare-metal deployments.

Overlay changes:
- Revised OverlayProvider interface with Listener() net.Listener
- Hub-router OpenZiti listener via edge.Listener + JWT+HOST handshake
- Client dual-mode provider (WG L3 kernel + Ziti L7 userspace)
- Client default overlay type changed to "dual"
- OverlayScope added as 7th policy engine dimension
- All 5 proxy evaluation sites now set OverlayScope: "wireguard"

XDP/eBPF changes:
- BPF C program: 3-stage XDP pipeline (blocklist → flood → rate limit)
- Go XDP loader with build-tag gating (//go:build xdp)
- AF_XDP zero-copy sockets, NUMA-aware memory pools
- Blocklist sync from policy engine deny rules to BPF map
- Prometheus metrics for XDP packet processing

Also: desktop client migrated to unified modular client at
penguintechinc/penguin — overlay library remains here.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Desktop client and mobile app (now Flutter, replacing React Native)
migrated to penguintechinc/penguin unified modular client.
Overlay library remains in clients/native/internal/overlay/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…bile+embedded)

Flutter for iOS/Android, Go for desktop/headless — all in
penguintechinc/penguin, replacing the React Native mobile app.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, we are unable to review this pull request

The GitHub API does not allow us to fetch diffs exceeding 20000 lines

PenguinzTech and others added 2 commits February 26, 2026 16:02
…olicy — v0.3.0

Pydantic 2.x schemas on all API endpoints (422 responses), Zod frontend
schemas, PyDAL validators. Squawk DNS-over-HTTPS integration for
hub-router, native client, and Docker client. WaddlePerf fabric metrics
with HTTP/TCP/UDP/ICMP probes and WebUI dashboard. Default-deny
NetworkPolicy for Helm and Kustomize deployments.

Input validation:
- Pydantic BaseModel schemas for all POST/PUT endpoints
- Custom validators: IsCIDR, IsPortRange, IsProtocol
- Zod schemas mirroring backend validation
- PyDAL requires validators updated

Squawk DNS:
- Hub-router DNS forwarder (miekg/dns)
- Native client DNS module with platform-specific resolv.conf
- Docker client SQUAWK_ENABLED support

WaddlePerf:
- Hub-router FabricMonitor with multi-protocol probes
- Performance API routes (POST/GET metrics, GET summary)
- WebUI Fabric Metrics page with latency matrix
- Prometheus gauges for latency, jitter, packet loss

Default-deny NetworkPolicy:
- Helm template + Kustomize base manifests
- Explicit allowlists for inter-service communication

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The native Go client in clients/native/ is now explicitly scoped to
hardware, VMs, bare metal servers, containers, and embedded/IoT
devices. End-user desktop and mobile clients have moved to the
unified modular client at penguintechinc/penguin.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@socket-security
Copy link
Copy Markdown

socket-security bot commented Feb 26, 2026

@socket-security
Copy link
Copy Markdown

socket-security bot commented Feb 26, 2026

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn Low
Filesystem access: golang github.com/fullsailor/pkcs7

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/fullsailor/pkcs7@v0.0.0-20190404230743-d7302db945fa

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/fullsailor/pkcs7@v0.0.0-20190404230743-d7302db945fa. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Unmaintained: golang github.com/fullsailor/pkcs7 was last published 7 years ago

Last Publish: 4/4/2019, 11:07:43 PM

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/fullsailor/pkcs7@v0.0.0-20190404230743-d7302db945fa

ℹ Read more on: This package | This alert | What are unmaintained packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Package should publish periodic maintenance releases if they are maintained, or deprecate if they have no intention in further maintenance.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/fullsailor/pkcs7@v0.0.0-20190404230743-d7302db945fa. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/go-jose/go-jose/v4

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/go-jose/go-jose/v4@v4.0.5

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/go-jose/go-jose/v4@v4.0.5. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/go-logr/logr

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/go-logr/logr@v1.4.3

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/go-logr/logr@v1.4.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/go-openapi/analysis

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/go-openapi/analysis@v0.24.1

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/go-openapi/analysis@v0.24.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/go-openapi/loads

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/go-openapi/loads@v0.23.2

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/go-openapi/loads@v0.23.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/go-openapi/runtime

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/go-openapi/runtime@v0.29.2

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/go-openapi/runtime@v0.29.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/go-openapi/spec

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/go-openapi/spec@v0.22.1

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/go-openapi/spec@v0.22.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/go-openapi/validate

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/go-openapi/validate@v0.25.1

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/go-openapi/validate@v0.25.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/go-resty/resty/v2

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/go-resty/resty/v2@v2.17.1

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/go-resty/resty/v2@v2.17.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/gorilla/websocket

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/gorilla/websocket@v1.5.3

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/gorilla/websocket@v1.5.3. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/lufia/plan9stats

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/lufia/plan9stats@v0.0.0-20211012122336-39d0f177ccd0

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/lufia/plan9stats@v0.0.0-20211012122336-39d0f177ccd0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Unmaintained: golang github.com/mgutz/ansi was last published 6 years ago

Last Publish: 7/6/2020, 8:09:29 AM

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/mgutz/ansi@v0.0.0-20200706080929-d51e80ef957d

ℹ Read more on: This package | This alert | What are unmaintained packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Package should publish periodic maintenance releases if they are maintained, or deprecate if they have no intention in further maintenance.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/mgutz/ansi@v0.0.0-20200706080929-d51e80ef957d. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/michaelquigley/pfxlog

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/michaelquigley/pfxlog@v0.6.10

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/michaelquigley/pfxlog@v0.6.10. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/miekg/dns

Location: Package overview

From: services/hub-router/go.modgolang/github.com/miekg/dns@v1.1.62

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/miekg/dns@v1.1.62. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/miekg/pkcs11

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/miekg/pkcs11@v1.1.1

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/miekg/pkcs11@v1.1.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/mitchellh/go-ps

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/mitchellh/go-ps@v1.0.0

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/mitchellh/go-ps@v1.0.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Unmaintained: golang github.com/mitchellh/go-ps was last published 6 years ago

Last Publish: 2/3/2020, 8:02:15 PM

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/mitchellh/go-ps@v1.0.0

ℹ Read more on: This package | This alert | What are unmaintained packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Package should publish periodic maintenance releases if they are maintained, or deprecate if they have no intention in further maintenance.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/mitchellh/go-ps@v1.0.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Unmaintained: golang github.com/oklog/ulid was last published 7 years ago

Last Publish: 10/2/2018, 12:43:06 PM

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/oklog/ulid@v1.3.1

ℹ Read more on: This package | This alert | What are unmaintained packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Package should publish periodic maintenance releases if they are maintained, or deprecate if they have no intention in further maintenance.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/oklog/ulid@v1.3.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/openziti/channel/v4

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/openziti/channel/v4@v4.3.2

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/openziti/channel/v4@v4.3.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/openziti/edge-api

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/openziti/edge-api@v0.26.52

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/openziti/edge-api@v0.26.52. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/openziti/foundation/v2

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/openziti/foundation/v2@v2.0.86

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/openziti/foundation/v2@v2.0.86. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/openziti/identity

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/openziti/identity@v1.0.124

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/openziti/identity@v1.0.124. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/openziti/sdk-golang

Location: Package overview

From: clients/native/go.modgolang/github.com/openziti/sdk-golang@v1.4.2

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/openziti/sdk-golang@v1.4.2. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/parallaxsecond/parsec-client-go

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/parallaxsecond/parsec-client-go@v0.0.0-20221025095442-f0a77d263cf9

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/parallaxsecond/parsec-client-go@v0.0.0-20221025095442-f0a77d263cf9. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Unmaintained: golang github.com/pkg/errors was last published 6 years ago

Last Publish: 1/14/2020, 7:47:44 PM

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/pkg/errors@v0.9.1

ℹ Read more on: This package | This alert | What are unmaintained packages?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Package should publish periodic maintenance releases if they are maintained, or deprecate if they have no intention in further maintenance.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/pkg/errors@v0.9.1. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

Warn Low
Filesystem access: golang github.com/rcrowley/go-metrics

Location: Package overview

From: ?golang/github.com/openziti/sdk-golang@v1.4.2golang/github.com/rcrowley/go-metrics@v0.0.0-20250401214520-65e299d6c5c9

ℹ Read more on: This package | This alert | What is filesystem access?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: If a package must read the file system, clarify what it will read and ensure it reads only what it claims to. If appropriate, packages can leave file system access to consumers and operate on data passed to it instead.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore golang/github.com/rcrowley/go-metrics@v0.0.0-20250401214520-65e299d6c5c9. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

See 9 more rows in the dashboard

View full report

… hardware fingerprinting

Add hardware-rooted trust verification for the native Go infrastructure client.
Clients collect a weighted system fingerprint (TPM PCR quote, cloud instance
identity, DMI, MACs, disk serials, CPU) and submit it during registration.
Hub-api validates attestation, computes confidence score (0-115), embeds it
in JWT claims, and detects fingerprint drift on token refresh.

Go attestation package (clients/native/internal/attestation/):
- Collector orchestrator with composite SHA-256 hash of stable fields
- Hardware collectors: DMI, MAC, CPU, disk serials, OS info
- Cloud identity auto-detection: AWS/GCP/Azure via IMDS (500ms timeout)
- TPM 2.0 PCR quote with challenge-response nonce (build-tag gated: -tags tpm)
- No-op stub for default builds (zero go-tpm dependency)

Hub-api attestation (services/hub-api/):
- AttestationValidator with weighted confidence scoring and drift detection
- FleetDM client for optional server-side hardware cross-reference
- Challenge endpoint (POST /api/v1/attestation/challenge) for TPM nonce
- Attestation validation in client registration with confidence response
- Drift detection on token refresh (product_uuid change → 403)
- JWT claims: attest_conf, attest_method

Tests: Go unit tests (20 passing), Python test modules, smoke tests, e2e scripts
Docs: ATTESTATION.md guide, FEATURES.md, RELEASE_NOTES.md, README.md updated

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@PenguinzTech PenguinzTech changed the title feat: v0.3.0 — OpenZiti Overlay Rework + XDP Edge Protection feat: v0.3.0 — OpenZiti Overlay, XDP Edge Protection, System Attestation Feb 28, 2026
PenguinzTech and others added 2 commits March 25, 2026 12:03
- GitHub Actions: pin uses: to commit SHAs (not mutable version tags)
- Trivy: standardize to trivy-action@v0.35.0 with trivy-version=v0.69.3

Follows updated immutable dependency standards in .claude/rules/

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant