2.3 KiB
Community Sensor Lab
Welcome to the HoneyWire Community Sensor Lab. This directory provides a space to deploy, share, and experiment with custom deception sensors.
HoneyWire's architecture allows you to build a specialized trap for any protocol and visualize its telemetry in a unified dashboard using the Universal Event Standard.
Data-Driven Architecture
To add a sensor to the ecosystem, you only need to define it using a manifest.json file. This JSON schema is responsible for:
- Generating interactive UI forms and configuration cards in the HoneyWire Hub.
- Providing heuristic metadata to the Wizard CLI for host recommendations.
- Defining the deployment parameters (containers, mounts, variables) required for execution.
Please refer to the official documentation for the complete manifest schema: View the Sensor Manifest Data Contract
Engineering Resources
To ensure structural consistency and security, start with the provided scaffolding:
- Sensor Template: The recommended starting point, natively integrated with the HoneyWire Go SDK and pre-configured for Distroless execution.
- Contribution Guide: Mandatory reading covering required capability stripping, container best practices, and the JSON Contract.
Security Standard: We encourage community submissions to follow the official architecture: statically-linked binaries running as unprivileged users inside :nonroot Distroless containers, with all Linux kernel capabilities that are needed explicitly added, all capabilities are dropped by default (cap_drop: ["ALL"]).
Contribution Policy
Community submissions undergo automated validation before review:
- Static Analysis: Scanning for security vulnerabilities and memory leaks (e.g., CodeQL).
- Container Security: Image vulnerability scanning (e.g., Trivy).
- Functional Testing: Automated verification against a mock network contract in
HW_TEST_MODE.
Submitting a Sensor
- Fork the repository.
- Create your sensor directory under
Sensors/community/your-sensor-name. - Implement your sensor logic using the HoneyWire Go SDK or equivalent language SDK.
- Define your
manifest.jsonaccording to the official schema. - Open a Pull Request for review.