Skip to content

External Control Channel for Echidna #1489

@aviggiano

Description

@aviggiano

Describe the desired feature

Description

In some workflows, it would be useful to instruct a running Echidna instance to perform specific actions on demand:

  • Add entries to the corpus
  • Save the current corpus
  • Stop shrinking
  • etc

This is useful when running Echidna in "detached mode" (such as in a cloud environments), where humans or AI can operate in parallel to gather additional insights about the codebase during a long fuzzing session.

Proposal

Enable an external process to send commands to a running Echidna instance. Two possible approaches:

  1. POSIX Signal-Based Actions

Echidna could interpret specific signals as commands:

kill -SIGUSR1   # ACTION_SAVE_CORPUS
kill -SIGUSR2   # ACTION_STOP_SHRINKING
...

On receiving a signal, Echidna would enqueue the corresponding action to be processed safely at the next stable point in its loop.

  1. Alternative IPC

If signals are limiting, we can consider having an RPC/HTTP interface with a more robust API, but I'd estimate this requires considerable more work

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions