|
55 | 55 | |
56 | 56 | "_email": "[variables('email')]", |
57 | 57 | "_solutionName": "Salesforce Service Cloud", |
58 | | - "_solutionVersion": "3.0.7", |
| 58 | + "_solutionVersion": "3.0.8", |
59 | 59 | "solutionId": "azuresentinel.azure-sentinel-solution-salesforceservicecloud", |
60 | 60 | "_solutionId": "[variables('solutionId')]", |
61 | 61 | "analyticRuleObject1": { |
62 | | - "analyticRuleVersion1": "1.0.3", |
| 62 | + "analyticRuleVersion1": "1.0.4", |
63 | 63 | "_analyticRulecontentId1": "5a6ce089-e756-40fb-b022-c8e8864a973a", |
64 | 64 | "analyticRuleId1": "[resourceId('Microsoft.SecurityInsights/AlertRuleTemplates', '5a6ce089-e756-40fb-b022-c8e8864a973a')]", |
65 | 65 | "analyticRuleTemplateSpecName1": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-ar-',uniquestring('5a6ce089-e756-40fb-b022-c8e8864a973a')))]", |
66 | | - "_analyticRulecontentProductId1": "[concat(take(variables('_solutionId'),50),'-','ar','-', uniqueString(concat(variables('_solutionId'),'-','AnalyticsRule','-','5a6ce089-e756-40fb-b022-c8e8864a973a','-', '1.0.3')))]" |
| 66 | + "_analyticRulecontentProductId1": "[concat(take(variables('_solutionId'),50),'-','ar','-', uniqueString(concat(variables('_solutionId'),'-','AnalyticsRule','-','5a6ce089-e756-40fb-b022-c8e8864a973a','-', '1.0.4')))]" |
67 | 67 | }, |
68 | 68 | "analyticRuleObject2": { |
69 | | - "analyticRuleVersion2": "1.0.3", |
| 69 | + "analyticRuleVersion2": "1.0.4", |
70 | 70 | "_analyticRulecontentId2": "64d16e62-1a17-4a35-9ea7-2b9fe6f07118", |
71 | 71 | "analyticRuleId2": "[resourceId('Microsoft.SecurityInsights/AlertRuleTemplates', '64d16e62-1a17-4a35-9ea7-2b9fe6f07118')]", |
72 | 72 | "analyticRuleTemplateSpecName2": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-ar-',uniquestring('64d16e62-1a17-4a35-9ea7-2b9fe6f07118')))]", |
73 | | - "_analyticRulecontentProductId2": "[concat(take(variables('_solutionId'),50),'-','ar','-', uniqueString(concat(variables('_solutionId'),'-','AnalyticsRule','-','64d16e62-1a17-4a35-9ea7-2b9fe6f07118','-', '1.0.3')))]" |
| 73 | + "_analyticRulecontentProductId2": "[concat(take(variables('_solutionId'),50),'-','ar','-', uniqueString(concat(variables('_solutionId'),'-','AnalyticsRule','-','64d16e62-1a17-4a35-9ea7-2b9fe6f07118','-', '1.0.4')))]" |
74 | 74 | }, |
75 | 75 | "analyticRuleObject3": { |
76 | | - "analyticRuleVersion3": "1.0.3", |
| 76 | + "analyticRuleVersion3": "1.0.4", |
77 | 77 | "_analyticRulecontentId3": "3094e036-e5ae-4d6e-8626-b0f86ebc71f2", |
78 | 78 | "analyticRuleId3": "[resourceId('Microsoft.SecurityInsights/AlertRuleTemplates', '3094e036-e5ae-4d6e-8626-b0f86ebc71f2')]", |
79 | 79 | "analyticRuleTemplateSpecName3": "[concat(parameters('workspace'),'/Microsoft.SecurityInsights/',concat(parameters('workspace'),'-ar-',uniquestring('3094e036-e5ae-4d6e-8626-b0f86ebc71f2')))]", |
80 | | - "_analyticRulecontentProductId3": "[concat(take(variables('_solutionId'),50),'-','ar','-', uniqueString(concat(variables('_solutionId'),'-','AnalyticsRule','-','3094e036-e5ae-4d6e-8626-b0f86ebc71f2','-', '1.0.3')))]" |
| 80 | + "_analyticRulecontentProductId3": "[concat(take(variables('_solutionId'),50),'-','ar','-', uniqueString(concat(variables('_solutionId'),'-','AnalyticsRule','-','3094e036-e5ae-4d6e-8626-b0f86ebc71f2','-', '1.0.4')))]" |
81 | 81 | }, |
82 | 82 | "workspaceResourceId": "[resourceId('microsoft.OperationalInsights/Workspaces', parameters('workspace'))]", |
83 | 83 | "dataCollectionEndpointId": "[concat('/subscriptions/',parameters('subscription'),'/resourceGroups/',parameters('resourceGroupName'),'/providers/Microsoft.Insights/dataCollectionEndpoints/',parameters('workspace'))]", |
|
112 | 112 | "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" |
113 | 113 | ], |
114 | 114 | "properties": { |
115 | | - "description": "Salesforce-BruteForce_AnalyticalRules Analytics Rule with template version 3.0.7", |
| 115 | + "description": "Salesforce-BruteForce_AnalyticalRules Analytics Rule with template version 3.0.8", |
116 | 116 | "mainTemplate": { |
117 | 117 | "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", |
118 | 118 | "contentVersion": "[variables('analyticRuleObject1').analyticRuleVersion1]", |
|
140 | 140 | "status": "Available", |
141 | 141 | "requiredDataConnectors": [ |
142 | 142 | { |
| 143 | + "connectorId": "SalesforceServiceCloudCCPDefinition", |
143 | 144 | "dataTypes": [ |
144 | 145 | "SalesforceServiceCloud" |
145 | | - ], |
146 | | - "connectorId": "SalesforceServiceCloud" |
| 146 | + ] |
147 | 147 | } |
148 | 148 | ], |
149 | 149 | "tactics": [ |
|
154 | 154 | ], |
155 | 155 | "entityMappings": [ |
156 | 156 | { |
157 | | - "entityType": "Account", |
158 | 157 | "fieldMappings": [ |
159 | 158 | { |
160 | 159 | "columnName": "User", |
161 | 160 | "identifier": "FullName" |
162 | 161 | } |
163 | | - ] |
| 162 | + ], |
| 163 | + "entityType": "Account" |
164 | 164 | } |
165 | 165 | ], |
166 | 166 | "customDetails": { |
167 | | - "EventStartTime": "FailureStartTime", |
168 | 167 | "EventEndTime": "SuccessEndTime", |
| 168 | + "EventStartTime": "FailureStartTime", |
169 | 169 | "IPAddresses": "IpAddresses" |
170 | 170 | } |
171 | 171 | } |
|
221 | 221 | "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" |
222 | 222 | ], |
223 | 223 | "properties": { |
224 | | - "description": "Salesforce-PasswordSpray_AnalyticalRules Analytics Rule with template version 3.0.7", |
| 224 | + "description": "Salesforce-PasswordSpray_AnalyticalRules Analytics Rule with template version 3.0.8", |
225 | 225 | "mainTemplate": { |
226 | 226 | "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", |
227 | 227 | "contentVersion": "[variables('analyticRuleObject2').analyticRuleVersion2]", |
|
238 | 238 | "description": "This query searches for failed attempts to log in from more than 15 various users within a 5 minutes timeframe from the same source. This is a potential indication of a password spray attack.", |
239 | 239 | "displayName": "Potential Password Spray Attack", |
240 | 240 | "enabled": false, |
241 | | - "query": "let FailureThreshold = 15; \nSalesforceServiceCloud\n| where EventType =~ 'Login' and LoginStatus != 'LOGIN_NO_ERROR'\n| where LoginStatus in~ ('LOGIN_ERROR_INVALID_PASSWORD', 'LOGIN_ERROR_SSO_PWD_INVALID')\n| summarize UserCount=dcount(UserId), Users = make_set(UserId,100) by ClientIp, bin(TimestampDerived, 5m)\n| where UserCount > FailureThreshold\n", |
| 241 | + "query": "let FailureThreshold = 15; \nSalesforceServiceCloud\n| where EventType =~ 'Login' and LoginStatus != 'LOGIN_NO_ERROR'\n| where LoginStatus in~ ('LOGIN_ERROR_INVALID_PASSWORD', 'LOGIN_ERROR_SSO_PWD_INVALID')\n| extend TimestampDerived = todatetime(TimestampDerived)\n| summarize UserCount=dcount(UserId), Users = make_set(UserId,100) by ClientIp, bin(TimestampDerived, 5m)\n| where UserCount > FailureThreshold\n", |
242 | 242 | "queryFrequency": "PT1H", |
243 | 243 | "queryPeriod": "PT1H", |
244 | 244 | "severity": "Medium", |
|
249 | 249 | "status": "Available", |
250 | 250 | "requiredDataConnectors": [ |
251 | 251 | { |
| 252 | + "connectorId": "SalesforceServiceCloudCCPDefinition", |
252 | 253 | "dataTypes": [ |
253 | 254 | "SalesforceServiceCloud" |
254 | | - ], |
255 | | - "connectorId": "SalesforceServiceCloud" |
| 255 | + ] |
256 | 256 | } |
257 | 257 | ], |
258 | 258 | "tactics": [ |
|
263 | 263 | ], |
264 | 264 | "entityMappings": [ |
265 | 265 | { |
266 | | - "entityType": "IP", |
267 | 266 | "fieldMappings": [ |
268 | 267 | { |
269 | 268 | "columnName": "ClientIp", |
270 | 269 | "identifier": "Address" |
271 | 270 | } |
272 | | - ] |
| 271 | + ], |
| 272 | + "entityType": "IP" |
273 | 273 | } |
274 | 274 | ], |
275 | 275 | "customDetails": { |
|
328 | 328 | "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" |
329 | 329 | ], |
330 | 330 | "properties": { |
331 | | - "description": "Salesforce-SigninsMultipleCountries_AnalyticalRules Analytics Rule with template version 3.0.7", |
| 331 | + "description": "Salesforce-SigninsMultipleCountries_AnalyticalRules Analytics Rule with template version 3.0.8", |
332 | 332 | "mainTemplate": { |
333 | 333 | "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", |
334 | 334 | "contentVersion": "[variables('analyticRuleObject3').analyticRuleVersion3]", |
|
345 | 345 | "description": "This query searches for successful user logins from different countries within 30 mins.", |
346 | 346 | "displayName": "User Sign in from different countries", |
347 | 347 | "enabled": false, |
348 | | - "query": "let threshold = 2;\nlet Countrydb = externaldata(Network:string, geoname_id:string, continent_code:string, continent_name:string, country_iso_code:string, country_name:string)\n[@\"https://raw.githubusercontent.com/datasets/geoip2-ipv4/master/data/geoip2-ipv4.csv\"];\nlet UsersLocation = SalesforceServiceCloud\n| where EventType =~ 'Login' and LoginStatus=~'LOGIN_NO_ERROR'\n| project TimeGenerated, TimestampDerived, ClientIp, UserId, User, UserType ;\nUsersLocation\n| extend Dummy=1\n| summarize count() by Hour=bin(TimestampDerived,30m), ClientIp,User, Dummy\n| partition by Hour(\n lookup (Countrydb|extend Dummy=1) on Dummy\n | where ipv4_is_match(ClientIp, Network)\n )\n| summarize NumOfCountries = dcount(country_name) by User, Hour\n| where NumOfCountries >= threshold\n", |
| 348 | + "query": "let threshold = 2;\nlet Countrydb = externaldata(Network:string, geoname_id:string, continent_code:string, continent_name:string, country_iso_code:string, country_name:string)\n[@\"https://raw.githubusercontent.com/datasets/geoip2-ipv4/master/data/geoip2-ipv4.csv\"];\nlet UsersLocation = SalesforceServiceCloud\n| where EventType =~ 'Login' and LoginStatus=~'LOGIN_NO_ERROR'\n| project TimeGenerated, TimestampDerived, ClientIp, UserId, User, UserType ;\nUsersLocation\n| extend Dummy=1\n| extend TimestampDerived = todatetime(TimestampDerived)\n| summarize count() by Hour=bin(TimestampDerived,30m), ClientIp,User, Dummy\n| partition by Hour(\n lookup (Countrydb|extend Dummy=1) on Dummy\n | where ipv4_is_match(ClientIp, Network)\n )\n| summarize NumOfCountries = dcount(country_name) by User, Hour\n| where NumOfCountries >= threshold\n", |
349 | 349 | "queryFrequency": "PT1H", |
350 | 350 | "queryPeriod": "PT1H", |
351 | 351 | "severity": "Medium", |
|
356 | 356 | "status": "Available", |
357 | 357 | "requiredDataConnectors": [ |
358 | 358 | { |
| 359 | + "connectorId": "SalesforceServiceCloudCCPDefinition", |
359 | 360 | "dataTypes": [ |
360 | 361 | "SalesforceServiceCloud" |
361 | | - ], |
362 | | - "connectorId": "SalesforceServiceCloud" |
| 362 | + ] |
363 | 363 | } |
364 | 364 | ], |
365 | 365 | "tactics": [ |
|
370 | 370 | ], |
371 | 371 | "entityMappings": [ |
372 | 372 | { |
373 | | - "entityType": "Account", |
374 | 373 | "fieldMappings": [ |
375 | 374 | { |
376 | 375 | "columnName": "User", |
377 | 376 | "identifier": "AadUserId" |
378 | 377 | } |
379 | | - ] |
| 378 | + ], |
| 379 | + "entityType": "Account" |
380 | 380 | } |
381 | 381 | ] |
382 | 382 | } |
|
2949 | 2949 | "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" |
2950 | 2950 | ], |
2951 | 2951 | "properties": { |
2952 | | - "description": "SalesforceServiceCloud Data Parser with template version 3.0.7", |
| 2952 | + "description": "SalesforceServiceCloud Data Parser with template version 3.0.8", |
2953 | 2953 | "mainTemplate": { |
2954 | 2954 | "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", |
2955 | 2955 | "contentVersion": "[variables('parserObject1').parserVersion1]", |
|
3081 | 3081 | "[extensionResourceId(resourceId('Microsoft.OperationalInsights/workspaces', parameters('workspace')), 'Microsoft.SecurityInsights/contentPackages', variables('_solutionId'))]" |
3082 | 3082 | ], |
3083 | 3083 | "properties": { |
3084 | | - "description": "SalesforceServiceCloud Workbook with template version 3.0.7", |
| 3084 | + "description": "SalesforceServiceCloud Workbook with template version 3.0.8", |
3085 | 3085 | "mainTemplate": { |
3086 | 3086 | "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", |
3087 | 3087 | "contentVersion": "[variables('workbookVersion1')]", |
|
3165 | 3165 | "apiVersion": "2023-04-01-preview", |
3166 | 3166 | "location": "[parameters('workspace-location')]", |
3167 | 3167 | "properties": { |
3168 | | - "version": "3.0.7", |
| 3168 | + "version": "3.0.8", |
3169 | 3169 | "kind": "Solution", |
3170 | 3170 | "contentSchemaVersion": "3.0.0", |
3171 | 3171 | "displayName": "Salesforce Service Cloud", |
|
0 commit comments