Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
eb45d8f
Add HoneyForge Threat Detection solution v1.0.0
Jul 20, 2026
33feecf
Fix: ARM resource names, workbook TimeRange, createUiDefinition provi…
Jul 20, 2026
98a57fd
Add HoneyForge to ValidConnectorIds
Jul 20, 2026
c816951
Fix CI failures: TTK IDs/location/vars, KQL columns, logo xlink, non-…
Jul 21, 2026
81fa0dd
Merge branch 'master' of https://github.com/Azure/Azure-Sentinel into…
Jul 27, 2026
192875a
Restore HoneyForge entry in ValidConnectorIds after upstream merge
Jul 27, 2026
f0d6eed
Fix CI: CEF sharedKeys permission, parser FunctionName indent, soluti…
Jul 28, 2026
84245cd
fix: ASIM FunctionParams + savedSearches apiVersion for CI
RynoS_BUI Aug 4, 2026
d3b8ddb
Add V3 package: workbook, data connector, analytic rule, hunting queries
RynoS_BUI Aug 20, 2026
b7f2dbd
Add HoneyForge workbook preview images
RynoS_BUI Aug 20, 2026
8273368
Resolve ValidConnectorIds conflict, restore HoneyForge entry
RynoS_BUI Aug 20, 2026
14701cf
Merge remote-tracking branch 'upstream/master' into add-honeyforge-so…
RynoS_BUI Aug 20, 2026
52c738d
Fix parser: convert FunctionParams block scalar to ParserParams list …
RynoS_BUI Aug 21, 2026
33fabdd
Fix parser: add top-level FunctionName/FunctionAlias for KQL validator
RynoS_BUI Aug 25, 2026
3ea397e
Update HoneyForge.json
johndoebui Aug 25, 2026
91d710f
Update mainTemplate.json
johndoebui Aug 25, 2026
d6a21bc
Update createUiDefinition.json
johndoebui Aug 25, 2026
227ccd5
Update mainTemplate.json
johndoebui Aug 25, 2026
91267e7
Merge branch 'master' into add-honeyforge-solution
johndoebui Aug 26, 2026
70f4013
Update ValidConnectorIds.json
johndoebui Aug 26, 2026
c9efb02
Update HoneyForgeEvent.yaml
johndoebui Aug 26, 2026
1ec7dbb
Delete Sample Data/ASIM/Fortinet_Fortigate_WebSession_IngestedLogs.csv
johndoebui Aug 31, 2026
8234786
Delete Solutions/Palo Alto Cortex XDR CCP/Data Connectors/CortexXDR_c…
johndoebui Aug 31, 2026
be524e5
Delete Solutions/Palo Alto Cortex XDR CCP/Data Connectors/CortexXDR_c…
johndoebui Aug 31, 2026
d3df420
Delete Solutions/Palo Alto Cortex XDR CCP/Data Connectors/CortexXDR_c…
johndoebui Aug 31, 2026
8eec36e
Delete Solutions/Palo Alto Cortex XDR CCP/Data Connectors/CortexXDR_c…
johndoebui Aug 31, 2026
735d6e9
Delete Solutions/Palo Alto Cortex XDR CCP/Data Connectors/CortexXDR_c…
johndoebui Aug 31, 2026
0bbd4a1
Delete Solutions/Palo Alto Cortex XDR CCP/Data Connectors/CortexXDR_c…
johndoebui Aug 31, 2026
b5d0bf0
Delete Solutions/Palo Alto Cortex XDR CCP/Data Connectors/CortexXDR_c…
johndoebui Aug 31, 2026
e38e5af
Delete Solutions/Palo Alto Cortex XDR CCP/Data Connectors/CortexXDR_c…
johndoebui Aug 31, 2026
36053f3
Delete Solutions/Palo Alto Cortex XDR CCP/Data/Solution_CortexXDR.json
johndoebui Aug 31, 2026
033c229
Delete Solutions/Palo Alto Cortex XDR CCP/Package/3.0.0.zip
johndoebui Aug 31, 2026
2071d99
Delete Solutions/Palo Alto Cortex XDR CCP/Package/3.0.1.zip
johndoebui Aug 31, 2026
8139576
Delete Solutions/Palo Alto Cortex XDR CCP/Package/3.0.2.zip
johndoebui Aug 31, 2026
0d14f1d
Delete Solutions/Palo Alto Cortex XDR CCP/Package/3.0.3.zip
johndoebui Aug 31, 2026
80fb853
Delete Solutions/Palo Alto Cortex XDR CCP/Package/3.0.4.zip
johndoebui Aug 31, 2026
415143f
Delete Solutions/Palo Alto Cortex XDR CCP/Package/createUiDefinition.…
johndoebui Aug 31, 2026
d788171
Delete Solutions/Palo Alto Cortex XDR CCP/Package/mainTemplate.json
johndoebui Aug 31, 2026
76a2aa6
Delete Solutions/Palo Alto Cortex XDR CCP/Package/testParameters.json
johndoebui Aug 31, 2026
6242a4d
Delete Solutions/Palo Alto Cortex XDR CCP/ReleaseNotes.md
johndoebui Aug 31, 2026
f9de44a
Delete Solutions/Palo Alto Cortex XDR CCP/SolutionMetadata.json
johndoebui Aug 31, 2026
fc89f46
Delete Solutions/Trend Micro Cloud App Security/Data Connectors/Trend…
johndoebui Aug 31, 2026
2238f55
Delete Solutions/Trend Micro Cloud App Security/Data Connectors/Trend…
johndoebui Aug 31, 2026
abf5441
Delete Solutions/Trend Micro Cloud App Security/Data Connectors/Trend…
johndoebui Aug 31, 2026
021460d
Merge branch 'master' into add-honeyforge-solution
johndoebui Aug 31, 2026
df41594
Update Package.zip — sync with CI-fixed mainTemplate.json v3.0.3
johndoebui Sep 4, 2026
de264ca
Merge branch 'master' into add-honeyforge-solution
johndoebui Sep 4, 2026
f4a5ba8
Add MITRE ATT&CK relevantTechniques mappings (T1595, T1590, T1190, T1…
johndoebui Oct 6, 2026
3daa46f
Repackage solution with updated mainTemplate (MITRE relevantTechniques)
johndoebui Oct 6, 2026
fb42a23
Add HoneyForge workbook logo SVG
johndoebui Oct 6, 2026
19ace02
Add HoneyForge workbook entry to WorkbooksMetadata.json
johndoebui Oct 6, 2026
3230f40
Merge upstream master: resolve ValidConnectorIds.json conflict (365 u…
johndoebui Oct 6, 2026
1dab517
Merge branch 'master' into add-honeyforge-solution
johndoebui Oct 6, 2026
9c9a317
Fix: add MITRE relevantTechniques to analytic rule YAML source
johndoebui Oct 8, 2026
d8a8020
Fix: add MITRE relevantTechniques to analytic rule YAML source
johndoebui Oct 8, 2026
20c3190
Repackage: rebuild Package.zip with MITRE techniques in mainTemplate
johndoebui Oct 8, 2026
fdacb4c
Fix: add MITRE relevantTechniques to HoneyForge_FleetCoverage.yaml
johndoebui Oct 9, 2026
2c4bef8
Fix: add MITRE relevantTechniques to HoneyForge_HighFrequency.yaml
johndoebui Oct 9, 2026
a7cf29d
Fix: add MITRE relevantTechniques to HoneyForge_OffHoursActivity.yaml
johndoebui Oct 9, 2026
24cc7e5
Fix: add MITRE relevantTechniques to HoneyForge_RepeatedProbes.yaml
johndoebui Oct 9, 2026
c693e3e
Fix: add MITRE relevantTechniques to HoneyForge_TopAttackingSources.yaml
johndoebui Oct 9, 2026
86ccde3
Add ReleaseNotes.md for HoneyForge solution
johndoebui Oct 9, 2026
48472a1
fix: rename customDetails keys and remove empty groupByAlertDetails t…
johndoebui Oct 9, 2026
69794e8
fix: rename customDetails keys (CustomerID→Customer, SensorID→Sensor)…
johndoebui Oct 9, 2026
25b96eb
fix: rebuild Package.zip with ARM-TTK fixes (rename customDetails key…
johndoebui Oct 9, 2026
c4dbf45
fix: correct MITRE ATT&CK tactic LateralMovement → InitialAccess for …
johndoebui Oct 13, 2026
36889b9
fix: correct MITRE ATT&CK tactic LateralMovement → InitialAccess for …
johndoebui Oct 13, 2026
d31d76e
fix: remove incorrect LateralMovement tactic from HoneyForge_HighFreq…
johndoebui Oct 13, 2026
56a334f
fix: remove incorrect LateralMovement tactic from HoneyForge_OffHours…
johndoebui Oct 13, 2026
438b00e
fix: add missing Reconnaissance tactic to HoneyForge_FleetCoverage hu…
johndoebui Oct 13, 2026
a0b0cc7
fix: update hunting query tactics in mainTemplate to match corrected …
johndoebui Oct 13, 2026
245c5af
fix: repackage solution with corrected MITRE tactics in all source files
johndoebui Oct 13, 2026
e29d54e
Merge branch 'master' into pr/14715
v-maheshbh Oct 19, 2026
55b14d2
Add HoneyForge logo and reset version
v-maheshbh Oct 19, 2026
09ea5a7
Refresh HoneyForge 3.0.0 solution package
v-maheshbh Oct 19, 2026
3187bee
Delete Package.zip
v-maheshbh Oct 19, 2026
6b1cf3f
Merge branch 'master' into pr/14715
v-maheshbh Oct 22, 2026
135572a
Update WorkbooksMetadata.json
v-maheshbh Oct 22, 2026
839917a
Move HoneyForge workbook preview images
v-maheshbh Oct 22, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -367,5 +367,6 @@
"CatoNetworksEventsPush",
"RecordedFuture",
"DelineaPlatformConnector",
"NetcraftIntegrationGatewayDefinition"
]
"NetcraftIntegrationGatewayDefinition",
"HoneyForge"
]
4 changes: 4 additions & 0 deletions Logos/HoneyForgeLogo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
id: bb3b1339-c1fa-473a-8663-3fea78c2e7e2
name: HoneyForge - Deception Sensor Interaction
description: |
Detects an interaction with a HoneyForge deception sensor. Any activity
involving a HoneyForge sensor must be treated as potentially unauthorised
until validated by the security operations team.

HoneyForge sensors are passive decoy devices - legitimate systems and users
should never communicate with them. Any detected interaction may indicate
network scanning, lateral movement, or an actively compromised device.
severity: High
status: Available
requiredDataConnectors:
- connectorId: HoneyForge
dataTypes:
- CommonSecurityLog
queryFrequency: 5m
queryPeriod: 5m
triggerOperator: gt
triggerThreshold: 0
tactics:
- Reconnaissance
- InitialAccess
relevantTechniques:
- T1595
- T1590
- T1190
- T1133
query: |
CommonSecurityLog
| where DeviceVendor =~ "BUI"
| where DeviceProduct =~ "HoneyForge"
| extend
SrcIpAddr = tostring(SourceIP),
DstIpAddr = tostring(DestinationIP),
SensorID = tostring(DeviceCustomString1),
CustomerID = tostring(DeviceCustomString2),
SensorName = iff(
isempty(tostring(DeviceCustomString3)),
tostring(Computer),
tostring(DeviceCustomString3)
),
EventType = iff(
isempty(tostring(DeviceEventClassID)),
"unknown",
tostring(DeviceEventClassID)
),
EventActivity = tostring(Activity),
EventProtocol = tostring(Protocol)
| where isnotempty(SrcIpAddr)
| where isnotempty(DstIpAddr)
| summarize
TimeGenerated = max(TimeGenerated),
FirstSeen = min(TimeGenerated),
LastSeen = max(TimeGenerated),
EventCount = count(),
SourcePorts = make_set(tostring(SourcePort), 20),
DestinationPorts = make_set(tostring(DestinationPort), 20),
Protocols = make_set(EventProtocol, 10),
Activities = make_set(EventActivity, 20),
CEFSeverities = make_set(tostring(LogSeverity), 10),
DeviceVersions = make_set(tostring(DeviceVersion), 10),
Collectors = make_set(tostring(Computer), 10)
by
SrcIpAddr,
DstIpAddr,
SensorID,
CustomerID,
SensorName,
EventType
| extend
SourcePortList = strcat_array(SourcePorts, ", "),
DestinationPortList = strcat_array(DestinationPorts, ", "),
ProtocolList = strcat_array(Protocols, ", "),
ActivityList = strcat_array(Activities, ", "),
CEFSeverityList = strcat_array(CEFSeverities, ", "),
DeviceVersionList = strcat_array(DeviceVersions, ", "),
CollectorList = strcat_array(Collectors, ", ")
| project
TimeGenerated,
FirstSeen,
LastSeen,
EventCount,
SrcIpAddr,
DstIpAddr,
SourcePortList,
DestinationPortList,
ProtocolList,
SensorID,
SensorName,
CustomerID,
EventType,
ActivityList,
CEFSeverityList,
DeviceVersionList,
CollectorList
suppressionDuration: 5h
suppressionEnabled: false
incidentConfiguration:
createIncident: true
groupingConfiguration:
enabled: true
reopenClosedIncident: false
lookbackDuration: 4h
matchingMethod: Selected
groupByEntities:
- IP
groupByCustomDetails:
- Customer
- Sensor
eventGroupingSettings:
aggregationKind: AlertPerResult
alertDetailsOverride:
alertDisplayNameFormat: "HoneyForge: {{EventType}} from {{SrcIpAddr}} on {{SensorName}}"
alertDescriptionFormat: |
HoneyForge detected {{EventCount}} event(s) targeting {{DstIpAddr}}
using {{ProtocolList}}. Treat this activity as unauthorised until validated.
customDetails:
Customer: CustomerID
Sensor: SensorID
SensorName: SensorName
EventType: EventType
Activity: ActivityList
SourcePorts: SourcePortList
DestinationPorts: DestinationPortList
Protocol: ProtocolList
EventCount: EventCount
FirstSeen: FirstSeen
LastSeen: LastSeen
DeviceVersion: DeviceVersionList
Collector: CollectorList
entityMappings:
- entityType: IP
fieldMappings:
- identifier: Address
columnName: SrcIpAddr
- entityType: IP
fieldMappings:
- identifier: Address
columnName: DstIpAddr
- entityType: Host
fieldMappings:
- identifier: HostName
columnName: SensorName
version: 1.0.0
kind: NRT
128 changes: 128 additions & 0 deletions Solutions/HoneyForge/Data Connectors/HoneyForge.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
{
"id": "HoneyForge",
"title": "HoneyForge Threat Detection",
"publisher": "BUI",
"descriptionMarkdown": "The [HoneyForge](https://honeyforge.tech) connector ingests deception sensor events from the HoneyForge Threat Detection Platform into Microsoft Sentinel. HoneyForge deploys hardware honeypot sensors across your network that passively listen for connection attempts. Any interaction with a sensor is, by definition, suspicious — because legitimate systems should never communicate with a decoy device.\n\nEvents are forwarded to Microsoft Sentinel in Common Event Format (CEF) via syslog. The connector provides immediate detection coverage through the bundled analytic rule, hunting queries, and operational workbook.",
"logo": "Logos/HoneyForgeLogo.svg",
"graphQueriesTableName": "CommonSecurityLog",
"graphQueries": [
{
"metricName": "Total events received",
"legend": "HoneyForge sensor events",
"baseQuery": "CommonSecurityLog\n| where DeviceVendor =~ \"BUI\"\n| where DeviceProduct =~ \"HoneyForge\""
}
],
"sampleQueries": [
{
"description": "All HoneyForge events — last 24 hours",
"query": "CommonSecurityLog\n| where DeviceVendor =~ \"BUI\"\n| where DeviceProduct =~ \"HoneyForge\"\n| where TimeGenerated \u003e= ago(24h)\n| sort by TimeGenerated desc"
},
{
"description": "Top source IPs interacting with sensors — last 7 days",
"query": "CommonSecurityLog\n| where DeviceVendor =~ \"BUI\"\n| where DeviceProduct =~ \"HoneyForge\"\n| where TimeGenerated \u003e= ago(7d)\n| summarize EventCount = count() by SourceIP\n| top 20 by EventCount desc"
},
{
"description": "Events by sensor — last 7 days",
"query": "CommonSecurityLog\n| where DeviceVendor =~ \"BUI\"\n| where DeviceProduct =~ \"HoneyForge\"\n| where TimeGenerated \u003e= ago(7d)\n| extend SensorName = iff(isempty(tostring(DeviceCustomString3)), tostring(Computer), tostring(DeviceCustomString3))\n| summarize EventCount = count() by SensorName\n| sort by EventCount desc"
}
],
"connectivityCriterias": [
{
"type": "IsConnectedQuery",
"value": [
"CommonSecurityLog\n| where DeviceVendor =~ \"BUI\"\n| where DeviceProduct =~ \"HoneyForge\"\n| summarize LastLogReceived = max(TimeGenerated)\n| project IsConnected = LastLogReceived \u003e ago(3d)"
]
}
],
"dataTypes": [
{
"name": "CommonSecurityLog (HoneyForge)",
"lastDataReceivedQuery": "CommonSecurityLog\n| where DeviceVendor =~ \"BUI\"\n| where DeviceProduct =~ \"HoneyForge\"\n| summarize Time = max(TimeGenerated)\n| where isnotempty(Time)"
}
],
"availability": {
"status": 1,
"isPreview": false
},
"permissions": {
"resourceProvider": [
{
"provider": "Microsoft.OperationalInsights/workspaces",
"permissionsDisplayText": "read and write permissions are required.",
"providerDisplayName": "Workspace",
"scope": "Workspace",
"requiredPermissions": {
"read": true,
"write": true,
"delete": true
}
},
{
"provider": "Microsoft.OperationalInsights/workspaces/sharedKeys",
"permissionsDisplayText": "read permissions to shared keys for the workspace are required. [See the documentation to learn more about workspace keys](https://docs.microsoft.com/azure/azure-monitor/platform/agent-windows#obtain-workspace-id-and-key).",
"providerDisplayName": "Keys",
"scope": "Workspace",
"requiredPermissions": {
"action": true
}
}
],
"customs": [
{
"description": "To collect data from non-Azure VMs, they must have Azure Arc installed and enabled. [Learn more](https://learn.microsoft.com/azure/azure-monitor/agents/azure-monitor-agent-install)"
},
{
"description": "The **Common Event Format (CEF) via AMA** solution must be installed in your Microsoft Sentinel workspace. [Install from Microsoft Marketplace](https://marketplace.microsoft.com/en-us/product/saas/azuresentinel.azure-sentinel-solution-commoneventformat)"
}
]
},
"instructionSteps": [
{
"title": "",
"description": "\u003e**NOTE:** This connector uses the **Common Event Format (CEF)** to forward HoneyForge sensor events to Microsoft Sentinel via syslog. An ASIM parser (`HoneyForgeEvent`) is deployed with this solution to normalise the events to the ASIM NetworkSession schema."
},
{
"title": "Step 1 — Deploy the CEF syslog forwarder",
"description": "Deploy a Linux machine to act as the syslog forwarder between your HoneyForge deployment and Microsoft Sentinel. This machine can be on-premises, in Azure, or in another cloud. It must have network line-of-sight to receive syslog from HoneyForge and outbound HTTPS to the Log Analytics workspace.\n\n**Requirements:**\n- Python 2.7 or 3.x\n- sudo / elevated permissions\n- Outbound HTTPS (TCP 443) to `*.ods.opinsights.azure.com`\n- Inbound TCP/UDP 514 from the HoneyForge backend",
"innerSteps": [
{
"title": "1.1 — Install the Log Analytics agent and CEF collector",
"description": "Run the following command on your Linux forwarder machine. Replace `{WorkspaceId}` and `{PrimaryKey}` with your Microsoft Sentinel workspace values.",
"instructions": [
{
"parameters": {
"fillWith": [
"WorkspaceId",
"PrimaryKey"
],
"label": "Run on the Linux forwarder:",
"value": "sudo wget -O cef_installer.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/CEF/cef_installer.py \u0026\u0026 sudo python cef_installer.py {0} {1}"
},
"type": "CopyableLabel"
}
]
}
]
},
{
"title": "Step 2 — Configure HoneyForge syslog forwarding",
"description": "Configure HoneyForge to forward CEF-formatted sensor events to the Linux forwarder.\n\n1. Log in to the HoneyForge dashboard at [platform.honeyforge.tech](https://platform.honeyforge.tech).\n2. Navigate to **Settings → SIEM / Syslog**.\n3. Enter the **IP address** of your Linux forwarder and port **514**.\n4. Select **CEF** as the format and save.\n5. Click **Send test event** to verify connectivity.\n\nFor assistance configuring syslog forwarding, contact BUI at [support@bui.co.za](mailto:support@bui.co.za)."
},
{
"title": "Step 3 — Validate connectivity",
"description": "Allow up to 20 minutes for the first events to appear in the `CommonSecurityLog` table. Validate that events are arriving with the following query:\n\n```kql\nCommonSecurityLog\n| where DeviceVendor =~ \"BUI\"\n| where DeviceProduct =~ \"HoneyForge\"\n| take 10\n```\n\nIf no events appear after 20 minutes, run the connectivity troubleshooter:",
"instructions": [
{
"parameters": {
"fillWith": [
"WorkspaceId"
],
"label": "Run the troubleshooter on the Linux forwarder:",
"value": "sudo wget -O cef_troubleshoot.py https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/DataConnectors/CEF/cef_troubleshoot.py \u0026\u0026 sudo python cef_troubleshoot.py {0}"
},
"type": "CopyableLabel"
}
]
}
]
}
27 changes: 27 additions & 0 deletions Solutions/HoneyForge/Data/Solution_HoneyForge.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"Name": "HoneyForge",
"Author": "BUI - support@bui.co.za",
"Logo": "<img src=\"https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Logos/HoneyForgeLogo.svg\" width=\"75px\" height=\"75px\">",
"Description": "The [HoneyForge](https://honeyforge.tech) solution for Microsoft Sentinel enables you to ingest HoneyForge honeypot deception sensor events into Microsoft Sentinel via CEF/AMA, providing visibility into attack sources, targeted sensors, protocols, and threat trends across your honeypot deployment.",
"Workbooks": [
"Solutions/HoneyForge/Workbooks/HoneyForge.json"
],
"Data Connectors": [
"Solutions/HoneyForge/Data Connectors/HoneyForge.json"
],
"Analytic Rules": [
"Solutions/HoneyForge/Analytic Rules/HoneyForge_DeceptionSensorInteraction.yaml"
],
"Hunting Queries": [
"Solutions/HoneyForge/Hunting Queries/HoneyForge_FleetCoverage.yaml",
"Solutions/HoneyForge/Hunting Queries/HoneyForge_HighFrequency.yaml",
"Solutions/HoneyForge/Hunting Queries/HoneyForge_OffHoursActivity.yaml",
"Solutions/HoneyForge/Hunting Queries/HoneyForge_RepeatedProbes.yaml",
"Solutions/HoneyForge/Hunting Queries/HoneyForge_TopAttackingSources.yaml"
],
"BasePath": "C:\\GitHub\\Azure-Sentinel\\",
"Version": "3.0.0",
"Metadata": "SolutionMetadata.json",
"TemplateSpec": true,
"Is1PConnector": false
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
id: 7bf37318-4d5e-6f7a-0b1c-2d3e4f5a6b7c
name: HoneyForge - Sensor Fleet Coverage and Health
description: |
Provides a per-sensor event summary for the past 30 days, giving visibility
into which sensors are active, which are quiet, and which may be offline or
misconfigured (no events in the last 10 minutes is the offline threshold).

Use this query during routine operations to confirm full fleet coverage and
identify any gaps in your deception layer before an attacker does.
requiredDataConnectors:
- connectorId: HoneyForge
dataTypes:
- CommonSecurityLog
tactics:
- Reconnaissance
relevantTechniques:
- T1595
- T1590
query: |
let lookback = 30d;
let offlineThreshold = 10m;
CommonSecurityLog
| where TimeGenerated >= ago(lookback)
| where DeviceVendor =~ "BUI"
| where DeviceProduct =~ "HoneyForge"
| extend
SensorID = tostring(DeviceCustomString1),
CustomerID = tostring(DeviceCustomString2),
SensorName = iff(isempty(tostring(DeviceCustomString3)), tostring(Computer), tostring(DeviceCustomString3))
| summarize
TotalEvents = count(),
UniqueSources = dcount(SourceIP),
FirstEvent = min(TimeGenerated),
LastEvent = max(TimeGenerated),
Protocols = make_set(tostring(Protocol), 10)
by SensorID, SensorName, CustomerID
| extend
MinutesSinceLast = datetime_diff('minute', now(), LastEvent),
SensorStatus = iff(datetime_diff('minute', now(), LastEvent) <= 10, "Online", "Offline / No Recent Events"),
ProtocolStr = strcat_array(Protocols, ", ")
| sort by SensorStatus asc, LastEvent desc
| project
SensorName,
SensorID,
CustomerID,
SensorStatus,
MinutesSinceLast,
TotalEvents,
UniqueSources,
FirstEvent,
LastEvent,
ProtocolStr
version: 1.0.0
Loading
Loading