SYNTOLOGY HomeExplorerAtlasCodeMethodologyAboutDevelopersFeedPricing
Paper · 2308.05034 · 2023

Kairos: Practical Intrusion Detection and Investigation using Whole-system Provenance

arXiv · PDF · Open in the Atlas

Code that ran

We lifted 12 functions out of this paper's own repositories and ran 7 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.

RepositoryRoleRan
provenanceanalytics/kairos canonical 7 of 12
FunctionStatusWhere it lives
attack_edge_flag Ran provenanceanalytics/kairos/DARPA/CADETS_E3/attack_investigation.py
pointer only (licence: NONE) · get_code("b52c817d34c84c42")
ip2higlist Ran provenanceanalytics/kairos/DARPA/CADETS_E3/embedding.py
pointer only (licence: NONE) · get_code("82304ad891f50122")
list2str Ran provenanceanalytics/kairos/DARPA/CADETS_E3/embedding.py
pointer only (licence: NONE) · get_code("383210331ce99aca")
ns_time_to_datetime Ran provenanceanalytics/kairos/DARPA/CADETS_E3/kairos_utils.py
pointer only (licence: NONE) · get_code("db213924c8598f4e")
path2higlist Ran provenanceanalytics/kairos/DARPA/CADETS_E3/embedding.py
pointer only (licence: NONE) · get_code("e6991733a90b2e2c")
replace_path_name Ran provenanceanalytics/kairos/DARPA/CADETS_E3/attack_investigation.py
pointer only (licence: NONE) · get_code("71df8d57fef9e039")
stringtomd5 Ran provenanceanalytics/kairos/DARPA/CADETS_E3/create_database.py
pointer only (licence: NONE) · get_code("d8514eeaed813e9f")
anomalous_queue_construction Not yet run provenanceanalytics/kairos/DARPA/CADETS_E3/anomalous_queue_construction.py
pointer only (licence: NONE) · get_code("68f2cc67136dda0a")
cal_anomaly_loss Not yet run provenanceanalytics/kairos/DARPA/CADETS_E3/anomalous_queue_construction.py
pointer only (licence: NONE) · get_code("4188154a1c27ccbf")
cal_set_rel Not yet run provenanceanalytics/kairos/DARPA/CADETS_E3/anomalous_queue_construction.py
pointer only (licence: NONE) · get_code("ada7c0bb9f77536e")
classifier_evaluation Not yet run provenanceanalytics/kairos/DARPA/CADETS_E3/evaluation.py
pointer only (licence: NONE) · get_code("62012dacf5c2588f")
create_node_list Not yet run provenanceanalytics/kairos/DARPA/CADETS_E3/create_database.py
pointer only (licence: NONE) · get_code("a97a2f4422120a62")

Repositories linked to this paper

Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.

Abstract

Provenance graphs are structured audit logs that describe the history of a system's execution. Recent studies have explored a variety of techniques to analyze provenance graphs for automated host intrusion detection, focusing particularly on advanced persistent threats. Sifting through their design documents, we identify four common dimensions that drive the development of provenance-based intrusion detection systems (PIDSes): scope (can PIDSes detect modern attacks that infiltrate across application boundaries?), attack agnosticity (can PIDSes detect novel attacks without a priori knowledge of attack characteristics?), timeliness (can PIDSes efficiently monitor host systems as they run?), and attack reconstruction (can PIDSes distill attack activity from large provenance graphs so that sysadmins can easily understand and quickly respond to system intrusion?). We present KAIROS, the first PIDS that simultaneously satisfies the desiderata in all four dimensions, whereas existing approaches sacrifice at least one and struggle to achieve comparable detection performance. Kairos leverages a novel graph neural network-based encoder-decoder architecture that learns the temporal evolution of a provenance graph's structural changes to quantify the degree of anomalousness for each system event. Then, based on this fine-grained information, Kairos reconstructs attack footprints, generating compact summary graphs that accurately describe malicious activity over a stream of system audit logs. Using state-of-the-art benchmark datasets, we demonstrate that Kairos outperforms previous approaches.

For agents

The same record, over MCP at https://syntology.ai/mcp:

get_harvested_code_for_paper("2308.05034")
get_code_for_paper("2308.05034")
have("2308.05034")

Connect an agent — have() is free.