Skip to main content

Application Objects

Application objects define custom applications with detailed security attributes in Strata Cloud Manager. The scm CLI provides commands to create, update, delete, show, backup, and load application objects.

Overview​

The application commands allow you to:

  • Create and update custom application definitions
  • Define application category, subcategory, and technology
  • Set risk levels and security characteristics
  • Configure protocol and port mappings
  • Export applications for backup or migration

Set Application​

Create or update an application object.

Syntax​

scm set object application NAME [OPTIONS]

Arguments​

ArgumentDescriptionRequired
NAMEName of the applicationYes

Options​

OptionDescriptionRequired
--folder TEXTFolder locationYes*
--snippet TEXTSnippet locationYes*
--device TEXTDevice locationYes*
--category TEXTPrimary categoryYes
--subcategory TEXTSubcategory within the main categoryYes
--technology TEXTTechnology typeYes
--risk INTEGERRisk level (1-5)Yes
--ports TEXTProtocol/port combination, e.g. tcp/8080 (repeat for multiple)No
--description TEXTDescription of the applicationNo
--tags TEXTTag to apply (repeat for multiple)No
--evasiveUses evasive techniquesNo
--pervasiveWidely usedNo
--excessive-bandwidth-useConsumes excessive bandwidthNo
--used-by-malwareKnown to be used by malwareNo
--transfers-filesCan transfer filesNo
--has-known-vulnerabilitiesHas known security vulnerabilitiesNo
--tunnels-other-appsCan tunnel other applicationsNo
--prone-to-misuseProne to misuseNo
--no-certificationsLacks certificationsNo

* Exactly one of --folder, --snippet, or --device is required.

Examples​

Create a Basic Application​

$ scm set object application custom-crm \
--folder Texas \
--category business-systems \
--subcategory database \
--technology client-server \
--risk 3 \
--ports tcp/8080 --ports tcp/8443 \
--description "Custom CRM application"
---> 100%
Created application: custom-crm in folder Texas

Create an Application with Security Attributes​

$ scm set object application file-transfer-app \
--folder Texas \
--category collaboration \
--subcategory file-sharing \
--technology peer-to-peer \
--risk 4 \
--ports tcp/2121 --ports udp/2121 \
--transfers-files \
--has-known-vulnerabilities \
--description "P2P file transfer application"
---> 100%
Created application: file-transfer-app in folder Texas

Create an Application with Tags​

$ scm set object application database-app \
--folder Shared \
--category business-systems \
--subcategory database \
--technology client-server \
--risk 1 \
--ports tcp/1433 \
--tags database --tags internal \
--description "SQL Server application"
---> 100%
Created application: database-app in folder Shared

Delete Application​

Delete an application object from SCM.

Syntax​

scm delete object application NAME [OPTIONS]

Arguments​

ArgumentDescriptionRequired
NAMEName of the application object to deleteYes

Options​

OptionDescriptionRequired
--folder TEXTFolder locationYes*
--snippet TEXTSnippet locationYes*
--device TEXTDevice locationYes*
--forceSkip confirmation promptNo

* Exactly one of --folder, --snippet, or --device is required.

Example​

$ scm delete object application custom-crm --folder Texas --force
---> 100%
Deleted application: custom-crm from folder Texas

Load Applications​

Load multiple application objects from a YAML file.

Syntax​

scm load object application [OPTIONS]

Options​

OptionDescriptionRequired
--file TEXTPath to YAML file containing application definitionsYes
--folder TEXTOverride folder location for all objectsNo
--snippet TEXTOverride snippet location for all objectsNo
--device TEXTOverride device location for all objectsNo
--dry-runPreview changes without applying themNo

YAML File Format​

---
applications:
- name: custom-crm
folder: Texas
category: business-systems
subcategory: database
technology: client-server
risk: 3
description: "Custom CRM application"
ports:
- tcp/8080
- tcp/8443

- name: file-transfer-app
folder: Texas
category: collaboration
subcategory: file-sharing
technology: peer-to-peer
risk: 4
description: "P2P file transfer application"
ports:
- tcp/2121
- udp/2121
able_to_transfer_files: true
has_known_vulnerabilities: true

Examples​

Load with Original Locations​

$ scm load object application --file applications.yml
---> 100%
✓ Loaded application: custom-crm
✓ Loaded application: file-transfer-app

Successfully loaded 2 out of 2 applications from 'applications.yml'

Load with Folder Override​

$ scm load object application --file applications.yml --folder Austin
---> 100%
✓ Loaded application: custom-crm
✓ Loaded application: file-transfer-app

Successfully loaded 2 out of 2 applications from 'applications.yml'
note

When using container override options (--folder, --snippet, --device), all applications will be loaded into the specified container, ignoring the container specified in the YAML file.

Show Application​

Display application objects.

Syntax​

scm show object application [NAME] [OPTIONS]

Arguments​

ArgumentDescriptionRequired
NAMEName of the application object to show; omit to list allNo

Options​

OptionDescriptionRequired
--folder TEXTFolder locationYes*
--snippet TEXTSnippet locationYes*
--device TEXTDevice locationYes*
--max-results INTEGERMaximum number of results to displayNo
--output [table|json|yaml]Output format (default: table)No

* Exactly one of --folder, --snippet, or --device is required.

note

When no NAME argument is provided, all items are listed by default.

Examples​

Show Specific Application​

$ scm show object application custom-crm --folder Texas
---> 100%
Application: custom-crm
Location: Folder 'Texas'
Category: business-systems
Subcategory: database
Technology: client-server
Risk: 3
Ports: tcp/8080, tcp/8443
Description: Custom CRM application
ID: 123e4567-e89b-12d3-a456-426614174000

List All Applications (Default Behavior)​

$ scm show object application --folder Texas
---> 100%
Applications in folder 'Texas':
------------------------------------------------------------
Name: custom-crm
Location: Folder 'Texas'
Category: business-systems
Subcategory: database
Technology: client-server
Risk: 3
Ports: tcp/8080, tcp/8443
Description: Custom CRM application
------------------------------------------------------------
Name: file-transfer-app
Location: Folder 'Texas'
Category: collaboration
Subcategory: file-sharing
Technology: peer-to-peer
Risk: 4
Ports: tcp/2121, udp/2121
Security Attributes: able-to-transfer-files, has-known-vulnerabilities
Description: P2P file transfer application
------------------------------------------------------------

Backup Applications​

Backup all application objects from a specified location to a YAML file.

Syntax​

scm backup object application [OPTIONS]

Options​

OptionDescriptionRequired
--folder TEXTFolder to backup applications fromNo*
--snippet TEXTSnippet to backup applications fromNo*
--device TEXTDevice to backup applications fromNo*
--file TEXTOutput filename (defaults to auto-generated)No

* One of --folder, --snippet, or --device is required.

Examples​

Backup from Folder​

$ scm backup object application --folder Texas
---> 100%
Successfully backed up 10 applications to application_folder_texas_20240115_120530.yaml

Backup with Custom Filename​

$ scm backup object application --folder Texas --file texas-applications.yaml
---> 100%
Successfully backed up 10 applications to texas-applications.yaml

Best Practices​

  1. Use Descriptive Names: Choose clear, descriptive names for applications that indicate their purpose.
  2. Set Appropriate Risk Levels: Risk levels (1-5) help in policy decisions and should reflect actual risk.
  3. Define Security Attributes: Include relevant attributes like file transfer capability and vulnerability status.
  4. Use YAML for Bulk Operations: For large deployments, use YAML files to manage applications.
  5. Validate First: Use the --dry-run option to preview changes before applying them.
  6. Port Specifications: Support ranges (e.g., "tcp/8000-8100") and comma-separated lists.
  7. Organize by Container: Keep applications organized in appropriate folders, snippets, or devices.