Gurucul-GRA
Gurucul Risk Analytics Pack.#
This Integration is part of theGurucul Risk Analytics (GRA) is a data science backed cloud native platform that predicts, detects and prevents breaches. It ingests and analyzes massive amounts of data from the network, IT systems, cloud platforms, EDR, applications, IoT, HR and much more to give you a comprehensive contextual view of user and entity behaviors This Integration facilitates retrieval of High Risk Entities identified by GRA by creating a case for each entity within GRA. These high risk entities are fetched in Cortex XSOAR and a corresponding incident is created for each entity in Cortex XSOAR. As a part of this integration, workflows can be configured at Cortex XSOAR based on different commands provided by GRA. These will define the actions to be taken on a particular high risk entity based on the Risk Score.
Please make sure you look at the integration source code and comments.
#
Configure Gurucul on Cortex XSOAR- Navigate to Settings > Integrations > Servers & Services.
- Search for Gurucul.
- Click Add instance to create and configure a new integration instance.
Parameter | Description | Required |
---|---|---|
url | Server URL (e.g. https://soar.monstersofhack.com ) | True |
apikey | API Key | True |
isFetch | Fetch incidents | False |
Classifier | Classifier for incident | False |
IncidentType | Incident type | False |
Mapper | Mapping incoming data | False |
insecure | Trust any certificate (not secure) | False |
proxy | Use system proxy settings | False |
first_fetch | First fetch time | False |
max_fetch | Maximum number of incidents per fetch | False |
- Click Test to validate the URLs, token, and connection.
#
CommandsYou can execute these commands from the Cortex XSOAR CLI, as part of an automation, or in a playbook. After you successfully execute a command, a DBot message appears in the War Room with the command details.
#
gra-fetch-usersRetrieve List of All Users (Identities)
#
Base Commandgra-fetch-users
#
InputArgument Name | Description | Required |
---|---|---|
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Users.firstName | String | First Name. |
Gra.Users.middleName | String | Middle Name. |
Gra.Users.lastName | String | Last Name. |
Gra.Users.employeeId | String | Employee Name. |
Gra.Users.riskScore | String | Risk Name. |
Gra.Users.department | String | Department. |
Gra.Users.email | String | Users email. |
Gra.Users.phone | String | Users Phone no. |
Gra.Users.location | String | Location. |
Gra.Users.manager | String | Users Manager. |
Gra.Users.title | String | Users title. |
Gra.Users.joiningDate | String | Joining Date. |
Gra.Users.exitDate | String | Exit Date. |
Gra.Users.userRisk | String | User Risk. |
#
Command Example!gra-fetch-users page=1 max=25
#
Context Example#
Base Commandgra-fetch-accounts
Retrieve all Accounts Information
#
InputArgument Name | Description | Required |
---|---|---|
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Accounts.id | Number | Account Id. |
Gra.Accounts.name | String | Account Name. |
Gra.Accounts.type | String | Account type. |
Gra.Accounts.created_on | Date | Created On. |
Gra.Accounts.department | String | Department. |
Gra.Accounts.description | String | Description. |
Gra.Accounts.resource | String | Resource Name. |
Gra.Accounts.domain | String | Domain. |
Gra.Accounts.high_risk | String | High Risk. |
Gra.Accounts.is_orphan | String | Is Orphan. |
Gra.Accounts.is_reassigned | String | Is Reassigned. |
Gra.Accounts.risk_score | Number | Risk Score. |
Gra.Accounts.updated_on | Date | Updated on. |
#
Command Example!gra-fetch-accounts page=1 max=25
#
Context Example#
Human Readable Output#
Results
#
gra-fetch-active-resource-accountsRetrieve List of All Active Accounts for a Given Resource.
#
Base Command!gra-fetch-active-resource-accounts
#
InputArgument Name | Description | Required |
---|---|---|
resource_name | Resource Name. | Required |
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Active.Resource.Accounts.id | Number | Account Id. |
Gra.Active.Resource.Accounts.name | String | Account Name. |
Gra.Active.Resource.Accounts.type | String | Account type. |
Gra.Active.Resource.Accounts.created_on | Date | Created On. |
Gra.Active.Resource.Accounts.department | String | Department. |
Gra.Active.Resource.Accounts.description | String | Description. |
Gra.Active.Resource.Accounts.resource | String | Resource Name. |
Gra.Active.Resource.Accounts.domain | String | Domain. |
Gra.Active.Resource.Accounts.high_risk | String | High Risk. |
Gra.Active.Resource.Accounts.is_orphan | String | Is Orphan. |
Gra.Active.Resource.Accounts.is_reassigned | String | Is Reassigned. |
Gra.Active.Resource.Accounts.risk_score | Number | Risk Score. |
Gra.Active.Resource.Accounts.updated_on | Date | Updated on. |
#
Command Example!gra-fetch-active-resource-accounts resource_name="Linux" page=1 max=25
#
Context Example#
Human Readable Output#
gra-fetch-user-accountsRetrieve List of All Active Accounts and Details for a Given User.
#
Base Commandgra-fetch-user-accounts
#
InputArgument Name | Description | Required |
---|---|---|
employee_id | Employee ID. | Required |
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.User.Accounts.id | Number | User Account Relation Id . |
Gra.User.Accounts.name | String | Account Name. |
Gra.User.Accounts.type | String | Account Type. |
Gra.User.Accounts.created_on | Date | Created On. |
Gra.User.Accounts.department | String | Department. |
Gra.User.Accounts.description | String | Description. |
Gra.User.Accounts.resource | String | Resource Name. |
Gra.User.Accounts.domain | String | Domain Name. |
Gra.User.Accounts.high_risk | String | High Risk. |
Gra.User.Accounts.is_orphan | String | Is Account Orphan. |
Gra.User.Accounts.is_reassigned | String | Is account Reassigned. |
Gra.User.Accounts.risk_score | String | Account Risk Score. |
Gra.User.Accounts.updated_on | Date | Updated On. |
#
Command Example!gra-fetch-user-accounts employee_id="Alec.Holland01_NN" page=1 max=25
#
Context Example#
Human Readable Output#
gra-fetch-resource-highrisk-accountsRetrieve High Risk Accounts for a Given Resource
#
Base Commandgra-fetch-resource-highrisk-accounts
#
InputArgument Name | Description | Required |
---|---|---|
resource_name | Resource Name. | Required |
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Resource.Highrisk.Accounts.id | Number | User Account Relation Id . |
Gra.Resource.Highrisk.Accounts.name | String | Account Name. |
Gra.Resource.Highrisk.Accounts.type | String | Account Type. |
Gra.Resource.Highrisk.Accounts.created_on | Date | Created On. |
Gra.Resource.Highrisk.Accounts.department | String | Department. |
Gra.Resource.Highrisk.Accounts.description | String | Description. |
Gra.Resource.Highrisk.Accounts.resource | String | Resource Name. |
Gra.Resource.Highrisk.Accounts.domain | String | Domain Name. |
Gra.Resource.Highrisk.Accounts.high_risk | String | High Risk. |
Gra.Resource.Highrisk.Accounts.is_orphan | String | Is Account Orphan. |
Gra.Resource.Highrisk.Accounts.is_reassigned | String | Is account Reassigned. |
Gra.Resource.Highrisk.Accounts.risk_score | String | Account Risk Score. |
Gra.Resource.Highrisk.Accounts.updated_on | Date | Updated On. |
#
Command Example!gra-fetch-resource-highrisk-accounts resource_name="Windows Security" page=1 max=25
#
Context Example#
Human Readable Output#
gra-fetch-hpaRetrieve List of All High Risk Privileged Accounts.
#
Base Command!gra-fetch-hpa
#
InputArgument Name | Description | Required |
---|---|---|
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Hpa.id | Number | User Account Relation Id . |
Gra.Hpa.name | String | Account Name. |
Gra.Hpa.type | String | Account Type. |
Gra.Hpa.created_on | Date | Created On. |
Gra.Hpa.department | String | Department. |
Gra.Hpa.description | String | Description. |
Gra.Hpa.resource | String | Resource Name. |
Gra.Hpa.domain | String | Domain Name. |
Gra.Hpa.high_risk | String | High Risk. |
Gra.Hpa.is_orphan | String | Is Account Orphan. |
Gra.Hpa.is_reassigned | String | Is account Reassigned. |
Gra.Hpa.risk_score | String | Account Risk Score. |
Gra.Hpa.updated_on | Date | Updated On. |
#
Command Example!gra-fetch-hpa page=1 max=25
#
Context Example#
Human Readable Output#
#
gra-fetch-resource-hpaRetrieve all High Privileged Accounts for a Given Resource.
#
Base Commandgra-fetch-resource-hpa
#
InputArgument Name | Description | Required |
---|---|---|
resource_name | Resource Name. | Required |
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Resource.Hpa.id | Number | User Account Relation Id . |
Gra.Resource.Hpa.name | String | Account Name. |
Gra.Resource.Hpa.type | String | Account Type. |
Gra.Resource.Hpa.created_on | Date | Created On. |
Gra.Resource.Hpa.department | String | Department. |
Gra.Resource.Hpa.description | String | Description. |
Gra.Resource.Hpa.resource | String | Resource Name. |
Gra.Resource.Hpa.domain | String | Domain Name. |
Gra.Resource.Hpa.high_risk | String | High Risk. |
Gra.Resource.Hpa.is_orphan | String | Is Account Orphan. |
Gra.Resource.Hpa.is_reassigned | String | Is account Reassigned. |
Gra.Resource.Hpa.risk_score | String | Account Risk Score. |
Gra.Resource.Hpa.updated_on | Date | Updated On. |
#
Command Example!gra-fetch-resource-hpa resource_name="Linux" page=1 max=25
#
Context Example#
Human Readable Output#
gra-fetch-orphan-accountsRetrieve List of All Orphan / Rogue Accounts.
#
Base Commandgra-fetch-orphan-accounts
#
InputArgument Name | Description | Required |
---|---|---|
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Orphan.Accounts.id | Number | User Account Relation Id . |
Gra.Orphan.Accounts.name | String | Account Name. |
Gra.Orphan.Accounts.type | String | Account Type. |
Gra.Orphan.Accounts.created_on | Date | Created On. |
Gra.Orphan.Accounts.department | String | Department. |
Gra.Orphan.Accounts.description | String | Description. |
Gra.Orphan.Accounts.resource | String | Resource Name. |
Gra.Orphan.Accounts.domain | String | Domain Name. |
Gra.Orphan.Accounts.high_risk | String | High Risk. |
Gra.Orphan.Accounts.is_orphan | String | Is Account Orphan. |
Gra.Orphan.Accounts.is_reassigned | String | Is account Reassigned. |
Gra.Orphan.Accounts.risk_score | String | Account Risk Score. |
Gra.Orphan.Accounts.updated_on | Date | Updated On. |
#
Command Example!gra-fetch-orphan-accounts page=1 max=25
#
Context Example#
Human Readable Output#
gra-fetch-resource-orphan-accountsRetrieve All Orphan / Rogue Accounts for a Given Resource.
#
Base Commandgra-fetch-resource-orphan-accounts
#
InputArgument Name | Description | Required |
---|---|---|
resource_name | Resource Name. | Required |
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Resource.Orphan.Accounts.id | Number | User Account Relation Id . |
Gra.Resource.Orphan.Accounts.name | String | Account Name. |
Gra.Resource.Orphan.Accounts.type | String | Account Type. |
Gra.Resource.Orphan.Accounts.created_on | Date | Created On. |
Gra.Resource.Orphan.Accounts.department | String | Department. |
Gra.Resource.Orphan.Accounts.description | String | Description. |
Gra.Resource.Orphan.Accounts.resource | String | Resource Name. |
Gra.Resource.Orphan.Accounts.domain | String | Domain Name. |
Gra.Resource.Orphan.Accounts.high_risk | String | High Risk. |
Gra.Resource.Orphan.Accounts.is_orphan | String | Is Account Orphan. |
Gra.Resource.Orphan.Accounts.is_reassigned | String | Is account Reassigned. |
Gra.Resource.Orphan.Accounts.risk_score | String | Account Risk Score. |
Gra.Resource.Orphan.Accounts.updated_on | Date | Updated On. |
#
Command Example!gra-fetch-resource-orphan-accounts resource_name="Windows Security" page=1 max=25
#
Context Example#
Human Readable Output#
#
gra-fetch-orphan-accountsRetrieve List of All Orphan / Rogue Accounts.
#
Base Commandgra-user-activities
#
InputArgument Name | Description | Required |
---|---|---|
employee_id | Employee Id. | Required |
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.User.Activity.employee_id | String | Employee Id . |
Gra.User.Activity.account_name | String | Account Name . |
Gra.User.Activity.resource_name | String | Resource Name . |
Gra.User.Activity.event_desc | String | Event Description . |
Gra.User.Activity.event_date | String | Event Date . |
Gra.User.Activity.risk_score | Number | Risk Score . |
#
Command Example!gra-user-activities employee_id="aa17600" page=1 max=25
#
Context Example#
Human Readable Output#
gra-fetch-users-detailsget details of the user.
#
Base Commandgra-fetch-users-details
#
InputArgument Name | Description | Required |
---|---|---|
employee_id | Employee Id. | Required |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.User.firstName | String | First Name. |
Gra.User.middleName | String | Middle Name. |
Gra.User.lastName | String | Last Name. |
Gra.User.employeeId | String | Employee Id. |
Gra.User.riskScore | String | Risk Score. |
Gra.User.userRisk | String | User Risk. |
Gra.User.department | String | Department. |
Gra.User.email | String | Email. |
Gra.User.phone | String | Phone. |
Gra.User.location | String | Location . |
Gra.User.manager | String | Manager. |
Gra.User.title | String | Title. |
Gra.User.joiningDate | String | Joining Date. |
Gra.User.profilePicturePath | String | Profile Picture Path. |
Gra.User.exitDate | Date | Exit Date. |
#
Command Example!gra-user-activities employee_id="aa17600" page=1 max=25
#
Context Example#
Human Readable Output#
gra-fetch-users-detailsget details of the user.
#
Base Commandgra-highRisk-users
#
InputArgument Name | Description | Required |
---|---|---|
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Highrisk.Users.id | Number | User Id . |
Gra.Highrisk.Users.name | String | User Name. |
Gra.Highrisk.Users.type | String | Type. |
Gra.Highrisk.Users.created_on | Date | Created On . |
Gra.Highrisk.Users.department | String | Department. |
Gra.Highrisk.Users.description | String | Description. |
Gra.Highrisk.Users.resource | String | Resource Name. |
Gra.Highrisk.Users.domain | String | Domain. |
Gra.Highrisk.Users.high_risk | String | High Risk. |
Gra.Highrisk.Users.is_orphan | String | Is Orphan Account . |
Gra.Highrisk.Users.is_reassigned | String | Is Reassigned . |
Gra.Highrisk.Users.updated_on | Date | Updated On . |
Gra.Highrisk.Users.exitDate | Date | Exit Date . |
Gra.Highrisk.Users.created_on | Date | Created On . |
Gra.Highrisk.Users.joiningDate | Date | Joining Date . |
Gra.Highrisk.Users.manager | String | Manager . |
Gra.Highrisk.Users.employeeId | String | Employee Id . |
Gra.Highrisk.Users.firstName | String | First Name . |
Gra.Highrisk.Users.middleName | String | Middle Name . |
Gra.Highrisk.Users.lastName | String | Last Name . |
Gra.Highrisk.Users.location | String | Location . |
Gra.Highrisk.Users.title | String | Title . |
Gra.Highrisk.Users.userRisk | Number | User Risk . |
Gra.Highrisk.Users.riskScore | Number | Risk Score . |
Gra.Highrisk.Users.description | String | Description . |
Gra.Highrisk.Users.is_orphan | String | Is Orphan . |
Gra.Highrisk.Users.phone | String | Phone . |
Gra.Highrisk.Users.email | String | Email . |
#
Command Example!gra-highRisk-users page=1 max=25
#
Context Example#
Human Readable Output#
gra-casesget details of the user.
#
Base Commandgra-cases
#
InputArgument Name | Description | Required |
---|---|---|
status | Case Status. | Required |
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Cases.entityId | Number | Entity Id . |
Gra.Cases.entityTypeId | Number | Entity Type Id. |
Gra.Cases.entity | String | Entity Name. |
Gra.Cases.caseId | Number | Case Id . |
Gra.Cases.openDate | Date | Case Open Date. |
Gra.Cases.ownerId | Number | Owner Id. |
Gra.Cases.ownerType | String | Owner Type. |
Gra.Cases.ownerName | String | Owner Name. |
Gra.Cases.riskDate | Date | Risk Risk. |
Gra.Cases.status | String | Case Status . |
Gra.Cases.anomalies | String | Anomalies . |
#
Command Example!gra-cases status="OPEN" page=1 max=25
#
Context Example#
Human Readable Output#
gra-user-anomaliesget details of the user.
#
Base Commandgra-user-anomalies
#
InputArgument Name | Description | Required |
---|---|---|
employee_id | Employee Id. | Required |
page | Page no. | Optional |
max | Per page record count | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.User.Anomalies.anomaly_name | String | Anomaly Name . |
#
Command Example!gra-user-anomalies employeeId="AB1234" page=1 max=25
#
Context Example#
Human Readable Output#
gra-case-actionClosing a case and updating the anomaly status as Closed / Risk Managed / Model Reviewed.
#
Base Commandgra-case-action
#
InputArgument Name | Description | Required |
---|---|---|
action | Action | Required |
caseId | Case ID | Required |
subOption | Sub Option | Required |
caseComment | Case Comment | Required |
riskAcceptDate | Risk Accept Date (applicable only in case of closing a case as Risk Managed) | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Case.Action.Message | String | Message |
#
Command Example!gra-case-action action=modelReviewCase caseId=5 subOption="Tuning Required" caseComment="This is Completed"
#
Context Example#
Human Readable Output#
gra-case-action-anomalyClosing an anomaly or anomalies within a case and updating the anomaly status as Closed / Risk Managed / Model Reviewed.
#
Base Commandgra-case-action-anomaly
#
InputArgument Name | Description | Required |
---|---|---|
action | Action | Required |
caseId | Case ID | Required |
anomalyNames | Anomaly Names | Required |
subOption | Sub Option | Required |
caseComment | Case Comment | Required |
riskAcceptDate | Risk Accept Date (applicable only in case of closing a case as Risk Managed) | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Case.Action.Anomaly.Message | String | Message |
Gra.Case.Action.Anomaly.anomalyName | String | Anomaly Name |
#
Command Example!gra-case-action-anomaly action=modelReviewCaseAnomaly caseId=5 anomalyNames=anomalyName1 subOption="Tuning Required" caseComment="This is Completed"
#
Context Example#
Human Readable Output#
gra-investigate-anomaly-summaryRetrieve detailed anomaly summary of specified anomaly name.
#
Base Commandgra-investigate-anomaly-summary
#
InputArgument Name | Description | Required |
---|---|---|
modelName | Model Name | Required |
fromDate | From Date ( yyyy-MM-dd ) | Optional |
toDate | To Date ( yyyy-MM-dd ) | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Investigate.Anomaly.Summary.analyticalFeatures | String | Analytical Features |
Gra.Investigate.Anomaly.Summary.entityCount | String | Entity Count |
Gra.Investigate.Anomaly.Summary.resourceCount | String | Resource Count |
Gra.Investigate.Anomaly.Summary.records | String | Records |
Gra.Investigate.Anomaly.Summary.anomalyBaseline | String | Anomaly Baseline |
Gra.Investigate.Anomaly.Summary.anomalyLastCatch | String | Anomaly Last Catch |
Gra.Investigate.Anomaly.Summary.executionDays | String | Execution Days |
Gra.Investigate.Anomaly.Summary.chainDetails | String | Chain Details |
Gra.Investigate.Anomaly.Summary.resourceName | String | resourceName |
Gra.Investigate.Anomaly.Summary.type | String | type |
Gra.Investigate.Anomaly.Summary.value | String | value |
Gra.Investigate.Anomaly.Summary.anomalousActivity | Number | anomalousActivity |
Gra.Investigate.Anomaly.Summary.anomalyName | String | anomalyName |
Gra.Investigate.Anomaly.Summary.classifier | String | classifier |
Gra.Investigate.Anomaly.Summary.anomalyFirstCatch | String | anomalyFirstCatch |
Gra.Investigate.Anomaly.Summary.anomalyDescription | String | anomalyDescription |
Gra.Investigate.Anomaly.Summary.similarTemplateAnomalies | String | Similar Template Anomalies |
Gra.Investigate.Anomaly.Summary.entitiesFlagged | Number | Entities Flagged |
#
Command Example!gra-investigate-anomaly-summary modelName=ModelName
#
Context Example#
Human Readable Output#
gra-analytical-features-entity-valueRetrieve analytical features for specified entity value and model name.
#
Base Commandgra-analytical-features-entity-value
#
InputArgument Name | Description | Required |
---|---|---|
entityValue | Entity Value | Required |
modelName | Model Name | Required |
fromDate | From Date ( yyyy-MM-dd ) | Optional |
toDate | To Date ( yyyy-MM-dd ) | Optional |
entityTypeId | Entity Type Id (defaulted to 1) | Optional |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Analytical.Features.Entity.Value.analyticalFeatures | String | Analytical Features |
Gra.Analytical.Features.Entity.Value.analyticalFeatureValues | String | Analytical Feature Values |
#
Command Example!gra-analytical-features-entity-value entityValue=EntityValue
#
Context Example#
Human Readable Output#
gra-cases-anomalyRetrieve anomalies for specified case id from GRA and update in XSOAR.
#
Base Commandgra-cases-anomaly
#
InputArgument Name | Description | Required |
---|---|---|
caseId | GRA Case Id | Required |
#
Context OutputPath | Type | Description |
---|---|---|
Gra.Cases.anomalies.anomalyName | String | Cases Anomaly name |
Gra.Cases.anomalies.riskAcceptedDate | date | Risk accepted date of anomaly |
Gra.Cases.anomalies.resourceName | String | Resource Name |
Gra.Cases.anomalies.riskScore | String | Risk score for anomaly |
Gra.Cases.anomalies.assignee | String | Assignee name |
Gra.Cases.anomalies.assigneeType | String | Assignee type (User/Role) |
Gra.Cases.anomalies.status | String | Current status of anomaly |
#
Command Example!gra-cases-anomaly caseId=10
#
Context Example#
Human Readable Output#
gra-validate-apiVerifies the Gurucul platform's operational status by assessing system health, reviewing logs, and checking key performance indicators for any errors.
#
Base Commandgra-validate-api
#
Command Example!gra-validate-api