Files
git.stella-ops.org/docs/features/unchecked/signals/binary-level-call-graph-extraction-and-symbol-graph-construction.md

1.9 KiB

Binary-level call-graph extraction and symbol graph construction

Module

Signals

Status

IMPLEMENTED

Description

Call-graph ingestion, normalization, and parsing services exist for processing binary call targets into normalized graph structures.

Implementation Details

  • Modules: src/Signals/StellaOps.Signals/Services/, src/Signals/StellaOps.Signals/Parsing/, src/Signals/StellaOps.Signals/Models/
  • Key Classes:
    • CallgraphIngestionService (src/Signals/StellaOps.Signals/Services/CallgraphIngestionService.cs) - ingests call-graph documents and builds symbol graphs
    • CallgraphParserResolver (src/Signals/StellaOps.Signals/Parsing/ICallgraphParserResolver.cs) - resolves language-specific call-graph parsers
    • CallgraphDocument (src/Signals/StellaOps.Signals/Models/CallgraphDocument.cs) - root document model for call-graph data
    • CallgraphNode (src/Signals/StellaOps.Signals/Models/CallgraphNode.cs) - represents a function/method node in the call graph
    • CallgraphEdge (src/Signals/StellaOps.Signals/Models/CallgraphEdge.cs) - represents a call edge between nodes
    • CallgraphEntrypoint (src/Signals/StellaOps.Signals/Models/CallgraphEntrypoint.cs) - entry point into the call graph (API endpoint, main method)
  • Interfaces: ICallgraphIngestionService, ICallgraphParserResolver
  • Source: Feature matrix scan

E2E Test Plan

  • Ingest a call-graph document via CallgraphIngestionService and verify nodes and edges are stored
  • Verify parser resolution: submit call graphs for different languages and confirm the correct parser is selected
  • Verify symbol normalization: ingest a binary call graph and confirm symbols are normalized to canonical form
  • Verify entry point detection: ingest a call graph with API endpoints and confirm they are identified as entrypoints
  • Query the constructed symbol graph and verify call paths from entry to vulnerable function