Skip to Content
AIAI
  • Article
  • Open Access

14 October 2026

22 Pages

When Does Representation Learning Help Attack-Path Forecasting? A Controlled Multi-Cloud Study with CAPTURE-MC

,
,
and
1
Department of Information Security, Faculty of Information Technology, University of Petra (UoP), Amman 11196, Jordan
2
Department of Information Technology, King Abdullah II School for Information Technology, University of Jordan (JU), Amman 11942, Jordan
3
MIS Department, Gulf University for Science and Technology, Hawally 32093, Kuwait
*
Author to whom correspondence should be addressed.

Abstract

Cloud defenders increasingly want to anticipate an attacker’s next move, not merely detect the last one. We study attack-path forecasting in multi-cloud environments: given the partial trace of an in-progress campaign, predict the next ATT&CK technique. We present CAPTURE-MC, a heterogeneous temporal-graph model that encodes cross-provider telemetry and forecasts the next technique under a transition prior, and we release MC-PathBench, a synthetic but structurally faithful benchmark with four leakage-controlled generalization splits (temporal, cross-cloud, unseen-composition, and campaign hold-out). Our central contribution is an honest, carefully controlled account of when learned temporal-graph representations help and when they do not. We find that the technique-transition structure is a very strong predictor: when the attacker’s current technique is known, a first-order Markov model and a uniform-over-allowed-transitions rule match or exceed CAPTURE-MC and a temporal-graph network, so the deep models add little in that idealized regime. The picture reverses in the realistic regime where the current technique must be inferred: as current-technique certainty degrades, the structural baselines, indexed entirely by it, collapse toward chance, whereas CAPTURE-MC degrades gracefully and nearly doubles their accuracy when the current technique is unknown. CAPTURE-MC is likewise robust to a substantially corrupted transition prior (missing, spurious, or misdirected edges). We also report, transparently, where CAPTURE-MC does not help: gradient-boosted trees remain the best per-event and campaign-level detectors; next-entity and time-to-transition prediction are at chance for every model; and the conformal layer, while achieving coverage, yields prediction sets larger than the list of allowed successors and so is not an efficiency gain. The prior is estimated only from training data, never the generator’s graph, which removes a leakage path present in an earlier version of this work and changes several conclusions. The practical lesson for predictive cloud defense is that structural baselines are strong and must be reported, and that the value of representation learning appears precisely where structural assumptions break down.

1. Introduction

Enterprises now run workloads across several public clouds and one or more Kubernetes fabrics at once. That arrangement buys resilience and flexibility, but it also fragments the evidence a defender needs: an attacker who phishes a federated identity in one provider, assumes a role in a second, and exfiltrates from a managed data store in a third leaves a trail that is scattered across consoles, log formats, and control planes that were never designed to be read together. The dominant response has been detection: score each event, raise an alert, and let a human reconstruct the story afterwards. Detection is necessary, but it is intrinsically retrospective. By the time a high-confidence alert fires on the exfiltration step, the identity compromise and the lateral movement that made it possible are already in the past.
This paper starts from a different question. Given the partial trace of an attack that is in progress, can we predict the next move, the next entity the attacker will touch, the next technique they will use, and roughly when, so that a defender can act before the damage is done? And because a prediction that is wrong or overconfident is worse than useless in a security operations center, can we attach a calibrated, distribution-free notion of uncertainty to that prediction, and can we turn it into a concrete, least-disruptive containment action? We call this shift the move from reactive detection to predictive, uncertainty-aware, counterfactual defense, and we instantiate it in a system we name CAPTURE-MC (Cross-cloud Attack-Path Prediction with Temporal Uncertainty-aware Reasoning and counterfactual Enforcement, for Multi-Cloud).
Three properties of the multi-cloud setting make the problem genuinely difficult and, we argue, mismatched to the tools most commonly used against it. First, the signal is structural and temporal, not marginal: an individual API call that assumes a role or reads a bucket is, in isolation, indistinguishable from the millions of benign such calls that happen every hour. What makes it an attack is the sequence of steps, the graph of entities they connect, and the causal order in which capabilities are acquired. Tabular anomaly detectors that score events independently discard exactly this information.
Second, the graph is heterogeneous and dynamic: identities, workloads, resources, and actions are different kinds of nodes connected by different kinds of relations, and both the nodes and the edges appear, change, and disappear over time. Static or homogeneous graph models cannot represent it faithfully. Third, the deployment reality is cross-provider: a model trained on one cloud’s telemetry must generalize to another cloud whose naming, timing, and feature distributions differ, and to attack compositions that were never seen in training.
Contributions:
We make the following contributions.
  • A controlled study of attack-path forecasting with strong, honest baselines:
    We ask when learned temporal-graph models beat simple transition-structure baselines for next-technique forecasting, and answer it with a first-order Markov model, a uniform-over-allowed-transitions rule, a plain Temporal-Graph Network (TGN), and a prior-augmented TGN, all evaluated under an identical protocol (Section 6).
  • The finding that the operating regime decides the winner:
    When the current technique is known (an oracle), structural baselines match or beat the deep models. When it must be inferred, the realistic case, the learned representation of CAPTURE-MC is markedly more robust, nearly doubling the structural baselines’ accuracy as current-technique certainty vanishes (Section 6.4).
  • A leakage-controlled benchmark and a training-only prior:
    MC-PathBench encodes maliciousness through sequence, graph, and causal context rather than any per-event shortcut, with four generalization splits. Critically, the forecaster’s transition prior is estimated only from training data, never from the generator’s graph; we show this removes a leakage path and we quantify sensitivity to missing, spurious, and misdirected prior edges (Section 6.5).
  • A heterogeneous temporal-graph encoder and an integrated pipeline (detection, forecasting, conformal sets, counterfactual response) described in full (Section 4), with every component ablated on the split where it is active.
  • A transparent negative-result accounting:
    We report, without embellishment, that gradient-boosted trees remain the best detectors, that next-entity and time prediction are at chance for all models, and that the conformal sets are larger than the allowed-successor list and so are not an efficiency gain. These are as much a part of the contribution as the positive findings.
Because there is no public labeled corpus of multi-cloud attack paths, our experiments are conducted on a synthetic benchmark and on a single-CPU reference implementation. We regard this as a controlled study of a problem formulation, not a validated operational claim. Section 7 discusses the threats to validity and what would close them.
The remainder of the paper reviews related work (Section 2), formalizes the problem (Section 3), details the method (Section 4) and protocol (Section 5), reports results (Section 6), and discusses implications and limitations (Section 7).

3. Problem Formulation and Threat Model

3.1. Multi-Cloud Telemetry as a Heterogeneous Temporal Graph

We observe a stream of security-relevant events E = { e i } i = 1 N ordered by time. Each event e i = ( t i , u i , w i , r i , p i , x i ) records a timestamp t i , a source entity u i , a destination entity w i , a relation type r i ∈ R , the originating provider p i ∈ P (e.g., AWS, Azure, GCP, Kubernetes), and an observed feature vector x i ∈ R d . Entities are typed: each node v has a type ϕ ( v ) drawn from identities, workloads, resources, and control-plane objects. The events up to time t induce a heterogeneous temporal security graph
G t = ( V t , E t , X t , R ) , E t = { ( u i , w i , r i , t i ) : t i ≤ t } ,
where V t is the set of entities seen so far, X t collects node and edge features, and R is the fixed set of relation types spanning the identity, control, and data planes. The graph is heterogeneous (multiple node and edge types), attributed, and dynamic (nodes and edges arrive over time). Figure 1 sketches a fragment: an attacker compromises a federated identity, assumes a role, moves laterally between workloads, and exfiltrates from a data store, tracing a connected path through a graph in which the individual edges are the same kinds of operations that benign users perform constantly.
Figure 1. A fragment of a heterogeneous temporal security graph. Nodes are typed (identities, workloads, resources); edges are typed, timestamped operations. The highlighted path is an attack campaign; each of its edges is individually indistinguishable from benign activity, so the signal lives in the connected, causally ordered progression rather than in any single event.

3.2. Attack Campaigns and the Causal Technique DAG

An adversary campaign is a sequence of steps c = ( s 1 , … , s L ) . Each step s k applies a technique a k ∈ A (drawn from an ATT&CK-style catalogue) from a controlled source entity to a target entity v k of a type consistent with the technique, producing one event. Techniques are not freely orderable: the campaign walks a causal directed acyclic graph D ⊆ A × A of allowed transitions, and a technique becomes available only when its preconditions (capabilities acquired in earlier steps) are met. Benign activity shares the same relations, node types, and even the same marginal feature distribution as attack steps; what distinguishes an attack is the causally consistent, graph-connected progression of its steps, not any single event. This is the property that our benchmark is explicitly designed to enforce (Section 5).

3.3. Tasks

Given G t and the history of an in-progress campaign, CAPTURE-MC addresses four tasks.
Definition 1
(Detection). For each event e i , predict y i ∈ { 0 , 1 } indicating whether it belongs to an attack campaign.
Definition 2
(Attack-path forecasting). Given a non-terminal attack step at event e i , predict the next entity v t + 1 (as a ranking over candidate entities), the next technique a t + 1 ∈ A , and the time-to-transition τ t + 1 ∈ R > 0 .
Definition 3
(Calibrated uncertainty). For the next-technique prediction, output a set Γ α ( e i ) ⊆ A such that Pr [ a t + 1 ∈ Γ α ( e i ) ] ≥ 1 − α (marginally, distribution-free), together with an abstention decision when the set is too large to be actionable.
Definition 4
(Counterfactual response). Choose an action a ★ from a catalogue C of containment actions that minimizes a weighted objective trading residual attack risk against service disruption, subject to availability and latency constraints:
a ★ = arg min a ∈ C λ 1 R attack ( a ) + λ 2 C service ( a ) + λ 3 C action ( a ) + λ 4 U pred s . t . avail ( a ) ≥ A min , lat ( a ) ≤ L max .

3.4. Threat Model and Assumptions

We assume the defender receives a normalized, integrity-protected telemetry stream from all providers, possibly with dropout, delay, and bounded noise (which we perturb in Section 6). The adversary acts through legitimate control-plane and data-plane operations, assuming roles, calling APIs, moving laterally between workloads, and exfiltrating from data stores, so their individual actions are, by construction, indistinguishable from benign ones at the per-event level. The adversary follows causally consistent technique progressions but may compose techniques in ways unseen during training (evaluated by the unseen-composition split) and may operate on a provider whose distribution differs from the training providers (evaluated by the cross-cloud split). We do not assume the defender can observe attacker intent, only the resulting events. The response planner acts on the predicted next hop; we evaluate its effect using the simulator’s ground-truth reachability, which is available precisely because the environment is synthetic.

4. Methodology

CAPTURE-MC is a six-layer pipeline (Figure 2): a telemetry fabric, a heterogeneous temporal graph, a relation-aware temporal encoder, a causal attack-path forecaster, an adaptive conformal layer, and a counterfactual response planner. We describe each in turn and then give the training objective, algorithms, and complexity.
Figure 2. The CAPTURE-MC pipeline. Multi-cloud telemetry is normalized into a heterogeneous temporal security graph; a relation-aware temporal encoder maintains per-node memory; a multi-task head forecasts the next entity, technique, and time under a training-estimated transition prior; an adaptive-conformal layer emits calibrated prediction sets; and a counterfactual planner selects the least-disruptive containment action.

4.1. Layer 1–2: Telemetry Fabric and Heterogeneous Temporal Graph

The fabric normalizes heterogeneous provider logs into the common event schema of Section 3. Each provider p exposes the same latent semantics through a provider-specific projection: an underlying technique/relation latent z ∈ R d is observed as x = z Q p + b p + ε p , with Q p an (approximately orthogonal) provider rotation and ε p observation noise. This mirrors the reality that the same behavior looks different across clouds, and it is what makes cross-cloud transfer a non-trivial representation-learning problem rather than a relabeling exercise. Events are appended to G t as typed, timestamped edges.

4.2. Layer 3: Relation-Aware Temporal-Graph Encoder

The encoder maintains a memory state m v ( t ) ∈ R d for every node, updated whenever the node participates in an event, in the style of memory-based temporal-graph networks [8]. On event e i = ( t i , u , w , r , p , x ) we read the current source and destination states m u , m w , encode the edge and the elapsed time, form messages, and update both states with a gated recurrent unit:
x ˜ = ReLU ( W e x ) , ρ r = Emb ( r ) , τ = W τ log ( 1 + Δ t ) ,
q u = msg ( m u , m w , x ˜ , τ ) , q w = msg ( m w , m u , x ˜ , τ ) ,
m u ′ = GRU ( q u + ρ r , m u ) , m w ′ = GRU ( q w + ρ r , m w ) ,
where Δ t is the time since the source node was last seen and msg ( · ) is a one-layer perceptron over the concatenation of its arguments. The updated source state is used to form the event embedding, so gradients reach the recurrent parameters:
h i base = ReLU W o [ m u ′ ∥ m w ′ ∥ x ˜ ] .

Relation-Aware Attention (a Gated Residual)

CAPTURE-MC refines Equation (6) with an attention block in which the updated source state queries the destination state, the edge features, and the relation embedding:
c i = softmax q K ⊤ d V , q = W Q m u ′ , K = W K [ m w ′ ; x ˜ ; ρ r ] , V = W V [ m w ′ ; x ˜ ; ρ r ] .
Crucially, the refinement is added through a zero-initialized, per-dimension gate  g :
h i = h i base + g ⊙ ReLU ( W a c i ) , g ← 0 at init .
At initialization, h i = h i base , so CAPTURE-MC starts identical to its no-attention ablation (a plain temporal-graph network) and can only depart from it if doing so reduces the loss. This design, inspired by residual gating schemes such as ReZero and LayerScale, removes a common pathology in which a strictly more expressive model underperforms a simpler one purely because of a worse optimization landscape at initialization. We found this change essential: without it, the richer model trained below its own ablation (Section 6).

4.3. Layer 4: Causal Attack-Path Forecaster

Three heads consume the event embedding h i (Figure 3): a next-technique classifier constrained by a training-estimated transition prior, a next-entity ranker, and a time-to-transition regressor. The conformal layer of the next subsection wraps the technique head.
Figure 3. The multi-task forecasting head. A single event embedding feeds three predictors; the next-technique logits are biased by the ATT&CK transition prior of Equation (9), and the conformal layer (Section 4) turns them into calibrated prediction sets.

4.3.1. Next Technique with a Training-Estimated Transition Prior

The technique logits are the sum of a learned head and a bias masked to transitions observed in the training data:
ℓ i tech = W t h i + B a i ⊙ M ^ a i + κ ( M ^ a i − 1 ) ︸ transition prior ,
where a i is the current technique, M ^ ∈ { 0 , 1 } | A | × | A | is the transition mask estimated from training transitions only (one wherever a transition occurs at least once in the training split), B is a learned bias matrix initialized to zero, and κ = 4 is a finite penalty on unobserved transitions. We emphasize what this prior is and is not. It is not the generator’s causal DAG: an earlier version of this work used that DAG directly, which leaks test-only transitions on the unseen-composition split, and we have removed it. Because M ^ is built from training data, held-out transitions are absent from it, so there is no leakage; the penalty is finite rather than infinite, so the learned head can still recover an unobserved successor. The same estimated prior can be given to a plain TGN, which lets us measure the prior’s contribution separately from the architecture (Section 6.3). The prior is applied identically at training and inference time. Sensitivity of the model to an incorrect prior is quantified in Section 6.5.

4.3.2. Next Entity by Bilinear Ranking

For a candidate set V i (the true next entity plus sampled negatives of plausible type), we score each candidate v by the inner product of a projection of the event embedding with the candidate’s node embedding, score ( v ) = ⟨ W p h i , m v ⟩ , and rank by score . This uses the temporal node memory directly, so entities that have recently been drawn into the campaign are favored.

4.3.3. Time-to-Transition

A regression head predicts τ ^ t + 1 = softplus ( W τ ′ h i ) .

4.4. Layer 5: Adaptive-Conformal Uncertainty

We turn the technique head into distribution-free prediction sets using split/adaptive-conformal prediction [14,16]. With softmax probabilities p , the Adaptive Prediction Set (APS) non-conformity score of a labeled calibration example ( p , a ) is the cumulative probability mass of classes ranked at least as high as the true class, s ( p , a ) = ∑ a ′ : p a ′ ≥ p a p a ′ . Given a calibration set of size n and level α , the conformal threshold is the ⌈ ( n + 1 ) ( 1 − α ) ⌉ / n empirical quantile τ ^ of the calibration scores, and the prediction set for a new instance accumulates classes in decreasing probability until the mass reaches τ ^ :
Γ α ( p ) = top classes until ∑ p ≥ τ ^ .
This guarantees marginal coverage ≥ 1 − α under exchangeability. Because cross-cloud transfer and concept drift break exchangeability, we additionally run adaptive-conformal inference: the effective level α t is updated online, α t + 1 = α t + γ ( α − ⊮ [ miscovered t ] ) , so the realized coverage tracks the target even under shift. When | Γ α | exceeds an actionability budget, the system abstains, deferring to a human analyst; we report the induced selective risk.

4.5. Layer 6: Counterfactual Response Planner

The planner selects a containment action from a catalogue C (no-op, step-up authentication, credential revocation, workload isolation, egress blocking, key rotation, node quarantine), each annotated with the relation it severs, its availability impact, latency, and operational cost. For the predicted next hop, the residual attack risk of action a is evaluated counterfactually: if a blocks the relation the attacker would use, the predicted next hop becomes unreachable and residual risk collapses toward zero; otherwise it remains at the prior. Substituting these terms into Equation (2) yields a small discrete optimization solved by enumeration under the availability/latency constraints. Because the environment is simulated, we can measure the true effect of the chosen action on ground-truth reachability, giving honest risk-reduction and over-containment numbers.

4.6. Training Objective

All neural models share the task heads and are trained on a multi-task loss combining detection (binary cross-entropy) and forecasting (cross-entropy for the next technique, plus the ranking/regression heads where applicable):
L = L det + β L tech + η L cxc ,
where L cxc is a cross-cloud supervised contrastive term used only in the transfer setting. It pulls together event embeddings that share a technique but originate from different providers, and pushes apart those with different techniques, using in-batch negatives:
L cxc = − 1 | B + | ∑ ( i , j ) ∈ B + log exp ( κ z ^ i ⊤ z ^ j ) ∑ k ≠ i exp ( κ z ^ i ⊤ z ^ k ) ,
with z ^ the ℓ 2 -normalized projection of h , κ a temperature, and B + the set of same-technique, different-provider pairs. This term encourages a provider-invariant representation of techniques, which is exactly what cross-cloud generalization requires.

4.7. Training Procedure and Algorithms

Non-temporal models (tabular, sequence, static graph) are trained with mini-batch Adam. Temporal models are trained with a single chronological pass per epoch that carries node memory forward, so that the memory a node presents at event e i reflects everything that happened to it earlier (Algorithm 1). The static-graph baselines build their adjacency from the training edges only, to prevent look-ahead leakage. Memory is reset at the start of each epoch and detached across chronological chunks to bound the computation graph.
Algorithm 1 Chronological temporal training (one epoch)
1:
reset memory m v ← 0 ∀ v ; last-seen t v ← 0
2:
for each chronological chunk B of events do
3:
    read m u , m w ; compute Δ t ; form messages (Equation (6))
4:
    update states m u ′ , m w ′ ; write back; form h i with the gated attention (Equation (8))
5:
     L ← L det ( train events in B ) + β L tech + η L cxc
6:
    backprop; Adam step (grad-norm clip); detach memory
7:
end for

4.8. Complexity

Let N be the number of events, d the hidden width, | A | the number of techniques, and C the candidate-set size. The temporal encoder is O ( N d 2 ) per epoch (a constant number of d × d operations per event), independent of the total graph size because memory reads/writes are O ( d ) per node touched. The technique head is O ( d | A | ) and entity ranking is O ( C d ) per forecasting step. Inference is a single streaming pass, O ( N d 2 ) , and memory is O ( | V | d ) for the node states. This linear-in-events profile is what allows the reference implementation to run end-to-end on a single-CPU core.

Implementation

To keep the package portable and dependency-light, the entire neural stack (autograd, layers, memory, attention, losses, Adam) is implemented from scratch in NumPy; all gradients are verified against finite differences. The two tabular baselines use scikit-learn. No GPU or deep-learning framework is required.

5. Experimental Setup

5.1. The MC-PathBench Benchmark

No public corpus labels multi-cloud attacks at the granularity of entities, techniques, and times, so we built MC-PathBench, a synthetic generator that is faithful to the structure of the problem while remaining fully reproducible. It instantiates a typed entity population across four providers (AWS, Azure, GCP, Kubernetes), 13 node types, 12 relation types across the identity, control, and data planes, and 13 ATT&CK-style techniques connected by a causal transition DAG with per-technique preconditions and target types.

5.1.1. Benign Background and Attack Campaigns

Benign activity is generated from recurring templates with slow concept drift. Attack campaigns start from an entry technique and walk the causal DAG, choosing targets that are graph-reachable from the set of already-controlled entities and escalating with technique-dependent timing. The single most important design choice is that maliciousness is not a per-event shortcut: a large fraction of benign events are “attack-shaped” decoys that use the same relations and target types as real techniques, and the direct per-event feature signal of maliciousness is set to zero. Consequently, an isolated event carrying an attack-like relation is, marginally, no more suspicious than benign traffic; the discriminative signal lives only in the sequence, the graph connectivity, and the causal ordering. This is what makes the tabular-vs-sequence-vs-graph comparison meaningful rather than a foregone conclusion.

5.1.2. Scale

Unless stated otherwise, we use the small preset: ∼600 entities, ∼5600 events of which ∼14% are malicious, and 140 campaigns of mean length ∼6, across the four providers. The generator also exposes tiny and medium presets; the exact configuration is recorded in the released configs/.

5.2. Tasks, Features, and Splits

All models consume the same inputs to keep the comparison fair. Tabular and MLP models receive per-event causal context features (strictly past-only decayed activity rates, triple rarity, inter-event gaps, and degrees, appended to the raw observation); sequence models receive the last-W source-incident window; graph and temporal models receive the event stream and the training-edge graph. No label is ever used as an input feature. We evaluate on four splits that probe different kinds of generalization:
  • Temporal (time): chronological 60/15/25 train/val/test, the standard setting.
  • Cross-cloud (provider): train on three providers, test on a held-out provider, measuring transfer across the provider projection.
  • Unseen composition (unseen): campaigns containing a technique-transition bigram never seen in training are held out for test.
  • Chain hold-out (chain): entire campaigns are held out, so no test campaign shares steps with training.

5.3. Models and Baselines

We compare two tabular detectors (random forest and histogram gradient boosting, a strong stand-in for XGBoost/LightGBM); three sequence models (LSTM, GRU, transformer); three static-graph models (GraphSAGE, GAT, a heterogeneous relational GNN); a TGN; and CAPTURE-MC. All neural models share the task heads and optimizer and are given comparable budgets (∼25–80 k parameters). For next-technique forecasting, we incorporate the structural baselines: a first-order Markov model (row-normalized training transition counts with Laplace smoothing), a uniform-over-allowed rule (uniform over training-allowed successors), and a TGN + prior that receives the same training-estimated prior as CAPTURE-MC so the prior’s contribution can be separated from the architecture. The Markov and uniform baselines use no learning and are indexed by the current technique.

5.4. Metrics

Detection is measured by AUROC, AUPRC, macro-F1, recall, false-positive rate, and, because a forecasting system should be judged operationally, by campaign-level detection rate. Forecasting is measured by next-technique macro-F1, next-entity Hits@k and MRR, and time-to-next MAE. Calibration is measured by empirical coverage against the 0.90 target, average prediction-set size, singleton rate, Expected Calibration Error (ECE), selective risk, and adaptive-conformal realized coverage. Response is measured by risk reduction, mean service cost, over-containment, and SLA-violation rate. Efficiency is measured by parameter count and wall-clock training and inference time.

5.5. Forecasting and Calibration Protocol

To make the setup fully reproducible, we state the following. Forecasting is evaluated on non-terminal attack steps; each step is conditioned on the current technique a i (an oracle we stress-test in Section 6.4). Next-entity ranking uses a candidate set of 20 (one true entity plus 19 type-plausible negatives sampled without replacement from the same provider), so chance is Hits@1 = 0.05 and MRR ≈ 0.18 . The conformal calibration set is a random 50 % of the test forecasting steps (the other 50 % is evaluated), the target level is α = 0.10 , and the non-conformity score is APS. Temporal memory is reset at the start of every epoch and at evaluation, and is built strictly from the training stream for a split, so no test interaction updates a node state used to score a training step. Models are selected by the fixed epoch budget below (no per-seed early stopping), and all models receive the same inputs. Baselines received no additional tuning; the neural models use the single configuration in Appendix A.

5.6. Protocol and Statistics

Every experiment is repeated over five seeds; we report mean ± standard deviation and, where useful, 95% bootstrap confidence intervals. Because all runs come from a single generator, these seeds are repeated runs rather than independent datasets, so we do not treat per-seed omnibus rank tests (Friedman/Nemenyi) as decisive; instead, we report effects whose sign and magnitude are consistent across the temporal and cross-cloud conditions (Section 6.4 and Section 6.7), following established practice for comparing classifiers across datasets and seeds while respecting the independence assumptions of such tests [21]. Robustness is assessed not by perturbing raw telemetry but along the two axes that bear on the forecasting claim: uncertainty in the current technique (Section 6.4) and corruption of the transition prior (Section 6.5). All results were produced on a single-CPU core with under 4 GB of RAM.

6. Results

All numbers are means over five seeds; bold marks the best value in each column. Unless noted, forecasting is evaluated on non-terminal attack steps conditioned on the current technique a i ; Section 6.4 removes that oracle. The transition prior is estimated from training transitions only (Section 6.5).

6.1. Detection: Trees Win

Table 2 and Figure 4 report per-event detection on the temporal split. Gradient-boosted trees are the strongest detectors on every metric: histogram gradient boosting reaches AUROC 0.99 and detects every campaign, because the strictly past-only context features (decayed rates, triple rarity, degrees) are exactly the temporal aggregates at which tree ensembles excel. Among the deep models, the recurrent sequence models lead, then TGN, then CAPTURE-MC; the static-graph models are weakest. CAPTURE-MC is not competitive at per-event detection (AUROC 0.79 , AUPRC 0.50 ) and does not tie for the best campaign-level detection: trees detect 100 % of campaigns and TGN 94 % , versus 89 % for CAPTURE-MC. We state this plainly because an earlier version claimed a tie that the table does not support. The honest reading is that detection on this benchmark is solved well by engineered temporal features feeding trees, and representation learning is not needed for it.
Table 2. Per-event detection on the temporal split (mean ± std, 5 seeds). Trees dominate; CAPTURE-MC is not competitive here.
Figure 4. Detection AUROC and AUPRC by model on the temporal split.

6.2. Next-Technique Forecasting Among Deep Models

Among the learned models, CAPTURE-MC attains the best next-technique macro-F1 on all four splits (Table 3 and Table 4): temporal 0.374 , cross-cloud 0.311 , unseen-composition 0.249 , chain 0.343 , versus TGN 0.300 / 0.258 / 0.228 / 0.330 and the sequence models near 0.18 . Contrary to the earlier version, the margin over TGN narrows on the harder splits rather than widening ( + 0.074 temporal, + 0.053 cross-cloud, + 0.021 unseen, + 0.013 chain), which is what one expects: novel transitions are intrinsically harder to anticipate. These comparisons are among deep models only; Section 6.3 adds the structural baselines that change the interpretation.
Table 3. Next-technique forecasting on the temporal split, deep models (mean ± std, 5 seeds). Entity/time columns are discussed in Section 6.6.
Table 4. Next-technique macro-F1 across splits, deep models. The CAPTURE-MC margin over TGN narrows on the harder splits.

6.3. Structural Baselines Are Strong

To compare against the transition structure itself, we add a first-order Markov model and a uniform-over-allowed-transitions rule, both estimated from training transitions and indexed by the current technique, and a TGN given the same prior (Table 5). The result is sobering for the deep models. On macro-F1, the trivial uniform-over-allowed rule ties or beats CAPTURE-MC on every split (temporal 0.381 vs. 0.374 ; cross-cloud 0.393 vs. 0.311 ; unseen 0.331 vs. 0.249 ), because it spreads mass over rare successors and so scores well on a class-balanced metric, and because pure structure is invariant to the provider shift that degrades the learned features. On top-1 accuracy (not shown in the table, reported in text), the first-order Markov model is strongest (temporal 0.54 vs. CAPTURE-MC 0.47 ). In this idealized regime, with the current technique known and the structure given, the learned representation adds little. This is the single most important correction relative to the earlier version, and Section 6.4 shows the regime in which the conclusion flips.
Table 5. Next-technique macro-F1 against structural baselines (mean ± std, 5 seeds). When the current technique is known, a trivial uniform-over-allowed rule matches or beats CAPTURE-MC.

6.4. The Realistic Regime: Robustness to Current-Technique Uncertainty

The structural baselines above are indexed entirely by the current technique a i , which a deployed system does not observe with certainty. CAPTURE-MC, by contrast, forecasts from a learned event embedding that does not require a i . We therefore sweep the reliability of a i : with probability p the current-technique label is replaced by a random technique, and we re-evaluate the already-trained models (Figure 5 and Table 6). At p = 0 (oracle), the models are tied; as p grows, the structural baselines fall toward chance while CAPTURE-MC degrades gracefully. When the current technique is unknown ( p = 1 ), CAPTURE-MC reaches accuracy 0.221 on the temporal split versus 0.123 (Markov) and 0.108 (uniform), nearly double, and leads on both accuracy and macro-F1 for every p ≥ 0.5 . The cross-cloud split shows the same ordering with a smaller gap, where CAPTURE-MC and the prior-augmented TGN are close. This is the paper’s central positive result: the value of the learned representation appears exactly where the structural assumption (known current technique) breaks down.
Figure 5. Next-technique accuracy as the current technique degrades from oracle ( p = 0 ) to unknown ( p = 1 ). Structural baselines collapse; CAPTURE-MC degrades gracefully.
Table 6. Next-technique accuracy under current-technique corruption (temporal split, 5 seeds). CAPTURE-MC nearly doubles the structural baselines when a i is unknown.

6.5. Sensitivity to the Transition Prior

Because the prior is estimated from training data, it may be incomplete or wrong, so we perturb it (Figure 6). Dropping or adding a large fraction of edges barely moves CAPTURE-MC’s macro-F1 (missing 0.36 → 0.38 , spurious ≈ flat): the learned head compensates for an imperfect mask. Even reversing 60 % of edges (misdirection) only lowers F1 from 0.36 to 0.33 . CAPTURE-MC does not critically depend on a correct prior, which is consistent with the robustness seen in Section 6.4.
Figure 6. CAPTURE-MC next-technique F1 as the training-estimated prior is corrupted. The learned head compensates for missing and spurious edges; misdirection is mildly harmful.

6.6. Next-Entity and Time Prediction Are at Chance

We narrow the earlier claim to forecast “entity, technique, and time.” Next-entity ranking uses a candidate set of 20 (one true entity, 19 sampled negatives of plausible type), so chance is Hits@1 = 0.05 and MRR ≈ 0.18 . Every model is at that level: CAPTURE-MC scores Hits@1 0.047 , MRR 0.176 ; the best model (a static GAT) reaches only Hits@1 0.096 , MRR 0.221 . Time-to-next MAE is likewise no better than the mean predictor. We therefore make no claim for entity or time forecasting and restrict the forecasting contribution to the technique.

6.7. Ablation

Table 7 and Figure 7 remove one component at a time, each on the split where it is active and with the “full” configuration matched to the corresponding main table (fixing an inconsistency in the earlier version). The honest pattern: the causal prior is the only component that clearly helps forecasting (temporal F1 0.374 → 0.322 without it), but it hurts detection (AUPRC 0.497 → 0.590 when removed), a multi-task tension we did not previously disclose. Temporal memory is essential for detection (AUPRC collapses to 0.20 without it) but leaves technique F1 almost unchanged.
Table 7. Config-consistent ablation. Each component is removed on the split where it is active; “full” matches the corresponding main table.
Figure 7. Temporal-split ablation. Temporal memory drives detection; the causal prior drives forecasting (and mildly hurts detection).
Relation attention and the contrastive term are neutral to slightly negative (removing relation attention nudges F1 from 0.374 to 0.380 ; removing the contrastive term raises cross-cloud F1 from 0.311 to 0.335 ). Two of the four added components therefore do not help on this benchmark, and we say so.

6.8. Conformal Uncertainty: Coverage Without Efficiency

The conformal layer achieves coverage but is not efficient (Table 8). At a 0.90 target, it over-covers ( 0.97 ) with an average set of 7.96 of 13 techniques; temperature scaling and restricting to allowed successors shrink this to 4.40 , still larger than the training-allowed-successor list ( 2.40 on average). In other words, simply listing the allowed successors is more informative than the conformal set. Worst-group coverage by the current technique is 0.84 , below the 0.90 target, as expected once exchangeability fails across technique groups. We therefore retract the earlier “most efficient calibrated prediction sets” claim and report calibration as a limitation.
Table 8. Conformal next-technique sets for CAPTURE-MC (temporal split, 5 seeds). Every variant is larger than the allowed-successor list, so the layer does not improve efficiency.

6.9. Response, Efficiency, and Significance

The counterfactual planner (Table 9 reports cost) reduces simulated risk, but we report two honest caveats. First, a plain TGN equals or exceeds CAPTURE-MC on risk reduction, so the planner’s quality tracks forecast quality rather than any CAPTURE-MC-specific advantage. Second, in the current simulator, over-containment and SLA-violation are zero for every policy, so those metrics do not discriminate; we treat the response module as a feasibility demonstration, not a validated result, and we give the objective weights and action catalog in Appendix A. On efficiency (Table 9), CAPTURE-MC is a modest model that trains and infers in seconds on one CPU core. For significance, we note that seeds drawn from a single generator are repeated runs, not independent datasets, so we avoid over-reading per-seed Friedman/Nemenyi tests; the claims we retain (the cascade ordering, the ablation direction) hold across both the temporal and cross-cloud conditions with consistent sign.
Table 9. Model size and single-core wall-clock cost (temporal split, 5-seed mean).

7. Discussion

7.1. What the Results Mean

The controlled comparison yields a clear, if humbling, message. For next-technique forecasting, the transition structure does most of the work: when the current technique is known, a first-order Markov model is the best top-1 predictor and a uniform-over-allowed rule is the best on macro-F1, and the learned temporal-graph models do not beat them (Section 6.3). The learned representation earns its place only when the structural assumption fails, when the current technique must be inferred (Section 6.4) or the prior is wrong (Section 6.5), where CAPTURE-MC is markedly more robust, nearly doubling the structural baselines’ accuracy as current-technique certainty vanishes. This is a narrower claim than the earlier version made, and we think it is the more useful one: it tells a practitioner when to reach for a model and when a lookup table suffices.
We also report, without hedging, where the method does not help. Detection is won by gradient-boosted trees, which detect every campaign; CAPTURE-MC is not competitive there. Next-entity and next-time prediction are at chance for every model. The conformal layer achieves coverage, but its sets are larger than the allowed-successor list, so it is not an efficiency gain, and it under-covers the worst technique group. Two of CAPTURE-MC’s four added components (relation attention, contrastive alignment) do not help on this benchmark. A reader should come away knowing exactly which claims survive scrutiny.

7.2. The Leakage Correction

The most important change from the earlier version is methodological. That version gave the forecaster the generator’s own transition DAG as a hard prior. On the unseen-composition split, this is leakage: the held-out transitions were marked “allowed,” so the model was told which novel transitions were possible. Estimating the prior from training transitions only removes the leak and, as expected, lowers unseen-composition performance and compresses the margins over baselines. We report the corrected numbers throughout and flag the change rather than silently restating results. We see the episode as an argument for always pairing a learned model with structure-only baselines and for auditing exactly what information a “prior” encodes.

7.3. Practical Implications

Three implications follow, all narrower than before. First, for next-technique anticipation, a defender should start with a transition-statistics baseline; it is strong, interpretable, and shift-invariant, and a learned model is worth its cost mainly when the current technique is uncertain. Second, detection and forecasting are different problems with different winners; keep a tree-based detector for triage and add a learned forecaster for look-ahead, rather than expecting one model to win both. Third, calibrated uncertainty for this task is not solved by off-the-shelf conformal prediction here; the allowed-successor set is a stronger baseline than the conformal set, and improving set efficiency is open work.

7.4. Limitations

The benchmark is synthetic; absolute numbers are not operational performance, and although the generator is structurally faithful, we cannot claim external validity from it. All results use a single generator, so random seeds are repeated runs rather than independent datasets, which limits the force of cross-model significance testing; we rely on the consistent sign of effects across the temporal and cross-cloud conditions rather than on a single p-value. The response planner is evaluated in a simulator whose over-containment and SLA-violation metrics are currently degenerate (zero for all policies), so we treat it as a feasibility demonstration only. Entity and time forecasting do not work at all here. Compute is a single-CPU core at modest scale. Most fundamentally, we have no real multi-cloud attack-path telemetry; obtaining it is the essential next step and no synthetic study can substitute for it.

7.5. Threats to Validity

7.5.1. Construct Validity

Because we authored both the generator and the model, the benchmark could favor our architecture. The strongest evidence that it does not is that simple baselines we did not design, trees for detection, uniform-over-allowed for forecasting, beat CAPTURE-MC in their respective regimes. The training-only prior removes the one clear leakage path we found.

7.5.2. Internal Validity

Splits are leakage-controlled (past-only features; training-only prior; whole-campaign hold-out where required), and every number is regenerated from raw runs by the released scripts.

7.5.3. External Validity

One synthetic generator at modest scale; results may not transfer to production telemetry, and a second, independently designed generator and real logs are needed to test the cascade finding beyond our assumptions.

7.5.4. Statistical-Conclusion Validity

With one generator, seeds are not independent datasets; we therefore report effects that are consistent in sign and magnitude across conditions and avoid over-reading omnibus rank tests.

8. Conclusions

We set out to build a predictive, uncertainty-aware defense for multi-cloud attack paths and arrived at a more honest and more specific result. For next-technique forecasting, the transition structure is a strong baseline: when the attacker’s current technique is known, a first-order Markov model and a uniform-over-allowed rule match or beat a heterogeneous temporal-graph model. The learned representation of CAPTURE-MC earns its keep only in the realistic regime where the current technique must be inferred or the transition prior is imperfect, where it is substantially more robust, nearly doubling the structural baselines’ accuracy when the current technique is unknown. We report plainly that CAPTURE-MC does not improve detection (trees win), that entity and time prediction are at chance, and that the conformal layer does not beat the allowed-successor set on efficiency.
The broader contribution is methodological: a leakage-controlled benchmark, a training-only transition prior that we show matters, and a discipline of comparing learned models against structure-only baselines in every regime. The single most consequential fix was removing the generator’s DAG from the model’s prior, which changed several conclusions; we document it openly.
As future work, the priorities are (i) real or emulated multi-cloud telemetry, without which no claim here is operational; (ii) a second, independently designed generator to test the cascade finding beyond our own assumptions; (iii) a detect-then-forecast cascade with a learned current-technique estimator, since the cascade result suggests that is where learned models help; (iv) conformal sets that beat the allowed-successor baseline, which off-the-shelf APS does not; and (v) a response simulator whose cost metrics discriminate. We release the benchmark, the baselines, and the full code so that others can test and falsify these claims.

Author Contributions

Conceptualization, S.A.-E. and Y.S.; methodology, S.A.-E. and Y.S.; software, S.A.-E.; validation, Y.S., M.A. and M.A.A.; formal analysis, S.A.-E. and M.A.A.; investigation, S.A.-E.; resources, M.A. and Y.S.; data curation, S.A.-E.; writing—original draft preparation, S.A.-E.; writing—review and editing, Y.S., M.A. and M.A.A.; visualization, S.A.-E.; supervision, Y.S. and M.A.; project administration, Y.S.; funding acquisition, M.A. All authors have read and agreed to the published version of the manuscript.

Funding

This research was funded by the Gulf University for Science and Technology, Kuwait.

Institutional Review Board Statement

Not applicable.

Data Availability Statement

The data and code supporting the findings of this study are available from the corresponding author upon reasonable request.

Acknowledgments

During the preparation of this manuscript, the authors did not use any AI-assisted tools, including generative AI or AI-based language-editing tools. The authors prepared, reviewed, and edited all aspects of the manuscript and take full responsibility for its content.

Conflicts of Interest

The authors declare no conflict of interest.

Appendix A. Reproduction, Hyperparameters, and Configuration

Appendix A.1. One-Command Reproduction

The released package regenerates every number, figure, and table from raw runs. Because the reference environment caps individual jobs at a few minutes, the driver runs one phase at a time and then merges:
  • # 1. run each generalization split and the ablation (5 seeds each)
    python experiments/run_all.py --only time   --seeds 5 --scale small
    python experiments/run_all.py --only provider --seeds 5 --scale small
    python experiments/run_all.py --only unseen   --seeds 5 --scale small
    python experiments/run_all.py --only chain   --seeds 5 --scale small
    python experiments/run_all.py --only ablation --seeds 5 --scale small
    # 2. merge into results/results_main.json
    python experiments/run_all.py --merge --seeds 5 --scale small
    # 3. regenerate all figures and LaTeX tables
    python experiments/make_figures.py
    python experiments/make_tables.py
    # 4. build the manuscript
    cd ../paper && latexmk -pdf main.tex
Larger-scale runs are supported by the same driver (the medium preset is about 2.3 × the events); we report full results at the small preset and leave a systematic multi-scale study, with the honest training-only prior throughout, to future work. The medium-scale command is:
  • python experiments/run_all.py --only time   --scale medium --seeds 3 \
         --partdir results/parts_medium
    python experiments/run_all.py --only provider --scale medium --seeds 3 \
         --partdir results/parts_medium
    python experiments/make_scale_supplement.py
A Makefile wraps these targets (make results, make figures, make tables, make paper). Gradient checks for the from-scratch autograd engine run with python tests/ test_autograd.py.

Appendix A.2. Key Hyperparameters

Table A1 lists the main settings; the exact values are in configs/. Hidden width d = 48 for all neural models. Adam is used throughout with gradient-norm clipping. Temporal models train for 12 epochs with chronological chunks of 16 events; sequence and static-graph models train for 8–14 epochs. The cross-cloud contrastive term is enabled only on the provider split. The conformal target is α = 0.10 (90% coverage) with an APS non-conformity score and an adaptive-conformal step γ = 0.01 .
Table A1. Principal hyperparameters.

Appendix A.3. Response Planner

The action catalogue is {no-op, step-up authentication, credential revocation, workload isolation, egress blocking, key rotation, node quarantine}, each annotated with the relation it severs, an availability impact, a latency, and an operational cost. The planner minimizes λ 1 R attack + λ 2 C service + λ 3 C action + λ 4 U pred with ( λ 1 , λ 2 , λ 3 , λ 4 ) = ( 1.0 , 0.3 , 0.1 , 0.2 ) , subject to the availability and latency constraints, by enumeration. As noted in Section 6.9, the current simulator yields zero over-containment and SLA violations for all policies, so these metrics do not yet discriminate; fixing the simulator so they do is future work.

Appendix A.4. Dataset Configuration

MC-PathBench uses 4 providers, 13 node types, 12 relation types, and 13 techniques connected by a causal transition DAG. Benign traffic includes attack-shaped decoys, and the per-event marginal maliciousness signal is set to zero, so that detection requires sequence, graph, or causal context. The generator is deterministic given a seed; the small, tiny, and medium presets are defined in configs/dataset.json.

References

  1. Zhou, J.; Cui, G.; Hu, S.; Zhang, Z.; Yang, C.; Liu, Z.; Wang, L.; Li, C.; Sun, M. Graph Neural Networks: A Review of Methods and Applications. AI Open Erratum in AI Open 2025, 6, 331–332. https://doi.org/10.1016/j.aiopen.2024.01.002. 2020, 1, 57–81. [Google Scholar] [CrossRef] [Scilit]
  2. Zhong, M.; Lin, M.; Zhang, C.; Xu, Z. A survey on graph neural networks for intrusion detection systems: Methods, trends and challenges. Comput. Secur. 2024, 141, 103821. [Google Scholar] [CrossRef] [Scilit]
  3. Bilot, T.; El Madhoun, N.; Al Agha, K.; Zouaoui, A. Graph Neural Networks for Intrusion Detection: A Survey. IEEE Access 2023, 11, 49114–49139. [Google Scholar] [CrossRef] [Scilit]
  4. Yu, L.; Sun, L.; Du, B.; Liu, C.; Lv, W.; Xiong, H. Heterogeneous graph representation learning with relation awareness. IEEE Trans. Knowl. Data Eng. 2022, 35, 5935–5947. [Google Scholar] [CrossRef] [Scilit]
  5. Wang, X.; Wang, X.; He, M.; Zhang, M.; Lu, Z. Spatial-temporal graph model based on attention mechanism for anomalous IoT intrusion detection. IEEE Trans. Ind. Inform. 2023, 20, 3497–3509. [Google Scholar] [CrossRef] [Scilit]
  6. Farrukh, Y.A.; Wali, S.; Khan, I.; Bastian, N.D. AIS-NIDS: An intelligent and self-sustaining network intrusion detection system. Comput. Secur. 2024, 144, 103982. [Google Scholar] [CrossRef] [Scilit]
  7. Alrayes, F.S.; Amin, S.U.; Hakami, N.A.; Alzaylaee, M.K.; Kashmeery, T. Intrusion Detection Model on Network Data with Deep Adaptive Multi-Layer Attention Network (DAMLAN). CMES-Comput. Model. Eng. Sci. 2025, 144, 581–614. [Google Scholar] [CrossRef] [Scilit]
  8. Gravina, A.; Bacciu, D. Deep learning for dynamic graphs: Models and benchmarks. IEEE Trans. Neural Netw. Learn. Syst. 2024, 35, 11788–11801. [Google Scholar] [CrossRef] [Scilit] [PubMed]
  9. Zheng, Y.; Yi, L.; Wei, Z. A survey of dynamic graph neural networks. Front. Comput. Sci. 2025, 19, 196323. [Google Scholar] [CrossRef] [Scilit]
  10. King, I.J.; Huang, H.H. Euler: Detecting Network Lateral Movement via Scalable Temporal Link Prediction. ACM Trans. Priv. Secur. 2023, 26, 1–36. [Google Scholar] [CrossRef] [Scilit]
  11. Han, X.; Cui, S.; Liu, S.; Zhang, C.; Jiang, B.; Lu, Z. Network intrusion detection based on n-gram frequency and time-aware transformer. Comput. Secur. 2023, 128, 103171. [Google Scholar] [CrossRef] [Scilit]
  12. da Silva Ruffo, V.G.; Lent, D.M.B.; Carvalho, L.F.; Lloret, J.; Proenca, M.L., Jr. Generative adversarial networks to detect intrusion and anomaly in IP flow-based networks. Future Gener. Comput. Syst. 2025, 163, 107531. [Google Scholar] [CrossRef] [Scilit]
  13. Abdar, M.; Pourpanah, F.; Hussain, S.; Rezazadegan, D.; Liu, L.; Ghavamzadeh, M.; Fieguth, P.; Cao, X.; Khosravi, A.; Acharya, U.R.; et al. A Review of Uncertainty Quantification in Deep Learning: Techniques, Applications and Challenges. Inf. Fusion 2021, 76, 243–297. [Google Scholar] [CrossRef] [Scilit]
  14. Angelopoulos, A.N.; Bates, S. Conformal prediction: A gentle introduction. Found. Trends Mach. Learn. 2023, 16, 494–591. [Google Scholar] [CrossRef] [Scilit]
  15. Lei, J.; G’Sell, M.; Rinaldo, A.; Tibshirani, R.J.; Wasserman, L. Distribution-Free Predictive Inference for Regression. J. Am. Stat. Assoc. 2018, 113, 1094–1111. [Google Scholar] [CrossRef] [Scilit]
  16. Barber, R.F.; Candès, E.J.; Ramdas, A.; Tibshirani, R.J. Conformal Prediction Beyond Exchangeability. Ann. Stat. 2023, 51, 816–845. [Google Scholar] [CrossRef] [Scilit]
  17. Portela, A.; Banga, J.R.; Matabuena, M. Conformal Prediction for Uncertainty Quantification in Dynamic Biological Systems. PLoS Comput. Biol. 2025, 21, e1013098. [Google Scholar] [CrossRef] [Scilit] [PubMed]
  18. Rose, S.; Borchert, O.; Mitchell, S.; Connelly, S. Zero Trust Architecture; Technical Report NIST Special Publication 800-207; National Institute of Standards and Technology: Gaithersburg, MD, USA, 2020. [CrossRef] [Scilit]
  19. Strom, B.E.; Applebaum, A.; Miller, D.P.; Nickels, K.C.; Pennington, A.G.; Thomas, C.B. MITRE ATT&CK: Design and Philosophy; Technical Report MP180360R1; The MITRE Corporation: McLean, VA, USA, 2020. [Google Scholar]
  20. Sarhan, M.; Layeghy, S.; Portmann, M. Towards a standard feature set for network intrusion detection system datasets. Mob. Netw. Appl. 2022, 27, 357–370. [Google Scholar] [CrossRef] [Scilit]
  21. Demšar, J. Statistical comparisons of classifiers over multiple data sets. J. Mach. Learn. Res. 2006, 7, 1–30. [Google Scholar]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.