-
Notifications
You must be signed in to change notification settings - Fork 3.6k
Add Vaikora AI Agent Signals to CrowdStrike — Microsoft Sentinel Solution v1.0.0 #13984
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
mazamizo21
wants to merge
51
commits into
Azure:master
Choose a base branch
from
mazamizo21:feature/vaikora-crowdstrike-azure-v1.0.0
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
51 commits
Select commit
Hold shift + click to select a range
f3ea143
fix: remove testParameters.json from 3.0.1.zip (cert rule 300.4.1.1)
c1fb7ee
feat: add Vaikora AI Agent Signals connector v3.0.0
15f845d
feat: add Vaikora AI Agent Signals connector v3.0.0
28cac8d
feat: add Vaikora AI Agent Signals connector v3.0.0
65bbf3f
feat: add Vaikora AI Agent Signals connector v3.0.0
f3fc74e
fix: update description string to reference template version 3.0.0
074920b
fix: add missing parameters (contentProductId, dcrImmutableId, vaikor…
dff039f
fix: arm-ttk — add metadata block, fix param casing, remove unused pa…
20f50de
fix: PlaybookName param, missing vars (email/solutionId/playbookConte…
30df87a
fix: add hidden-SentinelTemplateName/Version tags to CrowdStrike Logi…
0fbb127
fix: playbookContentId1 connector-specific naming, PlaybookName conve…
30fd851
fix: Vaikora API pagination envelope - use ?['actions'] in foreach
ae5b992
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 21b2856
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 89ff20b
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 c3945ab
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 7b1ac23
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 54fd2f9
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 5d2abd0
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 605ec46
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 6a25339
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 7ae4636
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 4999699
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 0aeb75c
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 6eb8a19
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 0bc64d7
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 868e832
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 a944e73
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 f74a587
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 c538431
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 4d9dfe7
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 a9bf339
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 874c552
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 1cea92e
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 746a34d
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 e189372
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 acd5ac6
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 e2f2cb5
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 1bb31a5
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 ecdf90a
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 dc2fdbd
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 8309d93
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 54de589
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 e22c549
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 3e7b2e4
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 8e5b47e
fix: remove stray solutions — keep only Vaikora-CrowdStrike-ThreatInt…
mazamizo21 e52effd
fix: bump version to 3.0.0
mazamizo21 9f01791
fix: bump version to 3.0.0
mazamizo21 ad0ac54
fix: remove Cyren-SentinelOne changes not part of this PR
f882bb0
fix: revert all Cyren-SentinelOne changes to upstream state
529cf81
fix: fully revert all Cyren-SentinelOne changes to merge base state
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
14 changes: 14 additions & 0 deletions
14
Solutions/Vaikora-CrowdStrike-ThreatIntelligence/Data/Solution_VaikoraCrowdStrike.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,14 @@ | ||
| { | ||
| "Name": "Vaikora-CrowdStrike-AIAgentSecurity", | ||
| "Author": "Data443 Risk Mitigation, Inc. - support@data443.com", | ||
| "Logo": "<img src=\"https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Workbooks/Images/Logos/data443_logo.svg\" width=\"75px\" height=\"75px\">", | ||
| "Description": "The Vaikora CrowdStrike AI Agent Security solution polls Vaikora AI agent signals (actions with high/critical risk levels or anomaly detections) and pushes them as Custom IOCs to CrowdStrike Falcon for detection and prevention.", | ||
| "Playbooks": [ | ||
| "Playbooks/VaikoraToCrowdStrike_Playbook.json" | ||
| ], | ||
| "Metadata": "SolutionMetadata.json", | ||
| "BasePath": "C:\\GitHub\\Azure-Sentinel\\Solutions\\Vaikora-CrowdStrike-AIAgentSecurity", | ||
| "Version": "3.0.0", | ||
| "TemplateSpec": true, | ||
| "Is1Pconnector": false | ||
|
Comment on lines
+10
to
+13
|
||
| } | ||
Binary file not shown.
184 changes: 184 additions & 0 deletions
184
Solutions/Vaikora-CrowdStrike-ThreatIntelligence/Package/createUiDefinition.json
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,184 @@ | ||
| { | ||
| "$schema": "https://schema.management.azure.com/schemas/0.1.2-preview/CreateUIDefinition.MultiVm.json#", | ||
| "handler": "Microsoft.Azure.CreateUIDef", | ||
| "version": "0.1.2-preview", | ||
| "parameters": { | ||
| "config": { | ||
| "isWizard": false, | ||
| "basics": { | ||
| "description": "**Note:** Please refer to the following before installing the solution: \n\n\u2022 Review the solution [Release Notes](https://github.com/Azure/Azure-Sentinel/tree/master/Solutions/Vaikora-CrowdStrike-AIAgentSecurity/ReleaseNotes.md)\n\n \u2022 There may be [known issues](https://aka.ms/sentinelsolutionsknownissues) pertaining to this Solution, please refer to them before installing.\n\nThe Vaikora CrowdStrike AI Agent Security solution polls Vaikora AI agent signals (high/critical risk actions and anomaly detections) and pushes them as Custom IOCs to CrowdStrike Falcon for detection and prevention.\n\n**Playbooks:** 1\n\n[Learn more about Microsoft Sentinel](https://aka.ms/azuresentinel) | [Learn more about Solutions](https://aka.ms/azuresentinelsolutionsdoc)", | ||
| "subscription": { | ||
| "resourceProviders": [ | ||
| "Microsoft.OperationsManagement/solutions", | ||
| "Microsoft.OperationalInsights/workspaces/providers/alertRules", | ||
| "Microsoft.Insights/workbooks", | ||
| "Microsoft.Logic/workflows" | ||
| ] | ||
| }, | ||
| "location": { | ||
| "metadata": { | ||
| "hidden": "Hiding location, we get it from the log analytics workspace" | ||
| }, | ||
| "visible": false | ||
| }, | ||
| "resourceGroup": { | ||
| "allowExisting": true | ||
| } | ||
| } | ||
| }, | ||
| "basics": [ | ||
| { | ||
| "name": "getLAWorkspace", | ||
| "type": "Microsoft.Solutions.ArmApiControl", | ||
| "toolTip": "This filters by workspaces that exist in the Resource Group selected", | ||
| "condition": "[greater(length(resourceGroup().name),0)]", | ||
| "request": { | ||
| "method": "GET", | ||
| "path": "[concat(subscription().id,'/providers/Microsoft.OperationalInsights/workspaces?api-version=2020-08-01')]" | ||
| } | ||
| }, | ||
| { | ||
| "name": "workspace", | ||
| "type": "Microsoft.Common.DropDown", | ||
| "label": "Workspace", | ||
| "placeholder": "Select a workspace", | ||
| "toolTip": "This dropdown will list only workspace that exists in the Resource Group selected", | ||
| "constraints": { | ||
| "allowedValues": "[map(filter(basics('getLAWorkspace').value, (filter) => contains(toLower(filter.id), toLower(resourceGroup().name))), (item) => parse(concat('{\"label\":\"', item.name, '\",\"value\":\"', item.name, '\"}')))]", | ||
| "required": true | ||
| }, | ||
| "visible": true | ||
| } | ||
| ], | ||
| "steps": [ | ||
| { | ||
| "name": "playbooks", | ||
| "label": "Playbooks", | ||
| "subLabel": { | ||
| "preValidation": "Configure the playbooks", | ||
| "postValidation": "Done" | ||
| }, | ||
| "bladeTitle": "Playbooks", | ||
| "elements": [ | ||
| { | ||
| "name": "playbooks-text", | ||
| "type": "Microsoft.Common.TextBlock", | ||
| "options": { | ||
| "text": "This solution installs the Playbook templates to help implement your Security Orchestration, Automation and Response (SOAR) operations. After installing the solution, these will be deployed under Playbook Templates in the Automation blade in Microsoft Sentinel. They can be configured and managed from the Manage solution view in Content Hub." | ||
| } | ||
| }, | ||
| { | ||
| "name": "playbooks-link", | ||
| "type": "Microsoft.Common.TextBlock", | ||
| "options": { | ||
| "link": { | ||
| "label": "Learn more", | ||
| "uri": "https://docs.microsoft.com/azure/sentinel/tutorial-respond-threats-playbook?WT.mc_id=Portal-Microsoft_Azure_CreateUIDef" | ||
| } | ||
| } | ||
| }, | ||
| { | ||
| "name": "vaikora-section", | ||
| "type": "Microsoft.Common.Section", | ||
| "label": "Vaikora API Settings", | ||
| "elements": [ | ||
| { | ||
| "name": "VaikoraApiKey", | ||
| "type": "Microsoft.Common.PasswordBox", | ||
| "label": { | ||
| "password": "Vaikora API Key", | ||
| "confirmPassword": "Confirm Vaikora API Key" | ||
| }, | ||
| "toolTip": "Vaikora API key used in the X-API-Key request header", | ||
| "constraints": { | ||
| "required": true | ||
| }, | ||
| "options": { | ||
| "hideConfirmation": false | ||
| }, | ||
| "visible": true | ||
| }, | ||
| { | ||
| "name": "VaikoraAgentId", | ||
| "type": "Microsoft.Common.TextBox", | ||
| "label": "Vaikora Agent ID", | ||
| "defaultValue": "", | ||
| "toolTip": "The agent_id to poll for AI signal actions from the Vaikora API", | ||
| "constraints": { | ||
| "required": true, | ||
| "regex": "^[a-zA-Z0-9_\\-]+$", | ||
| "validationMessage": "Agent ID must contain only alphanumeric characters, hyphens, and underscores" | ||
| }, | ||
| "visible": true | ||
| } | ||
| ], | ||
| "visible": true | ||
| }, | ||
| { | ||
| "name": "crowdstrike-section", | ||
| "type": "Microsoft.Common.Section", | ||
| "label": "CrowdStrike Falcon API Settings", | ||
| "elements": [ | ||
| { | ||
| "name": "CrowdStrike_BaseUrl", | ||
| "type": "Microsoft.Common.TextBox", | ||
| "label": "CrowdStrike API Base URL", | ||
| "defaultValue": "https://api.crowdstrike.com", | ||
| "toolTip": "CrowdStrike Falcon API base URL. Use https://api.us-2.crowdstrike.com for US-2 cloud or https://api.eu-1.crowdstrike.com for EU-1.", | ||
| "constraints": { | ||
| "required": true, | ||
| "regex": "^.+$", | ||
| "validationMessage": "This field is required." | ||
| }, | ||
| "visible": true | ||
| }, | ||
| { | ||
| "name": "CrowdStrike_ClientId", | ||
| "type": "Microsoft.Common.PasswordBox", | ||
| "label": { | ||
| "password": "CrowdStrike Client ID", | ||
| "confirmPassword": "Confirm CrowdStrike Client ID" | ||
| }, | ||
| "toolTip": "CrowdStrike OAuth2 Client ID with Indicators (IOCs) write permission", | ||
| "constraints": { | ||
| "required": true | ||
| }, | ||
| "options": { | ||
| "hideConfirmation": false | ||
| }, | ||
| "visible": true | ||
| }, | ||
| { | ||
| "name": "CrowdStrike_ClientSecret", | ||
| "type": "Microsoft.Common.PasswordBox", | ||
| "label": { | ||
| "password": "CrowdStrike Client Secret", | ||
| "confirmPassword": "Confirm CrowdStrike Client Secret" | ||
| }, | ||
| "toolTip": "CrowdStrike OAuth2 Client Secret corresponding to the Client ID above", | ||
| "constraints": { | ||
| "required": true | ||
| }, | ||
| "options": { | ||
| "hideConfirmation": false | ||
| }, | ||
| "visible": true | ||
| } | ||
| ], | ||
| "visible": true | ||
| } | ||
| ] | ||
| } | ||
| ], | ||
| "outputs": { | ||
| "workspace-location": "[first(map(filter(basics('getLAWorkspace').value, (filter) => and(contains(toLower(filter.id), toLower(resourceGroup().name)),equals(filter.name,basics('workspace')))), (item) => item.location))]", | ||
| "location": "[location()]", | ||
| "workspace": "[basics('workspace')]", | ||
| "VaikoraApiKey": "[steps('playbooks').vaikora-section.VaikoraApiKey]", | ||
| "VaikoraAgentId": "[steps('playbooks').vaikora-section.VaikoraAgentId]", | ||
| "CrowdStrike_BaseUrl": "[steps('playbooks').crowdstrike-section.CrowdStrike_BaseUrl]", | ||
| "CrowdStrike_ClientId": "[steps('playbooks').crowdstrike-section.CrowdStrike_ClientId]", | ||
| "CrowdStrike_ClientSecret": "[steps('playbooks').crowdstrike-section.CrowdStrike_ClientSecret]" | ||
| } | ||
| } | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Multiple solution data validation issues:
Namecontains hyphens; solution Name must be alphanumeric characters and spaces only, and should match the solution folder naming expectations.BasePathpoints toVaikora-CrowdStrike-AIAgentSecurity, but the folder in this PR isSolutions/Vaikora-CrowdStrike-ThreatIntelligence; this mismatch will break file resolution during validation/packaging.Version3.0.0,TemplateSpecmust befalseper solution packaging rules.Is1PConnector(case-sensitive);Is1Pconnectorwill be treated as a missing required field.