2020-12-02 02:54:10 -08:00
import {
2020-12-02 02:24:25 -08:00
INodeProperties ,
} from 'n8n-workflow' ;
2020-12-02 02:54:10 -08:00
import {
2020-12-02 02:24:25 -08:00
TLP ,
} from './AnalyzerInterface' ;
2021-12-03 00:44:16 -08:00
export const respondersOperations : INodeProperties [ ] = [
2020-12-02 02:24:25 -08:00
{
displayName : 'Operation' ,
name : 'operation' ,
type : 'options' ,
2022-05-20 14:47:24 -07:00
noDataExpression : true ,
2020-12-02 02:24:25 -08:00
required : true ,
2022-05-06 14:01:25 -07:00
description : 'Choose an operation' ,
2020-12-02 02:24:25 -08:00
displayOptions : {
show : {
resource : [
'responder' ,
] ,
} ,
} ,
options : [
{
name : 'Execute' ,
value : 'execute' ,
2020-12-02 02:54:10 -08:00
description : 'Execute Responder' ,
2022-07-10 13:50:51 -07:00
action : 'Execute a responder' ,
2020-12-02 02:54:10 -08:00
} ,
2020-12-02 02:24:25 -08:00
] ,
2020-12-02 02:54:10 -08:00
default : 'execute' ,
} ,
2021-12-03 00:44:16 -08:00
] ;
2020-12-02 02:24:25 -08:00
export const responderFields : INodeProperties [ ] = [
{
2022-06-03 10:23:49 -07:00
displayName : 'Responder Type Name or ID' ,
2020-12-02 02:24:25 -08:00
name : 'responder' ,
type : 'options' ,
required : true ,
typeOptions : {
2020-12-02 02:54:10 -08:00
loadOptionsMethod : 'loadActiveResponders' ,
2020-12-02 02:24:25 -08:00
} ,
default : '' ,
displayOptions : {
show : {
resource : [
'responder' ,
] ,
} ,
} ,
2022-07-14 13:05:11 -07:00
description : 'Choose the responder. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>.' ,
2020-12-02 02:24:25 -08:00
} ,
{
2022-06-03 10:23:49 -07:00
displayName : 'Entity Type Name or ID' ,
2020-12-02 02:24:25 -08:00
name : 'entityType' ,
type : 'options' ,
required : true ,
displayOptions : {
show : {
resource : [
'responder' ,
2020-12-02 02:54:10 -08:00
] ,
2020-12-02 02:24:25 -08:00
} ,
} ,
typeOptions : {
loadOptionsMethod : 'loadDataTypeOptions' ,
loadOptionsDependsOn : [
'responder' ,
] ,
} ,
default : '' ,
2022-07-14 13:05:11 -07:00
description : 'Choose the Data type. Choose from the list, or specify an ID using an <a href="https://docs.n8n.io/code-examples/expressions/">expression</a>.' ,
2020-12-02 02:24:25 -08:00
} ,
{
displayName : 'JSON Parameters' ,
name : 'jsonObject' ,
type : 'boolean' ,
default : false ,
2022-06-20 07:54:01 -07:00
// eslint-disable-next-line n8n-nodes-base/node-param-description-boolean-without-whether
2022-05-06 14:01:25 -07:00
description : 'Choose between providing JSON object or seperated attributes' ,
2020-12-02 02:24:25 -08:00
displayOptions : {
show : {
resource : [
'responder' ,
] ,
} ,
} ,
} ,
{
displayName : 'Entity Object (JSON)' ,
name : 'objectData' ,
type : 'string' ,
required : true ,
displayOptions : {
show : {
resource : [
'responder' ,
] ,
jsonObject : [
true ,
] ,
} ,
} ,
2020-12-02 02:54:10 -08:00
default : '' ,
2020-12-02 02:24:25 -08:00
} ,
{
displayName : 'Parameters' ,
name : 'parameters' ,
type : 'fixedCollection' ,
placeholder : 'Add Parameter' ,
options : [
{
displayName : 'Case Attributes' ,
name : 'values' ,
values : [
{
2022-06-28 23:42:35 -07:00
displayName : 'Description' ,
name : 'description' ,
2020-12-02 02:24:25 -08:00
type : 'string' ,
default : '' ,
2022-06-28 23:42:35 -07:00
description : 'Description of the case' ,
2020-12-02 02:24:25 -08:00
} ,
{
2022-06-28 23:42:35 -07:00
displayName : 'Flag' ,
name : 'flag' ,
type : 'boolean' ,
default : false ,
// eslint-disable-next-line n8n-nodes-base/node-param-description-boolean-without-whether
description : 'Flag of the case default=false' ,
} ,
{
displayName : 'Owner' ,
name : 'owner' ,
2020-12-02 02:24:25 -08:00
type : 'string' ,
default : '' ,
2022-06-28 23:42:35 -07:00
description : 'User who owns the case. This is automatically set to current user when status is set to InProgress.' ,
2020-12-02 02:24:25 -08:00
} ,
{
displayName : 'Severity' ,
name : 'severity' ,
type : 'options' ,
default : 2 ,
options : [
{
name : 'Low' ,
value : 1 ,
} ,
{
name : 'Medium' ,
value : 2 ,
} ,
{
name : 'High' ,
value : 3 ,
} ,
] ,
2022-04-22 09:29:51 -07:00
description : 'Severity of the case. Default=Medium.' ,
2020-12-02 02:24:25 -08:00
} ,
{
displayName : 'Start Date' ,
name : 'startDate' ,
type : 'dateTime' ,
default : '' ,
description : 'Date and time of the begin of the case default=now' ,
} ,
{
2022-06-28 23:42:35 -07:00
displayName : 'Tags' ,
name : 'tags' ,
2020-12-02 02:24:25 -08:00
type : 'string' ,
default : '' ,
2022-06-28 23:42:35 -07:00
placeholder : 'tag1,tag2,...' ,
2020-12-02 02:24:25 -08:00
} ,
{
2022-06-28 23:42:35 -07:00
displayName : 'Title' ,
name : 'title' ,
type : 'string' ,
default : '' ,
description : 'Title of the case' ,
2020-12-02 02:24:25 -08:00
} ,
{
displayName : 'TLP' ,
name : 'tlp' ,
type : 'options' ,
default : 2 ,
options : [
{
name : 'White' ,
value : TLP.white ,
} ,
{
name : 'Green' ,
value : TLP.green ,
} ,
{
name : 'Amber' ,
value : TLP.amber ,
} ,
{
name : 'Red' ,
value : TLP.red ,
} ,
] ,
2022-06-28 23:42:35 -07:00
description : 'Traffic Light Protocol (TLP). Default=Amber.' ,
2020-12-02 02:24:25 -08:00
} ,
] ,
} ,
] ,
2020-12-02 02:54:10 -08:00
typeOptions : {
loadOptionsDependsOn : [
2020-12-02 02:24:25 -08:00
'entityType' ,
] ,
} ,
displayOptions : {
show : {
resource : [
'responder' ,
] ,
jsonObject : [
false ,
] ,
entityType : [
'case' ,
] ,
} ,
hide : {
entityType : [
'' ,
'alert' ,
'case_artifact' ,
'case_task' ,
'case_task_log' ,
] ,
} ,
} ,
2020-12-02 02:54:10 -08:00
default : { } ,
2020-12-02 02:24:25 -08:00
} ,
{
displayName : 'Parameters' ,
name : 'parameters' ,
type : 'fixedCollection' ,
placeholder : 'Add Parameter' ,
options : [
{
displayName : 'Alert Attributes' ,
name : 'values' ,
values : [
{
displayName : 'Artifacts' ,
name : 'artifacts' ,
type : 'fixedCollection' ,
2020-12-02 02:54:10 -08:00
placeholder : 'Add an artifact' ,
2020-12-02 02:24:25 -08:00
typeOptions : {
multipleValues : true ,
multipleValueButtonText : 'Add an Artifact' ,
} ,
default : [ ] ,
options : [
{
displayName : 'Artifact' ,
name : 'artifactValues' ,
values : [
2022-06-28 23:42:35 -07:00
{
displayName : 'Binary Property' ,
name : 'binaryProperty' ,
type : 'string' ,
displayOptions : {
show : {
dataType : [
'file' ,
] ,
} ,
} ,
default : 'data' ,
} ,
{
displayName : 'Data' ,
name : 'data' ,
type : 'string' ,
displayOptions : {
hide : {
dataType : [
'file' ,
] ,
} ,
} ,
default : '' ,
} ,
2020-12-02 02:24:25 -08:00
{
displayName : 'Data Type' ,
name : 'dataType' ,
type : 'options' ,
default : '' ,
options : [
{
name : 'Domain' ,
value : 'domain' ,
} ,
{
name : 'File' ,
2020-12-02 02:54:10 -08:00
value : 'file' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Filename' ,
2020-12-02 02:54:10 -08:00
value : 'filename' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Fqdn' ,
2020-12-02 02:54:10 -08:00
value : 'fqdn' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Hash' ,
2020-12-02 02:54:10 -08:00
value : 'hash' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'IP' ,
2020-12-02 02:54:10 -08:00
value : 'ip' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Mail' ,
2020-12-02 02:54:10 -08:00
value : 'mail' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Mail Subject' ,
2020-12-02 02:54:10 -08:00
value : 'mail_subject' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Other' ,
2020-12-02 02:54:10 -08:00
value : 'other' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Regexp' ,
2020-12-02 02:54:10 -08:00
value : 'regexp' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Registry' ,
2020-12-02 02:54:10 -08:00
value : 'registry' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Uri Path' ,
2020-12-02 02:54:10 -08:00
value : 'uri_path' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'URL' ,
2020-12-02 02:54:10 -08:00
value : 'url' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'User Agent' ,
2020-12-02 02:54:10 -08:00
value : 'user-agent' ,
2020-12-02 02:24:25 -08:00
} ,
] ,
} ,
{
displayName : 'Message' ,
name : 'message' ,
type : 'string' ,
default : '' ,
} ,
{
displayName : 'Tags' ,
name : 'tags' ,
type : 'string' ,
default : '' ,
} ,
] ,
2020-12-02 02:54:10 -08:00
} ,
] ,
2020-12-02 02:24:25 -08:00
} ,
2022-06-28 23:42:35 -07:00
{
displayName : 'Date' ,
name : 'date' ,
type : 'dateTime' ,
default : '' ,
description : 'Date and time when the alert was raised default=now' ,
} ,
{
displayName : 'Description' ,
name : 'description' ,
type : 'string' ,
default : '' ,
description : 'Description of the alert' ,
} ,
{
displayName : 'Follow' ,
name : 'follow' ,
type : 'boolean' ,
default : false ,
} ,
{
displayName : 'Severity' ,
name : 'severity' ,
type : 'options' ,
default : 2 ,
options : [
{
name : 'Low' ,
value : 1 ,
} ,
{
name : 'Medium' ,
value : 2 ,
} ,
{
name : 'High' ,
value : 3 ,
} ,
] ,
description : 'Severity of the case. Default=Medium.' ,
} ,
{
displayName : 'Source' ,
name : 'source' ,
type : 'string' ,
default : '' ,
description : 'Source of the alert' ,
} ,
{
displayName : 'SourceRef' ,
name : 'sourceRef' ,
type : 'string' ,
default : '' ,
description : 'Source reference of the alert' ,
} ,
{
displayName : 'Status' ,
name : 'status' ,
type : 'options' ,
default : 'New' ,
options : [
{
name : 'New' ,
value : 'New' ,
} ,
{
name : 'Updated' ,
value : 'Updated' ,
} ,
{
name : 'Ignored' ,
value : 'Ignored' ,
} ,
{
name : 'Imported' ,
value : 'Imported' ,
} ,
] ,
description : 'Status of the alert. Default=New.' ,
} ,
{
displayName : 'Tags' ,
name : 'tags' ,
type : 'string' ,
placeholder : 'tag1,tag2,...' ,
default : '' ,
} ,
{
displayName : 'Title' ,
name : 'title' ,
type : 'string' ,
default : '' ,
description : 'Title of the alert' ,
} ,
{
displayName : 'TLP' ,
name : 'tlp' ,
type : 'options' ,
default : 2 ,
options : [
{
name : 'White' ,
value : TLP.white ,
} ,
{
name : 'Green' ,
value : TLP.green ,
} ,
{
name : 'Amber' ,
value : TLP.amber ,
} ,
{
name : 'Red' ,
value : TLP.red ,
} ,
] ,
description : 'Traffic Light Protocol (TLP). Default=Amber.' ,
} ,
{
displayName : 'Type' ,
name : 'type' ,
type : 'string' ,
default : '' ,
description : 'Type of the alert' ,
} ,
2020-12-02 02:54:10 -08:00
] ,
} ,
2020-12-02 02:24:25 -08:00
] ,
2020-12-02 02:54:10 -08:00
typeOptions : {
loadOptionsDependsOn : [
2020-12-02 02:24:25 -08:00
'entityType' ,
] ,
} ,
displayOptions : {
show : {
resource : [
'responder' ,
] ,
jsonObject : [
false ,
] ,
entityType : [
'alert' ,
] ,
} ,
hide : {
responder : [
'' ,
] ,
entityType : [
'' ,
'case' ,
'case_artifact' ,
'case_task' ,
'case_task_log' ,
] ,
} ,
} ,
default : { } ,
} ,
{
displayName : 'Parameters' ,
name : 'parameters' ,
type : 'fixedCollection' ,
placeholder : 'Add Parameter' ,
options : [
{
displayName : 'Observable Attributes' ,
name : 'values' ,
values : [
2022-06-28 23:42:35 -07:00
{
displayName : 'Binary Property' ,
name : 'binaryPropertyName' ,
type : 'string' ,
default : 'data' ,
displayOptions : {
show : {
dataType : [
'file' ,
] ,
} ,
} ,
description : 'Name of the binary property which contains the attachement data' ,
} ,
{
displayName : 'Data' ,
name : 'data' ,
type : 'string' ,
default : '' ,
displayOptions : {
hide : {
dataType : [
'file' ,
] ,
} ,
} ,
} ,
2020-12-02 02:24:25 -08:00
{
displayName : 'DataType' ,
name : 'dataType' ,
type : 'options' ,
default : '' ,
options : [
{
name : 'Domain' ,
value : 'domain' ,
} ,
{
name : 'File' ,
2020-12-02 02:54:10 -08:00
value : 'file' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Filename' ,
2020-12-02 02:54:10 -08:00
value : 'filename' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Fqdn' ,
2020-12-02 02:54:10 -08:00
value : 'fqdn' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Hash' ,
2020-12-02 02:54:10 -08:00
value : 'hash' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'IP' ,
2020-12-02 02:54:10 -08:00
value : 'ip' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Mail' ,
2020-12-02 02:54:10 -08:00
value : 'mail' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Mail Subject' ,
2020-12-02 02:54:10 -08:00
value : 'mail_subject' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Other' ,
2020-12-02 02:54:10 -08:00
value : 'other' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Regexp' ,
2020-12-02 02:54:10 -08:00
value : 'regexp' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Registry' ,
2020-12-02 02:54:10 -08:00
value : 'registry' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'Uri Path' ,
2020-12-02 02:54:10 -08:00
value : 'uri_path' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'URL' ,
2020-12-02 02:54:10 -08:00
value : 'url' ,
2020-12-02 02:24:25 -08:00
} ,
{
name : 'User Agent' ,
2020-12-02 02:54:10 -08:00
value : 'user-agent' ,
2020-12-02 02:24:25 -08:00
} ,
] ,
} ,
{
2022-06-28 23:42:35 -07:00
displayName : 'IOC' ,
name : 'ioc' ,
type : 'boolean' ,
default : false ,
description : 'Whether the observable is an IOC (Indicator of compromise)' ,
2020-12-02 02:24:25 -08:00
} ,
{
displayName : 'Message' ,
name : 'message' ,
type : 'string' ,
2020-12-02 02:54:10 -08:00
default : '' ,
2020-12-02 02:24:25 -08:00
} ,
{
displayName : 'Start Date' ,
name : 'startDate' ,
type : 'dateTime' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Date and time of the begin of the case default=now' ,
2020-12-02 02:24:25 -08:00
} ,
2022-06-28 23:42:35 -07:00
{
displayName : 'Status' ,
name : 'status' ,
type : 'options' ,
default : '' ,
options : [
{
name : 'Ok' ,
value : 'Ok' ,
} ,
{
name : 'Deleted' ,
value : 'Deleted' ,
} ,
] ,
description : 'Status of the observable (Ok or Deleted) default=Ok' ,
} ,
2020-12-02 02:24:25 -08:00
{
displayName : 'TLP' ,
name : 'tlp' ,
type : 'options' ,
default : 2 ,
options : [
{
2020-12-02 02:54:10 -08:00
name : 'White' ,
value : TLP.white ,
2020-12-02 02:24:25 -08:00
} ,
{
2020-12-02 02:54:10 -08:00
name : 'Green' ,
value : TLP.green ,
2020-12-02 02:24:25 -08:00
} ,
{
2020-12-02 02:54:10 -08:00
name : 'Amber' ,
value : TLP.amber ,
} , {
name : 'Red' ,
value : TLP.red ,
} ,
2020-12-02 02:24:25 -08:00
] ,
2022-06-28 23:42:35 -07:00
description : 'Traffic Light Protocol (TLP). Default=Amber.' ,
2020-12-02 02:54:10 -08:00
} ,
2020-12-02 02:24:25 -08:00
] ,
} ,
] ,
2020-12-02 02:54:10 -08:00
typeOptions : {
loadOptionsDependsOn : [
2020-12-02 02:24:25 -08:00
'entityType' ,
] ,
} ,
displayOptions : {
show : {
resource : [
'responder' ,
] ,
jsonObject : [
false ,
] ,
entityType : [
'case_artifact' ,
] ,
} ,
hide : {
responder : [
'' ,
] ,
entityType : [
'' ,
'case' ,
'alert' ,
'case_task' ,
'case_task_log' ,
] ,
} ,
} ,
default : { } ,
} ,
{
displayName : 'Parameters' ,
name : 'parameters' ,
type : 'fixedCollection' ,
placeholder : 'Add Parameter' ,
options : [
{
displayName : 'Task Attributes' ,
name : 'values' ,
values : [
{
displayName : 'Title' ,
name : 'title' ,
type : 'string' ,
default : '' ,
2022-05-06 14:01:25 -07:00
description : 'Title of the task' ,
2020-12-02 02:24:25 -08:00
} ,
{
displayName : 'Status' ,
name : 'status' ,
type : 'options' ,
default : 'Waiting' ,
options : [
{
name : 'Waiting' ,
value : 'Waiting' ,
} ,
{
name : 'InProgress' ,
value : 'InProgress' ,
} ,
{
name : 'Completed' ,
value : 'Completed' ,
} ,
{
name : 'Cancel' ,
value : 'Cancel' ,
} ,
] ,
} ,
{
displayName : 'Flag' ,
name : 'flag' ,
type : 'boolean' ,
2020-12-02 02:54:10 -08:00
default : false ,
} ,
] ,
} ,
2020-12-02 02:24:25 -08:00
] ,
2020-12-02 02:54:10 -08:00
typeOptions : {
loadOptionsDependsOn : [
2020-12-02 02:24:25 -08:00
'entityType' ,
] ,
} ,
displayOptions : {
show : {
resource : [
'responder' ,
] ,
jsonObject : [
false ,
] ,
entityType : [
'case_task' ,
] ,
} ,
hide : {
responder : [
'' ,
] ,
entityType : [
'' ,
'case' ,
'alert' ,
'case_artifact' ,
'case_task_log' ,
] ,
} ,
} ,
default : { } ,
} ,
{
displayName : 'Parameters' ,
name : 'parameters' ,
type : 'fixedCollection' ,
placeholder : 'Add Parameter' ,
options : [
{
displayName : 'Log Attributes' ,
name : 'values' ,
values : [
{
displayName : 'Message' ,
name : 'message' ,
type : 'string' ,
2020-12-02 02:54:10 -08:00
default : '' ,
2020-12-02 02:24:25 -08:00
} ,
{
displayName : 'Start Date' ,
name : 'startDate' ,
type : 'dateTime' ,
default : '' ,
description : 'Date and time of the begin of the case default=now' ,
} ,
{
displayName : 'Status' ,
name : 'status' ,
type : 'options' ,
required : true ,
default : '' ,
options : [
{
name : 'Ok' ,
value : 'Ok' ,
} ,
{
name : 'Deleted' ,
value : 'Deleted' ,
} ,
] ,
} ,
] ,
} ,
] ,
2020-12-02 02:54:10 -08:00
typeOptions : {
loadOptionsDependsOn : [
2020-12-02 02:24:25 -08:00
'entityType' ,
] ,
} ,
displayOptions : {
show : {
resource : [
'responder' ,
] ,
jsonObject : [
false ,
] ,
entityType : [
'case_task_log' ,
] ,
} ,
hide : {
responder : [
'' ,
] ,
entityType : [
'' ,
'case' ,
'alert' ,
'case_artifact' ,
'case_task' ,
] ,
} ,
} ,
default : { } ,
} ,
2020-12-02 02:54:10 -08:00
] ;