Skip to content

Releases: HalfTimeOfLife/attackmap

v1.2.1 - PyPI release & documentation fix

Choose a tag to compare

@HalfTimeOfLife HalfTimeOfLife released this 01 Aug 16:11

Added

Changed

  • README: installation instructions updated to pip install attackmap-navigator
    instead of the git clone method

attackmap - v1.2 (Interactive HTML output)

Choose a tag to compare

@HalfTimeOfLife HalfTimeOfLife released this 01 Jul 12:15

Adds a html output format producing a fully self-contained, interactive ATT&CK heatmap for browser-based exploration and reporting.

What's new

  • --format html — renders a standalone .html file with no external dependencies (no CDN, no Plotly)
  • New render_html() function, parallel to render_heatmap(), sharing the same column/tactic layout logic
  • Clicking a technique opens a sidebar panel with name, ID, score, full layer comment, and a direct link to MITRE ATT&CK
  • Continuous color gradient matching the matplotlib colormap (#f5f5f5#ffcccc#ff6666#cc0000)
  • Technique data is passed via data-* attributes and HTML-escaped, so analyst comments containing quotes or special characters render safely
  • --format all now generates PNG, SVG, PDF, and HTML in a single run
  • --version flag added

What's included

  • All v1.0/v1.1 features (STIX resolution, auto-split columns, score-based color gradient, --min-score filter, PNG/SVG/PDF output)
  • Updated README with HTML output section and refreshed project structure
  • Updated ROADMAP (v1.2 shipped)

attackmap - v1.1 (`--min-score` filter)

Choose a tag to compare

@HalfTimeOfLife HalfTimeOfLife released this 30 Jun 12:58

Adds a --min-score CLI argument to filter techniques below a confidence threshold before rendering. This allows analysts to isolate confirmed techniques (e.g., score ≥ 80) from inferred or low-confidence ones.

What's new

  • --min-score INT (0–100, default: 100) — techniques with a score below this threshold are excluded from the heatmap
  • Filter applied in enrich_layer() after the enabled check
  • Default value of 100 preserves existing behavior (no filtering)

What's included

  • All v1.0 features (STIX resolution, auto-split columns, score-based color gradient, PNG/SVG/PDF output)
  • Updated README with --min-score usage example and argument table
  • Updated ROADMAP (v1.1 shipped, v1.2 planned)

attackmap - v1.0 (initial release)

Choose a tag to compare

@HalfTimeOfLife HalfTimeOfLife released this 25 Jun 21:54

Generates static MITRE ATT&CK heatmaps (PNG, SVG, PDF) from ATT&CK Navigator JSON layers.
Technique names and tactic assignments are resolved dynamically from the official STIX bundle at runtime.
Tactic columns that exceed the row limit are automatically split into sub-columns.
Each technique cell is color-coded by analyst score (0–100), representing confidence in the presence of the technique in the analyzed sample.

What's included

  • STIX bundle loading and dynamic tactic resolution
  • Layer parsing and ATT&CK enrichment (enabled filter, multi-tactic deduplication)
  • Column layout engine with automatic sub-column splitting
  • Score-based color gradient rendering via matplotlib
  • CLI with --layer, --stix, --output, --title, --format (png, svg, pdf, all)

Assets

  • examples/example-layer.json — sample ATT&CK Navigator layer
  • docs/ — example heatmap outputs (PNG, SVG, PDF)