- Introduced AGENTS.md, README.md, TASKS.md, and implementation_plan.md for Vexer, detailing mission, responsibilities, key components, and operational notes. - Established similar documentation structure for Vulnerability Explorer and Zastava modules, including their respective workflows, integrations, and observability notes. - Created risk scoring profiles documentation outlining the core workflow, factor model, governance, and deliverables. - Ensured all modules adhere to the Aggregation-Only Contract and maintain determinism and provenance in outputs.
1.2 KiB
1.2 KiB
Entry-Point Runtime — C / C++
Signals to gather
- Dynamically linked ELF (
.dynamic) with GLIBC references (GLIBC,GLIBCXX,libstdc++). - Presence of
/lib64/ld-linux-*.so.*loaders. - Absence of Go/Rust-specific markers.
- Native supervisor binaries (
nginx,envoy, custom C services). - Config files adjacent to the binary (
/etc/app.conf, YAML/INI).
Implementation notes
- Treat this detector as the "native fallback": confirm no higher-priority language matched.
- Collect shared library list to attach as evidence; highlight unusual dependencies.
- Inspect
EXPOSEports and config directories to aid classification. - Normalise busybox-style symlinks (actual binary often
/bin/busyboxwith applet name).
Evidence & scoring
- Boost for ELF dynamic dependencies and loader presence.
- Add evidence for config files, service managers, or env variables.
- Penalise extremely small binaries without metadata (may be wrappers).
Edge cases
- Static C binaries may look like Go; rely on build ID absence and library fingerprints.
- When binary is part of a supervisor stack (e.g.,
s6-svscan), delegate classification toSupervisor. - Windows native services should be handled by PE analysis (
entrypoint-runtime-overview.md).