Skip to content

New solution: HoneyLabs threat intelligence (TAXII)#14697

Open
honeylabshq wants to merge 4 commits into
Azure:masterfrom
honeylabshq:honeylabs-solution
Open

New solution: HoneyLabs threat intelligence (TAXII)#14697
honeylabshq wants to merge 4 commits into
Azure:masterfrom
honeylabshq:honeylabs-solution

Conversation

@honeylabshq

Copy link
Copy Markdown

Change(s):

  • New solution at Solutions/HoneyLabs: threat intelligence generated by HoneyLabs internet-facing honeypot sensors (exploitation source IPs and malware loader/C2 URLs), ingested through the built-in Threat Intelligence - TAXII data connector against the HoneyLabs TAXII 2.1 server (https://honeylabs.net/taxii2/).
  • Data connector page (instruction-style) with copyable configuration values for the two TAXII collections.
  • Three scheduled analytic rules mapping HoneyLabs indicators to CommonSecurityLog (IP and URL) and SigninLogs (IP), modeled on the standard TI-map templates and scoped with SourceSystem startswith 'HoneyLabs'.
  • Incident enrichment playbook (HoneyLabs-EnrichIncident-IP) that comments the HoneyLabs verdict, event counts and report link on IP entities.
  • Logo at Logos/HoneyLabs.svg, package generated with the V3 packaging tool (3.0.0).

Reason for Change(s):

  • New community solution. HoneyLabs indicators are evidence-backed (captured exploit/loader commands rather than scan traffic), exclude known research scanners, and expire via valid_until as activity stops. The TAXII server requires a free HoneyLabs API key as the HTTP Basic password.

Version Updated:

  • Not applicable, new solution (all content at version 1.0.0, package 3.0.0).

Testing Completed:

  • Yes. The TAXII endpoint is live and was verified end to end (discovery, collections, objects with added_after paging and manifest). The analytic rule KQL was validated against the ThreatIntelligenceIndicator schema; rules are adapted from the shipped TI-map templates. Package built and validated with the V3 tool.

Checked that the validations are passing and have addressed any issues that are present:

  • Yes. arm-ttk passes except 'IDs Should Be Derived From ResourceIDs' flagging the contentProductId pattern that the V3 tool itself generates (variables('analyticRuleObject1')._analyticRulecontentProductId1); shipped solutions such as Solutions/GitLab carry the identical pattern, so this appears to be an arm-ttk 0.21 false positive. Happy to adjust if the pipeline says otherwise.

Solution provider contact: info@honeylabs.net (HoneyLabs, https://honeylabs.net).

Adds the HoneyLabs solution: honeypot-derived threat intelligence
ingested through the built-in Threat Intelligence - TAXII data
connector against the HoneyLabs TAXII 2.1 server. Includes a data
connector page with copyable configuration values, three TI-map
analytic rules (IP to CommonSecurityLog, IP to SigninLogs, URL to
CommonSecurityLog), and an incident enrichment playbook that comments
the full HoneyLabs verdict on IP entities. Package generated with the
V3 packaging tool.
@honeylabshq
honeylabshq requested review from a team as code owners July 16, 2026 18:43
@honeylabshq

Copy link
Copy Markdown
Author

@microsoft-github-policy-service agree

@v-atulyadav
v-atulyadav requested a review from Copilot July 17, 2026 04:25
@v-atulyadav v-atulyadav added the Solution Solution specialty review needed label Jul 17, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Adds a new community Microsoft Sentinel solution for ingesting and operationalizing HoneyLabs threat intelligence via TAXII, including connector instructions, analytics, and an enrichment playbook.

Changes:

  • Introduces HoneyLabs solution metadata + release notes.
  • Adds a Generic UI data connector page with copyable TAXII configuration values.
  • Adds three TI mapping scheduled analytics and an incident enrichment playbook template.

Reviewed changes

Copilot reviewed 12 out of 14 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
Solutions/HoneyLabs/SolutionMetadata.json Defines solution publisher/offer metadata and support contact details.
Solutions/HoneyLabs/ReleaseNotes.md Documents initial release version/date and included content.
Solutions/HoneyLabs/Playbooks/HoneyLabs-EnrichIncident-IP/readme.md Describes playbook purpose, prerequisites, and post-deployment steps.
Solutions/HoneyLabs/Playbooks/HoneyLabs-EnrichIncident-IP/azuredeploy.json ARM template for the incident enrichment playbook and API key parameterization.
Solutions/HoneyLabs/Package/testParameters.json Deployment/test parameters for the packaged solution templates.
Solutions/HoneyLabs/Package/mainTemplate.json Main solution package ARM template containing contentTemplates, connector UI, analytics, and playbook artifacts.
Solutions/HoneyLabs/Package/createUiDefinition.json Installer UI definition for selecting the Sentinel workspace and guiding deployment.
Solutions/HoneyLabs/Data/Solution_HoneyLabs.json Solution manifest pointing to included connectors/rules/playbooks and metadata.
Solutions/HoneyLabs/Data Connectors/HoneyLabs_TAXII.json Generic UI data connector definition with configuration instructions.
Solutions/HoneyLabs/Analytic Rules/HoneyLabsTIMapURLEntityCommonSecurityLog.yaml Scheduled rule template mapping HoneyLabs URL indicators to CommonSecurityLog.
Solutions/HoneyLabs/Analytic Rules/HoneyLabsTIMapIPEntitySigninLogs.yaml Scheduled rule template mapping HoneyLabs IP indicators to Entra ID sign-in logs.
Solutions/HoneyLabs/Analytic Rules/HoneyLabsTIMapIPEntityCommonSecurityLog.yaml Scheduled rule template mapping HoneyLabs IP indicators to CommonSecurityLog.

Comment on lines +1 to +3
| **Version** | **Date Modified (DD-MM-YYYY)** | **Change History** |
|-------------|--------------------------------|---------------------------------------|
| 3.0.0 | 16-07-2026 | Initial solution release: TAXII data connector instructions, three TI-map analytic rules, IP enrichment playbook. |
"SavedSearches": [],
"Hunting Queries": [],
"Watchlists": [],
"BasePath": "/home/lenovo/development/Azure-Sentinel",
Comment on lines +892 to +899
"variables": {
"AzureSentinelConnectionName": "[[concat('azuresentinel-', parameters('PlaybookName'))]",
"connection-1": "[[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Web/locations/', variables('workspace-location-inline'), '/managedApis/azuresentinel')]",
"_connection-1": "[[variables('connection-1')]",
"workspace-location-inline": "[concat('[resourceGroup().locatio', 'n]')]",
"workspace-name": "[parameters('workspace')]",
"workspaceResourceId": "[[resourceId('microsoft.OperationalInsights/Workspaces', variables('workspace-name'))]"
},
Comment on lines +647 to +671
"type": "Microsoft.OperationalInsights/workspaces/providers/metadata",
"apiVersion": "2023-04-01-preview",
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', last(split(variables('_dataConnectorId1'),'/'))))]",
"properties": {
"parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId1'))]",
"contentId": "[variables('_dataConnectorContentId1')]",
"kind": "DataConnector",
"version": "[variables('dataConnectorVersion1')]",
"source": {
"kind": "Solution",
"name": "HoneyLabs",
"sourceId": "[variables('_solutionId')]"
},
"author": {
"name": "HoneyLabs",
"email": "[variables('_email')]"
},
"support": {
"name": "HoneyLabs",
"email": "info@honeylabs.net",
"tier": "Community",
"link": "https://honeylabs.net"
}
}
}
Comment on lines +688 to +716
"type": "Microsoft.OperationalInsights/workspaces/providers/metadata",
"apiVersion": "2023-04-01-preview",
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat('DataConnector-', last(split(variables('_dataConnectorId1'),'/'))))]",
"dependsOn": [
"[variables('_dataConnectorId1')]"
],
"location": "[parameters('workspace-location')]",
"properties": {
"parentId": "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/dataConnectors', variables('_dataConnectorContentId1'))]",
"contentId": "[variables('_dataConnectorContentId1')]",
"kind": "DataConnector",
"version": "[variables('dataConnectorVersion1')]",
"source": {
"kind": "Solution",
"name": "HoneyLabs",
"sourceId": "[variables('_solutionId')]"
},
"author": {
"name": "HoneyLabs",
"email": "[variables('_email')]"
},
"support": {
"name": "HoneyLabs",
"email": "info@honeylabs.net",
"tier": "Community",
"link": "https://honeylabs.net"
}
}
},
Comment on lines +464 to +485
{
"type": "Microsoft.OperationalInsights/workspaces/providers/contentTemplates",
"apiVersion": "2023-04-01-preview",
"name": "[variables('dataConnectorTemplateSpecName1')]",
"location": "[parameters('workspace-location')]",
"dependsOn": [
"[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]"
],
"properties": {
"description": "HoneyLabs data connector with template version 3.0.0",
"mainTemplate": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "[variables('dataConnectorVersion1')]",
"parameters": {},
"variables": {},
"resources": [
{
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',variables('_dataConnectorContentId1'))]",
"apiVersion": "2021-03-01-preview",
"type": "Microsoft.OperationalInsights/workspaces/providers/dataConnectors",
"location": "[parameters('workspace-location')]",
"kind": "GenericUI",
Comment on lines +717 to +723
{
"name": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',variables('_dataConnectorContentId1'))]",
"apiVersion": "2021-03-01-preview",
"type": "Microsoft.OperationalInsights/workspaces/providers/dataConnectors",
"location": "[parameters('workspace-location')]",
"kind": "GenericUI",
"properties": {
"type": "Microsoft.Common.DropDown",
"label": "Workspace",
"placeholder": "Select a workspace",
"toolTip": "This dropdown will list only workspace that exists in the Resource Group selected",
DetectionTemplateSchemaValidation rejected the custom connectorId
HoneyLabsThreatIntelligenceTAXII in the analytic rules'
requiredDataConnectors (not in ValidConnectorIds.json). Indicators
arrive through the built-in ThreatIntelligenceTaxii connector, which
the rules already require, so the custom id is removed from all three.
SolutionValidations flagged bare 'Sentinel'; the connector description
now says 'Microsoft Sentinel'. Package regenerated.
@honeylabshq

Copy link
Copy Markdown
Author

Thanks for the review. Pushed fixes for the two failing checks:

  • DetectionTemplateSchemaValidation: removed the custom HoneyLabsThreatIntelligenceTAXII connectorId from the analytic rules' requiredDataConnectors. Indicators arrive through the built-in ThreatIntelligenceTaxii connector, which the rules already require, so the rules no longer reference an id outside ValidConnectorIds.json.
  • SolutionValidations: corrected 'Sentinel' to 'Microsoft Sentinel' in the data connector description, and set a conventional BasePath.

On the Copilot comments against Package/mainTemplate.json (duplicate metadata/dataConnectors resources and the [[concat(...) expressions): these are the standard output of the V3 solution packaging tool, not hand-authored. The doubled resources are the Content Hub pattern (a resource inside contentTemplates.mainTemplate.resources plus the top-level catalog entry), and [[ is the correct ARM escaping for literals inside a nested template. They match the structure of currently shipped solutions, so I've left the generated package as-is. The ReleaseNotes table also renders correctly (single leading pipe per row). Happy to adjust if the pipeline flags anything further.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Solution Solution specialty review needed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants