Skip to content

Clarification on True Positive Counting and Cache Eviction Logic #16

Description

@tallyAB

1) True Positive (TP) Counting

According to the paper, only graphs/nodes included in alerts should count towards TPs.

Image

However, in the implementation, in ProvGraph.py (line 696), while alerts are raised for graphs in cache using Grubb's Test, these do not appear to be used further.

Instead, the cache keeps the top 20 graphs (by anomaly score) from the list of cache graphs merged with the graphs from the new time window, regardless of whether an alert was raised or not.

Additionally, main.py does its node-level TP counting from these graphs, as seen here, which adds nodes to the TP count in a loop running on the cache.

Could you clarify how this ensures only alert-triggering cases count towards TP?

Based on how node-level true positives are currently being calculated, we consider all graphs in the cache to be predicted graph-level positives (as any attack node in these graphs is bein considered a node-level true positive ) and those that contain attack-related process nodes to be graph-level true positives. Is this approach correct?


2) Cache Eviction Logic

Could you clarify whether the logic for cache updates using the energy of a hopset along with node retrieval using UUIDs is present in the code repository?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions