mitre-attack / mitreattack-python

A python module for working with ATT&CK
https://mitreattack-python.readthedocs.io/
Apache License 2.0
447 stars 103 forks source link

[Bug] showSubtechniques in SVGConfig does not show the sub techniques in the SVG #169

Open KustoKing opened 5 months ago

KustoKing commented 5 months ago

Expected Behavior

Expanded sub techniques in SVG

Actual Behavior

SVG is not showing sub techniques, while the attack navigator does

Steps to Reproduce the Problem

  1. create a json with: layout: "expandedSubtechniques": "all" techniques "showSubtechniques": True "selectSubtechniquesWithParent": True
  2. Validate that the json contains: layout: "expandedSubtechniques": "all" techniques: "showSubtechniques": true "selectSubtechniquesWithParent": true
  3. Validate that the json works in attack explorer
  4. Import: from mitreattack.navlayers.exporters.to_svg import ToSvg, SVGConfig
  5. svgconf =SVGConfig(width=118.9, height=84.1, unit="cm", showHeader=False, fontSize=12, showSubtechniques="all")
  6. export with exporter = ToSvg(domain='enterprise', source='local', resource=resource_path, config=svgconf) exporter.to_svg(layerInit=layer, filepath="Coverage.svg")

Possible Solution

Review > mitreattack.navlayers.exporters.to_svg

adpare commented 5 months ago

Hi @KustoKing,

Thanks for opening a request! You are right. There is a bug in the code used to expand the subtechniques in the SVG. We do plan to address this issue. As a workaround, I suggest you follow the steps below -

  1. Open the layer in ATT&CK navigator
  2. Select expand sub-techniques in the navigator toolbar
  3. Download the layer
  4. Then you can create the SVG using the new layer file and the mitreattack-python library

Alternatively, if you want to strictly make use of the mitreattack-python library, ensure that ALL techniques have been included in the layer file with showSubtechniques: true.

Let us know if you encounter any issues.