MEGR-APT is an advanced and scalable system designed for hunting Advanced Persistent Threats (APTs) by identifying suspicious subgraphs that align with specific attack scenarios, as described in Cyber Threat Intelligence (CTI) reports.
Its primary functionality revolves around two key processes: memory-efficient extraction of suspicious subgraphs and fast subgraph matching using Graph Neural Networks (GNNs) and attack representation learning.
The system takes kernel audit logs stored in a PostgreSQL database and attack query graphs in JSON format as inputs.
It operates through a modular architecture comprising Python scripts for core functions, Bash scripts for orchestration, and directories for logs, models, datasets, and technical documentation. Key components include:
construct_pg_cadets.py and stores them in RDF graph engines such as Stardog.extract_rdf_subgraphs_cadets.py and matches them with attack query graphs via pre-trained GNN models using main.py.For training its GNN-based graph matching models:
extract_rdf_subgraphs_[dataset].py.main.py script.The system includes a Jupyter notebook (Investigation_Reports.ipynb) to analyze detected subgraphs and generate reports for analysts. This notebook demonstrates scenarios with real-world datasets like DARPA TC3 CADETS host data.
To deploy MEGR-APT:
requirements.txt and torch_requirements.txt.load_to_stardog.sh).setup_environment.sh script to configure the environment.MEGR-APT is particularly suited for organizations aiming to enhance their cybersecurity defenses by detecting APTs early. Its ability to process large-scale data efficiently makes it a powerful tool for threat intelligence and forensic investigations.
The groupdel command in Linux removes a group from the system. It deletes the group's entry from /etc/group and /etc/gshadow,…
The wc command in Linux counts lines, words, characters, and bytes in files or standard input. It…
The top command in Linux provides a real-time view of running processes and system resource usage. From…
The usermod command in Linux modifies existing user account attributes. You can use it to manage group…
The sort command in Linux reads lines from files or standard input and writes them to standard…
The wall command in Linux sends a message to the terminals of all currently logged-in users. The…