Skip to content

Triage

Triage reports on one program run. It opens when you double-click a run in Run History. Pick a run in the Select a program run dropdown at the top, or in Run History; a capture cannot be selected here. The panel sits beside Run History in the default layout. This page describes Antinomie 0.8.0, which is in development; the current release is 0.7.1.

Triage of a run with the section tabs Summary, Properties, Detection, Process, Files, Network, eBPF and IOC 3, the status Refreshed 9 s ago · every 5 s and Export report… at the right; the Process section shows Process tree 1, Suspicious activity 1 and Graph, a filter box and one process row with a red 1 chip; Details at the right says Nothing selected.
The section tabs, the refresh status and Export report…; Details sits beside the tables. Antinomie 0.8.0, synthetic data.

The sections are Summary, Properties, Detection, Process, Files, Network, eBPF and IOC. Most of the numbers are counts of what the recording shows; none is a verdict.

Section Holds Reference
Summary Whole-run counts that open the matching section, the detection cards, the activity strip, the IOC card and the worst observations Summary and counts
Properties Hashes, file type and fuzzy hashes of the run’s executable Properties
Detection YARA, IDS and Sigma matches Detection engines
Process Process tree, Suspicious activity and Graph, one segmented control with counts Processes
Files Per-file history, then a tab for each thing a program did to a file: Opened files, Created files, Read files, Written / resized, Deleted files, Renamed / moved, Executed files, Attributes, Metadata probed, Other and Changed files Files, File Reconstruction
Network Endpoints, Domains, URLs and TLS, read from the run’s packet capture Network
eBPF Captured BPF programs, their attachments and seccomp filters Processes
IOC The run’s indicators, matched offline against abuse.ch datasets Network

On Process, Files and Network, a status at the right of the section tabs reads like Refreshed 12 s ago · every 5 s. Its menu has Refresh now, which rebuilds the whole-run index, and Every … s (1 to 300 seconds), which rebuilds it on a timer while the run is live, with a note on the time zone: Host time is the host’s timezone (a ~ marks an estimated guest time), and packet times use QEMU’s capture clock, which can differ. Refresh now is disabled until the recording has a whole-run index. eBPF keeps the same controls as a row above its tables. In a narrow pane the status moves under the tab bar.

On Files, Hide stdio, Hide library and Failed attempts are toggle chips in the filter bar; the first two start on. Since 0.8.0, Per-file history also says how much written content the run kept against its caps, which you can change in Tools → Settings… → Advanced.

A run that lived through a transport reconnect is read whole: every recording segment, oldest first.

Each table has a filter box (see Triage table filters), column titles that sort on a click, and Previous and Next page buttons showing 1–100 of N matched. Right-click a column title to restore the recorded order. A cell shows at most 240 characters; Details has the full value.

Triage Files on the Per-file history tab: the line Written content: 2 bytes kept with the caps per file and per run and a pointer to Settings › Advanced; the file /tmp/analysis-note.txt in the list; its history drawn as open → read ×2 → write; All calls with open, two reads and pwrite64 with their offsets; Content changes Size 5 B → 5 B, 2 bytes differ, 0x00000001 65 6c → 58 59; and a Reconstruct contents… button.
Per-file history: a file's calls as a graph, its calls in a table, and what changed. Antinomie 0.8.0, synthetic data.
  • Single click a row to show it in Details. This covers suspicious activity, processes, files, network rows, indicators, changed-file diffs and BPF decoding.
  • Double click a row to open its original evidence: the syscall in Syscall Trace, or the packet in Network, even if an old filter had hidden it.
  • Right-click a cell to build a filter clause from its value. In a Files tab, the row menu also has Reconstruct contents…, which replays the file in the File Reconstruction window.

Process → Graph draws the same findings as Suspicious activity on one lane per process, against time, with the run’s phases, a severity curve and a category heat strip above the lanes. The Summary shows a small version of it as Main activity graph. See Processes.

Triage Process on the Graph view: the tier chips HIGH 3, MEDIUM 0, LOW 0 and Show INFO 0, the category chips Execution to Exfiltration, Show hidden 0, Open in window, Legend and 3 findings · 3 lanes; a severity curve with three red bars; lanes pid 60, pid 61 and pid 62 each with one red evasion marker; the time axis with Spacing Events, Time, Run and Fit, and the overview ruler below.
The Graph view: one lane per process, markers by tier and category. Antinomie 0.8.0, synthetic data.
New in 0.8.0

Export report… at the right of the section tabs writes the whole run’s Triage, not only what the screen shows, as HTML, PDF, JSON, a MISP event or a STIX 2.1 bundle, with a checkbox per section, optional defanging of the indicators in HTML and PDF, and an optional evidence bundle. The default folder is the run’s report folder. It is disabled until the run has a saved recording. See Report export and evidence bundle.

The Export report dialog over the Triage Summary: Sections with All and None and a checkbox each for Summary, Indicators of compromise, ATT&CK techniques, Processes, Suspicious activity, Files, File activity and reconstruction, Network, Detection engines, Evidence references and Custody log head; Formats HTML, PDF, JSON, MISP and STIX 2.1; Options Evidence bundle and Defang indicators in HTML and PDF; Folder <recording>/report; and Export.
Export report…: the sections, formats and options are remembered between exports. Antinomie 0.8.0, synthetic data.

Warnings sit under the run selector: no network capture for the run, Capture network being off, a recording that stopped saving, or an index still being built (Indexing this run’s files…, Indexing this run’s capture…).

When Triage finishes reading a finished run, it writes a small digest beside the run (triage-digest.json): the highest finding tier, the rules that matched, their ATT&CK techniques, the evasion checks, the detection engines’ matches and the indicators. The sample window adds these up over every run of a sample without reading the recordings again. A run that Triage never opened has no digest, and the sample window says not triaged.

New in 0.8.0