Proposal: Custom Asset Type Support in SecOpsTM (DSL extension for user-defined asset types) #27
Replies: 3 comments 3 replies
-
|
Hi @zhangtianqi-james, this is a really great idea. You've identified a real limitation in the current design. Hardcoding asset types in Rather than DSL-level per-project definitions, I'd like to go one step further and build a shared community dictionary that benefits everyone. Here are my thoughts on each of your questions: 1. DSL syntax Instead of embedding custom types in the threat model markdown, I'd propose a dedicated 2. Parameter names Your naming is intuitive and I'd keep it as-is:
3. Priority resolution: override vs merge? The single YAML approach eliminates this question entirely. With one file as the source of truth, there's only one definition per type — collaboratively maintained. If a contributor wants to enrich an existing type (add a 4. Additional use cases Your 5 categories are a great starting point. The 5. Documentation A dedicated Proposed structureasset_types:
workstation:
description: "Standard end-user workstation"
category: endpoint
platforms: [Windows, Linux, macOS]
tactics: [initial-access, execution, persistence]
key_techniques: [T1566, T1059, T1078]
fuzzy_matches: [workstation, desktop, laptop]
icon_url:"/icons/workstation.png"
iot-camera:
description: "IP-connected surveillance camera"
category: iot
platforms: [Linux, Network Devices]
tactics: [initial-access, collection, impact]
key_techniques: [T1190, T1059, T1498]
fuzzy_matches: [camera, ipcam, cctv]
icon_url: "/icons/iot-camera.png"
scada-plc:
description: "Programmable Logic Controller in SCADA/ICS"
category: ot
platforms: [Embedded, Windows]
tactics: [impact, execution, lateral-movement]
key_techniques: [T1498, T1565.001, T1059]
fuzzy_matches: [plc, scada, rtu]
icon_url: "/icons/scada-plc.png"What do you think about that? |
Beta Was this translation helpful? Give feedback.
-
|
Hi @ellipse2v, Thanks for the thoughtful feedback! I love the idea of a shared community dictionary — that's definitely better than my original per-project approach. The YAML structure looks great, and I agree that keeping the DSL focused on the threat model itself is the right design choice. The One question: should the built-in types from This would be a valuable addition to SecOpsTM. Happy to see where you'd like to take it! |
Beta Was this translation helpful? Give feedback.
-
|
hi @zhangtianqi-james please find here a first draft https://github.com/ellipse2v/SecOpsTM/tree/custom_asset_type , what do you think ? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi @ellipse2v ,
I've been exploring SecOpsTM for modeling some specialized systems (IoT devices and SCADA equipment) and encountered a limitation: the current asset type mappings are hardcoded in
asset_technique_mapper.py, which means custom asset types fall back to "default" and lose precise MITRE ATT&CK correlation.I'd like to propose a Custom Asset Type feature that allows users to define their own asset types directly in the DSL markdown, without modifying source code. This would enable modeling of specialized systems while maintaining full compatibility with existing threat analysis and GDAF workflows.
Below is a detailed proposal. I'd really appreciate your feedback on:
Thanks for building such a powerful framework! 🙏
Proposal: Custom Asset Type Support in SecOpsTM
Executive Summary
This proposal adds support for user-defined asset types in SecOpsTM, enabling users to extend the built-in MITRE ATT&CK mapping without modifying source code. This is essential for modeling specialized systems (IoT, SCADA, legacy equipment) that fall outside the 31 pre-defined asset types.
Business Value
Problem Statement
Currently, SecOpsTM hardcodes asset type mappings in
asset_technique_mapper.py:ASSET_TYPE_TO_PLATFORMS— 31 pre-defined typesASSET_TYPE_TO_TACTICS— 31 pre-defined typesASSET_TYPE_KEY_TECHNIQUES— 21 pre-defined typesLimitation: Users modeling IoT cameras, SCADA PLCs, medical devices, or other specialized assets cannot define custom type mappings. Unknown types fall back to "default", losing precise MITRE ATT&CK correlation.
Use Cases
iot-camera,iot-sensor,smart-hvacscada-plc,rtu-controller,safety-instrumented-systeminfusion-pump,patient-monitor,pacemaker-programmermainframe-lpar,as400-system,proprietary-dcsserverless-function,container-orchestrator,service-mesh-control-planeBenefits
Technical Solution
DSL Syntax
Add new
## Custom Asset Typessection to threat model markdown:PLC-1: type="scada-plc", boundary="OT"Required Parameters
platforms(required): MITRE ATT&CK platform tags for technique matchingtactics(required): Primary tactics for this asset type (affects GDAF scoring priority)Optional Parameters
key_techniques: High-value technique IDs to boost in scoringfuzzy_matches: String patterns for automatic type normalization (e.g., "camera" → "iot-camera")Code Changes Summary
Files Modified (5 files)
Hope for Feedback
I seek your input on:
platforms,tactics,key_techniques,fuzzy_matchesintuitive?Beta Was this translation helpful? Give feedback.
All reactions