|
22 | 22 | "description": "Selects the time range for the drilldown",
|
23 | 23 | "isRequired": true,
|
24 | 24 | "value": {
|
25 |
| - "durationMs": 86400000 |
| 25 | + "durationMs": 5184000000 |
26 | 26 | },
|
27 | 27 | "typeSettings": {
|
28 | 28 | "selectableValues": [
|
|
88 | 88 | "typeSettings": {
|
89 | 89 | "additionalResourceOptions": []
|
90 | 90 | },
|
| 91 | + "timeContext": { |
| 92 | + "durationMs": 0 |
| 93 | + }, |
| 94 | + "timeContextFromParameter": "time_range", |
91 | 95 | "queryType": 0,
|
92 | 96 | "resourceType": "microsoft.operationalinsights/workspaces"
|
93 | 97 | }
|
|
102 | 106 | "type": 3,
|
103 | 107 | "content": {
|
104 | 108 | "version": "KqlItem/1.0",
|
105 |
| - "query": "Sysmon\r\n| where Computer contains \"{host}\"\r\n| where isnotempty(technique_name)\r\n| summarize count() by technique_name, bin(TimeGenerated, 1h)", |
| 109 | + "query": "let process_path_create_whitelist = process_create_whitelist | project process_path;\r\nlet process_path_access_whitelist = process_access_whitelist | project process_path;\r\nlet process_path_dns_whitelist = dns_whitelist | project process_path;\r\nlet process_path_file_create_whitelist = file_create_whitelist | project process_path;\r\nlet process_path_image_load_whitelist = image_load_whitelist | project process_path;\r\nlet process_path_network_whitelist = network_whitelist | project process_path;\r\nlet process_path_pipe_whitelist = pipe_whitelist | project process_path;\r\nlet process_path_registry_whitelist = registry_whitelist | project process_path;\r\nSysmon\r\n| where Computer contains \"{host}\"\r\n| where isnotempty(technique_name)\r\n| where process_path !in~ (process_path_create_whitelist) and process_path !in~ (process_path_access_whitelist) and process_path !in~ (process_path_dns_whitelist) and process_path !in~ (process_path_file_create_whitelist) and process_path !in~ (process_path_image_load_whitelist) and process_path !in~ (process_path_network_whitelist) and process_path !in~ (process_path_pipe_whitelist) and process_path !in~ (process_path_registry_whitelist)\r\n| summarize count() by technique_name, bin(TimeGenerated, 1h)", |
106 | 110 | "size": 0,
|
107 | 111 | "title": "Activity by technique",
|
108 | 112 | "timeContext": {
|
|
122 | 126 | "type": 3,
|
123 | 127 | "content": {
|
124 | 128 | "version": "KqlItem/1.0",
|
125 |
| - "query": "Sysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 1\r\n| where isnotempty(technique_name)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, user_name, process_parent_path, process_path, file_name, process_parent_command_line, process_command_line, process_parent_guid, process_guid, hash_sha256, process_id, process_parent_id", |
| 129 | + "query": "let process_ppath_whitelist = process_create_whitelist | project process_parent_path;\r\nlet process_path_whitelist = process_create_whitelist | project process_path;\r\nlet command_line_whitelist = process_create_whitelist | project replace(\"'\", \"\", replace('\"', '', process_command_line));\r\nlet hash_whitelist = process_create_whitelist | project hash_sha256;\r\nSysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 1\r\n| where isnotempty(technique_name)\r\n| where process_parent_path !in~ (process_ppath_whitelist) and process_path !in~ (process_path_whitelist) and replace('\"', '', tostring(process_command_line)) !in~ (command_line_whitelist) and hash_sha256 !in~ (hash_whitelist)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, user_name, process_parent_path, process_path, file_name, process_parent_command_line, process_command_line, process_parent_guid, process_guid, hash_sha256, process_id, process_parent_id", |
126 | 130 | "size": 0,
|
127 | 131 | "showAnalytics": true,
|
128 |
| - "title": "Process create", |
| 132 | + "title": "Process create (not whitelisted)", |
| 133 | + "noDataMessage": "No process create activity matching ATT&CK techniques for host", |
129 | 134 | "timeContext": {
|
130 | 135 | "durationMs": 0
|
131 | 136 | },
|
|
336 | 341 | }
|
337 | 342 | ]
|
338 | 343 | },
|
339 |
| - "name": "query - 2", |
| 344 | + "name": "process-create-query", |
340 | 345 | "styleSettings": {
|
341 | 346 | "progressStyle": "loader"
|
342 | 347 | }
|
|
345 | 350 | "type": 3,
|
346 | 351 | "content": {
|
347 | 352 | "version": "KqlItem/1.0",
|
348 |
| - "query": "Sysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 10\r\n| where isnotempty(technique_name)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, process_path, target_process_path, process_granted_access, target_process_guid, process_id, target_process_id", |
| 353 | + "query": "let process_path_whitelist = process_access_whitelist | project process_path;\r\nlet target_process_path_whitelist = process_access_whitelist | project target_process_path;\r\nlet process_granted_access_whitelist = process_access_whitelist | project process_granted_access;\r\nSysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 10\r\n| where isnotempty(technique_name)\r\n| where process_path !in~ (process_path_whitelist) and target_process_path !in~ (target_process_path_whitelist) and process_granted_access !in~ (process_granted_access_whitelist)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, process_path, target_process_path, process_granted_access, target_process_guid, process_id, target_process_id", |
349 | 354 | "size": 0,
|
350 | 355 | "showAnalytics": true,
|
351 |
| - "title": "Process access", |
| 356 | + "title": "Process access (not whitelisted)", |
| 357 | + "noDataMessage": "No process access activity matching ATT&CK techniques for host", |
352 | 358 | "timeContext": {
|
353 | 359 | "durationMs": 0
|
354 | 360 | },
|
|
494 | 500 | "type": 3,
|
495 | 501 | "content": {
|
496 | 502 | "version": "KqlItem/1.0",
|
497 |
| - "query": "Sysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 11\r\n| where isnotempty(technique_name)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, process_path, file_name, process_guid, process_id", |
| 503 | + "query": "let file_name_whitelist = file_create_whitelist | project file_name;\r\nlet file_path_whitelist = file_create_whitelist | project file_path;\r\nlet proc_path_whitelist = file_create_whitelist | project process_path;\r\nSysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 11\r\n| where isnotempty(technique_name)\r\n| where process_path !in~ (proc_path_whitelist) and file_name !in~ (file_name_whitelist)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, process_path, file_name, process_guid, process_id", |
498 | 504 | "size": 0,
|
499 | 505 | "showAnalytics": true,
|
500 |
| - "title": "File created", |
| 506 | + "title": "File created (not whitelisted)", |
| 507 | + "noDataMessage": "No file create activity matching ATT&CK techniques for host", |
501 | 508 | "timeContext": {
|
502 | 509 | "durationMs": 0
|
503 | 510 | },
|
|
612 | 619 | ]
|
613 | 620 | }
|
614 | 621 | },
|
615 |
| - "name": "File-created-query", |
| 622 | + "name": "file-created-query", |
616 | 623 | "styleSettings": {
|
617 | 624 | "progressStyle": "loader"
|
618 | 625 | }
|
|
621 | 628 | "type": 3,
|
622 | 629 | "content": {
|
623 | 630 | "version": "KqlItem/1.0",
|
624 |
| - "query": "Sysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 7\r\n| where isnotempty(technique_name)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, process_path, module_loaded, module_is_signed, module_signature, module_signature_status, process_id, process_guid", |
| 631 | + "query": "let process_path__whitelist = image_load_whitelist | project process_path;\r\nlet driver_loaded_whitelist = image_load_whitelist | project driver_loaded;\r\nlet driver_signed_whitelist = image_load_whitelist | project driver_is_signed;\r\nlet drv_signature_whitelist = image_load_whitelist | project driver_signature;\r\nlet signat_status_whitelist = image_load_whitelist | project driver_signature_status;\r\nSysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 7\r\n| where isnotempty(technique_name)\r\n| where process_path !in~ (process_path__whitelist) and module_loaded !in~ (driver_loaded_whitelist) and module_is_signed !in~ (driver_signed_whitelist) and module_signature !in~ (drv_signature_whitelist) and module_signature_status !in~ (signat_status_whitelist)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, process_path, module_loaded, module_is_signed, module_signature, module_signature_status, process_id, process_guid", |
625 | 632 | "size": 0,
|
626 | 633 | "showAnalytics": true,
|
627 |
| - "title": "Image loaded", |
| 634 | + "title": "Image loaded (not whitelisted)", |
| 635 | + "noDataMessage": "No image loaded activity matching ATT&CK techniques for host", |
628 | 636 | "timeContext": {
|
629 | 637 | "durationMs": 0
|
630 | 638 | },
|
|
782 | 790 | "type": 3,
|
783 | 791 | "content": {
|
784 | 792 | "version": "KqlItem/1.0",
|
785 |
| - "query": "Sysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 3\r\n| where isnotempty(technique_name)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, user_name, process_path, process_id, process_guid, src_ip, dst_ip, dst_port, src_host_name, dst_host_name", |
| 793 | + "query": "let process_path_whitelist = network_whitelist | project process_path;\r\nlet src_ip_whitelist = network_whitelist | project src_ip;\r\nlet dst_ip_whitelist = network_whitelist | project dst_ip;\r\nlet dst_port_whitelist = network_whitelist | project dst_port;\r\nSysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 3\r\n| where isnotempty(technique_name)\r\n| where process_path !in~ (process_path_whitelist) and src_ip !in~ (src_ip_whitelist) and dst_ip !in~ (dst_ip_whitelist) and dst_port !in~ (dst_port_whitelist)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, user_name, process_path, process_id, process_guid, src_ip, dst_ip, dst_port, src_host_name, dst_host_name", |
786 | 794 | "size": 0,
|
787 | 795 | "showAnalytics": true,
|
788 |
| - "title": "Network connections", |
| 796 | + "title": "Network connections (not whitelisted)", |
| 797 | + "noDataMessage": "No network connection activity matching ATT&CK techniques for host", |
789 | 798 | "timeContext": {
|
790 | 799 | "durationMs": 0
|
791 | 800 | },
|
|
964 | 973 | "type": 3,
|
965 | 974 | "content": {
|
966 | 975 | "version": "KqlItem/1.0",
|
967 |
| - "query": "Sysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 12\r\n| where isnotempty(technique_name)| project TimeGenerated, technique_id, technique_name, phase_name, EventType, Computer, process_path, process_id, process_guid, registry_key_path", |
| 976 | + "query": "let event_type_whitelist = registry_whitelist | project event_type;\r\nlet process_path_whitelist = registry_whitelist | project process_path;\r\nlet registry_key_path_whitelist = registry_whitelist | project registry_key_path;\r\nSysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 12\r\n| where isnotempty(technique_name)\r\n| where process_path !in~ (process_path_whitelist) and EventType !in~ (event_type_whitelist) and registry_key_path !in~ (registry_key_path_whitelist)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, EventType, Computer, process_path, process_id, process_guid, registry_key_path", |
968 | 977 | "size": 0,
|
969 | 978 | "showAnalytics": true,
|
970 |
| - "title": "Registry access", |
| 979 | + "title": "Registry access (not whitelisted)", |
| 980 | + "noDataMessage": "No registry access activity matching ATT&CK techniques for host", |
971 | 981 | "timeContext": {
|
972 | 982 | "durationMs": 0
|
973 | 983 | },
|
|
1102 | 1112 | "type": 3,
|
1103 | 1113 | "content": {
|
1104 | 1114 | "version": "KqlItem/1.0",
|
1105 |
| - "query": "Sysmon\r\n| where EventID == 17\r\n| where Computer contains \"{host}\"\r\n| where isnotempty(technique_name)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, pipe_name, process_path, process_guid, process_id", |
| 1115 | + "query": "let process_path_whitelist = pipe_whitelist | project process_path;\r\nlet pipe_name_whitelist = pipe_whitelist | project pipe_name;\r\nSysmon\r\n| where EventID == 17\r\n| where Computer contains \"{host}\"\r\n| where isnotempty(technique_name)\r\n| where process_path !in~ (process_path_whitelist) and pipe_name !in~ (pipe_name_whitelist)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, pipe_name, process_path, process_guid, process_id", |
1106 | 1116 | "size": 0,
|
1107 | 1117 | "showAnalytics": true,
|
1108 |
| - "title": "Pipes", |
| 1118 | + "title": "Pipes (not whitelisted)", |
| 1119 | + "noDataMessage": "No pipe create and connect activity matching ATT&CK techniques for host", |
1109 | 1120 | "timeContext": {
|
1110 | 1121 | "durationMs": 0
|
1111 | 1122 | },
|
|
1229 | 1240 | "type": 3,
|
1230 | 1241 | "content": {
|
1231 | 1242 | "version": "KqlItem/1.0",
|
1232 |
| - "query": "Sysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 22\r\n| where isnotempty(technique_name)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, process_path, dns_query_name, dns_query_status, dns_query_results, process_guid", |
| 1243 | + "query": "let host_whitelist = dns_whitelist | project host;\r\nlet process_whitelist = dns_whitelist | project process_path;\r\nlet query_whitelist = dns_whitelist | project query_name;\r\nSysmon\r\n| where Computer contains \"{host}\"\r\n| where EventID == 22\r\n| where isnotempty(technique_name)\r\n| where process_path !in~ (process_whitelist) and dns_query_name !in~ (query_whitelist)\r\n| project TimeGenerated, technique_id, technique_name, phase_name, Computer, process_path, dns_query_name, dns_query_status, dns_query_results, process_guid", |
1233 | 1244 | "size": 0,
|
1234 | 1245 | "showAnalytics": true,
|
1235 |
| - "title": "DNS queries", |
| 1246 | + "title": "DNS queries (not whitelisted)", |
| 1247 | + "noDataMessage": "No DNS activity matching ATT&CK techniques for host", |
1236 | 1248 | "timeContext": {
|
1237 | 1249 | "durationMs": 0
|
1238 | 1250 | },
|
|
1459 | 1471 | "styleSettings": {
|
1460 | 1472 | "progressStyle": "loader"
|
1461 | 1473 | }
|
| 1474 | + }, |
| 1475 | + { |
| 1476 | + "type": 1, |
| 1477 | + "content": { |
| 1478 | + "json": "---\r\nComputer drilldown v.1.3.0, built by **Edoardo Gerosa**" |
| 1479 | + }, |
| 1480 | + "name": "text - 12" |
1462 | 1481 | }
|
1463 | 1482 | ],
|
1464 | 1483 | "fromTemplateId": "sentinel-UserWorkbook",
|
|
0 commit comments