Davis Geometric
BlackIce / Technical atlas

Inside the simulated world.

The state model, directed memory graph and controlled replay experiment, with the implementation details needed to read each drawing.

BI–01 / Computational anatomy

Read the architecture as a sequence of decisions.

Detailed architecture of the BlackIce browser implementation

A command first passes through response-template matching. An exact or parameterized match can return an authored answer without consulting the modeled shell. Otherwise the shell parser dispatches built-in commands against World state. An unresolved command returns exit 127 and an unknown-source label.

This distinction matters when interpreting a simulation: a successful response may demonstrate that the template matched, rather than that the simulator reproduces the mechanism of the real command.

State inventory and its role in interpretation
Component Implementation fields Why it matters
Identity and platform worldIp, hostname, domain, username, platform Select the context in which commands are interpreted.
Filesystem fs; paths, entries and case-sensitivity mode Read, write and directory operations use the virtual entries.
Environment env, cwd Relative paths and environment expansion depend on these values.
Service observations services.merged, services.history A seeded service listing is a rendering of stored observations.
Response rules templates.exact, templates.patterns A template match precedes the modeled shell. A plausible response can be authored.
Accounts and processes users, groups, processes Commands return the model’s records, not a host-machine inventory.
Configuration simTimeoutSec, useResponseTemplates Configuration is included in the comparison; inclusion alone does not prove an option is enforced.
Session memory chunks, observed, _lastSuccess Recorded separately from World. The replay comparison uses World.run; the memory experiment uses Session.execute.

Two execution paths

World.run(command) produces a command result and any modeled state changes. Session.execute(command) additionally records a memory chunk, writes a command artifact to the virtual filesystem, and requests suggestions when the command fails. The companion’s replay and memory experiments use these different paths explicitly.

BI–02 / Graph and feature construction

An observation can add an edge, not just a count.

All eleven technique nodes and the graph after the three-command discovery sequence

The discovery fixture executes nmap, net view and net user. The classifier maps them to T1046, T1135 and T1087. A successful transition from T1046 to T1135 strengthens an existing edge. The next transition, T1135 to T1087, creates an observed edge absent from the built-in graph.

Graph position is chosen for readability. Edge direction and weights come from the implementation; spatial proximity in the drawing does not represent similarity.

Compute the two observed weights

The added contribution is 0.6 × (count / maxCount) × exp(−ln(2) × age / 30). In this three-step run, both transition counts are one. At logical tick 3, the first observation is one tick old and the second is fresh.

T1046 → T1135: 0.4 + 0.6 × 2^(−1/30) ≈ 0.9863
T1135 → T1087: 0 + 0.6 × 2^0 = 0.6000

Every edge before and after the recorded sequence
Directed edge Before After tick 3 Evidence
T1595 → T1046 0.4000 0.4000 Built-in only
T1046 → T1135 0.4000 0.9863 Observed in this run
T1046 → T1087 0.4000 0.4000 Built-in only
T1046 → T1018 0.4000 0.4000 Built-in only
T1018 → T1087 0.4000 0.4000 Built-in only
T1135 → T1039 0.4000 0.4000 Built-in only
T1135 → T1087 Absent 0.6000 Observed in this run
T1087 → T1649 0.4000 0.4000 Built-in only
T1087 → T1078 0.4000 0.4000 Built-in only
T1649 → T1550 0.4000 0.4000 Built-in only
T1078 → T1021 0.4000 0.4000 Built-in only
T1078 → T1550 0.4000 0.4000 Built-in only
T1550 → T1021.002 0.4000 0.4000 Built-in only
T1021 → T1021.002 0.4000 0.4000 Built-in only

What goes into a technique vector?

Each technique receives a feature of weight 1.0 for its own identifier, 0.8 for each listed CAPEC identifier, and 0.6 for its tactic. These are categorical features, not language embeddings. Distinct techniques can therefore have nonzero cosine similarity when they share a tactic or CAPEC feature.

The complete eleven-technique knowledge slice embedded in this browser engine
Technique Tactic CAPEC features Built-in outgoing edges
T1595
Active Scanning
reconnaissance CAPEC-169 T1046
T1046
Network Service Discovery
discovery CAPEC-300 T1135, T1087, T1018
T1018
Remote System Discovery
discovery CAPEC-292 T1087
T1135
Network Share Discovery
discovery CAPEC-643 T1039
T1087
Account Discovery
discovery CAPEC-575 T1649, T1078
T1039
Data from Network Shared Drive
collection CAPEC-639 No outgoing built-in edges
T1649
Steal or Forge Authentication Certificates
credential-access None in the demo slice T1550
T1078
Valid Accounts
initial-access CAPEC-560 T1021, T1550
T1550
Use Alternate Authentication Material
lateral-movement None in the demo slice T1021.002
T1021
Remote Services
lateral-movement CAPEC-555 T1021.002
T1021.002
SMB/Windows Admin Shares
lateral-movement CAPEC-561 No outgoing built-in edges

How the ranking combines signals

The implementation adds 0.45 times cosine similarity, 0.25 times path evidence and 0.30 times the random-walk score. Path evidence enumerates simple paths up to four edges, sums their edge-weight products, normalizes by at least one or the largest edge weight, and caps at one. The random walk uses a 0.85 continuation factor and stops after ten iterations or an L1 change below 10⁻⁶; mass at nodes without outgoing edges is not redistributed. These scores are ranking components, not calibrated probabilities.

BI–03 / Negative control

A matching last answer can conceal a different world.

Four real command outputs per world, showing a changed note but an identical final result file

Both worlds report the same user. Reading the initial note exposes the deliberate change in World B. Both then write and read the same result file, so their last outputs match. The original note is still different. This is why the companion compares the complete execution record and declared state rather than only the last response.

State differences that persist after the same script
Observation World A World B / changed-input control
Initial note baseline changed baseline
Final /opt/notes.txt baseline changed baseline
Final /opt/result.txt reviewed reviewed
Matching command records 3 of 4; the note-reading record differs

The browser compares sorted serialized records directly. SHA-256 serves as a compact label for the record. Equality for these runs establishes agreement for the chosen fixture and code, rather than universal determinism or equivalence to a real system.