Skip to content

Asset Management

The Assets section of the Operations module provides comprehensive asset inventory management, supporting multiple import formats and sophisticated relationship tracking between assets and vulnerabilities.

SPEAR includes the following default asset types:

TypeDescriptionExample Value
ip_addressIPv4 or IPv6 addresses192.168.1.1, 2001:db8::1
hostnameDomain names and hostnamesexample.com, mail.corp.local
emailEmail addressesuser@example.com
credentialLeaked or discovered credentialsadmin:password123
badgeCompany identification badgesBadge #12345
addressPhysical addresses123 Main St, City, State

Custom asset types can be created to accommodate project-specific requirements.

Each asset record contains the following fields:

FieldTypeDescription
asset_typeRelationReference to asset type definition
nameStringDisplay name for the asset
valueStringThe actual asset value (IP, hostname, etc.)
statusSelectCurrent status: active, inactive, archived
tagsArrayTags for categorization and filtering
metadataJSONAdditional key-value metadata
structured_dataJSONStructured data including ports, services
🖥️ Asset Management Interface with Filtering Options Screenshot

Full create, read, update, and delete operations are supported:

  • Create: Add individual assets or bulk import from files
  • Read: View assets in table or floating window format
  • Update: Edit asset details, status, tags, and metadata
  • Delete: Remove assets with confirmation, supports bulk deletion

The asset list supports comprehensive filtering:

  • Asset Type: Filter by one or more asset types
  • Status: Filter by active, inactive, or archived status
  • Vulnerability Severity: Filter assets by the severity of related vulnerabilities
  • Import Source: Filter by the tool that imported the asset
  • Component: Filter by project component (for multi-component projects)
  • Text Search: Search across asset names and values

Sort the asset list by:

  • Severity (of related vulnerabilities)
  • Asset value
  • Status
  • Created date
  • Updated date
🖥️ Floating Window Editor for Assets Screenshot

Assets can be viewed and edited in floating windows:

  • Open multiple assets in separate windows
  • Minimize windows to a taskbar for quick access
  • Restore minimized windows with one click
  • View related vulnerabilities within the asset editor
🖥️ Multi-Format Import Modal Screenshot

SPEAR supports importing from major security tools:

FormatFile TypesMax SizeKey Features
Burp SuiteXML, HTML500MBWeb vulnerabilities, request/response data
NessusXML500MBNetwork vulnerabilities, CVSS scores
NexposeXML500MBRapid7 vulnerability data
NodeZeroCSV500MBAutonomous pentest findings
BloodHoundZIP500MBAD attack paths, relationships
ATLASJSON500MBPhysical security field data
NmapXML500MBPorts, services, OS detection
NucleiJSON500MBTemplate-based findings
SPEARJSON50MBStandardized format
🎨 Import Process Workflow Diagram Illustration

The import workflow follows these steps:

  1. Upload: Select a file through the import modal (up to 500MB)
  2. Detection: System automatically detects the file format
  3. Parsing: Extract assets and vulnerabilities from the file
  4. Deduplication: Check for existing records using matching rules
  5. Creation/Update: Create new records or update existing ones
  6. Mapping: Create asset-vulnerability relationships
  7. Notification: Display import results with success/failure counts

Assets are deduplicated using the following rules:

  • Match Key: value + asset_type + project
  • If Identical: Record is skipped (no changes)
  • If Changed: Record is updated with new data
  • If New: Record is created

This ensures that multiple imports of the same scan data don’t create duplicate records.

Each import creates an import record tracking:

  • Import source and file name
  • Timestamp of import
  • Status: success, partial, fail
  • Counts of created, updated, and skipped records
  • Error messages for failed items

The SPEAR format provides a standardized JSON structure for importing data from tools without dedicated importers.

{
"version": "1.0",
"project_id": "abc123def456",
"import_source": "custom_scanner",
"assets": [...],
"vulnerabilities": [...]
}
FieldTypeRequiredDescription
versionstringYesFormat version (currently “1.0”)
project_idstringYesPocketBase project ID to import into
import_sourcestringYesName of the tool/source
assetsarrayNoArray of asset objects
vulnerabilitiesarrayNoArray of vulnerability objects
{
"asset_type": "ip_address",
"name": "Web Server",
"value": "192.168.1.1",
"status": "active",
"tags": ["production", "web"],
"metadata": {
"os": "Linux",
"ports": [80, 443]
}
}
FieldTypeRequiredDescription
asset_typestringYesAsset type name (must exist in system)
namestringYesDisplay name for the asset
valuestringYesThe actual asset value
statusstringNoStatus: active (default), inactive, archived
tagsarrayNoTags for categorization
metadataobjectNoAdditional key-value metadata
{
"version": "1.0",
"project_id": "abc123def456",
"import_source": "custom_scanner",
"assets": [
{
"asset_type": "ip_address",
"name": "Web Server",
"value": "192.168.1.1",
"status": "active",
"tags": ["production", "web"],
"metadata": {
"os": "Linux",
"ports": [80, 443]
}
},
{
"asset_type": "hostname",
"name": "Main Website",
"value": "example.com",
"status": "active",
"tags": ["production"]
}
],
"vulnerabilities": [
{
"title": "SQL Injection in Login Form",
"severity": "high",
"cve_id": "CVE-2024-1234",
"cwe_id": "CWE-89",
"cvss_score": 8.5,
"description": "The login form is vulnerable to SQL injection attacks.",
"affected_assets": ["192.168.1.1", "example.com"],
"source": "custom_scanner",
"source_id": "scan_001"
}
]
}
🖥️ Asset Relationships with Related Vulnerabilities Screenshot

Each asset displays its related vulnerabilities with:

  • Vulnerability title and severity
  • Port, protocol, and service information
  • Link to the full vulnerability record

The asset view aggregates port information from:

  • Asset structured_data field containing port lists
  • Vulnerability mappings with port/protocol details

This provides a consolidated view of all services running on an asset.

For BloodHound imports, assets track Active Directory relationships:

  • User-to-group memberships
  • Computer-to-domain relationships
  • Attack path connections

The Assets dashboard displays:

MetricDescription
Total AssetsCount of all assets in the current filter
Active AssetsCount of assets with active status
Total VulnerabilitiesCount of related vulnerabilities
Critical VulnerabilitiesCount of critical severity findings

Statistics can be filtered by:

  • Project selection
  • Component selection (for multi-component projects)
  • Asset type
  • Status
  1. Start with network scans - Import Nmap results first to establish the asset baseline
  2. Add vulnerability scans - Import Nessus/Nexpose to map vulnerabilities to discovered assets
  3. Include web scans - Import Burp Suite results for web application findings
  4. Supplement with manual entries - Add assets discovered through manual testing
  • Use consistent naming conventions for assets
  • Apply tags to group related assets (e.g., “dmz”, “internal”, “web-tier”)
  • Archive assets that are no longer in scope
  • Use metadata to store additional context
  • Ensure the project ID is correct before importing
  • Use the same import source name for related scans
  • Review partial imports for any failed records