From e67245162158c04fd05590d41213ca9d08f400df Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Tue, 31 May 2022 12:58:02 -0400 Subject: [PATCH] Copy packages from snapshot to production --- packages/akamai/1.0.0/changelog.yml | 31 + .../siem/agent/stream/httpjson.yml.hbs | 80 + .../elasticsearch/ingest_pipeline/default.yml | 423 ++ .../1.0.0/data_stream/siem/fields/agent.yml | 114 + .../data_stream/siem/fields/base-fields.yml | 20 + .../1.0.0/data_stream/siem/fields/beats.yml | 12 + .../1.0.0/data_stream/siem/fields/ecs.yml | 264 + .../1.0.0/data_stream/siem/fields/fields.yml | 110 + .../1.0.0/data_stream/siem/manifest.yml | 105 + .../1.0.0/data_stream/siem/sample_event.json | 188 + packages/akamai/1.0.0/docs/README.md | 326 ++ packages/akamai/1.0.0/img/akamai_logo.svg | 151 + packages/akamai/1.0.0/manifest.yml | 26 + packages/auth0/1.0.0/changelog.yml | 31 + .../logs/agent/stream/http_endpoint.yml.hbs | 41 + .../elasticsearch/ingest_pipeline/default.yml | 1105 ++++ .../1.0.0/data_stream/logs/fields/agent.yml | 3 + .../data_stream/logs/fields/base-fields.yml | 20 + .../1.0.0/data_stream/logs/fields/ecs.yml | 298 + .../1.0.0/data_stream/logs/fields/fields.yml | 126 + .../auth0/1.0.0/data_stream/logs/manifest.yml | 74 + .../1.0.0/data_stream/logs/sample_event.json | 156 + packages/auth0/1.0.0/docs/README.md | 330 ++ packages/auth0/1.0.0/img/auth0-logo.svg | 60 + packages/auth0/1.0.0/img/auth0-screenshot.png | Bin 0 -> 2464405 bytes ...-29fb7200-4062-11ec-b18d-ef6bf98b26bf.json | 132 + ...-629b19e0-4061-11ec-b18d-ef6bf98b26bf.json | 35 + ...-187e7650-42a9-11ec-b9a2-edbe9edd14c9.json | 35 + packages/auth0/1.0.0/manifest.yml | 34 + .../carbon_black_cloud/1.0.1/changelog.yml | 26 + .../alert/agent/stream/aws-s3.yml.hbs | 24 + .../alert/agent/stream/httpjson.yml.hbs | 52 + .../elasticsearch/ingest_pipeline/default.yml | 313 ++ .../1.0.1/data_stream/alert/fields/agent.yml | 204 + .../data_stream/alert/fields/base-fields.yml | 20 + .../1.0.1/data_stream/alert/fields/ecs.yml | 117 + .../1.0.1/data_stream/alert/fields/fields.yml | 218 + .../1.0.1/data_stream/alert/manifest.yml | 95 + .../1.0.1/data_stream/alert/sample_event.json | 114 + .../agent/stream/httpjson.yml.hbs | 45 + .../elasticsearch/ingest_pipeline/default.yml | 132 + .../fields/agent.yml | 204 + .../fields/base-fields.yml | 20 + .../fields/ecs.yml | 57 + .../fields/fields.yml | 39 + .../asset_vulnerability_summary/manifest.yml | 42 + .../sample_event.json | 76 + .../audit/agent/stream/httpjson.yml.hbs | 32 + .../elasticsearch/ingest_pipeline/default.yml | 93 + .../1.0.1/data_stream/audit/fields/agent.yml | 204 + .../data_stream/audit/fields/base-fields.yml | 20 + .../1.0.1/data_stream/audit/fields/ecs.yml | 55 + .../1.0.1/data_stream/audit/fields/fields.yml | 9 + .../1.0.1/data_stream/audit/manifest.yml | 42 + .../1.0.1/data_stream/audit/sample_event.json | 63 + .../agent/stream/aws-s3.yml.hbs | 24 + .../elasticsearch/ingest_pipeline/default.yml | 587 ++ .../endpoint_event/fields/agent.yml | 204 + .../endpoint_event/fields/base-fields.yml | 20 + .../data_stream/endpoint_event/fields/ecs.yml | 193 + .../endpoint_event/fields/fields.yml | 239 + .../data_stream/endpoint_event/manifest.yml | 48 + .../endpoint_event/sample_event.json | 96 + .../watchlist_hit/agent/stream/aws-s3.yml.hbs | 24 + .../elasticsearch/ingest_pipeline/default.yml | 293 + .../watchlist_hit/fields/agent.yml | 204 + .../watchlist_hit/fields/base-fields.yml | 20 + .../data_stream/watchlist_hit/fields/ecs.yml | 127 + .../watchlist_hit/fields/fields.yml | 89 + .../data_stream/watchlist_hit/manifest.yml | 48 + .../watchlist_hit/sample_event.json | 130 + .../carbon_black_cloud/1.0.1/docs/README.md | 1042 ++++ .../1.0.1/img/carbon_black_cloud-logo.svg | 91 + .../img/carbon_black_cloud-screenshot.png | Bin 0 -> 83921 bytes ...-869252c0-8d71-11ec-ac12-4bc77fa14e95.json | 42 + ...-a94cd3a0-962a-11ec-864c-3332b2a355f7.json | 97 + ...-af030950-8d73-11ec-ac12-4bc77fa14e95.json | 147 + ...-db61a3d0-9534-11ec-8b9d-35e42c3f7fcf.json | 67 + ...-e226d530-9554-11ec-96f0-8de26c63c826.json | 107 + ...-3ea9c2a0-955e-11ec-96f0-8de26c63c826.json | 39 + ...-4272e690-8d71-11ec-ac12-4bc77fa14e95.json | 36 + ...-6494a7e0-9640-11ec-864c-3332b2a355f7.json | 39 + ...-6e41bd70-8d8d-11ec-ac12-4bc77fa14e95.json | 37 + ...-dcc2d650-90a6-11ec-8b9d-35e42c3f7fcf.json | 36 + ...-0296fef0-955d-11ec-96f0-8de26c63c826.json | 25 + ...-0a8f5e90-8d79-11ec-ac12-4bc77fa14e95.json | 25 + ...-0f420ad0-8d71-11ec-ac12-4bc77fa14e95.json | 25 + ...-10f699d0-8d8b-11ec-ac12-4bc77fa14e95.json | 25 + ...-11df3480-9630-11ec-864c-3332b2a355f7.json | 25 + ...-17537cc0-955c-11ec-96f0-8de26c63c826.json | 25 + ...-1b554010-8d73-11ec-ac12-4bc77fa14e95.json | 25 + ...-28323940-955d-11ec-96f0-8de26c63c826.json | 25 + ...-2be6ad50-962f-11ec-864c-3332b2a355f7.json | 25 + ...-2d1eedf0-9629-11ec-8b9d-35e42c3f7fcf.json | 25 + ...-2d324250-963e-11ec-864c-3332b2a355f7.json | 25 + ...-2eafd430-8d83-11ec-ac12-4bc77fa14e95.json | 25 + ...-3aa59c50-955a-11ec-96f0-8de26c63c826.json | 25 + ...-3afe1750-9630-11ec-864c-3332b2a355f7.json | 25 + ...-4dc9e690-955c-11ec-96f0-8de26c63c826.json | 25 + ...-52fde850-8d73-11ec-ac12-4bc77fa14e95.json | 25 + ...-53d65ef0-962f-11ec-864c-3332b2a355f7.json | 25 + ...-56130b90-954a-11ec-8b9d-35e42c3f7fcf.json | 25 + ...-5a5dad90-954a-11ec-8b9d-35e42c3f7fcf.json | 25 + ...-5c122d10-8d83-11ec-ac12-4bc77fa14e95.json | 25 + ...-5c6ce550-8d85-11ec-ac12-4bc77fa14e95.json | 25 + ...-5f690780-954a-11ec-8b9d-35e42c3f7fcf.json | 25 + ...-6496b680-954a-11ec-8b9d-35e42c3f7fcf.json | 25 + ...-68a6c080-954a-11ec-8b9d-35e42c3f7fcf.json | 25 + ...-6bfd1770-954a-11ec-8b9d-35e42c3f7fcf.json | 25 + ...-6efc6240-8d8a-11ec-ac12-4bc77fa14e95.json | 25 + ...-6fcd17f0-955a-11ec-96f0-8de26c63c826.json | 25 + ...-70cdb250-954a-11ec-8b9d-35e42c3f7fcf.json | 25 + ...-715f3ec0-955c-11ec-96f0-8de26c63c826.json | 25 + ...-750fefe0-954a-11ec-8b9d-35e42c3f7fcf.json | 25 + ...-76fe1db0-962e-11ec-864c-3332b2a355f7.json | 25 + ...-792a3310-954a-11ec-8b9d-35e42c3f7fcf.json | 25 + ...-7a6261e0-962f-11ec-864c-3332b2a355f7.json | 25 + ...-7caf3b20-954a-11ec-8b9d-35e42c3f7fcf.json | 25 + ...-80778dc0-954a-11ec-8b9d-35e42c3f7fcf.json | 25 + ...-89932a20-8d86-11ec-ac12-4bc77fa14e95.json | 25 + ...-8af47260-8d87-11ec-ac12-4bc77fa14e95.json | 25 + ...-906f65c0-8d81-11ec-ac12-4bc77fa14e95.json | 25 + ...-928cff80-8d8a-11ec-ac12-4bc77fa14e95.json | 25 + ...-949c1d00-9628-11ec-864c-3332b2a355f7.json | 25 + ...-97ab53f0-8d84-11ec-ac12-4bc77fa14e95.json | 25 + ...-993b8650-8d83-11ec-ac12-4bc77fa14e95.json | 25 + ...-9a533f40-8d80-11ec-ac12-4bc77fa14e95.json | 25 + ...-a5d6fa30-8d8c-11ec-ac12-4bc77fa14e95.json | 25 + ...-a6d2a900-8d70-11ec-ac12-4bc77fa14e95.json | 25 + ...-a7ce1420-9630-11ec-864c-3332b2a355f7.json | 25 + ...-ae34ca40-962e-11ec-864c-3332b2a355f7.json | 25 + ...-bb323db0-955a-11ec-96f0-8de26c63c826.json | 25 + ...-c3786990-9555-11ec-96f0-8de26c63c826.json | 25 + ...-c6cfa8d0-962f-11ec-864c-3332b2a355f7.json | 25 + ...-cb70a610-955c-11ec-96f0-8de26c63c826.json | 25 + ...-cc2d3630-8d83-11ec-ac12-4bc77fa14e95.json | 25 + ...-d33296f0-8d79-11ec-ac12-4bc77fa14e95.json | 25 + ...-d49a3710-8d96-11ec-ac12-4bc77fa14e95.json | 25 + ...-de59dff0-955a-11ec-96f0-8de26c63c826.json | 25 + ...-ee2098d0-8d70-11ec-ac12-4bc77fa14e95.json | 25 + ...-ee670e50-8d89-11ec-ac12-4bc77fa14e95.json | 25 + ...-ee77a260-8d84-11ec-ac12-4bc77fa14e95.json | 25 + ...-f28910d0-9628-11ec-864c-3332b2a355f7.json | 25 + ...-f3f635b0-8d72-11ec-ac12-4bc77fa14e95.json | 25 + ...-f75eabb0-8d8b-11ec-ac12-4bc77fa14e95.json | 25 + ...-f7681be0-962e-11ec-864c-3332b2a355f7.json | 25 + ...-f93958c0-8d83-11ec-ac12-4bc77fa14e95.json | 25 + ...-ff34eaa0-8d79-11ec-ac12-4bc77fa14e95.json | 25 + .../carbon_black_cloud/1.0.1/manifest.yml | 136 + packages/cisco_umbrella/1.0.0/changelog.yml | 71 + .../log/agent/stream/aws-s3.yml.hbs | 70 + .../elasticsearch/ingest_pipeline/default.yml | 423 ++ .../1.0.0/data_stream/log/fields/agent.yml | 198 + .../data_stream/log/fields/base-fields.yml | 24 + .../1.0.0/data_stream/log/fields/ecs.yml | 406 ++ .../1.0.0/data_stream/log/fields/fields.yml | 108 + .../1.0.0/data_stream/log/manifest.yml | 148 + .../1.0.0/data_stream/log/sample_event.json | 97 + packages/cisco_umbrella/1.0.0/docs/README.md | 276 + packages/cisco_umbrella/1.0.0/img/cisco.svg | 1 + packages/cisco_umbrella/1.0.0/manifest.yml | 28 + packages/github/1.0.0/changelog.yml | 61 + .../audit/agent/stream/httpjson.yml.hbs | 69 + .../elasticsearch/ingest_pipeline/default.yml | 155 + .../1.0.0/data_stream/audit/fields/agent.yml | 114 + .../data_stream/audit/fields/base-fields.yml | 23 + .../1.0.0/data_stream/audit/fields/ecs.yml | 88 + .../1.0.0/data_stream/audit/fields/fields.yml | 17 + .../1.0.0/data_stream/audit/manifest.yml | 91 + .../1.0.0/data_stream/audit/sample_event.json | 64 + packages/github/1.0.0/docs/README.md | 136 + .../1.0.0/img/github-audit-dashboard.png | Bin 0 -> 481911 bytes .../1.0.0/img/github-user-dashboard.png | Bin 0 -> 331861 bytes packages/github/1.0.0/img/github.svg | 3 + ...-8bfd8310-205c-11ec-8b10-11a4c5e322a0.json | 42 + ...-dcee84c0-2059-11ec-8b10-11a4c5e322a0.json | 62 + ...-871e5750-205e-11ec-8b10-11a4c5e322a0.json | 22 + ...-173f1050-20ae-11ec-8b10-11a4c5e322a0.json | 46 + ...-a5f3d9b0-20af-11ec-8b10-11a4c5e322a0.json | 36 + ...-61f60d00-20b4-11ec-8b10-11a4c5e322a0.json | 26 + ...-78ec0aa0-20b4-11ec-8b10-11a4c5e322a0.json | 26 + ...-7b073f90-205e-11ec-8b10-11a4c5e322a0.json | 50 + ...-9638a6e0-20b4-11ec-8b10-11a4c5e322a0.json | 26 + ...-97737b60-20b5-11ec-8b10-11a4c5e322a0.json | 26 + ...-b50c62e0-20b5-11ec-8b10-11a4c5e322a0.json | 26 + ...-ba0ece10-20b3-11ec-8b10-11a4c5e322a0.json | 26 + ...-c803b110-20b4-11ec-8b10-11a4c5e322a0.json | 26 + ...-d7343340-20b3-11ec-8b10-11a4c5e322a0.json | 26 + packages/github/1.0.0/manifest.yml | 35 + packages/microsoft_dhcp/1.4.2/changelog.yml | 61 + .../log/agent/stream/logfile.yml.hbs | 32 + .../elasticsearch/ingest_pipeline/default.yml | 63 + .../elasticsearch/ingest_pipeline/dhcp.yml | 345 ++ .../elasticsearch/ingest_pipeline/dhcpv6.yml | 244 + .../1.4.2/data_stream/log/fields/agent.yml | 4 + .../data_stream/log/fields/base-fields.yml | 20 + .../1.4.2/data_stream/log/fields/ecs.yml | 103 + .../1.4.2/data_stream/log/fields/fields.yml | 63 + .../1.4.2/data_stream/log/manifest.yml | 50 + .../1.4.2/data_stream/log/sample_event.json | 77 + packages/microsoft_dhcp/1.4.2/docs/README.md | 148 + packages/microsoft_dhcp/1.4.2/img/logo.svg | 1 + packages/microsoft_dhcp/1.4.2/manifest.yml | 27 + .../microsoft_sqlserver/1.0.0/changelog.yml | 62 + .../audit/agent/stream/winlog.yml.hbs | 22 + .../elasticsearch/ingest_pipeline/default.yml | 1280 +++++ .../data_stream/audit/fields/base-fields.yml | 12 + .../1.0.0/data_stream/audit/fields/ecs.yml | 205 + .../1.0.0/data_stream/audit/fields/fields.yml | 139 + .../1.0.0/data_stream/audit/fields/winlog.yml | 155 + .../1.0.0/data_stream/audit/manifest.yml | 62 + .../microsoft_sqlserver/1.0.0/docs/README.md | 156 + .../1.0.0/img/microsoft-sql-server-logo.svg | 1 + .../1.0.0/img/sqlserver-dashboard.png | Bin 0 -> 518596 bytes ...-361588b0-389b-11ec-9973-85eff9a74fdb.json | 167 + .../microsoft_sqlserver/1.0.0/manifest.yml | 33 + packages/modsecurity/1.0.0/changelog.yml | 36 + .../auditlog/agent/stream/stream.yml.hbs | 23 + .../elasticsearch/ingest_pipeline/default.yml | 145 + .../data_stream/auditlog/fields/agent.yml | 204 + .../auditlog/fields/base-fields.yml | 23 + .../1.0.0/data_stream/auditlog/fields/ecs.yml | 176 + .../data_stream/auditlog/fields/fields.yml | 6 + .../1.0.0/data_stream/auditlog/manifest.yml | 48 + .../data_stream/auditlog/sample_event.json | 118 + packages/modsecurity/1.0.0/docs/README.md | 111 + packages/modsecurity/1.0.0/img/modsec.svg | 1 + packages/modsecurity/1.0.0/manifest.yml | 28 + packages/netskope/1.0.0/changelog.yml | 21 + .../alerts/agent/stream/tcp.yml.hbs | 18 + .../elasticsearch/ingest_pipeline/default.yml | 296 + .../1.0.0/data_stream/alerts/fields/agent.yml | 204 + .../data_stream/alerts/fields/base-fields.yml | 20 + .../1.0.0/data_stream/alerts/fields/ecs.yml | 213 + .../data_stream/alerts/fields/fields.yml | 1856 ++++++ .../1.0.0/data_stream/alerts/manifest.yml | 41 + .../data_stream/alerts/sample_event.json | 182 + .../events/agent/stream/tcp.yml.hbs | 18 + .../elasticsearch/ingest_pipeline/default.yml | 253 + .../1.0.0/data_stream/events/fields/agent.yml | 204 + .../data_stream/events/fields/base-fields.yml | 20 + .../1.0.0/data_stream/events/fields/ecs.yml | 257 + .../data_stream/events/fields/fields.yml | 1240 +++++ .../1.0.0/data_stream/events/manifest.yml | 41 + .../data_stream/events/sample_event.json | 60 + packages/netskope/1.0.0/docs/README.md | 2920 ++++++++++ .../1.0.0/img/netskope-alerts-screenshot.png | Bin 0 -> 93629 bytes .../1.0.0/img/netskope-events-screenshot.png | Bin 0 -> 114772 bytes packages/netskope/1.0.0/img/netskope-logo.svg | 26 + ...-0f68b070-71f8-11ec-8c4b-cb281099ee02.json | 152 + ...-1db9af70-71f4-11ec-8c4b-cb281099ee02.json | 122 + ...-388b1e00-72ae-11ec-8c4b-cb281099ee02.json | 132 + ...-4bdc8830-72af-11ec-8c4b-cb281099ee02.json | 47 + ...-93c4dce0-72a7-11ec-8c4b-cb281099ee02.json | 92 + ...-97349920-72b0-11ec-8c4b-cb281099ee02.json | 57 + ...-9e55e880-72b5-11ec-8c4b-cb281099ee02.json | 117 + ...-a03670f0-7208-11ec-8c4b-cb281099ee02.json | 182 + ...-ae3f6d70-71e3-11ec-8c4b-cb281099ee02.json | 137 + ...-e538e5c0-71ea-11ec-8c4b-cb281099ee02.json | 147 + ...-e6184f90-72b6-11ec-8c4b-cb281099ee02.json | 132 + ...-f181cba0-71d9-11ec-8c4b-cb281099ee02.json | 137 + ...-03150a40-720b-11ec-8c4b-cb281099ee02.json | 35 + ...-06bf2da0-72a7-11ec-8c4b-cb281099ee02.json | 30 + ...-0922ae70-720a-11ec-8c4b-cb281099ee02.json | 35 + ...-0e9511e0-72aa-11ec-8c4b-cb281099ee02.json | 30 + ...-0f05ca90-7456-11ec-8c4b-cb281099ee02.json | 30 + ...-187e0140-71f5-11ec-8c4b-cb281099ee02.json | 35 + ...-1b3226c0-71df-11ec-8c4b-cb281099ee02.json | 30 + ...-2044d2a0-72ae-11ec-8c4b-cb281099ee02.json | 40 + ...-24907420-72b0-11ec-8c4b-cb281099ee02.json | 35 + ...-25b07fa0-71eb-11ec-8c4b-cb281099ee02.json | 35 + ...-26d9c5c0-71dd-11ec-8c4b-cb281099ee02.json | 30 + ...-2b81f870-71da-11ec-8c4b-cb281099ee02.json | 30 + ...-301d9fd0-720a-11ec-8c4b-cb281099ee02.json | 35 + ...-304fa1c0-7209-11ec-8c4b-cb281099ee02.json | 35 + ...-327320f0-72ac-11ec-8c4b-cb281099ee02.json | 35 + ...-357672b0-72a8-11ec-8c4b-cb281099ee02.json | 30 + ...-37409a80-71db-11ec-8c4b-cb281099ee02.json | 30 + ...-3ec223c0-720b-11ec-8c4b-cb281099ee02.json | 35 + ...-40a01500-72db-11ec-8c4b-cb281099ee02.json | 40 + ...-41932530-72a7-11ec-8c4b-cb281099ee02.json | 30 + ...-464ce970-72b7-11ec-8c4b-cb281099ee02.json | 40 + ...-47132800-72a9-11ec-8c4b-cb281099ee02.json | 30 + ...-4a1cfbc0-71dc-11ec-8c4b-cb281099ee02.json | 30 + ...-516130e0-71eb-11ec-8c4b-cb281099ee02.json | 35 + ...-51bf6fb0-72aa-11ec-8c4b-cb281099ee02.json | 35 + ...-528169b0-72b6-11ec-8c4b-cb281099ee02.json | 35 + ...-55144a90-72ab-11ec-8c4b-cb281099ee02.json | 35 + ...-55b418a0-71dd-11ec-8c4b-cb281099ee02.json | 30 + ...-5982c0e0-72ae-11ec-8c4b-cb281099ee02.json | 35 + ...-5b54d5f0-71f7-11ec-8c4b-cb281099ee02.json | 35 + ...-5def8dc0-71e6-11ec-8c4b-cb281099ee02.json | 35 + ...-5e243140-72b5-11ec-8c4b-cb281099ee02.json | 40 + ...-5efbfc00-72a7-11ec-8c4b-cb281099ee02.json | 30 + ...-5f452920-71da-11ec-8c4b-cb281099ee02.json | 30 + ...-648c79d0-720a-11ec-8c4b-cb281099ee02.json | 35 + ...-662de6e0-71e0-11ec-8c4b-cb281099ee02.json | 30 + ...-719e0f30-72af-11ec-8c4b-cb281099ee02.json | 35 + ...-75f900b0-72b6-11ec-8c4b-cb281099ee02.json | 35 + ...-7d1142a0-72ab-11ec-8c4b-cb281099ee02.json | 35 + ...-7d7e2260-71f4-11ec-8c4b-cb281099ee02.json | 35 + ...-7edc5f60-71df-11ec-8c4b-cb281099ee02.json | 30 + ...-7f41e9e0-71dd-11ec-8c4b-cb281099ee02.json | 30 + ...-7f8d83c0-71db-11ec-8c4b-cb281099ee02.json | 30 + ...-7f9d2540-7209-11ec-8c4b-cb281099ee02.json | 35 + ...-83fa5a10-72a7-11ec-8c4b-cb281099ee02.json | 35 + ...-8705deb0-71de-11ec-8c4b-cb281099ee02.json | 35 + ...-891546c0-72db-11ec-8c4b-cb281099ee02.json | 40 + ...-8c226d50-71f7-11ec-8c4b-cb281099ee02.json | 35 + ...-8efd9840-71e0-11ec-8c4b-cb281099ee02.json | 30 + ...-8fc2c680-72b0-11ec-8c4b-cb281099ee02.json | 35 + ...-914898a0-72af-11ec-8c4b-cb281099ee02.json | 30 + ...-917c9230-72b5-11ec-8c4b-cb281099ee02.json | 35 + ...-93433ee0-72a9-11ec-8c4b-cb281099ee02.json | 30 + ...-9b93d9d0-71da-11ec-8c4b-cb281099ee02.json | 30 + ...-9c6d6030-71f6-11ec-8c4b-cb281099ee02.json | 35 + ...-a2047d20-72ab-11ec-8c4b-cb281099ee02.json | 35 + ...-a3c6c270-745f-11ec-8c4b-cb281099ee02.json | 30 + ...-a3e5e650-72b6-11ec-8c4b-cb281099ee02.json | 40 + ...-a44f4160-72b4-11ec-8c4b-cb281099ee02.json | 35 + ...-a4745040-71dd-11ec-8c4b-cb281099ee02.json | 30 + ...-a6e2ecf0-72a6-11ec-8c4b-cb281099ee02.json | 25 + ...-a8fb1770-720a-11ec-8c4b-cb281099ee02.json | 35 + ...-abcc6a30-72aa-11ec-8c4b-cb281099ee02.json | 30 + ...-b0b26610-71df-11ec-8c4b-cb281099ee02.json | 30 + ...-bc70e470-7209-11ec-8c4b-cb281099ee02.json | 35 + ...-bc859e60-71dc-11ec-8c4b-cb281099ee02.json | 30 + ...-bd2879d0-71f7-11ec-8c4b-cb281099ee02.json | 35 + ...-c01026d0-72af-11ec-8c4b-cb281099ee02.json | 30 + ...-c1e088c0-72a9-11ec-8c4b-cb281099ee02.json | 30 + ...-c6540e80-72b4-11ec-8c4b-cb281099ee02.json | 35 + ...-ca5610d0-71da-11ec-8c4b-cb281099ee02.json | 30 + ...-cab84db0-71dd-11ec-8c4b-cb281099ee02.json | 30 + ...-d1189e60-71df-11ec-8c4b-cb281099ee02.json | 30 + ...-d9596770-72a8-11ec-8c4b-cb281099ee02.json | 30 + ...-dbcca900-72b6-11ec-8c4b-cb281099ee02.json | 40 + ...-dbdd48a0-72a7-11ec-8c4b-cb281099ee02.json | 35 + ...-dd1de560-71eb-11ec-8c4b-cb281099ee02.json | 35 + ...-de309310-71d9-11ec-8c4b-cb281099ee02.json | 25 + ...-e15f2790-72a6-11ec-8c4b-cb281099ee02.json | 30 + ...-e2e46e60-72ae-11ec-8c4b-cb281099ee02.json | 35 + ...-e8cecff0-72a9-11ec-8c4b-cb281099ee02.json | 30 + ...-e9bc9d80-7208-11ec-8c4b-cb281099ee02.json | 35 + ...-f1c99420-7207-11ec-8c4b-cb281099ee02.json | 35 + ...-f4fb96d0-71de-11ec-8c4b-cb281099ee02.json | 30 + ...-f9097160-71f3-11ec-8c4b-cb281099ee02.json | 35 + ...-f96d6680-71f7-11ec-8c4b-cb281099ee02.json | 35 + ...-fceec3e0-71dd-11ec-8c4b-cb281099ee02.json | 30 + ...-feb43930-72af-11ec-8c4b-cb281099ee02.json | 35 + packages/netskope/1.0.0/manifest.yml | 74 + packages/network_traffic/1.1.0/changelog.yml | 139 + .../amqp/agent/stream/amqp.yml.hbs | 49 + .../elasticsearch/ingest_pipeline/default.yml | 41 + .../1.1.0/data_stream/amqp/fields/agent.yml | 196 + .../1.1.0/data_stream/amqp/fields/base.yml | 12 + .../1.1.0/data_stream/amqp/fields/beats.yml | 110 + .../1.1.0/data_stream/amqp/fields/ecs.yml | 128 + .../data_stream/amqp/fields/protocol.yml | 202 + .../1.1.0/data_stream/amqp/manifest.yml | 105 + .../1.1.0/data_stream/amqp/sample_event.json | 107 + .../cassandra/agent/stream/cassandra.yml.hbs | 49 + .../elasticsearch/ingest_pipeline/default.yml | 41 + .../data_stream/cassandra/fields/agent.yml | 196 + .../data_stream/cassandra/fields/base.yml | 12 + .../data_stream/cassandra/fields/beats.yml | 110 + .../data_stream/cassandra/fields/ecs.yml | 123 + .../data_stream/cassandra/fields/protocol.yml | 283 + .../1.1.0/data_stream/cassandra/manifest.yml | 92 + .../data_stream/cassandra/sample_event.json | 125 + .../dhcpv4/agent/stream/dhcpv4.yml.hbs | 28 + .../elasticsearch/ingest_pipeline/default.yml | 54 + .../1.1.0/data_stream/dhcpv4/fields/agent.yml | 196 + .../1.1.0/data_stream/dhcpv4/fields/base.yml | 12 + .../1.1.0/data_stream/dhcpv4/fields/beats.yml | 110 + .../1.1.0/data_stream/dhcpv4/fields/ecs.yml | 123 + .../data_stream/dhcpv4/fields/protocol.yml | 177 + .../1.1.0/data_stream/dhcpv4/manifest.yml | 40 + .../data_stream/dhcpv4/sample_event.json | 111 + .../data_stream/dns/agent/stream/dns.yml.hbs | 43 + .../elasticsearch/ingest_pipeline/default.yml | 41 + .../1.1.0/data_stream/dns/fields/agent.yml | 196 + .../1.1.0/data_stream/dns/fields/base.yml | 12 + .../1.1.0/data_stream/dns/fields/beats.yml | 110 + .../1.1.0/data_stream/dns/fields/ecs.yml | 200 + .../1.1.0/data_stream/dns/fields/protocol.yml | 110 + .../1.1.0/data_stream/dns/manifest.yml | 95 + .../1.1.0/data_stream/dns/sample_event.json | 158 + .../flow/agent/stream/flow.yml.hbs | 15 + .../elasticsearch/ingest_pipeline/default.yml | 27 + .../1.1.0/data_stream/flow/fields/agent.yml | 196 + .../1.1.0/data_stream/flow/fields/base.yml | 12 + .../1.1.0/data_stream/flow/fields/beats.yml | 110 + .../1.1.0/data_stream/flow/fields/ecs.yml | 123 + .../1.1.0/data_stream/flow/manifest.yml | 23 + .../http/agent/stream/http.yml.hbs | 85 + .../elasticsearch/ingest_pipeline/default.yml | 41 + .../1.1.0/data_stream/http/fields/agent.yml | 196 + .../1.1.0/data_stream/http/fields/base.yml | 12 + .../1.1.0/data_stream/http/fields/beats.yml | 110 + .../1.1.0/data_stream/http/fields/ecs.yml | 203 + .../data_stream/http/fields/protocol.yml | 26 + .../1.1.0/data_stream/http/manifest.yml | 173 + .../1.1.0/data_stream/http/sample_event.json | 139 + .../icmp/agent/stream/icmp.yml.hbs | 22 + .../elasticsearch/ingest_pipeline/default.yml | 41 + .../1.1.0/data_stream/icmp/fields/agent.yml | 196 + .../1.1.0/data_stream/icmp/fields/base.yml | 12 + .../1.1.0/data_stream/icmp/fields/beats.yml | 110 + .../1.1.0/data_stream/icmp/fields/ecs.yml | 123 + .../data_stream/icmp/fields/protocol.yml | 27 + .../1.1.0/data_stream/icmp/manifest.yml | 30 + .../1.1.0/data_stream/icmp/sample_event.json | 104 + .../memcached/agent/stream/memcached.yml.hbs | 49 + .../elasticsearch/ingest_pipeline/default.yml | 41 + .../data_stream/memcached/fields/agent.yml | 196 + .../data_stream/memcached/fields/base.yml | 12 + .../data_stream/memcached/fields/beats.yml | 110 + .../data_stream/memcached/fields/ecs.yml | 136 + .../data_stream/memcached/fields/protocol.yml | 215 + .../1.1.0/data_stream/memcached/manifest.yml | 116 + .../data_stream/memcached/sample_event.json | 112 + .../mongodb/agent/stream/mongodb.yml.hbs | 43 + .../elasticsearch/ingest_pipeline/default.yml | 41 + .../data_stream/mongodb/fields/agent.yml | 196 + .../1.1.0/data_stream/mongodb/fields/base.yml | 12 + .../data_stream/mongodb/fields/beats.yml | 110 + .../1.1.0/data_stream/mongodb/fields/ecs.yml | 123 + .../data_stream/mongodb/fields/protocol.yml | 58 + .../1.1.0/data_stream/mongodb/manifest.yml | 86 + .../data_stream/mongodb/sample_event.json | 106 + .../mysql/agent/stream/mysql.yml.hbs | 37 + .../elasticsearch/ingest_pipeline/default.yml | 41 + .../1.1.0/data_stream/mysql/fields/agent.yml | 196 + .../1.1.0/data_stream/mysql/fields/base.yml | 12 + .../1.1.0/data_stream/mysql/fields/beats.yml | 110 + .../1.1.0/data_stream/mysql/fields/ecs.yml | 123 + .../data_stream/mysql/fields/protocol.yml | 38 + .../1.1.0/data_stream/mysql/manifest.yml | 67 + .../1.1.0/data_stream/mysql/sample_event.json | 104 + .../data_stream/nfs/agent/stream/nfs.yml.hbs | 37 + .../elasticsearch/ingest_pipeline/default.yml | 41 + .../1.1.0/data_stream/nfs/fields/agent.yml | 196 + .../1.1.0/data_stream/nfs/fields/base.yml | 12 + .../1.1.0/data_stream/nfs/fields/beats.yml | 110 + .../1.1.0/data_stream/nfs/fields/ecs.yml | 144 + .../1.1.0/data_stream/nfs/fields/protocol.yml | 48 + .../1.1.0/data_stream/nfs/manifest.yml | 67 + .../1.1.0/data_stream/nfs/sample_event.json | 123 + .../pgsql/agent/stream/pgsql.yml.hbs | 37 + .../elasticsearch/ingest_pipeline/default.yml | 41 + .../1.1.0/data_stream/pgsql/fields/agent.yml | 196 + .../1.1.0/data_stream/pgsql/fields/base.yml | 12 + .../1.1.0/data_stream/pgsql/fields/beats.yml | 110 + .../1.1.0/data_stream/pgsql/fields/ecs.yml | 123 + .../data_stream/pgsql/fields/protocol.yml | 26 + .../1.1.0/data_stream/pgsql/manifest.yml | 67 + .../1.1.0/data_stream/pgsql/sample_event.json | 101 + .../redis/agent/stream/redis.yml.hbs | 43 + .../elasticsearch/ingest_pipeline/default.yml | 41 + .../1.1.0/data_stream/redis/fields/agent.yml | 196 + .../1.1.0/data_stream/redis/fields/base.yml | 12 + .../1.1.0/data_stream/redis/fields/beats.yml | 110 + .../1.1.0/data_stream/redis/fields/ecs.yml | 136 + .../data_stream/redis/fields/protocol.yml | 13 + .../1.1.0/data_stream/redis/manifest.yml | 86 + .../1.1.0/data_stream/redis/sample_event.json | 102 + .../data_stream/sip/agent/stream/sip.yml.hbs | 34 + .../elasticsearch/ingest_pipeline/default.yml | 39 + .../1.1.0/data_stream/sip/fields/agent.yml | 196 + .../1.1.0/data_stream/sip/fields/base.yml | 12 + .../1.1.0/data_stream/sip/fields/beats.yml | 110 + .../1.1.0/data_stream/sip/fields/ecs.yml | 174 + .../1.1.0/data_stream/sip/fields/protocol.yml | 231 + .../1.1.0/data_stream/sip/manifest.yml | 54 + .../1.1.0/data_stream/sip/sample_event.json | 174 + .../thrift/agent/stream/thrift.yml.hbs | 64 + .../elasticsearch/ingest_pipeline/default.yml | 41 + .../1.1.0/data_stream/thrift/fields/agent.yml | 196 + .../1.1.0/data_stream/thrift/fields/base.yml | 12 + .../1.1.0/data_stream/thrift/fields/beats.yml | 110 + .../1.1.0/data_stream/thrift/fields/ecs.yml | 123 + .../data_stream/thrift/fields/protocol.yml | 23 + .../1.1.0/data_stream/thrift/manifest.yml | 141 + .../data_stream/thrift/sample_event.json | 102 + .../data_stream/tls/agent/stream/tls.yml.hbs | 40 + .../elasticsearch/ingest_pipeline/default.yml | 70 + .../1.1.0/data_stream/tls/fields/agent.yml | 196 + .../1.1.0/data_stream/tls/fields/base.yml | 12 + .../1.1.0/data_stream/tls/fields/beats.yml | 110 + .../1.1.0/data_stream/tls/fields/ecs.yml | 368 ++ .../1.1.0/data_stream/tls/fields/protocol.yml | 173 + .../1.1.0/data_stream/tls/manifest.yml | 67 + .../1.1.0/data_stream/tls/sample_event.json | 302 + packages/network_traffic/1.1.0/docs/README.md | 4713 ++++++++++++++++ ...-65120940-1454-11e9-9de0-f98d1808db8e.json | 57 + ...-a7b35890-8baa-11e8-9676-ef67484126fb.json | 57 + .../dashboard/network_traffic-cassandra.json | 77 + .../dashboard/network_traffic-dashboard.json | 77 + .../network_traffic-dns-unique-domains.json | 42 + .../dashboard/network_traffic-flows.json | 47 + .../dashboard/network_traffic-http.json | 57 + .../network_traffic-mongodb-performance.json | 62 + .../network_traffic-mysql-performance.json | 62 + .../kibana/dashboard/network_traffic-nfs.json | 67 + .../network_traffic-pgsql-performance.json | 62 + .../network_traffic-thrift-performance.json | 57 + .../network_traffic-tls-sessions.json | 87 + ...-651fd6d0-88d0-11e7-ad9c-db80de0bf8d3.json | 38 + ...-6b1b1360-d49d-11e7-996f-bd7c1ca4591b.json | 38 + ...-71908f00-88ca-11e7-ad9c-db80de0bf8d3.json | 38 + ...-8e2af860-d520-11e7-9fff-7b1ebf397ba9.json | 43 + ...-8f0ff590-d37d-11e7-9914-4982455b3063.json | 38 + ...-94908e80-d2d8-11e7-9914-4982455b3063.json | 38 + ...-b8992150-8ba8-11e8-9676-ef67484126fb.json | 40 + ...-bf3d23b0-d37c-11e7-9914-4982455b3063.json | 38 + .../network_traffic-cassandra-queryview.json | 46 + ...-d19e8485-7df5-47ce-8009-9dc3c42bcf17.json | 41 + ...-eaa83e60-190b-11e9-be0d-adde5066235e.json | 33 + ...-ffc3c0b0-d2d7-11e7-9914-4982455b3063.json | 38 + .../search/network_traffic-flows-search.json | 41 + ...odb-transactions-with-write-concern-0.json | 38 + .../network_traffic-mongodb-transactions.json | 38 + .../search/network_traffic-mysql-errors.json | 42 + .../network_traffic-mysql-transactions.json | 37 + .../network_traffic-nfs-errors-search.json | 43 + .../kibana/search/network_traffic-nfs.json | 33 + .../search/network_traffic-pgsql-errors.json | 42 + .../network_traffic-pgsql-transactions.json | 37 + .../kibana/search/network_traffic-search.json | 46 + .../search/network_traffic-thrift-errors.json | 42 + .../network_traffic-thrift-transactions.json | 37 + .../network_traffic-transactions-errors.json | 51 + ...-059fe5e0-d2dd-11e7-9914-4982455b3063.json | 26 + ...-061de380-d361-11e7-9914-4982455b3063.json | 30 + ...-0958a910-d396-11e7-8fa0-232aa9259081.json | 26 + ...-0af0b790-d37d-11e7-9914-4982455b3063.json | 26 + ...-11d33ea0-8bad-11e8-9676-ef67484126fb.json | 26 + ...-2c467370-d392-11e7-8fa0-232aa9259081.json | 26 + ...-418dfbe0-8bac-11e8-9676-ef67484126fb.json | 26 + ...-463d2bf0-d3a8-11e7-9081-ab2af08e9961.json | 26 + ...-4ad9db20-8bab-11e8-9676-ef67484126fb.json | 26 + ...-735d25c0-1459-11e9-9de0-f98d1808db8e.json | 26 + ...-8460fcd0-8baa-11e8-9676-ef67484126fb.json | 19 + ...-86743f90-d396-11e7-8fa0-232aa9259081.json | 26 + ...-a28d09d0-d361-11e7-9914-4982455b3063.json | 26 + ...-ad2a8b50-d49d-11e7-996f-bd7c1ca4591b.json | 26 + ...-ae6e33c0-d37d-11e7-9914-4982455b3063.json | 26 + ...-bacb6ed0-1459-11e9-9de0-f98d1808db8e.json | 26 + ..._traffic-bytes-transferred-per-domain.json | 26 + ...-c14377a0-d353-11e7-9914-4982455b3063.json | 30 + .../network_traffic-cassandra-ops.json | 31 + ...etwork_traffic-cassandra-requestcount.json | 31 + ..._traffic-cassandra-requestcountbytype.json | 31 + ...fic-cassandra-requestcountstackbytype.json | 31 + ...traffic-cassandra-responsecountbytype.json | 31 + ...ic-cassandra-responsecountstackbytype.json | 31 + ...rk_traffic-cassandra-responsekeyspace.json | 31 + ...etwork_traffic-cassandra-responsetime.json | 31 + ...etwork_traffic-cassandra-responsetype.json | 31 + ...network_traffic-connections-over-time.json | 26 + ...-d0120dc0-8bac-11e8-9676-ef67484126fb.json | 26 + ...-d2e15950-d560-11e7-9fff-7b1ebf397ba9.json | 31 + .../network_traffic-db-transactions.json | 30 + ...-dc743240-1665-11e7-a6de-cbac1a3d0a7d.json | 25 + .../network_traffic-dns-query-summary.json | 26 + .../network_traffic-dns-question-types.json | 31 + ..._traffic-dns-request-status-over-time.json | 31 + .../network_traffic-dns-response-codes.json | 31 + .../network_traffic-dns-top-10-questions.json | 36 + ...-e3f09730-1b80-11e9-83df-75eebb35951e.json | 26 + ...etwork_traffic-errors-count-over-time.json | 26 + ...fic-errors-vs-successful-transactions.json | 26 + ...-f43a8f20-8bb5-11e8-9676-ef67484126fb.json | 26 + ...raffic-http-codes-for-the-top-queries.json | 26 + ...rk_traffic-http-error-codes-evolution.json | 35 + .../network_traffic-http-error-codes.json | 30 + .../network_traffic-latency-histogram.json | 26 + .../network_traffic-mongodb-commands.json | 26 + ...traffic-mongodb-errors-per-collection.json | 26 + .../network_traffic-mongodb-errors.json | 26 + ...affic-mongodb-in-slash-out-throughput.json | 26 + ...-mongodb-response-times-by-collection.json | 26 + ...k_traffic-most-frequent-mysql-queries.json | 26 + ...k_traffic-most-frequent-pgsql-queries.json | 26 + .../network_traffic-mysql-errors.json | 26 + .../network_traffic-mysql-methods.json | 26 + ...network_traffic-mysql-reads-vs-writes.json | 26 + ...ffic-mysql-response-times-percentiles.json | 26 + .../network_traffic-mysql-throughput.json | 26 + .../network_traffic-navigation.json | 19 + ...ic-network-traffic-between-your-hosts.json | 26 + ...etwork_traffic-nfs-bytes-in-slash-out.json | 26 + ...network_traffic-nfs-clients-pie-chart.json | 26 + .../network_traffic-nfs-errors.json | 26 + .../network_traffic-nfs-operation-table.json | 26 + ...ork_traffic-nfs-operations-area-chart.json | 26 + .../network_traffic-nfs-response-times.json | 26 + ...twork_traffic-nfs-top-group-pie-chart.json | 26 + ...twork_traffic-nfs-top-users-pie-chart.json | 26 + ...nsactions-with-writeconcern-w-equal-0.json | 26 + .../network_traffic-pgsql-errors.json | 26 + .../network_traffic-pgsql-methods.json | 26 + ...network_traffic-pgsql-reads-vs-writes.json | 26 + ...ffic-pgsql-response-times-percentiles.json | 26 + .../network_traffic-pgsql-throughput.json | 26 + ...rk_traffic-response-times-percentiles.json | 26 + ...rk_traffic-response-times-repartition.json | 26 + ...network_traffic-slowest-mysql-queries.json | 26 + ...network_traffic-slowest-pgsql-queries.json | 26 + ...rk_traffic-slowest-thrift-rpc-methods.json | 26 + ...rk_traffic-thrift-requests-per-minute.json | 26 + ...fic-thrift-response-times-percentiles.json | 26 + .../network_traffic-thrift-rpc-errors.json | 26 + .../network_traffic-top-10-http-requests.json | 26 + ...rk_traffic-top-hosts-creating-traffic.json | 26 + ...k_traffic-top-hosts-receiving-traffic.json | 26 + ...k_traffic-top-slowest-mongodb-queries.json | 26 + ...ffic-top-thrift-rpc-calls-with-errors.json | 25 + ...etwork_traffic-top-thrift-rpc-methods.json | 26 + ...fic-total-number-of-http-transactions.json | 26 + ...traffic-unique-fqdns-per-etld-1-table.json | 26 + ...twork_traffic-unique-fqdns-per-etld-1.json | 26 + .../network_traffic-web-transactions.json | 26 + packages/network_traffic/1.1.0/manifest.yml | 28 + packages/proofpoint_tap/0.1.0/changelog.yml | 6 + .../agent/stream/httpjson.yml.hbs | 44 + .../elasticsearch/ingest_pipeline/default.yml | 168 + .../clicks_blocked/fields/agent.yml | 186 + .../clicks_blocked/fields/base-fields.yml | 20 + .../data_stream/clicks_blocked/fields/ecs.yml | 176 + .../clicks_blocked/fields/fields.yml | 33 + .../data_stream/clicks_blocked/manifest.yml | 50 + .../clicks_blocked/sample_event.json | 119 + .../agent/stream/httpjson.yml.hbs | 44 + .../elasticsearch/ingest_pipeline/default.yml | 168 + .../clicks_permitted/fields/agent.yml | 186 + .../clicks_permitted/fields/base-fields.yml | 20 + .../clicks_permitted/fields/ecs.yml | 176 + .../clicks_permitted/fields/fields.yml | 33 + .../data_stream/clicks_permitted/manifest.yml | 50 + .../clicks_permitted/sample_event.json | 119 + .../agent/stream/httpjson.yml.hbs | 44 + .../elasticsearch/ingest_pipeline/default.yml | 443 ++ .../message_blocked/fields/agent.yml | 186 + .../message_blocked/fields/base-fields.yml | 20 + .../message_blocked/fields/ecs.yml | 129 + .../message_blocked/fields/fields.yml | 110 + .../data_stream/message_blocked/manifest.yml | 50 + .../message_blocked/sample_event.json | 190 + .../agent/stream/httpjson.yml.hbs | 44 + .../elasticsearch/ingest_pipeline/default.yml | 435 ++ .../message_delivered/fields/agent.yml | 186 + .../message_delivered/fields/base-fields.yml | 20 + .../message_delivered/fields/ecs.yml | 129 + .../message_delivered/fields/fields.yml | 106 + .../message_delivered/manifest.yml | 50 + .../message_delivered/sample_event.json | 120 + packages/proofpoint_tap/0.1.0/docs/README.md | 1020 ++++ .../0.1.0/img/proofpoint_tap-logo.svg | 42 + .../0.1.0/img/proofpoint_tap-screenshot.png | Bin 0 -> 137037 bytes ...-3ad578f0-b5a6-11ec-a9d0-e94ed15a14b9.json | 98 + ...-770903b0-b5aa-11ec-a9d0-e94ed15a14b9.json | 98 + ...-9899aae0-b5ad-11ec-a9d0-e94ed15a14b9.json | 158 + ...-ee5bc100-b5c8-11ec-a9d0-e94ed15a14b9.json | 138 + ...-22c1fd60-b5a6-11ec-a9d0-e94ed15a14b9.json | 60 + ...-2e596430-b5ae-11ec-a9d0-e94ed15a14b9.json | 89 + ...-31d88f20-b5ca-11ec-a9d0-e94ed15a14b9.json | 92 + ...-32f38a20-b5cc-11ec-a9d0-e94ed15a14b9.json | 89 + ...-3872f3b0-b5ad-11ec-a9d0-e94ed15a14b9.json | 60 + ...-3d9cb8d0-b5b2-11ec-a9d0-e94ed15a14b9.json | 103 + ...-4363e9b0-b5a7-11ec-a9d0-e94ed15a14b9.json | 108 + ...-458b3ce0-b5af-11ec-a9d0-e94ed15a14b9.json | 92 + ...-47aeba50-b5c9-11ec-a9d0-e94ed15a14b9.json | 92 + ...-4b9175c0-b5a8-11ec-a9d0-e94ed15a14b9.json | 89 + ...-5820b4a0-b5b1-11ec-a9d0-e94ed15a14b9.json | 92 + ...-72f5f2d0-b5b2-11ec-a9d0-e94ed15a14b9.json | 123 + ...-80dd97f0-b5ca-11ec-a9d0-e94ed15a14b9.json | 92 + ...-89f9d420-b5a7-11ec-a9d0-e94ed15a14b9.json | 92 + ...-a0565740-b5af-11ec-a9d0-e94ed15a14b9.json | 92 + ...-a1aed070-b5b1-11ec-a9d0-e94ed15a14b9.json | 92 + ...-b2134d80-b5aa-11ec-a9d0-e94ed15a14b9.json | 92 + ...-bb5e8d80-b5ca-11ec-a9d0-e94ed15a14b9.json | 92 + ...-d3107d90-b5c9-11ec-a9d0-e94ed15a14b9.json | 92 + ...-d3560780-b5c8-11ec-a9d0-e94ed15a14b9.json | 92 + ...-dc148bf0-b5a8-11ec-a9d0-e94ed15a14b9.json | 89 + ...-e3c98870-b5b0-11ec-a9d0-e94ed15a14b9.json | 92 + ...-e741c9d0-b5b1-11ec-a9d0-e94ed15a14b9.json | 121 + ...-eff98e20-b5aa-11ec-a9d0-e94ed15a14b9.json | 92 + ...-fb0adc60-b5af-11ec-a9d0-e94ed15a14b9.json | 92 + ...-31abbc50-b5d6-11ec-a9d0-e94ed15a14b9.json | 22 + ...-40a91cd0-c197-11ec-aabc-2f1ab05698f9.json | 22 + ...-00dd5660-af9b-11ec-bf43-c372803d141d.json | 37 + ...-717803c0-b130-11ec-8e58-3fc548a48fe4.json | 36 + packages/proofpoint_tap/0.1.0/manifest.yml | 84 + .../pulse_connect_secure/1.0.0/changelog.yml | 36 + .../data_stream/log/agent/stream/tcp.yml.hbs | 18 + .../data_stream/log/agent/stream/udp.yml.hbs | 15 + .../elasticsearch/ingest_pipeline/default.yml | 134 + .../1.0.0/data_stream/log/fields/agent.yml | 180 + .../data_stream/log/fields/base-fields.yml | 29 + .../1.0.0/data_stream/log/fields/ecs.yml | 202 + .../1.0.0/data_stream/log/fields/fields.yml | 14 + .../1.0.0/data_stream/log/manifest.yml | 100 + .../1.0.0/data_stream/log/sample_event.json | 124 + .../pulse_connect_secure/1.0.0/docs/README.md | 231 + .../1.0.0/img/pulse_connect_secure.svg | 1 + .../pulse_connect_secure/1.0.0/manifest.yml | 29 + packages/sentinel_one/0.1.0/changelog.yml | 6 + .../activity/agent/stream/httpjson.yml.hbs | 51 + .../elasticsearch/ingest_pipeline/default.yml | 408 ++ .../data_stream/activity/fields/agent.yml | 186 + .../activity/fields/base-fields.yml | 20 + .../0.1.0/data_stream/activity/fields/ecs.yml | 118 + .../data_stream/activity/fields/fields.yml | 222 + .../0.1.0/data_stream/activity/manifest.yml | 50 + .../data_stream/activity/sample_event.json | 82 + .../agent/agent/stream/httpjson.yml.hbs | 51 + .../elasticsearch/ingest_pipeline/default.yml | 610 ++ .../0.1.0/data_stream/agent/fields/agent.yml | 186 + .../data_stream/agent/fields/base-fields.yml | 20 + .../0.1.0/data_stream/agent/fields/ecs.yml | 91 + .../0.1.0/data_stream/agent/fields/fields.yml | 314 ++ .../0.1.0/data_stream/agent/manifest.yml | 50 + .../0.1.0/data_stream/agent/sample_event.json | 189 + .../alert/agent/stream/httpjson.yml.hbs | 51 + .../elasticsearch/ingest_pipeline/default.yml | 621 +++ .../0.1.0/data_stream/alert/fields/agent.yml | 186 + .../data_stream/alert/fields/base-fields.yml | 20 + .../0.1.0/data_stream/alert/fields/ecs.yml | 260 + .../0.1.0/data_stream/alert/fields/fields.yml | 243 + .../0.1.0/data_stream/alert/manifest.yml | 50 + .../0.1.0/data_stream/alert/sample_event.json | 273 + .../group/agent/stream/httpjson.yml.hbs | 51 + .../elasticsearch/ingest_pipeline/default.yml | 133 + .../0.1.0/data_stream/group/fields/agent.yml | 186 + .../data_stream/group/fields/base-fields.yml | 20 + .../0.1.0/data_stream/group/fields/ecs.yml | 58 + .../0.1.0/data_stream/group/fields/fields.yml | 40 + .../0.1.0/data_stream/group/manifest.yml | 50 + .../0.1.0/data_stream/group/sample_event.json | 75 + .../threat/agent/stream/httpjson.yml.hbs | 51 + .../elasticsearch/ingest_pipeline/default.yml | 927 +++ .../0.1.0/data_stream/threat/fields/agent.yml | 186 + .../data_stream/threat/fields/base-fields.yml | 20 + .../0.1.0/data_stream/threat/fields/ecs.yml | 137 + .../data_stream/threat/fields/fields.yml | 462 ++ .../0.1.0/data_stream/threat/manifest.yml | 50 + .../data_stream/threat/sample_event.json | 264 + packages/sentinel_one/0.1.0/docs/README.md | 1658 ++++++ .../img/sentinel-one-api-token-generate.png | Bin 0 -> 21511 bytes .../0.1.0/img/sentinel-one-dashboard.png | Bin 0 -> 111379 bytes .../0.1.0/img/sentinel-one-logo.svg | 2 + .../0.1.0/img/sentinel-one-screenshot.png | Bin 0 -> 55957 bytes ...-0dd17490-bbb8-11ec-82b7-8fcb232e9538.json | 282 + ...-5881f5f0-bb2c-11ec-82b7-8fcb232e9538.json | 72 + ...-67844880-bbb5-11ec-82b7-8fcb232e9538.json | 212 + ...-899f2630-bb27-11ec-82b7-8fcb232e9538.json | 97 + ...-bcf1f680-bba3-11ec-82b7-8fcb232e9538.json | 117 + ...-89773b00-c1fa-11ec-a23a-27e16fe32bb9.json | 40 + packages/sentinel_one/0.1.0/manifest.yml | 78 + .../sonicwall_firewall/0.1.1/changelog.yml | 11 + .../log/agent/stream/logfile.yml.hbs | 24 + .../data_stream/log/agent/stream/udp.yml.hbs | 20 + .../elasticsearch/ingest_pipeline/default.yml | 1303 +++++ .../data_stream/log/fields/base-fields.yml | 20 + .../0.1.1/data_stream/log/fields/beats.yml | 15 + .../0.1.1/data_stream/log/fields/ecs.yml | 246 + .../data_stream/log/fields/package-fields.yml | 66 + .../0.1.1/data_stream/log/manifest.yml | 40 + .../0.1.1/data_stream/log/sample_event.json | 127 + .../sonicwall_firewall/0.1.1/docs/README.md | 311 ++ .../0.1.1/img/dashboard.png | Bin 0 -> 641014 bytes .../sonicwall_firewall/0.1.1/img/logo.svg | 1 + ...-782e2cf0-d78f-11ec-bc4f-47419689dcde.json | 152 + ...-93af7ae0-d796-11ec-bc4f-47419689dcde.json | 49 + .../sonicwall_firewall/0.1.1/manifest.yml | 72 + .../symantec_endpoint/1.0.0/changelog.yml | 26 + .../log/agent/stream/logfile.yml.hbs | 28 + .../data_stream/log/agent/stream/tcp.yml.hbs | 25 + .../data_stream/log/agent/stream/udp.yml.hbs | 25 + .../elasticsearch/ingest_pipeline/default.yml | 1109 ++++ .../1.0.0/data_stream/log/fields/agent.yml | 210 + .../data_stream/log/fields/base-fields.yml | 32 + .../1.0.0/data_stream/log/fields/ecs.yml | 321 ++ .../1.0.0/data_stream/log/fields/fields.yml | 333 ++ .../1.0.0/data_stream/log/manifest.yml | 190 + .../1.0.0/data_stream/log/sample_event.json | 117 + .../symantec_endpoint/1.0.0/docs/README.md | 472 ++ packages/symantec_endpoint/1.0.0/img/logo.svg | 35 + .../img/symantec-endpoint-logs-overview.png | Bin 0 -> 321362 bytes ...-3ac0a690-5f71-11ec-85e4-338fc80d8393.json | 77 + packages/symantec_endpoint/1.0.0/manifest.yml | 37 + packages/ti_anomali/1.3.1/changelog.yml | 66 + .../limo/agent/stream/httpjson.yml.hbs | 60 + .../elasticsearch/ingest_pipeline/default.yml | 177 + .../1.3.1/data_stream/limo/fields/agent.yml | 198 + .../data_stream/limo/fields/base-fields.yml | 28 + .../1.3.1/data_stream/limo/fields/beats.yml | 12 + .../1.3.1/data_stream/limo/fields/ecs.yml | 133 + .../1.3.1/data_stream/limo/fields/fields.yml | 73 + .../1.3.1/data_stream/limo/manifest.yml | 76 + .../1.3.1/data_stream/limo/sample_event.json | 56 + .../agent/stream/http_endpoint.yml.hbs | 47 + .../elasticsearch/ingest_pipeline/default.yml | 428 ++ .../data_stream/threatstream/fields/agent.yml | 198 + .../threatstream/fields/base-fields.yml | 28 + .../data_stream/threatstream/fields/beats.yml | 12 + .../data_stream/threatstream/fields/ecs.yml | 191 + .../threatstream/fields/fields.yml | 94 + .../data_stream/threatstream/manifest.yml | 83 + .../threatstream/sample_event.json | 77 + packages/ti_anomali/1.3.1/docs/README.md | 369 ++ packages/ti_anomali/1.3.1/img/anomali.svg | 4950 +++++++++++++++++ ...-207f3c40-45fb-11ec-ab0c-d7f52dcaa020.json | 122 + ...-39699a60-45fc-11ec-ab0c-d7f52dcaa020.json | 107 + ...-78e08d20-45fc-11ec-ab0c-d7f52dcaa020.json | 107 + ...-96fe1e60-4261-11ec-b7be-d3026acdf1cf.json | 102 + ...-94419670-4261-11ec-b7be-d3026acdf1cf.json | 14 + ...-320c5c80-3b0c-11ec-ae50-2fdf1e96c6a6.json | 14 + packages/ti_anomali/1.3.1/manifest.yml | 29 + packages/ti_misp/1.4.0/changelog.yml | 51 + .../threat/agent/stream/httpjson.yml.hbs | 75 + .../elasticsearch/ingest_pipeline/default.yml | 385 ++ .../1.4.0/data_stream/threat/fields/agent.yml | 198 + .../data_stream/threat/fields/base-fields.yml | 28 + .../1.4.0/data_stream/threat/fields/beats.yml | 12 + .../1.4.0/data_stream/threat/fields/ecs.yml | 188 + .../data_stream/threat/fields/fields.yml | 291 + .../1.4.0/data_stream/threat/manifest.yml | 101 + .../data_stream/threat/sample_event.json | 97 + packages/ti_misp/1.4.0/docs/README.md | 259 + packages/ti_misp/1.4.0/img/misp.svg | 158 + ...-32d9c020-71ea-11ec-8197-5d53a5437877.json | 132 + ...-399bb8d0-71ec-11ec-8197-5d53a5437877.json | 97 + ...-56ed8040-6c7d-11ec-9bce-f7a4dc94c294.json | 87 + ...-550ba0e0-6c7d-11ec-9bce-f7a4dc94c294.json | 14 + packages/ti_misp/1.4.0/manifest.yml | 26 + .../ti_recordedfuture/1.0.0/changelog.yml | 26 + .../threat/agent/stream/httpjson.yml.hbs | 33 + .../threat/agent/stream/logfile.yml.hbs | 20 + .../ingest_pipeline/decode_csv.yml | 43 + .../elasticsearch/ingest_pipeline/default.yml | 212 + .../1.0.0/data_stream/threat/fields/agent.yml | 198 + .../data_stream/threat/fields/base-fields.yml | 31 + .../1.0.0/data_stream/threat/fields/beats.yml | 12 + .../1.0.0/data_stream/threat/fields/ecs.yml | 191 + .../data_stream/threat/fields/fields.yml | 21 + .../1.0.0/data_stream/threat/manifest.yml | 125 + .../data_stream/threat/sample_event.json | 110 + .../ti_recordedfuture/1.0.0/docs/README.md | 215 + packages/ti_recordedfuture/1.0.0/img/logo.svg | 21 + packages/ti_recordedfuture/1.0.0/manifest.yml | 29 + packages/zscaler_zia/2.1.0/changelog.yml | 36 + .../alerts/agent/stream/tcp.yml.hbs | 22 + .../elasticsearch/ingest_pipeline/default.yml | 52 + .../2.1.0/data_stream/alerts/fields/agent.yml | 204 + .../data_stream/alerts/fields/base-fields.yml | 20 + .../2.1.0/data_stream/alerts/fields/ecs.yml | 33 + .../data_stream/alerts/fields/fields.yml | 14 + .../2.1.0/data_stream/alerts/manifest.yml | 41 + .../data_stream/alerts/sample_event.json | 60 + .../dns/agent/stream/http_endpoint.yml.hbs | 21 + .../data_stream/dns/agent/stream/tcp.yml.hbs | 18 + .../elasticsearch/ingest_pipeline/default.yml | 251 + .../2.1.0/data_stream/dns/fields/agent.yml | 204 + .../data_stream/dns/fields/base-fields.yml | 20 + .../2.1.0/data_stream/dns/fields/ecs.yml | 124 + .../2.1.0/data_stream/dns/fields/fields.yml | 48 + .../2.1.0/data_stream/dns/manifest.yml | 79 + .../2.1.0/data_stream/dns/sample_event.json | 141 + .../agent/stream/http_endpoint.yml.hbs | 21 + .../firewall/agent/stream/tcp.yml.hbs | 18 + .../elasticsearch/ingest_pipeline/default.yml | 344 ++ .../data_stream/firewall/fields/agent.yml | 204 + .../firewall/fields/base-fields.yml | 20 + .../2.1.0/data_stream/firewall/fields/ecs.yml | 80 + .../data_stream/firewall/fields/fields.yml | 105 + .../2.1.0/data_stream/firewall/manifest.yml | 79 + .../data_stream/firewall/sample_event.json | 126 + .../tunnel/agent/stream/http_endpoint.yml.hbs | 21 + .../tunnel/agent/stream/tcp.yml.hbs | 18 + .../elasticsearch/ingest_pipeline/default.yml | 332 ++ .../2.1.0/data_stream/tunnel/fields/agent.yml | 204 + .../data_stream/tunnel/fields/base-fields.yml | 20 + .../2.1.0/data_stream/tunnel/fields/ecs.yml | 70 + .../data_stream/tunnel/fields/fields.yml | 113 + .../2.1.0/data_stream/tunnel/manifest.yml | 79 + .../data_stream/tunnel/sample_event.json | 119 + .../web/agent/stream/http_endpoint.yml.hbs | 21 + .../data_stream/web/agent/stream/tcp.yml.hbs | 18 + .../elasticsearch/ingest_pipeline/default.yml | 330 ++ .../2.1.0/data_stream/web/fields/agent.yml | 204 + .../data_stream/web/fields/base-fields.yml | 20 + .../2.1.0/data_stream/web/fields/ecs.yml | 154 + .../2.1.0/data_stream/web/fields/fields.yml | 112 + .../2.1.0/data_stream/web/manifest.yml | 79 + .../2.1.0/data_stream/web/sample_event.json | 143 + packages/zscaler_zia/2.1.0/docs/README.md | 1211 ++++ .../zscaler_zia/2.1.0/img/cloud_nss_feeds.png | Bin 0 -> 30654 bytes .../zscaler_zia/2.1.0/img/escape_feed.png | Bin 0 -> 8286 bytes packages/zscaler_zia/2.1.0/img/nss_feeds.png | Bin 0 -> 71854 bytes packages/zscaler_zia/2.1.0/img/nss_server.png | Bin 0 -> 36591 bytes .../zscaler_zia/2.1.0/img/zscaler-logo.svg | 1 + .../2.1.0/img/zscaler-zia-screenshot.png | Bin 0 -> 87669 bytes ...-66597790-4ded-11ec-ad09-d9f49962d407.json | 72 + ...-85380a00-4de3-11ec-ad09-d9f49962d407.json | 72 + ...-9447f5b0-4eaf-11ec-9527-b704eaaa5c53.json | 57 + ...-d4977590-4de8-11ec-ad09-d9f49962d407.json | 42 + ...-48a188a0-4de8-11ec-ad09-d9f49962d407.json | 22 + ...-0334d8c0-4de4-11ec-ad09-d9f49962d407.json | 30 + ...-05cc16a0-4eae-11ec-9527-b704eaaa5c53.json | 25 + ...-2958ae90-4de5-11ec-ad09-d9f49962d407.json | 25 + ...-2c8eb9f0-4eae-11ec-9527-b704eaaa5c53.json | 25 + ...-35612ae0-4de6-11ec-ad09-d9f49962d407.json | 25 + ...-3faec910-4ded-11ec-ad09-d9f49962d407.json | 25 + ...-4d4b4fa0-4eae-11ec-9527-b704eaaa5c53.json | 25 + ...-4e583660-4deb-11ec-ad09-d9f49962d407.json | 25 + ...-5b68c940-4eaf-11ec-9527-b704eaaa5c53.json | 25 + ...-5ebff250-4de5-11ec-ad09-d9f49962d407.json | 25 + ...-63155460-4e82-11ec-ad09-d9f49962d407.json | 25 + ...-652829d0-4eb9-11ec-9527-b704eaaa5c53.json | 25 + ...-68d16b80-4de4-11ec-ad09-d9f49962d407.json | 30 + ...-6d29cc50-4de8-11ec-ad09-d9f49962d407.json | 25 + ...-72169a60-4deb-11ec-ad09-d9f49962d407.json | 25 + ...-7a0a40d0-4de3-11ec-ad09-d9f49962d407.json | 30 + ...-8058c4e0-4eae-11ec-9527-b704eaaa5c53.json | 25 + ...-91813c00-4de8-11ec-ad09-d9f49962d407.json | 25 + ...-9e6d2890-4deb-11ec-ad09-d9f49962d407.json | 25 + ...-a536b890-4e80-11ec-ad09-d9f49962d407.json | 30 + ...-a9ac0260-4de3-11ec-ad09-d9f49962d407.json | 30 + ...-bcddbd40-4ead-11ec-9527-b704eaaa5c53.json | 25 + ...-bd00f230-4de8-11ec-ad09-d9f49962d407.json | 25 + ...-c8b23580-4de3-11ec-ad09-d9f49962d407.json | 25 + ...-da1734d0-4deb-11ec-ad09-d9f49962d407.json | 25 + ...-db1241f0-4e80-11ec-ad09-d9f49962d407.json | 25 + ...-dff0d0b0-4dea-11ec-ad09-d9f49962d407.json | 30 + ...-e4f2aa20-4ead-11ec-9527-b704eaaa5c53.json | 25 + ...-e54e9f20-4de4-11ec-ad09-d9f49962d407.json | 25 + ...-f5a2e730-4deb-11ec-ad09-d9f49962d407.json | 25 + packages/zscaler_zia/2.1.0/manifest.yml | 111 + packages/zscaler_zpa/1.0.0/changelog.yml | 26 + .../agent/stream/tcp.yml.hbs | 19 + .../elasticsearch/ingest_pipeline/default.yml | 287 + .../app_connector_status/fields/agent.yml | 204 + .../fields/base-fields.yml | 20 + .../app_connector_status/fields/ecs.yml | 72 + .../app_connector_status/fields/fields.yml | 125 + .../app_connector_status/manifest.yml | 41 + .../app_connector_status/sample_event.json | 135 + .../audit/agent/stream/tcp.yml.hbs | 19 + .../elasticsearch/ingest_pipeline/default.yml | 276 + .../1.0.0/data_stream/audit/fields/agent.yml | 204 + .../data_stream/audit/fields/base-fields.yml | 20 + .../1.0.0/data_stream/audit/fields/ecs.yml | 85 + .../1.0.0/data_stream/audit/fields/fields.yml | 43 + .../1.0.0/data_stream/audit/manifest.yml | 41 + .../1.0.0/data_stream/audit/sample_event.json | 89 + .../browser_access/agent/stream/tcp.yml.hbs | 19 + .../elasticsearch/ingest_pipeline/default.yml | 306 + .../browser_access/fields/agent.yml | 204 + .../browser_access/fields/base-fields.yml | 20 + .../data_stream/browser_access/fields/ecs.yml | 135 + .../browser_access/fields/fields.yml | 127 + .../data_stream/browser_access/manifest.yml | 41 + .../browser_access/sample_event.json | 158 + .../user_activity/agent/stream/tcp.yml.hbs | 19 + .../elasticsearch/ingest_pipeline/default.yml | 444 ++ .../user_activity/fields/agent.yml | 204 + .../user_activity/fields/base-fields.yml | 20 + .../data_stream/user_activity/fields/ecs.yml | 47 + .../user_activity/fields/fields.yml | 244 + .../data_stream/user_activity/manifest.yml | 41 + .../user_activity/sample_event.json | 159 + .../user_status/agent/stream/tcp.yml.hbs | 19 + .../elasticsearch/ingest_pipeline/default.yml | 239 + .../data_stream/user_status/fields/agent.yml | 204 + .../user_status/fields/base-fields.yml | 20 + .../data_stream/user_status/fields/ecs.yml | 46 + .../data_stream/user_status/fields/fields.yml | 93 + .../data_stream/user_status/manifest.yml | 41 + .../data_stream/user_status/sample_event.json | 130 + packages/zscaler_zpa/1.0.0/docs/README.md | 1275 +++++ .../zscaler_zpa/1.0.0/img/zscaler-logo.svg | 1 + .../1.0.0/img/zscaler-zpa-screenshot.png | Bin 0 -> 268761 bytes ...-26cc19c0-4c44-11ec-9023-a76a2cb41dcd.json | 44 + ...-7511d7f0-4c49-11ec-9023-a76a2cb41dcd.json | 79 + ...-fa3c3c00-4c57-11ec-9023-a76a2cb41dcd.json | 74 + ...-fa5b1830-4c63-11ec-9023-a76a2cb41dcd.json | 49 + ...-1f09dc30-4c4f-11ec-9023-a76a2cb41dcd.json | 24 + ...-43836b20-4c55-11ec-9023-a76a2cb41dcd.json | 24 + ...-5a0f9320-4c44-11ec-9023-a76a2cb41dcd.json | 24 + ...-dff56dd0-4ce8-11ec-9023-a76a2cb41dcd.json | 24 + ...-d9d5e800-537b-11ec-9527-b704eaaa5c53.json | 39 + ...-17759700-4c5b-11ec-9023-a76a2cb41dcd.json | 32 + ...-1b2c06c0-4eb5-11ec-9527-b704eaaa5c53.json | 27 + ...-1b5846e0-4c44-11ec-9023-a76a2cb41dcd.json | 27 + ...-23d03780-4eb8-11ec-9527-b704eaaa5c53.json | 27 + ...-2fffbd90-4d29-11ec-ad09-d9f49962d407.json | 27 + ...-4cf30750-4d0a-11ec-ad09-d9f49962d407.json | 32 + ...-4ea78dd0-4c49-11ec-9023-a76a2cb41dcd.json | 27 + ...-552331e0-4c4f-11ec-9023-a76a2cb41dcd.json | 27 + ...-76176ed0-4c4e-11ec-9023-a76a2cb41dcd.json | 27 + ...-82076ba0-4e74-11ec-ad09-d9f49962d407.json | 42 + ...-860071f0-4c55-11ec-9023-a76a2cb41dcd.json | 27 + ...-89a91550-4c5a-11ec-9023-a76a2cb41dcd.json | 27 + ...-8ca8eb00-4c5e-11ec-9023-a76a2cb41dcd.json | 27 + ...-9f334ef0-4c4f-11ec-9023-a76a2cb41dcd.json | 27 + ...-b0fa5650-4c55-11ec-9023-a76a2cb41dcd.json | 27 + ...-be0fc2e0-4c63-11ec-9023-a76a2cb41dcd.json | 27 + ...-c8d009c0-4c4e-11ec-9023-a76a2cb41dcd.json | 27 + ...-ccbe7ed0-4c4a-11ec-9023-a76a2cb41dcd.json | 27 + ...-d0c885a0-4c5b-11ec-9023-a76a2cb41dcd.json | 27 + ...-d124a2a0-4c4b-11ec-9023-a76a2cb41dcd.json | 27 + ...-d8e44aa0-5992-11ec-b2d0-45019404f2e5.json | 27 + ...-e86c2d90-4c49-11ec-9023-a76a2cb41dcd.json | 27 + ...-f03d3c90-4c5c-11ec-9023-a76a2cb41dcd.json | 27 + ...-f2e526e0-4c63-11ec-9023-a76a2cb41dcd.json | 27 + ...-fc5f4ea0-4ebe-11ec-9527-b704eaaa5c53.json | 27 + packages/zscaler_zpa/1.0.0/manifest.yml | 70 + 1019 files changed, 104862 insertions(+) create mode 100755 packages/akamai/1.0.0/changelog.yml create mode 100755 packages/akamai/1.0.0/data_stream/siem/agent/stream/httpjson.yml.hbs create mode 100755 packages/akamai/1.0.0/data_stream/siem/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/akamai/1.0.0/data_stream/siem/fields/agent.yml create mode 100755 packages/akamai/1.0.0/data_stream/siem/fields/base-fields.yml create mode 100755 packages/akamai/1.0.0/data_stream/siem/fields/beats.yml create mode 100755 packages/akamai/1.0.0/data_stream/siem/fields/ecs.yml create mode 100755 packages/akamai/1.0.0/data_stream/siem/fields/fields.yml create mode 100755 packages/akamai/1.0.0/data_stream/siem/manifest.yml create mode 100755 packages/akamai/1.0.0/data_stream/siem/sample_event.json create mode 100755 packages/akamai/1.0.0/docs/README.md create mode 100755 packages/akamai/1.0.0/img/akamai_logo.svg create mode 100755 packages/akamai/1.0.0/manifest.yml create mode 100755 packages/auth0/1.0.0/changelog.yml create mode 100755 packages/auth0/1.0.0/data_stream/logs/agent/stream/http_endpoint.yml.hbs create mode 100755 packages/auth0/1.0.0/data_stream/logs/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/auth0/1.0.0/data_stream/logs/fields/agent.yml create mode 100755 packages/auth0/1.0.0/data_stream/logs/fields/base-fields.yml create mode 100755 packages/auth0/1.0.0/data_stream/logs/fields/ecs.yml create mode 100755 packages/auth0/1.0.0/data_stream/logs/fields/fields.yml create mode 100755 packages/auth0/1.0.0/data_stream/logs/manifest.yml create mode 100755 packages/auth0/1.0.0/data_stream/logs/sample_event.json create mode 100755 packages/auth0/1.0.0/docs/README.md create mode 100755 packages/auth0/1.0.0/img/auth0-logo.svg create mode 100755 packages/auth0/1.0.0/img/auth0-screenshot.png create mode 100755 packages/auth0/1.0.0/kibana/dashboard/auth0-29fb7200-4062-11ec-b18d-ef6bf98b26bf.json create mode 100755 packages/auth0/1.0.0/kibana/search/auth0-629b19e0-4061-11ec-b18d-ef6bf98b26bf.json create mode 100755 packages/auth0/1.0.0/kibana/visualization/auth0-187e7650-42a9-11ec-b9a2-edbe9edd14c9.json create mode 100755 packages/auth0/1.0.0/manifest.yml create mode 100755 packages/carbon_black_cloud/1.0.1/changelog.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/alert/agent/stream/aws-s3.yml.hbs create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/alert/agent/stream/httpjson.yml.hbs create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/alert/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/agent.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/base-fields.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/ecs.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/fields.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/alert/manifest.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/alert/sample_event.json create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/agent/stream/httpjson.yml.hbs create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/agent.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/base-fields.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/ecs.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/fields.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/manifest.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/sample_event.json create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/audit/agent/stream/httpjson.yml.hbs create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/audit/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/agent.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/base-fields.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/ecs.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/fields.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/audit/manifest.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/audit/sample_event.json create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/agent/stream/aws-s3.yml.hbs create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/agent.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/base-fields.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/ecs.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/fields.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/manifest.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/sample_event.json create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/agent/stream/aws-s3.yml.hbs create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/agent.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/base-fields.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/ecs.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/fields.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/manifest.yml create mode 100755 packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/sample_event.json create mode 100755 packages/carbon_black_cloud/1.0.1/docs/README.md create mode 100755 packages/carbon_black_cloud/1.0.1/img/carbon_black_cloud-logo.svg create mode 100755 packages/carbon_black_cloud/1.0.1/img/carbon_black_cloud-screenshot.png create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-869252c0-8d71-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-a94cd3a0-962a-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-af030950-8d73-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-db61a3d0-9534-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-e226d530-9554-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-3ea9c2a0-955e-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-4272e690-8d71-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-6494a7e0-9640-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-6e41bd70-8d8d-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-dcc2d650-90a6-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-0296fef0-955d-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-0a8f5e90-8d79-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-0f420ad0-8d71-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-10f699d0-8d8b-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-11df3480-9630-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-17537cc0-955c-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-1b554010-8d73-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-28323940-955d-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2be6ad50-962f-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2d1eedf0-9629-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2d324250-963e-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2eafd430-8d83-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-3aa59c50-955a-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-3afe1750-9630-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-4dc9e690-955c-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-52fde850-8d73-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-53d65ef0-962f-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-56130b90-954a-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5a5dad90-954a-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5c122d10-8d83-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5c6ce550-8d85-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5f690780-954a-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6496b680-954a-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-68a6c080-954a-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6bfd1770-954a-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6efc6240-8d8a-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6fcd17f0-955a-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-70cdb250-954a-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-715f3ec0-955c-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-750fefe0-954a-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-76fe1db0-962e-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-792a3310-954a-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-7a6261e0-962f-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-7caf3b20-954a-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-80778dc0-954a-11ec-8b9d-35e42c3f7fcf.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-89932a20-8d86-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-8af47260-8d87-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-906f65c0-8d81-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-928cff80-8d8a-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-949c1d00-9628-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-97ab53f0-8d84-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-993b8650-8d83-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-9a533f40-8d80-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-a5d6fa30-8d8c-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-a6d2a900-8d70-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-a7ce1420-9630-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ae34ca40-962e-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-bb323db0-955a-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-c3786990-9555-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-c6cfa8d0-962f-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-cb70a610-955c-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-cc2d3630-8d83-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-d33296f0-8d79-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-d49a3710-8d96-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-de59dff0-955a-11ec-96f0-8de26c63c826.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ee2098d0-8d70-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ee670e50-8d89-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ee77a260-8d84-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f28910d0-9628-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f3f635b0-8d72-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f75eabb0-8d8b-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f7681be0-962e-11ec-864c-3332b2a355f7.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f93958c0-8d83-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ff34eaa0-8d79-11ec-ac12-4bc77fa14e95.json create mode 100755 packages/carbon_black_cloud/1.0.1/manifest.yml create mode 100755 packages/cisco_umbrella/1.0.0/changelog.yml create mode 100755 packages/cisco_umbrella/1.0.0/data_stream/log/agent/stream/aws-s3.yml.hbs create mode 100755 packages/cisco_umbrella/1.0.0/data_stream/log/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/cisco_umbrella/1.0.0/data_stream/log/fields/agent.yml create mode 100755 packages/cisco_umbrella/1.0.0/data_stream/log/fields/base-fields.yml create mode 100755 packages/cisco_umbrella/1.0.0/data_stream/log/fields/ecs.yml create mode 100755 packages/cisco_umbrella/1.0.0/data_stream/log/fields/fields.yml create mode 100755 packages/cisco_umbrella/1.0.0/data_stream/log/manifest.yml create mode 100755 packages/cisco_umbrella/1.0.0/data_stream/log/sample_event.json create mode 100755 packages/cisco_umbrella/1.0.0/docs/README.md create mode 100755 packages/cisco_umbrella/1.0.0/img/cisco.svg create mode 100755 packages/cisco_umbrella/1.0.0/manifest.yml create mode 100755 packages/github/1.0.0/changelog.yml create mode 100755 packages/github/1.0.0/data_stream/audit/agent/stream/httpjson.yml.hbs create mode 100755 packages/github/1.0.0/data_stream/audit/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/github/1.0.0/data_stream/audit/fields/agent.yml create mode 100755 packages/github/1.0.0/data_stream/audit/fields/base-fields.yml create mode 100755 packages/github/1.0.0/data_stream/audit/fields/ecs.yml create mode 100755 packages/github/1.0.0/data_stream/audit/fields/fields.yml create mode 100755 packages/github/1.0.0/data_stream/audit/manifest.yml create mode 100755 packages/github/1.0.0/data_stream/audit/sample_event.json create mode 100755 packages/github/1.0.0/docs/README.md create mode 100755 packages/github/1.0.0/img/github-audit-dashboard.png create mode 100755 packages/github/1.0.0/img/github-user-dashboard.png create mode 100755 packages/github/1.0.0/img/github.svg create mode 100755 packages/github/1.0.0/kibana/dashboard/github-8bfd8310-205c-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/dashboard/github-dcee84c0-2059-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/map/github-871e5750-205e-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/search/github-173f1050-20ae-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/search/github-a5f3d9b0-20af-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/visualization/github-61f60d00-20b4-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/visualization/github-78ec0aa0-20b4-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/visualization/github-7b073f90-205e-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/visualization/github-9638a6e0-20b4-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/visualization/github-97737b60-20b5-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/visualization/github-b50c62e0-20b5-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/visualization/github-ba0ece10-20b3-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/visualization/github-c803b110-20b4-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/kibana/visualization/github-d7343340-20b3-11ec-8b10-11a4c5e322a0.json create mode 100755 packages/github/1.0.0/manifest.yml create mode 100755 packages/microsoft_dhcp/1.4.2/changelog.yml create mode 100755 packages/microsoft_dhcp/1.4.2/data_stream/log/agent/stream/logfile.yml.hbs create mode 100755 packages/microsoft_dhcp/1.4.2/data_stream/log/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/microsoft_dhcp/1.4.2/data_stream/log/elasticsearch/ingest_pipeline/dhcp.yml create mode 100755 packages/microsoft_dhcp/1.4.2/data_stream/log/elasticsearch/ingest_pipeline/dhcpv6.yml create mode 100755 packages/microsoft_dhcp/1.4.2/data_stream/log/fields/agent.yml create mode 100755 packages/microsoft_dhcp/1.4.2/data_stream/log/fields/base-fields.yml create mode 100755 packages/microsoft_dhcp/1.4.2/data_stream/log/fields/ecs.yml create mode 100755 packages/microsoft_dhcp/1.4.2/data_stream/log/fields/fields.yml create mode 100755 packages/microsoft_dhcp/1.4.2/data_stream/log/manifest.yml create mode 100755 packages/microsoft_dhcp/1.4.2/data_stream/log/sample_event.json create mode 100755 packages/microsoft_dhcp/1.4.2/docs/README.md create mode 100755 packages/microsoft_dhcp/1.4.2/img/logo.svg create mode 100755 packages/microsoft_dhcp/1.4.2/manifest.yml create mode 100755 packages/microsoft_sqlserver/1.0.0/changelog.yml create mode 100755 packages/microsoft_sqlserver/1.0.0/data_stream/audit/agent/stream/winlog.yml.hbs create mode 100755 packages/microsoft_sqlserver/1.0.0/data_stream/audit/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/base-fields.yml create mode 100755 packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/ecs.yml create mode 100755 packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/fields.yml create mode 100755 packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/winlog.yml create mode 100755 packages/microsoft_sqlserver/1.0.0/data_stream/audit/manifest.yml create mode 100755 packages/microsoft_sqlserver/1.0.0/docs/README.md create mode 100755 packages/microsoft_sqlserver/1.0.0/img/microsoft-sql-server-logo.svg create mode 100755 packages/microsoft_sqlserver/1.0.0/img/sqlserver-dashboard.png create mode 100755 packages/microsoft_sqlserver/1.0.0/kibana/dashboard/microsoft_sqlserver-361588b0-389b-11ec-9973-85eff9a74fdb.json create mode 100755 packages/microsoft_sqlserver/1.0.0/manifest.yml create mode 100755 packages/modsecurity/1.0.0/changelog.yml create mode 100755 packages/modsecurity/1.0.0/data_stream/auditlog/agent/stream/stream.yml.hbs create mode 100755 packages/modsecurity/1.0.0/data_stream/auditlog/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/modsecurity/1.0.0/data_stream/auditlog/fields/agent.yml create mode 100755 packages/modsecurity/1.0.0/data_stream/auditlog/fields/base-fields.yml create mode 100755 packages/modsecurity/1.0.0/data_stream/auditlog/fields/ecs.yml create mode 100755 packages/modsecurity/1.0.0/data_stream/auditlog/fields/fields.yml create mode 100755 packages/modsecurity/1.0.0/data_stream/auditlog/manifest.yml create mode 100755 packages/modsecurity/1.0.0/data_stream/auditlog/sample_event.json create mode 100755 packages/modsecurity/1.0.0/docs/README.md create mode 100755 packages/modsecurity/1.0.0/img/modsec.svg create mode 100755 packages/modsecurity/1.0.0/manifest.yml create mode 100755 packages/netskope/1.0.0/changelog.yml create mode 100755 packages/netskope/1.0.0/data_stream/alerts/agent/stream/tcp.yml.hbs create mode 100755 packages/netskope/1.0.0/data_stream/alerts/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/netskope/1.0.0/data_stream/alerts/fields/agent.yml create mode 100755 packages/netskope/1.0.0/data_stream/alerts/fields/base-fields.yml create mode 100755 packages/netskope/1.0.0/data_stream/alerts/fields/ecs.yml create mode 100755 packages/netskope/1.0.0/data_stream/alerts/fields/fields.yml create mode 100755 packages/netskope/1.0.0/data_stream/alerts/manifest.yml create mode 100755 packages/netskope/1.0.0/data_stream/alerts/sample_event.json create mode 100755 packages/netskope/1.0.0/data_stream/events/agent/stream/tcp.yml.hbs create mode 100755 packages/netskope/1.0.0/data_stream/events/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/netskope/1.0.0/data_stream/events/fields/agent.yml create mode 100755 packages/netskope/1.0.0/data_stream/events/fields/base-fields.yml create mode 100755 packages/netskope/1.0.0/data_stream/events/fields/ecs.yml create mode 100755 packages/netskope/1.0.0/data_stream/events/fields/fields.yml create mode 100755 packages/netskope/1.0.0/data_stream/events/manifest.yml create mode 100755 packages/netskope/1.0.0/data_stream/events/sample_event.json create mode 100755 packages/netskope/1.0.0/docs/README.md create mode 100755 packages/netskope/1.0.0/img/netskope-alerts-screenshot.png create mode 100755 packages/netskope/1.0.0/img/netskope-events-screenshot.png create mode 100755 packages/netskope/1.0.0/img/netskope-logo.svg create mode 100755 packages/netskope/1.0.0/kibana/dashboard/netskope-0f68b070-71f8-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/dashboard/netskope-1db9af70-71f4-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/dashboard/netskope-388b1e00-72ae-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/dashboard/netskope-4bdc8830-72af-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/dashboard/netskope-93c4dce0-72a7-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/dashboard/netskope-97349920-72b0-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/dashboard/netskope-9e55e880-72b5-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/dashboard/netskope-a03670f0-7208-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/dashboard/netskope-ae3f6d70-71e3-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/dashboard/netskope-e538e5c0-71ea-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/dashboard/netskope-e6184f90-72b6-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/dashboard/netskope-f181cba0-71d9-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-03150a40-720b-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-06bf2da0-72a7-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-0922ae70-720a-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-0e9511e0-72aa-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-0f05ca90-7456-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-187e0140-71f5-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-1b3226c0-71df-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-2044d2a0-72ae-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-24907420-72b0-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-25b07fa0-71eb-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-26d9c5c0-71dd-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-2b81f870-71da-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-301d9fd0-720a-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-304fa1c0-7209-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-327320f0-72ac-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-357672b0-72a8-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-37409a80-71db-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-3ec223c0-720b-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-40a01500-72db-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-41932530-72a7-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-464ce970-72b7-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-47132800-72a9-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-4a1cfbc0-71dc-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-516130e0-71eb-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-51bf6fb0-72aa-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-528169b0-72b6-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-55144a90-72ab-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-55b418a0-71dd-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-5982c0e0-72ae-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-5b54d5f0-71f7-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-5def8dc0-71e6-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-5e243140-72b5-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-5efbfc00-72a7-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-5f452920-71da-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-648c79d0-720a-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-662de6e0-71e0-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-719e0f30-72af-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-75f900b0-72b6-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-7d1142a0-72ab-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-7d7e2260-71f4-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-7edc5f60-71df-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-7f41e9e0-71dd-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-7f8d83c0-71db-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-7f9d2540-7209-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-83fa5a10-72a7-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-8705deb0-71de-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-891546c0-72db-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-8c226d50-71f7-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-8efd9840-71e0-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-8fc2c680-72b0-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-914898a0-72af-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-917c9230-72b5-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-93433ee0-72a9-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-9b93d9d0-71da-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-9c6d6030-71f6-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-a2047d20-72ab-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-a3c6c270-745f-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-a3e5e650-72b6-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-a44f4160-72b4-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-a4745040-71dd-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-a6e2ecf0-72a6-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-a8fb1770-720a-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-abcc6a30-72aa-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-b0b26610-71df-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-bc70e470-7209-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-bc859e60-71dc-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-bd2879d0-71f7-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-c01026d0-72af-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-c1e088c0-72a9-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-c6540e80-72b4-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-ca5610d0-71da-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-cab84db0-71dd-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-d1189e60-71df-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-d9596770-72a8-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-dbcca900-72b6-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-dbdd48a0-72a7-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-dd1de560-71eb-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-de309310-71d9-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-e15f2790-72a6-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-e2e46e60-72ae-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-e8cecff0-72a9-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-e9bc9d80-7208-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-f1c99420-7207-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-f4fb96d0-71de-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-f9097160-71f3-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-f96d6680-71f7-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-fceec3e0-71dd-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/kibana/visualization/netskope-feb43930-72af-11ec-8c4b-cb281099ee02.json create mode 100755 packages/netskope/1.0.0/manifest.yml create mode 100755 packages/network_traffic/1.1.0/changelog.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/amqp/agent/stream/amqp.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/amqp/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/amqp/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/amqp/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/amqp/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/amqp/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/amqp/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/amqp/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/amqp/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/cassandra/agent/stream/cassandra.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/cassandra/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/cassandra/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/cassandra/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/cassandra/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/cassandra/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/cassandra/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/cassandra/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/cassandra/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/dhcpv4/agent/stream/dhcpv4.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/dhcpv4/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dhcpv4/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dhcpv4/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/dns/agent/stream/dns.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/dns/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dns/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dns/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dns/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dns/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dns/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dns/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/dns/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/flow/agent/stream/flow.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/flow/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/flow/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/flow/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/flow/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/flow/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/flow/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/http/agent/stream/http.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/http/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/http/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/http/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/http/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/http/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/http/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/http/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/http/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/icmp/agent/stream/icmp.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/icmp/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/icmp/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/icmp/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/icmp/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/icmp/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/icmp/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/icmp/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/icmp/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/memcached/agent/stream/memcached.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/memcached/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/memcached/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/memcached/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/memcached/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/memcached/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/memcached/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/memcached/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/memcached/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/mongodb/agent/stream/mongodb.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/mongodb/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mongodb/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mongodb/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mongodb/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mongodb/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mongodb/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mongodb/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mongodb/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/mysql/agent/stream/mysql.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/mysql/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mysql/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mysql/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mysql/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mysql/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mysql/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mysql/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/mysql/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/nfs/agent/stream/nfs.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/nfs/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/nfs/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/nfs/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/nfs/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/nfs/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/nfs/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/nfs/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/nfs/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/pgsql/agent/stream/pgsql.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/pgsql/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/pgsql/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/pgsql/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/pgsql/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/pgsql/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/pgsql/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/pgsql/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/pgsql/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/redis/agent/stream/redis.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/redis/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/redis/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/redis/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/redis/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/redis/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/redis/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/redis/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/redis/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/sip/agent/stream/sip.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/sip/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/sip/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/sip/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/sip/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/sip/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/sip/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/sip/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/sip/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/thrift/agent/stream/thrift.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/thrift/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/thrift/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/thrift/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/thrift/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/thrift/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/thrift/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/thrift/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/thrift/sample_event.json create mode 100755 packages/network_traffic/1.1.0/data_stream/tls/agent/stream/tls.yml.hbs create mode 100755 packages/network_traffic/1.1.0/data_stream/tls/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/tls/fields/agent.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/tls/fields/base.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/tls/fields/beats.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/tls/fields/ecs.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/tls/fields/protocol.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/tls/manifest.yml create mode 100755 packages/network_traffic/1.1.0/data_stream/tls/sample_event.json create mode 100755 packages/network_traffic/1.1.0/docs/README.md create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-65120940-1454-11e9-9de0-f98d1808db8e.json create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-a7b35890-8baa-11e8-9676-ef67484126fb.json create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-cassandra.json create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-dashboard.json create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-dns-unique-domains.json create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-flows.json create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-http.json create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-mongodb-performance.json create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-mysql-performance.json create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-nfs.json create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-pgsql-performance.json create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-thrift-performance.json create mode 100755 packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-tls-sessions.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-651fd6d0-88d0-11e7-ad9c-db80de0bf8d3.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-6b1b1360-d49d-11e7-996f-bd7c1ca4591b.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-71908f00-88ca-11e7-ad9c-db80de0bf8d3.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-8e2af860-d520-11e7-9fff-7b1ebf397ba9.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-8f0ff590-d37d-11e7-9914-4982455b3063.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-94908e80-d2d8-11e7-9914-4982455b3063.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-b8992150-8ba8-11e8-9676-ef67484126fb.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-bf3d23b0-d37c-11e7-9914-4982455b3063.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-cassandra-queryview.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-ffc3c0b0-d2d7-11e7-9914-4982455b3063.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-flows-search.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-mongodb-transactions-with-write-concern-0.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-mongodb-transactions.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-mysql-errors.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-mysql-transactions.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-nfs-errors-search.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-nfs.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-pgsql-errors.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-pgsql-transactions.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-search.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-thrift-errors.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-thrift-transactions.json create mode 100755 packages/network_traffic/1.1.0/kibana/search/network_traffic-transactions-errors.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-059fe5e0-d2dd-11e7-9914-4982455b3063.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-061de380-d361-11e7-9914-4982455b3063.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-0958a910-d396-11e7-8fa0-232aa9259081.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-0af0b790-d37d-11e7-9914-4982455b3063.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-11d33ea0-8bad-11e8-9676-ef67484126fb.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-2c467370-d392-11e7-8fa0-232aa9259081.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-418dfbe0-8bac-11e8-9676-ef67484126fb.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-463d2bf0-d3a8-11e7-9081-ab2af08e9961.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-4ad9db20-8bab-11e8-9676-ef67484126fb.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-735d25c0-1459-11e9-9de0-f98d1808db8e.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-8460fcd0-8baa-11e8-9676-ef67484126fb.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-86743f90-d396-11e7-8fa0-232aa9259081.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-a28d09d0-d361-11e7-9914-4982455b3063.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-ad2a8b50-d49d-11e7-996f-bd7c1ca4591b.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-ae6e33c0-d37d-11e7-9914-4982455b3063.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-bacb6ed0-1459-11e9-9de0-f98d1808db8e.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-bytes-transferred-per-domain.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-c14377a0-d353-11e7-9914-4982455b3063.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-ops.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-requestcount.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-requestcountbytype.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-requestcountstackbytype.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsecountbytype.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsecountstackbytype.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsekeyspace.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsetime.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsetype.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-connections-over-time.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-d0120dc0-8bac-11e8-9676-ef67484126fb.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-d2e15950-d560-11e7-9fff-7b1ebf397ba9.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-db-transactions.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dc743240-1665-11e7-a6de-cbac1a3d0a7d.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-query-summary.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-question-types.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-request-status-over-time.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-response-codes.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-top-10-questions.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-e3f09730-1b80-11e9-83df-75eebb35951e.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-errors-count-over-time.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-errors-vs-successful-transactions.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-f43a8f20-8bb5-11e8-9676-ef67484126fb.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-http-codes-for-the-top-queries.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-http-error-codes-evolution.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-http-error-codes.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-latency-histogram.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-commands.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-errors-per-collection.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-errors.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-in-slash-out-throughput.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-response-times-by-collection.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-most-frequent-mysql-queries.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-most-frequent-pgsql-queries.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-errors.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-methods.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-reads-vs-writes.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-response-times-percentiles.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-throughput.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-navigation.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-network-traffic-between-your-hosts.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-bytes-in-slash-out.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-clients-pie-chart.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-errors.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-operation-table.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-operations-area-chart.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-response-times.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-top-group-pie-chart.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-top-users-pie-chart.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-number-of-mongodb-transactions-with-writeconcern-w-equal-0.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-errors.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-methods.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-reads-vs-writes.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-response-times-percentiles.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-throughput.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-response-times-percentiles.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-response-times-repartition.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-slowest-mysql-queries.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-slowest-pgsql-queries.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-slowest-thrift-rpc-methods.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-thrift-requests-per-minute.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-thrift-response-times-percentiles.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-thrift-rpc-errors.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-10-http-requests.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-hosts-creating-traffic.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-hosts-receiving-traffic.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-slowest-mongodb-queries.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-thrift-rpc-calls-with-errors.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-thrift-rpc-methods.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-total-number-of-http-transactions.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-unique-fqdns-per-etld-1-table.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-unique-fqdns-per-etld-1.json create mode 100755 packages/network_traffic/1.1.0/kibana/visualization/network_traffic-web-transactions.json create mode 100755 packages/network_traffic/1.1.0/manifest.yml create mode 100755 packages/proofpoint_tap/0.1.0/changelog.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/agent/stream/httpjson.yml.hbs create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/agent.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/base-fields.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/ecs.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/fields.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/manifest.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/sample_event.json create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/agent/stream/httpjson.yml.hbs create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/agent.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/base-fields.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/ecs.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/fields.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/manifest.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/sample_event.json create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_blocked/agent/stream/httpjson.yml.hbs create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_blocked/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/agent.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/base-fields.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/ecs.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/fields.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_blocked/manifest.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_blocked/sample_event.json create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_delivered/agent/stream/httpjson.yml.hbs create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_delivered/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/agent.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/base-fields.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/ecs.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/fields.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_delivered/manifest.yml create mode 100755 packages/proofpoint_tap/0.1.0/data_stream/message_delivered/sample_event.json create mode 100755 packages/proofpoint_tap/0.1.0/docs/README.md create mode 100755 packages/proofpoint_tap/0.1.0/img/proofpoint_tap-logo.svg create mode 100755 packages/proofpoint_tap/0.1.0/img/proofpoint_tap-screenshot.png create mode 100755 packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-3ad578f0-b5a6-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-770903b0-b5aa-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-9899aae0-b5ad-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-ee5bc100-b5c8-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-22c1fd60-b5a6-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-2e596430-b5ae-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-31d88f20-b5ca-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-32f38a20-b5cc-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-3872f3b0-b5ad-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-3d9cb8d0-b5b2-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-4363e9b0-b5a7-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-458b3ce0-b5af-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-47aeba50-b5c9-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-4b9175c0-b5a8-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-5820b4a0-b5b1-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-72f5f2d0-b5b2-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-80dd97f0-b5ca-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-89f9d420-b5a7-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-a0565740-b5af-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-a1aed070-b5b1-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-b2134d80-b5aa-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-bb5e8d80-b5ca-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-d3107d90-b5c9-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-d3560780-b5c8-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-dc148bf0-b5a8-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-e3c98870-b5b0-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-e741c9d0-b5b1-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-eff98e20-b5aa-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-fb0adc60-b5af-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/map/proofpoint_tap-31abbc50-b5d6-11ec-a9d0-e94ed15a14b9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/map/proofpoint_tap-40a91cd0-c197-11ec-aabc-2f1ab05698f9.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/search/proofpoint_tap-00dd5660-af9b-11ec-bf43-c372803d141d.json create mode 100755 packages/proofpoint_tap/0.1.0/kibana/search/proofpoint_tap-717803c0-b130-11ec-8e58-3fc548a48fe4.json create mode 100755 packages/proofpoint_tap/0.1.0/manifest.yml create mode 100755 packages/pulse_connect_secure/1.0.0/changelog.yml create mode 100755 packages/pulse_connect_secure/1.0.0/data_stream/log/agent/stream/tcp.yml.hbs create mode 100755 packages/pulse_connect_secure/1.0.0/data_stream/log/agent/stream/udp.yml.hbs create mode 100755 packages/pulse_connect_secure/1.0.0/data_stream/log/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/pulse_connect_secure/1.0.0/data_stream/log/fields/agent.yml create mode 100755 packages/pulse_connect_secure/1.0.0/data_stream/log/fields/base-fields.yml create mode 100755 packages/pulse_connect_secure/1.0.0/data_stream/log/fields/ecs.yml create mode 100755 packages/pulse_connect_secure/1.0.0/data_stream/log/fields/fields.yml create mode 100755 packages/pulse_connect_secure/1.0.0/data_stream/log/manifest.yml create mode 100755 packages/pulse_connect_secure/1.0.0/data_stream/log/sample_event.json create mode 100755 packages/pulse_connect_secure/1.0.0/docs/README.md create mode 100755 packages/pulse_connect_secure/1.0.0/img/pulse_connect_secure.svg create mode 100755 packages/pulse_connect_secure/1.0.0/manifest.yml create mode 100755 packages/sentinel_one/0.1.0/changelog.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/activity/agent/stream/httpjson.yml.hbs create mode 100755 packages/sentinel_one/0.1.0/data_stream/activity/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/activity/fields/agent.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/activity/fields/base-fields.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/activity/fields/ecs.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/activity/fields/fields.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/activity/manifest.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/activity/sample_event.json create mode 100755 packages/sentinel_one/0.1.0/data_stream/agent/agent/stream/httpjson.yml.hbs create mode 100755 packages/sentinel_one/0.1.0/data_stream/agent/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/agent/fields/agent.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/agent/fields/base-fields.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/agent/fields/ecs.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/agent/fields/fields.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/agent/manifest.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/agent/sample_event.json create mode 100755 packages/sentinel_one/0.1.0/data_stream/alert/agent/stream/httpjson.yml.hbs create mode 100755 packages/sentinel_one/0.1.0/data_stream/alert/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/alert/fields/agent.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/alert/fields/base-fields.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/alert/fields/ecs.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/alert/fields/fields.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/alert/manifest.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/alert/sample_event.json create mode 100755 packages/sentinel_one/0.1.0/data_stream/group/agent/stream/httpjson.yml.hbs create mode 100755 packages/sentinel_one/0.1.0/data_stream/group/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/group/fields/agent.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/group/fields/base-fields.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/group/fields/ecs.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/group/fields/fields.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/group/manifest.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/group/sample_event.json create mode 100755 packages/sentinel_one/0.1.0/data_stream/threat/agent/stream/httpjson.yml.hbs create mode 100755 packages/sentinel_one/0.1.0/data_stream/threat/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/threat/fields/agent.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/threat/fields/base-fields.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/threat/fields/ecs.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/threat/fields/fields.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/threat/manifest.yml create mode 100755 packages/sentinel_one/0.1.0/data_stream/threat/sample_event.json create mode 100755 packages/sentinel_one/0.1.0/docs/README.md create mode 100755 packages/sentinel_one/0.1.0/img/sentinel-one-api-token-generate.png create mode 100755 packages/sentinel_one/0.1.0/img/sentinel-one-dashboard.png create mode 100755 packages/sentinel_one/0.1.0/img/sentinel-one-logo.svg create mode 100755 packages/sentinel_one/0.1.0/img/sentinel-one-screenshot.png create mode 100755 packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-0dd17490-bbb8-11ec-82b7-8fcb232e9538.json create mode 100755 packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-5881f5f0-bb2c-11ec-82b7-8fcb232e9538.json create mode 100755 packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-67844880-bbb5-11ec-82b7-8fcb232e9538.json create mode 100755 packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-899f2630-bb27-11ec-82b7-8fcb232e9538.json create mode 100755 packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-bcf1f680-bba3-11ec-82b7-8fcb232e9538.json create mode 100755 packages/sentinel_one/0.1.0/kibana/search/sentinel_one-89773b00-c1fa-11ec-a23a-27e16fe32bb9.json create mode 100755 packages/sentinel_one/0.1.0/manifest.yml create mode 100755 packages/sonicwall_firewall/0.1.1/changelog.yml create mode 100755 packages/sonicwall_firewall/0.1.1/data_stream/log/agent/stream/logfile.yml.hbs create mode 100755 packages/sonicwall_firewall/0.1.1/data_stream/log/agent/stream/udp.yml.hbs create mode 100755 packages/sonicwall_firewall/0.1.1/data_stream/log/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/sonicwall_firewall/0.1.1/data_stream/log/fields/base-fields.yml create mode 100755 packages/sonicwall_firewall/0.1.1/data_stream/log/fields/beats.yml create mode 100755 packages/sonicwall_firewall/0.1.1/data_stream/log/fields/ecs.yml create mode 100755 packages/sonicwall_firewall/0.1.1/data_stream/log/fields/package-fields.yml create mode 100755 packages/sonicwall_firewall/0.1.1/data_stream/log/manifest.yml create mode 100755 packages/sonicwall_firewall/0.1.1/data_stream/log/sample_event.json create mode 100755 packages/sonicwall_firewall/0.1.1/docs/README.md create mode 100755 packages/sonicwall_firewall/0.1.1/img/dashboard.png create mode 100755 packages/sonicwall_firewall/0.1.1/img/logo.svg create mode 100755 packages/sonicwall_firewall/0.1.1/kibana/dashboard/sonicwall_firewall-782e2cf0-d78f-11ec-bc4f-47419689dcde.json create mode 100755 packages/sonicwall_firewall/0.1.1/kibana/search/sonicwall_firewall-93af7ae0-d796-11ec-bc4f-47419689dcde.json create mode 100755 packages/sonicwall_firewall/0.1.1/manifest.yml create mode 100755 packages/symantec_endpoint/1.0.0/changelog.yml create mode 100755 packages/symantec_endpoint/1.0.0/data_stream/log/agent/stream/logfile.yml.hbs create mode 100755 packages/symantec_endpoint/1.0.0/data_stream/log/agent/stream/tcp.yml.hbs create mode 100755 packages/symantec_endpoint/1.0.0/data_stream/log/agent/stream/udp.yml.hbs create mode 100755 packages/symantec_endpoint/1.0.0/data_stream/log/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/symantec_endpoint/1.0.0/data_stream/log/fields/agent.yml create mode 100755 packages/symantec_endpoint/1.0.0/data_stream/log/fields/base-fields.yml create mode 100755 packages/symantec_endpoint/1.0.0/data_stream/log/fields/ecs.yml create mode 100755 packages/symantec_endpoint/1.0.0/data_stream/log/fields/fields.yml create mode 100755 packages/symantec_endpoint/1.0.0/data_stream/log/manifest.yml create mode 100755 packages/symantec_endpoint/1.0.0/data_stream/log/sample_event.json create mode 100755 packages/symantec_endpoint/1.0.0/docs/README.md create mode 100755 packages/symantec_endpoint/1.0.0/img/logo.svg create mode 100755 packages/symantec_endpoint/1.0.0/img/symantec-endpoint-logs-overview.png create mode 100755 packages/symantec_endpoint/1.0.0/kibana/dashboard/symantec_endpoint-3ac0a690-5f71-11ec-85e4-338fc80d8393.json create mode 100755 packages/symantec_endpoint/1.0.0/manifest.yml create mode 100755 packages/ti_anomali/1.3.1/changelog.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/limo/agent/stream/httpjson.yml.hbs create mode 100755 packages/ti_anomali/1.3.1/data_stream/limo/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/limo/fields/agent.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/limo/fields/base-fields.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/limo/fields/beats.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/limo/fields/ecs.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/limo/fields/fields.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/limo/manifest.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/limo/sample_event.json create mode 100755 packages/ti_anomali/1.3.1/data_stream/threatstream/agent/stream/http_endpoint.yml.hbs create mode 100755 packages/ti_anomali/1.3.1/data_stream/threatstream/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/threatstream/fields/agent.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/threatstream/fields/base-fields.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/threatstream/fields/beats.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/threatstream/fields/ecs.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/threatstream/fields/fields.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/threatstream/manifest.yml create mode 100755 packages/ti_anomali/1.3.1/data_stream/threatstream/sample_event.json create mode 100755 packages/ti_anomali/1.3.1/docs/README.md create mode 100755 packages/ti_anomali/1.3.1/img/anomali.svg create mode 100755 packages/ti_anomali/1.3.1/kibana/dashboard/ti_anomali-207f3c40-45fb-11ec-ab0c-d7f52dcaa020.json create mode 100755 packages/ti_anomali/1.3.1/kibana/dashboard/ti_anomali-39699a60-45fc-11ec-ab0c-d7f52dcaa020.json create mode 100755 packages/ti_anomali/1.3.1/kibana/dashboard/ti_anomali-78e08d20-45fc-11ec-ab0c-d7f52dcaa020.json create mode 100755 packages/ti_anomali/1.3.1/kibana/dashboard/ti_anomali-96fe1e60-4261-11ec-b7be-d3026acdf1cf.json create mode 100755 packages/ti_anomali/1.3.1/kibana/tag/ti_anomali-94419670-4261-11ec-b7be-d3026acdf1cf.json create mode 100755 packages/ti_anomali/1.3.1/kibana/tag/ti_anomali-ti_abusech-320c5c80-3b0c-11ec-ae50-2fdf1e96c6a6.json create mode 100755 packages/ti_anomali/1.3.1/manifest.yml create mode 100755 packages/ti_misp/1.4.0/changelog.yml create mode 100755 packages/ti_misp/1.4.0/data_stream/threat/agent/stream/httpjson.yml.hbs create mode 100755 packages/ti_misp/1.4.0/data_stream/threat/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/ti_misp/1.4.0/data_stream/threat/fields/agent.yml create mode 100755 packages/ti_misp/1.4.0/data_stream/threat/fields/base-fields.yml create mode 100755 packages/ti_misp/1.4.0/data_stream/threat/fields/beats.yml create mode 100755 packages/ti_misp/1.4.0/data_stream/threat/fields/ecs.yml create mode 100755 packages/ti_misp/1.4.0/data_stream/threat/fields/fields.yml create mode 100755 packages/ti_misp/1.4.0/data_stream/threat/manifest.yml create mode 100755 packages/ti_misp/1.4.0/data_stream/threat/sample_event.json create mode 100755 packages/ti_misp/1.4.0/docs/README.md create mode 100755 packages/ti_misp/1.4.0/img/misp.svg create mode 100755 packages/ti_misp/1.4.0/kibana/dashboard/ti_misp-32d9c020-71ea-11ec-8197-5d53a5437877.json create mode 100755 packages/ti_misp/1.4.0/kibana/dashboard/ti_misp-399bb8d0-71ec-11ec-8197-5d53a5437877.json create mode 100755 packages/ti_misp/1.4.0/kibana/dashboard/ti_misp-56ed8040-6c7d-11ec-9bce-f7a4dc94c294.json create mode 100755 packages/ti_misp/1.4.0/kibana/tag/ti_misp-550ba0e0-6c7d-11ec-9bce-f7a4dc94c294.json create mode 100755 packages/ti_misp/1.4.0/manifest.yml create mode 100755 packages/ti_recordedfuture/1.0.0/changelog.yml create mode 100755 packages/ti_recordedfuture/1.0.0/data_stream/threat/agent/stream/httpjson.yml.hbs create mode 100755 packages/ti_recordedfuture/1.0.0/data_stream/threat/agent/stream/logfile.yml.hbs create mode 100755 packages/ti_recordedfuture/1.0.0/data_stream/threat/elasticsearch/ingest_pipeline/decode_csv.yml create mode 100755 packages/ti_recordedfuture/1.0.0/data_stream/threat/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/ti_recordedfuture/1.0.0/data_stream/threat/fields/agent.yml create mode 100755 packages/ti_recordedfuture/1.0.0/data_stream/threat/fields/base-fields.yml create mode 100755 packages/ti_recordedfuture/1.0.0/data_stream/threat/fields/beats.yml create mode 100755 packages/ti_recordedfuture/1.0.0/data_stream/threat/fields/ecs.yml create mode 100755 packages/ti_recordedfuture/1.0.0/data_stream/threat/fields/fields.yml create mode 100755 packages/ti_recordedfuture/1.0.0/data_stream/threat/manifest.yml create mode 100755 packages/ti_recordedfuture/1.0.0/data_stream/threat/sample_event.json create mode 100755 packages/ti_recordedfuture/1.0.0/docs/README.md create mode 100755 packages/ti_recordedfuture/1.0.0/img/logo.svg create mode 100755 packages/ti_recordedfuture/1.0.0/manifest.yml create mode 100755 packages/zscaler_zia/2.1.0/changelog.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/alerts/agent/stream/tcp.yml.hbs create mode 100755 packages/zscaler_zia/2.1.0/data_stream/alerts/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/alerts/fields/agent.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/alerts/fields/base-fields.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/alerts/fields/ecs.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/alerts/fields/fields.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/alerts/manifest.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/alerts/sample_event.json create mode 100755 packages/zscaler_zia/2.1.0/data_stream/dns/agent/stream/http_endpoint.yml.hbs create mode 100755 packages/zscaler_zia/2.1.0/data_stream/dns/agent/stream/tcp.yml.hbs create mode 100755 packages/zscaler_zia/2.1.0/data_stream/dns/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/dns/fields/agent.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/dns/fields/base-fields.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/dns/fields/ecs.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/dns/fields/fields.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/dns/manifest.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/dns/sample_event.json create mode 100755 packages/zscaler_zia/2.1.0/data_stream/firewall/agent/stream/http_endpoint.yml.hbs create mode 100755 packages/zscaler_zia/2.1.0/data_stream/firewall/agent/stream/tcp.yml.hbs create mode 100755 packages/zscaler_zia/2.1.0/data_stream/firewall/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/firewall/fields/agent.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/firewall/fields/base-fields.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/firewall/fields/ecs.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/firewall/fields/fields.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/firewall/manifest.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/firewall/sample_event.json create mode 100755 packages/zscaler_zia/2.1.0/data_stream/tunnel/agent/stream/http_endpoint.yml.hbs create mode 100755 packages/zscaler_zia/2.1.0/data_stream/tunnel/agent/stream/tcp.yml.hbs create mode 100755 packages/zscaler_zia/2.1.0/data_stream/tunnel/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/tunnel/fields/agent.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/tunnel/fields/base-fields.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/tunnel/fields/ecs.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/tunnel/fields/fields.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/tunnel/manifest.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/tunnel/sample_event.json create mode 100755 packages/zscaler_zia/2.1.0/data_stream/web/agent/stream/http_endpoint.yml.hbs create mode 100755 packages/zscaler_zia/2.1.0/data_stream/web/agent/stream/tcp.yml.hbs create mode 100755 packages/zscaler_zia/2.1.0/data_stream/web/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/web/fields/agent.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/web/fields/base-fields.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/web/fields/ecs.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/web/fields/fields.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/web/manifest.yml create mode 100755 packages/zscaler_zia/2.1.0/data_stream/web/sample_event.json create mode 100755 packages/zscaler_zia/2.1.0/docs/README.md create mode 100755 packages/zscaler_zia/2.1.0/img/cloud_nss_feeds.png create mode 100755 packages/zscaler_zia/2.1.0/img/escape_feed.png create mode 100755 packages/zscaler_zia/2.1.0/img/nss_feeds.png create mode 100755 packages/zscaler_zia/2.1.0/img/nss_server.png create mode 100755 packages/zscaler_zia/2.1.0/img/zscaler-logo.svg create mode 100755 packages/zscaler_zia/2.1.0/img/zscaler-zia-screenshot.png create mode 100755 packages/zscaler_zia/2.1.0/kibana/dashboard/zscaler_zia-66597790-4ded-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/dashboard/zscaler_zia-85380a00-4de3-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/dashboard/zscaler_zia-9447f5b0-4eaf-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/dashboard/zscaler_zia-d4977590-4de8-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/map/zscaler_zia-48a188a0-4de8-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-0334d8c0-4de4-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-05cc16a0-4eae-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-2958ae90-4de5-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-2c8eb9f0-4eae-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-35612ae0-4de6-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-3faec910-4ded-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-4d4b4fa0-4eae-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-4e583660-4deb-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-5b68c940-4eaf-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-5ebff250-4de5-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-63155460-4e82-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-652829d0-4eb9-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-68d16b80-4de4-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-6d29cc50-4de8-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-72169a60-4deb-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-7a0a40d0-4de3-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-8058c4e0-4eae-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-91813c00-4de8-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-9e6d2890-4deb-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-a536b890-4e80-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-a9ac0260-4de3-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-bcddbd40-4ead-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-bd00f230-4de8-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-c8b23580-4de3-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-da1734d0-4deb-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-db1241f0-4e80-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-dff0d0b0-4dea-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-e4f2aa20-4ead-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-e54e9f20-4de4-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/kibana/visualization/zscaler_zia-f5a2e730-4deb-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zia/2.1.0/manifest.yml create mode 100755 packages/zscaler_zpa/1.0.0/changelog.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/app_connector_status/agent/stream/tcp.yml.hbs create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/app_connector_status/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/app_connector_status/fields/agent.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/app_connector_status/fields/base-fields.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/app_connector_status/fields/ecs.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/app_connector_status/fields/fields.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/app_connector_status/manifest.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/app_connector_status/sample_event.json create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/audit/agent/stream/tcp.yml.hbs create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/audit/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/audit/fields/agent.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/audit/fields/base-fields.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/audit/fields/ecs.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/audit/fields/fields.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/audit/manifest.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/audit/sample_event.json create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/browser_access/agent/stream/tcp.yml.hbs create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/browser_access/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/browser_access/fields/agent.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/browser_access/fields/base-fields.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/browser_access/fields/ecs.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/browser_access/fields/fields.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/browser_access/manifest.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/browser_access/sample_event.json create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_activity/agent/stream/tcp.yml.hbs create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_activity/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_activity/fields/agent.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_activity/fields/base-fields.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_activity/fields/ecs.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_activity/fields/fields.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_activity/manifest.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_activity/sample_event.json create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_status/agent/stream/tcp.yml.hbs create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_status/elasticsearch/ingest_pipeline/default.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_status/fields/agent.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_status/fields/base-fields.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_status/fields/ecs.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_status/fields/fields.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_status/manifest.yml create mode 100755 packages/zscaler_zpa/1.0.0/data_stream/user_status/sample_event.json create mode 100755 packages/zscaler_zpa/1.0.0/docs/README.md create mode 100755 packages/zscaler_zpa/1.0.0/img/zscaler-logo.svg create mode 100755 packages/zscaler_zpa/1.0.0/img/zscaler-zpa-screenshot.png create mode 100755 packages/zscaler_zpa/1.0.0/kibana/dashboard/zscaler_zpa-26cc19c0-4c44-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/dashboard/zscaler_zpa-7511d7f0-4c49-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/dashboard/zscaler_zpa-fa3c3c00-4c57-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/dashboard/zscaler_zpa-fa5b1830-4c63-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/map/zscaler_zpa-1f09dc30-4c4f-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/map/zscaler_zpa-43836b20-4c55-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/map/zscaler_zpa-5a0f9320-4c44-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/map/zscaler_zpa-dff56dd0-4ce8-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/search/zscaler_zpa-d9d5e800-537b-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-17759700-4c5b-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-1b2c06c0-4eb5-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-1b5846e0-4c44-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-23d03780-4eb8-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-2fffbd90-4d29-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-4cf30750-4d0a-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-4ea78dd0-4c49-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-552331e0-4c4f-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-76176ed0-4c4e-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-82076ba0-4e74-11ec-ad09-d9f49962d407.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-860071f0-4c55-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-89a91550-4c5a-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-8ca8eb00-4c5e-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-9f334ef0-4c4f-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-b0fa5650-4c55-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-be0fc2e0-4c63-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-c8d009c0-4c4e-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-ccbe7ed0-4c4a-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-d0c885a0-4c5b-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-d124a2a0-4c4b-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-d8e44aa0-5992-11ec-b2d0-45019404f2e5.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-e86c2d90-4c49-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-f03d3c90-4c5c-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-f2e526e0-4c63-11ec-9023-a76a2cb41dcd.json create mode 100755 packages/zscaler_zpa/1.0.0/kibana/visualization/zscaler_zpa-fc5f4ea0-4ebe-11ec-9527-b704eaaa5c53.json create mode 100755 packages/zscaler_zpa/1.0.0/manifest.yml diff --git a/packages/akamai/1.0.0/changelog.yml b/packages/akamai/1.0.0/changelog.yml new file mode 100755 index 0000000000..d3b67a0c62 --- /dev/null +++ b/packages/akamai/1.0.0/changelog.yml @@ -0,0 +1,31 @@ +# newer versions go on top +- version: "1.0.0" + changes: + - description: Make GA + type: enhancement + link: https://github.com/elastic/integrations/pull/3428 +- version: "0.2.0" + changes: + - description: Update to ECS 8.2 + type: enhancement + link: https://github.com/elastic/integrations/pull/2778 +- version: "0.1.3" + changes: + - description: Fix typo in config template for ignoring host enrichment + type: bugfix + link: https://github.com/elastic/integrations/pull/3092 +- version: "0.1.2" + changes: + - description: Add documentation for multi-fields + type: enhancement + link: https://github.com/elastic/integrations/pull/2916 +- version: "0.1.1" + changes: + - description: Update to ECS 8.0 + type: enhancement + link: https://github.com/elastic/integrations/pull/2369 +- version: "0.1.0" + changes: + - description: initial release + type: enhancement # can be one of: enhancement, bugfix, breaking-change + link: https://github.com/elastic/integrations/pull/1643 diff --git a/packages/akamai/1.0.0/data_stream/siem/agent/stream/httpjson.yml.hbs b/packages/akamai/1.0.0/data_stream/siem/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..4efc3cf8ea --- /dev/null +++ b/packages/akamai/1.0.0/data_stream/siem/agent/stream/httpjson.yml.hbs @@ -0,0 +1,80 @@ +config_version: "2" +interval: {{interval}} +request.method: "GET" +request.url: "{{api_host}}/siem/v1/configs/{{config_ids}}" +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} +{{#if http_client_timeout}} +request.timeout: {{http_client_timeout}} +{{/if}} +{{#if proxy_url }} +request.proxy_url: {{proxy_url}} +{{/if}} +request.transforms: + - set: + target: url.params.from + value: "[[.cursor.last_execution_datetime]]" + default: '[[ (now (parseDuration "-{{initial_interval}}")).Unix ]]' + - set: + target: url.params.to + value: '[[ (now (parseDuration "-1m")).Unix ]]' + - set: + target: header.XTimestamp + value: '[[ formatDate (now) "20060102T15:04:05-0700" ]]' + - set: + target: header.XSignatureBase + value: '[[ sprintf "EG1-HMAC-SHA256 client_token=%s;access_token=%s;timestamp=%s;nonce=%s;" "{{client_token}}" "{{access_token}}" (.header.Get "XTimestamp") uuid ]]' + - set: + target: header.XSignatureKey + value: '[[ hmacBase64 "sha256" "{{client_secret}}" (.header.Get "XTimestamp") ]]' + - set: + target: header.XSignature + value: '[[ hmacBase64 "sha256" (.header.Get "XSignatureKey") "GET\t" .url.Scheme "\t" .url.Host "\t" .url.Path "?" .url.RawQuery "\t\t\t" (.header.Get "XSignatureBase") ]]' + - set: + target: header.Authorization + value: '[[ sprintf "%ssignature=%s" (.header.Get "XSignatureBase") (.header.Get "XSignature") ]]' + - delete: + target: header.XSignature + - delete: + target: header.XSignatureKey + - delete: + target: header.XSignatureBase + - delete: + target: header.XTimestamp + +response.decode_as: application/x-ndjson + +response.pagination: + - set: + target: url.params.offset + value: '[[ .last_event.offset ]]' + fail_on_template_error: true + - delete: + target: url.params.from + - delete: + target: url.params.to + +cursor: + last_execution_datetime: + value: '[[ (now (parseDuration "-1m")).Unix ]]' + +{{#if tags.length}} +tags: +{{else if preserve_original_event}} +tags: +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} + +{{#if processors}} +processors: +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/akamai/1.0.0/data_stream/siem/elasticsearch/ingest_pipeline/default.yml b/packages/akamai/1.0.0/data_stream/siem/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..004f5fcf3f --- /dev/null +++ b/packages/akamai/1.0.0/data_stream/siem/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,423 @@ +--- +description: Pipeline for parsing Akamai logs +processors: +- set: + field: ecs.version + value: '8.2.0' +- rename: + field: message + target_field: event.original +- json: + field: event.original + target_field: json +- drop: + if: 'ctx?.json?.offset != null' +- set: + field: observer.vendor + value: akamai +- set: + field: observer.type + value: proxy +- date: + field: json.httpMessage.start + formats: + - UNIX + timezone: UTC + target_field: "@timestamp" +- set: + field: "event.start" + copy_from: "@timestamp" +- rename: + field: json.httpMessage.status + target_field: http.response.status_code + ignore_missing: true +- convert: + field: http.response.status_code + type: long + ignore_missing: true +- rename: + field: json.httpMessage.bytes + target_field: http.response.bytes + ignore_missing: true +- convert: + field: http.response.bytes + type: long + ignore_missing: true +- rename: + field: json.httpMessage.requestId + target_field: http.request.id + ignore_missing: true +- set: + field: event.id + copy_from: http.request.id + ignore_empty_value: true +- fingerprint: + fields: + - http.request.id + target_field: "_id" + ignore_missing: true +- rename: + field: json.httpMessage.method + target_field: http.request.method + ignore_missing: true +- rename: + field: json.httpMessage.host + target_field: url.domain + ignore_missing: true +- urldecode: + field: json.httpMessage.path + target_field: url.path + ignore_missing: true +- urldecode: + field: json.httpMessage.query + target_field: url.query + ignore_missing: true +- rename: + field: json.httpMessage.port + target_field: url.port + ignore_missing: true +- convert: + field: url.port + type: long + ignore_missing: true +- urldecode: + field: json.httpMessage.responseHeaders + target_field: _tmp.response.headers + ignore_missing: true +- kv: + field: _tmp.response.headers + target_field: akamai.siem.response.headers + field_split: '\r\n' + value_split: ': ' + ignore_missing: true +- urldecode: + field: json.httpMessage.requestHeaders + target_field: _tmp.request.headers + ignore_missing: true +- kv: + field: _tmp.request.headers + target_field: akamai.siem.request.headers + field_split: '\r\n' + value_split: ': ' + ignore_missing: true +- script: + lang: painless + description: This script builds the `url.full` field out of the available `url.*` parts. + source: | + def full = ""; + if(ctx.url.scheme != null && ctx.url.scheme != "") { + full += ctx.url.scheme+"://"; + } + if(ctx.url.domain != null && ctx.url.domain != "") { + full += ctx.url.domain; + } + if(ctx.json.httpMessage.path != null && ctx.json.httpMessage.path != "") { + full += ctx.json.httpMessage.path; + } + if(ctx.json.httpMessage.query != null && ctx.json.httpMessage.query != "") { + full += "?"+ctx.json.httpMessage.query; + } + if(full != "") { + ctx.url.full = full + } +- dissect: + field: json.httpMessage.protocol + pattern: "%{network.protocol}/%{http.version}" + ignore_failure: true +- lowercase: + field: network.protocol + ignore_missing: true +- set: + field: network.transport + value: tcp + if: ctx?.network?.protocol != null && ctx?.network?.protocol == 'http' +- dissect: + field: json.httpMessage.tls + pattern: "%{tls.version_protocol}v%{tls.version}" + ignore_failure: true + ignore_missing: true +- lowercase: + field: tls.version_protocol + ignore_missing: true +- rename: + field: json.attackData.clientIP + target_field: source.address + ignore_missing: true +- convert: + field: source.address + target_field: source.ip + type: ip + ignore_missing: true + ignore_failure: true +- geoip: + field: source.ip + target_field: source.geo + ignore_missing: true +- rename: + field: json.geo.country + target_field: source.geo.country_iso_code + ignore_missing: true + if: ctx?.source?.geo?.country_iso_code == null +- set: + field: source.geo.region_iso_code + value: "{{json.geo.country}}-{{json.geo.regionCode}}" + ignore_empty_value: true + if: ctx?.source?.geo?.region_iso_code == null +- rename: + field: json.geo.city + target_field: source.geo.city_name + ignore_missing: true + if: ctx?.source?.geo?.city_name == null +- geoip: + database_file: GeoLite2-ASN.mmdb + field: source.ip + target_field: source.as + properties: + - asn + - organization_name + ignore_missing: true +- rename: + field: source.as.asn + target_field: source.as.number + ignore_missing: true +- convert: + field: json.geo.asn + target_field: source.as.number + type: long + ignore_missing: true + if: ctx?.source?.as?.number == null +- rename: + field: source.as.organization_name + target_field: source.as.organization.name + ignore_missing: true +## Attack Data +- urldecode: + field: json.attackData.ruleActions + target_field: json.attackData.ruleActions + ignore_missing: true +- split: + field: json.attackData.ruleActions + target_field: json.attackData.ruleActions + separator: ';' + preserve_trailing: true +- urldecode: + field: json.attackData.ruleData + target_field: json.attackData.ruleData + ignore_missing: true +- split: + field: json.attackData.ruleData + target_field: json.attackData.ruleData + separator: ';' + preserve_trailing: true +- urldecode: + field: json.attackData.ruleMessages + target_field: json.attackData.ruleMessages + ignore_missing: true +- split: + field: json.attackData.ruleMessages + target_field: json.attackData.ruleMessages + separator: ';' + preserve_trailing: true +- urldecode: + field: json.attackData.ruleSelectors + target_field: json.attackData.ruleSelectors + ignore_missing: true +- split: + field: json.attackData.ruleSelectors + target_field: json.attackData.ruleSelectors + separator: ';' + preserve_trailing: true +- urldecode: + field: json.attackData.ruleTags + target_field: json.attackData.ruleTags + ignore_missing: true +- split: + field: json.attackData.ruleTags + target_field: json.attackData.ruleTags + separator: ';' + preserve_trailing: true +- urldecode: + field: json.attackData.ruleVersions + target_field: json.attackData.ruleVersions + ignore_missing: true +- split: + field: json.attackData.ruleVersions + target_field: json.attackData.ruleVersions + separator: ';' + preserve_trailing: true +- urldecode: + field: json.attackData.rules + target_field: json.attackData.rules + ignore_missing: true +- split: + field: json.attackData.rules + target_field: json.attackData.rules + separator: ';' + preserve_trailing: true +- script: + lang: painless + description: Base64 Decode the json.attackData.rule* fields + source: | + ArrayList items = new ArrayList(["rules", "ruleActions", "ruleData", "ruleMessages", "ruleTags", "ruleSelectors", "ruleVersions"]); + ArrayList rules_array = new ArrayList(); + for (def i = 0; i < ctx.json.attackData.rules.length; i++) { + HashMap map = new HashMap(); + for (def j = 0; j < items.length; j++) { + String key = items[j]; + if (i < ctx.json.attackData[key].length ) { + String value = ctx.json.attackData[key][i].replace(" ", "").decodeBase64(); + map.put(key, value); + } + } + rules_array.add(map); + } + ctx.akamai.siem.rules = rules_array; +- rename: + field: json.attackData.configId + target_field: akamai.siem.config_id + ignore_missing: true +- rename: + field: json.attackData.policyId + target_field: akamai.siem.policy_id + ignore_missing: true +- rename: + field: json.attackData.policyId + target_field: akamai.siem.policy_id + ignore_missing: true +- rename: + field: json.attackData.slowPostAction + target_field: akamai.siem.slow_post_action + ignore_missing: true +- convert: + field: json.attackData.slowPostRate + target_field: akamai.siem.slow_post_rate + type: long + ignore_missing: true +- rename: + field: json.attackData.clientReputation + target_field: akamai.siem.client_reputation + ignore_missing: true +- rename: + field: json.attackData.clientReputation + target_field: akamai.siem.client_reputation + ignore_missing: true +## Bot Data +- convert: + field: json.botData.botScore + target_field: akamai.siem.bot.score + type: long + ignore_missing: true +- convert: + field: json.botData.responseSegment + target_field: akamai.siem.bot.response_segment + type: long + ignore_missing: true +## Client Data +- rename: + field: json.clientData.appBundleId + target_field: akamai.siem.client_data.app_bundle_id + ignore_missing: true +- rename: + field: json.clientData.appVersion + target_field: akamai.siem.client_data.app_version + ignore_missing: true +- convert: + field: json.clientData.telemetryType + target_field: akamai.siem.client_data.telemetry_type + type: long + ignore_missing: true +- rename: + field: json.clientData.sdkVersion + target_field: akamai.siem.client_data.sdk_version + ignore_missing: true +## User Risk Data +- rename: + field: json.userRiskData.uuid + target_field: akamai.siem.user_risk.uuid + ignore_missing: true +- convert: + field: json.userRiskData.status + target_field: akamai.siem.user_risk.status + type: long + ignore_missing: true +- convert: + field: json.userRiskData.score + target_field: akamai.siem.user_risk.score + type: long + ignore_missing: true +- convert: + field: json.userRiskData.allow + target_field: akamai.siem.user_risk.allow + type: long + ignore_missing: true +- kv: + field: json.userRiskData.risk + target_field: akamai.siem.user_risk.risk + field_split: '\|' + value_split: ':' + ignore_missing: true +- kv: + field: json.userRiskData.trust + target_field: akamai.siem.user_risk.trust + field_split: '\|' + value_split: ':' + ignore_missing: true +- kv: + field: json.userRiskData.general + target_field: akamai.siem.user_risk.general + field_split: '\|' + value_split: ':' + ignore_missing: true +## +- append: + field: related.ip + value: "{{source.ip}}" + allow_duplicates: false +- set: + field: client + copy_from: source +- set: + field: event.category + value: network +- set: + field: event.kind + value: event +- remove: + field: + - json + - _tmp + ignore_missing: true +- remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + ignore_missing: true +- script: + lang: painless + description: This script processor iterates over the whole document to remove fields with null values. + source: | + void handleMap(Map map) { + for (def x : map.values()) { + if (x instanceof Map) { + handleMap(x); + } else if (x instanceof List) { + handleList(x); + } + } + map.values().removeIf(v -> v == null || v == '' || (v instanceof Map && v.size() == 0) || (v instanceof List && v.size() == 0)); + } + void handleList(List list) { + for (def x : list) { + if (x instanceof Map) { + handleMap(x); + } else if (x instanceof List) { + handleList(x); + } + } + list.removeIf(v -> v == null || v == '' || (v instanceof Map && v.size() == 0) || (v instanceof List && v.size() == 0)); + } + handleMap(ctx); +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/akamai/1.0.0/data_stream/siem/fields/agent.yml b/packages/akamai/1.0.0/data_stream/siem/fields/agent.yml new file mode 100755 index 0000000000..4d9a6f7b36 --- /dev/null +++ b/packages/akamai/1.0.0/data_stream/siem/fields/agent.yml @@ -0,0 +1,114 @@ +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/akamai/1.0.0/data_stream/siem/fields/base-fields.yml b/packages/akamai/1.0.0/data_stream/siem/fields/base-fields.yml new file mode 100755 index 0000000000..90bd5c6753 --- /dev/null +++ b/packages/akamai/1.0.0/data_stream/siem/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset name. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: event.module + type: constant_keyword + description: Event module + value: akamai +- name: event.dataset + type: constant_keyword + description: Event dataset + value: akamai.siem +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/akamai/1.0.0/data_stream/siem/fields/beats.yml b/packages/akamai/1.0.0/data_stream/siem/fields/beats.yml new file mode 100755 index 0000000000..cb44bb2944 --- /dev/null +++ b/packages/akamai/1.0.0/data_stream/siem/fields/beats.yml @@ -0,0 +1,12 @@ +- name: input.type + type: keyword + description: Type of Filebeat input. +- name: log.flags + type: keyword + description: Flags for the log file. +- name: log.offset + type: long + description: Offset of the entry in the log file. +- name: log.file.path + type: keyword + description: Path to the log file. diff --git a/packages/akamai/1.0.0/data_stream/siem/fields/ecs.yml b/packages/akamai/1.0.0/data_stream/siem/fields/ecs.yml new file mode 100755 index 0000000000..61cbacbed0 --- /dev/null +++ b/packages/akamai/1.0.0/data_stream/siem/fields/ecs.yml @@ -0,0 +1,264 @@ +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: client.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: client.as.organization.name + type: keyword +- description: |- + The domain name of the client system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: client.domain + type: keyword +- description: City name. + name: client.geo.city_name + type: keyword +- description: Country name. + name: client.geo.country_name + type: keyword +- description: Country ISO code. + name: client.geo.country_iso_code + type: keyword +- description: Name of the continent. + name: client.geo.continent_name + type: keyword +- description: Country ISO code. + name: client.geo.country_iso_code + type: keyword +- description: Region ISO code. + name: client.geo.region_iso_code + type: keyword +- description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + name: client.geo.location + type: geo_point +- description: Region name. + name: client.geo.region_name + type: keyword +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: |- + Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: client.address + type: keyword +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: Port of the client. + name: client.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: Error message. + name: error.message + type: match_only_text +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Timestamp when an event arrived in the central data store. + This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. + In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` < `event.created` < `event.ingested`. + name: event.ingested + type: date +- description: |- + event.created contains the date/time when the event was first read by an agent, or by your pipeline. + This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. + In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. + In case the two timestamps are identical, @timestamp should be used. + name: event.created + type: date +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. + `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. + Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. + Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. + Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. + name: event.outcome + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: |- + Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: source.address + type: keyword +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: source.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: source.as.organization.name + type: keyword +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: |- + The domain name of the source system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: source.domain + type: keyword +- description: City name. + name: source.geo.city_name + type: keyword +- description: Name of the continent. + name: source.geo.continent_name + type: keyword +- description: Country ISO code. + name: source.geo.country_iso_code + type: keyword +- description: Country name. + name: source.geo.country_name + type: keyword +- description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + name: source.geo.location + type: geo_point +- description: |- + User-defined description of a location, at the level of granularity they care about. + Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. + Not typically used in automated geolocation. + name: source.geo.name + type: keyword +- description: Region ISO code. + name: source.geo.region_iso_code + type: keyword +- description: Region name. + name: source.geo.region_name + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Domain of the url, such as "www.elastic.co". + In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. + name: url.domain + type: keyword +- description: Password of the request. + name: url.password + type: keyword +- description: Port of the request, such as 443. + name: url.port + type: long +- description: Username of the request. + name: url.username + type: keyword +- description: Path of the request, such as "/search". + name: url.path + type: wildcard +- description: |- + The query field describes the query string of the request, such as "q=elasticsearch". + The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. + name: url.query + type: keyword +- description: |- + The field contains the file extension from the original request url, excluding the leading dot. + The file extension is only set if it exists, as not every url has a file extension. + The leading period must not be included. For example, the value must be "png", not ".png". + Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). + name: url.extension + type: keyword +- description: |- + Scheme of the request, such as "https". + Note: The `:` is not part of the scheme. + name: url.scheme + type: keyword +- description: If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. + multi_fields: + - name: text + type: match_only_text + name: url.full + type: wildcard +- description: String indicating the cipher used during the current connection. + name: tls.cipher + type: keyword +- description: Numeric part of the version parsed from the original string. + name: tls.version + type: keyword +- description: Normalized lowercase protocol name parsed from original string. + name: tls.version_protocol + type: keyword +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: HTTP response status code. + name: http.response.status_code + type: long +- description: Total size in bytes of the response (body and headers). + name: http.response.bytes + type: long +- description: |- + HTTP request method. + The value should retain its casing from the original event. For example, `GET`, `get`, and `GeT` are all considered valid values for this field. + name: http.request.method + type: keyword +- description: |- + A unique identifier for each HTTP request to correlate logs between clients and servers in transactions. + The id may be contained in a non-standard HTTP header, such as `X-Request-ID` or `X-Correlation-ID`. + name: http.request.id + type: keyword +- description: HTTP version. + name: http.version + type: keyword +- description: |- + The type of the observer the data is coming from. + There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. + name: observer.type + type: keyword +- description: Vendor name of the observer. + name: observer.vendor + type: keyword diff --git a/packages/akamai/1.0.0/data_stream/siem/fields/fields.yml b/packages/akamai/1.0.0/data_stream/siem/fields/fields.yml new file mode 100755 index 0000000000..faa4f435cb --- /dev/null +++ b/packages/akamai/1.0.0/data_stream/siem/fields/fields.yml @@ -0,0 +1,110 @@ +- name: akamai.siem + type: group + release: beta + default_field: false + description: > + Fields for Akamai SIEM Logs + + fields: + - name: response.headers + type: flattened + description: > + HTTP response headers + + - name: request.headers + type: flattened + description: > + HTTP Request headers + + - name: rules + type: nested + description: > + Rules triggered by this request + + - name: config_id + type: keyword + description: > + ID of the Security Configuration applied to the request. + + - name: policy_id + type: keyword + description: > + ID of the Firewall policy applied to the request. + + - name: slow_post_action + type: keyword + description: > + Action taken if a Slow POST attack is detected: W for Warn or A for deny (abort). + + - name: slow_post_rate + type: long + description: > + Recorded rate of a detected Slow POST attack. + + - name: client_reputation + type: keyword + description: > + Client IP scores for Client Reputation. + + - name: bot.score + type: long + description: > + Score assigned to the request by Botman Manager. + + - name: bot.response_segment + type: long + description: > + Numeric response segment indicator. Segments are used to group and categorize bot scores. + + - name: client_data.app_bundle_id + type: keyword + description: > + Unique identifier of the app bundle. An app bundle contains both the software itself and the accompanying configuration information. + + - name: client_data.app_version + type: keyword + description: > + Version number of the app. + + - name: client_data.telemetry_type + type: long + description: > + Specifies the telemetry type in use. + + - name: client_data.sdk_version + type: keyword + description: > + SDK version + + - name: user_risk.uuid + type: keyword + description: > + Unique identifier of the user whose risk data is being provided. + + - name: user_risk.status + type: long + description: "Status code indicating any errors that might have occurred when calculating the risk score. \n" + - name: user_risk.score + type: long + description: > + Calculated risk scores. Scores range from 0 (no risk) to 100 (the highest possible risk). + + - name: user_risk.risk + type: flattened + description: > + Indicators that increased the calculated risk score. For example, the value udfp represents the risk of the device fingerprint based on the user's behavioral profile. + + - name: user_risk.trust + type: flattened + description: > + Indicators that were trusted. For example, the value ugp indicates that the user’s country or area is trusted. + + - name: user_risk.general + type: flattened + description: > + Indicators of general behavior observed for relevant attributes. For example, duc_1h represents the number of users recorded on a specific device in the past hour. + + - name: user_risk.allow + type: long + description: >- + Indicates whether the user is on the allow list. A 0 indicates that the user was not on the list; a 1 indicates that the user was on the list. diff --git a/packages/akamai/1.0.0/data_stream/siem/manifest.yml b/packages/akamai/1.0.0/data_stream/siem/manifest.yml new file mode 100755 index 0000000000..9d00eada89 --- /dev/null +++ b/packages/akamai/1.0.0/data_stream/siem/manifest.yml @@ -0,0 +1,105 @@ +type: logs +title: Akamai SIEM Logs +release: experimental +streams: + - input: httpjson + vars: + - name: api_host + type: text + title: API Host + description: API Hostname in the form of http(s)://akzz-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.luna.akamaiapis.net without path + multi: false + required: true + show_user: true + default: https://akzz-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.luna.akamaiapis.net + - name: client_token + type: text + title: Client Token + description: Client token provided by "Credentials" ui + multi: false + required: true + show_user: true + - name: client_secret + type: password + title: Client Secret + description: Client secret provided by "Credentials" ui + multi: false + required: true + show_user: true + - name: access_token + type: password + title: Access Token + description: Access token provided by "Authorizations" ui + multi: false + required: true + show_user: true + - name: config_ids + type: text + title: Zone ID + multi: false + required: true + show_user: true + description: Unique identifier for each security configuration. To report on more than one configuration, separate integer identifiers with semicolons. ex. 12892;29182;82912 + - name: http_client_timeout + type: text + title: HTTP Client Timeout + multi: false + required: false + show_user: true + default: 60s + - name: interval + type: text + title: Interval + multi: false + required: true + show_user: true + description: Interval at which the logs will be pulled. The value must be between 2m and 1h. + default: 1h + - name: initial_interval + type: text + title: Initial Interval + multi: false + required: true + show_user: true + default: 24h + description: Initial interval to poll for events. Default is 24 hours. + - name: proxy_url + type: text + title: Proxy URL + multi: false + required: false + show_user: false + description: URL to proxy connections in the form of http[s]://:@: + - name: ssl + type: yaml + title: SSL + multi: false + required: false + show_user: false + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: true + default: + - akamai-siem + - forwarded + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original` + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: "Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. \nThis executes in the agent before the logs are parsed. \nSee [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details.\n" + template_path: httpjson.yml.hbs + title: Akamai SIEM logs + description: Collect Akamai logs via the SIEM API diff --git a/packages/akamai/1.0.0/data_stream/siem/sample_event.json b/packages/akamai/1.0.0/data_stream/siem/sample_event.json new file mode 100755 index 0000000000..3a25038b37 --- /dev/null +++ b/packages/akamai/1.0.0/data_stream/siem/sample_event.json @@ -0,0 +1,188 @@ +{ + "@timestamp": "2016-08-11T13:45:33.026Z", + "agent": { + "ephemeral_id": "713a6a71-c1f5-4984-9283-20611786e6d3", + "id": "82d0dfd8-3946-4ac0-a092-a9146a71e3f7", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.0.0-beta1" + }, + "akamai": { + "siem": { + "bot": { + "response_segment": 3, + "score": 100 + }, + "client_data": { + "app_bundle_id": "com.mydomain.myapp", + "app_version": "1.23", + "sdk_version": "4.7.1", + "telemetry_type": 2 + }, + "config_id": "6724", + "policy_id": "scoe_5426", + "request": { + "headers": { + "Accept": "text/html,application/xhtml xml", + "User-Agent": "BOT/0.1 (BOT for JCE)" + } + }, + "response": { + "headers": { + "Content-Type": "text/html", + "Mime-Version": "1.0", + "Server": "AkamaiGHost" + } + }, + "rules": [ + { + "ruleActions": "ALERT", + "ruleData": "alert(", + "ruleMessages": "Cross-site Scripting (XSS) Attack", + "ruleSelectors": "ARGS:a", + "ruleTags": "WEB_ATTACK/XSS", + "rules": "950004" + }, + { + "ruleActions": "DENY", + "ruleData": "curl", + "ruleMessages": "Request Indicates an automated program explored the site", + "ruleSelectors": "REQUEST_HEADERS:User-Agent", + "ruleTags": "AUTOMATION/MISC", + "rules": "990011" + } + ], + "user_risk": { + "allow": 0, + "general": { + "duc_1d": "30", + "duc_1h": "10" + }, + "risk": { + "udfp": "1325gdg4g4343g/M", + "unp": "74256/H" + }, + "score": 75, + "status": 0, + "trust": { + "ugp": "US" + }, + "uuid": "964d54b7-0821-413a-a4d6-8131770ec8d5" + } + } + }, + "client": { + "address": "89.160.20.156", + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.156" + }, + "data_stream": { + "dataset": "akamai.siem", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "82d0dfd8-3946-4ac0-a092-a9146a71e3f7", + "snapshot": false, + "version": "8.0.0-beta1" + }, + "event": { + "agent_id_status": "verified", + "category": "network", + "created": "2021-12-24T00:19:04.410Z", + "dataset": "akamai.siem", + "id": "2ab418ac8515f33", + "ingested": "2021-12-24T00:19:05Z", + "kind": "event", + "original": "{\"attackData\":{\"clientIP\":\"89.160.20.156\",\"configId\":\"6724\",\"policyId\":\"scoe_5426\",\"ruleActions\":\"QUxFUlQ;REVOWQ==\",\"ruleData\":\"YWxlcnQo;Y3VybA==\",\"ruleMessages\":\"Q3Jvc3Mtc2l0ZSBTY3 JpcHRpbmcgKFhTUykgQXR0YWNr; UmVxdWVzdCBJbmRpY2F0ZXMgYW4 gYXV0b21hdGVkIHByb2 dyYW0gZXhwbG9yZWQgdGhlIHNpdGU=\",\"ruleSelectors\":\"QVJHUzph;UkVRVUVTVF9IRU FERVJTOlVzZXItQWdlbnQ=\",\"ruleTags\":\"V0VCX0FUVEFDSy9YU1M=;QV VUT01BVElPTi9NSVND\",\"ruleVersions\":\";\",\"rules\":\"OTUwMDA0;OTkwMDEx\"},\"botData\":{\"botScore\":\"100\",\"responseSegment\":\"3\"},\"clientData\":{\"appBundleId\":\"com.mydomain.myapp\",\"appVersion\":\"1.23\",\"sdkVersion\":\"4.7.1\",\"telemetryType\":\"2\"},\"format\":\"json\",\"geo\":{\"asn\":\"12271\",\"city\":\"NEWYORK\",\"continent\":\"NA\",\"country\":\"US\",\"regionCode\":\"NY\"},\"httpMessage\":{\"bytes\":\"34523\",\"host\":\"www.example.com\",\"method\":\"POST\",\"path\":\"/examples/1/\",\"port\":\"80\",\"protocol\":\"http/2\",\"query\":\"a%3D..%2F..%2F..%2Fetc%2Fpasswd\",\"requestHeaders\":\"User-Agent%3a%20BOT%2f0.1%20(BOT%20for%20JCE)%0d%0aAccept%3a%20text%2fhtml,application%2fxhtml+xml\",\"requestId\":\"2ab418ac8515f33\",\"responseHeaders\":\"Server%3a%20AkamaiGHost%0d%0aMime-Version%3a%201.0%0d%0aContent-Type%3a%20text%2fhtml\",\"start\":\"1470923133.026\",\"status\":\"301\",\"tls\":\"TLSv1.2\"},\"type\":\"akamai_siem\",\"userRiskData\":{\"allow\":\"0\",\"general\":\"duc_1h:10|duc_1d:30\",\"risk\":\"udfp:1325gdg4g4343g/M|unp:74256/H\",\"score\":\"75\",\"status\":\"0\",\"trust\":\"ugp:US\",\"uuid\":\"964d54b7-0821-413a-a4d6-8131770ec8d5\"},\"version\":\"1.0\"}", + "start": "2016-08-11T13:45:33.026Z" + }, + "host": { + "name": "docker-fleet-agent" + }, + "http": { + "request": { + "id": "2ab418ac8515f33", + "method": "POST" + }, + "response": { + "bytes": 34523, + "status_code": 301 + }, + "version": "2" + }, + "input": { + "type": "httpjson" + }, + "network": { + "protocol": "http", + "transport": "tcp" + }, + "observer": { + "type": "proxy", + "vendor": "akamai" + }, + "related": { + "ip": [ + "89.160.20.156" + ] + }, + "source": { + "address": "89.160.20.156", + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.156" + }, + "tags": [ + "akamai-siem", + "forwarded", + "preserve_original_event" + ], + "tls": { + "version": "1.2", + "version_protocol": "tls" + }, + "url": { + "domain": "www.example.com", + "full": "www.example.com/examples/1/?a%3D..%2F..%2F..%2Fetc%2Fpasswd", + "path": "/examples/1/", + "port": 80, + "query": "a=../../../etc/passwd" + } +} \ No newline at end of file diff --git a/packages/akamai/1.0.0/docs/README.md b/packages/akamai/1.0.0/docs/README.md new file mode 100755 index 0000000000..8943c6993a --- /dev/null +++ b/packages/akamai/1.0.0/docs/README.md @@ -0,0 +1,326 @@ +# Akamai Integration + +The Akamai integration collects events from the Akamai API, specifically reading from the [Akamai SIEM API](https://techdocs.akamai.com/siem-integration/reference/api). + +## Logs + +### SIEM + +The Security Information and Event Management API allows you to capture security events generated on the ​Akamai​ platform in your SIEM application. + +Use this API to get security event data generated on the ​Akamai​ platform and correlate it with data from other sources in your SIEM solution. Capture security event data incrementally, or replay missed security events from the past 12 hours. You can store, query, and analyze the data delivered through this API on your end, then go back and adjust your Akamai security settings. If you’re coding your own SIEM connector, it needs to adhere to these specifications in order to pull in security events from Akamai Security Events Collector (ASEC) and process them properly. + +See https://techdocs.akamai.com/siem-integration/reference/api-get-started to setup your Akamai account and obtain your credentials + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| akamai.siem.bot.response_segment | Numeric response segment indicator. Segments are used to group and categorize bot scores. | long | +| akamai.siem.bot.score | Score assigned to the request by Botman Manager. | long | +| akamai.siem.client_data.app_bundle_id | Unique identifier of the app bundle. An app bundle contains both the software itself and the accompanying configuration information. | keyword | +| akamai.siem.client_data.app_version | Version number of the app. | keyword | +| akamai.siem.client_data.sdk_version | SDK version | keyword | +| akamai.siem.client_data.telemetry_type | Specifies the telemetry type in use. | long | +| akamai.siem.client_reputation | Client IP scores for Client Reputation. | keyword | +| akamai.siem.config_id | ID of the Security Configuration applied to the request. | keyword | +| akamai.siem.policy_id | ID of the Firewall policy applied to the request. | keyword | +| akamai.siem.request.headers | HTTP Request headers | flattened | +| akamai.siem.response.headers | HTTP response headers | flattened | +| akamai.siem.rules | Rules triggered by this request | nested | +| akamai.siem.slow_post_action | Action taken if a Slow POST attack is detected: W for Warn or A for deny (abort). | keyword | +| akamai.siem.slow_post_rate | Recorded rate of a detected Slow POST attack. | long | +| akamai.siem.user_risk.allow | Indicates whether the user is on the allow list. A 0 indicates that the user was not on the list; a 1 indicates that the user was on the list. | long | +| akamai.siem.user_risk.general | Indicators of general behavior observed for relevant attributes. For example, duc_1h represents the number of users recorded on a specific device in the past hour. | flattened | +| akamai.siem.user_risk.risk | Indicators that increased the calculated risk score. For example, the value udfp represents the risk of the device fingerprint based on the user's behavioral profile. | flattened | +| akamai.siem.user_risk.score | Calculated risk scores. Scores range from 0 (no risk) to 100 (the highest possible risk). | long | +| akamai.siem.user_risk.status | Status code indicating any errors that might have occurred when calculating the risk score. | long | +| akamai.siem.user_risk.trust | Indicators that were trusted. For example, the value ugp indicates that the user’s country or area is trusted. | flattened | +| akamai.siem.user_risk.uuid | Unique identifier of the user whose risk data is being provided. | keyword | +| client.address | Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| client.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| client.as.organization.name | Organization name. | keyword | +| client.as.organization.name.text | Multi-field of `client.as.organization.name`. | match_only_text | +| client.bytes | Bytes sent from the client to the server. | long | +| client.domain | The domain name of the client system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| client.geo.city_name | City name. | keyword | +| client.geo.continent_name | Name of the continent. | keyword | +| client.geo.country_iso_code | Country ISO code. | keyword | +| client.geo.country_name | Country name. | keyword | +| client.geo.location | Longitude and latitude. | geo_point | +| client.geo.region_iso_code | Region ISO code. | keyword | +| client.geo.region_name | Region name. | keyword | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| data_stream.dataset | Data stream dataset name. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| error.message | Error message. | match_only_text | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.dataset | Event dataset | constant_keyword | +| event.ingested | Timestamp when an event arrived in the central data store. This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` \< `event.created` \< `event.ingested`. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.outcome | This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| http.request.id | A unique identifier for each HTTP request to correlate logs between clients and servers in transactions. The id may be contained in a non-standard HTTP header, such as `X-Request-ID` or `X-Correlation-ID`. | keyword | +| http.request.method | HTTP request method. The value should retain its casing from the original event. For example, `GET`, `get`, and `GeT` are all considered valid values for this field. | keyword | +| http.response.bytes | Total size in bytes of the response (body and headers). | long | +| http.response.status_code | HTTP response status code. | long | +| http.version | HTTP version. | keyword | +| input.type | Type of Filebeat input. | keyword | +| log.file.path | Path to the log file. | keyword | +| log.flags | Flags for the log file. | keyword | +| log.offset | Offset of the entry in the log file. | long | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| observer.type | The type of the observer the data is coming from. There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. | keyword | +| observer.vendor | Vendor name of the observer. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| source.address | Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| source.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| source.as.organization.name | Organization name. | keyword | +| source.as.organization.name.text | Multi-field of `source.as.organization.name`. | match_only_text | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.domain | The domain name of the source system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| source.geo.city_name | City name. | keyword | +| source.geo.continent_name | Name of the continent. | keyword | +| source.geo.country_iso_code | Country ISO code. | keyword | +| source.geo.country_name | Country name. | keyword | +| source.geo.location | Longitude and latitude. | geo_point | +| source.geo.name | User-defined description of a location, at the level of granularity they care about. Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. Not typically used in automated geolocation. | keyword | +| source.geo.region_iso_code | Region ISO code. | keyword | +| source.geo.region_name | Region name. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| tags | List of keywords used to tag each event. | keyword | +| tls.cipher | String indicating the cipher used during the current connection. | keyword | +| tls.version | Numeric part of the version parsed from the original string. | keyword | +| tls.version_protocol | Normalized lowercase protocol name parsed from original string. | keyword | +| url.domain | Domain of the url, such as "www.elastic.co". In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. | keyword | +| url.extension | The field contains the file extension from the original request url, excluding the leading dot. The file extension is only set if it exists, as not every url has a file extension. The leading period must not be included. For example, the value must be "png", not ".png". Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). | keyword | +| url.full | If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. | wildcard | +| url.full.text | Multi-field of `url.full`. | match_only_text | +| url.password | Password of the request. | keyword | +| url.path | Path of the request, such as "/search". | wildcard | +| url.port | Port of the request, such as 443. | long | +| url.query | The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. | keyword | +| url.scheme | Scheme of the request, such as "https". Note: The `:` is not part of the scheme. | keyword | +| url.username | Username of the request. | keyword | + + +An example event for `siem` looks as following: + +```json +{ + "@timestamp": "2016-08-11T13:45:33.026Z", + "agent": { + "ephemeral_id": "713a6a71-c1f5-4984-9283-20611786e6d3", + "id": "82d0dfd8-3946-4ac0-a092-a9146a71e3f7", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.0.0-beta1" + }, + "akamai": { + "siem": { + "bot": { + "response_segment": 3, + "score": 100 + }, + "client_data": { + "app_bundle_id": "com.mydomain.myapp", + "app_version": "1.23", + "sdk_version": "4.7.1", + "telemetry_type": 2 + }, + "config_id": "6724", + "policy_id": "scoe_5426", + "request": { + "headers": { + "Accept": "text/html,application/xhtml xml", + "User-Agent": "BOT/0.1 (BOT for JCE)" + } + }, + "response": { + "headers": { + "Content-Type": "text/html", + "Mime-Version": "1.0", + "Server": "AkamaiGHost" + } + }, + "rules": [ + { + "ruleActions": "ALERT", + "ruleData": "alert(", + "ruleMessages": "Cross-site Scripting (XSS) Attack", + "ruleSelectors": "ARGS:a", + "ruleTags": "WEB_ATTACK/XSS", + "rules": "950004" + }, + { + "ruleActions": "DENY", + "ruleData": "curl", + "ruleMessages": "Request Indicates an automated program explored the site", + "ruleSelectors": "REQUEST_HEADERS:User-Agent", + "ruleTags": "AUTOMATION/MISC", + "rules": "990011" + } + ], + "user_risk": { + "allow": 0, + "general": { + "duc_1d": "30", + "duc_1h": "10" + }, + "risk": { + "udfp": "1325gdg4g4343g/M", + "unp": "74256/H" + }, + "score": 75, + "status": 0, + "trust": { + "ugp": "US" + }, + "uuid": "964d54b7-0821-413a-a4d6-8131770ec8d5" + } + } + }, + "client": { + "address": "89.160.20.156", + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.156" + }, + "data_stream": { + "dataset": "akamai.siem", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "82d0dfd8-3946-4ac0-a092-a9146a71e3f7", + "snapshot": false, + "version": "8.0.0-beta1" + }, + "event": { + "agent_id_status": "verified", + "category": "network", + "created": "2021-12-24T00:19:04.410Z", + "dataset": "akamai.siem", + "id": "2ab418ac8515f33", + "ingested": "2021-12-24T00:19:05Z", + "kind": "event", + "original": "{\"attackData\":{\"clientIP\":\"89.160.20.156\",\"configId\":\"6724\",\"policyId\":\"scoe_5426\",\"ruleActions\":\"QUxFUlQ;REVOWQ==\",\"ruleData\":\"YWxlcnQo;Y3VybA==\",\"ruleMessages\":\"Q3Jvc3Mtc2l0ZSBTY3 JpcHRpbmcgKFhTUykgQXR0YWNr; UmVxdWVzdCBJbmRpY2F0ZXMgYW4 gYXV0b21hdGVkIHByb2 dyYW0gZXhwbG9yZWQgdGhlIHNpdGU=\",\"ruleSelectors\":\"QVJHUzph;UkVRVUVTVF9IRU FERVJTOlVzZXItQWdlbnQ=\",\"ruleTags\":\"V0VCX0FUVEFDSy9YU1M=;QV VUT01BVElPTi9NSVND\",\"ruleVersions\":\";\",\"rules\":\"OTUwMDA0;OTkwMDEx\"},\"botData\":{\"botScore\":\"100\",\"responseSegment\":\"3\"},\"clientData\":{\"appBundleId\":\"com.mydomain.myapp\",\"appVersion\":\"1.23\",\"sdkVersion\":\"4.7.1\",\"telemetryType\":\"2\"},\"format\":\"json\",\"geo\":{\"asn\":\"12271\",\"city\":\"NEWYORK\",\"continent\":\"NA\",\"country\":\"US\",\"regionCode\":\"NY\"},\"httpMessage\":{\"bytes\":\"34523\",\"host\":\"www.example.com\",\"method\":\"POST\",\"path\":\"/examples/1/\",\"port\":\"80\",\"protocol\":\"http/2\",\"query\":\"a%3D..%2F..%2F..%2Fetc%2Fpasswd\",\"requestHeaders\":\"User-Agent%3a%20BOT%2f0.1%20(BOT%20for%20JCE)%0d%0aAccept%3a%20text%2fhtml,application%2fxhtml+xml\",\"requestId\":\"2ab418ac8515f33\",\"responseHeaders\":\"Server%3a%20AkamaiGHost%0d%0aMime-Version%3a%201.0%0d%0aContent-Type%3a%20text%2fhtml\",\"start\":\"1470923133.026\",\"status\":\"301\",\"tls\":\"TLSv1.2\"},\"type\":\"akamai_siem\",\"userRiskData\":{\"allow\":\"0\",\"general\":\"duc_1h:10|duc_1d:30\",\"risk\":\"udfp:1325gdg4g4343g/M|unp:74256/H\",\"score\":\"75\",\"status\":\"0\",\"trust\":\"ugp:US\",\"uuid\":\"964d54b7-0821-413a-a4d6-8131770ec8d5\"},\"version\":\"1.0\"}", + "start": "2016-08-11T13:45:33.026Z" + }, + "host": { + "name": "docker-fleet-agent" + }, + "http": { + "request": { + "id": "2ab418ac8515f33", + "method": "POST" + }, + "response": { + "bytes": 34523, + "status_code": 301 + }, + "version": "2" + }, + "input": { + "type": "httpjson" + }, + "network": { + "protocol": "http", + "transport": "tcp" + }, + "observer": { + "type": "proxy", + "vendor": "akamai" + }, + "related": { + "ip": [ + "89.160.20.156" + ] + }, + "source": { + "address": "89.160.20.156", + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.156" + }, + "tags": [ + "akamai-siem", + "forwarded", + "preserve_original_event" + ], + "tls": { + "version": "1.2", + "version_protocol": "tls" + }, + "url": { + "domain": "www.example.com", + "full": "www.example.com/examples/1/?a%3D..%2F..%2F..%2Fetc%2Fpasswd", + "path": "/examples/1/", + "port": 80, + "query": "a=../../../etc/passwd" + } +} +``` \ No newline at end of file diff --git a/packages/akamai/1.0.0/img/akamai_logo.svg b/packages/akamai/1.0.0/img/akamai_logo.svg new file mode 100755 index 0000000000..78cf6ad7e3 --- /dev/null +++ b/packages/akamai/1.0.0/img/akamai_logo.svg @@ -0,0 +1,151 @@ + + + +image/svg+xml \ No newline at end of file diff --git a/packages/akamai/1.0.0/manifest.yml b/packages/akamai/1.0.0/manifest.yml new file mode 100755 index 0000000000..0f83a79779 --- /dev/null +++ b/packages/akamai/1.0.0/manifest.yml @@ -0,0 +1,26 @@ +name: akamai +title: Akamai +version: 1.0.0 +release: ga +description: Akamai Integration +type: integration +format_version: 1.0.0 +license: basic +categories: [security, network, web, cloud] +conditions: + kibana.version: "^7.16.0 || ^8.0.0" +icons: + - src: /img/akamai_logo.svg + title: Akamai + size: 409×167 + type: image/svg+xml +policy_templates: + - name: akamai + title: Akamai logs + description: Collect SIEM logs from Akamai + inputs: + - type: httpjson + title: "Collect Akamai SIEM logs via API" + description: "Collecting SIEM logs from Akamai via API" +owner: + github: elastic/security-external-integrations diff --git a/packages/auth0/1.0.0/changelog.yml b/packages/auth0/1.0.0/changelog.yml new file mode 100755 index 0000000000..efcc0a7517 --- /dev/null +++ b/packages/auth0/1.0.0/changelog.yml @@ -0,0 +1,31 @@ +# newer versions go on top +- version: "1.0.0" + changes: + - description: Make GA + type: enhancement + link: https://github.com/elastic/integrations/pull/3428 +- version: "0.1.4" + changes: + - description: Update Readme + type: enhancement + link: https://github.com/elastic/integrations/pull/3065 +- version: "0.1.3" + changes: + - description: Add documentation for multi-fields + type: enhancement + link: https://github.com/elastic/integrations/pull/2916 +- version: "0.1.2" + changes: + - description: Fix documentation bug + type: bugfix + link: https://github.com/elastic/integrations/pull/2761 +- version: "0.1.1" + changes: + - description: Update Auth0 logo image + type: bugfix + link: https://github.com/elastic/integrations/pull/2749 +- version: "0.1.0" + changes: + - description: Initial commit + type: enhancement + link: https://github.com/elastic/integrations/pull/2152 diff --git a/packages/auth0/1.0.0/data_stream/logs/agent/stream/http_endpoint.yml.hbs b/packages/auth0/1.0.0/data_stream/logs/agent/stream/http_endpoint.yml.hbs new file mode 100755 index 0000000000..1203728f14 --- /dev/null +++ b/packages/auth0/1.0.0/data_stream/logs/agent/stream/http_endpoint.yml.hbs @@ -0,0 +1,41 @@ +type: http_endpoint +enabled: true +prefix: json + +{{#if listen_address}} +listen_address: {{listen_address}} +{{/if}} +{{#if listen_port}} +listen_port: {{listen_port}} +{{/if}} +{{#if url}} +url: {{url}} +{{/if}} + +{{#if secret_value}} +secret.header: Authorization +secret.value: "{{secret_value}}" +{{/if}} + +{{#if ssl}} +ssl: {{ssl}} +{{/if}} + +{{#if preserve_original_event}} +preserve_original_event: true +{{/if}} + +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/auth0/1.0.0/data_stream/logs/elasticsearch/ingest_pipeline/default.yml b/packages/auth0/1.0.0/data_stream/logs/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..af1e5a307a --- /dev/null +++ b/packages/auth0/1.0.0/data_stream/logs/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,1105 @@ +--- +description: Pipeline for processing Auth0 log stream events +processors: +- set: + field: ecs.version + value: '1.12.0' +- set: + field: auth0.logs.data + copy_from: json.data +- date: + field: auth0.logs.data.date + formats: + - ISO8601 +- set: + field: log.level + value: info +- set: + field: log.level + value: error + if: ctx?.auth0?.logs?.data?.details?.error != null +- set: + field: source.ip + copy_from: auth0.logs.data.ip + if: ctx?.auth0?.logs?.data?.ip != null +# IP Geolocation Lookup +- geoip: + field: source.ip + target_field: source.geo + ignore_missing: true + if: 'ctx.source?.geo == null && ctx?.source?.ip != null' +# IP Autonomous System (AS) Lookup +- geoip: + database_file: GeoLite2-ASN.mmdb + field: source.ip + target_field: source.as + properties: + - asn + - organization_name + ignore_missing: true + if: ctx?.source?.ip != null +- rename: + field: source.as.asn + target_field: source.as.number + ignore_missing: true +- rename: + field: source.as.organization_name + target_field: source.as.organization.name + ignore_missing: true +- set: + field: network.type + value: ipv6 + if: 'ctx.source?.ip != null && ctx.source?.ip.contains(":")' +- set: + field: network.type + value: ipv4 + if: 'ctx.network?.type == null && ctx.source?.ip != null' +- set: + field: user.name + copy_from: auth0.logs.data.user_name + if: 'ctx?.auth0?.logs?.data?.user_name != null' +- set: + field: user.id + copy_from: auth0.logs.data.user_id + if: 'ctx?.auth0?.logs?.data?.user_id != null' +- user_agent: + field: auth0.logs.data.user_agent + ignore_missing: true +- set: + field: event.id + copy_from: auth0.logs.data.log_id + if: 'ctx?.auth0?.logs?.data?.log_id != null' +## +# Event kind, code and action +## +- set: + field: event.kind + value: event +- append: + field: event.category + value: authentication +- script: + lang: painless + description: Sets event type, category and action based on type + if: ctx?.auth0?.logs?.data?.type != null + params: + actions: + f: + classification: "Login - Failure" + value: "Failed login" + type: + - info + action: failed-login + fc: + classification: "Login - Failure" + value: "Failed connector login" + type: + - info + action: failed-connector-login + fco: + classification: "Login - Failure" + value: "Origin is not in the application's Allowed Origins list" + type: + - info + action: origin-not-allowed + fcoa: + classification: "Login - Failure" + value: "Failed cross-origin authentication" + type: + - info + action: failed-cross-origin-authentication + fens: + classification: "Login - Failure" + value: "Failed native social login" + type: + - info + action: failed-native-social-login + fp: + classification: "Login - Failure" + value: "Incorrect password" + type: + - info + action: incorrect-password + fu: + classification: "Login - Failure" + value: "Invalid email or username" + type: + - info + - indicator + category: + - threat + action: invalid-username-or-email + w: + classification: "Login - Notification" + value: "Warnings during login" + type: + - info + - indicator + category: + - threat + action: warnings-during-login + s: + classification: "Login - Success" + value: "Successful login" + type: + - info + - start + category: + - session + action: successful-login + scoa: + classification: "Login - Success" + value: "Successful cross-origin authentication" + type: + - info + - start + category: + - session + action: successful-cross-origin-authentication + sens: + classification: "Login - Success" + value: "Successful native social login" + type: + - info + - start + category: + - session + action: successful-native-social-login + flo: + classification: "Logout - Failure" + value: "User logout failed" + type: + - info + category: + - session + action: user-logout-failed + slo: + classification: "Logout - Success" + value: "User successfully logged out" + type: + - info + - end + category: + - session + action: user-logout-successful + fs: + classification: "Signup - Failure" + value: "User signup failed" + type: + - info + - creation + - user + category: + - iam + action: user-signup-failed + fsa: + classification: "Silent Authentication - Failure" + value: "Failed silent authentication" + type: + - info + - indicator + category: + - threat + action: failed-silent-authentication + ssa: + classification: "Silent Authentication - Success" + value: "Successful silent authentication" + type: + - info + action: successful-silent-authentication + feacft: + classification: "Token Exchange - Failure" + value: "Failed exchange of Authorization Code for Access Token" + type: + - info + - protocol + - error + category: + - network + - web + action: failed-exchange-auth-code-for-access-token + feccft: + classification: "Token Exchange - Failure" + value: "Failed exchange of Access Token for a Client Credentials Grant" + type: + - info + - protocol + - error + category: + - network + - web + action: failed-exchange-access-token-for-client-cred-grant + fede: + classification: "Token Exchange - Failure" + value: "Failed exchange of Device Code for Access Token" + type: + - info + - protocol + - error + category: + - network + - web + action: failed-exchange-device-code-for-access-token + feoobft: + classification: "Token Exchange - Failure" + value: "Failed exchange of Password and OOB Challenge for Access Token" + type: + - info + - protocol + - error + category: + - network + - web + action: failed-exchange-password-oob-challenge-for-access-token + feotpft: + classification: "Token Exchange - Failure" + value: "Failed exchange of Password and OTP Challenge for Access Token" + type: + - info + - protocol + - error + category: + - network + - web + action: failed-exchange-password-otp-challenge-for-access-token + fepft: + classification: "Token Exchange - Failure" + value: "Failed exchange of Password for Access Token" + type: + - info + - protocol + - error + category: + - network + - web + action: failed-exchange-password-for-access-token + fepotpft: + classification: "Token Exchange - Failure" + value: "Failed exchange of Passwordless OTP for Access Token" + type: + - info + - protocol + - error + category: + - network + - web + action: failed-exchange-passwordless-otp-for-access-token + fercft: + classification: "Token Exchange - Failure" + value: "Failed exchange of Password and MFA Recovery code for Access Token" + type: + - info + - protocol + - error + category: + - network + - web + action: failed-exchange-password-mfa-recovery-code-for-access-token + ferrt: + classification: "Token Exchange - Failure" + value: "Failed exchange of Rotating Refresh Token" + type: + - info + - protocol + - error + category: + - network + - web + action: failed-exchange-rotating-refresh-token + fertft: + classification: "Token Exchange - Failure" + value: "Failed exchange of Refresh Token for Access Token" + type: + - info + - protocol + - error + category: + - network + - web + action: failed-exchange-refresh-token-for-access-token + seacft: + classification: "Token Exchange - Success" + value: "Successful exchange of Authorization Code for Access Token" + type: + - info + - protocol + - access + category: + - network + - web + action: success-exchange-auth-code-for-access-token + seccft: + classification: "Token Exchange - Success" + value: "Successful exchange of Access Token for a Client Credentials Grant" + type: + - info + - protocol + - access + category: + - network + - web + action: success-exchange-access-token-for-client-cred-grant + sede: + classification: "Token Exchange - Success" + value: "Successful exchange of Device Code for Access Token" + type: + - info + - protocol + - access + category: + - network + - web + action: success-exchange-device-code-for-access-token + seoobft: + classification: "Token Exchange - Success" + value: "Successful exchange of Password and OOB Challenge for Access Token" + type: + - info + - protocol + - access + category: + - network + - web + action: success-exchange-password-oob-challange-for-access-token + seotpft: + classification: "Token Exchange - Success" + value: "Successful exchange of Password and OTP Challenge for Access Token" + type: + - info + - protocol + - access + category: + - network + - web + action: success-exchange-password-otp-challenge-for-access-token + sepft: + classification: "Token Exchange - Success" + value: "Successful exchange of Password for Access Token" + type: + - info + - protocol + - access + category: + - network + - web + action: success-exchange-password-for-access-token + sercft: + classification: "Token Exchange - Success" + value: "Successful exchange of Password and MFA Recovery code for Access Token" + type: + - info + - protocol + - access + category: + - network + - web + action: success-exchange-mfa-recovery-code-for-access-token + sertft: + classification: "Token Exchange - Success" + value: "Successful exchange of Refresh Token for Access Token" + type: + - info + - protocol + - access + category: + - network + - web + action: success-exchange-refresh-token-for-access-token + fapi: + classification: "Management API - Failure" + value: "Failed Management API operation" + type: + - info + - error + category: + - web + action: failed-mgmt-api-operation + sapi: + classification: "Management API - Success" + value: "Successful Management API operation" + type: + - info + - access + - change + category: + - web + - iam + action: success-mgmt-api-op + mgmt_api_read: + classification: "Management API - Success" + value: "API GET operation returning secrets completed successfully" + type: + - info + - access + category: + - web + - iam + action: success-mgmt-api-op-secrets-returned + admin_update_launch: + classification: "System - Notification" + value: "Auth0 Update Launched" + type: + - change + category: + - configuration + action: auth0-update-launched + api_limit: + classification: "System - Notification" + value: "The maximum number of requests to the Authentication or Management APIs in given time has reached" + type: + - info + - access + category: + - network + action: max-requests-reached + coff: + classification: "System - Notification" + value: "AD/LDAP Connector is offline" + type: + - error + - connection + category: + - network + - web + action: ad-ldap-connector-offline + con: + classification: "System - Notification" + value: "AD/LDAP Connector is online and working" + type: + - info + - connection + category: + - network + action: ad-ldap-connector-online + depnote: + classification: "System - Notification" + value: "Deprecation Notice" + type: + - info + action: deprecation-notice + fcpro: + classification: "System - Notification" + value: "Failed to provision a AD/LDAP connector" + type: + - info + - connection + - error + category: + - network + action: failed-ad-ldap-provision + fui: + classification: "System - Notification" + value: "Failed to import users" + type: + - info + - user + - error + category: + - iam + - web + action: failed-to-import-users + limit_delegation: + classification: "System - Notification" + value: "Rate limit exceeded to /delegation endpoint" + type: + - info + - access + category: + - network + action: rate-limit-exceeded-to-delegation-endpoint + limit_mu: + classification: "System - Notification" + value: "An IP address is blocked with 100 failed login attempts using different usernames" + type: + - indicator + - info + category: + - threat + - intrusion_detection + action: hundred-failed-logins-ip-address-blocked + limit_wc: + classification: "System - Notification" + value: "An IP address is blocked with 10 failed login attempts into a single account from the same IP address" + type: + - indicator + - info + category: + - threat + - intrusion_detection + action: ten-failed-logins-ip-address-blocked + sys_os_update_start: + classification: "System - Notification" + value: "Auth0 OS Update Started" + type: + - change + - start + - installation + category: + - configuration + - package + action: auth0-os-update-started + sys_os_update_end: + classification: "System - Notification" + value: "Auth0 OS Update Ended" + type: + - change + - end + - installation + category: + - configuration + - package + action: auth0-os-update-ended + sys_update_start: + classification: "System - Notification" + value: "Auth0 Update Started" + type: + - change + - start + - installation + category: + - configuration + - package + action: auth0-update-started + sys_update_end: + classification: "System - Notification" + value: "Auth0 Update Ended" + type: + - change + - end + - installation + category: + - configuration + - package + action: auth0-update-ended + fce: + classification: "User/Behavioral - Failure" + value: "Failed to change user email" + type: + - change + - user + category: + - iam + action: failed-to-change-user-email + fcp: + classification: "User/Behavioral - Failure" + value: "Failed to change password" + type: + - change + - user + category: + - iam + action: failed-to-change-password + fcpn: + classification: "User/Behavioral - Failure" + value: "Failed to change phone number" + type: + - change + - user + category: + - iam + action: failed-to-change-phone-number + fcpr: + classification: "User/Behavioral - Failure" + value: "Failed change password request" + type: + - change + - user + category: + - iam + action: failed-change-password-request + fcu: + classification: "User/Behavioral - Failure" + value: "Failed to change username" + type: + - change + - user + category: + - iam + action: failed-to-change-username + fd: + classification: "User/Behavioral - Failure" + value: "Failed to generate delegation token" + type: + - info + - user + category: + - iam + action: failed-to-generate-delegation-token + fdeaz: + classification: "User/Behavioral - Failure" + value: "Device authorization request failed" + type: + - info + - user + category: + - iam + action: failed-device-authorization-request + fdecc: + classification: "User/Behavioral - Failure" + value: "User did not confirm device" + type: + - info + action: user-device-not-confirmed + fdu: + classification: "User/Behavioral - Failure" + value: "Failed user deletion" + type: + - deletion + - user + category: + - iam + action: failed-user-deletion + fn: + classification: "User/Behavioral - Failure" + value: "Failed to send email notification" + type: + - info + action: failed-to-send-email-notification + fv: + classification: "User/Behavioral - Failure" + value: "Failed to send verification email" + type: + - info + action: failed-to-send-verification-email + fvr: + classification: "User/Behavioral - Failure" + value: "Failed to process verification email request" + type: + - info + action: failed-to-process-verification-email + cs: + classification: "User/Behavioral - Notification" + value: "Passwordless login code has been sent" + type: + - info + action: passwordless-login-code-sent + du: + classification: "User/Behavioral - Notification" + value: "User has been deleted" + type: + - info + - user + - deletion + category: + - iam + action: user-deleted + gd_enrollment_complete: + classification: "User/Behavioral - Notification" + value: "A first time MFA user has successfully enrolled using one of the factors" + type: + - info + - change + - end + category: + - iam + - session + action: mfa-enrollment-completed + gd_start_enroll: + classification: "User/Behavioral - Notification" + value: "Multi-factor authentication enroll has started" + type: + - info + - change + - start + category: + - iam + - session + action: mfa-enrollment-started + gd_unenroll: + classification: "User/Behavioral - Notification" + value: "Device used for second factor authentication has been unenrolled" + type: + - info + - deletion + category: + - iam + action: mfa-device-unenrolled + gd_update_device_account: + classification: "User/Behavioral - Notification" + value: "Device used for second factor authentication has been updated" + type: + - info + - change + category: + - iam + action: mfa-device-updated + ublkdu: + classification: "User/Behavioral - Notification" + value: "User block setup by anomaly detection has been released" + type: + - info + action: user-login-block-released + sce: + classification: "User/Behavioral - Success" + value: "Successfully changed user email" + type: + - info + - change + - user + category: + - iam + action: user-email-changed-successfully + scp: + classification: "User/Behavioral - Success" + value: "Successfully changed password" + type: + - info + - change + - user + category: + - iam + action: user-password-changed-successfully + scpn: + classification: "User/Behavioral - Success" + value: "Successfully changed phone number" + type: + - info + - change + - user + category: + - iam + action: user-phone-number-changed-successfully + scpr: + classification: "User/Behavioral - Success" + value: "Successful change password request" + type: + - info + - change + - user + category: + - iam + action: user-password-change-request-successful + scu: + classification: "User/Behavioral - Success" + value: "Successfully changed username" + type: + - info + - change + - user + category: + - iam + action: username-changed-successfully + sdu: + classification: "User/Behavioral - Success" + value: "User successfully deleted" + type: + - info + - deletion + category: + - iam + action: user-deleted-successfully + srrt: + classification: "User/Behavioral - Success" + value: "Successfully revoked a Refresh Token" + type: + - info + - deletion + category: + - iam + action: revoked-refresh-token-successfully + sui: + classification: "User/Behavioral - Success" + value: "Successfully imported users" + type: + - info + - user + category: + - iam + action: imported-users-successfully + sv: + classification: "User/Behavioral - Success" + value: "Sent verification email" + type: + - info + - user + category: + - iam + action: sent-verification-email + svr: + classification: "User/Behavioral - Success" + value: "Successfully processed verification email request" + type: + - info + - user + category: + - iam + action: email-verification-processed-successfully + fcph: + classification: "Other" + value: "Failed Post Change Password Hook" + type: + - change + - user + category: + - iam + action: failed-post-change-password-hook + fdeac: + classification: "Other" + value: "Failed to activate device" + type: + - info + action: failed-to-activate-device + fi: + classification: "Other" + value: "Failed to accept a user invitation. This could happen if the user accepts an invitation using a different email address than provided in the invitation, or due to a system failure while provisioning the invitation." + type: + - info + action: failed-to-accept-user-invitation + gd_auth_failed: + classification: "Other" + value: "Multi-factor authentication failed. This could happen due to a wrong code entered for SMS/Voice/Email/TOTP factors, or a system failure." + type: + - info + action: mfa-authentication-failed-wrong-code + gd_auth_rejected: + classification: "Other" + value: "A user rejected a Multi-factor authentication request via push-notification." + type: + - info + action: user-rejected-mfa-request + gd_auth_succeed: + classification: "Other" + value: "Multi-factor authentication success." + type: + - info + action: mfa-authentication-succeeded + gd_otp_rate_limit_exceed: + classification: "Other" + value: "A user, during enrollment or authentication, enters an incorrect code more than the maximum allowed number of times. Ex: A user enrolling in SMS enters the 6-digit code wrong more than 10 times in a row." + type: + - info + - indicator + category: + - threat + action: user-entered-too-many-incorrect-codes + gd_recovery_failed: + classification: "Other" + value: "A user enters a wrong recovery code when attempting to authenticate." + type: + - info + action: user-entered-wrong-recovery-code + gd_recovery_rate_limit_exceed: + classification: "Other" + value: "A user enters a wrong recovery code too many times." + type: + - info + - indicator + category: + - threat + action: user-entered-too-many-wrong-codes + gd_recovery_succeed: + classification: "Other" + value: "A user successfully authenticates with a recovery code" + type: + - info + action: recovery-succeeded + gd_send_pn: + classification: "Other" + value: "Push notification for MFA sent successfully sent." + type: + - info + action: push-notification-sent + gd_send_sms: + classification: "Other" + value: "SMS for MFA successfully sent." + type: + - info + action: sms-sent + gd_send_sms_failure: + classification: "Other" + value: "Attempt to send SMS for MFA failed." + type: + - info + action: failed-to-send-sms + gd_send_voice: + classification: "Other" + value: "Voice call for MFA successfully made." + type: + - info + action: voice-call-made + gd_send_voice_failure: + classification: "Other" + value: "Attempt to make Voice call for MFA failed." + type: + - info + action: voice-call-failure + gd_start_auth: + classification: "Other" + value: "Second factor authentication event started for MFA." + type: + - info + action: 2fa-auth-event-started + gd_tenant_update: + classification: "Other" + value: "Guardian tenant update" + type: + - info + action: guardian-tenant-update + limit_sul: + classification: "Other" + value: "A user is temporarily prevented from logging in because more than 20 logins per minute occurred from the same IP address" + type: + - info + - indicator + category: + - threat + action: user-blocked-too-many-failed-logins-from-same-ip + mfar: + classification: "Other" + value: "A user has been prompted for multi-factor authentication (MFA). When using Adaptive MFA, Auth0 includes details about the risk assessment." + type: + - info + action: user-prompted-for-mfa + pla: + classification: "Other" + value: "This log is generated before a login and helps in monitoring the behavior of bot detection without having to enable it." + type: + - info + action: pre-login-assessment + pwd_leak: + classification: "Other" + value: "Someone behind the IP address attempted to login with a leaked password." + type: + - info + category: + - intrusion_detection + action: login-with-breached-password + scph: + classification: "Other" + value: "Success Post Change Password Hook" + type: + - info + action: success-post-change-password-hook + sd: + classification: "Other" + value: "Success delegation" + type: + - info + action: success-delegation + si: + classification: "Other" + value: "Successfully accepted a user invitation" + type: + - info + action: successfully-accepted-user-invitation + ss: + classification: "Other" + value: "Success Signup" + type: + - info + action: success-signup + source: |- + def eventType = ctx.auth0.logs.data.type; + def actions = params.get('actions'); + def actionData = actions.get(eventType); + if (actionData == null) { + ctx.event.action = 'unknown-' + eventType; + ctx.event.type = ['info']; + return; + } + // overwrite type abbreviation with actual value + def eventTypeVal = actionData.get('value'); + if (eventTypeVal != null) { + ctx.auth0.logs.data.type = eventTypeVal; + } + // event.type + def actionType = actionData.get('type'); + if (actionType != null) { + ctx.event.type = new ArrayList(actionType); + } + // event.category + def actionCategory = actionData.get('category'); + if (actionCategory != null) { + for (def c : actionCategory) { + ctx.event.category.add(c); + } + } + // event.action + def action = actionData.get('action'); + if (action != null) { + ctx.event.action = action; + } + // auth0 event category / classification group + def classification = actionData.get('classification'); + if (classification != null) { + ctx.auth0.logs.data.classification = classification; + } + // event.outcome + if (classification.toLowerCase().contains("success")) { + ctx.event.outcome = "success"; + } else if (classification.toLowerCase().contains("failure")) { + ctx.event.outcome = "failure"; + } else { + ctx.event.outcome = "unknown"; + } +- date: + if: ctx?.auth0?.logs?.data?.details?.initiatedAt != null + field: auth0.logs.data.details.initiatedAt + target_field: auth0.logs.data.login.initiatedAt + formats: + - UNIX_MS +- date: + if: ctx?.auth0?.logs?.data?.details?.completedAt != null + field: auth0.logs.data.details.completedAt + target_field: auth0.logs.data.login.completedAt + formats: + - UNIX_MS +- convert: + if: ctx?.auth0?.logs?.data?.details?.elapsedTime != null + field: auth0.logs.data.details.elapsedTime + target_field: auth0.logs.data.login.elapsedTime + type: long + ignore_missing: true +- convert: + if: "ctx.auth0.logs.data.type == 'Successful login'" + field: auth0.logs.data.details.stats.loginsCount + target_field: auth0.logs.data.login.stats.loginsCount + type: long + ignore_missing: true +## +# Clean up +## +- remove: + field: + - json + - auth0.logs.data.ip + - auth0.logs.data.user_name + - auth0.logs.data.user_id + - auth0.logs.data.user_agent + - auth0.logs.data.log_id + ignore_missing: true +- remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + ignore_missing: true +- script: + lang: painless + description: This script processor iterates over the whole document to remove fields with null values. + source: | + void handleMap(Map map) { + for (def x : map.values()) { + if (x instanceof Map) { + handleMap(x); + } else if (x instanceof List) { + handleList(x); + } + } + map.values().removeIf(v -> v == null || v == '' || (v instanceof Map && v.size() == 0) || (v instanceof List && v.size() == 0)); + } + void handleList(List list) { + for (def x : list) { + if (x instanceof Map) { + handleMap(x); + } else if (x instanceof List) { + handleList(x); + } + } + list.removeIf(v -> v == null || v == '' || (v instanceof Map && v.size() == 0) || (v instanceof List && v.size() == 0)); + } + handleMap(ctx); + +on_failure: +- set: + field: error.message + value: '{{ _ingest.on_failure_message }}' diff --git a/packages/auth0/1.0.0/data_stream/logs/fields/agent.yml b/packages/auth0/1.0.0/data_stream/logs/fields/agent.yml new file mode 100755 index 0000000000..b4f84cf84a --- /dev/null +++ b/packages/auth0/1.0.0/data_stream/logs/fields/agent.yml @@ -0,0 +1,3 @@ +- name: input.type + type: keyword + description: Input type. diff --git a/packages/auth0/1.0.0/data_stream/logs/fields/base-fields.yml b/packages/auth0/1.0.0/data_stream/logs/fields/base-fields.yml new file mode 100755 index 0000000000..bc27cfd1c1 --- /dev/null +++ b/packages/auth0/1.0.0/data_stream/logs/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event timestamp. + value: auth0 +- name: event.dataset + type: constant_keyword + description: Event timestamp. + value: auth0.logs diff --git a/packages/auth0/1.0.0/data_stream/logs/fields/ecs.yml b/packages/auth0/1.0.0/data_stream/logs/fields/ecs.yml new file mode 100755 index 0000000000..b2d6d71186 --- /dev/null +++ b/packages/auth0/1.0.0/data_stream/logs/fields/ecs.yml @@ -0,0 +1,298 @@ +- description: |- + Name of the directory the user is a member of. + For example, an LDAP or Active Directory domain name. + name: destination.user.domain + type: keyword +- description: Unique identifier of the user. + name: destination.user.id + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: destination.user.name + type: keyword +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Identification code for this event, if one exists. + Some event sources use event codes to identify messages unambiguously, regardless of message language or wording adjustments over time. An example of this is the Windows Event ID. + name: event.code + type: keyword +- description: |- + event.created contains the date/time when the event was first read by an agent, or by your pipeline. + This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. + In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. + In case the two timestamps are identical, @timestamp should be used. + name: event.created + type: date +- description: |- + Timestamp when an event arrived in the central data store. + This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. + In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` < `event.created` < `event.ingested`. + name: event.ingested + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. + `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. + Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. + Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. + Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. + name: event.outcome + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + Source of the event. + Event transports such as Syslog or the Windows Event Log typically mention the source of an event. It can be the name of the software that generated the event (e.g. Sysmon, httpd), or of a subsystem of the operating system (kernel, Microsoft-Windows-Security-Auditing). + name: event.provider + type: keyword +- description: |- + Sequence number of the event. + The sequence number is a value published by some event sources, to make the exact ordering of events unambiguous, regardless of the timestamp precision. + name: event.sequence + type: long +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: Unique ID to describe the event. + name: event.id + type: keyword +- description: Directory where the file is located. It should include the drive letter, when appropriate. + name: file.directory + type: keyword +- description: |- + File extension, excluding the leading dot. + Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). + name: file.extension + type: keyword +- description: Name of the file including the extension, without the directory. + name: file.name + type: keyword +- description: Full path to the file, including the file name. It should include the drive letter, when appropriate. + multi_fields: + - name: text + type: match_only_text + name: file.path + type: keyword +- description: |- + Name of the host. + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. + name: host.name + type: keyword +- description: |- + Original log level of the log event. + If the source of the event provides a log level or textual severity, this is the one that goes in `log.level`. If your source doesn't specify one, you may put your event transport's severity here (e.g. Syslog severity). + Some examples are `warn`, `err`, `i`, `informational`. + name: log.level + type: keyword +- description: |- + Array of process arguments, starting with the absolute path to the executable. + May be filtered to protect sensitive information. + name: process.args + type: keyword +- description: |- + Length of the process.args array. + This field can be useful for querying or performing bucket analysis on how many arguments were provided to start a process. More arguments may be an indication of suspicious activity. + name: process.args_count + type: long +- description: |- + Full command line that started the process, including the absolute path to the executable, and all arguments. + Some arguments may be filtered to protect sensitive information. + multi_fields: + - name: text + type: match_only_text + name: process.command_line + type: wildcard +- description: |- + Unique identifier for the process. + The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. + Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. + name: process.entity_id + type: keyword +- description: Absolute path to the process executable. + multi_fields: + - name: text + type: match_only_text + name: process.executable + type: keyword +- description: |- + Process name. + Sometimes called program name or similar. + multi_fields: + - name: text + type: match_only_text + name: process.name + type: keyword +- description: Process id. + name: process.pid + type: long +- description: |- + Process title. + The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. + multi_fields: + - name: text + type: match_only_text + name: process.title + type: keyword +- description: All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). + name: related.hash + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: |- + Name of the directory the user is a member of. + For example, an LDAP or Active Directory domain name. + name: source.user.domain + type: keyword +- description: Unique identifier of the user. + name: source.user.id + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: source.user.name + type: keyword +- description: |- + Name of the directory the user is a member of. + For example, an LDAP or Active Directory domain name. + name: user.domain + type: keyword +- description: Unique identifier of the user. + name: user.id + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". + name: network.type + type: keyword +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: source.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: source.as.organization.name + type: keyword +- description: City name. + name: source.geo.city_name + type: keyword +- description: Name of the continent. + name: source.geo.continent_name + type: keyword +- description: Country ISO code. + name: source.geo.country_iso_code + type: keyword +- description: Country name. + name: source.geo.country_name + type: keyword +- description: Longitude and latitude. + level: core + name: source.geo.location + type: geo_point +- description: |- + User-defined description of a location, at the level of granularity they care about. + Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. + Not typically used in automated geolocation. + name: source.geo.name + type: keyword +- description: Region ISO code. + name: source.geo.region_iso_code + type: keyword +- description: Region name. + name: source.geo.region_name + type: keyword +- description: Name of the user agent. + name: user_agent.name + type: keyword +- description: Name of the device. + name: user_agent.device.name + type: keyword +- description: Unparsed user_agent string. + multi_fields: + - name: text + type: match_only_text + name: user_agent.original + type: keyword +- description: Version of the user agent. + name: user_agent.version + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: user_agent.os.family + type: keyword +- description: Operating system name, including the version or code name. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.full + type: keyword +- description: Operating system kernel version as a raw string. + name: user_agent.os.kernel + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.name + type: keyword +- description: Operating system platform (such centos, ubuntu, windows). + name: user_agent.os.platform + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + One of these following values should be used (lowercase): linux, macos, unix, windows. + If the OS you're dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. + name: user_agent.os.type + type: keyword +- description: Operating system version as a raw string. + name: user_agent.os.version + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword diff --git a/packages/auth0/1.0.0/data_stream/logs/fields/fields.yml b/packages/auth0/1.0.0/data_stream/logs/fields/fields.yml new file mode 100755 index 0000000000..fc2da86b51 --- /dev/null +++ b/packages/auth0/1.0.0/data_stream/logs/fields/fields.yml @@ -0,0 +1,126 @@ +- name: auth0 + type: group + description: Fields for Auth0 events. + fields: + - name: logs + type: group + description: Fields for Auth0 log events. + fields: + - name: log_id + type: keyword + description: Unique log event identifier + - name: data + type: group + description: log stream event data + fields: + - name: log_id + type: keyword + description: Unique log event identifier + - name: date + type: date + description: Date when the event occurred in ISO 8601 format. + - name: type + type: keyword + description: Type of event. + - name: description + type: text + description: Description of this event. + - name: connection + type: keyword + description: Name of the connection the event relates to. + - name: connection_id + type: keyword + description: ID of the connection the event relates to. + - name: client_id + type: keyword + description: ID of the client (application). + - name: client_name + type: keyword + description: Name of the client (application). + - name: ip + type: ip + description: IP address of the log event source. + - name: hostname + type: keyword + description: Hostname the event applies to. + - name: user_id + type: keyword + description: ID of the user involved in the event. + - name: user_name + type: keyword + description: Name of the user involved in the event. + - name: audience + type: keyword + description: API audience the event applies to. + - name: scope + type: keyword + description: Scope permissions applied to the event. + - name: strategy + type: keyword + description: Name of the strategy involved in the event. + - name: strategy_type + type: keyword + description: Type of strategy involved in the event. + - name: log_id + type: keyword + description: Unique ID of the event. + - name: is_mobile + type: boolean + description: Whether the client was a mobile device (true) or desktop/laptop/server (false). + - name: classification + type: keyword + description: Log stream filters + - name: details + type: flattened + description: Additional useful details about this event (values here depend upon event type). + - name: login + type: group + description: Filtered fields for login type + fields: + - name: initiatedAt + type: date + description: Time at which the operation was initiated + - name: completedAt + type: date + description: Time at which the operation was completed + - name: elapsedTime + type: long + description: Number of milliseconds the operation took to complete. + - name: stats + type: group + description: login stats + fields: + - name: loginsCount + type: long + description: Total number of logins performed by the user + - name: user_agent + type: text + description: User agent string from the client device that caused the event. + - name: location_info + type: group + description: Information about the location that triggered this event based on the IP. + fields: + - name: country_code + type: keyword + description: Two-letter [Alpha-2 ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) country code + - name: country_code3 + type: keyword + description: Three-letter [Alpha-3 ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) country code + - name: country_name + type: keyword + description: Full country name in English. + - name: city_name + type: keyword + description: Full city name in English. + - name: latitude + type: keyword + description: Global latitude (horizontal) position. + - name: longitude + type: keyword + description: Global longitude (vertical) position. + - name: time_zone + type: keyword + description: Time zone name as found in the [tz database](https://www.iana.org/time-zones). + - name: continent_code + type: keyword + description: Continent the country is located within. Can be AF (Africa), AN (Antarctica), AS (Asia), EU (Europe), NA (North America), OC (Oceania) or SA (South America). diff --git a/packages/auth0/1.0.0/data_stream/logs/manifest.yml b/packages/auth0/1.0.0/data_stream/logs/manifest.yml new file mode 100755 index 0000000000..0e7b6a206d --- /dev/null +++ b/packages/auth0/1.0.0/data_stream/logs/manifest.yml @@ -0,0 +1,74 @@ +title: "Auth0 logs via Webhooks" +type: logs +streams: + - input: http_endpoint + title: Auth0 log events + description: Receives log events from Auth0 + template_path: http_endpoint.yml.hbs + vars: + - name: listen_address + type: text + title: Listen Address + description: Bind address for the listener. Use 0.0.0.0 to listen on all interfaces. + multi: false + required: true + show_user: true + default: localhost + - name: listen_port + type: integer + title: Listen Port + multi: false + required: true + show_user: true + default: 8383 + - name: url + type: text + title: Webhook path + description: URL path where the webhook will accept requests. + multi: false + required: true + show_user: false + default: /auth0/logs + - name: secret_value + type: text + description: Authorization token + multi: false + required: false + show_user: true + - name: ssl + type: yaml + title: TLS + description: Options for enabling TLS for the listening webhook endpoint. See the [documentation](https://www.elastic.co/guide/en/beats/filebeat/current/configuration-ssl.html) for a list of all options. + multi: false + required: false + show_user: false + default: | + enabled: false + certificate: "/etc/pki/client/cert.pem" + key: "/etc/pki/client/cert.key" + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - auth0-logstream + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original` + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/auth0/1.0.0/data_stream/logs/sample_event.json b/packages/auth0/1.0.0/data_stream/logs/sample_event.json new file mode 100755 index 0000000000..02d4e4c023 --- /dev/null +++ b/packages/auth0/1.0.0/data_stream/logs/sample_event.json @@ -0,0 +1,156 @@ +{ + "@timestamp": "2021-11-03T03:25:28.923Z", + "agent": { + "ephemeral_id": "3c2232a0-df0e-48e0-8440-96d5500ce25c", + "hostname": "docker-fleet-agent", + "id": "38ed1ea2-8c9a-4d5a-81ee-826cead96859", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.16.2" + }, + "auth0": { + "logs": { + "data": { + "classification": "Login - Success", + "client_id": "aI61p8I8aFjmYRliLWgvM9ev97kCCNDB", + "client_name": "Default App", + "connection": "Username-Password-Authentication", + "connection_id": "con_1a5wCUmAs6VOU17n", + "date": "2021-11-03T03:25:28.923Z", + "details": { + "completedAt": 1635909928922, + "elapsedTime": 1110091, + "initiatedAt": 1635908818831, + "prompts": [ + { + "completedAt": 1635909903693, + "connection": "Username-Password-Authentication", + "connection_id": "con_1a5wCUmAs6VOU17n", + "identity": "6182002f34f4dd006b05b5c7", + "name": "prompt-authenticate", + "stats": { + "loginsCount": 1 + }, + "strategy": "auth0" + }, + { + "completedAt": 1635909903745, + "elapsedTime": 1084902, + "flow": "universal-login", + "initiatedAt": 1635908818843, + "name": "login", + "timers": { + "rules": 5 + }, + "user_id": "auth0|6182002f34f4dd006b05b5c7", + "user_name": "neo@test.com" + }, + { + "completedAt": 1635909928352, + "elapsedTime": 23378, + "flow": "consent", + "grantInfo": { + "audience": "https://dev-yoj8axza.au.auth0.com/userinfo", + "id": "618201284369c9b4f9cd6d52", + "scope": "openid profile" + }, + "initiatedAt": 1635909904974, + "name": "consent" + } + ], + "session_id": "1TAd-7tsPYzxWudzqfHYXN0e6q1D0GSc", + "stats": { + "loginsCount": 1 + } + }, + "hostname": "dev-yoj8axza.au.auth0.com", + "login": { + "completedAt": "2021-11-03T03:25:28.922Z", + "elapsedTime": 1110091, + "initiatedAt": "2021-11-03T03:06:58.831Z", + "stats": { + "loginsCount": 1 + } + }, + "strategy": "auth0", + "strategy_type": "database", + "type": "Successful login" + } + } + }, + "data_stream": { + "dataset": "auth0.logs", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "1.12.0" + }, + "elastic_agent": { + "id": "38ed1ea2-8c9a-4d5a-81ee-826cead96859", + "snapshot": false, + "version": "7.16.2" + }, + "event": { + "action": "successful-login", + "agent_id_status": "verified", + "category": [ + "authentication", + "session" + ], + "dataset": "auth0.logs", + "id": "90020211103032530111223343147286033102509916061341581378", + "ingested": "2022-01-20T05:57:05Z", + "kind": "event", + "original": "{\"data\":{\"client_id\":\"aI61p8I8aFjmYRliLWgvM9ev97kCCNDB\",\"client_name\":\"Default App\",\"connection\":\"Username-Password-Authentication\",\"connection_id\":\"con_1a5wCUmAs6VOU17n\",\"date\":\"2021-11-03T03:25:28.923Z\",\"details\":{\"completedAt\":1635909928922,\"elapsedTime\":1110091,\"initiatedAt\":1635908818831,\"prompts\":[{\"completedAt\":1635909903693,\"connection\":\"Username-Password-Authentication\",\"connection_id\":\"con_1a5wCUmAs6VOU17n\",\"elapsedTime\":null,\"identity\":\"6182002f34f4dd006b05b5c7\",\"name\":\"prompt-authenticate\",\"stats\":{\"loginsCount\":1},\"strategy\":\"auth0\"},{\"completedAt\":1635909903745,\"elapsedTime\":1084902,\"flow\":\"universal-login\",\"initiatedAt\":1635908818843,\"name\":\"login\",\"timers\":{\"rules\":5},\"user_id\":\"auth0|6182002f34f4dd006b05b5c7\",\"user_name\":\"neo@test.com\"},{\"completedAt\":1635909928352,\"elapsedTime\":23378,\"flow\":\"consent\",\"grantInfo\":{\"audience\":\"https://dev-yoj8axza.au.auth0.com/userinfo\",\"expiration\":null,\"id\":\"618201284369c9b4f9cd6d52\",\"scope\":\"openid profile\"},\"initiatedAt\":1635909904974,\"name\":\"consent\"}],\"session_id\":\"1TAd-7tsPYzxWudzqfHYXN0e6q1D0GSc\",\"stats\":{\"loginsCount\":1}},\"hostname\":\"dev-yoj8axza.au.auth0.com\",\"ip\":\"81.2.69.143\",\"log_id\":\"90020211103032530111223343147286033102509916061341581378\",\"strategy\":\"auth0\",\"strategy_type\":\"database\",\"type\":\"s\",\"user_agent\":\"Mozilla/5.0 (X11;Ubuntu; Linux x86_64; rv:93.0) Gecko/20100101 Firefox/93.0\",\"user_id\":\"auth0|6182002f34f4dd006b05b5c7\",\"user_name\":\"neo@test.com\"},\"log_id\":\"90020211103032530111223343147286033102509916061341581378\"}", + "outcome": "success", + "type": [ + "info", + "start" + ] + }, + "input": { + "type": "http_endpoint" + }, + "log": { + "level": "info" + }, + "network": { + "type": "ipv4" + }, + "source": { + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.143" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "auth0-logstream" + ], + "user": { + "id": "auth0|6182002f34f4dd006b05b5c7", + "name": "neo@test.com" + }, + "user_agent": { + "device": { + "name": "Other" + }, + "name": "Firefox", + "original": "Mozilla/5.0 (X11;Ubuntu; Linux x86_64; rv:93.0) Gecko/20100101 Firefox/93.0", + "os": { + "name": "Ubuntu" + }, + "version": "93.0." + } +} \ No newline at end of file diff --git a/packages/auth0/1.0.0/docs/README.md b/packages/auth0/1.0.0/docs/README.md new file mode 100755 index 0000000000..a40c20f6ac --- /dev/null +++ b/packages/auth0/1.0.0/docs/README.md @@ -0,0 +1,330 @@ +# Auth0 Log Streams Integration + +Auth0 offers integrations that push log events via log streams to Elasticsearch. The [Auth0 Log Streams](https://auth0.com/docs/customize/log-streams) integration package creates a HTTP listener that accepts incoming log events and ingests them into Elasticsearch. This allows you to search, observe and visualize the Auth0 log events through Elasticsearch. + +The agent running this integration must be able to accept requests from the Internet in order for Auth0 to be able connect. Auth0 requires that the webhook accept requests over HTTPS. So you must either configure the integration with a valid TLS certificate or use a reverse proxy in front of the integration. + +For more information, see Auth0's webpage on [integration to Elastic Security](https://marketplace.auth0.com/integrations/elastic-security). + +## Compatability + +The package collects log events sent via log stream webhooks. + +## Configuration + +### Enabling the integration in Elastic + +1. In Kibana go to **Management > Integrations** +2. In "Search for integrations" search bar type **Auth0** +3. Click on "Auth0" integration from the search results. +4. Click on **Add Auth0** button to add Auth0 integration. + +### Configure the Auth0 integration + +1. Enter values for "Listen Address", "Listen Port" and "Webhook path" to form the endpoint URL. Make note of the **Endpoint URL** `https://{AGENT_ADDRESS}:8383/auth0/logs`. +2. Enter value for "Secret value". This must match the "Authorization Token" value entered when configuring the "Custom Webhook" from Auth0 cloud. +3. Enter values for "TLS". Auth0 requires that the webhook accept requests over HTTPS. So you must either configure the integration with a valid TLS certificate or use a reverse proxy in front of the integration. + +### Creating the stream in Auth0 + +1. From the Auth0 management console, navigate to **Logs > Streams** and click **+ Create Stream**. +2. Choose **Custom Webhook**. +3. Name the new **Event Stream** appropriately (e.g. Elastic) and click **Create**. +4. In **Payload URL**, paste the **Endpoint URL** collected during Step 1 of **Configure the Auth0 integration** section. +5. In **Authorization Token**, paste the **Authorization Token**. This must match the value entered in Step 2 of **Configure the Auth0 integration** section. +6. In **Content Type**, choose **application/json**. +7. In **Content Format**, choose **JSON Lines**. +8. **Click Save**. + +## Log Events + +Enable to collect Auth0 log events for all the applications configured for the chosen log stream. + +## Logs + +### Log Stream Events + +The Auth0 logs dataset provides events from Auth0 log stream. All Auth0 log events are available in the `auth0.logs` field group. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| auth0.logs.data.audience | API audience the event applies to. | keyword | +| auth0.logs.data.classification | Log stream filters | keyword | +| auth0.logs.data.client_id | ID of the client (application). | keyword | +| auth0.logs.data.client_name | Name of the client (application). | keyword | +| auth0.logs.data.connection | Name of the connection the event relates to. | keyword | +| auth0.logs.data.connection_id | ID of the connection the event relates to. | keyword | +| auth0.logs.data.date | Date when the event occurred in ISO 8601 format. | date | +| auth0.logs.data.description | Description of this event. | text | +| auth0.logs.data.details | Additional useful details about this event (values here depend upon event type). | flattened | +| auth0.logs.data.hostname | Hostname the event applies to. | keyword | +| auth0.logs.data.ip | IP address of the log event source. | ip | +| auth0.logs.data.is_mobile | Whether the client was a mobile device (true) or desktop/laptop/server (false). | boolean | +| auth0.logs.data.location_info.city_name | Full city name in English. | keyword | +| auth0.logs.data.location_info.continent_code | Continent the country is located within. Can be AF (Africa), AN (Antarctica), AS (Asia), EU (Europe), NA (North America), OC (Oceania) or SA (South America). | keyword | +| auth0.logs.data.location_info.country_code | Two-letter [Alpha-2 ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) country code | keyword | +| auth0.logs.data.location_info.country_code3 | Three-letter [Alpha-3 ISO 3166-1](https://www.iso.org/iso-3166-country-codes.html) country code | keyword | +| auth0.logs.data.location_info.country_name | Full country name in English. | keyword | +| auth0.logs.data.location_info.latitude | Global latitude (horizontal) position. | keyword | +| auth0.logs.data.location_info.longitude | Global longitude (vertical) position. | keyword | +| auth0.logs.data.location_info.time_zone | Time zone name as found in the [tz database](https://www.iana.org/time-zones). | keyword | +| auth0.logs.data.log_id | Unique ID of the event. | keyword | +| auth0.logs.data.login.completedAt | Time at which the operation was completed | date | +| auth0.logs.data.login.elapsedTime | Number of milliseconds the operation took to complete. | long | +| auth0.logs.data.login.initiatedAt | Time at which the operation was initiated | date | +| auth0.logs.data.login.stats.loginsCount | Total number of logins performed by the user | long | +| auth0.logs.data.scope | Scope permissions applied to the event. | keyword | +| auth0.logs.data.strategy | Name of the strategy involved in the event. | keyword | +| auth0.logs.data.strategy_type | Type of strategy involved in the event. | keyword | +| auth0.logs.data.type | Type of event. | keyword | +| auth0.logs.data.user_agent | User agent string from the client device that caused the event. | text | +| auth0.logs.data.user_id | ID of the user involved in the event. | keyword | +| auth0.logs.data.user_name | Name of the user involved in the event. | keyword | +| auth0.logs.log_id | Unique log event identifier | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.user.domain | Name of the directory the user is a member of. For example, an LDAP or Active Directory domain name. | keyword | +| destination.user.id | Unique identifier of the user. | keyword | +| destination.user.name | Short name or login of the user. | keyword | +| destination.user.name.text | Multi-field of `destination.user.name`. | match_only_text | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.code | Identification code for this event, if one exists. Some event sources use event codes to identify messages unambiguously, regardless of message language or wording adjustments over time. An example of this is the Windows Event ID. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.dataset | Event timestamp. | constant_keyword | +| event.id | Unique ID to describe the event. | keyword | +| event.ingested | Timestamp when an event arrived in the central data store. This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` \< `event.created` \< `event.ingested`. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event timestamp. | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.outcome | This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. | keyword | +| event.provider | Source of the event. Event transports such as Syslog or the Windows Event Log typically mention the source of an event. It can be the name of the software that generated the event (e.g. Sysmon, httpd), or of a subsystem of the operating system (kernel, Microsoft-Windows-Security-Auditing). | keyword | +| event.sequence | Sequence number of the event. The sequence number is a value published by some event sources, to make the exact ordering of events unambiguous, regardless of the timestamp precision. | long | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| file.directory | Directory where the file is located. It should include the drive letter, when appropriate. | keyword | +| file.extension | File extension, excluding the leading dot. Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). | keyword | +| file.name | Name of the file including the extension, without the directory. | keyword | +| file.path | Full path to the file, including the file name. It should include the drive letter, when appropriate. | keyword | +| file.path.text | Multi-field of `file.path`. | match_only_text | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| input.type | Input type. | keyword | +| log.level | Original log level of the log event. If the source of the event provides a log level or textual severity, this is the one that goes in `log.level`. If your source doesn't specify one, you may put your event transport's severity here (e.g. Syslog severity). Some examples are `warn`, `err`, `i`, `informational`. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". | keyword | +| process.args | Array of process arguments, starting with the absolute path to the executable. May be filtered to protect sensitive information. | keyword | +| process.args_count | Length of the process.args array. This field can be useful for querying or performing bucket analysis on how many arguments were provided to start a process. More arguments may be an indication of suspicious activity. | long | +| process.command_line | Full command line that started the process, including the absolute path to the executable, and all arguments. Some arguments may be filtered to protect sensitive information. | wildcard | +| process.command_line.text | Multi-field of `process.command_line`. | match_only_text | +| process.entity_id | Unique identifier for the process. The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. | keyword | +| process.executable | Absolute path to the process executable. | keyword | +| process.executable.text | Multi-field of `process.executable`. | match_only_text | +| process.name | Process name. Sometimes called program name or similar. | keyword | +| process.name.text | Multi-field of `process.name`. | match_only_text | +| process.pid | Process id. | long | +| process.title | Process title. The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. | keyword | +| process.title.text | Multi-field of `process.title`. | match_only_text | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| source.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| source.as.organization.name | Organization name. | keyword | +| source.as.organization.name.text | Multi-field of `source.as.organization.name`. | match_only_text | +| source.geo.city_name | City name. | keyword | +| source.geo.continent_name | Name of the continent. | keyword | +| source.geo.country_iso_code | Country ISO code. | keyword | +| source.geo.country_name | Country name. | keyword | +| source.geo.location | Longitude and latitude. | geo_point | +| source.geo.name | User-defined description of a location, at the level of granularity they care about. Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. Not typically used in automated geolocation. | keyword | +| source.geo.region_iso_code | Region ISO code. | keyword | +| source.geo.region_name | Region name. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.user.domain | Name of the directory the user is a member of. For example, an LDAP or Active Directory domain name. | keyword | +| source.user.id | Unique identifier of the user. | keyword | +| source.user.name | Short name or login of the user. | keyword | +| source.user.name.text | Multi-field of `source.user.name`. | match_only_text | +| tags | List of keywords used to tag each event. | keyword | +| user.domain | Name of the directory the user is a member of. For example, an LDAP or Active Directory domain name. | keyword | +| user.id | Unique identifier of the user. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | +| user_agent.device.name | Name of the device. | keyword | +| user_agent.name | Name of the user agent. | keyword | +| user_agent.original | Unparsed user_agent string. | keyword | +| user_agent.original.text | Multi-field of `user_agent.original`. | match_only_text | +| user_agent.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| user_agent.os.full | Operating system name, including the version or code name. | keyword | +| user_agent.os.full.text | Multi-field of `user_agent.os.full`. | match_only_text | +| user_agent.os.kernel | Operating system kernel version as a raw string. | keyword | +| user_agent.os.name | Operating system name, without the version. | keyword | +| user_agent.os.name.text | Multi-field of `user_agent.os.name`. | match_only_text | +| user_agent.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| user_agent.os.type | Use the `os.type` field to categorize the operating system into one of the broad commercial families. One of these following values should be used (lowercase): linux, macos, unix, windows. If the OS you're dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. | keyword | +| user_agent.os.version | Operating system version as a raw string. | keyword | +| user_agent.version | Version of the user agent. | keyword | + + +An example event for `logs` looks as following: + +```json +{ + "@timestamp": "2021-11-03T03:25:28.923Z", + "agent": { + "ephemeral_id": "3c2232a0-df0e-48e0-8440-96d5500ce25c", + "hostname": "docker-fleet-agent", + "id": "38ed1ea2-8c9a-4d5a-81ee-826cead96859", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.16.2" + }, + "auth0": { + "logs": { + "data": { + "classification": "Login - Success", + "client_id": "aI61p8I8aFjmYRliLWgvM9ev97kCCNDB", + "client_name": "Default App", + "connection": "Username-Password-Authentication", + "connection_id": "con_1a5wCUmAs6VOU17n", + "date": "2021-11-03T03:25:28.923Z", + "details": { + "completedAt": 1635909928922, + "elapsedTime": 1110091, + "initiatedAt": 1635908818831, + "prompts": [ + { + "completedAt": 1635909903693, + "connection": "Username-Password-Authentication", + "connection_id": "con_1a5wCUmAs6VOU17n", + "identity": "6182002f34f4dd006b05b5c7", + "name": "prompt-authenticate", + "stats": { + "loginsCount": 1 + }, + "strategy": "auth0" + }, + { + "completedAt": 1635909903745, + "elapsedTime": 1084902, + "flow": "universal-login", + "initiatedAt": 1635908818843, + "name": "login", + "timers": { + "rules": 5 + }, + "user_id": "auth0|6182002f34f4dd006b05b5c7", + "user_name": "neo@test.com" + }, + { + "completedAt": 1635909928352, + "elapsedTime": 23378, + "flow": "consent", + "grantInfo": { + "audience": "https://dev-yoj8axza.au.auth0.com/userinfo", + "id": "618201284369c9b4f9cd6d52", + "scope": "openid profile" + }, + "initiatedAt": 1635909904974, + "name": "consent" + } + ], + "session_id": "1TAd-7tsPYzxWudzqfHYXN0e6q1D0GSc", + "stats": { + "loginsCount": 1 + } + }, + "hostname": "dev-yoj8axza.au.auth0.com", + "login": { + "completedAt": "2021-11-03T03:25:28.922Z", + "elapsedTime": 1110091, + "initiatedAt": "2021-11-03T03:06:58.831Z", + "stats": { + "loginsCount": 1 + } + }, + "strategy": "auth0", + "strategy_type": "database", + "type": "Successful login" + } + } + }, + "data_stream": { + "dataset": "auth0.logs", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "1.12.0" + }, + "elastic_agent": { + "id": "38ed1ea2-8c9a-4d5a-81ee-826cead96859", + "snapshot": false, + "version": "7.16.2" + }, + "event": { + "action": "successful-login", + "agent_id_status": "verified", + "category": [ + "authentication", + "session" + ], + "dataset": "auth0.logs", + "id": "90020211103032530111223343147286033102509916061341581378", + "ingested": "2022-01-20T05:57:05Z", + "kind": "event", + "original": "{\"data\":{\"client_id\":\"aI61p8I8aFjmYRliLWgvM9ev97kCCNDB\",\"client_name\":\"Default App\",\"connection\":\"Username-Password-Authentication\",\"connection_id\":\"con_1a5wCUmAs6VOU17n\",\"date\":\"2021-11-03T03:25:28.923Z\",\"details\":{\"completedAt\":1635909928922,\"elapsedTime\":1110091,\"initiatedAt\":1635908818831,\"prompts\":[{\"completedAt\":1635909903693,\"connection\":\"Username-Password-Authentication\",\"connection_id\":\"con_1a5wCUmAs6VOU17n\",\"elapsedTime\":null,\"identity\":\"6182002f34f4dd006b05b5c7\",\"name\":\"prompt-authenticate\",\"stats\":{\"loginsCount\":1},\"strategy\":\"auth0\"},{\"completedAt\":1635909903745,\"elapsedTime\":1084902,\"flow\":\"universal-login\",\"initiatedAt\":1635908818843,\"name\":\"login\",\"timers\":{\"rules\":5},\"user_id\":\"auth0|6182002f34f4dd006b05b5c7\",\"user_name\":\"neo@test.com\"},{\"completedAt\":1635909928352,\"elapsedTime\":23378,\"flow\":\"consent\",\"grantInfo\":{\"audience\":\"https://dev-yoj8axza.au.auth0.com/userinfo\",\"expiration\":null,\"id\":\"618201284369c9b4f9cd6d52\",\"scope\":\"openid profile\"},\"initiatedAt\":1635909904974,\"name\":\"consent\"}],\"session_id\":\"1TAd-7tsPYzxWudzqfHYXN0e6q1D0GSc\",\"stats\":{\"loginsCount\":1}},\"hostname\":\"dev-yoj8axza.au.auth0.com\",\"ip\":\"81.2.69.143\",\"log_id\":\"90020211103032530111223343147286033102509916061341581378\",\"strategy\":\"auth0\",\"strategy_type\":\"database\",\"type\":\"s\",\"user_agent\":\"Mozilla/5.0 (X11;Ubuntu; Linux x86_64; rv:93.0) Gecko/20100101 Firefox/93.0\",\"user_id\":\"auth0|6182002f34f4dd006b05b5c7\",\"user_name\":\"neo@test.com\"},\"log_id\":\"90020211103032530111223343147286033102509916061341581378\"}", + "outcome": "success", + "type": [ + "info", + "start" + ] + }, + "input": { + "type": "http_endpoint" + }, + "log": { + "level": "info" + }, + "network": { + "type": "ipv4" + }, + "source": { + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.143" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "auth0-logstream" + ], + "user": { + "id": "auth0|6182002f34f4dd006b05b5c7", + "name": "neo@test.com" + }, + "user_agent": { + "device": { + "name": "Other" + }, + "name": "Firefox", + "original": "Mozilla/5.0 (X11;Ubuntu; Linux x86_64; rv:93.0) Gecko/20100101 Firefox/93.0", + "os": { + "name": "Ubuntu" + }, + "version": "93.0." + } +} +``` diff --git a/packages/auth0/1.0.0/img/auth0-logo.svg b/packages/auth0/1.0.0/img/auth0-logo.svg new file mode 100755 index 0000000000..e0f2aa1d36 --- /dev/null +++ b/packages/auth0/1.0.0/img/auth0-logo.svg @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/auth0/1.0.0/img/auth0-screenshot.png b/packages/auth0/1.0.0/img/auth0-screenshot.png new file mode 100755 index 0000000000000000000000000000000000000000..72b880f1618421fcb6b5a2b9e3222d1863e08326 GIT binary patch literal 2464405 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%0A@)*x8vmVs+$HU=hwQK-@#@T@SJm;NV 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

p@xB4#4wOP9EQ6AAGZ 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

OV8lBN8M3UR?t45bo_F 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

lz!nSZcYEOwM;IR_9#Z^%{4%>u}39V#hmm5o$b+ zx?g2-ffRT9B#@6k`%55Zm}kJI-?)~QA#ojE7qIif=#m{-SwJeP^GOE>A2qvUr>tkq zGL!y={W>PtNH~1+24Y3oPR*XPP$PP_=&`)3jKq2^Q#tU5P_T^0nR1ji~3-+3VPw zi>7bQ9Wgr}2lt7TR3J|h^yF|yv1{unK~7U4)P^@_{2p7x=2YOn8VFKkUeAE?$A~k- zTafTMT)zoXj?ms-uM&l)z?8!yWG%?9CC&_8j6ak63Oa50XI`UW-?X2bj(uZ9r@l91 zeZY?Q^|!q+!GGie(Bj*hMVf*XVN;m!`|ME}00?xoRvMd2Eq_+!xPP5kxuP6;%h zOGNO8tW)4ql}$l-+-mj35(1icPGaNZOM0f@7*EV*&^8UKtMx-cd*ERy+4E5=axHqX z8|ONL(Aph6mhxUIZHzZk`Jp|kR63J z`+PNQbs7`A*5rKRAXx-y^@N=H?eB^T+}V;^>No8TdD=$Ik1G}zbo1FG+%;syV6e}! z8}7o+kLf3nO<;ui`MTZQ2a~Y*l1$Kt3Ul^?6Sm$xZFVxtx~P2Y+6L|<*UcR~K`(q& z%li)25}W{r5JEf$(n*I|!R9&I)760bx4E?j&6a8Qf6nD}!%F!(nCH7U37xL3A*`;% ziS}X-5YX_ZmvQPg^xm3h(^KH?4BmubxEF(Y92T0h(=6vnEFrRHaub6v*s>GT;CF~r z<&A}rD9`(v9|WY$J)Dr{&Acc5vL%(k!y8pWA7r?&--D!}-_1KIUNKaC!{ozDP5}nx z!>0l)(tuM#(a3@}IW7BzDC-U!nxnITZ_VA4$WQ@!JB9`xco*Cqmx8jB#VOz%G?ecJ z#NIF9Y(4HQ+4&BOE?E+E(l|w(={Yn}i(P*DrdP%V|}lD@3Nx6Pq`kOIWl1Qs-)_J`SIF3$$nEOMli0A0^AlcD0I<>XtNk~v* zOIw*Dxr0z?=rUjasviqU$mo%^yJmUZSgE5l3$L+5;Ec0xW^x{h@fXn1l{B&+xS`aD z4Cslm*J4eSMPTHbzPyA4-y=FZJBb3=4Is|dXTVxX55zoQL#_Ix zN}_ScZ>N2VlZr$Kc;OoZPS=1q%0DHap560~l|)=}O}v;Rftby!`9BZ&$^67bV5d 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

ssp?&^>_f5*=~Br#dCgB&gjIb8JL;oj(; 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

IvLoTK{gjY`(~BoDTGyUo?(2ol)HDe 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 grBxmG5?wv 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≠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≷{o!P0?{iu0zmn}^mwR76+QmFCa{n5} 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

(-v$}2d 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%0ACxCU z6Sx$zR=Jz|Fzh$sL82k~AakzFI3b*U<9JNO?&#wJrAI=n{r%Q2IsT6jsN$EFA5?5Y z{gwg}bWcfp*hpB-O7XRildalC>0Vs;*AK;n^jiA!`3^nvuP3;$#S8T!n}h#w9*t%= z<3MNJfw5*Id?gi6VYZ)|wt4C79tv~^Yh(Q|)R6e6>)jqdw2#rN$AhcaTo+(nD?h`o zfaCdGXlGXI$pvcGgah_y8)R?8TeOo0XLcGG+9#XuIExUQ@_KS(d`ZdE8uzS)`ZC9& zV(gJiDa!})IJlTP2DkrAPPuua6eH&KGZMxAyp7NKm!MaHrPy(-8`g@qw_TPIhP(xjeM?USyW*?_4PGo-aGA6fAM0ZH>q)uxyv#(BfPH#gCNagKkQ zrk|5MbF?ZYz1vk1iTBH(Hj5hd-hT)2gY02Az=1Y9W1+V|H z&1}{a2miBq7r$nnlUoB!XX|ND{V=fuzwP+2KTHs8|RCrHwAiJQA6FS^kg z81=c}5<{VWl#-(F__WJQ{$m#|;{#S#Mrk+JOf#N3*Lt5*YU#4O?eia9Z_toIv)sHz zq+V(p&Q>r#qLnv$q?XlimXP{7g)E;>=Nj=-sHKAWG4TAF70N*A{w(%lfOvfivtin* zwRN6>5pliIToWu$LrdJsI?UA{dEOH$;itQ;y#DC6qmS6cjqZ?a8zSGmIDmsK?yO6k z4#9S2IE_FihfHuY5{y23bYAS3{kcFES4ztuquveq)R#Bf`jM(dKU5W`lmUmH@XHte z)#{6D5V+IO%q%#vQf-!3Qmd7Etw&Poe0kqD>H$ykeq|LFa2(5-rbZCxP$x0UY|t)F zzPs()bRKx!fAOim&9jGg!-g8*%?k=4)C}AThJ9OW%}SlT(e3u&{OO;S6`|%NGY^`v zMI)yD81FZZKw!mJ?@@QArmU>Mi)xRJqr|NvIwuV<0*yHxCKg#qiT=5_o`ES*FKau& zC+)2Kv`#)wVUJ`X83GG_4@R<$(@+n)GPxMpnF)%hG0vBkGp?(o`RiFhB}m%m4W)}> zO&~ew3I)^ta}WoVw!lf|0PwNCU8=Z1o?b(-wWCzh7ow6Mn3S2CF0`(ufGZIdm7<#Y z>sf%lQDR@xQR-2VVfri4FDPw?=9m5TemD^^bOwskbTysBvS*-JPd3EM1Y+j+H#X2W zK}`+uqB9v&6vS=6DBrF5tVHB+F%c`*vn@6@O;J3(huR>d76T2J=&Ht1#ioppZW9pk zd=tgc%Sqs7C=Gv1vNxmc9x<5ef)s-$F``t(rAw6;s$Hcf;?kuIFMQux`19asC^6%l z_}3}7Pds??Hsa-_MtkFwSciP`YN&20b(~SJ@B9Ai^zcY&W3qUgcz1&0$XA=stfu%L z5xSVhp?qLfSFhi&=+NHz!8pi_*aYA5$E-I|5%VPPrO=c=1aZc{=QK5cHv98W7VSir{fO7at9dAK|FeRa!G4Brlv5~c>aMH={q-88Cz zzS3;cY!{EF6~iBEa`1VnXgMf(raGBatEVMdC^xX`;+kpZQ?U^e>GXaVxcN@|R#s|;+h``Qvd!r|3~9Yz8m)4E6r1d2vZfM0?zmvbHuAZ%a|TIQ-f(soip ze?Q*42STz3b1{I@G`{r6i#`&!Q~HggWO$s8{j4JMfXFu)GW7(x0TfC{rtZP;wTgU{ zqIV?ycCB3<2F=%6iA8*Q|A|@5%!|g-1L@|yi{kydn+NK zlLjzgf(B1C^W@!jpa99o=PF>o$T>qun*9D6$ro<%@@}>}v5Uj=5J|H?5muzra&%Ca zW`G0WnTqH|KZ%FWvt=B47Eb88jwlFF!#=(i5vJ0Hw>4%yzr%y44J8XYE8hU`(l zB}t>>rdwfWLRhVC-Ay8#-RxStXGs(HSB@V2bTN_B4d=&OHvh^_C(M9C zA;q-(E|%Zw6mrqx91ibiC&3u`Z7S4xl_axsj;41Vgem(Xqvso%?we?w!Jfzfp*STd z{e0}GPu5(F+34nHf_AI(J9wmebFvp_LYS&^@4YUjpHuyZ9$hs(Um=X=L+y7$yxH2B zX{9b1ECYwd3kMOJBbzskow@Q1)NbW_Mz$F(`q4vu%N4&e`YjlTYEcpUy*&!~WkK(e zaUb{9@971hJt)G+P$2Hr0v4$L!QitChaA23TmJod%f8@1jdb2cW$qoJa87t=zZrip zgrNkXs2ItR0$WkgDF5)#|ZW)<>{v}dQ@zbx)L10mS>e~Y8TWN(DQ_EW<9ne$N;A} z5N7Dy`0Ergdal75A%vPzN&8m&iH274=fjdxOl7y>z?AjKd#RYUWDr(ty9_gZsx1LWTq*@?PeW^Gi*52@HgX#Kd3+BCM^NnN7?C zvyGeDYIAS6W3B9;rY<_SxA?2njc`rY<;*4s`_~l?<8zc-< zjcrq-op0(Zq~GJw6xNBp?<*o$^2T7h-aF0=Tc=S<^cBc3(s@~41XY=YswO{b*OuF` zMt>zoM#z#*%hJyS369&K9j3wx>9q7mnL4#zjzJlu#5cq*)bnwk5w`zxWxBA@!KN0`Ei9SxU!H7aUoTdFcz=D}#M5Is~ku!iubMuhS2qf7p3*SlI2UDQ1* z>8o*&B`Em^-is`W+OU8d{%f}&+WweY`6u&_v#dpH&17IpsOTJ;i)c@REbDu>+viR4 z?>@SnXq4Fkf4nwy(Z68-6`O((96p6geE@w&0}&zD&U@G^V`vqImlz0qyMpduk;ug> zUySyF^A3;hDNBFUtfR5E{8MU z3f}+^hs|?uwpR{{^lA5sSXGXdw_%R)j5mDQ6M=B2UPGUItr0Bnhf}AqbQOa@^$dn> zyw93A6f^hn?UwGVCg}e_u}+B>u7PX3bKVtcVI>E0WO3j##Up7CtT*Hi`#d7d;p)Wi;f{lD`C*~f%+WhjsMUGe(82DSbBA*f`IGl&`=9AwtonHUdChb}; zjSS7gC&a2044efeH+_TJ%CAKrPa zv{p2%@MtlN_S@tKQBA@)^90>y0#n`pd6U=8CeY!2CaHtsPxy*H55n+^Y<=Ll!ON3* zmtF21!4>QjY6+aRa#RUHWOmt>63a5&k|9dkNKOx}yP`RGoHeW@zuQ>T*pkcSsFGz^ z{C~Jf!w-K+Y(e;T1J>aaqf*fYBOA^QtN~{=kWri`ixm@$cz*Gc6)enuX8Y*BINN&} zboc3t>LUyRMmoXW&Y4e}BJ}+gLB$V=Tm0QtsJMJ&nzbam7(y)$W=(wbbnrZD zKKxO=OTAJM+bgGV9^U^{1Mk$(qnoSYuqJ>z1MyXHQ^A+sokTtHd2ezss5DW=$j+B2$>kbZwz{M<`pN+tbsR|DkutnZ%m|9e6H7i9fc6EfM*sSfcF z-lC&u_RJ5P=rl&u;WtnnIT+B7?EikZ|IqTUhd@x-+8D}BbVI$S5GmHA8GLsF-1Ewk zimpoX$jL_sKv>79hcfP8Xn);(?=Q4J{ZD26KQM^8$f;(wEKgxR^&@-B%Ja-nFWh#s z(y85sm)d`f(NBy->o2Tp|IdN^2kTXLP;N*QzZD>480vo(e)@&xoKXegIuo$PBz1`V zX;t>X9?i5(_sPMukbyZ_>wun^#w~08>U?*~-ImyDpS<~b%Les_YX87rR8$Uwg9Zj< zWcmDjql>p;HY!JRuV6_Zm+2Pn<3Cn#Zvc?r77Qpu<|uai|AQI+7cBMv zHu>M)}FLA&=x!INXz3)_2HASJxABPY&J``MC zdpauVzWTWTG09%OdA-;2m`>fZhXL+ROvR&=>Hc?U2TZ;5JpV zOCaoh!3z!JUFRw*%|AO9+cNY~`dr}sj6Q!gB>@Tq`_vu~mY~6d=gy49K0Sk}E;dQ; zD&l#=e!24!lWhqdW}gAU^%&_8i-S06|EE&e){L!2;Me+oB>%yNbMv!+wHn9>JX*wZ zVDpNoKczy>ekbl}4JJDR$@Ky~sYqj9v;0v@r>kUfIqEh|!{8n3*a^gE9^y9ASW4ST6;{iUe6(Rn!A^pvIt$h) z{2=Fyi8#Z?-^q-Sf4>so*y0B~jwHJHZJtBpXh2|IusA1I6!TOS7|%V-V!*i?OxeD0jrHgqPAZAN%JhWoCk0(Chc zEO1nBSi3=T{uEN03NeVQE~wJw&dCp0{l=d@bVON0IaYc+C9w`I=SM(Pe@;~Ur9c|Z z`LzDWa#+Z-=anTg85Qtkn@N?mUwla!&rWAm%HXF>!r?tn4)M+ei3FqkN_v&LUqr`@ zFgKbTzj;EbbHPrsDtS~So3jR+p#FVN%B#dU;C>NlbbpfF=^iwsl)e+PV4cUI@S|YBGAf^LS;>L=9bws>J&S z^-VSCVqqc8+WHg@W6pxXxVwl(QrZmczr=>i{*=Y%lIt)+d#@~<&0@uVm9>0j?tY=3 zBlu-C=bf)WZDjeRUDxzyn?DVWu0!#@2peJP&OwaBB}+jW_#Tpn`KgS}VeRevN&xxE z73W^V7Y2ZDO`sYPmzp|q!UPAxffgXx*wdEYj8Q7*=BEM3l*SRMCr*8100(FG7FJ*j z^wejS3V#}DAerY$9|4o{X5=*jxPD>AOY*biR}a)=Z%$2#!}HvHYTpXernI>8g1jL> zBy#0tx`OwZ=j5+z&5!QGH_1Ls$}(W}^z=qYM%=D$Gx`njepalntgSFCK2Xn+yos}* zkYRj6_rv;kRMb{cb-IvE$BlN!-%sU#hy%{bccCP^O6Zwrdcl1K$lA%18Kw!QXHJv- zGo}4}nsH=*gqo(?L1K4ZL`bV*Vt<^SvTzO?7Pda4Rl0zr~NuPQm(> zVSziN{kQ2ByytP{?Y3Ey8*jf_IB(jMh-)rTmXBj1cAz>Viv{CLL3?4$8`(IIDJtOE zSnev0z)xW-zwyii>uqU=#Ajh1ac7Pg`8nI)=Y5Pf<@UrkTi%vpFH)q{%G%2>c+JpC zerp5xTjy3!M#>iaz*qPe(q=>uc{396!%rtn94>L>$3J@I%l^d$;5Hl_5D(gLGBu&g zl4=BgHc_17`lPisd>rDL7{B>Q z0{m~di^+!B4#;tHL^-ZF(?K0o-{HtpYdx#ue)bYy44;9o{@q{k_W~F%(Og%BZ~pYG3&}UdPLqc=6;GwEV@6 z#nxpVe9pxK=jx;G|?nuJZob1{NhFQdv8z6T0;Lq74yfu|4Sd*aELcpk}q zYJ|tU9xD^K1;)nx$6{V#ukXNe(Tq)Jm_wjs`-QaMGb#Ue?k$zt+0V^4R^}V2G?HmY zq`Yl^5AUD66{m!(t^;p-&S%MSOnjUvSgmRxC*Ibiip#yz7=-g@5JLT{Cu7TJ4^L!f zUT!`V+?A4V2OPrfny(2+o!5gIZuz@>WfQ4kk5fSS1`8QdrvN+ctJD;6t5tvT-!|&J zlXqs;A~^8I@1%`xYYTppmwLgbFo{dwGrMPPBAQx@O0fG6-R_?YB$QNJTd{2?m(7nr zZi3ZUqe+`A{qFB;Kd8D!Nx|ZY9&)txRTDl-ji5%Q6M#9FPYU2Y{CvBw>i?RyhH%2e z-CHEDfsS~Z3btY1))!K4CxF08*+Kvb()8~0qEDRa<64FGx~B7Ey?2=i34P`_@KQ|i zYf+we8^w!r^e}!3ruGGKTE-sQbr{%w0)TSs;b|T* z(|dZQKhj95pXq<8x3-=8M^`a_>uM&I2FPKo<<0n|!VAOhJ*CQQKk~j4Kd8a0nI*!{ zb4_-T0wmZ!jN6#N?>ae9xqF~Om-YTZ1z*BLle@URd)5sGhNX$Z-{eh!C;t-SY!~#~ zvT_Vo4f}hivn^*`GDmQa`>c+oOOa~{$XY8goX zp7D;4+LBKBlMlQtIn{OSroaCQ?UCGx)g;H#nS0xA^kci)7 zy^;02AkBxs{WopDpzFCjMv^N(Qu21)4~1HiXe--ud*t3B^@}8AqBqq5Yu5mm$gf{@ zXIBU+4>!mCiQ{fH4(B$8#YaOjPl0;1kGEbdbqeOkS0pZck;UukNfrv^Ou--WcfZ95 zv9QS^hDc1Ab>5)RSo(Q#!6u%as`lAykX*x}A4dDF`o55GF;?A2yIAQoO@~{@N}?a8 zu92d@SV0xB?r`yJ^wLALDZ|yoL*kBxwiw4i46VDx4G02tqA@zyUoClzqR+5RaqV;{&zBd$2Yak@gxUJcnNT3pxq;({dEt(e3i=aN_VrOw;< z7>6AFKeD=S%P~&WF6N|?y83U$0*}lxUVtP5QSacV<3&9ofRF5xi535wB5Xgv#4Ay{ zWcbEDS}343#-iZJa`N)#*8DiA``Xio%R~_}$T-bEZiVK57AY*@!(-K`t)i1QV-#zh zE}CkLO}ttN{0-$%`AxOdJH6{uts2{TS}J?Jf+54CEQvuF&|%Vj8;fU93r2e*>N}pD z86Fdfn_413JJXfp?p>`(pu*2H8oM4@e9qW#Jndg%pwi;yHJ9d?px7UVyKjG5WiFpc zM1CK~KJ}!?tw!u!fdk{?A!Ub?(QxMddN*Dh$|1@20HyD`j(Qe)?y(eO#>1zG&zNq= zUY+oQ__dNBQlBXod%Ui)RsD=94?^Xv4(@axI+#Tp7`5~llwiBPp7^}oBOMjyp_f~% z54+BNyJYdkGk`eYCcdW6yQM(gjozz!=UTqz!EdQ0yxSU`eCC&sWWe6aNO|4A_8mHJ zxC7m$Bd{-d&4m#L^7*`d$HAT|_ItcPO{;;A$Q{AqznO?O+$6CzN2#>KFN?~@mAjUK zPlRcJw-#{Bh8?xZ;x7l?^m*{va+za5%bshr!xmk320902g-`06h`7AD)2O&_IQssE z>DhGsJ0a>#0vK;(_k1!cLCCv$xM9GCnC_XR;Cx3ggGf7)X0mfdaa2$kvHVKpg<6op z7t32Y_7717OIvtcaona3K?24CKR<(DKUbWuhECAuO+B%Jl%zoAfU z>4kJ(DHQhle!DSH(K@M-?zLn}r_j#@>AT&v^T;-d{ctk}Tg}8WAYZci7s7}nPUPms z5d3Ev)r}gB6r^7%Ru5C8|Ca-|od5)iX-x^`Bz0e3UoT!TgcU`^p%<`yGTOMW?i*tp z->i_rH2^wS3dYcUzM-Gl+&tOb>5+;VyGGZeS1Z{+u@Gw%!aM>ly4qFOlj^dW7YWPD zYh?j-PMt#cCSa$N*SnCibc+K*CLl{f!c+W@-*bdaWIldh9IxHXIBDW5MCgzzH>J++ zq-=jJd(D~D@;vjoRd2P&`9K0q&nO`$X?uag=l=6VSi0ywS>MimpP2TB*Lb`ZjNO&A z@YmjPyp43&DSg}W-s)PKwN(G1*2F_(-lJiXnRG?4yX}s%lT3`~2P16pTiRO{7*Xc* zRO0|*{9N>J>~6m_^~RL?_@zk%kY9?A*iQtnW=n4$Gj(hnzy+{o%GWbHR~xD!Pl~IW znj*Zyg}9A|xu!=^lH*l?_c_&@qJ0K6+O@FPy`V-N&&|7$`qM`9#Y#VN%3*S6ua7Pn z$IdCVJO%g};^zSM5N)9{5`~pnVKO@1Nkrz}Zn?CWy?$LOtHN=;ka>J@b=e3TXL1#; zGq{G}0BMLCb^ey1LPO+T;1$8+QA{;2)?(hl>)(+bYI>@)cKI}9&^1M`)V-?_2~#5=NZS8 z_+?iKV>;G#YaiMpguk6`@+$}1zt0D5J8Qtu8cgI-b1cXawMXelt+b<6B@a0j#*heV z+JF0-6E%*M`_;ycku1cXMb01s$Z3$mb{1CAvbVYAD#mFMn5dW_k*RMTW;Jp~O|#%Y z?X|a&lBDZdeYjy&SPOI;0H=+ZrcVD1Nw&ug_2Hq4O|J0zdJ+*t{aT3 zVZaZUh$>0+>42EePlL##`_d%_BzE&YDeOVs0=F>Xcl+J> zQ;7BAp96)~c_br`^dGbvU_p=rbpC{ECLv`|?|rccM9i(39NKKwS~YAl4OOMw*L|{q z=hK1X=U3DA3ysjeed+7=eO{3n<(d#jrJ6^EloZ@r4?9&uZoYr6p2+%Up|+u@@h7tR z<{Rk&^EW}#E&isa4Bs0Y8Z;us$3EFb_&bDiuNcWNI0kA=xro_PBo@A5?~eVb(&qKG z^PQo?hx>CM)U54!qbW_WJML8mH&YAW^mOahrL*Bq{8}e1#i}XYFenb{*Ts2mnAw(! zwX2}Yfa>nWya-rKcC-@WC z{LDYY8V~Nllufyhn{1-j?Vak9HVL-lSilsJ0*i`N zqEb94!_!*b$5yMZPe8%dAvXlcMcQE7O5om2tO?9o)s4}1WHPNPs#o_})xE12ok5Ok zoO$dOeNmyn7!h)kKtC~eQG6QJdWPV*dn1~{OM=lLv2oz0c!B9LdFJW;a-MOK3)8;bbYmubo<68 z-%FTh+Kzf(&!H$eq=3IWJb{g*%d@0IfextdRWB_Q__~Ai`rGR^Trg9ysi&MpZ&vuo zMKs4a?b|&8L4R40`SyNxwd(2}zerMeboF%O$mrA~x>|<>W2a^ z+DmX5bn%&3yl7Um%D0LKv}TGKpgNnUf~Vxb9aA1&Q<-N8p8ddhX?nGmsozzumG#Ii z5f0D%^c;E-xt_2LqN<=?HT+T_kmmd3?L0B#R2uFgtoDdEmrCa|zX(2P4ou8hlAm!b zT&&hF!fp1B(3>we0f~g}Km$Hd5q8XfTE{oO!Ou@XAH&yIVObbZ$fYIg^9xcaAb zgiUy4DH82J=g@mI%AI6$Z^%Kd*WxCcG}P33$Qm14^uUR&x=|-j~cqVTu2If0HjY@p0)aAU78$%S= z3+TnxCTs^f<~fl;Z}S`1b>&Os4pqQ`RZPB0JCD?y?k@LAS#?;onp^CzyZ3|s#*%bS z=MTvkyCsBco4d*qXaC=5`lIroPJ+6Dv;TMG{j062ki2wF+ZY>1-3MW)3))%vR*NOB zNq#yDlkt*W0=dZ_HDW{_-88Sb#iKL$F|Nc#NQt2I>mZW}HY4Fi`Ty9ypRHOwHBn0l z+4t-|7Cnd;T9GUC#5iZx4twjx%FL zEK3W_a7_cb7~FH-lyRQBC1w~kqqNh(YGli)qq7c6Z!X16ZZ=jR=qMo)w~)#-i&}^` zix*wDK3(SBj)t7?iiriH!kSKx?FI0nHAp30V3g}UzpRdbO5m>z$G6+r+U=xpyDh*k zdNAng*9Y@b4O(`J@yg#7uDIkYBk7cKFiv+5Y;F&u8~93^u6V)NH&ySA39f)2Yo2t~ zw{T0hDJCaPYIt9*e}(Iwvf}VgVNQ}QSk7Q8IYiqc?*~t!ffFeEk&MYjR8jL;-^6fG z{|iLV!gdOFEd{iIac{b!#XioN?0;H0A%8w?qeZZ?g2#Tj4t#j5fV=c_!g~+}q$)e= zKb1l;$qY~ebn*&_qOr@hbN4q}DgSeR9|jxEkZh{sJF|IN5251$Qj)>e9j21 zvvoE_k?;V6FSi6paQSuBl+NnGcHcs81q%{WQJXUf(KVBTnC#E_he|eIQ`TFZc-03} zLXdUdsyF7!2uI&-gX@nDjC`>b2QI!{`eGp3FV-f3JvCW+i+nLLkx<*Pa8Ggg5q98{yW4SxlJ8NnzH4G%nxqF-s^=}7-j~Y0x|XDG z$vbWn@@6MxutBeJuO`54WuDH1G57c@=w6Hf)^-s@!Fc%#XJN))*gR%;Gf2oCMcD7o zY|2EKeeG%SbPnrtLPFs;X2&xAR@Y$}^_AglswK`#44yaR4fR_a$K!#+0=3 zBB@u&^rTYXqk5%X$>?y!!;7L9t9*fwV`|Gj&c3C)V^4&`h(#W@r@A)ji|J|QsFujc zSER~y7TTtOvNL0F|0q888>WBsEls*q9(LjyRJZE0E6Oy?QGq+o5qP-Y7Q-ckYpw$S2D; z)(gri1l2~vq!T9%7}rLNrLS}e7V(~y$Y@Dr;}FkB;EePAa_zgt{5)znX= zYa%W}lGvD~_CA_d?+Oxn{Mdu+zGYchiQ#t+i?KI^)7>uDYoARcIE8EOzKVty5|foL zBD;&qEKAPY`j2Cs0}1V``H_1ID4|z1*BDalD-uRYwgUzUj$!VUL1U3#);LKv4QUMf zxSfV&$@r^vkPT?AU&TQq=om^uK-6l-cJ!v=!mW0xPO@dmIv&KWhB{g$U%UTFx~z7i z8!>8uxlB*5@0)W$SSPL(UJD>CC_$gptb{u@;BYErI~+@Ri87pCjqM z_&j&Qt}P<=K^9C_L`+3mrI#M&B){eqik8Tu*7C}32YAxm3&+^eKq*l@i z1;-f#I=gG)96iax9+w<@uv+72R49%avm3U++7J9R zEU=5_x=F&f)@HMEW2J^Vgoxn; zmrFG_wYnArFeyj1F$ikv(yvFUZ&}(kch{tAXd!KwWxu(%t62o+I(%=mv2S_U&(&`d zfR)H(^Ljle4J&XO#S9eJCdP4a;N@MfCmI{H^jjAkicDD6`OHVe#+r=i>q0lz2|Wz;kd(+ z0G#u;%+#>56~{nz<_|hKf1eOC^9qK)-+PMH9tW3QM*J8i3d_iV?v8^TEr}v#8N###zX>G|{T6b@)1bTZvk@hjS>cAlnxpe2?uH1~c$CR~r+u%W@ zCf_Bpzn}`b7`jp8I$#nVKQ{ny?fyS{PtGnIXLoH;Tf5s_WSdtTI`KpPu`PTeS(02B zy)JHm)S10)@cQqLx<|^MqbF{m6TiyWeK=S1JvzNF=7On`tlPsw)|=M$NYi^9?9#kM zshFq-{h$JoXf?)b(B4;z)S}z%=rC$I-FW3tb?~h z^~GZAg^GSAcC^8nZkg!xB4^08B&Cq%wNt*m=ADYeGU&77v7edZMfQjS80L|f?^Q8s zE)~nTao|2OGf}|wyHJ~a+%67uB@OH_Na8J=<|=4%!6^-R>v%=QY@wu&NYlfnJGz0G z&_lSm^Td|(C7w^%<2!|y{Tp`2Fp=v4lT`yIC!HLWr+KmSK}VVfO>AC;-=`wn64dIy zN#fSOBmt5B?@&aILakYC5uyj4gbomA9wS(uL;0J{pC|JB7Yj>-!#OU+A~)LlbBT_ScVZL{}AvH!yF!C&~T5Bzm{ znd6$4v&8SeDABp|!UL_*FD$7+pnPC~mMh)K;?(|W9tX3}!~{!kwM9y%r?OHhFa8_! zk@{aS;ekugc+g(NWiR?Svpe?-FZp+*8ZNiEYUJ7f2wdlq=~D9&w${Py9xFdZ%pxt> zdbfP?-=G(dXo-9XHB=`Om=H~xySLm61^qeQF~6$v_!GQ|AxV z4SZbq^ZqI&=a?xNCZ6+V!R`aioOy#%KglyXfreKFN{sKaBNKUgete5}UR06Fx+12T z`@ZsyTI0S&@G0-|wlZha4>-G#?gyuC3j@C-JvN(gQ@N`Y>twUz&W37rC>|KAp|L`% zK+jzH0U+f$zD2>ovDmM+pgb?r{XOmB^XEDUmaoR1>A!E@r<}wPuL)=;AJhC$o-B{` zWzHSeC-Gx+jae1yOVr%Wqp&r)wr%&EnyVXkhui5qR8n4CYyJ4EL|kozS#Al6gPqHG zCg3d{xUo3QIPn-;Xd@)eSe&6H6@wowOPNFTrjn@Ss@f3yJ*Y#t_IvuBq$?{f{`}{) z+g!bu?Y=AIT<1RzO=G>i=(^+s!$v2b;%Cl;P7&|s4oPL6xhlK)H^ zD#OSm#k(MVt8-pQac$3n{oDzml{FoZu}e40IRnAxQWPXxro!-wVK)+?oEy`PvF>vg zrX8{ssRZz}m1#+D(_yDkPg=rm>24&5v|Eg6KeE%zh_$N84Of-@i?OG61vPdQhO|fS zzC|$4)Hsh;Pq)WOvg0pEzpI|6TJ6ek`q+5TAm3P2IyUcT%ounmi#!2c%hOQr>bu1T z&}#@pG5Fl zyvdk_OX;2^VR7)0NIyX~p07rZ0;bxrBp5(}ksXw_O*0y9a1xf$;iF>&DW8q5H}Fe& zA1H)fwb!N!Gu=2ToA}9)NTrT=I>ZQK-+0`;*31oAUHUBYeQe&zXjkZnPdEjG*gQ%- zaAJ73=mxg)@wt7StK;KrCH?LUVMf-gFZ!gpLc?XMy_yu{^Hqp;y)}-k@u(TxcZBsz z#cD%$79W4r(hb$QLR1vQK!b7U`%_#nhF7q=23yc22E#6FLyiEoJb%z-)}>H6vJ_utrGQYjTj9J^m{7qJs9 ztrLj6{#GZfqH_DFyp&0wwa~ImDA!%5U9d{^Lx(7K4}nQWJxYSWe0BreuJ^7j<_ZPkS9N$?r5%?{r zE?+Ls^#z@=Uh*;(%$*P+cw3@_Vi=|{eb+$bE3R#Gd*Sn`(XkvirRXUCl*GVNg$TPb z-qY5PJF*xt@63>7xM5R~ZR>a9$Qe}2yA*ociduoGihCh-=tf8msXcq%IgmChYUd<0vDj}x^SyiYV}yAm`yR{> zr~W~yDa~CyAO6}!OEqU4%@i$*+d-IaabkO6De`W=65>8(bR9B`k_Y{@_q5<9-8~@; zb^;qwJzW5bGuB~@mpE#D;wWpNrChZWBNb85w&&t=DL=?87Z+MATRln1Tc(&x5^_{oW&VOpIOazjl!|{{-8}YrG(5AwYjGvCRNWvv%zvv^z}^MLeO&tk9oN_7 zpQ@8@KdydC|9ZvFhtTa5>xC?q*?U!q}$vh|~$8#5muq z-@y0QF#4oyY#clFQxcj@VOFZ*ID=&lZ3(l5O$xlj+p4y!?=h4uHF?58Yp1x z2f~HU^;rVW^b2G=@yb~F3p?{K@<~SpF(7MHAt{|T>ZW2JYD3$Zl4-qbG@UK^Lc`0qZBCx10677Rq(XK1qdzE^R>1 z6M(xj-aZ66Ij%Pt=b)#ktci0-`l3nlvL)b{3VV&kn=XIYbu1(q{S}tLIz?ZnN+}qy zJvENz(6W+Yef)ggQ+H)0(d~TJmxh66VrNuhS|Ycy(v%`q#OXOhya7eU_NU)ywN3m^ zGqY$vE&DtIp{nVzUD-hWMohA0l?*I$G4Y;5^<;GWYsS-~!!&(==fw%^(Wlf`l)+Af zry0@8tko}Kp3pDJK?i$b&d}!>$?Mp19qX?;e_96twLT@%BWHCl?b?@WjCS*I z6*T(4Gu0x~ybiS!)xYtS;X8#Wmzco!<2~)Jz1&{BJq zhK}L^d6{JwB1Ro%6P(iQ}e8r8VW) zt_u$5IVBCL#0Kd6yDPs^aw&zg8^=$Ny*)3$Qr8?{l}>1>_Z#z)RHo{IMRe`WYncX- z_h%ol<<|9^`Vz|V2;W9d+C>F}oq+ug3t!Bt7ERXYkBYSmT%_OJ4$QW4Ez6|NRJQ}8 zC-^ieFghF)FSO?!UJyP5Zaq)rO0k8LjUW1&CJ78cwT#M5s5;^ebrk=%b5 zJ`f}gT?)yR3^2-qED4FZU5X0-c$4RytytqY&vr3e4c@O`@md3^MY2UjXP40p*zh_^ zzs@EQvhf&HjqYU9bG6=PN}CrCaJp36I-A!tZ^3I|WRz#DkN=6Y+JZbRq99I&zuAUu zuin(3(}oIHTlEOkfVy8e$!VyLa6Xdu4?<~?H11GBN<_Dh3p|k%9cN7a;1jstnMNo3 zY5V1mHdG{gA9ZntT01Sp0;8j-?(RO(_~7ZZm*W!*Inuc30OZ(oHN?3KrKfsg3y-3t z&skLIzq0GRPg(5a_4Icxv{p;_;?&~y z`=N*HFj?}?G6IAr-}?bInkZwYynWWyFgjXpukTPog1>6>Zcu+`|FUEe+Y-k|W9Y0O zYpM|(H?UP<-Q#AAB}%&$)UZ0wNbyihFqv3xg4e}n6C?W~z{E?81G%8A3CJ6%#Me^nHVERPnrpKKwfwBe^$DgCP|GJu7Fhw4GkrN9R9stUsS#cp$j9(z!VhhtxjRNDd$imRePz@h7J~29 zMEPEi#|G(~UB(MkLr@WT-}WWwAn*XZW{f?KY5H&My=7QjO|ULXf(1{4>jV-cxH}9I zAV{!aL4!L43(g<`f(Iu-1_{C4gF|qFySo!$uwfWElkeO6JooN%_Px)!zwf_!)~sHu zy1J^nSJnGgU*AZ$Z$XvmOveYGanAl(Y%t1!O(a7m!fr=wfw$Pc7k&Cx17oLjm8cwqI*ex)_4fFpJVQ>b>&DQx>0aFx9kX6vd&2#Re$fEFk!Xi3!Ui$ zba|lAw2BsPckshNZ{+0Iemf)bsP~Bf)X%J~9fA7}%KYIn1 zJ44TLo$sJjIOf^MQF<|w$uJi+MUDh?e+bI|Yv=x}MtJZ8ymzt!5YNc`-GokC3-))1 zvYUo@Rsvd24#O>6^{e)DnYROojmai$&`>WAldS(nkqROPCq(Zqo;N-*wv-6FrUcR$ zc5<7xhBkZ)D({Yq5}mgNPXqfE0LPtKeWo1FaUFSwLHqu|6jyYyZ3r6HG+0AAU`-L| z_x^*7%R+-{j^7a`WTN+WWMBGL!FMw}-I{gI;S7Yj-_Zx{rWY283?_^_nnIsmaj|{( zlExj&Jd?xZM2q+HU-5YG)f|P&?VHPY$@@;51AhVkF)KhP^8$Kktp6Dr>g-Iy6s^i# zUwX0Kgv$hC1B2{&i@eF2|DB!vKUvFvDwHq%JVcDlU#zIFS^iB*eB;OVZ?pnS_2e@& zTIs_F-Y8lc#vkNc z4I!|A6*9d;yF&B-YKDsYNYULWP#ttz`Z3Vz<@S!z0AS zMbq_v3#iIPm!VYhQV#?E*Lhcb->jb<*N*uYQZtm_?vU7%3ha zpt~gazjlf8zxAyDPwx2tH~Nox>Hl02{S~~ z2m4QdgG~n424b-?b1CFe{y-nSpidl*fDV+)B53({t?!7Un9q4}z^; zVMzVGhMrawz+^PSD3Gg-$`Ey+iQSx@s@M zb4C3uKc2-juhClBb5#|UNwMG9NGP_vDnv-}xVO^Iyr{=>Xs8GAclSIjbZ2>%$KS6| z$F6S-5Wo?Xwg0^3k!vcD;C+2UxbuX&Ld&mj4VtEIUHausPS$#%=I?|3SPurYG@cCV zf=?&Vk5Vb%_)l@lIS~cD`#X-2rb+th?W|{UL__1JEpMdVx3gG)J}vzf-S7x@DU*o^i(IYuk+O}-hNs|;mppCI+RE9R)t?$U0b5!v zl!4XcpxA0^7L zEB8aEOafuB3rupVX1(5I&YK_k&?H4G(v*mQl|N#LdS{@M-9AXN66&7J{_;{jo|w)3 zm9rQ})Zd}EB+8!ts~gh)+fc<{JaIx>QG+oY+}lqc*~s_y1UpZ?vMTprI+vqp*F9YI z{X_J@cc9Joq?xd%8Wv&mS);9F6Ig}j|B98L%EvK{Y6cG_xOssI3$?!&nY@2UT8(C-s@C(vJ1Gt?Z>p);qTDNbNsN~Gl(st@Z6$=~NA7t@p3Lc5tY6eV z)*AcAr1AbW=^0dxl-ui|fRo%dzncs-^YI-_iQAHfwN~M?6k@jQJ=UT(%`9w0Z`%me z-amYbh;8|J4-Rq~3}Y@mvUtNEE2O4(vTIJ(bB-(1#HIE`G)uyqmB3PP9E@{+e;sHB z1&D2gv+`m8E9D21A+u5^oTn*b?x#1MI*Wuaif2%;98}s3&ne&|)(CX}J`|LV)2wVq zn$oZP&l}OZU&T~JqyumSf-!Q3#9?dJK{Hf6G%H5Yh)ND_yCOlqw!ZRqSIoOd{K&qkisO+tQe#<=|vx)>@X3QD*%$H~mJ zoX>l_-Ku#Kc+*0;lXriXxSTht#=I96nJ_F+ZPDhqkIv|?q0fh~%=#>!jEjZvt8;X3o9+GN8;R=#;Cg6023ZK+pt(3g1@u zv7dI%ErGdgx$G+&YzmGoeHJWCeeVV4-As+t`b;J3GX@+9!;)Hx4$b4D!5l@Pl1UMd z=qr3gTZ4}?1Z?>{watg?o{+e;BxWH#%w_mR#j)A(b(7xj%5+~6qu8=_RJ=^hZP{5H z#)$5~4jN1YY`*_^SD1O0L@$NOKe4zv1)p}9K7fh)qu+~w(e7?kGQcEva<;ogj7?jg zqCYQn!cE8cu7=6UzTs}~yl7Z2##d7iZ8Ztkuh-$a@yqcSoeAo=09jeR;?4r}7@mI4 z67`}Hw5h?NOKJD_RwZ$vFb4*qw~ssUiRzU=)^e$1LuXQ$&n)Df*Ql9jAP2pPs`Z}$ zQ7}vIZ|&WQyCbu>CyEs|V!l}#$>xCPUB(|YE}pBIlx-I9at_;XrX?ge`%;Y=1ID*G zgJ!S!B%Nw1)sVKiS>^MImfWM)th))8ff7drmkBCyX*of4bQLz;|K3%O{Ow+!MG)xT z$c$O7k+j6D-z!X+T|~Ad~Bq?XXp}FnXqXdv-rAG8r-0>$6wg} zKd-$zFsry;?~4&=UVLFdQ54{{f%&O&?4uwS7vPhg>zbUZ1kz{(w+Rhib3m;)1`-%k zqim~zf4Jr@SCwMg>8r~hbI$okL8?K5in5Vjg^&w)N?xovKL zu*!2rhsRIXNcz@RYeC!Ux)3l}z7XZ%c{OEO-LgXucsrv@b-A3kX};QIYi8H``#GIs z$%-Q`_vUj3XiG$QhGZBz90107U(+OkPD9b`IjliT(xagLMeo=F$FM|{0|5<*3Su5| zKcL#wVE3;cRqoM{YUJhFGiL=P#JC*&NgOqWQb8HHAZU{trck1eH|PLz`oHmIJWIJt zYQt^A<*l#BN-69of2}t4!ZvR^VRcJ92Jz%b3K9_4^z5SFXZ39q=kDG4&x@#+Cly_C zDl3h7eL{v9J9*DZPHb#_XW=;1zsSqFEnMsRYZOa=ssZs-LswpHd#SD%bgjjWZaA=* zt|}+@(AT?QsHO`FNQN|1j+s64TI_J9<>{0C?lsiq%-NfSx>ruMr|_gQV8o=D zdGNi;CgYe^EygmAR+C@Q$nmGvi#AI&Y4si)t1zl|o8=kM0H>v!`Mz=KxWH-Iz6q@L z-Bx51-DWp3minqnvH3|wCS0+4fxxj*5*xFw*20z9Fg#Ab4yhNdzWRxTr1rrZvp4V}U3@8@h->i6SW8JKVhaB- zN#RDn{*)WD`&011-by7wcv=C%Hv{cy>IGEQbMcsD>^GG~{07eDhQu&}3W;rU*nA`0 zgQ15nF}i))LDsXK-M7K=;jp)tJu1}|^}N@1m&3J#jVIe*V@xe}IP&Hs-R$Qf`amP1 zzBOWF&{7ZFBhOOC9(A`2b}X2XEnbMJ5>Qgi6AZn>z9%OB71n3UdDP6%)5FXb!GyM+5edcfMQlGC znT>MeGB|m|<#X5X^7MHjPBj^1{nIaIt#IV<5MZFhtz&yjiJY#$uUdVJ;h9+px-sHj zB(BNyL;bIGG6#MX@;_?<)cIlt3M(KBIN6(+Y-f~>7`PJ8#@{pYeZA~#g) zZo|+f40~6GzB;}OvjRWqA_FHn_*Y}ze3Al?n}!Ne?nLL$ZGchf`FelW-vt;QeLFLw z@7W&ARi|Nwd`{HFo6w0tD3?4SyW>D-BgXwSPpFT+n`*LHwbJxhIH4sGT(8QG9&-P|fxLwqD3v@u`;A3T8nWaXy@6 zmqqz>742G#pW41p?WJ+iTF+NzJ3I&x1wQ8a6l6zQ$~j)PW;N^b!IGRGiGSGXee#J; z8eZ9Uu_r6$wHJH!v6r8Q%%u1=Vk6Ldn`YU6>IZKWcbfDcuf9zO%|ROr2C_>-QHH1G z5wOe^tO(&5?n^PbYbqVij9|!v-LUy}t&lv@IXyf3a0sbWh5~z9LqrS0^1}XWv!%QIaegoLLE;Y!v;C5$66!|R0NA!>P?Z%Qt z*Jfr$DhOqwiU3QRI$kD}^?@1|B(P)JGl1&7p`J#xsdGz(@?1CHgfwWM4Gry~kG6a^ ze9uEzwzH5rxW1Vv0P%LkiD|cG>EEGrX*QAmcqvs|Sf&q?K;zfp7y5}`dr;Qtz@Xeb zNA^eJB)w?2TzeEO??$|1Jep@M`t6cqd_qN%%yt`#V9}wbi3IR!>S>(IaD76EAhRt*(A1nxoj>zO23AZKDfyN_MmFr@5n~bIwrd z&w31Rj`+%%N}c$9nIT|;13aD0-S6YqXM}SOOD@G)v~#?t)eMK=-S3?#*F_d*f~o$t zKRgj7XcTbOsU}8Iy(!1B#_&}G6G(LtnX>q-Ox=P=$J=~6AwAGWG|Y_|9gOl=Qjg`x z&X`v0E!Dq5);-m?o0HTF|AdoYk6K~?l`Kd+K<9i;p1YyYOLv9LWwvS=E)oqwT{gVa z-s!YQ%_kUE1BO~A1lJDH!{wh$pI!Z3YYkL(gg}MeuBDxI-2Z5k3Q!Rqtw;y2`$w)c zc{QN{FBCV!s~DOvkRt+ojFbKNLpBEUs`(0>FJzg{E+Fifs(~e}kkIM3ouH!a!%BgS z8z%AqKH=NV?O!=|HBGU=;rt)l8XFAD!^-6$M~%EF{2fuhU0mPPJB>f2j=l(Lal1k< z4+*8gS8UiRH#`uMM81-j5E9c@HlI4S{9;3n(k^ZdCx9Er4Q=SPlV{s3<4MXzXDn(L zL3#f$s}@~?HBK7#r+5$TR&Pzy&ue%+Pj}mq(w!?sXF{0%*exr_+1g?YQ zoh{lp)OMf2VHng8JQRrO#o1lky$s^%fFV^2k%d)NxVU?iZeOHd-mZE@uAsV1su`wI zxtzI@q(%CD$Q`P;gd*cq4C3wdXDf~QIpSMNvfe;jUclJ$;oAp( zPgPRNpJQjv`+0eN#PXO~5G{{U{GW*@B?91^awz4I>!@X<4{14MoXOF25#WE@_ zN&24Vci!~38M2i5Ide6~-oYj8<1O)tAAW_=5nGw_D`Zv5fqL&yMsMJ@@APUB`m}-U zrg0i-rJS`+^%?Wi;Ur3P+u7>jy#8u`M!6ukW1sG1!z5FYxO2@d$wQi+v{3R3I$Hah zbilgWCIyb}Rp>)(a(~~;u-eu^GqToSpZhPIsCUmM!s{TrP2gnxF}h?A(rrj$yZ7*b zON)}QJlYjizQH)3BP37C)e!m|2xIQVLuIy`_}C#qSTaMjW&8-qXXyC{$t$2wm)w|w zr~1P_X5GJla(c!OA;(~}^9Jrq7?fp;medYiQ_cr^z{5Calpapae-LKOS-xFo*9d&< zC?plz^ifFUm-4mh0oE^=DEoXh+~kwCAQxZV>Y&qFWe*7-2Y9_a5$0i{IC7Fj;NkpZ zTWSx`?I*Cj+GKzA!$zaaYZh4ou*#hQ(DB~wFUYlg>!NzCnn4wOKKUYr*Ox#+rz^`9 zDH}B{tF_BLqVM5J>^kTgcLl7_?@gE;S)uA~+cUL=C@Ivr#lMA~$7X(MyGBza%uQuG>-zo;mUC1r8Eb*8%ym zrj~gb1jp|jNj+H)eI;~N?gJyp=`HbK9)YcA4kVE_Z=uyXVMVYR8&IxAwA@5KY`Oz% zu%pkYLU~kl-SUh&zYmHrQi>R`dMY9qAw)Qb$~dkJiy%zrAC)h7j?HybD}goA?!h0N zNzm&5^VljGBn@K>9m;Ou`|A6fxqD%c=q~l5a}achD(RdJLCYNV9x=Q^WoPQ4io&$) zkthlQTmPHeVK0cj6}+MZWb~&BPJGh5{Fb>D-tzh@D)r9wX~BQs#Y-e+Limw;h$C@V zPsXy#pI7;KTBD9GzNlaxYozL?-GRoNHQ@9Fh>n3_)}!}YQs8?x>ukxR{x@M?!p;3x z7pTbm6S-K0Jbh)<6!Jc_b8rz{`28lD0%G);8uuNUBGM9mD(evu{Bo@74Xvp0B6_&H568uH+$T(8WNl{dWJJU@V0(*rRTcXfy4Ha^Q#+*j?h_s$nDfl51-m+ z1e`!u9aMw0RppnA*SJ*S^1st?Dxd@Yt+1Hpggh)JxHng zrh)WiTNEOu0OfA|?MPjk>Edhr2mwn;z}@*<2pGAgVfEny?=uH1N7J~1W|jvGUP5;O zdx{=SvDw_S5+goOcg2DG#cA#g$0}PX#VPai0rS< zqv0k&2w5Ay9P2&ynbAx)BD^wRE@o88C-e%>2i*1NC{Gs84IYY{loY>X;$lXqF`g?N z`dB2IFz6msx!e`>nX+GNx1>jJucSL|N5*DEqE8vAFLRw<7=7^f@hbN`Cil~ZXPtDu z=x`la;lAE{)gyhS$+zi*eueYYFE#HteU6e(bLJLRj%YhxR=YrpmRTT(cV65uhvckM zzk*5;OXpD0(DX69bQRjhb(*x`S=)ziWbMBZb((@2+fGd2-IK1P!VrP5#0|qTP!ity zXPLRSd8hkym=f^}P1_#VDG4!~#y8&n0`yXR28JMsIB?f_rbL$mn(ciy1y#%bD*iu! zk*Vm@#rqQo(9kLO+z^q!YKr>DG>4%^|1v|;F>%Hh>}t~YBads+doG1&R0{$o4oHQ@ zJx{t!N5lWqPGI+Nai+$#^GBRHfvX^rfmrnQgvXzb9c-J;g`Te?kQzIS z`=&_)fIu0S&Qlu%4FVc9U3#@LH(43be43VNwIA=SH*Dzp?Xd@&@C_kxOc*oUNh%tL z$D0=8bfw8|y07XO591B>_Zd`Ub|EZ)X^5;c0fje^s)nhh1|TcLiFr>+wvhCfEnf#> z8Z#LDSE@f@6k>VX^;nTbyo3K%i*yvWCsz}&Y<)&zsId_29>Emhew6CXW>&mi&hV>V zt5~b?y8Kzr7vjQ+H}ZR*;1>6huo@>e>ceWa4;ifvoyiOWQJwfq53A_*x*LATQlab_ zpsT?TOA9OTdF1JBCR`UldvvIGX}K98wOhITJLGJ>e)S(82@w?*>}n->$SOzc(?^Cn z+!5ITi4OTu^IDD=SHAS(bHFq)gB2#B4JMTQOXURqPwo!JX#(iJkFM*W57?6PJQ_jC2(>X9E+NlLkX-EH;A#% za{w(p9{0b60q##{&p;{r_VsuJ>?#bYKY#wTlcLFw<6t#unoVG`GjZj*1;(q|qsgr# z*1WN#g{VcScf&fUO~u2(k9d2leoSFb9=YV^5v(qmY+>Pxs<1*y2znZJT#XSxU}7r_ zd{T^^0n@9H3!}4i z;h{+Ar8&)@TkAucy=Ux*#7QkS3X&1!fB;c3p%Q>TF(Kh=kQpH5lqG!ARvkR;_`At@ zm8tXm5|FZvYS#$)$n%+P_uMEGWsir(A2FAS6yN$U9OZq_AIN&lgQ%2)>F^dX+l&=L zVHWpClJ&B=f!R`Y$4gjV4ZCLZy5$;Z>Kt;34`p{89GX0Kp(U?31)TT2KNgS4Zr&{U z`!G=!r_i5Er|T1qS`qS-=gVmDWbL~(8$rGYEjF}2KEinSDn zMIZ5ev8y7h+>n1skvV-YDr7tm1^lxttIgMVa^yGcG+4t;Es?7C9Jt@AcfL`9C>T*I zM)?*zsAg1udt+lGvB~8Jv(mx~*C$u$=)++Z4?*{AWd0JPviuQ>|j;-VM96Kl@%US%Fd z`+=g1yE_uV&hF1gxr5}nC7OBvu-|U0CH~;go}nO1aecUrxo#YT$HTW%XI}jvOO+BJ zGp;cjDBP-f#I&LM4n!rAMeFxQ(Wf)gGM1%y3WdJW^)Ft0kz++%ZxQu!+tn9k;QGM@ z5x#|B;64NF%8;g|+`7J3fpML!Ly%l&W+MF$jSDVGa%$o>a9;co)2>PPODM$+^L|N` z^$nR#6C7IDDaO8x&7rySK98T4%<_X>d32~Im0{%X;gF7?hF3DgU$ee<7ew%J=K#G; zO#|+P@{kbYAAR6lIh4J*sa*!e~VW8IqS> zR#^eiu5HK_PoRz;%!m1{D5uRDLE(5atUA|tMsCx(z$ds1cZ8~>Qafrk8@ z+f!Vf_4~~_$TYZ}6L7x^PRBiKQ5|uIjZ*vGXZO0_z_E=*!zGb=**%-fi>ruiPTv1!+; zBx`=0Ao8S(Cap@-t4~hq5uY$Bn)kxN*2q1PH8#{QY@i4n?*_!rd{x$bebUWhp+{&f zmxis+RAADdx4?^wU0AG6QyTJJ=jb$KcBA~9&`NEfw_qshCA zCxo>Hv1~q@pLsovQ+@-SbES*4N=f*_-2}Xw3Xk&`21|1?S=1oEi-QxyeK-24I{J>+$Fe+Ldt;B zsP{rV4@gM2r$2vANko?ja*9-+$a-aBGed*DjMElcE6in+%;N;nRD(}pMmx5kYJ|(f zhrP-HyRq=58ytsrC%W;DkEurreDqV6}4ks3QGw zS_k-Y)MP4Lj25ig{&zO54=Gq+9*6_t?Fa8>fjGVj$(a@5(e+L$Er22-t3UVB zSxS*@&sU8A220#&kA5XYLXo>!VV9_wx@l-eGbM6={9t}zd7X>7iTKUJ-=U~#kC^T?_G)ZTEWfvWq4`{ zNMtb1TR!Iu4hlr3?tHf2Zd0$z6L~uEEU-nFuPj@doazVkf?=MIO&rL3+%=HBSu*RM zIuF*%FRB4`-Ez-^Q-EVAvH8M=kAd|n&`sm-LvLZgwWKH!$1=q6Wz~v=i9Am&q9uPL z>m%LqtM>4R$5q5^BW|Z7HRInuFLL7|G$F4QqO4R1Ij%4x`SnZb@bdnoKM_-BrS>)_ z?3Orj7z6_4GP?Y-0WaQmcrsvqwV15+a^vDu(Ooh#iaKfTU+XmFx%FU%h(spb-f`;_ zzS94DrNAS6ytUQkkIWKCO`ys|Ju+de|k z%@YSO4mzEUejoTnN^^7G^5IDkbzv+hh6Xi(9};4h8FO5%AFa&n>N)XI;qh|pXa`TmoCc#_#_YqSKv`=M*mXHoTRw5Z*km`LI4=A$kTHCFk32Ir2(p zzndapauab|T<^A)FPcp_TokmQJT*VRQ{Alh#pX)h+~LV)#V>2#CobnYUwpQOHb*2= zC9@;p1rgUx9SHfm&4ip}Gx#9xF4F%jNu5oNK_W=o)aTHv&4)+D+qGyV@IGj#-u)b)jP^ym=mdLKp`(-C% zJ=Ge~h21OmU25-}xn4igDjaqE9Gd6VnE`onVux-IEg(w3CW96{yZbFQ#bdpCiy!)H zjP$9WmWt224sqY_k)_DXj#KSJi_+*4<2Be`zGkN*OAwav{fesJqj+#AMDNqeJ*V8u zMbE#0(Ge{5QiD0_^*3UAUaN!84|ksRf7}S^kd8VKZrjys|^O%=BFiZ5;gSl?2=v$4S0Q5N}n{ru0T8;!){_k`VCW0 z&%i*X;0QiZP3yT&&Ahp~!zC|GMaBbiU#vV}Hh*jZguoN9=O7icNG0KOM&J@GcoYR;jx+UEG^PujaS z$B61K_>jl=P$n+%@WMidBy<7+X$8Yx*jZNe%R!W}Lg#~ML!+AGm)7STR>G|%rfQuf zI9HO)qsXo1B;l5th?4XAt&#z!DaojVt;5SSjN#Q6R-x!nJsR&_uA!G!mX??2qc5}W zUb*w`!XWlU7>g2CR*I@II}f%9K*w-u`d7@AaFdebXp>!;$m&4+t$H8$^SJ^C!Y9 zhtPK_p>0z;ugO_nBBlS*Z{RZL1DZaxPITY@p}Y4=6GV&uI`F|N-_ z(Jliq{;ylf>5UGta?4k@)xOB@(d|;3H&h(Ag)1uA>^c29MBT4aE)vuXuAsIn6=*%x zP%Sz?;)e4;^#9T${|5bd{AGIym^vjS1;g+#$J-){Sawc!ij6aV#Z3ec*n2wIXe;Ku z?K!7rgS(HvNtOHhV2@#?*JU6-0iWNbSvi;BzHpUR{5!44+_eRAZGG}NrUC8EHpLt_ zmGS}xv)SkUHjTnTat+I*i1$qB$(7~Bojyazy5$5TP51g;lw18-M$fOf?hTrck)B-R zjfI?=n^7JrW1Nc}lHLvjT#14`vvIV)&Ie@5$H23}_K+%@9tH_?pl@Xk~jwzj}B=9=dHc0b47w#RZl!9Uy1d%{%@f-`{ zOag05%4maDq~+;zRPlg5riq8qxFHQij2WMqP*!qDAnQfu{!AKG0@QQ)6l*ZRr6kO zmOuF*khRo>DO&9usmpkZSqa7h{hGt%VmSABzp@X!Rk(vwBK2-gTb2K`o-v?fWq>dA ztse`+j@;-TgK#5{t)2Gm@4(ICoqtezAwmG!-y z?>S%`jch9sjo#Ie87Ce50HJ8rUq{T_?kL5!Y-d30WvWpGq z6jHNok<((^lad9=fD9h+$aGO3H$!N6)wkRk0&6Ejbqk7=#Td;M<8dO9dVx&wiNR}D zX5DietJMrkI*Yq69#Behf^ttnJTn|EE#~w@pMEWO#==J6tCrUsHn~CSBI=c5P2GgYZvO0AIX5NXMW4G)ZzYu&Qcm6P+pR(uU zR6%)({=?VNy(y)Hqmp-aX?Z^w-+ZAQ2Nh^&(`EF?I|Rr)z@7!|cz+-HqRFt$dhl+N z`ttw`Jk+^&ump<7x78c_@~|_v=(;XK=10hvMwEE=GkI#9&v6UiZfotz;~w$E%nz`^V2>*iGyxJ3x451c(F#@ap*t?n$GWpJyzZ;v7#q`M|7l z?mpp?#8A1YP-~5DBH}jHg>WM`lh)p;3W79Ryj_=&FWM2P0&=)!NyYyLzmwWP{zBq< zg(c6WG$@&DA-qeFkz)(cYP0?eRxEA&9;5L!kXT~)lY*(ITZ;804OAVdDr=ay{^Zb- z_~`DPmyOQJY{Ecj{-b@c6C;E%cK1Wx46Ta+-sKiD2n|}GcrU-x2SL?=??d6&lpQac zR@`G&5*n7qf!7|j{?2SbNt4jb48*`>mJhMds^&UWnQ$vqe zGcNob{YS<5`u7MIYLI6Hl|fY}2M_4PaYdhMfJhJxV7oip*d%nF-Gp`I)z^%69B>m$ z*e3#c4*QFbRgq$A@$xm^G~49X<;mM*#I7yKaR4K&E1S%xyYjUQkrd&yMM^0$N%%vv z9gy#i8L)W3F!Id9Fm%sZtgSuD1FJpn6PG5mlYQq5Ow!J7CIOAk`byQ`?Nt?kt{vsA zSwk7QaQN}T>E%s?dF0k#etevq{VBPS`IOYH>#90(}}_g%*QtwP}-q=fDA0LUWIztqNs22s^|5l=|ZU2y`_ zhUG#)8?-mii(g^=F?aqv77JUxi-i2n?p(N|9l$mO=ksR=y|46V=$9P;?KW*zyp!WF zpxvE#WKsYJ{1n0&hzXd|fPFjcw@F2v`=l2jLI5+etL8^CE4UMZ%^2yo^<(ioe>V7TBft zUMStHVPFe@H2yTzg`EWRyEZw6PVN7wWY9&PgmsdN{LqrEr+53A_o&2{CaX7B$_ajZ z3SjG7N0X{+V0jLz+MvB&?^8j-(Kqj<`fjp=<=6*=*{^eGXcOy5gUy32bjX|YRtWk| z-F_8niFep=%Ly+q7>{4BL@DlyPq?fG@bn(&0hXFc_@yx{$!RAWjl}&Y=GvpT{aZ2Z zq2@OGu#Zw@`R=@68yE>qFu1U^bJtc32k5ci8&b6OUTw?RSN*i+}{Tm4S z;X-guRKEFTn9AAnW;Z_zZmJ;sGi#cakf6uD;bLN`IsSuyD@^uU*S^U309L27!!UTV zlIFQ?;qAu*@=e9YLCQ3z!Xu5PfH{1`Ma)}q={LFAqLj9o!qcG1^oHrqNfp?QZRT$Q zlpwYFx56NlrbIMA)G5Na8n{@O1qaKafRV`Yi{M)IHDkv!vkugdQBEqMb{@l7_JrRK zZ_7wg4GI^&l!&TDmRABTNfZe5#|6q20~?TkqL-B$hwEHiJ^_IxKJ@YB;1boh4IGC_(HbW;RkLo}yF9U2A3 zcKj%c)EMUdbmYox@wtE9cS5YE@EPRk=3iuZ)4CWZt44Nr-USu$=S2)Vs`_F2d)HKn zv$i*We47V5v%w9vj8`o$f6O_xJPEJQ)PYaSWyYNNhFiNJ=6v&M4$7sSH`f%sdu|%G7rmuPkt|f z5fcYSvY0J<@cG};FEY@fVHSGh*P09xd}3p`pF$)@42r6D)d;nQ#rG=rkhXn7EqbO~ zMepv7T5*YAwR|R;k3~5dxaVDUK11zb`&uA?P_nN<0jTX(KX(h2)KTh?+6AJ*=fh0P zOs@^p{D`iAmU1RzpKl?`phJ*;6AE1-84c{~?|a|<#DlJ*>|!8}VjU%ak9{~}Mjqgw zV12hg@njF+WOnm}Hg2KkLN=I11mqcb?}!MqZ6L$I}O-jBnW0-6>f)Uw*8X*-zRn>2rXSOi>RMtNhC9mOP-_VL< z4pt{Jcx8A(k7mFM!bmBd>yK1o=E?7hM#F0SF0r@Vh-M?C_4H4i3z4Wx9v}}GIl6B> zPUOFn~2A6_ebVU=@dTjhK`y#6$Bk{MOWjqET4@Zz6S&vAjuqs5RdBS7%C=i z-|0-<2V?i7UR|A+JhJ-I8KcwK7XU2+`o9Z;^^EW_^bC5Qr=Ptue6dz*oxB1X&#t|V zFku|C4m!U2N|HL#6Ed0ANbTCYxsWlEDv*tv{oEL*^gG(_lVMGAW+Z(VdAo!=seeDJ z2EKe`yZKf->OMu1+H&QZXXf~a*$JiUA^nLv4Rzvrz{LLmU8TTd{LehLf|%}!^Ua@5 zHAV{6&KwiwK&cN8kSczDP);or!B-Pl(*((h-pCedy{Wu)b`0!7mQp%+6J|!<&k;K; z`G1kY9@Q1uEUwF-OGO^GIT|+hgd0&A-A+$cb<&%* z`yIgUakwrA6ubp81iV9To~FNFb$*DOvI;rA2c)%%oCQBss%q5bxCH-|+f)O7d(X2% zKot`H)oo>AuqAhGZ6LmA8=dXajHAZbkWAtUWViibT2A3#VBs1LA~5&iQfHQu3P>wP zMUHYKj1J}(&^7fm3f~&G&_*OpV8`O>JfaQVns`iRUaTfVmuk_!E&lrqDCFoIJ)P4L zSL^yA6CJKgKRI2`$~TEQtvZ&zdS{3yNy1QC*frQmP#R25cG5p_YtGK@CDMtaq#|qX zU9X^u1T6X{ul#h&JUOD*+2!mnIp=v{IOF8~S2pC) zH`l8RLZ*zZKmN#Lb*=Bx0!X8lFkekFGyWnrJ7BF(WRP2x6cl%kimPMYy+3PzY0FCy z+p{I<{ki#S$FP1;zR^D8;rT1+sgg^xR9~-J*+m;i!DUn|^#vS9Fg+$n^T$~lxO0+); zQ=iL2X~kG6bL&<5X5O*gy(y5odl1&ZH9aBtaKh(NWMsKDc*{3|eZR+9{vI;-n!Rvp z*jyr(VRC|SIUT<<^E_|8GAC$pQl$7)RpIslTT5xKT@c?TMHagDBs(xn#MM-k8J8#P z!T4CQd#mAoA%E))HaklD-8V!qh^-AxXb!<`+i0$R08ux^R`6yM;Q-|h#<#CJU=rTJ>BaV1T zU|=n&cVm&Q9|NLxyzuFd#Zl+Cwax&Ji?Dg(Sb2?;HieuO4@db^cDUoCcFFvt90qAE z>7!Hd1tSfJ<50k_Ta!634*;Eeh_WqSAfSI2f4HK$nS<}eA*%gYy?nP>nu6=bA+r0G z5=oR8)WhOaI$KraUM`S#A`(-=;6x!r`zysneT&xqjw03IA zeTT)T`HZ*0gHLFmqf-Qy`F@T1ieNJ*&BP>9iD5elk#S$2*r;auXCfT(m2;_+ol`eO z=at{#C}yJ3}yn|bQp*un_$Qmy?X$OT>k|U zUFk@P7+Oy=^F~$Yi)y@4h*>yl-r@fK;s>$W>4g%xe?dMa$KV7)yr_~F+$Itgp zTU&Ck*=2q_@d>{~f2)lkP`^D`cR_8Cs?vp#-!}bYd>Y`xOZ?R?5Ey zO*e~KSe|=LAz{oScfqU%Cw)xBm#c7V77Et`nazj?F3`vdwHvW9l>KRR8XK%e&l0?y zy!cZTjjM3&WH*CB^k*P98ymrr@WHTJ#{u=jKc^Ii8#FXDY5O^7zS{<)Ntx8$uWbk} z=v+cGpu+IPIkkggEvQoa-Xl4~F-G4Mq-xp=0L1G{(os>CX_=|zEyg#(5T)T#Mm?{ucqY;4%ntG~i8KCn5?PVvnOOi&& z77XzAyDfPWh<#g9M&QnsMo4J}NwHU7-Hcf%b^|ngwx1=uA~z`*`C~B4c@uRljVf&T zh6W$HpXh$=p_-kIN^omY+=BBH>cqKwW?y&W;H1FDTag>^Sjcw@{|jURGf&X>UJ`0C zSB~ujud-ACs1v_$t*YZX-#EBuP1v9Sw&R>Im~Hg2M@5}dnyxTSDQpM#RU*oFw{wgy zzHC@YG;1Gn^!m@Thmoh$UNhVWY*`WC^m-I(C9$7qj2i8)5i>YJI}s~xG@Q!-ImrDw zX_%Z#NZsPiCl+r$Oj~o?9YtZuO=Nb zf`S*TQLjpN4_wB@Tb#G`S|};H);rNfx1B$<;*|GYfCH1fek84sL6xN6^!V|)vStN? z0fnU&PkdAuN_1ts!uWaaL>~t6$EIQRqHDg1JR7ea6yJSuE^&{u)9Zhha^LtTF%w6) zY)kh&(?eRQYd~jxE5+TqW`QBf_FnUcnfPTT{A5S#?qW#3S`LWMkk<$&iJ$??BZfBj z;2`%~={rO#_)Ex*ixAGNOy*~rz`e!^+X@J(h?RI`z2jOyOicLuFftBOqAAko|`2U+C1b#auX%P_vMGV6^F?)w%`ffQiV`?cn{ zIW;tl5;QHmxZ3*U-dJ?muF*BVUaTq=jH+zB2JS~nf~b0wgzB3E@K1dop2A$5wzm)b z>p!Sa8^pqSY~b5VowyW^_vTz4s@^AdZqS#P%KU=KxC*yYHotu0~i(Aijqyg8xDq;{7iT}s=TXk2ZW*0W|X@V(A&kb zxZJAz@!IuM{#o$W&peW}8}+@-U)r;sHHdvi1NkZn7<$9`5_Pu=7!2`XJ(7nr-vO3z z8tlFRiQF3E;^K?Zm~+KW+PN&(^=A2?{YoXi@zuQpQ<}D?NIN$&- zda2jjq|13AuV4ztgzd`SC7>VQ3#v>m%D)r0aj(XP*U`1wmFW-FMFYr^0zGU>_c} z+ixqJ!Jvu5;c9^91cM zWJzioZWgq@hNaHDIWof&`SUlcwZdA{-9_Zdp6S}v@5@SjZ=g{Zn`p<0iAeFrdY#{5 z^(=Q{{KR4S`=FF4x}J-BxTXzZd0S{S?Oc8NKuC)IV{ch4vwJst)M%w+HR4?hTX#zi z!_VPUSCz+a-x^?SZ*DSi-IOMYv6c~Oa7tx0ET9asXMdr7oCxiBv7oXd)!v}F69PW^ zO|p6EB2u1RwbE5_k2Dg2*;3`2D2WfqPyd6qw~mXm+0sQ5+}(mhf=lBLjRg{1lHi`8 z!Cf17NpRO-!QI`0ySsaEZ@O>in>{n%o;l~tKKFO;zy0=GwQ8+rJyq|js?0hs|?;t@^#WIZ1?oKDwoWS#U{4Q`m?# znn-e9TpQS5o&P;2;8R4~Jx*-6-DB-9C>7*<;4a4I3xcih!wf!NJun5F*-Ne5AQfR;HgPmGL zTWO5eiM1+(s0C7%xcY$RJ%9nvlx>KS{!tJbaN?*yHt^B^guzRwIPjHiPBw7P*Kpf0 z1(KvzG51&_WAy{d&z1GXb>ZU-w6Rc7@D&!?gQ5a5!Kj-Q5%w3W^=%>u@k2=~G((!j zd>i|Yw)k_8D^=O;l(uLEiz1Py#&_6NuHGpFv+Z>aL(apqHJ_Kr8~6g1RNvN@pkht% z;cX%_4OXuBG2vjqI|zOUZD-AEGU$G#tdIy7Eq=0m$tC(;(4%TDrSk@|s{K-6$}gc( zgQ86MAjxZ*y{lh>o-Z}Lkc(fpR8i(3NYXcE{p=V1AWV;f0}9Yo)edm( zY&Ks-vTFOe(1IS`Mg~hK=18Nrdl~Ymo@0q2H*Pj4wY!+i9FzHKfA(O5ru5Q*JU@rx zR_9i0m+Zb5`xAWhGs{eZ2s&5_LDU!N&KKnwVCTv}5G;mA=xH1HQJ@?aOy2z-fMR?3 zMiQljKUOBD82{PSomyp@Z&dtvN(8~3jobV8&G~kG#g_MN#lV_sN%eIS)2zZPn1M{2!&C?T-KM*gh_EwprDTmWN$P}GR%nt4H_rMQt1qVm6esJ86N8~UZA=_f%}gKoJ}h3vaRguVmV2XJ1>9Z-2BYcI+qlu*ZNLI( z*ySnx0Ht9vGv#0MX6x$t19!pWC3N0vVzMQVMj^u2H=T3&XP`|JZf%?XH6e)VPr8)7UGK!x~Phq+DbmUvJJ zT?uYAth!O{w^5(#l7>}4mhX2uZ%eSUbA{oE-PX+$Psb9Hr9Gk*$_Ffqll0r~#IxN-EXrd)!|QYujBns~~Hy zFf%`5Sg_N2_UWfC?%&{fw6S#S)_$`_+!VpmW%Z6YL)CQID-a+Iyb_q$A`M5|Q@@9E zGet7MbA+cr-mI0Ye~Bjbv(prH2D6y8tcgkP&wI6vA3t2bn$nF(U%@f#+MDywn-3D2 z*!rY8Y4*;M&A~y+7cor-JzAgmNIXL4?b|Gx(YjxQm@kRG+OP?D=oP`U*$@(X2lLF+ zGVmj4RyNgb960Cv)#$l>`WAg6C7vYe8_g5v@V2S}Ep11(amx^=e|!G_OQ+YbxSE~& z)}n83+{|2xy9N2*ur}{%y>0vt<(0oxviYNDtFFmoNeXlOlA;6dA5BDpO*EbUqh*M) z73j{{ePy}1CEKG(=I@@O#BLQn-y97#?+Ql?fBY~d z7z58X{Fl}K?>nCN$4(cegYM3r9m|jsx7X_Chqv8?zEk-(BSii$knunDVT-jZ(O9-! z#3<-5Wq(V9(hB_ut{Ud5M!D zatW*M1v)pu8e&~EnPeMh?*9J<(*G5*G8~Mkp$dk!=6F=7s=-1WAqNF`^q-jrW8_mW zKT-d22PUO|-Nzu%Mb9%pNA$5$VD=wR+f(WO$U=UxI~L2Z6O&<85baKRwR8$;9C?o%q|a4{TR| zHh*k5`c&TRTvAEjj%wc6q;AA5%Z<6Hc*9}KEx#7Td!Z=aGn#>xCYWmR%jRc@d)lDr z4^>^6oJs*~jiQfrd3hiEKe(^<;)rHy&dwBzbBJ)`g9*l4N1bX%XsX_1Z|*4tjgpV@ zeCD6+X&q&CC!Xu&e~HQO%KUZDynv>qm~zkBbg<=r>bv{LCHn90h5l_TX*&_dt)a8z z&>?G-bY2K*9KJl<8Z$JgEBK^9=JRCAgSR>C{Kzv^Anu5P#_bq3s6NWSZCKJ3o#&Q_ z^!w0-mS$9QWlCO(()^1*BOJZ+*@fy)>@SR7g^&qU?XH}2@!UomLPkVAEK_LGnu2ro zyeTQS<5B4mJtrAVo_lV41s**-rOeDc$CztgNsV4dzRHG;q2NKA$5Pn~f5OhOu-i1+ zl(ahS$Y{+pu@&8FE6q1JO_-3+k!Skb>IdvAzM369P5gBPo|Tp2Ka#)%_egF?p*!nN zy{G?&zKqn!UCEvIND%zTu&{%1&1=cp`G|ri`$K46$c$D?*^x2T4n%ialUP}y5kz&Z z2C=@wxk$-=i5R|@OSv4I{w7Ski)v1J3peX#QOuGn&+zQ3gm2^UXjgxfgij*QZjuIO z)d=o?HiAy6hW(%u0yul($^r!wQzAJ@`{f`|%)Ua~_2U)0J3pL{T0nuhNHBe$wC;Rf z!>w}jO4-J&$Y@9SUAW|H58oJCH=2>aetq3~w=ZoLCwi>i((X&>Fx-R{T`G%?EGrBQ zlHdmb^=NUkY&lO9TH4y`PDjoRvJSVKSVDpW_^fw*86SN?fB%4{U_85=5VL<}2%*#b_gnyHpStu>ir3CA%|PAquXY})a?m#op+R;i z&d&(7ahas;fzK+}cPFlz%3T$;&yo`R%=W*iL*Z&K^Y#UM5II#N2^K~=s_bMIh3rFS0Fk!k z@IHUa#rzhmUU5Y^SZ5O3MyHWhq}_=yaFt(5>J&_SM9Yv!!yQ%m58Pb|Sd>s3pGfO$ zP}OZwkqZ!G-DD9<9N_mn=dLE726auHDP2`4mIy(O4C;T>5GT=k_8_6SUeZq22MzBS z|1jshl{S}Q75>)|%&&-ctCljhpQL2Lpls?e(oe1~%)LbTwHHLYQgKlT@88CH+~IZ5 zRA~XhJMBoWn(}(dem?`_gb%>Gzcev*g@WMO(YEiMvVCm=NOpXFN&wMY|GZxp3h{3% z+dQ6_dy>^b@6yjPOJ`+8G#Is;Ze9H#Ln{3LnpFOs(Eh^`M^1=V3pri5g0^|a>iUh@ zgYz+JUHX*YN18;qqQCp4v4o;w&2!pssnCS<2~^@osdk?9Ntm+GbA#hG<H zMW`t#DKR~%XIjk8AeFA`5WB~j2M&RSn1HnU2~5)CPZg*-^)^__KATmQUW;nxGY8VS zqLwe|<$?Wp>IdImn#$~;{a}p3EfM>YWbXRw1vkrwynx)DP*#AY5+0k%f%U^RFMra_ zuzeZA;l3DBvQ}UzH$gt9@hq%1#wpe-L({NIwA&-@@Y1-M7Yj%PX!s%q0YagF8n9smW-R?Aa^z2n{=P5*XI6KO<{nsFBCmBHbbd6No-_f$;AF zNmgJm%bE24R9>W8qTuQr;hO9%|N8*(J-(>?U4q0gdY89hq3jD0kH3Zn%-ULnm=I`O zU2(X!EP4KA5&ubo6mw&ZzmFNUjjM?9CNw=HQo?SFG?Qb;h`&yJL81Zumi}hag!5k% z(IQgwhDp-y^-HQO_(w7k^x6t2tDG@brcpq@KDom%Z5ydTPN^X-8Eak1;}0h`bHS;< z?8#;xRs8qiTOFjv{iniTIQ-H~_g8guK?&K?;F!;^WH&%O?;|5}@Q@D1>%`*6?pge8 z?jW`jAa&tlt`L=_&XoSgOlWadb(7yG&kr-F3~5I#d0GKtKUfCh%FEC@a&gnQ!!iBcK>kN0wNW=x!WWPL+3tZBAa=~@ z3T~$7qx~lI^D(e4ZgBXu0I%tj)oux!ZpmS^ex7*-c51JhzSR(!YS3P};)yw{8^*KOz1TkpIumU#Q<^aeRu3 zj^5-tbG9H#mpUgz8?zvsh2xPkIMVNr`U|U=`u_g}gfLUfkADXOQx{(8-)$k!qh9it zEsD?q?U9lu0N!dxW@#gss&i!%V(qQyZ#$R_Fl^#MSIV*|1H7Fhp}KzmBy*6Zlgi&a z_^yknM)175OD=ZC?%!5qFvBH)tsGz9u!-_h5JK3>!p-}aOQ6leeEg5o6%7MVJ%L`f z>mjt2^#!h+fm)fU%S2@u88`xjxF@d!py9eGmh?=wI$G&D{_ClT=%JW+D2oU6LJN|Ao4iKI zjdz4xw*%=^ZtX{Lrzn+_RC;5N%k^nX-xN+^tSZ}Gedv=}Okjf&C0drmy90uu;iL7> z_t5U4(M_Eg5vsig$;zaPekJjByxhOrK1%cNe(Bro1_dIX> zcIQ3H&^2xC7$v4{x(G(jtkERc2Y3Y1d$<}2C-tP#X{K*&^gu`Obc||?8wI5V)CyN% zaHxw6R!}D;L}TfrbO=>pOGX#&;Ni>o4}rJ!XF=^YQ_D+~lzjrvmq({Yg#D*<8KOcB z^NCFFi-#+k`xJy=vje9cqT1i_O!#wB;xDeY34Bf(lc;Q%SRj+9m{?5%DSdfR&tv7i zbr@|$bzJu3gbMkiQ>+K~uZ?Gq>L7Yr6STuJ6|9njmL}GnjL9JZWjH6R2wiJVKS@h6 zq~eM}?mw!6|MaL-hW2+>7-80ORsFjJ|NXgY5l<-hX32uarfvp+xHhIvu5p` z+leV=Or%j`P!yIEEOmh)rI^F(bhrdZ`}2kQ)c|-slv}w@IAWR7fIXvvtsfm(ClH>K z$DJ!X_zShX@u_^xRwH~T^6~c2W>+Ulg5Rgd$LJBnZ1GVPExT+Dq#~PfdE+XXLN8Ym z-%PKVU$TVumpElw^n4JhNhvPhHMk?}v_?&Bn%r@@%_!>yKKpEFra(|!c6thQZBOICAE3gzzHgfA@JD1M^jhq(1Lbu z$B&{8XvtyYLERk>kW5!z<2+`Y%AIJ*%PvpOMUPr>g@JCe=I@tFp`(xUrJ$%KD*js; z>OfvB8pnDmG*oA26%&9Zt+Hxtg%&h?Zt*L~FmOINl~fYwQwsF8wTJY$qXgNPOB5v` zuciB5<|B)#4hM)9GWsqD#zKJ%Mko=8ZPRGfX|OgH|CW5tz$*dHm78;XqYItS z|Nb#NKHmmiZ@?>AS<V=J%O;i9?(HALE}Qs=U_OZ7FPECCi%fi;^7m(2(92A9bi)hRTNN=OBh#Y@Lk3eam*XE zHHN5H-Z2~8Zt9XG!S1RS8Ul_C9=hpF{@9PKEqr{%CQ3}b(14V^Ikh4sc=iW&v_jW? zR(xfZ2)Atzl)P|(PlkG7_(p7c5h)63W`iM>Fk3|`=a5G5G-`^j@4aGZ$0_!2bFBbVAwU>-6)YVe%<5->zd7}q9R$5V>$01x)3QAa zH})u~swH`7q5BW>v%D=|^gIYx7=M!3TR)e1eIPz8EQf!8e$GvNY=ba6OSWnxvAWv5 z-$Go0F)mS=WVgz{daoSSIzTObx0zzHd4vCy!{mrSOl5a5Q`brK&=Lebwh7!-N&aZu z)eAP5oF#6rwh_)0H-PV23ks^##U0m6hH`QyHm5AWa$N>E0OzDT#F`kuTMJ?+mDmw7 zmL;ILO=!f#yN6L(eU&c#>&fp@I|LobanQ3&F@knjE9y8W6oD?2cGyQ94mx*G`e~>_ z0eHW`S%SmX=e}n&CZsU2LKd$yXyxg$u>M8@#oNbjPav>KDL8Lp!PCb{`tb+ZbR^U( z6{1`Zq|n!{<8?Brh|tz=D|?q_Wbp~O{afJ#RLW9$;;#QD&6K+))fMdx#Q_kRZN#km zw`1WCuklEXAeNPmy&u@?8Ic`v#ZWcVL6x_USCw7u)|*q6_}dfmI461%U29JqkZ%Tg z-`qFfMk|kHVm#%9?y}zVM%w${6pBC_bso$_@Na;Q98e4R7$PU95NFYd?l_jYK!(I} zOwlrm9C*);B`nR<*>S6o7dG-Zqfzu7i=2=XWu9Ay5)0 ze<3aJ(>jCTc^^o#$b7TQYU=q=k^x#tVug4&N#->f2$PXoT=m>|Z*%xMjERc2#$NmB z`{M#;hN)<9Q))`EI0@_R$4a>?V8XQ^XRZst67P#K69#o^J03)t?zy=OY_pf8?NQtp znaU}>AdVIDQS%+5r>Ltwiff!t03H(Cl=X%u_Auz@!#Z^c_Gd_OnEz;GDq}y>LPU9l z_K@4VB4^bSLzvUHK+Yt}q09(=nAS6I*%jQ2^WY_MPEtM$Z_mU4vALjW&meLNw@TR@ zUP_mk7z0ATH9lRA)Q|uhOUHQZgBoiHFa8k_JF8La`XOj~vjcRSW{0A@TAND^aeKnw zjA=+VtRPZ-;7_zWGATDL@L}BE1Mk=GL3fgr7!)gANdN`99~Cu{KcDly@M$g(SB}9{ zMcUAgx&pPonUL#RqihRwX8=Q8wMw2zl@l65>a6U!p}T;fSr&~q*QnY}X-sPnM}}+B zSU7X>m+k7@P}3#B0b$2m-TP5ts$X&ZF(S2Z+0)0)j@j~mN*s~SfF>^o>PTVtPUe>6 zHrFnfg!aYZ(bN;6=^m_yD-_Prur+aB>qh?#!*P}_a}b9>-NtIkO~qV*+7an_)@;2X zgn&FQ{G&mOn$4U^a!HCs=-?f6iIs6dINBpfgYo>rK}92{ieHVh*;Ix~lDi2y=s4B* ztoRYiPj+~9Ied_8Nh~|hu6-(8SvY7>Z1IhCfB6K{lBBiJ6byTX?~wR8fm2#xJ3J+2 zU(^D+67d7cT;H-Pskd=)4K2qW*EXH*sRB~~BX~Uh5xOdRCILV3qzSKwPL|_*00ds@ zF7SZ_ZwJ2=zNrwQTmJeB=*UFH#qE4WB~uQ&lyo+MQ(I+}MG!%v1s%@8$M>tlNbAR} zrOJe6TgiCNYRI}l2w(^rRGXeL?fArOn(B#LAP7ynxjIw5Zrhhd?pX)j+PL9&yRATL zA6?Ik0v z!J{}Q8K_s|5+e3q=I5-nCX|>J6we}&`W;+{V07g(UnonnM-R(!PL-=Y^Fj%^8Pg89 zu%#)rxbapP|Gq-2NEwuhZJbW=syA+JU;4$vCg-yQ{W51d)HZaiK_oZ!-#3EKAAe2som-h3tiyQN2&G!3hoyu0d3nDhG{sOO z{3?>nbph&HUmIlm6~yKB-M=ljDhV#?!L{UJ-mlnx8Fus+Tv(3jRVeXPBP1A#{^ofC z0}5H(Hkw~FF#-gBSSDd>rl_cl`^fg$S*0-jzXjre}t zGB^iqzC7!E8+2Bz>IJ=!)g_=t1x#fWm?g+SN+GT;uepyx-Y1Rc;wi8Y8)26|>eguULB&K4I_Axe z?e{Z-=gX+`B>;#}DMRQr@(<8W(mF~Szb(P%1cB&AO2+;v9Ikp&J#JB7nno$C&ucdJ z)UxGOuL>r4r&Te#C>*G-Tq58F9ipO=2@diLL{e(Ib6~-E0gSjadetwme`g09|Nfku zXve#U;&O)q>k&mA-cYzs(#SYRc`N`K#s6YTu`pJ4cMR!IH=Prt zslkgspoZrLh@LqTq}oIMj0$053HU26BFd9f-Kf^y(D@=bt!G?NgTMr1atj$urW*eZ zEJ4G~zF9V`onO3sJv_~(LO=h{f{$`Um8V2oqWt~_pVFX1{_DHd*BM35a58HXlcI=) zw!NTe8?;-Z5C%TT90FlsWULOkIl;&(=JchtDI#qAo!t>7|Mpg}h100h2PwM{@?Wj1 zTjJ5WCfo{nRt0&a{=z%rd#6Om4m+f2Mle-U%>KJ3zP+Abz=(4agp%a($)VkbBMk^9 zM~K(>u<+hy=aoLNwz@U-`K97C#TjY0k2iki2a=X>$?+cVx8_Vr|NN6(%~F znL8iQ>Bv3^_N-Crc`cg)pSVlsy9c(qyi&Fa{Fbt_*=T-}ZwRn4%U!Jm?CU1Qp%W$| zOuuy8?I&h+6SpDVhJBbXuVtcyYrmxXlIWk}YV@#Mp^puO_8r5*P>FR*2F7LeUxw+K z%nA*pjW^5IQVw}A{sxY}>)6%kyAQ?^g>q(h4g-Q`G2%lXaVDCmo?EqAEncqxYby*` zoESNF8{i9O0Hd*b$hwH7czNlpoL_jQbMRm4oBvPsC4D70$#*F%Y3%K~DKux57PW@0 z;ay<~qu%@+S!TmBC&veq7VIu7U>pD4zW>*j(pE8Y%ZBYtwU!q6x6N#5xZZxM z?>{Ah8FKm{^{^-y2EcFbEq#9EP5q|HGV=!5gKgintpOE!m1^OK4{eGml;?fws zzk^R}KU-h5vOy5S)L_#+^hdsU0sT7Cf`pcoXf0|l&+(Q`steiUy$5;fg{NHdPg83m zAjZZoBk7-^18d*F`vRj6ryCn8B(hn;$lcShV3d8&4g7{PS8ay{vCcm?b z3sG3=LggEsrnJMH{~aX$;dcLmSz=+_vfq!?1N6F8a@+2unE?d$fXZ_&B7jRq-EEbV zuLHQ{-fEU5;Jxqt@?(Tt4C3J2qxldhGH8>D9n~iPDRBSO*Y27=SUj87>cfkl27lc0 z=Sw;EU<)t)=}DM;v>XCr%-RI&e$?AmvUj1u;)4Y{=eL*2e&2*QfxNfva4&lX&U^2K zCKq%F6C;>nzI_?Lv@S3q`QQ6^_A~9A6oK7CRtOLsxysfR4z6(bk^dE>qtR0R{+I#~ zh-keqzv0z4DD;h?9tN2|RQb;Y@i#LP6U{EjcdflNkEFn_e^=Q3>*C_h=6rqY^7l*J z_2JvQh1gk~k!4>Wt1p_%EeGxK&@bn%FP($u=JqAJ@Z< zfcvlGO^i}F^?w7*-_vWcqiuhJZE|r(0R#Hih-ns<5d{$}IqE#j==0)Y0$Y928+!jj zpuZM2>7N;(>hCkaUrsJf2n1K2J>IWWRX%~4%tJd!f~z{b3BPOzz*+d}Yy!6xm)Aui zMQ3VJb>3`=Ju&>bh050Dv8l;7^I{TM@3h2M?}@P1AtcysM`6S=kwqUmD1%Z3%AExt_mc!y2zxc!9ZDQbqN0 zS5VEhMms0c=G-dTH4Tc7rTtzz^*TXaeH6ruLqbl{eJ|6c&nUm`67Y&^Exi~&Q z13tZ7aNT&p=dRri0v`<DSk0AwDE@pb_S?7p2Lf~CpJ6lO=iriR1oEmis!fhq9-TS*FL0Xl-pc~ zGi-+0`uTKg9ZuJ>gig@#|Insni%K_+2WdXB{3W(0jsUwry-^5m`mOIFM1=3 zNl>r3^e^@OQzIRU-vaUPo0hk+0eg{=n~TQgd9;}9Yeg3J>{#lbqcy=wgwLsx%ISeW z7t*d(@jC-s^dP7;R-K;1AhfcuTN%r$?&Q(s?pB=sATdOIGfzkfqMhvn5ZBwrJbH6( z9kzQJ)X^icz$xN9$63MV<$Yzc8B;GpBf(q8IqEdBl6r-$#qjZA|P{?p4v{Pati@5!9b{$qmwgNkY0;e1vbKb4%#XS*wD%D)MHsWag zZjV6JcLBJ~{Z9vlOfw|mZplVAl`EGTfh~%Uy0UtW6I4o>ViaQQo{X$-A^L8&@7=BU zln$>{{9sd)w7d`jv(=^yrKUEo35LTElKQi?BT`CJ+Y=YvW> zvirkux}bbv_B(ysbG5290Fh9&kzbTY$|yB+OMWTM768zoW<^_!s)H~AzS45~&8ZSm zxw|e|{j4I+vJ3oC{RS_SaHMZs*NB}~;fN}zgGm8E)%y8sK+tEV#ctll&b|s5+*m=0 zqR($KdiQ06H-Q5q9|DT@UU(r@XxYB8Mue7u-`dFxy=Aft1n2Krkh}P1PBwti>8DZK zlPlXNjU_*z3-CV;!fq-g03T>?6dZ7iQTuYqd*$(pER0tO4mL>#5sPE9(+A`r;t?~9 zI6p!#9qlX}Yz}1BUmw27id7!M=23^l5gpq=}MzdtHu!P5vHk*NZWN zI-vW<7mnd)C!WC8<}>*BV|(rSn>yG);`%N3$y%tw0I*~$g>0Zk?U}#TLtScGnHs!s zuM<+Sz!@1bJ%NJJVWD6!pghVlKt(AXCGpaKq-|n-C^FQMbH}evvQ}eK+S{$ zndDf05*q(7{wT{2RbjA(3<%bL;-!G9NI9QUN1wCoty8|FT^0gaxP89(c@CDFT`0NW zD>!q)7q2oQ@%Uon+Vm&vN?kkHrr4!#jzsR49TNp@NP{*%G;mxHJ&ZGqcfiP&uB6*T zw{>Fww2%*qdW<;YrsrmAWX0LA>@FWdF9FXB-bQ*+-i-2tyBuMa-y^ z;uhE-mE~COo_&Xhpxyz;w)oW(eW~TLnq7{LC9Xvi`u5eU{%3rgYw*d|;Wu zR@odWx0)C6aR(l3b18Os=T+@hJJ#r|ZTb=wdvs*BSoEqBr0aIPqM;7nzm>ws$CKgl z#wB^x&ML%9QW#-^2@tROVic^iLjol9KyrYoV&d`L&&*Yz+EpXSm6<1y@;G(=pQo65#3|#ak zWoAdB&_RnBh)tQA2Tdj&zU$f*+rIbpOoKBbU(#9?znl$2%fA0Wc&7_0s}6uj~Vw5#dNv-;Y-9s;;PE z-zfRaUcs(2vw`nrftbkHl$c3Kk5brJ*~9>Cl25D#^xEG9Hq2dvvQaJ%@`St3d`=T4 zW>-(`^FP}pwaZT7yfb#4c!`>@RDkbodD86f_b4P!LB-Gvi?`~eS}u`!qh1>k$oH~#tK$~;(yc6w$-9>Rafg8U1_ z{%+AMdgI%-2F9Y4AY~j^r`q>sR;}Tt+Ln`bXmoB^LevMvWm*vP%VZT)WwrhfB*Hmn z{uvvB2c5OMz!vc2chy6(K@2q2OBHFJlsJi+Y?!0V$>(W73k{z4gBJy`8r{WZH>GVF z&+)LZTNLd^hN>;;^N+LP{WF(RcR`-J5APY_uMc6`tgiG6y1d6!Pr=vi-cdrFFzHaP-U|jrAhGJ zFO;bpN+_I6t#$^}@!qN37Z4x+Djp!b@^leBt&2@*cWMpMw2Xi^LPo8)ImyLT0~`72C_Q zAd?bK^wx0W93iJi^0ddpT6*Qs^?sLh|EEdbwwx4RGA%U193=d(&d>7ZKJX1P_pDvB9Q_m{pL%@4jDB=|*a>IkA6 zB?jM>dU?a0xR(3zeI-HcbDkO2sU2LZR`ZmU>I-&5kds$ae zRjTK4g$WqxUTVK*C`Y4?rUtTj~Xa7lo5o-`jb{r0(`)+%b;nh%2VbDPZ6Qt2Rtn*NU`xfNRrO*PcKp-=RD z84%Eu{5oprCBeQl*Sb`eRS)NYd(W=sc!XAD9`vf-Cz;EwiV{U8dXJNt1Ll%x z8?c~mKM6Nb#F4cXIV$NaOO$p$+xfVj4rM*bothhTG#HuP3*GuKCCe%1j~#oeKvn>x zy}IY#C|;0*2^-xBlE~Kbymen#xvM3_sMzB@SQQ^nB5|A=0PEoaW`t0SBzA3ri^-XI zphwd{up1MPg70+`GDqYv27yg04<7=}3~q8yZt=tQyABi~eI%tOa0@m16@yMzu*^JL zP65o8J+@C+aR(s~Z$%5SLxDCR0zo1i8Zlvi~MTphX}et4`N z%d8~WZARK{srGC~>Ab0T4irPFsLwfB)^gSI9;EgnnA_czu*|1u=L>fr$4n|0Hz$iAnQ-jd}A=orD&u#*KhK7ceH z^4z%7Q!NzfK-RSq{`AIQ8B0Mt>qz9&EjtP}K=)O9J!G>IiS$lze&0uLj8|snK)w;i z)Od__qk)eVf^E3B213M;y*SCrhK&xhBEygy=nhFm%jHN&(#ST%s_Q+6-`A)s<%PlI z9}r^IZo{u}S@sV174@hiqhkfjyC5=kEvx5kCoqV9C+Mv~!AKtf_l@LB2eU_l8*#aJ z5%2AO0%23z!JnxOMc>kDN)|WAJdlCO1TUId;2$%U@5o1_b2z;5S!rAx(pF{!NrSFH zf>VRBchZ$f?@ipi$T2L83~fH75*4jw{+3pWPnP3|&DYtEaa)JnmTXc%FJ|pFw;nVmY1^8S%oWm;d8HmGwv{meFP+k{elA+Jx4QKs5!xY5* zrmEZ~<#Pm)^mD!>F6&jRy6|GdcC*heP7RI^ma$_-JJ9RGp@$uJ#DVL281WO+*f4|J&}&F z#&ulBdj{X9Z&aFUd-c`bU~g)ed|VH+H)h;Y?b-Q4?f~+*h!=V9X?d=85UetBCRLf# z-3FezSJM=!p@PZ9fW&AL(e_VW)Oo%A>X$o<3sa~I0`i|;W!v)~u(50D#GF)Ni`#5N z0D=r7qokkwWG5B^`^sl^ERKt&9x1kL|A^7YpN40r`%sYAljr6c^r9t)%Bl`mmo(>G z&P>De;Pm%*Oomk_aiKS&nk8-5y7z$f$6+L^y5++0ubj3^I@6yZu>R6X3L;^(#X9$T z=Sjrw@2BndMw%)OyTFwWeX*4`r_7OM^c;H8oKrso)V?0RX3`D5A+4iTS!U+HxJRYr zQj|y{LK)Z+v!N48yb|Dvu#<|oug+v3WsM9W7E;8Sg~LB1#bT6JugsP7MD^#;m5ABo z>Uw{J_mZwX-dK68`_&JUys3Rh+nG>UWLF9_R~qE9?;8;XaendbeboL_*|Ia&+g&dXRThR2L?RAIg3QSZaNex; zX5hk6+rEpDyp(y}FMnG7(@$k0f@9Bs9XU+HB#CPS@#Eg;JwP8tp}jU|rHQHBh*d_B zA*lHfwtcrd?#uxgj~~v+si4W2k?v912?~}ad4X4+ExQs=KOBFp@?vT%#c)v^i4t+C zC=6Hzz!RaaOB{`In>Db;rMj$sm+d~32$wKlL0J5O&x(3u+ zIV$>Rt(xbmdR_8YXjJKmCqX+ zAvh<`(*3Z)(2$43!k)yp!#jAfDCz#~bC&PrkV@nq$&NuMqH0ibc9RHEx=-1KN=)ek zGHH)Wk@!*xRek#S0x*{&iIX_e=`TjR)lWjbYxhq0MrrdaLx+0qp>&w@w5)&dAOKf7iXFU?;RKob!Pvoh%0b?c;1*BpaGX?9E zvHcep%@BHgojkA42>Z5r8P(=|Lze+s0*4$b%>zq=3BH;DXQCYQqnpZ%$ceu^bWc*V z(^P`yQCmJ}WG7u>cc)Djo&*}6IhOFj(xG`}Dgb@h<&x z!lNN|tAssWkcp@j!hh(+vi0xd3fnTBVRlE@-nGJMhG0Co6auhAC$yU&b@m{nCDyn2 zbO_Z`wz-c`IE4B3_pmctzB_`Ja=@VJdxB4YNT-Oae!&V3rhjr1u6HmRK~ z)E)?V;|mP*9`3|T_AODSIwEgxFPl%RLwc(Ocg@fWFPKW(@waPsZPtxWYgkcj zJ9PVpCvC|@4|$R3rqmh}{NHVVfL?JSwfgcQ_-*@KM+Hm}2)@W!_emx<8>1P`oh7&T zHhJRS?E9!AZ5Qi3D{YVp+6vR7s4;|*uh~0e)&H&tvQ3pZh~UT_P!J>n-rL!<17Ff@ zu1h}yO%m@rmz5$ryeTq_==uW_a7y)NCh0(}z7xoP`q7*eZyzpqv6q2$GpdyuN3WLH z2W-%6WAvmJbJIg63bAq&LR1QpRQk#D7)QKcN_G$%Vi{1N>u@9j(Yn?EWlNEdyz9A& zBVkur)M%RhL@h!>%mc&28_PB*SCFUg<2~PpiF+P4X-;uiUnqRqc7XQCa|{bTbrYf7 zl!tJfEw#U`ybGUO!y2(@glerpW7|Ze=>efe6^SAnbWFG2A;@DPqDfj6B@*z2nQGw2<)kH4s(9O;R@lpZ7b-& zCiR56%vbd2pMRh``FW*GpM0o2wHW0Aq)H+n3hwi@&4-#n>HS{8Zb?4e_lSN$!(u-= zz!D}ZLqRvxK4diD_OJUB_M$!7Hk+99Byx^jnkLHtDui4lfq{ZERAMc5YV2WlV}=H+ z_wqhYM!MR;e3vIfn47M1Kw1-`JD_Gfn10VXB@ecxWBX@;fuL4MP~Kni7p!2eKaZf4 zp(fD(`5TN$Od9)#L)lbng^Xd7arA~S?5FKtZ?$CpeWs-ECXB?Ca_dW|HWO*csn^dO zuC^Y_`HBd?VFKcm<-MIMJ9wc2FGtFP-n!J?@~l zP_W*;E$k$51Vw@Z1L6DuH{G19_ih3d2XYL(=m=_mK(Cf~&qZC=kr}-=ks8AA^95^U z%2E3A6h~q;LXQOU)C*s-Cj3$G$V_&V;_3(kJ94;)U^Tn|N)JLpNFP_BMwks{@JArJ zNrCDlsuTsJY+}4;*M9zKSD=XvGY8xe-TbTP3nia^i-Q!Fh5Lkf*p1tQ*(T`#-$yY2 zkR{(C|4+plKWMA-ueb1ZHdUjl2f?XrLX|W{{%xa|S);pWdTt1pd+QS!=AZaSTD4;A zuP#Dd1!e4BCy?&^x|<^s$?%iHy^SE*md~2xy&5}ALg`E$$aqT2N>O~=5g&_+H-Y8w zB+%LHuX-ydsAMB=(kl8WGD0~(8;R_sQEo`-zsh52yAxO9zMiZ;VjWiq>bL@Cz>Y!@ z^D_bmkj@+KTFI15ri-xs+d3L9IKiSv=tJ>OrGRN8NRo|QU;k9m9FK$9*vR-uTEarx zaK{_PMn$%G0TuGrNEc}smqiXVN1+Q6O{J49RTvC(y(YGAy>_8E<}07qo*47+Y}uL8 z(T_H*@k-Om0_l}JQ;4L1Z1@a~x>nJD=ZbH|ZlgH^4hp8z&xeK$(4hOE=k*@&!wSOa z_9wJkD<9LJo;KXNsdv#(u@4S5$e86FUeBj?dnXU)C_FdiT6L_fx|QNQ>HR0Xa?Y>s zXn~MqU?F#48`$!G}I1IBkTGSq_;!_6mFnWA_RJYh>oxPr`I!gT{M)Ll_k#dBWp|1O9u*>yLGN@MV32?-8Xi?8& z8w)f=b9z`w_BB@L@y#tu@OOQryTQig)N#~;(s_Po=$!?lO3P5^`qN`L;CL=0wsq^_ z_1iT!DU!d>0&`Jr#U<&Q(AT1Uv$FB``Wd--{ThQZfCRgl4HU$Hv4dRX;U{#tZYg*; zcxr`hE;eMAlYG9uMAc*AT~#|V6B9z-44^K4o2r=^m?9P|CFDyfMX(wExOKYzO`Pf} z2Cu$7vp5rWIRZ%@LZaFJPE{?~;oGBsZ58+-kUwbheFp_;rm!$a;TIY_Eq~_D*7pK2 zan8|hjH-LeSiF&mi1f-6B~?DOT-#i)i50*jfwzV3Eb}#Z2FWxPd8Ol9zF<+!)0pko zPtKM>pO<%i=!2f~u>xS(4Ap>xRGYXg@w1W0h0hkJhHDR;(1XEqud;H6O)JHs7nD1< z13vLr0DZ$8YSBC0CgR@VS2==^KGVQdCk!|_sM7{Kxlaa~nVlh6r=%fdJ=kzijr^TD ziOJ6;Dn#C3&O|R*M#D`5ET1=$W(3_&SEu8_qv(n6+Dr?_Jq(_WpIjr=o-5F|8wr)s zzZTH$)bmV?;`P zEWqFQFMaRZG`5Lsk2oXWoTJ}8hK}Ub?!k#b>_H>$^y=w}U{5F#{^@&39-d_0zK9>^ zvbG$GcrtOfc!Y)&{Jcl!@cZ1onpD$*T$sQMGjqV%1y8Y7#IkT8u$frW+N()gCoF$t z4>|>O)N{-T8S3p$7e~OggS-q@@wK5rP$iO}wxZ!-y~Gnl3}lbSmJ*K!#B(I=xaxw6 z(#ATNdT-DWJ(EhYj;WJ>j4vz0&WXk(qSfT@J?8+f(5|Bhc2>PNo$hgKN7XwURG+uw zjtP*q@PC`-SbShHSB*8+EQaN-!j(K&U%ALd87}Uh<2egFQ-+u@r(UZX-zQz;VBu}( zOQHb#uMq+5B1(Xy9qy?lUWyql$Dd|Q+8U}`$cl>?#-skLn_I}Uj z{LAOzzSpzXwbnh)y4Si^awYBF@j1jN2eSe1P9PF+h{Er7wPSrD&DLTaT%Y}wfHnAP zyj62IyPeuAR(8gZP*AqRnUDW9Z%q1B-`;Rbzg2<5Y%okln3}VxoZ(s{n)N2&LGYZ1 zeXGwOlv;w zA9Qhe|BDAahLYenQvfy)WrJ2D#CDp5z9-bDs`3rr0eq&BkjBsK!T~LGn|P3t)fQ`; z`C5NI?C-x=ZeVa0S*=Q}-^b9zB`fnW=|KZRM4nOrvjtp1?T9tOU}kDGo`a0fIQDFr zJYBJ-+2gJ)5CQ07{=L5*Vp=Cj72>{TWlujleB*GhtRQ%}bDo?o$tTgjkDttEhEuQ@ z!-Bs|N#lDVA@14fZ&h-eo#>L5v7Br*c3wdl*i%YgDMO4SXi#0j7AtkTkKDz?{{^;K z_Mjb zO{F-3h2bOj25QMV1;Ns0DGRZZ6T&=Va?-~eZ3@7h0Z+%0+pX{KgPYC(RwAmlV?npP zs>l9NzuQ;-KC5?Mw*mJ)qVm`tU^yXFxF9+2NQ?H^ar1`*4At?r?)e2oCTg)v9#Sb4`v9~f?NhFcH zIz1UEyAnFIl2?nIHPrCxUD2eKgdoMJ&6u2fg z-?ke%BFWJ(!TZc`A_Ep0dFp#OL`^pXSXnvw(2Bp0?e-F~iO*0lav!I?ZQAR-TPytz zbBj*@!E;F!l?Q2QhulTu5y6^yTL|i`wIemcnLY7K^yrfEEuh=Q`IQJ+GQ2le_ImND zF~-IB*_kP=xaF?>*GP29#ke=7Oc{K)fF%n5rH5hXSbFZ)=L-jmg~B@{h^q{$wg@Ad z(&l^VNo@P6Io4&cSI29Msr-^?U8?F3nFLUFxbO9yO4@g4IOuZ@)b-dl= zV07FsKEcKzg;VW1=Yr9xFffzXZ=xQm!{^i;@pe07NyL^tmFx)8JgY+U>Y$Z!sSg*; zl9^T_2dLaJunp^zdl4L^6PcyX8vFr0qOXkk7MkPZVng$PycUYiDSjds<9Zs+Du1f0 z6=QeK2elm}|G2x33JxSwb)Q=6KhuOZAPl~lGBdB7l4GOG=7EnkuJ(CE3qR{7x~oEN z{D#1>k5Y8!-LUDmL(YI8GP`jQz5w*X*|6=MlKp0;@y7=qoNAD5b$J$wV{G*ZyLiY80WS#NGRZjz_*jT6?#&t`~MMu(cbl7c?@D9S#Ye z-_G}cFuuMqCeCZ#Z6&@$Q}s{MCj-~ewH#}E$Z3#wauj>WJn=J*dcMUO>rUT1f|50`Z>{<$6Y`0+1*%6^Q0 zXrb0}dEu5;cV9DIB&5NoM3E5#Umeh^bMlgDzXbBBO<=-B=HIyhemxM(3`(_SPN3p1 zvdS};iZb;0O${H9jEBxrSKBdvL$?94O1*;{^j6_Hc-zF*UOB87j=co(fM0}LKek!J zj^Y&mpqc&{m6)^`Hl`!}?@4wXH8FQxbNO zUu`ph_$`y2LD|pBGB~VrZk-e_NeFY_e>p(5LWp4{vAbh9BFveD3JzXw9*B?<>Jn!< z|D%+{k%R~(J0}v{S4e3i7OG8Oa=Q6orJj5SorCYHQSFx3UY|GhFp$45PXMkl+<{D+ z@Ru`zzN1cL!4o_45sjt-*ir8a5+W9P7C61TbGyr#BzCt%(!yo$`11(bSeB;9szMOD zd8LBEV&`yIio<1$MDTD?I|sR<#`GEBMMtIyEa5fk~XrNP;G@h@= z^JLV_15I>{*TD5%Ayc{0TK834_bg`&zrxMC=8*d?+^*;_6i>dz$)`rLO#*NG!(1pi zW{_`4xhXFy9S+R71$_g*tckhZ8N~7*LcX`RvSCs`cNSF6;Zhop&1*ASn2#i35eul$s6IdN88EJe*V;vO<7j2 z&%iW@GfK|@`HPmH2xQdumY=;c3ZodzJoe!FDV8LxY8R5N;wPWRBYN2ZzIB&~h<{|j z)!d2iazA>XV0mxhZ8Toq<;f>vB-`$V=qmjX7(5?xS?_ZJ2HP%r(0r^Q>an`WIk&u(L9r z@f=;MCm;aPcH$dOj}y6N@oyqHz%t4)y++?K-P}|iXQLk(#))>7IPn@io z;nPjjj^lG@?)@=5_III677SvwWwtj_hP3@cEi{Qg<`ISFZqnlB?(a=QqFIx!JXmq)eD(2shbCf&fBQD$3>5W9 z8_@r4fRdl;D&O3V^Oo=Ht8uG1(F51XYmp2BQSwQ4ISz;>L>i=r{4jWP^tz`Qi9A6U%aih?^L@gCzpg2tnusT6fHG`DFbg&( zY`-ax&{f-1!AcRfW_O#5x%7f9NxQdcms;34EFyLX&o=vyW`R|^wVcmFS{*3bA~0?2 z>c#i#ql-;nJ+d=>#=Iy5|FH`_1g_^NhySQFSgLW1>6Ej>n>A1Y3NKvIwg^5yAAha% zO_@uhsxu&^#cyHZ(6I!{j2&uGZc;>FKxMKf^FA=+UsgVl$Dm7ZRr*SyT8lFl(fs$( zASFvi%#h7_ph8pBePO`7Td!H6bHcNmkppnr<5dyVP|U?#1co4gxyjbM{~4WR8!Kq3 zE3%O9$T9u{$P|&;FRSxq2bGu-z>Igz$)l|{8KJy8XiW4;cxAj2RiJ1JJ^OFL{?BrN z9?EKz?}-(~N9m9N!FFtyu$hTwLak-~UcENGpU7w-x8jjIpE{up31ISAdgU=Rsh zMi${;Id=1XvTXxz0`$mRm{~Q9&T=>xo)7)+4)PPfcph_Ceuf~TNzzNe+}>RxK~6h7 zT)-5iXRbi%_W~QQx$jF1=Gn93!sL=c1LamJ?)kvLi!A&?txU+mPj&E55SV1x8J$=n zICpd0lua&u2gjUjBY(J=#R_rQWtGICHnIP5?4vl}z|b8}2dS$dxQ6iRrk4p(jsd z&{2K%r&$><;m?L@KRIS^@s*Y^zrJK+{zvb)_(F*aHP@f*^%0k+_hErAwrJ;EsVZF_ z2n6^qg_TZn%QRu!i@+O0$5*WGSMlyJ@#QYH<+8hd&KyP;a2^x`07wx=IfR`@N(38X z=EF#OUwmFG4R?5_4-UV-yG(w5PiqGbx`T++y(!&3)72QZBp+5+zcBqd$Amb$?ZsD$ zxMrM>cpiVye?u$hIX*^@ZWF6L;d9_KOpPA^dF|^={M@%ccksc{bg!{vC}r#LbU zsK!gO7zkjM0eLyWIoR;Qv}8<~(D@A<#TFR`ZP~>6=zuqr9Y}uLXR17aSQ<%Nnpl{a z`S<0~0OJ1M89;u`FP-yt^j|3D^@)GY{?U@?^M8@#pGWaMN$*-_wh-}!f!zn3*J`{0 z>H+X^#p0|OUnQ4pa06TjpY}5L`}p9L*3)cGfl`1~$sM&lk}*_&9kTxLLDV}fb4~kf zl}1lt`jSVB6Y<8wm%uy7ar*ZfpUJ6{iSAG99{A|l_Is3)q0U;Q1)N{1gOl!4(}M%b z1}^a**`oFYBb#3KV47LWLHm6v1thed2dgP_6h6kzR2yTh}05AEW2V} zN#L$Q9?Ed)rf!_l9)fb%9IL@qxS82-3zPyDX{}-S#6{so|w2F38;_%LAvn^5fZg!%Wwa) zo&Q@%m}0LNTR0*@@Gwt+UEA3d4cqgnhMN`l0DW!?EVJUjt>ucsH=dQsQiA;AyCB#m z+GbghoPZQjZ!rQ$KlwaTz98nyGD?&=&qM`7rt6J)5?z zd;Zj#3T^g;wjf*s@ey`kI^JVRs1{GdDrlP53ET0^LK(q`hSdj9BwycIqvyi zFEv8_ztCv~4^OL-`NM&GmngFx6mH~5K!po&_>Z7xIq_0gZ*eD}cnIyo~{%@f!vIt&_yZ1-$Gig{*6Pv6a!q|oT)!8Pd6XX-pKyiP3b zefWF9II-HueFa=a&bxnf^s_X7L1?K95n)WCT%%v;esEgY-yKDCZ{hAwm$NY8KQo8J z_r0R0&PGje*1ZZ>e#6-`HT4Jkt(dDr!=T$sJeu0o(NoYIG~*Vph|HwM{K45s2T{g% zxgE`2fGO7b6jr}W$kK#^B0{+K{!|G-c<~Hq3f8TOJx|u(iorYd(?uPF;Dy?$QYGeR zIX47f=Kt8<2TtstD@dBX2*aiR2A6#5)3CAeSoFq2>em)9vokLOkU3cimI}4K?Dp>= zHKF661-%sfR#&}Yk!>FqZ7#q=U0Nbsi*iXv-B+RJ@~fgYnHw+7q88$w&(SbqHx)or z)$siUQFZSseoDbdf5Y!bQAaaCLJtIXxEWx50wvKPAxrk4S)h7>M*o@@_P}TEVKKt?-_9UFLElB9!-tWHu%P@XxeW@X&W-kPF5K@#ZEj`UF&VxL~Y_x1UT#mWOyC zy&HiFR(HV^^k=j4a@Lz&rOhbPH8l@L$J-8C?QCv45pF-mBBNJW) z;^I3i{CWAtdMoFoQ3z5%*`u3$L~#x7JzkFnEOX05|hJ>W+2(t_fYw z!5BWZ#+-|&hbNoaW>S7v)DE=skWUa8viDI7q2}#Q!fD~A0noeZALre9~g7tpw!L3mW9t@Gd)>oU4WuttGB~m?-x^1fWI}1xFnh)GxkX$kJgW0Pr1r_E()~@FkA)oh^R{Y zUARtY)Ds$lQX7ae=b!g*LDF}}@ujYh$+*5u;x12F? zRn{&CqD#;FZw1B$EDt*r5`Rnq75?^>v7swOya0L6-(%r0P`1tedZ;b0!j!!&Afsut zaTs{A2+Rng>il9Z-~h3xKkMKg|!AbPX}tisd& zB`bv^j2fhl6(uXS>YA^jqx}&~b-0ZyFOD6kWL2H!v6lX8b??NUu33ia>W?%zDWlXw z%{&}rn=o!H5v6{qzgg6Jfzn#Ukz%=L4pYd zP-g3k3E>)L;4ii0^nop>f+n+&fG~9ck_SB9%`^3qQ$P`qu&Fl>S7RNmKfy+L#y#hS zT~Bi*>|I|qi5I>Z3%P})weyoERNDg5)(Wl`R{FDQL$Kwn)c5Bkg*{Dw=8!b?llftv z)L93{4;m<2XRAeIr1%VaX8J||_{ZB~3pP}>1#gBLUuK}k<`0sC z+!n(F?|kS6ZlD)}o$QkzXUtvCIBD>caY4Pz!z}899=EEMIK{O-|Bgm+o9{R(OTXb@ zo_j#l9REhkZ-D&GAI^LzUAB3Xfbk=w{V=7(Yqh)r%`$2gP17e@z~O`!X|PWpUUi{g zjQn7=Y73P&)gLtBeWX)A!ots)ByS}kz@fX}#mFe4hx@Yeip_@c@bnZBp8IS!)jNB2 znn{YV%S?WN(3*Z1uH?xHQQ0k~m zctmpGd8$+6$C+mbMl#l__GTl&9_i5F8p$%U@PoxO6(^N_;`cuw4h%(9{9=CIB`U-nRV0M3i5x| zmfpB#ow);EbqM^_ZPj1b($Q(LFxh}Q9Y*C7;56Q=E$}6k_f&lXrY?L&Nuc86p2~Q@ zB-(i7a5#KI@#(5=;CmY$BM!dtHHVMz>1y-Pjcx|WKnT@Z*FX~0_ zSAzr!zuoV)wT>X_kI=;X={NX`?a3QoGQiekDg$^#l*v9u3{QyO?oBUL%XWC@;wx6| z?PERNp>Rm$cO*1j%FRX zbALmW!0~6IY32gR>+85v9KC|>DyJ%dxqcLn(m!XlygEatAt>71WA_y8ZNWswmE-d3 zaX-OlnqGM`PR-sMU#2#$j!%9jlA%ATa!tGUJBu0npn>NCL!ocGDuUheB*;Sux>l^3 zKLk+hzMO)^S>ov2n>QitD0WDl0%;;MW}W+P8jSeK-s?LJChQD^|I9|qYq8S^Mbq`g zKo>3#YIZjq9PqY4R~%@VHvp8u*CIP9hZUDO3-D_g@4~C|R1a3;zd=}p8=L^06U0C5 zK1&wD)l-9)4`*~!KmH_K-g=s`Y(X^iF2WQOUC-T4BS2G-`?^DTTPL zsy_+)im#ClpH)UuRDW~b#72ZV?g~KZz`eo)>V4>}3g@NY{DU4XMr><}6>XRAf+`?v zM;2%M@>+6RWA(|`keO8rJYs1Na_u9;wm5oNQ6LoQ?zii%0H|A zFL^P}xNN+=88;nRvBN^3_4Q2g+%&kQnYE8oKWs3AXa0FDO-Ah3(qK6H8wQTfOBFYaI%FZhr}Qs3+?Z%N;MGCz8~GKe_35Ab4`oS{wJumCZ+5zbHVN0tZtx*m$TPR} zzMJL{MASan91F{fIadIf9d@>7j@w>cUgeMOKY@ITMzakJO6AM$fNu{M+;0X_P6SYh z!joB(KNikiPxyA8f4(7)AsW;)WnQRxkPYlWwpr|sDR;+F4{vwBtw$u5!$#W?0r1pu zzj#3`QW;|*?I!cEvAQ@`%ghm-FPb&~QrNN@((68ingL4XxZ(7)66~^fVDf8nw?2uc zyp}45n_x7=l9~5D=^zy6)jt|Gx`~V!>;6C0_@8a39MXb{e8>Q^X>{70&k4`hr)^bLpk81ygJOTOf&OaEH~XeOQ-w6$|C3{%vH97>l?M()7n182N7Wq@?|Hhmh z^IV|XPj$5HZs9Gzi1&GaX~*c4O*W|&?0uVQ50C+h@%m)==;?P>_H?Ed>b+3^Rf2=A zAJ%Z1dC`Hh*nF&fXO-kyie#6rBi+XNR52CmioK`uBCro|HXokTlR(CD{|GTe2{@uaT3V_}=yu=D}N!drJqk&S16yBxpYIMnKvpyg}%o8y&hY>)>9u0=pMs2@dZ;7Yo>c-n67u{|uWGRF2< z>RH5ODaIc&q@FIRG)r&JMHl#~R{@&4wVx~+ymT%m5|!i#kDHAI3|y_7IWh z2QeDU`tcgE(zkMG>y&U;F!{;}aq1x}dzQc@FQ)*2jg@n*2C${shX&MvX=Fi2{c4Hu zAiwJY`ZQu?!C&v(HE;>*EWO$tDc;hXDk0bs0D92AS|*^kF7dYm{!Y78?iOLW>jyc29%gaT``yiWmOCw8 zMINBfgK(_qf5IW!j~(RDvDvZ&Dnv^3rGt5k5TLU3zg{;DR{n|5`g&t9lMN zKrx5EJj)%{k0~v96YRB`Dnd_^{cMY7--*!a%Tr4cKu=+P4=J7JKmT6MkD}@Rdk$GK z(yVwe2_kysd3AW>SLYXK?>PwP-HG!xRMl=;ApJ9~mvVj#xRIzSdI5JXyV|Xs^!u`|jF{#hKmPJFUN1SONN6cp-AVuX0Wbq^R-LTJ0AlKQ z`6GYw6v&25hND}MnPB+@j^^fqpCtlR_nx2L6s|9nLWn_#jq|#$%}MDG&v4uqe$2Wi zMP)IFdSDdL@$y+mC2{mn(C>ou^>vTDx|wGl#AA^*y+TRNz`eX8w);wchDQbPkoF+b zniJ(Lc3=%-K*-BxPn>bC4UDXSEnKN6TCP`vgl62d!(WBu4tFx`mP{)=I(KQ{AQGNF z^O^XIN5xNqXLUBSJo*mDL@pGkQ&5NO@PsouG$oZ%HbV?wX0z{x(Rd4+Ml7R$N!-%= zWkw=lamQ|q0wYvp7_5a5R8=RTFywX~$&Eyxt}Q}V@Nv6&<(IG99*O4$)Rg&9u|kWP!1p&hImXbB=9PZh@0hT_w?`I05JPkq(Ee3I=^Ua8HCM|0 ziRU#!wDMP6JDN+VLG5YaLoK$D@L%geslM*cB9+Iv$)g1^HMO{1W_B;S8XTmMs?>F! zqV=i1{)Vf{jHlv7-6M&2d0=K;<7~+}CNv>0x_4(HUh>mnybIHp~=+$Iim7!Cbd`-Cb|RIX^!FgiKU;)*@3k?&>vtZ7CIa&&@hTCeY^c|ftn`7kJChl`H@e0Z zj>mnbBf#~>H#MJ6ccgwDtUA~q-fy1_dwetfRj@lh$M13Ovo&6P|mqrIk zyB|!^>UQeC+W3^pOmTRBpO_qru@KRXDlbC?+`pu#v)b;)dU9Qiix*R)C6(mCa4uho z;+`00eS;l{^T}VXpG=_r^o(V5ZTp28<7bV{@gHm878%dBpWZx$U&>}O>#jH*xQ2{> zM~hy_JerP^ZQRo#I>EaMj4{4=;q=tglJ}!J2avpTq1D~NA6r38rlIs|McN3=GcMSMt?Qh^>_h=LkQbmDy|M_-&iM^tv6(z>7cA-*(C zHR9Q_1@a;a1;c3!3qvN`TrY}n{fak+k6 zb~@TI%xp;^&oa7@9N!GM$tjD6N_EgK7LLc9&q(p$^r>%D?1O3Kgb|A!QT{Dfh4u$W z;V`3)?!#5APSh!bff5%Aat$V5kqY1T>7DataT7s(8DBoE|BQQxn!sq z>UVd?<{#JjM|sN7ruI^C?-Nl9+l5C$!e^i&-9**Jb>6JH_6gTl=!iXvUx#*7Z<0aGDuv>aj3aS{NAO7?z*nx@m zmavN#T&FZ2(40n>pl(0tb+COaBN>tVE5ruTc;sk~c(jdLMwD6xfAnUlW|a7ku1&$BTw!wtPtO~zDBUX3=3%&gl-jQ4ETA+~W^ebOGyinm{J zR3UU*k5wDxl)6^ROR8NY29s^t1^;~Pz`xpfLMf{FwlB<|C-2fRCi*p@Ze6&R=sir* zX%;$=ga0WG)L$9rx8aU%QZ`Em(h9M4;*ykG?KyMXE6SgfQizmxg#PA~)TpbVi|rvE z0!#V{(NcWvEBEIl9Yx$d7TeDC7#NuuUvpYp=4!~%i4altBh>MgKYxC};dXVNcJk@f z!@r5aQPe;mzR^M^w=DIaUW@b-h*!Ud{X$!GZ8m+Sv3v6<(aV{wGWx&-b`d)eQYUtb zSW1Rz2ojFhf8spiD(Sw!6kQwJK+o_4WY)%qz?0eK(A+zp?- z`S5wtrEF;pnlrJRhl*|9#L{)kGE$XG0~x{EQT=;F<>nG&270jPrCj^+3(Rax@0U9~ zAB#TR5Xv=U>6GT=c04&KaB)qI+B z64;EyXnIVc`QS3`PRTuX(dDN7S(MoK%}1wis1EtAp30D8R1~1Om~oY%_*sBawTbV8 zr8{8XoBEUUw7YJ{i7&8~)n7NS45!;(>Ev9ZzMVigSQK7xNq$qi@!q0ClX2g7Ujna- zE<8!4O&Jw+*07#5mJ9Q0T#W`de;zO>t$ZGW5`0-Xhli5Y78)|3?Fwl@3;GYb5_S zb?#|(%>V!^Brf3H(-)_qCz@MrGJ>Zr0-G-l!$PtY{WzNj}uSM3t2AW>=%@0{SdD)W!3gtkH z)4wj1-lZ$oBUr!1H@in$@GS3Ndp~-KdWd}_8zDy_z|`)6E_oxQ;;&CrV66vR9&hms zfv{~n;A>h<&!g1vhZPydN4aIj-Qvy!XoKZYg14b$noQIMoy)J9LewpsQJ+x{-b`t9 zUCLID=7r6wc2rKxEfO4c!}Dw@VrThkA8$M4Mg8NFac6FWnWGny`blr0m<8j>lYU22 z8HIYa<6n@qf9jAi+wBCK+eCX%U%BCX{T6)1IYj-#XTsNSOwd|;q!ok&U#;{)zimoU z$~=~L?p1h*jsJnAE0>Da1N34coo}Hwx0rKZ69t27^bcNKc(;}Y?r6nH@B41eryfc$ z_3J)v<52tZn14glW7XgT#{1y)XRCg{^ICoWw2@&m*Pg$9Sgl!A`g^AQex{u9Pp3ud zZxriC>m_**>iiruv_5-~huU0-%1Jl6vUN(g8@@Ic8v-aWxV|xZgpK7fTY*D5l*Sf% zyXB8Z8qLDPywt3>Oh)nx+FP8W<@PpJ%+#BHt0e+iZv>c9y9Blu)t8pzWUCZJK^?C_CD>< z7xI^br=*N|Iw<)8?UNLi2{@rd<^(!ZUKy^X-SpxJB<^SXvv{C_i?bBwB zO8q3k6XvO!h^3WXKECH_J7iK-3nDJ=Dc4H!Thm7Ww$ef=e<YCJ<{Z8dwE4-eyoI7gGo$SRqig(>M2{Vvc9sAiTF7?(&JUo<&sUM_J|#) z(o%B;ak_f19&$GAXFdA$)7eysPo3Sarh}t#C4B(glv4DHSvE*L2>|5Y6?mJP`>SaP ze4C6i6A$>3GF-YHYU%16`mFf&qno<%S{8c02n3#6 zds?L+tyEDTdO+UDT?^)Zd-NUpx?Xrxg5zN^uCi?3VD$hvts5NFz4^|s?Q^@I+De;; zaa2k6>BxeU|JXhQnqs_BV6@kvEy_x%1UK5079fF3ZeO_zO~3JmRUZgWQ8L|5Sgnj5 z_HleyUUYq3mJu&OHSu$qilb~F>g^foQ4(m_rL0F zMa9g-D>Ihcnkr_^2o+8(Z8=3e(DO!LBtc~OXvaXQOz7u!p|{W?LajZTU0?urHM5qs zR?zP^%x#+)pBs&{W2b!~LEn_W#gj2&;fv@WC0F0OL*zhuVJgT?L_~( z=sfDN$*&i4DE|q_;$5CO7-m*r4l%$Dc{)yUILhaOo(A1YCzoHlfjZ>^kJV&1X}2)9 z@O#ugzX(r$<1Z(BaiwlHwl2bEdOjPIlXr_%z}MV{^Ms<)U`nvp`7@J!tWmeG3hz zn@*unIbk0}f%dn{qM(HYdfV4l0y|Nrr~?}>RX=kc^Q-9v@{QsFjImsE&!t`ZXuC(E zjWhFVB%qtKhoW=rbA22sH@RIG0_nhIb`HlCqnFyKnIgaT%MwS;=ia+t8%QqlN7{e3ffIpA{|W`z;(XdhI+csAp&h7a&O_D2UDiv*L}fUXiF&c~>)bO(VrKm0CqJBc zd>|Q@u2=Q1w?&^07}ui7^#aX7s^5HpAMT#-sR=JaH*Ah6LP7#?MEt~uuihaIAUiQ;a*hmQ_>VrS%PHZH@W24C@biJ%65gR^%> zGaAonhs86hr+xBlv9frv!G_p)yXj(c9O5*wB9k`)8&TPS+?&_v0Zi68>ik_$SL0F!-@b@69*f`8e62HEq#|2u z+YNb_bG9kIn!YUkeen3LwDt80(*(ww>fezq<2Mi3d*2$zVr@dY6-y)M(l_&0*=I`(VXMkt}rXA7(KffEajOX(1%bgEIe2NHIOR( z`1gMLw`122VlY%>b3uGmMov^Db}536Gby~Gue<_JWv|9=0*WM3-a5@5$+J}~d0Z~(dA zz-TnkiD1VLDmMZ(N+?87LlU{Bz-K$4$faq`%Z8B)HWuqP>w^pelFm@0s~y~K9dO}=L7&C3qdL2Bbcac&F^NJBmHN@2 zgA4&u=9CEZDC+KPmtpjv5!9Ukio!|M-mLzQuABDP@|t)<1=MoLQArO zZ)FY;Cmn%#qWRyeHZ-K{rl?x)G$GWSk6nY9USiZ5I`ib8r6^#Usw3)!$fCc1Ok9F% z5ryBt%V33H<^bWF_d$wBUpbEJjF}&d3~qpr-iyYhO(WxO7Ajuw?%)OO?o{cZdW7n# z0fE`%y}jQ)o5_}SR%o?z6*3g!i!a}$_9$i=zrp;%+snTVp)dwCC{|^20X5d0SCCOCH@Q3@!ch z*mE+syfmyPenqd>ObrTRLk#|@*?8kf22R8`02^h^d*OB@JAK`VDW|vJwK>FFTOiBp zNG=u!X*JDKE&nCMdh-7DamCpgcR$!nb8GveTo%Q51vL&%>MI28cB}TSisYh5ErWf( zP}2vpE(Pu#QwM|&Ke$!e*6A6FQP7q1;cKYS`E_W9ulB9nC3ALru1#E{5jvtcXw*^IsRiYE}klMyWsWGU+Cc?48smou`pkGT@YJ7L!t%#J7uJ2z+ z(W^k&fck~6^%HbJCsRcBS8wi^4)5f&DMPg0%+GG;eq1x!wZ)hH6JEpK$f7Hkw#r`A zHB9kGu5jZQZIYnTvdP-j0}DIWk+c2_Fg3j}_q;T;L07cDJfq}2K*QR08mJ>R;qWyB za!>rp?`;h361dsjG@v**UkgX-L!gWD&0sm|VP#I!jDXTF<7mk_LWfL)qnwyG;!Lns z1mk!h%gIIG^6*)FymG;QJ=qW;i&g3*k{hgmaK2Wn*coohsLDv()5>`Lvvm#`^paf; zzSxEKf<0$_Q8=Xzm#4VfrF)*0S;%bEaQ{fppIhp#tZppH_d;h9*s|lkauT8usBUEG zLt2V#Cr2BDX;t`h)2*_|D~}QUPnuSvV7*+Va)HO4*TtRP;_)C~dkG!-phl%B9q?2L zj@y4Q$kA7%JXS6C>22k5j4K@dx^sRG=r7{Qy%rK^EzTfx_1UZ=g_{To-!CCcafim} zpE_{C@q^aUl8)F%ydcb)fHkxXmgEZcJqC6C} zX^N8Sea-C{OwZ}BUh<@dxM~o>tli%ycANfG_%;B){eR_J<4yo`zE1A*R zJ7hg7O7+Ifm8+0|tun#|q4_FC5}qvpf-hs;MsDc*$659qK3h#MM4h;>z@ zaK2*@htuL38{6WRKh8yOgWE-f#m6Tc@j6vAj1MDXEh-GXiTqQQ(oWnD3|#H8QfNve z{F+nk8f+$BGJ-dv?>>yxifKk9>%Z*5qe9s zu&fT+6=nUE+5Uz|?5|vr|A$;Oq4Fo)a%#gPET4+>%!xW#{4Mg)8vdX<#a)AAPQDcJ zIpzfJ%)0t^EF{QXa9b#uY9QQj$gEirQQduG9y>a4G zU+v_eFaE9$b#Cf^WtVtbWEA#Sv4Ut5(}WU_Y2cpik?(W`C4ENp!N``!x1m<#MSWU9IA)lks~-iS0YV{rH?5-C>I5?5!*>;7x& z|6eQqv(hV$e-tds_92)$Y9x9>%VRe;`_1q$Jb?o?XMKIp_9VkSR0Kmg(z{viFK*}m zJ4F2Fwf@6z&>$OFTLN$bPyYxZo5_0P6Kv)oTepGpf02U!`M-0VWc;9sIV=|~gEu_u z9x~Eu>rF@T8N=UiZKiaIx>nZI{wkOb8$jcH6k#qPVioLv&K6n9KS*dVy;Nr(8&nbS zgSP;-k|6Rgy~Zd>J=FROW6ghn`=7-;mN)5ff4^h&Lfq_Xub&7&^(rS(4YZUz6;FlH zyi}0?P)pcD^~=Gd@0=xFqUttEMYZCU`F3m9j~)@2qvJyF|C6i#Z)SZ!cx4IM;)?u4 zy3)orqgoboe0-xh=Q5No|G813Y!$m;_y>8j5muGcIO4Alop#gJIIv4^bR;r&G2Av) zuA4Nh+_G03q)+~U(BxbhS899>g@K7bdSjuPBk1@Rd)*@YSLL<;o!I}&0Kc03ULYmN zWDD|nMMFrt5hSPm8 zoH+A+zrFW$uJgy)|IRft?|Ro0YprKJ_kBO}g97x$*jl5XdoI!;4e%BZYX6%HpdfZk z0TCctaI-hF2SQqIQ(%F(q+b{TJ#B5NwRbXh)U$GXWHFh97prIEgUN|p6~F^*wCA-7H!mGsa5C!`e)f6t8# zKI*i`i8b7Hx_kqN^gcic;!8>>2HNspT|4&aVfjeTSttzSktn?prQK$DlPz^n64iX+ z6v3a&w50@i)IUy(WX%kb@6k4ic<5*{sJ0uh=IEm8h1`yG*v#k)XEF0Yl)1$4?0r(9qB;T{JFKmOA@i zQpGzX;Vp6$U=hee*VWTr;!Yesu}=?i2)7^SS_ppQg7E=etVA9_Jmpg z>Hlxd`@aI=|M8H4g^wnuvMB8lzz&NQC&8Lqx~6hA8*`NA`0jHW5BkS5>X#lAp_ne5 z^WiF~i@)47;;vgtHt?#~r3qc@Vb>mj{t5`Z?fZA}k0Z59hAS_W(kO;n+)#^)&ji6O zX`iZe(QP?b3YgjB_9O{}SVa&a60uhZ1_6zI4dT^QXKF-)%`B4_NxY_8DeHNX2Mn(6 z<7gQnnnc$nHI&-|h*G#?%t=QF9FBR+2QV|hG2Z3=EYyFo!=fv`ET5@%OgnBwL0W>LK9jBzPNm7d~zvw$O%#SegQws)g7tar$jo43~{X4Fw3_3>| z-GIp#1LOo=sz9-enFChjjywEv7uKx2 zWLrFeZ$1d@6X*8Z6N*dhp+&!P!7h$h9$n~+iG>8kKNNYa?Mo9XQ^Wil97gb;Gc>?% zcHGFH8)$w8K31)FM%LejU!MHs%P9DK-}NG(5}1q0=gFUe+S!Ybn?I_R(Geva33M1L z+ZV&XCw=&S?uWB;I~>K3W5RS!HWuV4*;z*;Ji@O3`Ilc#d7bX;h-sT_%FWj8#}$uL z;fq)0GYl?@qM0g7O=dL$+*WbFII(UH^vX1&pduVUZ0iR7Fto<^nw1b+(MSa_y@TdC zmA|w(i4GQL0Xf^BZ;>f7&KcrDTp> zCvw8}?_-Lin=msOuB3=TSlhjV?Mj-{e^sgY97pYQ#!N~b7$kOv zRCr$_MtbNXAIr_0su~UHkO{7GZ>(Fz3Aj@{2d{abdFsqf%NG6Cb&+cLkF9 z?vj$Eu$Gtg?+AUCd(f86^etiZ&pZe>iK2q@)3aMoK93ycSs9*n2B?ZfiDgVFoPV}9 z=QG6epkwI&Cj!>~Cj$7q@2;zv2$L$=dIaB7&hl0n0SR;0fY=SOo zJbZrOV|Y*s6+aoG!OEi+%56@KpzKWhu)+3^iE{tPL_^(cAO~bp3uecP5|Ly}u%w7D z;BB{8YXg=K%`2O&$ZguJYu8X5Nmn$+ARK0!(mnbAc#eFe!3Eo{2EJ^Nt4w#c2hoZ@ zLw`85krAq{a4BGU{kpeMtd(%WDXwpsA=>z58HM)80Zy!dqdvpGhOl)7FyZZcg*HT2 z`|mM&-`y$~^0B&N4v5%DbX&8f{m)SDAmsh>k4pl) z$D#F~;4A(&_=eeG(>@+$HTcN{w*8nyI4ytwZa)GhyRgI0e|^zME{m0Na3_QGuB(r_ z^8FVlaayNEh_4_%N?I9C^gS)7>^x4XM10$T$z$k!q5Zw0I7qdlevTLP8GWSnp=W0Q z=%(afcjL`HSPeTKdCvuMt0H`y4n8rA`@y(28*~qU^1#n)>W3_4wM_c*)IxVg=6>a1 zq}o9`cREqWc#PKzZSu>V#%KdVUa-^zkdiEl*uTKur>BWQ8;}1M_lVSmgLVO*57M@7 zb-wkMFym%BH?!s_NdXDnjfU@_90by@_Q@l5?W8Mj^&btkJg~0mZv}PXsvJC5@PUJ} z6v{FZ9OvZZga>g9K{_9Yl~$AgnVEmW&)dcEt}{lRfG7Wtp4TGM5785sM(12XPs52pU`4wmIJ z$-)?gDZy)gRd{4V$)k7)vlqIdzRq{mpHGWaQm>y=Fy*|RTACY^AU~nVoga!NKSi&6?Bv+^AC;8~iC;uAp z>n^w(`J&i2&W)=Avuv=YM(sR@pxwG6-bvAZ3CrR-TGK>F+^Fq6b;el47E&gI>FetP z`Fq_?-rMKtR`~;hT|`V@nZmaL-yYe3j#KVLFp(#|L88-&*l0rJM}es@nY7@_K+Z`> z?G@X0M4UN|pwkHNTddFh`>K$nU(sU}sQ!L{;LbUFTmF&*l_5rdQP2dgE7TzIiYrAre%_G^ofg);9_eGUc zuLj7ci3xk(zdw0lFY9ZA=V1`2XAno@A)6M=OS+akf@J%U5hoiQJt*HU#t8l?1~fw@ zS;JTUYql5xxyyRT#1{?r#`Lq+6@zUOOJ=*H^qFcU`rYGZ3m? zMI-Z+F?pg7v%CGTDYZKc&j61PjqK5*Ao1(YPXp88#}L>J;LAy>@n0G!|8qZZ|WPn*#c zWZ`A%q~L(iT!tuK1f63;$q58!osM#QS2QfO?P(6VO}$Uj*b%BpKKJXw4sg{zDHNK{ zPPXzkjjqM%own4U8#642W4#s-U=Y0yo-k zX*|j>QmHTA@5$XR1OJ&w$BjG4i@kpxVHo9yVcTOHNa>2I+vk}me8vhI){UR1?G5!@ zUf9~++8vpm`=M66p@xZ_!X;7W{S^qqcm@oX2vs8g)}Y^E(X8&RSo>1450WtpMBRG- z)-&wX>`}_n`kp;Z-_eu86~-E;I=ojcqsoAMT4T-Yb$dZA8gPDQek;4*!J>PDJabCe zAjft|RyBje3yTLl_;Ac`?IshzuwndI6+RFR8z1V z>BeHF0oG+fnjgC?L^e{?SuWlUWpb4uYrb3RmHq2jCTAljE^eoT)S~xm1V(A-Ezp$)QIwr%Z% z4LcgR+MB-1xEuYBW*Iqv{8Ad!V%~3m4lMW6Af6TLS?iC3RdWbjJ^<=XCQp;czr%)b z+0>-Yn1;p>;;Km1U9ZSj+hamUae+iJWv&H2U(<3Hrs=I7cVQVb-*cN~4* ziWF!5Yy1G66dmVl|6X=v+leun_I##)B%|@P#}Y!Bt+p#)$ap*Jt$Mhis2atF!qJ<+ zEBaEGhhlpT4PEQ>_~RY$h4?=J@&B2@&Q_|cANlmn7l5vJvpWGTV6^ytEdqv)(aT0s!+~(I! zxk(Rfb;l_a%d(Q+HN@f6%*d)9u0SYLD9wx~=B<0zBox<8(r+5_*Jq z(Ol6L(fCq!DtGp=(KM1|p0Yol6Tm&Uh@VEl$+nM!gL=YsDuyOD3(b0}S*nfU)|OqJ zMk8!|B5DUjgQoI9t5!#WLZ5$%fbgGrq{_kW6VQ~k@0|&R6=7AqD@nCh+~2|yN!=a!jzLH)vNZ}2%mhgp zuC<1QMm)AzHN=@elHZ@+-vb$F=_1`yP^om|=H-Do4}ls=YCgTwsJIE0^^f+UBl`>G z{67&HsJ7iaBVe8SnUGLm%gz_{!7BHHWKi?0$=m=J=x~$E77rz2w@FL6#WAW2?kv04 z$?7rIF~Q{vO-(f)-z7n@&HWT7qO>N9iN-g2GXjdl%Vfx9ccS{}i7!G>S5qw|-eUv@t+EBu4WDf94Sm9LrvpByX$aMEv4|Il^R*?if%ppWKxc4zGYzz zm^zStS0o~ZW-6#F`35&Wl?$=?A~G4^O4NrT3S><>3r)0|N4O5erRDtWHAH0;NVi|> z08I+c70?u(YAG_6fh=&pcSd4IObYX6!5Np{Q9lS4R?Ru7#Z}2!URI$D_6R*deHm#L zu%#-H8(IK*ES4-?0LUkE&dY0k`Pu!j7W0PwaW!`GZzuUZ*hZI4#-szX#lcByPvZeF zJ~r?ZCE_`7?J&%3;Rl;O{J6RuEXMp$d3(8(oZo2fi*s}GO`jb5CWnR7S3FUw7VG8% zg93>Q6>S}3rkA}c!E$4Wg}+_VpMDDQr!A;UbMhmV=?GT9Mu^ermaj4I&h14NS_B4i zyD#CGf91{@Ki4_v8arU5=}mUeH%p?+<-IS!oo3EY0fuwQfLPbr?uMguQN)~-Nd@Uq zq$8bqiwJVCe3`f*$n@%J&Xwt>7yDhn2_DshRku3)ZvIIDpLbi4BVDJZJd@Oqy%RyV z@g;v>e|`-8S{7tg$rt0ZiNqJc>B;6s+v1~ddT0&O@JY~AK5T-$n8hg&qu(zo2f;CX zdy+WiTK(v|e7rx|uzzvrD}XfsiA=1!cq5SZt+>$0&fw)dZ4VZ6Qv@%6E~3+vH65w< z*vv#V!_?mDLP7J%PLc58ee1l@ZaZGZ?40xbOhh7UJA;6y@7Ilj*pVvj63g-qB-d?yo zm#r%;hH1RWIkVr-3C_Dk#3fI+&>{sF0RY-Rt{0FtPin*{Lb7pbm8HGWMNU!*X?LL$ z)uPUBQ)Ef$6tm#AcX=yV-w!Qc;t-4>P4gGMwgh#liU%ek8G0{NZNYz*_X@0!w;ML! zdUHFc-PNuXo7zVm6@BJeq7+8;#G7eEyTHZom8GvjtAZJREC*p*KFRJHH9Yo_Si4d1>qE~47^F993ld9(lY z7op@gzhy;#2UD#n$E)C$B88VI&Gwh1IH?FAN5~#tttV7!=S-xcIIK};H6DrEpZ*eZ zobGAP|T>e3<^M7c!F`(uj1mkWTDdd>%-ZBw7L>gZ|;vH zOTo3BzC~&n<9IfbD-zdADp8 zJEMHD`kfo%&X_U^11rE)^Djzz4VT}o;o~6GuiZE@4Y|^BBQ>TKb+_7$G&H|L*6)NF z;Dq2S2CBU-Kne-q5gw)}{uwU?b9OUwwW|5GL<~)lc@+Zu@}Z=6MVijV1R?Saf0BiT zOwYewRr#$bwlnm#g6Rmaqs$-Uf??#w^Emahek<`o)DZc<{oWSIbP%&YB%yd#W7gFv z=au;=e&_-|GPXW;4AuCs&atcggU3{~AR8c zi@xn44ud0dX;G#%wIihCF2KDQY7@9AKE-FTRKvI=9QcVo7*I-iF}U`UiXup)n@X?QcB~=L*!Q%T%+8bzxhwi2SD zRKqI7Z4m^0RnbGb4XL+{Zb2_=B@@u;5SHV*SWP%Yo~*M(M5DS;a>s|gt2U$Xs@g*j zIJZFQNR6kDJQ@5&K5P$nfn;aHml8l^qc>To>I7UKr!N!YN_dzxtwqlDX1X<{pQ;jOhzt1?VWqDm0}pClrE|H3l9hIHCP}U2w4vODJ|sf$>Xyzi za{`BQ@dVP9N21E_BN5^w)&+!pR9%~etovwKG?fviUnLK<47CrY)lH^&@2S!Gp#TUU zJOajwPG!g+ewTNv`jOzl1J_-6W+&@)nP7wnA7I`pUtYt^kX;V`fQjnB% zp>f76rUxyT-{LdU=J#rdxQM8RvxS{bU5A9-y+>mXPF*o}pMoytK0aV3Q0gjM50`X5 zA1Gbe)8rsBhbAr!Q)_s?GW@ECHWJ}EY;9fzV~j|5+PW&lxB(r}7FQ)F+da=#k-}(Y zl#=c+Y=dR(g=p;EPGL6E)A$(K{QwFnK^tTp z3=P9~8pY{;T**k0`8pB*j5qRE!SFyO@ZwA5X^xCfJ#F(0A(Kk8pg`^N)oxPv-zV?o zm!1Zs<|hLmAD-v^uFwJN=q^_(q$LRqh_~#KK>o30wC+d*e_SYpvkbIREy^AYCPgdt zF=rhbqm(ZSO}*~L;poVSrF>mz^0?U)LHS&Sa%WNb(PJ2-_?pt?h~^@J;zu`3So08M z{+I%CyxYe(LPj9p<6dZi9;B>0yMxGhRAjK?E7Z>ZkbntVr)Rt)%FX3Y%mw+&Lzb@$ zjUHarnH$|V7B2L8<4}&VFAV8GGmL;DghMYk+f((t$4=fMeq1uD#zY`Y17ND#l>Te4 zqP#M|B}Ty6H)iv5&Pt~nca+y{lYtTlCy`-E&)r|1-w)9R1hh9}O5V3seUHSsiPCv& zUYH?J>2UShxFHwCMhigcdi2)^m8~yFoCr* z?=y3hB{S(`)5M1%uxAxf->(NzP}AC=jt78~0fV)ZtwNfOeRo!`VO*Ehi5I8fC)JN1 zwck>Y2|6CUBJLjiX1-;m%^yl6x}6+vScQ;I%R1HI>;Z{hg|#N6MU}tynpr9}|6u&! zbQ+fYr0r`fPw+TcVh>eySu?qJ<0;D z|7xqd91qBI?U{%ANg<~_mZMYyOCI6SDoQbj>?rU|R%r%ZqU(FW5PT$C=S2wd{J%l+ zfdnoJ-h+r^Wj9=2tdHPMF3#oatmDh9&1^wK!co z1hZ)AvCh-U$f3e}{*u&T)Y2NQ5dUk8xE5lV^4O=;xBaqr;8E>Ps zJBpp>qrDgP1kVe1BPwt@wOi`UF#3HvEsY}3xqgti#r&V*_%C~)6hREu#)E}qdgbT_ z%jjvv%8Q|iUV~XLxmsB0MT8HMWSx}yzp|dW@3w_??lA-(XauAY5qqB|&RCEYZGA(+ZMfE%&-3IT`XUasSRR-3^>8iH;AVrTP87JsUo@z>MDS=+v?;k$}%Z@_ParFk?Cu&~{99uQZ>y3|rUO1-?`W zs@&|hCoipNeZ(TGNh?Lg_F-8u&EN+O8`~GY(sc_(YH0~Sy7mOw!C&Xo++EDyIX3{! zH^SP-tC?*D^@bNO3Db*dTH`wLIOo%cxQu_&OpzS|o~k`JmO;U@QF{te!&?;5FtKZF z?WV6YMxTnMQlxoIs+UeIG7Kg>d#sA#;nqJ=MHB2ym+s~kO6edHjfXlvs&FCIHUGX} zF5fLUqjY@}p4@JTs*Uo{+1quIzP}-V1Rn~Dnn7HUN=<j4Q+X)`U7n8ty?@b2HB4MuvLBJOfKaA@`>-| z+0-$V&hQw<-qgFKhBw}91hMM=w#{E|bJi(0Y$h;HV$wI~j894&GVAcWZ&21a35=e4 zHXy~%i%+&HWtoD4n&e}S> zeuq-ZxF~Jj+9AQ8qEmu})(*??2lATD#2h586Tgutfd%nJkh0mfi7tftZ@pCx@*+Mz zM3BCzZ$s19rv3AP^9WoXV&A>=KSyXO>r086DvRcozI&h@;lm<*Gx8FVOH^Qe)B{V{ zEcncp_+@ybw?P#UFw5VC9PYa`>6G>s)0B=O!kSf_hekB1$Un5YrGdvNp;WTV3=ev(%rp(2nPGp^OrC)7zw~wf4iG$0Bdr zePypoF0>vEX6Wi#y;F}Yzxr0<-u%_XXZ}iJ;tPF;J*Aw$k8+tb+q+b7KHKT0)O2o5 z4W>t)=S&3U{ENs|sxi0qj9rxvB`-TS^aB*l<}*bQbK0BKwkRP6+wI>?Dmt#83Mu4J zCXzvIkAqJkq_qOLBQYV3+W4Y$@J1a+Scl5}#i$^;Q6p&lsp0p+JQ`|{IK|86%iJmg zzt(idn5rKf0ync#uXM&M@~SsCBd!tYtiw>U&ID(fGpKblM|%*_hMDD2>(nFfOUyI* zb--oXw;Y$urvcqY#8 z5WimiEUd8h`mxO_ZqlwWC{mFnf3S(mmN&CRcGUVLvQ;6DGMo+~SNoyc!L~xEEDm7n z{%$8(`^&fONkJH%Wc(hqAT5cX>+4(SxD{t2QvXo`Yj7oD%+?^t=r242(U%BugR3dT zPYvx;6t4*HJ1s5EqrihqW;2%mdYa0>MXshX#0dpQxqqw)-sakw_HwOyIRY_8b{Upg z+ZMz27wM}B^*W0KGk_i=TjxMlh2=up_6+&Yh^^UoqEEB;l*Y}!UFclhUK9GI`2YoV z?E)(w3D}Jm7Ao}z8`=S$l2MKMbQ;?D`L@&y*_sqc{59u#56dy|8b$(G#>NUbiq|D?jaQX2Jty`%IYx~f+VmApKuAg(I%u-^`;zMG4?4M*}FFna`a26;|m zbDz=J@OJqHq{%jzi#l%}*V7PbA3qP`9b+M-XRdhNzQvn~3YD(Vwj$WSN7) zZB<|)yJbdhZtjU}i|5sNg+-PQJm@gV-LH|<;mqNOUGIuTJW!vrDRsH63;&6J@TrgS zZghUk^mMsP!MSW}`hh7xDr-rD>ek2Y7#rNtY;nJ&*AmCH(@xs(5$ryl`k8kDBJ}pU zAc!b4>)rtfk1H|p3Sb6rkTHaTRNX2K;t-O<0$dOtyDWk7qP9;2>`74is6v@>gm`vl z4ML^z$CEL4N3gWCrL@B;kS_X{$;>$9h#ll@*X4qW|}8Fm2iJs0<*e5--nB>6qzcO_v( z7Cdj6+n5fS6ytL)L$ayJhCmc2}#AV9}4_e`McKCE&=L`FILZcbk@)nOh}n z+raiM>P6z{(_vxo%8Mb~gi;T-qxo?{B%ZYwFCe^b^jW?wo z{|2Y!;aNfFUD~_Nm>niMa-pt)11ruXQ2C23Taq0pKQZX`GspZ8s7*t|Z>W}qC4atV zr|o6RFA>BYPpOB!RJn}i4CU{NemmQY#6YveY8t=Rir-QxxabbEF5=La4=oYBN$aLo z0mr9$Khn$HqNMt_&;y7Jd$adl=%OxTJk{Tos&#Ed2_iBi9iK;oZ1Fb(T%a2ZljXs! z^UU*jIa(r&lhVz&O_Bih`_m<`+NT&lFCEwB22A1G6EvN!vsh=_R}F zaz=d;Dc+usIi52v^5s%Rhwndn8zgfC$I`eulW(ss{3$$4 z9-y!kEA?NiVOX_@2{>f2#cXv(@Ydci%-q$m3tm5~jcn4p!LWKb1=Q_ zXv4Qt$OzYqp7UjJWuV-;3i&?n<9qBTGF~L&=*H}RYv*0#Rizfj;iOjQVt$N>3r-!v zW@vD{APa-G^P)m}liy9gZxz*aQy$cXL$Gc!2LT1Z3D&fNWXBZ-cX!2}KPFI4!V0%S z?x5mr9+HJ`ebjmzVJg=YCF_ADzs{c#VUa=UU1$l12H3B)>t_o+K04y2 zH7xK>gQbeM=*zfCymwr5F`v%O3Uj^%Zv8@q5CS;FmMhRX2XkJMo1V_tfA z?<3esk)l)q+9uvtr$R@w$@oP+0qgP5A?G8CMOhJ?*mY9@C&Rm+FRmfPUN_Mn=wdEi zUk9aK*X)3_k%vrATFoX%P@REVpP}uQQ$;X`pXg~msG86LQh&+d$iOqO?KJbO)4sn` z7Y3HJDHm85j~a|``|VltQT85s;f1ydL8r#nD@D@9QK|QqAmTmoJ~!dg_92ojzW#MZ z3xxwQJS=imw-=Z&Jc`#6Jm1{|w4Pw7Kvav-W~_WSp5xXbMA5*uA0>U)7P-D^&wkV@ zVMV7H9^42`c6?8kN%6dU%y*0s)u{3KaWq4+B>nL5_BhF)xqhJj8*pfQNN0PGzZMkD*KhHa{!T1;78uOI@bM(*J2tn_ER8LX%W;F z^4(Zqw&ArV`X;9T2G_%gF=qlvZo4p@gsW89dB1iy-p&`1hW!`l!@D^h9m%nsSl!`( z9BK4kNcUJEyWJK4yLWyVoTE`@PZl#8eLpY-k?=ZV*WR6pT6t~I8e5FL(6li%=STRY zIplmj;AYClH4vy!{b^shqbkc}n_x3Zy1#)>9N^+DNu_o!V#r@QzjwMJissg9M7PtO;AiU|+bJ({&V3fu z(WjDB2@k#=OG(p7HcpZP6%1X(=F|{FMMCBdps|)Ue2pO?k;+5>>fWAg+6$@~5L}e{ z`*{kh0)+jE+c#dsTa!>kTUk=X z0)yTeGC%OooyZQX3;VR4$6Dt;0baxq!4wdhA57A)O1DiJuvIp1`X(#M2Im6q02p|O z?ehrMLU?v~r|)&l4YHI?^3cFng;6fvW!u%CLMzert$Y>+*RkySC#EC#Y)2Iah_Fp)I+7g}y?G}bf`Mk2 z%3#;Z6zpK66&mioM4M*z_=1k^PlUBB{zsFQbGwF{LUOwNt;j6oxh)#eEM!`@V=l#? zk<_01=R`!a$y^?8*UL65KX4)TUh5|*o{gqARUw-_Ojx1AnSqUgABrZtb40^O+V2#D zNBgn_v!8t{4WsdJ*dKwQ_G@$20EU7<{C+G0(o;M+o zGi>=BunU-$Is)oPq4t105Mt0P;e{8nvzo36*JI8UebBZx>02C(S#Um4(x#c#M_FWzP#$xnKWg| zcED9e;HF>pW5TB=edTb2eOI6BQF2jtWWkw_v%ExrJJWnKIr>XyaxGFxBQ82~xC^sa*L9NYngx6NE{r@t(G(0e4IPQ=-x= z5Kf#?&pGsCh{7h;79ENGmMPl)t=}yumjiUG81;L@Ik$Ok%jl3C>*mJSZ>uXL;>pzG zs?F})KtWS}^$%>+LK@Nop*il!MRHvIZg0a`&yRX^ZM(~6rlYC&+0KsHWxERsKi3xy zB;uH#^J5F&mErI)u_772{+_r0{Tp(tI9L{rx+#x31&iUPeOI9Defz3Cllo9Gh|z$O@9CMnZP~Fz3oEt(;oIHawSL&Rh46DX0mrh*- zxvKU{IWrdca2C>Xv3<9iL(N;Cx{F~*(+&ARjrBA$DCTPg&TRf8AhX@tt2rz=|I*rw zG+^t8ae0^5N+=fuFnX}s>ZmB$HDv!g>t|DRCxi~70h4b&N4{zxI@i0T(KT!)@{5=V zEHU0wHFg<&{V-8}_oa87RDW^HkR92v)e?sFo?uzHkM7wn(e#%H@4&~r{K`v5HcEf* za)#^kGb#xCv}tQp zjHG~TQ-nMMG9&ImpQ*MZBwM}SBTj}b_M#u0K`eif0oSSz6+XT9fRU4^+`I#pLdebIXk&`^(^z#Y(KIUexy4dX7u%1lUkc`Q0f4Pxv7LSLJB z=|~C`E$tMyWK96$N<=<_c+^E9V(zC+u+41~M@%?i*D)KWM1h=3(9RkW+V}3tEJ)PI zoUASL?3Ns!3exWZZt$7$!PUKSJ>_~JQ$G>2li;n3%fP$xa)zrqwJiTeT%i2nw)|1P zNWLnSSii71^ZqeyfF}#xN7ru@dA=QQE1kYvQ9b1l%tv+7ebY*$JYsQ}0{hXECW&l~ ztvm$6j>;fD&wp#^)_*PbL^iJ`Ior$)<}?LPE=(1xwjdr_SNqR%*?fN}+#D}4L(aPZ zYd0>gC6XV20VM3CNxTXEPA&UHcnmmvMb~RQita27TLxCKEiX1-DPsv<8=l)yPdtqCWWu{;t>@ZsUg%r9m)o^U0rjbvs_dTeMMaOXucpzOu)eCz&& zucW&^f>C{A?#;Uv0f|)3z}{lfq4izhWcciUX?rC@NGL$I3c)}OmV%T(xWNpbG=%V{ z7IVtMSG)2l!q^Qye9~msA>Ilos8T$10>CfUQz1+wLLJ@N)G2~{2&G{R?MWnP&m%mm zK`h9}@?3>i=b)7#T0XC-tpC7Cx1!5;7EqC^Zu3-DRezmO0vQ1eiiG%QNL#+wg01y9 zwnq9lNr_D=zrBj)D}{*~ECB}oL|>VD%(>7`KodCX+XrkQUqMf)t`;yWdG3}qFajCJ zk#gLAT7|31mXNP@i?+J+dnWCFqLazOj)5RdU z)BZ*pL;E!YSvlg+6~D>1+dk6}pc|$n_lByw=LWTxA9G$DTR{XSIF!}5=(Zt$3Y#7` z307OG(^DiHJRJ0UATQeJB;0YlPGXK$P`H$fU`PSxMcVr>Lz)ogj*8R~(pAcrPe`m- zxumnOhR+MSo?Sr8W*TS*A7+(O#_g5-?n`+qrm|r5|FG&Ds$QTLQYZDyPoJU!L)!-m zAjIt@xMPNy`vuRDRR;F7zwCTyJYH+R$n|uOaat@DWKoJQnhIdq5%YI!+2{2=ZVy?V z>3)lXtM_?(nPDF4;MH#v{o(4uP}uSJpr5KjIwx>lKyp-Axa6|uQG=27JqFKdQQcm} z2`l4VB}uUtCL~u?vL#+evUn?jV$D0hFn!_gODDicTGdd=ORfBb6`PrjhUF&S&7Y*R z^|z!jkK!c{fqeS zdDcf}uSVd;8iGiQKJTvZX#5l(Q#8Ncx82R4)xUn@lG|!?GPMz1=D#VvX{1AZNcB5< z2Q7IZ7NC9va9II_mn4y-x*}*Vv5RFcOaUFOK0Yj*fT~bjmOf1d&fli z4&9Hs3`^6Cg!d%$OZ>*LBJmeG#%N1+{Jz51_1(Y;}JBz%i}F8ai0vAzFC} zD?{7Vz7cq31kVVwdJ<>Ke0#;I-cdUOy84u#|pZ}>d;keV(5(&Q-P?Y#eN zK5&yoToWE0O%mCDct|lsJ3?zZ;^(fb-5Rsjs310bhtWg zZ+4JAxpwgd7?fEjzWe9=sbJ8ON%Vblw`7hva$mKuaP2f0-pbj(GBJ00 zK-u~IsrV1Jv9~a=jN8+XjDb5l+1|T}2}6DtIJ%$IvDa5Lrp0bL{l~VyyTWLeEqFsR zFqKhGxFwf$Ye5tS-`5G=@`ez)x+?UwS0d+@t#%{-^vgSKd*0{H0Ed*QXleh{OuN#0 zV<%uMQ4MyWoJLLmHC)iN?ZW?t?sr>*hwh5FlLDB3&%=+8ml|O@4O+-;wDyG!q?KKe z2sif*Krf*F2qMa1egU=WUySvPfNO4!Gc=3S2*uFA^8=5t(TP!Qu2;Vuq* zeN92aU}vX9A0BKKwrZOZM(>2`%P`3LsN5OI8>Z=Y$!0e|BYxOqHe~L0Y*W!cxnoW@ zpCGMp68l{y{rFT8@sWW34J#$kFz%<=?*Ry+1gU9lZSA#aMK;RNSRlcTY0rlE)IWgU zgvQAgEuZH=9R;w8=bcUjjfzGW2Kot~6K3;^xNN*?Tw3J3+?^YY>$#p>Zh2X3Fhpdf zUodpKaK{l+rWdaU4sg2z(RKzYM}6DDHm^uHDKJ;pt}DP+&BY1qWLGwdX9=>;cUn|- z{WK&ixWk@DN$8}-E6~qu!iR@3B*5_1>Y;>@^UT3_quL+5En6s&oCegFG_am#DDz7o zla!-QrTn?fNQB`V8jH?0O_s=f7p6?8u0TKL&WD^0wMSEdu_zev*mha-g_3COC5|0s zOTWd~t&u)SdcN=1&|heyIoxjUPsNxK{yCtZ?QaC4<~0^C)^4h2dD2}3BBCq0v*ZC* zv`Cc(Rq`Of$d4Vfe3K_hz;Ze8;1rytjyFz6gkJRI6~SUv_k@Up+`Z|Wz)GrU5u%jT znGi0(<$L!xl3~@^_b%VFeb}6Ky+;@gu2}Q5vRL;Of1Rtz_3}ONr+1HeWi*cGY}R}3 z_kX`1(cl&%!y?#M1qA)kReYy{{Q&he4 zR7@G6zc6XPg{ry}tVQ3m0uoHrJ1BaDI=)iD%MgW5k2M#XVoN3o3)a1{J#dPp)va0( z!TeXGxarHybKO(Lh~k=Yg1R5?u0J8gNEZR8B@GV4?hJhpQ$;U|mU+ayRS#f~Pkj?$ z7mxqzMlQmHt}qtYkTcubV@ZT33KGwcs5%B%wX*iv8#$BwKHfF)carbISqPGKwxwzu ztIJ>SZC_u6YP$}*NxnaXwD>=d*o8VI6mge4HTLefJN$Yu2%vluMk;sBq@T6#1EswY zLefkwrJ|sMlnyEW4*qGE009ZMokW ztJMCSZ&PR2@(_k|m!y>-8@`hzesmNU4f!F}CIZXXZ*o<4IhyA|j)CDG#l>Z4ozua} zA21)9^@Ek)rmW6i0Osa1et>#hN3Q$yr(ex+pU^^Jv(}acbAT#<)8)~H6Mdf-dbz}% z{6DL@-?kwxP8`Q9M8T?LbGNWvi9>NLE>dKG)*kxd%0gJ7jLQp-dVxi(xp>dC^h57a zjw7dcQ8*0LJG&|ks)ZLekla)Y-@C|f$jwE;;=3>BfX5|N6DmP=`-|wrDyW}P#YtkL z3SIvDSj22+7_4trSpRX;J^m5e6diOP{ivg#p5y>{CDOok15(WgIO$0aAVf105HmCJ ze1v`!N+kzdgea6AjcF=#-Kc195|XFx_n>cc^41l6>EY_$P&~Xbx9Xh`@N0mSrq&nn z&__A*!hU4AhMXj#fjsn3x_BYduhswQ_-tRz6DE{6#hL$@yMDa*NHH6st8tXF;Rb0V>)e}g_4a4=JI1w6rY8OQ2=h}*a zB3XL2UQ3dbJ8riHA4~X(6p21gmUk>X%=Y|#*^eb zXdtIKx;2Ve^m%Q~5y;1!6p1HK0ed6%s18FL6Qg9D_dtX^#4jsaKiepY*S%WBmzb|5b>m_dG^QsZS#(7{jinPTa@d6Enb-qhHB)g}_qm*h@T%CW2$j zM$e#8_?PMmvyeFr=QCOSwFG(gt_~N`(TQC&RneP2ZXKodEgBeM97Ih|(yEJF7lGKs z?fpnSe8uO3>~uZh5U|Yqeq((N%fr(si2=_E)S_-f!4=0nF4OeeA-^h+9B^ zU(4P&M#taT72CW8|E6Q#CkCKr2hZ~fZ7^{f2#rn?aMoR8eF4qNbWS;Kl_xUrq#WA; zu|$zMVBafMG9nAOwl9)WIwb);Ke5OI2NrZE_!{oOJ-C2vp+V3)>EECMa`P_d z)+OH%Mt6E=Z9kg~Aj-}500@VxhzY&&)LXU~Et;!!vo2umdMj9uCC1@DmlPiChib0c z6_uqqpcAJB`L}G3VCQ2JQ9CBMp)W>*~-m_++yJz1N?V@0`tm@#h-{ zTm2o8Sjh8=w1Jp!c`4|(gwvSlU&SE^cIH2W&&8o1i#xnf9pL?P!TH0Qa-fIun`27C z+xKk--G&3&Z}m}L;UH(GNeqP4#7om|cDJar^t_;a`e^%XSL1!h*|y}2m`!1J6dVs@ zwzu_b)w9H5;-^EoN4w}k>^k@7LyDXvB+u02b9z3z@!aDwoKFV6`ifhpWPy{fD@KTw zvSB9s^_ZO}(DL&(Azin`3sh5U_A`l$R;o{3uCJ&P21hiyqf5L%6Kt_P_{{}B;-9I6i&VN zfd1#_%>7vKLa)M-{YArjL|p902In%4gVl z-{;`0Bh&8*mj-pT6H+T}FD(K>FF9Wm$!clY&9POG(+zY*HjzlYtR zZD5<3+Tb@&M;5CBUL9}=x!slc-hipSy`%KY=02d@5Cj<=G2YAdVZD|{Vc7cKbMH2Kif0zFfpTx8B?@n+E@Mq{%}YSQnje4zPSfV05c>zxpkwZDxEFd3SMLm71qA znbnxNU38*U624j<4@PCGY#bmac!EIe&URVCAni<9OZ-M+?mVw`?TLV ztLRP{ev`Y}@p)4B0y`(8tt7$*x$XdV9#mw(pD@FNeYh04arc9E>#=^Vv4x&Ge73bX2>*0IvmyZ-HXa`|o>0$;5I|lI&#}0Aiok>3=D2Lq9 z;3jCBA!;T9=yzXh1aOX(rcR0LCN7lwayNg+vrT;-I@<}0Zfwj^=Svw9cJ6^f%+yH& zB_fI4b}Fb5j)ST1j?FtG;x2y>WmD2u?@p=far<}d+S8xb%_#YOz^18ut3ZGsWMGU_ zUkRV@SF^KKnMO?e0nZ)XMHPF&gWPZZASA6*_vG;2Hz-@-zFzRqhMaG4HP22LElKiW z8LUX|?%&Dma?Emq$*q1qK_X+YhnTcmCoAbPxS7aqP^{Y}V%lNTsbJ2WY(Ocwp!j{~ zbLy+k#U`UW^D6_75#o;qn8dBs94~VT{3+u8naprtN)#YJD-iRBcoCoMbF$Nu%K-1c zp5%;nKGl*jYM7U>gqoKrjP4{Cy@NTRU-9y1*thG~nE@9X1vVlf4j|t>w6+N+Zym_? zR*pQ{-URa}fNuLc$oM^Z#6A6~i$fP0z)$wpbkMJ@Wr~^btnR5I2h%zEulC5CZVVMgMg3VCuyV!R9d-*1Ljr*|K+c8I_4z^W z#Ej1Nz9{6`-gms8PpJDSSkze~7rN8pk8TW4jq31B?6dZ|O$dbe1dMMP=lkx9pWQsW zsbm@gw%+DvNddeMO)?F76-e9h_Ck%kAQVN8A1^nn0*z07Q7+lxCz7Z9TUtJRn%#W< z0JI#UnQ+H((zmE8EuM&k9(_o38WxhsJN`8E;*|ea zvO5~dJFE3vxK|%P*~`6BKm*WM<^Cb?OV8_{!GjYn&s__Q-iy&`w^EekwbPL!sPWE2 z2rjoKYB7A)X4PA%u-7J;L0R%ScKvWUaCBSx^nQU^RS^2;0}+2(v+1M4r-8LgohWrY z?erLLX_OsNXCpByK21 zJTWFS9v*#I3@%}1>TNPaI@!Tj504VTvoTWFMN^ue`#Hhm#vGA8zCc9_ne=(dHbNjy za6|W-VuB8H-w2>Sj8`@^%}Jsr7= z!j9RcKfNXLS)e!Z8$dp^c%^TPY81!LNOd7vYI z%E(~0(-Sx2VD4Lxix%N9PdB|;y9WbCL>!^&BhJ90{CvX(aa+gl3H@He9ywPxHwrTQ z5<>pRNd_%G_~IQ;wVsm>;86fHkV4Znz-%HH89>PEeMw=-+sOKA0=B*$_6`dnbsf54 z)(p)fUy8gP;zqf-V0yFq%wPG@Lq~DEA&b-5Mdd_}T{nfKmqlPf=a5z5r&&8sku=I9 z>nnz)FNPVA9o#Lg%8fC`=hiq_$f%ekS15;+gRYO}kCx|(j7s00tE@?rhYXleP-r;m zV#POm#~$givS{Sz!)vOFjba{FEx{ec-?J+3!UYR{+F$4C(A?vapNp7|2R$Rbd-)urTw!ief3J>H zBoHIKpKet4d+QUEvl`JFHf?9fl_wpdBf)a6ncVKDCdgpx)2DSWa6nJej+!A!$&@o9 z@!JApj{`1^CCUd|d>nT~*N|BM`qkR@1gUc&Ws5G;hs=-Xaaa39O5Kw9uz(Lk3Os3% z#^oM8wh{i?w!_*<6C%Cmfqcc`p(BI+=cnESo&IBinBv>;j!U@?t+Z%0i|dUDRhF}C z$@ORit?aMA#{KyX{;oK^@@abSJ~x{FC};qV&Bm^1V7<+{k4qGfLFD@UQmgD*U)hX< zzGgkMq`!Hmg0YkJy+xamTVu#AI+5+ds0o@NQJ$tMWXMwpEez;? zh5-C=%dCm73WT7v=ufJr4#QbPkgvJ#?_vsGIu)m1-pSGah zhy~>7B|wMkzf}5t%PaJJ$y))NHQs2>&%!Pza&SK}Ek4-7cFY6g=igghf4k%;NK2QO z!~R5Rk~%IE1ZBCU=^_lEGSKUtFTeyu16J{l?;w5=}M2H85jF9t`=Zg#BUtvxSQV z-rVEz(lT8t)sFWI@%D--%;o8Iw9N)M{7ABZjbd9lXRv!L4quh!IbfNfzE$f@uJ5jCL znkC+o$0 zZK!X5EwY7((?i1J)r!esV2UZ*3zo=Lj@CUn;EvpnQN6mRU6NWAXRq0s@u=xsuHaAT38qLfU|f* zk37~e2yL#D(yrpjamgd$*4J85t9>>Jk&SfK!iG@wav+PjnpCol>wbTjPnRai5TEyi z0Q`ZG6Ev#UmE-=yqy%_hf#H1SknN;kWmsP)@s-%|BUb!R3Z}7E;-%8gA8l|?iuDs9 zSGsB%8y+TZ@%dYt@3~iuDU@woXp!2bHH|Wpz*6)S7fZY|_X|9-PBN$(#6c?#^@jO6 zsiuTD8CTvxN1YT-z@X`^ZWR2gs@bWNZ`wig^AAsF1u8qiSYk;E+Lf}D2;TZBY>84B z?&54J?XTNs=BKH(s|+;88_Kj;Q(>96KArmCif}s`T41&k1_6{`MJfqbzaF6A`Z6YI zTU15BwT!Hm*5;>1h03d5ecKh-J2O4UWVGCt*)Uh#P$>7y}2MT)_PF+;O3K>Ymu&aPk7F7=qQdon>7&^ z9tF!((M|H6^{efj#tuN>2OK$M_6KfZB-mJaduhvv(-saj}J-A+va^B{4d3kqf?x;mezqwZG=5(2M z{oz;Rs$NCcMfja1H}v)9-U{{tSBbMG)u1hEFMWqKH^k}vK#X+z5L`ZbyVLMR+Q6FH z8PtsxL^Jt;>7rAOX7cPj8iL$5DOQ1{*Zo8J?p!M6;s76YsQ?dU&tK|(ke8_epn?_~ z2M;eu)=mB5v@dCks-Qe8sC`A^qMM9U>3&_avY-vQvi~0IBP?g)JtY#U$&)LGItRDu zalyRd94soPXH`w3EQq$Hp;cM5@bNG^YKqlM^Fuxc|C_WUm4)N@RV5Z*K}2a;sQH(n zl%LSaEu3u`?BgfY@UOFEV0V<8Uxsbse0EwAun@@j)Gx1xuGnG$RPF>8nnX;W0r=0{ z+&vWlm|wgWkJ%Y$2=4V3-LUtkd9eyhy@HP@JH`fhOO6XaCj_O^jXW`iwiJGqO& z<_R2;7zItxFZ%)NJ88nj$n2 z`_cP$iD^!7#D8HrE+mR*@{%&*3NM2vzebzyo-NdP_4#{3%Y}(6YiKaGsNG=yK2~Km z66O2guxa)~5cdv=p{oA{-YwkxxKa5wZv9RDn`);oyV`JqSD9aHZdYDfypB=Ov&9-+ zo6Dl@<22Nj|9x5)&4dOO4(y0NXp~!oY><-S-*r^IayU0{96Nqj2wj5+8%cdgew^|>W%SpcvAb@~d& z<-?Tw{__&|0(<#_e;cuQ$K|wG$qQFZgg3Ory`nt0R5y2UJcn71zK4Ldy9er_hf&zw zJsvBw4&?kJxY>7Gm%DL?P^GbEBO_(FM!nK*u?g(Edulw%I!reSiBo%_nEQ6j?lpcC z`=ivKpwA>hu&>{ReQJ2XamUq?R;EXuDQhQFn#|D%j zeV>?c_-Lgt2beUb$Rod;O8^CI0I>#;Q)JWW*z!+yNLD(GrdF@Azu_ zrD-O=Lv!Nh-&szvSGm_We_?aAk$?-jX?zxG-t=o}san%;faQ~gYnU1yaS}jTFsw)% zT<^2R+KN26OvqdvOCOQzB43<=seVbWMQ&0OKJu+$x=(IJaDs=>i8G33~`b`JV$bT z+^ft9=24SQH@!(oZ5ZK)DNMB-L7hzgGdaO3K2Bz#=uZgfO7;kfc}PL+vpr_S7ui#s z_?F3zd)K4_yN}?g3&;cI@GwvD?n{JEUTQ@Mr1@XL;Y%FURE=(OiN5p6Thh(tyxS#lZ(J2}D=k489d~%o_{ribt*1Mc{kS8f9CAmEeTJ z3TI`KsQhW1Y`m^(&5dHu{=gW4DqsTw> zU*7&-%jExkt(kcdB2Z!9)b)8|oRVt;Vk2+VBeJ}c@hnH4^0Nt4IwFK%quaXF*JVhMuGbf@5k7*BHFRizRB8$qBdIF4blJt{(qwu z)42TpZXQv{cRwS`&rAC!EW>;K-rU7Z5WQ~9^3lMW81XZLg=Q&!S6-gzyy{C%M;^cG z5D8eHXqj%2c6(Muh&M&QYccPL#DZ}<_mkGm{d%0_*e?_QgknfL82asY z&C!Q^Fx`q)5#d9;>jc7^cx;|hW3_Jil!f^vLm{~vNNwxnHy|{JGzUnxtlc`FETvn^ z7E$|3{&OF~bE=mSk~^ZZJi&6$K0b83EB@L#DYX7fl447w%lG~J_p5X7SBq7`f7)PF z8@noWhYGwElWyo$BVojh@U9`n>7Ak{(N0*OLRv~!xU=j>`;WGC$ku67Op8}`YJn&!z+-la>%-9z%Ys(!SL_2 z*NA7}l{kgKyF~Wx4&A!)WosE6ft>?W(;59gM25p2V^q?=Roclxesu1yl6o78T$@A!G8L>ami2O&CQZvtIooj2xIMLT2rb>ex zik2GXttdFHDlM?npK^cE9`sw9!n$FyqW^=2&{NkPYA`>Nv&3R>^qQVhVKTYI7q(~#r1?zqLT|!IFn9BzkGG|@MO;QkUjq`)^nmT>zzR*8_&R8yKu2hU^S=>& zZPgMcTA98wB}Qic;xfEK`Y{Hldi>2WhVICxlOH+BIuiM&r>+P3T8io0rpgKLX3#%* z;Y`hp{f6RyuWw`EWX;)WxMw(g>cns$YJ+*l`8K1dgZI{J!hXt^^sF}?Z<-xnRQ)XK zUn8#8%G7JK+(MMtwynJ6djmtR0b0HJZ0Ye$?=}@gRy;VisbJ?{2ooSX3cHkQzo_Eh~5uLx}mR+Mmp83zGiIrK$DtO zc~Lo_^i}4b%F>-<{*4mTJ31d^IH+L z=8ABOAf$>FC|aJ$#WB`>XCu0#rBy+k+m{%SqV*Tf(QajpR2G5x3~erMaXKYr6;J0+ z#WWW)ztT4oFSWx63CiE-cd(=8h)hzVwfZQB-*RLJx;*CTI9UYmz>b*iHl8DY8+6!{ ze&plACfHSD>99B9p0Bog??Ie&Z2daZrI1f)J`knuEtriOjlU5)?*DFk>g&%2T-TQy zh1xuPK?f3yvhEkqr+(Ys)KvQbz8w!n6&3XTDg(^Z>#UyZ8)Or>Zz|=SSZ@#A z5$bO{BmKjr;3T+shraL-Q_Jtu!kb0;sc{qH#j!K4T4TeCNVpz~=PqokeadjIo zh3rOYJ-OvVU&MKVsI{zywXzwVA^;O@^kMHXcykcBu@{G>oSbkSP$W}r0AXj;tIXgR z@bw$VH4(x>*A3beHiGAcF-pB^9LLAMD5az42WXQusdXJoB)_ebGBWOlHvy{YyH1f= zPbJFbD(B_0W~!rJB&OR#4aZjT-x9%J+?mFX5A3YpzOF`Y9FV13hz60&bv7W=`&%wS zy?D7v@(TDiFx!ypww5sp*OINEqvsUmJ@&YolG!MT#;-lB5n1Gu2w44eqsvRahnW*l zUBP&Yt@K}Zs?EvqI!3};lRsbsC?wY z#2Tv0GrW@pGryhOf1g<+TY?;AKe zZHIR$d3!e%RCZjfl1-4p`W`RG`{!`A)#f87F`DSglrp7K#Yn%^S85BzD-rX6<`kWn zvR5%L%KlO2^TjB9B}9D`m6F(piWi2&R-GjC{pbBoomMdVB{uvRo9Voe{7hOkiTZ$K zrvy@(zG-=6yH5>C3~Cxc(@ocoiAa zSu5&bFqwT`r-mO>B2F>>dztNAvHkC@XL7T4UziL&@Q)qsHJ?ZOYp~vYeqBphMz8i) z?_23U$zQlk_`XC(_=lr&3Rvg_{k`1S$8*grXVzmQON{%3No?#eQjNg!_i}{g&vyy3 z2a)Yoady6K^R3^4<*{8nkkx1_ivBMT41~dn`+B5M#R_Vsc1m1hm=`1kau zMZ97QcxHtWYK%683u6JbR7N!m9g~d@g6kr%ljL4#!N7aE_^&DyjW6;v|$r67zTKa*%%w=!y>u=(Mgy_e;B zuAAkE@|fJ(-|*XfTS#%)sg&4Mc<8?V12#o3U@)0BQd190Xw-oPyGT5V+m4&(C)>%J z+F@cK`9rgRX!380__q}EA98+XpbP5RTg7$|B3PGCT5uzZ=s;1uEljw0$(Ss_{f209NHW%3R`DoHy{- zG4XP?{~~Jp`iX^D_3!vWUHJG<<)O;wOn(P#sIBB5P5uMW=GuWtk|1wEON5gMS8@uc z{JHiQszcVc{RD28586Y@7X7`7!HZd5Cp&>>aX|jwizPlagNgIRx@0n;X3ZG@aq=yy66*%^p&0w;rBKVWu3(m1UDwk8(hv<6@Kh9% z=IdXxoJy_OdTR}0b(Z*pxNN`hRsOxj`7^#GSh+5q{J_<PYI;2+Sj!ww&H1L8N{^ zN@c@d-UvckAaD%0n8eZfR8VWXT2Ny~Vv+G5)FL$9R|OjqaStB?^Kyqm)MRy2%R>(n zqxDvci?^u(3p6Puw%UKb?W`t!@gb*^wayGZe=sPLF+yX|2oFfzmwMxXKkA}c>7o_U zMypOpoD;q^EU*ATE-O_%u3x6-W86#&c7N1})DiAY`IAlcW=Z~}hQHuvdq*PwcQ|$* zhvxl3`Q&#zq`AylW%8T&a4$IB@kq zO8ZMPJ4+XpXbeswD{#@xC1=`2G5!tEW>qmm9(M;XkM5aj=ljo2z8g5KuX6BhJ5P;- z<0RlX!=%ZRY3N#FMpU#elvm9k8gErJsGvGhkS~MH%YssKv8o5%HK#rtzVklY;W8-SrwkeBJ6hf?ksZ z85(OgF&s?d#69`cCZtsX)Reqm78J#ZsCyzpqdWy*v8;smPC6Y}U~i*akG^862jK5F zagxiY+U6}j43_bW5BnAkz1b?6)sTKJ<3OPKrz5gevo)Y=##C6^?;#+H@GjoB^1>2$ zBkzH&qYXtrcCZh|xqduDz^oFDI#rhOaq7Rz(C=MP9WWv$;cuCH^_Tw4T<~T8&|jqj z;EwIvqW&xuE=2{jneZg{vDr+5ZasAMd(YPJ_g#9@o=cJ9H|LEQW}nD8O>7d7UF;#!8g=Tlr- zkR8U<28pDxQJO;D+~(xZmYO8ZvGY!D;OLke%0d(H!b&RWwdS*1I`goC(PBOS#X+^zx;2Ml3M$)q=;A5)|KH z;dlA*;h}G9R6vnq0E8*X&K2V*Nn>CNRk;#e2D4^Q^_(o92!Qx*s?7|c{K&d5bn(Mc zZtHs}S-2|kJ_&(u)8@GUCxO>zk$TKGYxaNwy(kBq}WTI$|^heI|?#&WZAdji<6TxlDwr$irfaW%HLNzEiNxm zPUIZENc92c+lgW?3F~oE!gMv3fnVfWIsb!x+bOq9E>jNn-usLJ4>pWM1N&=@0OnHl z8t)?!k>0>y8F9+J;)?1FP78TYFT1Cuv&FEvgm0p^dpz2*%m8&}JM}aD@o_+kBhAl7 z9~2EnI)kNIcwy)lQ;sU>ww@YJOhg4x+&S{H5x9#kbaUoqmmfMaMep>k>*>+DH$Qlt z5Ug>Sa5_MR2NYVjv>fbL*E@4XRNNWUi_}bfa48S#H~OuRPgDxw2Ol1Q@ejFog^ew| z0;Mz0cW#}r*Lf;!Yu9b;L;DRGZnOd!=O>uAg&6+aHK+LZU znJ^m+`fsZc*DoS8kNdO2Prg3t{Pc_j?HDs<>hG2N|L*5S&E~;Hv+GGNDUO8T85jxg zIb?k`vj?T}RW6dPJ*fFt`q^`SpX=t!M^96;UzXvX-52_CIzbOT3H6)lLZeO?Ol;Ne zc)sJXKd@P}q}-CgiWWsP{R0tIq~v81#-UTobN+h$l@eHBcn+fScfFr#QE{ zUJ_qmaB04|NDUFFA)n$UC>(_p8Cxiwb3ycvRW~ce=Bsj?^(*__=6DX`*iD zjFpFm&--!S9kV^BoC0&W7RSw%w`ige2RtWZBk1(CvLwpOhxdj49GQGNkxDEMtzuop zo}b9V{m|{g^&ksjAt6UVN;5P|46bE}q_+36UQapmGax39fVrBGR8gShz&(FUwQDw z3SsK&$Y6!1DX$PENJMV5G5%G~*%u>;# zp7ANYBJ_3nMj4cbeLmnI2S!j2YJsyl!5)u**)hd$L{Q{(%19D=d%sxfNKkz#_7 zj|w`)8dS`U*E^?opo1*@;?pND$Q+tbjw*|tf(JUB@K7shk8yV&N@*BJjYc>q^@rX{ z2Ih+BK+BDO#*az+RUTwSNZ?n~M@fKYYhqB(8L!9_KpYONLMzL-{Mn*phOon>*aNLv z{d&uG`BK>mCvmt^+w~gzp;h9reJ9o*3Y3Y}as&Ff**d(#+xilPny8!h5 zHG8kg#;n&k9#>iMzTY6c%B;b!f^*q*T8msBzq=BI$4wg1&6~D!O7EOIj;#w?YhI=w zz4#Cij=IqiG63UJUiMBk=4|lTyYiZNr}C;3C&YDKom z32eGifG;@9iBDk3uv&9-`rESU>6>8GyFW2x^gXhag>>5@-wmVq(S7o&{cL`ib`yJT zS!~S0aTYpeciOYmCApl-qzeyc|qFzxx_#ksqsKX2E zXm&S79Yup13s7+Gtp7P$^r76u_sh)vqAtwlls0y2zKz zH=mDos1Y1+Z1iUpSJ)smALm)pNhMJDzy%8rAFn_dHbnJ`{p`$dqhNqCAakvBqNw z?0Gvew{g?cX|szuHm9}8Is9yo7#EhN)Rj}acT454`8~wi<+k=IThN`K4B*Ud(6$&Q zW{0p)-xv-@mL=r*>-k8>t8$<@KI@j}7ALbx?YDP)L*zfdIXqHpK?JqU{3Hh0*ff7t zX!r3G^KLjPJf^RT%s~wcOgWYqv6`GA!#51!^3CxfA;jiSP!U_nt9HPRllfYYGCKsz4QupscIc?lG_C7 zsy{5V!tLzE?*Ji38MTEqkS=WcUrt;0GVC3hl(r#C83hv{1(Du@M4adzRq~8IP*6X# z_eyNurk3OGwj!z?XNTCzN^!lNiFh2DIyu|FJKNL+1%A1soa^are|mx^lE5;P2%5L> zvNtyg$8jb8u`%$#gBeM3ka6BV;E%hypJ}j0(*wL#ZEqe$v2)+ za&)qen?Xiza~~#MMOu3-Q@Tt~qhYu{s(XuJd7(XW2Lud48B8p$+H(?3aFa;a1N-M# z#t25=Gs9N-^1<&{O|I*_RY?r+2~^TCS<0I1RYDSzq)eqd#p&^{a%D5i-U9MWPuJLH zpoYbEOqO+%SO*DheNaTk8o$fweR0pxS67qXXxbF_wpr>~^$!Or;*Q%-qZ&3taOUSv zWqrg2k3SSEP3=#ePQhm!$ZMf|V;Y-1XH+(7%+-t^>YdQ)~B*Zo-#i&C*?$&wWFQ9;x? z{8{3@{|#VlV0B}%*SnoIc$3nj9pB&6l;ex!Azm%>eTF9Fc#wYU^itL3Vdb-X$#Q|J zCV*fqT-}P2^?EJ(v5@tSy7+D?6$FA!0%5*sJKjV_2f3_0uE*vcRp&fA=KjNvnR#q5 zZlwK}ERh!#haf@dB5>1f(RWYQ>$=Z>#lhQR_GXaXn;+9hb^3y3l>Z~$Ls~f2q|p}5 zQnn8Cb=d1KCwBwwF{Bs`Z) z*{mKCcL^r>zV92`ag!2QF+`Yp7)p*NHy2K2+;HGgb>g0I$nX9-vou;jmU;wvgGgET zDA7~HxKi0*ci&I1pC)Z|#z1)MAB#V5ykMag+0y`i5*IW3@@Q?(AI~Z4Q28VqeUAT*$xyv~EBE9jEY$#}T`;D@}Hjg}PzbBC-kk;jo zCWV}1CK+R@nw4!3Vuu1*7hhxU^zn%m@OJD8m%bGIM?<~Ek?qw~7%UdOs#bZ3ubFx3 zHkX1TaGRY9Po`-3mE~oB_qQ?3`}~jouKqvww{Yk6_WRU^6A^{9e&0`WEH}l^rj9k< zE(I!b1H-Q|XPw5>q^)=P7fPeMUJAt{whjhnH4RuM4J;Ti@I9B=c|&kaf$XwHlB-5y zxB4$>Tl0MGS!UVuouYv zJLD0ZT^0x07O^n$etY{4@uS=^%}xrp7XV8 zj(wd}@%etAFK}r*0&B+3j5{f<_pDq}*sBA!U ztxqgg*$hiwJ8L$rZ18(vud!=AHzRec46`*6{Lu#EtT0g?OfNA~IO*Sl^7(UkXLidq zB6jQbgs7w6q^!L+ADdMj#0dHAe+0THqm8Dph7@ji;+9qlfMEl%@4d0xy7$eN4BI@Dz8=2?446IW>=-{bf_VNWq(<-BUKdsm`00?}_79+VniBua>wPkaw|zD_k6{{{9Q z?IF`?JPI%k>nHTN6*L~^b&L5;Dlh*h(@WqW6?yMpylYJ5@Idr7R|Hca-I=1dBju8i z**8ARmBN{eo?g+yxTyQ7C^pt=F_cNbhp1Bs`i0f~msREHD8kOa%UMllCH;m5-M~Go zMFYm0+LOrmm)YjWt3uGC{Z@t)k@#7*9be19@F^%D?#mXT)cUv0`OU zxc)zR?oW-|5&*Hfmkvt174BmR&UgLTjH6Vd+H-ZUJ~B?Q5k$53Lo6^R@hr}N)27)! z0qB)c!^g6;g;QaW=;PxM1ta54$oJHTGt=5at5)jdZhIXb@8<;Q0Hjd|O`Dfz=3FP8z;V1`7!=%~&GwT`^mx*m*ix5Pe zLb66Xq!J(?%lz9ZlT|G9V6uQ*dNW^ z7rQxn9l$I(8jh{@4iZlo(BO>QkMj%n8$p4JFUPT+8su&zxV@7JP;fkllD;j0E+jiO_e`ppV2hTM7v&8$K&5J#sQWKuc?64RSxa zF#7{Hmj8*Hh|^cBHm4!(zXYZ+1(m;+ftXaOp>m7J1|gnLhs_GT`-D}nB`W5A?IRm&A+Vf3)U!J5|j z7jp>L*9INJI1>_t=Rlx9l1i3I!uC8wgBinhcMqZnYeG-Ip3&>->a;6#abTf7$I%2w- zic>Nb5{`+ZRW&eg4pVA%o-)XsnF|bca_dVru$>*~H^ATygU0ZWH ze_p8F|xv;hC|Z@;{HKFsjb< zrvU|?(XOW>ohJ(qQ0s;P-+)K^Fr!8d6bsy%bjM=QM%z=(qEm7+x$D+=U>*m3ORqYB z9kvI(@?kjIqFk(o9g(D9*RcWmnSwIlR)rorjVRKT1COLcN9?5*laOliQSCSBMLUo% zFPqQjy$8?1PJlrP5!pa}f3Zw>bwbA7lNUo}`1VV?}fKz(`ih+=Yhqr^xm? z#-6DNF>O-dDJ6bpiSL9IGP6LE1(jbr##Z^>QfbtT&11&Cm4(;Yd@f7m+S2 z($GnN8?OWT4Zh)HnWbv6d8B?rHC`6p0Ukrow9YRvxgVgZH@~d)*{-k6-argsQ??k_ zY}-4CQeR_SV?@32>mi5Hni>8h%7g%He|Uv=n#U*Mrj88rV-SMKcFm*>T5e|lsGpP0 zjc1Tf*S$2IRiQ|sNviUk$8J>Sn@a35$rDrOalut`2$sgv(WBJv(CZftlIHxf)E z-Ra2pdd#d&m^AZc2a()JtoU2N$y1Q0KvE^w{9a;xgnkJ$Tn<80eJoSB?-J4oeySn( z^g>>Ae%?#!uGKPb`xFIJoDy?C>>h2GP1Ok(pFDjmpEwXpw9Gih;Wg_Av2Y3ay2Y}% zB3T`(M^V;`;^zya;U416*S>-nh@CEACcxHldQ>n02W-Nsy~dHw%~OYm`VOb+0FmMf zyiS$$b^`q>v_jQw>)nwi`lq9LwILUhZXj9|{D~I_7&C2*X+J zf+(CEdjSGMi#N&hOd|Z-MD~#$xTJfPN=hs% zY+AlV?-p}&IEH=ZzK@O_Rt?L=E81?kQ)a}RS#oEY&nv+j5la_9#x%2=xJ@7k;6OLP zw46@84Zy+(jTx%2Ov0pyma}_$XRfGLkgEdb(Ll?~YC?bd&OpG571uT6!Lq|Df1V+K zs4dUd+rPMOX ztkLh0^p4Pj(3#`r?rtZFYaqouAJF<`+69jCh{DBC8-Y&PJv`)O=%}v2gE5yKjWlnz z$@k~g)Z7f*y$CH-A$~RXl0mA*6L$^wfnSy);X)slGz;1z_r15EdT}&Unn1ON&`ki! z%MN-^B2T^@Pv1*-a=NptU~&rnzImN^8a__MFgFKchI%mHC}$AlB|*uYAl%uNIwd2aGPCYNxOtkDxvq-SHqy1eqQj!`(=aoJSbWl=-lnZ9-@7OP zH1UkV=)vZ0e*K9<=VX<5zT!P@4)9m$*`Z2%fNj5s0#oU2@5QYo$#XesGPgITg&oKd z05*^JpYBaDFUPk&E4+L>0LUG}e)?S00o3(x7&O7`JHLgCExPb=G&B-3|L8Tu(X1hX!^IfL`k+mR?Q&^h;=nvAU!SYEfcrO+9 zxKSoXf2`AsIdMDE*(;S( zBoPtGAS-JL)UvpH5GkZqkWy-IJP z_ufSW0hKCM1*Al&O79&)N2E)a5+L*rN=E{O0Ma`IQeM3Gcfaw*d*A&t87DdW?6cQg zd#yd!Tr6VAp8Fa85Js=Jq`9pg$&8jy95#Xph+&F~I}m%v+N%otJF*Q7y5l(FFsrKO zMRfb}udJ%B8=qkRy=sqvcbs){|22xQNw-GcV+6n9SJKOnK&U@vEA`r-PfCH-XAD7+F+pUzOaAME!J88GTT;US&3coOU8-s^ylZ>AS%sS7i8+c4`RLcQU$TNz8;GU()R|| z*gJ{qMZqmBneTSRG;sae9o&#jXde5aSLV}rX>X`TH;?|em_GGu zhZvxxuhH=u2tT3sj8taOf%K(ZL)OoZ$FKPWcc828j$qDn)ix$jf|`@HEOSiPFN+5M zGJ&ffOQkjCEgRIs|12ir$))1%p^?zlQIzBHGv1pSHzBM-dRnIEB6TsJE`Th?UPP78 z5i*YFK$y03BP29-q#^_matIMce{8#_v36)Yyc#0~*`KduGb~dV3bsSb@*baI>B^0< z^HG<^Zw6l{vehS;l&pFnmVkEQ-mW#7F2Ja=_zyt0 zEEiW5cpF|h`(J8Q39)aKAaJkaIh-{LC(3|_ELzAoVQ3Q(3eHPOeheee8X0(?=Fu_4=JMH9E;c%}G+7%g}j!&KR$3hxo-4KZ{NpLN!eci1fP9bbZPvGpJc&E-;LQN4EEf)F#NF+mXZ>V6j(fZES|75r5q)4 zxbi5rODpEIH59`}6Ef!*M)%9liwVE|#EVISyb|JLAwK!;l!~;MX1Epa5}Qy9f4cG{ zy4__8`DA=>tzVzl%U=zrlf+4zpUBKLq;xuvzCSDU9zqT<%Q|^+9h>gLpKn^($*OrD z-vM>Yf2(D(iwo9-vQ`0Y0BLG+jW1MHlorVT!A8JtRgqI6#%I7evsS~dJm6^uHF~gWO(;uzS_Pj=cTYa@KK@L=e^1xwRoaWDGJXj%+`3IqL4F}r+>x()Fg>})i6z1 zqTsoACyFGqJs^ZGKf@+Y9%?vzjWoW>qitSCWm)sql;A@``H(KLwpvNql-Hjge@4k2 zK~n9~qj>^{2=Pl;*$kGR_sBh1kzasSUMPj3janFpTBO}DDV!p_p7%8EfBJ0qoh;@> zwk12NWW|SOhP2oaFf*Pddew|}pcjaRBA4g=%-3e#2G}P;VmdD|)p9NJU)o%N%a~@T z_>V-SIKd8oZ%??JyyjDxM0Hjy6k)iz=L@uoy`T9nL$a>?1>jz1&dsG1Qz6$j=--n2 z10>qNBTI2`KD2EXC$9VV-P$Ll{&p03I)#L_56%;jarza_Rx7_ZD0qNJQgE+Pi#U&V zrSH4&-_VN^AOvc(^{w}JrCFcT{=7=>^{bn|UNK7*UY z!MZD-kyNY-rF5*Ms^JR>8~cC6n{TMIHMC9m^2onxscBVwZ5aK%S@$)s*i@$c zRZ>)fp;Oa*Ek`qUL=k-ak@-D1B+U7PUypb1vxqrmAD>9 z5zu!>FEccJnF444Gce(+eqVrg+ufB&?$#GV=L}_sYqD!s3P>whj8WtH7FmTldv8wtkVRYCF=JBvAVvG3HZ*Khf#f}lOr z#yk&&BP|xq*DnqAD)hSacF3`8QiMek;&XIvd4u(RUMfqerBeDtM7CBNuu(gjS3 zsk#iaicJ>@nWnMVLXKW?T;IE6k1Q!tTn-d=+TEyOya6)`x$hls5Hs)cIH| zI!#nP?buuPeerH%3Ck&qnCf2JL&&*vgF4LvH`agisVRt^Ppa$?TA?o{4c7~G-PAO~IgI5W z-fv8gf8piUAFPqAvJxb7w-inf#80Qz)lrY)=7o!daP6gQd9^Q&w?86NI??&1w_)mQ zC@W_Wmwv`$iIhynF0P@pN3+KKjwe#oo)La%K73jJm@doOtYYOE_pb@1-}TK7 zlOw(Fw-Jz2dxr_eUk@!|DjFv{OK@vykqUCPo8fYq07j&C*37Fplysa?} zlBC8i$u<+zFCvMd7v^m1%UnBa76WT;?(JqsttqGR=2?xsyAdpN&+jh!g;$i`;?^55 z+R7b72(qo$t@i$!9L2FB*4n^C&Y#H}mB!A06$-@6_e_M=u9zU;?FfOsN7fHus}dom z1$=q4yus&49s6<`AW1lOVL3$tEgG(Wta=Q7eXxUZ(;-t-=!Q*)L$)PC*Wsa*u(Ocj zCTz_ae&BaJ5mEm9nb%aDnUw?fl(JY8&>vy@XD}|T1-FUZlSMz8`t3P8vHuz9cJXgL zi&?|S1RBIQX zPaMYI3{ebs!$ ztBsB($Qc_UkbM>ZhEAqXM=Vgvw&)9mYRHj%#*T(QIY8pK%OcCS()Xpu3iFE}qOOJW z!d{P!^|)m(O{I@v#t*nRV8m8^KhO282lg##R?|eXo-JFf^=~1?iU(Q`<*1HY`rN#} zFY29c{=8*Cr(w?PRBZ%-Rv4OS6ctL<|LgFCCWLl(=6OE#RuuppwnLgR^wR~sdqLyRz^5WC2VCOTZd!q%J zMasbhmJ-*t3M5r=G6CN0R#fm(bN+QA;6A23w%7mlhb2KbR&|X2+Wi8eHoI6oHm-tF{d9XRD0Ex4CA%rD>O`T?v<(kd(M#pd++Sz8GzwX5&>s;AY?un+dMZJnT{j+U*aPSfocO5vq z`FQUdmkJno$GpOEJ`O&+j?Si5m_6$M3>h$c6Ctu*IKuGz{I?XH)Rto#p!9c>X*GW4 zy^`)PxzM#kSsE!P+Xm|M6!xvJugM1^Q(J)i-oj;$BGqNxZLbWhMG0ww;0;v!uk9YU zo0ZdmIr5{Fu|ONAt*~%9c@c@KA4OsD3>tR1t$FEn3=sM~rG>71gyBArH^82|>ICpj zQPsk*>=@~&ln?)9VXb38z%9d?shYqx{A%jfGxEnRm29;rJu4zfey!YC{ao�j3m@N!=xBjqi#s|{{?AVPyYjH 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 z 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�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

  • 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

    i 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ţOe z3Z@~Z-!d!Q78rWY2*oI_-1cm3!iVw@B6xPnwnr!0Aod@po z?Kf9CoLlb=qsK5Z&C`#9>K%r)c(?47--P)Uz_ZT3Q9}Wp(%|kC1ptBA?ZB?ij_F@b zy3<8yk_V-p^Yu2KZ$yE@<#?&C0;5%i$68%GO~i!pti=bsNJ2%rL+2 zF`Jlz#hCdRKr_qX`M4VsU;}mt&{)rP$JGUv0=tbjdS)E!{qew>ZX4om?TKi)iGQ9W!@2_jd|uO_+A zb+u~7jGSv?82NL-z_U`jY9rb7%H-B}i9Vb`g!rSM_&ttNe6w&z9lq6kVK%r+Gw|bk z+^?ovW2u~p&N2jwA`VjkM;dZaw)NOt9==0M%yGszsO*FrE3Z} zJByy;HbgaxyEpT2Ss}6nd4d*!FN`mV;k5aKXZVW4{zr4~^}iLo0j?;36_Kk>>_-H~ zfFHG<5r!wg@uz>WNU*?-n(KsDvO+2kYpPI1q^h+z$9Jbn_%CRvdS&;vm@Dr8y!DLa zc(C5>S}9WB_r{G3wXY_WwF9_{mWw~c@o%^ml+yj3IRt~9 zgN}bTSAroq6QOP_8cX&U9=qnFUV+uAhirXw0%Gq@hI-R;yuK)MI}%k5?e}V*`>ym{ zM!oiNug$FQ%!o@V6re7gUAPr~l^3Q-^G*m?-I8Hor0T_7VX9QLeSQkGYM)uX8#9;A z{T4uH*rI15PpGL;Uw)4+$0_)`zdQqZ;BMG$K$gue&LWp#{dTftR`JX;_py+@bMRyf zt(v~xJS^&{Y#(w2WjeYsliG0UjKRos6ce?2$<^R>R~);B>+%Vj6=`UYxE+2wB65S= zdz#0DA)S7-A&Z3VKO8G(c@UL#=E#7;2RSUZF5^D%WrW;|i5YfqzV@gaj`TF2w>|gd z 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 z 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

    FxxKN>@gC2$Zo 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%0A?|(S5?x>@rZe{F;b5Py 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%0D)Z%=}7*woG_N%)$5)h>l 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
    C{s^;8Q>ddbIT(td;A4fTmqywCD}_%E3fP zdqQ9kXZsHLEde%PYQL+C&%JcLEnM$h$ksu8;9wND#2=UgBtaYh zR~_*xlYksUCEDMdz^`g5$>F!@d3p=N0Dz&rq4G=2ph8=oLI;ZF(t1yyjO@~gS0;?a zF!pX#d2?6;OgY`9JHLCPrcOv8&cAH|dv~GR8&W7h5P-vaG}r)dfy@KAcBcSzZ8xvJJpv zDpjt7oT(}^0pVFC73)}|tI_McsPgLP%{)ifT0nLqzumF1qjwchg~7|R`Hg?Io-zLk zz~1O&!0adD@X>Zrd8RL1y{N@xz@r&dTHOJV6^Z0H)2FJ3&-J1iTgHV%M`8v3 zjE|KKTV^3R2U{jpg^+i}l3Zhw2W+F&_<2c28G})?;*uVBuIsB2$iMa`>Ox^OYlc}j z*jRrz1{=RO_BTJ;+%ZS8nZHS1m>$)1TM6Vz;B6YIBiPKQX#O+v61m zOJx>wG!4Mn2%zQ$fc&2WRw)Df23)n*7nNS67B%5ViHr0Q2B;@B8_ZEU{g zyZ==Y!FMSTz3?4XqJIGFwRFE(^;DOW$X1CAVclM#(z72VY}oay^Ann0wb}3a*zXzf zU;u_6tK#`Ez+U7UNfNJ}Ow`!b-;w|Tus8mfj6qKrdmD7`)~IgWUC_S2Iiw6o=z@9g zUC7;Hs>iMIKHPku$gpLSL%kp`gU^y~Tb_nRwC#?{nilm{Q;Z4< zl6B&6qP*yTk4@cjqrdsJj?5CthhzOcs;ur-&)|fn=-c@>6q5KGEcGCtop7FQq3 zVL+vr<}$`Tl_=Yt)HUrS|3K!nGYjGY~&fDik0A3waKC)Fd+`&{VXl_hXiW857bkh|4l z!``czmy3_5{DKTqD@o^z*h?d<0RfOzWdpLrU$={~W8S6(>}3GV()Ovko4Qf$pnIJF z{oh8u=O-%`W5;I$X}i8UL4`mP570Y|9oMqvqczA^f~a)9GzpOpRjf_*lu*{8Lm2@! zY!vr!M0Z+VBK}ZXuMXIz`(~Fl0pZ~Mf}?^{vK5h$tDHy=#UuBv_wk*1zA@&w&JX(E zj6v4R`N;vufu8C`>yS!WPhB7~^zk#5$-ys@>^3_-rB!f1iqBU*I`E!&FDEoaXbT{xzZumzQ2b(lbOlA`cZ~_Kq!1}IS&#W&NWA7~(d&fLs?7e_5C{pJ) zlDute8;6@rfn(@$Ct+wt#bXpS^wdu5#6Cs*m9_FP6 zC^S4;&d9m!WU8#B1!KP=;Yp~NZ6#T}nfcxrOEPm3u{`EG*ETH8FYm)XI3W{1YJE&% zQbVU2U_xJYCgI#Tg6F`$%#r}^oFuRCWF0ER*X6&6|F~J@C2e|I)~PjgWJh0b#xIv8 zNpcB)=xjiWRwHtdBjF@9;v?fb7w|U-C-s)xQv0(9RFvAQxp1llABt5nx{y0_)S9uI z?YHk3nM!=D_?DWB@9Qyst;L9Jy>&d9L~LKyFvcK+izY#{51dsi2^_|MI_F458QA!3 zIIB5um^_3>xKa*+n@9+^^eR_T)yIta;u6Muhgw!?yCc2^8nZk#p~YEzuL*k;f*yDX z{7npU+%$7@$z=b>Hv7|?;r^rcCvAR}{IfCkPFvVqC-8oz0+m%U1pU~?*lRnFKMi9q zz+U6@*x1azFTcKI&D$Ly%BkQjy^-vy+;A2k0-!w& zH5g;XDyQsybvFhp05bPbXsUM}B%3!0MhsX_QSMAevTZYWhM=XbRAZ%I>snuo9?fTw z4Uw#UC{~8d1Dnkf%>TdIZ(i~`4wQ~Yl~bmt+mTGJ-9ORZ1YhmPQEG3$c@}Hq10x7c zx#Rv~O1n2BOq>qk#7x!)1>rd8%{%_ifFK*F6$e3yzPdQ1t9R$M=kHHx`)gzkAvpZ) z4{yKz_kO?n{=9Pp2FMl4Z(mpGxBMS>RQnvDN6XMO(~HfV>;h;sVvn|E@6=BSwr2t) z_2P?#zG}eCF!()aP-$Hs0*AHO1BTAfWU@nd147xUZ3zF66*A>pZ>#8Wwf^~fhh~-l zyEFbR5Uc462BU)mZ^FS-$w%MN_7kw4MmWJ7%QM&?p5LoIk0}>ks(-BrQulha#ZHi( z0Np=*^_La``z5UQY_w@}{Nn&!M4@SZTCDo&MzU=dG(L|rh6B8l_bMcPAM751$^qPK zr-|PjUe*PFaP`gG*mu5r1deWkIlW{9HX@{p91a82Ox1@32YhfYm}^@`qh%P*XsEfC z?DYG3R@`q<*G_9-cSh&Tj%^nrVnGuw9~YoMM_SQd$lbmPamF6CmS0_15f8L zUIQ=?0RC5XdRjlO6%4`f^lW94VYWTaUm0XtnRaZ9pv_lkDVQi$t+&2}odBABO8P{T z@%i={f`}Md6hZ-zT+ckO(AOUU25A{lA2W0vrO+lT?du=!CVq#4cAg_EJwm55an(<@ z0YYljlkZ~zA3@G&ohhqD>yjN?%NDplXAxO!M$ zK8GFP^*uWH2Ib?3wT2qcs%eb%67Bcj=xLKZx=ujiQLTz_C@TMme2<;bo*)M@>Flk4 zIfQL{u%&i4Q(_7hyjd7~BVp`K57EgCTc4RL+n&qZl#RuCZDkH%?-kaGcKxY0L(vJz z`rDIaPy*Jl(d2I&YdhlyKfgQv%r*J9(JXWDzia*HT$9Z^H`b?ts)ra(b$U=vd6s!+ zR4sr%X}gu00~09Y^8aJ+J^bt{t~~McI_KQ#AgL8v34w$JNPr}=!Hg3ahw;x|dv^A- zyMNU0H|w3<`Hjc+jB@}?4nm*+D5Knxy46vgbHDKWo~nD!t-9|$3G6jL4D~>L()Yf4 zw{BJ43a3tO?rOy14C68I!sKfI`-rUi;R$-@ct2enhhr@I<&`bi5!k(z9(?S6+P!lN zZ9(YWrfBAWY4jZO>J*$KPtvjDSLg~BeCO~?D;hefcNYdQd-l-%z4cfuLfyoDq!tG- zSi*$EuTigFo}xSd@k!eD@Lhygh(_$?`{iBExe^>TbRC`l-~5a&EO*kiJAQzuJB{>2 zFL#c4*Xk84@c)!f+^nZV4NqgDy$d^_(dr@E$ynbB`tL79+4BsG*BC$-QrEpv@iCC5Q?$|C&xXHb5>80nMz;4GHo>WIP66`!acl-qES3g}Io1;lAD3!P4i1O8& z>48Tcpj|t*(l$g>ZNziu|K|EX#6a!?dhK0AfI2fsgK$7tOd+CeV+U=z_d&XA@BQ@P zhC14W<5c+=nR!fxP8|C!y*S=$9D9HG=o)i`R_@}<^fm_C|LdbQ^aLWEKKG?fW^+I# zCMdF*n>29t1f724Z8~xu1BiaS2hg9WY=;BJz5D6jorsJHhx>Xggz%&-=NWhU```LG zB8b$`8xLnbVm;+yiD#V>pzrU`(wrQBqplP{)yf}M2~;Ff*qC^SUmUGdNXNjoc(cG zdgwGQUU-Rqb)kh`8s0!Z;C>IDaWy9RuADkf@4fIUeb6^eXGU{ajMzlY&9yk{aDd8I zZKSa^&(ITapm-V+eB8a@$Z))(FgJ7_3s`T{>+fL0$dPLpAftm`i-nAxPtyK9h~m7j z3&$(HN+ZW#qhC+&LB!r2^rJ_yI2%pUX0e-a`obalzfW~hKOD5b{|uss^fVJUmn(2q znCd@6Zz1a3(Gw{1Te?Cri4?RSk zUw@Kz<4e}T5fi(|=n^&^z5DZ*XztF(DTf`BkE|}CZQP&W4<-h={tp~`6N`ke(<>+8 z?0N$cOiJsi4ei$*kAIyW#)8hiZuB`Wy+-Fx9;Sc#{RJ%kpwF3n)^NH{mGsh`kL;zt z`)@b~6%$Qs@m?4`eUL6RH8 zg?E0cX)}&{-cR3t8oU0V+=2;vwA+XdGw=Z-_I-c}Fib#=E#gSs5*z{5dmnAufq~`2 zn`sjq!&|W7V&>#aI4%m#Eati2MgQ;^qW@z+$;CH&1)H)EE%kq#T|+lYHqiHvYc8Tq_L}LpI>+b&JvgD81inR zvKyPZHqicWz%ghqqQ@gE>z1w~N&}9u#-hM$2hYLDIt8cACTi?Kq>F|X+K{?NvmFm$ zq48n*DmF*lQ9XwC=vSD8Dxu$CqVuV}J@lRZI5~w=pW?{0FVpLYy8dJ2#h2iy{msYM zQT5Ov>c?X0zrKn{(b!G@#NYE#teBjH0L`(Ka1ksk{o-}pLhoj*#ehu)?CeWjOflp`AKmp4#v-6Yx(9D{{A`T9F&>FNxk zguy}A+&dz-tuO7P`Be|nqPcfOH(P6u%9OsMqeD#1ia<}&i-%sl=0#4391k?r*Cm$#Y76Fix1i$wJN5w&Xx(Q%Ld z;um!I?ZfomaE?aMm#`&?pEiHsAdSV?*1gZ+c;q(v-klSOQg(vge)TfdKaOLa&=-Da zbs2S5A`%3mAo1?*cVGUH7WO`i3G4gl$&Gb5wiXo)U&qJM^Q7lTFa83PuyE|n?4h0= zJFrU~8`3b*#Limw!)e1Qt^Wdzq5dB{b^*t%!Wkrk>8|Q_YF&>gJ-hFuM<2SAy5Uf^ z%1qe8321r@8w`)pi4Ts`t6aX&F&ajszuHbX@nhm{-xGVVlerzo7hxXg?5o&Ojz}Ie z_aQP3B0(QOo?N*~Z{azX-hY6a9)}~>&`Y#5aFzZU?}hGlz4Tu(q0N0o{orT*+5JD{ ztK4mT&%Q>}i5Sim4-wK2`Huo2W#SW!KmNk6#Q24&zp^4z_Rw7wn-!`RGx?(ktcb?`kpdIjUyF+?t}Y@pVj zyJ+1#2WbCJ^gA&*SqbN(sjFw{{a^eCHjCmIWcVgv=8wvv34Wey%woc#qH8-MHCw1htS!FSLn=k{p^?>~75)(2fP9DK?`3T3~%~#M;WgBgP z6Yu)Rc|Ts3w6FrwJ}jGjL+OwZ%J%yX9R{4;WfQl0lu!}T9x{&cbnVlai|MAX@8Fp`o5$S$oF6(%({PS^ zTpj9ff}xyrZc-BUOg_Y(RvJle*B zT+4by9^7>oJ@gPZr8iWe z(c#8tD6@7iee0e&>Mk9^hClT6-#$*SAB58k_w~!r-(6$-`s+#%bxHgBXzQ?vp%jad zL+4M^#Y1n>;WLOThIhkKSt9~Nti@*TeYE>-EZE(PqlT*x!6xdR0X}O!J_>3JK()` z7n~CwKoqY{&G@}2dO0|UrI)dI$xAt?<7WPwzmAKgdH>?~VgZon#4B-<%MGu8)Z zu%Ew%jg4z4h4I;r(sQ(B`d##eCg{keS!{}ca|!}nT*o3)4)aY_9b0MtlbENwcMIlR zuqn4}j3;a8)t?-pml3Hgjk(-q-0##iteIeLdZDZh$28;Ato`Vxt*@a?s}N8I?EHaEF5w+Fz76lVE#-(n$g{~AY*xUA@l$`KKO8Tom#??e-+k)=x_cA)BshuagZIzS zFOSdC+zQHr`~Ja|sU|ouuGvS=efci>?w7Y3r%!fx=JG#}jX`$q@EpB#^cvk&jaE1WDc9}CqDc={qZzC*ue9E z$B&+(V^=U|JPijPI8Zcp3wBgyW(;f52sC)1r{m1xjnyA}CKY(-M7R(*;Qgn(&XmRQ~PTf6>O^%4z`}MEW zrfutJcO&L_qBevhLJwVnWB*SM(**jA^remo7A@cN z2-Q6HG~M5lLVp@F_;`5fL7Xsh9?_UDHPaskd+8s(x{>yvPdoC~ztN$?XX!WS1JA;D z#(U1l%+l8Fh#LC@PJ7x)KX`1Nna3}U)&@_%afDv^@ryLS>uD-~>^pEULUj37{3d*f ze2=!jx5$tQjQI5d%uk%?H{1;?P;bqjC*gO z-}>T*!}JF@Y?`_QxI6wsq$oIB-%mgMS})zxIZxMq|5LiM+)kH!zeoGGwa}N)4^AO? z#po5Rf&KCY`e?3+`qzJj9>eK{U)hbw%NVt;OkoqnnRhXcJ58@0xkCNZ*yM@2Rfjd7 zZbWyy?*IbdAb7+b@R+Yex%tHR&%b<;qagOv`&hsE01j^-UY|s82Dti_;|THIyJjAoFHymye@TavB_kjRXyavT({+AQ? zAOiAc`bR{aZp7Sc7EYB{U&rzECoa-U(^%`?b{Bo~nH{vIu8bPsh&6rXeVodIwSu?L z(wS>Wa~^?>S~jB3iQpeRme~zwFZ2iay`b-3_Bla2JvV%j244FQ6HWAB{oi3755ZXO zX6JIWS@_2vDH&F>id&XH4)}((s~ZXN+XgmHa>k1^Vhs#64NO*4V1+k0>BKOKLMxMx3DgX)9L!K zfeLe6RV_WV_MZJ1V;~YIoCzDb%$u9y2g4skKmbWZK~#Va{rU*K`}|p|MReA#J$vbX^yyc@7m716H;1{4$v%4b z)pzNA_Z`=?7D4wh#zLF2s}sRI(BAWJS-Kg$-w$JR?a_;PkFLb;_pR8xd;q^~BTk;e z`<;JJ2{!E@3Kd<4v+CJ5;n#rv*2#e>TFAlQrXFM1p1bMpd$!ZV4{xW{2yBA=nbC*q zA^eLI_x|{IAEEmZ@pvOLsUELglT}D42hZ>&L|wgl@g%+eCh{3RE`5_cj@wMlJ$Isv zVjQ<~oe9Rna~J&ED2I(L@aK8sU*W5B=n`En$A+mMY!catO}ck=(!IQa3NRkO75ea3 zc&0@DXR*;UwKRl#KSLj2J>?YFkL%bBhqjT-y2YJ1F=9LIdw3@{_*GF?CB{c{*J$MG zIru?f1N7+uI)RNM8Pvh*wr=AK(AZEzm*EG&oA|!@rCw@7IjiQ52e(-_F4GnGR-78I zrFZMULXYmiT+ps)F39{=#&N#Fnf#+8I0XYIPGCOpLyUQEX0REgqYD9UHd6i6B-PGL zQPY8Mpgix!n4%Qrg&ljxaWdCyIGO7`n%(z(YC_$33|;@Vzgb1Els#$N-Kf4xyKBFIzXD%^ z=e|60+Vtn&crATea+ewnQV?tabfE1f9XV zhsXO9IN2gs(?NAupWnUjKH9VI9us`3%M7HD8k}?45Aif2CZBrcZMt#ix2SgeKKk<3 zDg;f7`hL+pdG!x{Tg)8Or8oXar(b`K4&~t3+qs**^Hpq+Skq)qc;I#@hc+ucbp?J_ zXX(%zSg(Q;{J9Z0ox?W+P9U`Q?)`Mf&K>mVF8EnteG+@pOu5UV&$n~~!I91%$BAk@ zmcd3w^j9k3C)kXQM-M;FWqt##sX?GslzAR2Xo(fp&_84RiEomx;9EBzD3&p)2s>@EeY5e0bzm15lP=+1X z@)5kqK9!#(G_pd(w__I{jHr4>668?g!~AGhZuI*0zb>6@pf zKT8?Ce@!AvKZnLMw=hOGN9VCKf0>%rv{M@<>dmee46?c7H9m}8y_ay@3_1`ctJWiW zBccnSap#xQ93mJ^4x!UHwLmw~!_JgpAXb6n5OJ(STMMF}VFyb&hg3ELNv@duoA3~) zM&adtm98z+((p&!?j>;Qo^W)7uAR5Kg1lkETN2FBr=VsG(kSYBt{@#?CFvd<|>|pMN zGX@_`1V0XV@M9o4HAaKO6Ere8NAoLqPGxuzRw1fGCn865w!$$AyDBkI&&|T|cVwK- zA#!6Hi&VL2AZVWwb~v(QZ?25$yU|%(y_Py_P)|(HLGBCrHHT;<(>P`uyYT0*Ah8}3 zU`@Oegc}g^(%^67U##6UL=eR; zf~Gp&>%jj-pZI4*ZICE#mp*?xWZ6+?O!vl8MTk-XMP+(!xYiJ@TLzj%Urah-%4d>>grAhs)P6 zn7RpP+-gKGLNvc-M5Sy&r>7Aw8qe8H^B)e~yeKo!huvROG?>9rEX~c>t=(jHZkEG& zF1LbCH6lJ=MaOD<1`ed=uDHSF7rp&){1nP+u}hlU2h{ns*!i7Xos-|fbwYIiW2VORHSTHlMIP+DUXDG+mVZ1VqBlT`B(v_Qt41&mgT|IE> zL%p(-Ck&4B*IZ;oOtxmQIEHe4NSXHf;!1tXyl{!&k7u=FgFbcwhM^( zT0!Hrz0`?aFFj51`#>(U6!(pn&oU;WCa3W7#X!2Yp~38=DaUTp__4>o?-P}OB$9{s zet>*$MEPFOIm;|^dyKXiJAMbp;Shy(1BaDhS1WdfBg#&9Mvb+d#c58>bJIO-T8 zQ;duw0`VdytZ{3lmDm-Bh`*iP9f+#I$FpI<+q7p$132wAS zr6~UmE$!5}3em%(@@Ae7oS+bXnfkAyUfsa)WQbzZ*xdqmV?-{9+8c9g(LF59P0_@) z%UImRupbkWs~Re3wQ;Fw z2@@zKh}_VOj!8vX8NRQc8V~_?Lw5Bn z*5o-Ac%EMQW1PLenHz{Oyj)46m1}8rE9w!V7{%Wrg}`de4pU5Ca2*@Hf#;5AIKG7X zT7vf|qSQ3iWT*mtnrS!{*5j0b4XfcKTZaA)I<#}6Lo_{(-F3L}nT0fAUk8;S!h1z+ z6Rqk(o6(H61)CaBob7MJF3d$lnHU_I#4a#IV8UxE&23QyoD|yHO*_*8hpIYMPHy%y zXp5F^_EG<0BMoO-sdse^-XG{4%?!{m7EUf;0I?c73fE!x8BY|Jayx^`i#fD2lS3mk zIt9nec|;B4{H?;yxK>28XvG8(7WdhKfFrJOnNK6KG%rw(W5Ib4QTe+Ok)x*>gKuq1 z3}fpP+V3pd*tyX`nixR@wkhNT>IfbnqI;m6V3Berh24L(&9r$<9p0&Otc~QmP}6eKwNdWW6W(N?@rBN^6Tm(cJVJZ&_-;?=|DSEhBj+v z9QCjtjuf+4SX#tHQgtJhV{xdV6a%BGMp~-vL6mw#)W^|x_N`~z-}F4n<@6BV`BOB2 zsPRj9=VvQwFgWR^j`n8SxT+fSVK;Cx(IE9;natL?&Lgn{NhS^+@=qc#Y86@U7NbvurRlV zn$Ygo;Jv*xIYQGDD8r*@>(NH6;H^_$i;ZaYE!5T7OfA>}&kl=ai1f{axY;p8kw)Kk zcnTX17EpFdtEdWPq7lC%jfJTU7D3w9ccAPy8mC@)hvhJ6%Arjf#j_k6nV>Q3=3U6) zHzCrdQZeDEe^wZ;l_qf-gqRw0=!9>Mu_Y;kV)4 zI6pRm=fUkfjsij%&Y%shsz-ki&!lS=qO&8?6EEJZOdyIFHhf%JZlh)FlHQ8VPz~6% zZ=AyM+?S?D=-fmtoVDv|(>iSW!2Q|#Nc7j_hZ*XY`{?YwVEP(6#v8Cp z84XH(3HlG!ZCG^cMqdPxw8{_-V+?((`4nAULAhwHqm78xWj@?5L;V;;#D{Z}XqP(C zE@2X{9Fg{TXY|EEv^TYgw!9JJA~cAIQ%LE_L7JQxrz<0Ge6> zJNk&(8XWtHcVr7DtN95??`LIplolq2X<&GUMo_kwGFUjR!4Bi*ZtCf%qqXRhF}`#K z4(`a88=NmUtErpYYfLJX!&YY6-}w3R4t_oweDqo$-bG_HigscFi{H{ew9g-XBedmJ zi1yQg$*A5IM79~k^Fy?f3cP1)5#^A_7}ePQ%_lG1>>r`w{&C8*uY*G{HiID|rHL|v z^i$lHqi-?Ue~rd(;yw^fu#Wq!*u++iKD)fP%=1MHu{4LB$P=S9GB#!2c}wV9QyJRG zhE_xxXryk`{~CU_($B%Y^K<0Wb_Nl-VHW+I1>{p1+T>b9@8-S{N9=Dv`^IHqX<`VG zhT6=8Yi~R58d2K@vD-d{ad2ffCde0X{Oa5sou9$j0MRD4bz?EJJW9;|Nbhf6eMwkt zzQ*}$%pwX!KKc3Y)>YWz0j2ltEQItE?Uk29lCMG|qliL7{v%^-nae9rPW#XAN_ZX7 z^?n>ZHj>2#l}>8zK%W(zIJ-#_8_R|$^gulh~X)k6(ldLq3|A=YsfGn#YC+ z6lG0oXdT+Y4LoR^9;B(8ct>8JL0wXxjxG%?t;x zi#Q?@W29Nk)?#EI*C$iw@NTZgsSN9T(WkAYuIgoszpo>z(shEb6HT*o2L3befBY!^ zU8awUcCe+r1HTK$?7ekZlwa2{YSG;d(%mgFQWDZAARQvzog>{Kf~3+2DBU11bT>#z z#{dc<&A>4C8T9u&@AIB>o$EU1{PSJ!`TWCMX7=7|t-bc%t7qR98!7lf01mk9!W2b) zzQffgHqe6-i-Q;Oow|MrxKj=sGeQgBe{H>&bZPdge@ofR_in6cw~%y#f`Tgf_-5mg zeqJl8)(KzE!U7I!;-k1czGotV+Jj0fC6O1iY%9TOZ@jnljcoMeE%6EL@{?F2-|yrY zKY8ZqAVN(^{p56kJyUko8{*``T%s+& z6|K<&i+`N{jP2iBp5xIL%n$Wk^~PJq8gCGZ^V~-}d?%C-TJ9i7tvwNni1PC!|8^nd z9;S&{-Yw2A8#7P1P@!WvaLs)D?G@Lj^_eickpk8H!$;C_)xAPc}Rpq z22bR31QIZ7@7v_O5l+K>_BjdnGlk&xhmPotrLA zybo*6`1+>x1L)XIEunVJ5Ht6<98eIbk93&aaH+$+l|RN+WF?s5XI7mV5%m>6RaJ1~ zJ*_Aed^Ss~S8=cSp0v7JPMr=nm;GwBRKV#=Sth4y%vIl9$Z`c`gK@_LQ6@Jce1dkN zb$guLR!7t-RckY01DWMCP*GuXtqhuWQa(NY&WjM~W$jJW5ji4}Psi@HFac4Yj0pZ9 zD&Aln4>S=o`f(Vo*lLsH_=lkAh{R2${$WF#+yJbb#>4%`55`I3eE1M`qK>hzVSR~n z2=|wE34H-a99NbFQ9RMsG0Z4}7lWmlMMh$@GeY$feksYiBUUqn3}fb6Hd~LD9Q-E_ zJKxh^dp>7)M30)3em^X^@6P*;77>P=Z>9G=KSnT09ib(JBh7D70i{jy``8JLDvU8Q zs5g)+uR74OPeMAGW9gIcyUE<@1$Z&lh=B(T=Xrr!)l}n<=Vo!=79(Jd>PsLf$7g=% zpan9a>ONEFNpzzBY`Y<5I7N*D-2B$kq$BS0Y^Liw_HGO7hk$Ax|9xDQk>|e{JVA>v zDme-<1$tQnR&P7LdnZ9M zGUpjy@u3i@MD17Ox{o+F#$_g*Qt{B@ep^3s$Ds#TMYT4G+CF&C7-TuF-a4v@ZQplC zA=$@|NlB(dAm7{hlrql2`3;Q*jJR<@`IKN1S3{LMV>F{E>a||*g$CJiDUKEGGy{~0 z0MWiLK)Sq^E){U!M>3gxg#L)2NjwF{ajNh`^QXi&elLZrPF#^G4j4#IK%cElQZ)Wz z7tSRC#-5}WdB5`rzZ1vZfJlg{+Y`zJ2;{0qIKph~?jIf?E7 zRK~r9&012oeZl(!DW#qcstmJkHyX8ZK)^m()+ztkMhAPh&5q(k_AjF@!l7rFH@}`_ z7pHo)zwKXjxz`#%Pzh+FR7OMC-LPo@jq17Y_faXOd)X> zR3=pQQck%JA9hdL*8zFB>q_nm=+G1FF=!)H=)u56^xi?Xh3{7vdcJl* z?rA*DZ^l1d3$NZrSH0`aGzvt6%IbPD7(ATKZ~+}BWOYk8-C-R))96Ub6zsXqbz;z0 zqfpnIkHgtDE`P3sbt2)yk=_#BK;&*_sb9S2Nr8Oq$*HJ6IEg*nAdA0>C6ejy?Ak#Cf3*OOJ&d_S|12z_i~`il9j zBVFm&KbS;#6_v*Cgk(vZfu|rtF+jntBT%%P zKL36!4JBCJpkoa{CsWB8)?^R$c=>7N`d0$01z12T3@JKdFRo>sF5Zc>i0%Nh=yky^3FCv%7|N{>Is-o2(d zV1Vwn{4!abFbPd2cI9N_El>nMCF3zJ*3&!B6EizGkxn_`*iw6z$RwT@AW)D&^f-`? zs(a8WecZV3`or97pPOQgzyt7mmDQB?9D!GlYA_36gVc+3b7lU$dOl|Y179lMMSWWMo*EqOTZk@5Ph zoqHeNS1u`RJM=F-nEN&<W~W$NpUU~?>slCxd|po`bi{} zUo+yu6f;m%p8au;P6~ZlY*{YtT&1EA`2B=_=(J)5SG|RfDv_hCOD<}wOLM|UzU-m0 zU({$7a!eg6b=GJ4thT)Y6$eEH0ozpw$@?QH@|-)cUD`NP7pX?yk3ixq5eb34rw=qO zk}VctVmoJ0I~$TN%L2IjKwecHA%;AdjZHf;x!!ktTYm_N5(msjSWQ2e(cuQ^ZFVPq zJuP+RhT3YME!S0liS}EM8|jVBxXe*EMlJ=&tOjgBF6J8V2YhC?P{emIfwTEFgIHK~5QA`76RM;$t z#_`0UE`HZDm)63BArp*4LTt{<}Bsm#9MK1-e9w{n}f32osnL zZTxV~QVzeRy2yPw^OMWrHeYG*=+OzfJQbM!% zWs(_$w2#S$b*VKW86Us!zEu-yG1O5eqjC*}RjhFgr?daw$(Ng9u_P?}?H@-xr80pf zkDHD9sQ2JAVmR0qT%j1c*{0Cur`eVVk0BK_hfR;l$eveiCIvLnT2-sNp(N3OuTjs^ z>Zaj0rgBV^EQ_%+B8@K$#?=5hW*BObFKm2MJ*5(63(sDsFLURa61%EHpAHp4vETiL zX4C8ZeZNGJSZPMafW>QfaC_NY-uH0{S#y7o9$Y}cpLkkAR*~_vrT~RAz^W%4djHwnk z{k%pZPA=F)x{X?s^3Qor%V&kmLXT0(%o&W8Yy?p)4!U5-|Is)(QBi3T z>VQR~&zTkKis!V7p|^Dj>jYV%+RLXMjb(S1vQU&oi&z*pQdky|j>ycIJI>XCp~@TV zc_Sx#ZI(X$%kmQ7f^#6Lq_v0yB7fA0xen#nZt+Xw zy0x1)8AsvP`JrD3ks@ZlpYCk2$)Qc&o7UmJC4?!gm#IfBHiq^EFE}eY0#f&aGW)y1 zeCnCuApFIfA4FnXwxo_Ikj*tT&BVitp^8+=;a>(^XaMCwH#HIU>9F6dj+(@f)S@>s zE`fFtbs^zQPO7aC(2d7eG&?nI!aUA^xA0D&Q=-?(;h zO{ngtzD{v<=&gR|fbK$TZGJ@h716$>NZacRw(k;)XtaX!I|%||XPE|D85rk1RzfWR z$;hhv&0+s_pjpMeiV*yZ@oOE@6^u5%GJ7uh#$GaD= zi#wiQ_g2H8zWt6M#ie^kv1K6Htoa(5c|UDQ<*)Me&b`LXr`tj?;F3i)tBFb1Lv|{n>lWvbou=okAL{PhU$ejI#T# zk@eo>c^+u$JaYbD<6YUWm3!$7U-_EE-1j;%h~Jxj^dp}%wzcf>M0knDm%9fBC{KK* z=PD)!L9LGiGrTB8&f22SE6blKZ)*quFyoM*$tkA3yT7d0cM>F_chba17T&Er+c@Wu z=W=!wxDk5hA0Uv9)tmVcniuh_{gr8n)dQzBkrL_?qw>#uD~cJ;9a2ZF4~lJ}So{%G zkYEuKY08sPs;XumlB<#^-FRMMg?D+;8n`#n#4Cw{qF1&Szff^3RWmwm2dUP7Si^r@ zRx~9h`VW|^n-ffK#pjSLYMFc+>*NOVcv%XPLbj(Pm<7&}fS@`ZdHVm`+uNl6(Mcd&LsGo2cBc zHu4pVZVC`Qrpt%{1e14Mm!=I*hxN$z@DzvkqJd-l<-}!1DYn>FM(!=pkUJaL_ub;? zTTMXjnrsn#J?s7>{F>HMdOTH=N#4DAl7z46lO`a0gLTF`0|{}AvsKuqYaETDN+W+` z9XYs*NpAGq1}u9`w3su2aCy4XfaN-D(JW~wn}k2A@I7tIl^`3lf8w^ zYpF>iU8ncSGL59?*Y?y(Zs@ac$um0t=pg>)NEXV&d@x+4 za=}a|9_F1L;+^xf277CPFeZ#V8|2opr5qgR`aBN~#@q%?ehh@3(5YLdd?*YSjLJXl zvPa$(mOVyKShIpEsIR%LCSD))a^9=|uAd*PI?D?^Yiia97jtajy^Y2<$+nskG z`C+hb(i0%8yyBB|dLEhDlI4GQ%0tWcy)(IA%}%CX@$>4ee;E9vnir2+(53M7nzvm! z&BdZ)zoL@<9vs!r2Zz-0!()=4-kDfO{kI(b%32B*@=5<#v343V$GLYLz$$fJaBX}2 z@p&C4g%epEv(;1gsJ;vpMvFtpheFXH&vz|Br`TuGesl*F8d_8m7wad=Q)xSPygjCh z>nq9CC*FdEuREWIpMun{L)9c))+ofUSX*LnSn2AeQLWSJPj{glVz8<&+9`8yj|gyJ z0DB5(y7)sutaH1}&Pq^ZML9TT$j^Iv(=ZF4_`z7e5!y`Fh;%xy9c;YFmGbA1!lMLq z&vD?yoWuVYhMoVFy~iCb6j9_ITBB+5T4RmO9T<~FPJdPlL|1&nKGEKk5w)Zq1%S3d zL3i&#%Q{#K0frS{Ufc<7L%g$~GycW6QG&Kt_w%`*|8&L~2P%KT7bsFSe$eg~C-YJl zD0{`N0%DGKpGBxL?c<_@5N9^}& z5w9NiJ`A{x>`h|rR_!w&Z9R6Fz<(jKA?$xJMNzDooDKjUkTd`DK$L4fv;rHZ3&$;8?g*SzdG)WX~!UR)A0G3P62|*r+Vuj#%n>!FFTr zaj?tHhCxi{;X8I@KS7d!{Ppnj9jr-2*fHIAuni!KJj|dpu@^bs&=Qu}ja0xO@klV#?=FPvre=WnPLHIfMr1^Dsk7UVnG?LqwCo*S5s{VdywH ziZd0%G(x%!3EA*t8nL{B=*+bb#4s^;UTvqZ$5(T&Vh}hd&c40ST2UaRCUI9z&jgVA z0RG|mXa(juQ~^nBum2J);`WSEh#qD6k+kzRs0@@#y=MNSKd^&`?k;9Yp;i?O9OrCx zTzjkq;sLkP-N%1N5E~%48C4jrQ-VK$r-56I=Bh%iGYCw5Vj=nfAt`=4!>F3$+k%vP z+R~Vk05wCLy9cLquXQG)#X78ZlbY2QOg~HR9^i+W&%-!nX6(t#(BpR9m9s_GQZuZm zUy|CdK7HE3?uR&FZb?X9{|OtST?{L+mqN#jdFZDv2Ap1jnyD0RzJLF6x~cbhZ^{Bq z>bkqlgEb)|*wl!)XnN@-9KJsPltN7WW{bED@q=^bM$T)$mmeCX`_&@VVA(CXJG&;>%Q0Cul!^7v(ZSfWAJT74QVyd&TOh zl+#7V02EwlmcVO4_Ze=+k@a(KKiS&Cqz{z#3{Gtur&H_2mN7jASIS%<6)PM#?8V2yrM{vU7xHyW^fXsY^{U;V388_o91gXCHCmJkTbS1_Ve0 zke@f*Y3N!>tQu{qJL9HBbA2LO?&B_ z2fKc`op^%FO2~CQ$S>ALTAcRLz%`#dfY*Mzupq>A7uq}=3Fl2WPMCs{B1rAPz{nNE zg4%y4-kC?@Jk`w1IL3M)p^dtFF5#LVv6Gy?L$*F2YdO78P1+7~+21ZOE(>*L8SSs2 z-{PkYlB4NTI>}(XRC+f>AxW>UQ=ejKy8K28H5Qmr^PKm` zLH+TMvL|2ZZ#4J;Scch@)h_ku2XO2P?Ln?37S-M`UfIVlqU%cc(>FVx`5^M(kymt! zAlpXAZv?leYuekpuAEy-pzE5Bg7^w##Ie*M=cD7dPp9MZi}e)rK{a||0zkh>oB-Z< zF&?GzkH*3*S455Mjb7S-9arXOd$u>vdtXsIH6N)_cK3Ot#5t2-vKN*oo3^-McC%+^Y*Hk!*;p7tuC)PS!7M=8>Y{B1l-&G z+o*dQaB{M00%K1F_61`4FmVEW!YV$9$#nm~)r4g_))jw_(WQT@i@WLUO1ia5nhgn* zJ-7WbzO>EV2e6?;J1I2YR(m9e53ywtooJ{n2aKoUWC`*(3qyH7 zL)H#+Mu@NK3dr_G3y5~7b+yLt<4yE=9@G&e*@zolt{Poi=dgVbxgIfIk@UUZv6Kd{ zq$GWiRAwDtDNI`#oa(#&nY*0mP|$EpEu70QY#Qo}ea1UB3natnz?|+mM;E+7dEAap z8ScLRqDXv#E^KlhH?ffknydA;-Jj~{Z2+&&^|b;R2)kBf z%=KKdrD~!LKhoO;+bpc5p@5~W4Tr-p|zTyfp8z%z?HZ zdcP#+-Ooi(vQ&5R+R*zHn1>tKhc2NbN&bQ^$D=O=(60?;<2^mU&)XkM9rgQDXTP~4 zJ0e)y<+{SpWy&I@1a&?+YM&-L<{c4?L|%mp%PA--l`$Z1Qj#nB;89E1&r|nql4GBG z2XD?Yu$3M__88A_sCjg#!3Kyt74nybVQuraf>lHFo(F%9(#1D4bvm1~*O8XJK%x(Dvjh@Bs`7P4OX{QDLell-%kT?TsZOJxH-mzaJ9Jlcc|h=^;{_W4 zU|EDL5gywo@X$)DrAdovG}Bz@$Q`~~oPG90jYR)+Ysn*YT%3Et^z+RiF73yR_HLx$ z|AZ_&lNpEa2DP{oQTrcB?0-tTA;@fxp7+l%xtSw6y>b?_I25&IRNN2ObF)YJ*&)(4 z#>+eQ-CLlC=(uuFu$Ey4G#17OFen7aj_#Dew`-P)KjbCpM3&G6E)IXx_@;(eR+(#8 zfqdnYjuXY?+N*0@8%epHeo7lpZ$?LbLud89$7Y*`L9HUa$aNkTj6B~tF-4?a+uEK# zq6u)1KxO@8GcEVc_8{|>UH_NN&?g^dZ{!p(4(S{*n-(sq+rUe@e05+E(bJ>va(LUO zwG1hMCQu(TfAu!P@=!?P+@igrunrq=2{FK6lhAqcMIS~e&B`R)SQU1sjZNL*!RUsV zi1c10@7PO*eiI)w(V4H>z6#AWm-8MYraJfv_9*?7)f2-N;LijP`%x1ZA76^3lK0ag z9BKIt5SCvR;zB~i3lE_lDW(HbdiJ$X9o~LX1=%7_yw_fK_lm2Gt4_!&({Mi%(R8

    1h0Ic&7u-gXl_(dSM>I?|mXj9a<1e}L(CF5!ZmJG}d z)k>+j_{VcJ7J(|gJ*4D}I2WyhtlxAWM8TA(h;C(RUz-5Lp^A6~B%;xEJx3faM&-~T z&&-sW(9o-pNv@!;nGSX_%$z_3HS~kh(bOv^x@_o1M|dV|V2?hPmKSG}a&ySDO33S;jVjfy+)=^-VoE%z@OBGb7F^7|g!Uq|gww1DkRHR-@ zrvT$_urxFhVciw6V9#|J82RIR@j9JL(M6E#rkrSL*_X&qh6bf5_Nvb(Up)x?bSpg7 zyM1l#UQ0J=KS}2Ftn-|+vvaNxoD9`rMi~MlFS;*J_SoLyI|~$2IP-QcO2sjr2^X%R zbeHE5WrJgE9}4Or_Cqml=yVTm{M>J~sCft8qQo3RDvp{+gC`oe1YSshNlBrdT`8 zW(33{9@AZcP!_>kA3xVOZ@*$Vfy1a%Ao~xj(ms|R+C{t~8!oZ5ln|cP(?WqKz~|0( zP7&Q#_f`0Zs$m0yh#`LxmasHIet;Qdr1!9*4@Yf&aIf*ok!t1Szo8$F)$Un~Pj_xvlzF1f)Mi zFkYmluiCaRK005FYTI9mMQ?Y3j&?Pt(fEs7IHS6uCbY5J*_0Hx?Qe{)qwP6wI5&^7 zwwKC&5quwOnOhL2k8r)jfe*`F(F1a@;Yx;HA=i4$GhVQFVY0pJ6Y-%aoC6ITaQ8K9 zD_9O-JcY;tqNl)#Ke~djYa_$$N6v&7Z}iMILf%@(Xv|=2uJR%9HUU1wxHChH?ZzwS zR&dwt*q8|jZ2oMI#;R8ZN7*0WQK<%ys6EM2Yg&B!JS`Og|y~!4$E7M-8 z*$DvqX8hj|=hnxu?Q(K}ATQd6lfo`I5^=HW1^8QKFrJT5tS(JW3CQn-%kfeNEP&?Z z_qQ!cet|KsW|rIyq&9ZC5*QRp z(fB+3FYA!o=p_k)E0sWqY$#5%aSUn>H(E^oCgdFDw?kimak@X%8(9 zy9jYVg!Ev}GLATtN=9Cfc2tWZe_#4`idcANR?8QK+J7{hfHVv;9Mtph*{SsN&*snE z9_L#Q6f3OiT) zENcUH7+!0nWx%LU-!lD;g5?&)t#hnNDtlezq1sQ82U+=txZyf6d%Sm4uFK91hk6M&3~yko`S zyW1!s*%?zE#I=5nBRFx@FN$f#;_Yvesnd7Uk6C9RngDWAH`AYfDI5T0g?cux{Ib{H zVMVTJpF_h#ohj&Dc=IpZB+S3X5EGZeU`5nL_(h`qc>x5aWRw2luPZ(GN4u&;9b1Eu zsjEqssF6L1(k<~v`L4eUL>_6719{qE{{#Rg@+ z(0LF|{2RPNI)HfsHouW7gSc}dLlS?SaiP_2+kf2!0Fa#FO&Ft}fNz^}pkK+MAP^Mp z?1z%jCg`4myx&q=?6j+LPBVLh!(7pnkNs5mvNC!;Ya3&tWOR^0me*Te0J;4o&R>-f zuXZG~ZTlv)oik9(uGwFHsm^t_J$(oF)GSHq_jyHs9+vP7`{%(f9hvcthxRsdyGsI!R+B*+Q0)K19 z{uS-bG{bvnrWR?d+dVT&RMo+B-fUX?dbA}KmI(XB2aV<~2G539rgn2_{x$mdvSJ)0{@;@iT0T!> zMCPAHC|8$iYP2O22?dBJ{hl_{%Ws(k&Ft^m)A+yGV2#jV$?7%zF`tE868QseZtkM1 z76bWxg?ZDPc|`}{Qw>|PJXLc?Z^h8|31r^DIX=2lB|qM1%|dVc_(&APy1cOuUH6l2 zoQM$@$HepI)_W<{vxb($4z#=yPMg(KMe7z?!N{>BxpDO?lm%;Vq-z+qz(xkxWU&UC zM(>6>A5+-32|ww~gVQ5xGGd>`BKu>-e0K9iVY5VnW)n*Ry;NWWyV~*_aoNeZKIf^t zV^wxGOO6tG99f23ULNj7XsV+h3{V$5Bhv;e;QXoxr29DqUH^eVhr=T@YI%r2qe=@GF_|XAbU{M{?gN; z8Zsio_Bqb~?xlraM6_B-+e})SIv0H)4~04|^5|umuf^_Bu!!WHYn#?Qst$wW!RUr^ zbmUT=_m%Vg_ogedTQ5r;M@yHYvFkPON9*+Yu*Ii=gWr1yZyWLu;==MTtd=nEx2I>D zTM*gto-uzWdV1Rsezh}$Z}rZV6Z^jraod1A@&A*N1(JSW9a71B^$J;jIhLW+hCYKe z)akV_IEU(Bb+P^oli4fCoWGy`9etKS&S+Jvb83ya*xAQ&cV}B=4B?qM?H9hy+&?Bw zn@3_cD2)ctU*ck{fiYI8!AStO!J!391dA9j^rqeMwJaiw`WL1mQc5CjRR}UUO0)uL zEf_pd^5MmtMiU6kn*biO_)=`YGC**W!bq;@B=5vXn^a@oRu29yAN;S!TlIT7l?7{2 z7;XN_J=amU{@d?F@u6(I+-){h@xMPJCDMN>5*)cO<$3e6&-9|7K+F+Tyz@vs^Gsa! zHV^wd8T((4svC)u{B(W|b6dt>BXjQ5Hkd&T?;$Sx$m=0_ z!O=JQTnuM5>4P7mKLiM7kc7dwi~3p~$?sbon(ZX#H1M;0Wib4X@NDO#)skPOpFWL7 ziQPymQJ5kMA8;DVCyHBw47h&cXB8=enOdkS*AJw&fX}iz(1*TnJhL2Apjv^*kN)#5 zAzw&Mi`dt6_sNJ0UM+WR?wX>Xrfm=6a?5zsg`q}u>o-ql-am_VD81I>z01h=1M~iP#ZMC$HMl?$D-vdWm?J%Ty>=f+RjMfW_MWts~nsr^^6mXtB*^%X4_&%7Rgw1e)&Ku}Dv^Qkei)8b^Nox2hP3$vwf* zY5^ht&0$YI(^PheFEf1+B{`Oi)#MNb_+&s;`g=>OMeT@J&H>Hw{Gi30*cVQY)Fr#% zNq_-}(`bKd*Oaw&N&r&?pE$ZX+;&R>i<7g{@&nbDUU4A8yS7wIJPZI7%J+&6Cfb)n z4rVs&fiptstg86j%dkgRE|1B(qlJHhb=ctg!@)5}qEI@1fKu>e2$~M25A3_7+H{VC zuydx1M`ZYJ83t^|!XiibEf6Fp8e>!yrb@hT8#>R^!G$RTPGl#E>ENCdxx@07-9ovCuX5tbfTQd)0aDi z?1ClV&$Hx>vL0(}Hs7OYzbd~Kj~{jc*_ZX#7Cz*xsM^p zDQl+t2uy`oVr;2g+ED#hYad{jBd?L+JF=-M{zMZa-1Dae{v{jC!;NE; zKz5D`3;&X=GcCmJ{QX0c==pJ%iAez`%qhfs*w_4!ficL+nIC%_rwvZjNB?chv27R* zT~X#~3c8^TvOHAXyZD&Qn(nzUth4(&lkhF6Z%Y^DC)%f2^evsS!@GdY`PPef=o zRkt2<)b!yW=~Ub!=8t$#%j3VGDgC|D^#bx<#6hv=X084%*QlL$MByCL#n zpGIhZ=#|}ZuvFsvQIp2KXqq5bhkT*V>xTq+9JT#dB%F7?krR%z>|4d2r)}aNR5lPj zRFW?l`U6ko54`-FZ87=l&j%0C2?;(4_?MYh->ZtJ?<^ZOX|MtRMfLxIfv$I-hTdIn z4vaKyk|-?Qv(4P-ZA~U>txB6aRaa9_D%*IcHv2<;DaTZwHetv)z(?jVitLmpHl^|G zICu-Ey@t|fxkXrr6U)E8Apn25@!W)_kD+asmI}-m&M7m9SqH^V(cEu)6sO>4&e6%A z{_t=Bio?vwMvcx)ELVwZnPif#;)2a0f5T25Wz>_?t)-YSrKxZ8I;K=FvRaAPFQGFG zc`kFKj9AAmAEe+PUEHlbdi*BllwpystH3b^XA%f-x3es)wlF)f7=C(-hTs5ieKNg< ze$liJl<-;v2gQa-q2Ui%eDBuMRin<+LV^dr;xTL-GUVQs{bs&Ef%lkWD%J*!j(3mh zVl@fO0DN4@HI}>kNI9vz?Kc?=z(YxN$E}My?Yk?w_;KInfb zTL&S=mahoHCjgV(#lc_19c}_j=v9tnZfU)u>k2LDg|i+z$AL;kZRRvzt82fsKm2OW zH5EGmLdTP(g8h~<10d?VYB-p0m|`3b{>`!s`~zN;`$?ba|-?9m!QU-GW0M0=wp7kSW`tt=J+yRQK9dH*|En`pIL~_aL8TTz>cqa1Oaab zr(LP!W-3G3ELaE$Lh7W~zJErS9@yGzil^V8JK{|itD{J=p?@=rW)w)$iIyQr)5tG> z9eYl8fVZr`?1x_X2)m>`CQhRB_lPUgTe<4k7=4t;$Z)a4q7xTC8LFQI7EAc>kW%iC zMD2%?PV4l!AvIW{_ANR1e|S^f+3;B15g`E#<%clq+HTVEhJ@;G= zw>^Z?*(Tth@Y2%W>fysCKM9eAzO89iK!bfqVcTh6Om|z zl?|AoBsgxT@(3=zs>;A#6}L0auGn{?=Y(Zj^@cU^2rirr={uS8K~RpHZo=HN8GBBw zX=$egMJZTM3fZ$Ey(j(uwAo97<98~3^|vPZvmtH|HemLH7*h{@uAloNTK&Fql^eG) zNa;Nlr#Ed6crh%~G3}FI#B4I}zrzD@@RpxOo@}X~Gaji(0Zlee=VRskVt&}(*Y+)5 z7cd;MQrDqJdX5_z@P>Z$bhW5%h_bEdpM<^3cgA5cIfz2}f(I<90&OyT4k80a9}Or#no zpj6J~N4SkgBh4C!m|71!jVOd^JmoR7#P5OpKnzT81oGPk9DKtMB*46vz=h5CoCG!y zoIgRE2#KE%X1WxdQkfYa1pYYP2JC47K(Y$-o)r5a`tIkeX8Y4NoTb0KR9!9VKS}dJ z5RRJ`M)v&k*OY#6R@v|GkmDr5(L21h?Q!C@TLWP*#TTIQ9XvzPilPI<+0;dq4_umH zr*xu}m3jYIvh(9%Z!4KYCdjE52luZJYoh1s-?=-(z?RND?Oa%X&1(XXQg2Pt^8}=J z+dsw3TnjbxD|38}7LL*WZ78{K3o7_FxOUM4&c~YNGiz*`^ zcTO3@BuR#7CMa-b!pgeP1Vmp$7Fqay%BDIIZ6+#L4Y0rHyCm9l9s#LdM8VL|7@?;8 zz}qkSaU{2PG?KSHH+oCpS^xMZVCy~kIIsx=O9H%t%o+Ua%}%KT&M`XxHI{p5xVV)h z_{}+znZFswzlYr7znMz>LgEdHLIx)EgG$)i_*si94_ai)wdp>n^Yg!nXL?Om;_o@im}>u zUwsvll1irZWUs_AVnN=qBhEoiTJS)FQD<|&55!2{fJe!5HVj^ihR8G*h_%WG6VrYF;X1|Ny`t&$_T z9ep;SH?U>czrv8Y>GW4$5%X zij{Q7n~3haWbgBF>}MxV%gQ)@V&R6Ix|9}C6q@4LC2c6nzNnWLW}kSQc&|<4l zE*``zplp-EfUr5FBt%J^+E4jhL~*NYS&33x-=!vnH4u8e_`+Atn--ALmih{5Hr$#( zr?lV3>(XWrA6Zb?E|s*O3PvHwZg{WgS~T`3lx=vU5s^nGa`|_H{h5%c<$tRRwB_Q{ zIHtO^+fUt&ul=J%Fi>p75}E3SLT_CjMj-z>B|9nXoY2eQi%U746{uzAR?sQ{v53fa z%j=Buw~MPYg?CWslf7fMaiFh^Z1+2Z3O?geM#<5#zUA7At|mL{`6nXxAWvZ)?m$+f?3Q{j zrpn!IFAm<-UY1d>jTI@A`Qf{%&)XTS_z#u1xFX@RE1gphY0Q@WkY=dy>U?bIrY!mNeqR$evb1Mx?$T1$A-K_ff$7zyBB&k}Q z$c}PRcm~AhY3by>{PBN+NN@e2Hygswnn;sc) za2yPAz;MjYzN}NK?y`qRXXh=%`eKriI%ko9~4VE{wbNh+M>D)9u zkkP(lX9>mVBi37W=rL28OQTuleI$yeaPg1MRI3j89lOf0KvbuYp07N$ zcegS>-0ERcQ`-q|JMLS7yR8s_7GHjA^F{8>Es_o+g35Skc-#F{-{3=+4(CG}Y#R%| z5VG@%g1wBrna7hF!oEMI+g6fz5N}2p>61F_@yaS980k1->F@%BPNP zZA^_DHDS9o;wJ&s;u1dOwlsxvu=M2!>AUPi9f?{+3AIA`8=_U?Af@lN=C>T|TpMh# zZ`FTdIyhZj%luE&4bNYXHxMax+2so9g%dy5q>Vn|_z4`m@7|#PT&EGdX&eV)VI#S< zv5;zARR zB~RHe7VUFTQgl2af}6ej z2}fVfl8BoPR|QO1l=}QX!CKaSI*lg>Yey)t3-5eI+7+2uU!F1sksPM9mZl+tG~HN! zFwZvFXxpvOXd0yQKU_97GJ)z{Pce}}P4%$1{diG)uERQA1QyVZPCWc`h#A%bl($#T@efb_uBdXM5PK0b1 z=|SZ;pFVw~EVuvvfi>Es_|>)Y4XHlocGT6?P9PX2Ys1<>e4Vkr1T`2NjTb9zkPhD6 zZI_tjZ5v;u)`wyww7A2_&@D}C&;ey;#)m;HkecUS=xbrlKEsFK(tOu5TRFs>9}ay9 z{`~b?o+#VF%}Jf<^L~wQ91)k7;*H1@vkA47{pflK-XsadQR4YdX0T99-S({ZVw~fn zhfy#6PeI?N@sWuF5sv1;hayGmOqREzeF@)Aa6m2mqPadr#4;;EK!E)?@xT`S*%lqu zyQP=-RFe;eb*Zw?VpxClENcFAYWRVPm;_$%&d#zwSeU218E+7Jz;Trm zAA`K61aM1Q1k|5b7ZC*# z#hBAn@zIat*Xxpd!^sktI6hT8&*+K5l~SODNzxS8j)Tj zA|f>w1gQ~`E=B1rQ4tW4CIZqDdPJH?uTkkW5_%0igiaD52`O*9e)qlZ_aAuf^{i)I zU-%HtOlJ1EXJ+r?IQER&bx{rJ_AgR%S2~mUbpHzge`tTty;bq^IbmM=-lXj_i`~&z zSu;*B(iv7Lm!~v;$>1b+wA`{mz=>B&x(WXU!Vg`1DDaXq|6OF;MQ>4!qjiLwPTmb* z2Ma=VJzW@68}aaW%d?Ml=Y-!{2R?ZIA9Nn57%_C$T1R5ePOjbhB)4{H;5jCZm*CmIN>vk zvx3j-bfpK24+a+Kur^Irr2V5d1v}dl9jMn>%L=$-omotv9t~`Es0@Nib}V2$5OO=n zxkvXbR#-kT#2(;ru&Hp}dd#$2;Lmj7IV{R3N{ z)naYvOnb(l(A9Q})$jkXQX3H5jgkVT^Y+p={_<)6BpoVxtu(2>sl+N*!h*E#lbHX2 zHi}CAL$R0*ga6{_?Egblb?nFO(Cz&rZj3xcvS0@mr1O`e(iD3Bm=p zm3dfkj}%O~*lJ;BOiEW+MZblVmttyAaq&RcCat$qJBT~pqz>DnySP0Tr2hcM_%6a2 zV6>CIufRlaG@ZOg;Kq$II=_n$fOipc+8=hrk43bcq4-<#%+2O;jbM8WIKFN4UVZs& zO~%%s;yqc9c94ETIo26A6&;kzv%nnt`&I5ATVIxWD9XoJLB>UxYSW(MSS?ff4L-)? z?|x6(7vK+k#)296&aN2$V@G!7kAIW0=yYw^huQW7!KNA3iAB(jI95a=$NV{~UYgL# zVn~5baev{7CC5MNv8{h&le~z5NwsGTMGxnsZ1V{77fo}~EDQtUaq(}+)zg;+()C)n z7i+r(yvCH3kr|kp`kM{_CuKa>GaV&>O-YLNV~aR@p8aK9N{U`v>*&pAqAap`W<5h@rSG45IJ4vZGl8@`n3$)!5>`wo1T;y7(WCfc?XSyX_Vg1!Z_snz6Z#rm{uer!PHa~g@U*uz1@KOA~pS6jx?fSgaT8gYP zwK;nzuMFdodJ{gjTbcY#>d0#!#URl~?K}eLiwNvp7n7oh48_Yackh70*)bvBY_cLq|&>70Hf{fp(sfPim!C zqd&~O?#=Kkn>lJKuP}C}+pM1#CV$Ce@1nDUXOhU6ans4Kj@Q3OeU@1TC&ZH79^J~- zGwj+pdg*!fx8oAj|2_+#I(SzsD=qt%*h3aRFu(+h|f|7e@6-qUhzt`NZer?rA_h5i3Kz{{dMxNE{YK@%6QG8cPa8_g+t_BGd= zdmj1r_;xQ$g;x|;@bw?mhJKCUxxtGO4IqxQU3$J;`9FR5OWOTcABczy{&zRR({G#k9u%s(0q9&rtLlZZEPP2-$mmJXLkW_U~Yw{|=S~0|Pub5@3~5cNkr% zhf{yM&7_6;{xwq3yDv;HX@h>_2T?5gCFMYW5j!E1XSlsw!LHER>+<(E6m`Ok^H}Ip z4)dkedj`^G&fJ$#q3|T9ZgT%Us~+y{jD$sB4@U?x3NqE>xs{}m;N5mqKx}i`>Pf*# zsNvR+#_kmC(BJ>?ky#kG2y45$SM+AI#7d`v1-gFnAUG!8@AC61w_X-)A*4N3l@$pQ z&T&=0V8o*mD>3yGdb~Kk`Th`q1<0`&Sk^#Ty!A8MF#jnq-wkl=Up>V$#yAL8U4j4m zWcAVg@-NH|I(Ult68ZkWMHOW?wFq7;dXRSU<}!9lY@UKVn(Y${m2-@+=#JU>Z>6Z# zx&IJ|kMzF$%}^5sbX>VzR{wxt-{lkjY5R@_^8=1`p?q)%Q`SQ4Kb#^b%Xc3&W~Geoib=%PiaBHh!%o88I<;6(*EQ~2hW-3I z0znQ}ZyI^7CxtiZq|J-4V35@Q-!s-HY7|2*sw%;<5e}+(g0Y<6d|!JPo|9Y)rDj5soXbFL06Jay}hL2C0EX zhlQ8F{$j(K>An%)cmCTz{@Z^W_}2#idwvl8BV%Us#w?%4M`ss>7SHf6i#Qa|wKABq z@@KuK_-;0BPGOZA$x|A2dTczqwJ1q=kDAv%Z}E>OjS#~Q z;&oJ6qxAY*e$L2RIgj_y|9Y=E?E))5<0^YJkW0$xFDIVj`KFhuPF>H_+)g2IR`fyHGKOBcr422bZ)}##(qevo9N-*Ji!X!~g4+`Cs#>`vlC> zpPuVYk65CSeBZiPXen+7WPof#FN*ie_2_qlzilZFHWLAFr8okYlA1)6IN50!?7-`; zN0oNdlFfl|2Y~vNO~r`%@gW|g_x@D3aQL}Yo1PPG<2ekL8UzK0%lDfeJiOf)&ALm- z*{IgKR6@`x`XA*5`pe9qQ-715#>pMofAk8d(9rzUHC}^{APmGnm_=d#)odLk>XlWI z1olK*8~&pZtEs6VI~j+63ciom`%BCcrEW0pxgoM`PIqoBams^rFB&F=#CE9#i>d}lcE{TqSx{!VZ+PisRd^D+aF zMqy9*;ybAAZcjO=n|Iey z_VRH&(rcy_Yu@Q11QHeW9^4g}-Y5 zidC@NNDedq-hafsxB(*f&9le^L?69FPcuBN=iCPtPoOb7E{Cqpo3eCGKMQyfmVbCU zIlSq`mo#`UM=-^>iO^E1&q(-KjK8pXZOy~3OrueN@WIw%MapwCsb(*hJo=r-I)IIp z^{27KQ&L^Xw{l|R#Uc%Tj5qyIIPZh_0JCT+@nXueXKeOY)8^PR@O^@Y3Kxz4JWVx! zaurrl+?V>51Jv{`MT>z-U5363aWJ$CNIdkh3N(1B&~66)U5D=M8G>TPVRYa>jFCn zmYI>{_nYkuAbWDz@abf(Th%Gc2uAxgIgLKy&pT|H5pDseF5ICTUxNv6K&;+J*l4#h z`Od*8M;zWJmkQ?A86sCYYN|2xRCiJ;uKG{1uM|1u8Qwmy6T-8Hu#+9AQPv1Q_3&^J z{lx@AFkyuezK`z@wC9}{l`)zBv`QB&r9AjEz&(Wkf35Q zik6N3sWS&VC)EPyPfai4m#+4Cy)YkGKx-MQb8G1}j2itJxuEgAXX;hp8)n~NxQO1$ z`hgyvBsj2ptWF%BH{RFa+|rz~lA5`;Qs+*?ym{CPE65oKm#mfWwmkZJd7yX?vW^4Q zgTpA3KAYQT>q8c_`ZV`WPSl4=b$mhSZI8(UqF*rEY+>~(Gx;1}>D^@1PE+h$+V%YFH(2 z^@Y)aZLrbQ@fM%S+3&|@@0Uq0uWMDriq&i)LmT`tPVnj5MU;x(2l0c|PSe42ZO$w= zycRpGHL?rDE)CY}i({MbiN{T4DFTJ_`hta#9cCtf(%7NQC!o=|$1u-}y~7fw+Z9cW zuPE^&Vk4(6gfx=lmR-IFr1zt|-^ort$*Ri)4ve^KAg6EYRs_6vKZr6bnq3(7{P6%C z&X@St1tFW%!1V>>y3bDM12qxmrtF|%b6oC{zGa;+UkUc$oaR3HQjlXuw@;?8*8bTt z$jlvO)vN>MGR%?)D7(neZH1bg;Lboj^}n_%d_4@UBXY;lX?v>& zPTYe_QpzjS2kI{LWEm2kE!{c4825+c@%BzBEFdv?xeSv4uqo(K7I$tTqA`0y>CU)s zC(}m4cMD|0PifiGjhO5}RB?>VCB565dFGxMEmu$!HDCzP4^; z^LH8x9u|m!Y%)eE+w@_4xa4~@R&Ql%kHQ1PilVQ0+SK1NH_6DVF!vlBUn44HSnJCR zRAcPfZL`GvJqnuEC=E9LqFyL2qC;;G;%H-J}Si$318+24onyy z8aiKM)gabXbtM5K3;B*(Uv*FT!QXjAkD{C)X75n-l0RT$N7^IKT&tg!?UyMOJ>t2B zFZ`Kyv}ZC}{5^9DJs-~-*hU&6oi-*M!AZa=oe!&8=i1PQh8zlMv*GAR6;tJ1MrMS< z#f6bvanr||5Vs#sPM-R)|4UFbMWxHB2PeIgf=&fZ9!4eD*ZQRJlF=K}h>2TnW=5EZ zBp26(XX!oLE$3r@dDY(HklvCdRF!_oH+FLxL_F@ycg^Ija!Mz`6KlkxH_DIpJhPy@ zNG5CCW%DQssV**n%a$SGY48FU+dOGh`)76yO#2|RZB%o<<{^+!WvHrk%KyZi(avvQ z3GuSp5v|`bzMUOHuQcmGd1{OAe`KYu#l!GDTpD=`W8GpLh0;F(F#_Em8wrQkkZfm1romsBr8qNSU`o+FN$<}%_yAvoH&6cGm$(gYL<%VmFC zohyk-@g%Z&M@fx}Ak?vfhM?LC6`cwxN9UG_3wZBQ_IvoFdB!`aa9!K$vY|GX8Kf*h zW|stmM}=m{8k^a6R}~6gzH4O-jt4zwtfvI{?!1<|=#}}3r?wX{x0uJA%0FFd4b8f& zd{c+fn?e@nCKR#TdZh89O^7<*`LzI)>kl7FC+&_vLJ0hexjnx5;CG40keOE=Q`O|g z#R-bOi&~k!$*EUt@-58dM^+NJz7Bo&aCz<3}&I7gAisHe{P$OF1gLvE3$Cawq9nyCGqLE7qL4NDli1 z%DmZU|E99!WEYG;^)E0KNJxzLd#ePRCG2nM3yM8VN6Z}q4fZBO67wVyLd`sYWT9pChfzJ3eJVSVA;`R7|)t(IUGUKX?1S588m7!prKm_J+pMA@t^ov{aX83s zKSCj5w*YDBdwcguot~(TmQJeGOIbkoQ@M((bi&6$xsFq*4XW|qHqH(|(C&iuWV{zm z>598ARu|ftObAhXx1Nk|k7J5t9t<$`n5!dvDuep18-m*QujI zF;cJcT^6q_}rw=ptZ%ZD!uhH8NbRYM4n9cn+(JjDquz}ZBf;Cb+AtS9-z}<%I@QQtn)hk zyMuTW@`&4y+Tfw}&>P5P*Kz$Vi5JGaqaueLSg(EdYI0KM{l`hp#=KJ6+Iw1Gau*2} zW`4IHKh9CKC_Z|Oj)<9W6kdii<@V3=w z{VecMb~Cj6vzLx3%T$ShsZ;g1O^<1FibXE|Bq~v9dFowkWI)>$j{qZT)GKLj1A} zs4)5N%E*_ zN5^=#o$`AX5M0e}1FQ4%h@^~{YAn=(bHmjYKy}Hy$Ppf_*ubR&sgtEwLK&~PXvLNj zx0-?To!f2Q-rlMRel5N_T#}KDoB#j@>yAo!#hao}4+Eu;KBgcBXK;J1=x}p)>%`{t z*~uLraOUdl+us0b0x@K>C&abTWGBD57twbu?&V;JM+FUh^QnH>=FwB?NoV!60IJoC zk%wV5V(#x2L{CR4hbcHcO+}$*gUG=({IP82ElSY4CPbfAb!^@OmMPrSurM0shcZGD z=N%`S0(FBt?1^4#9;!~VUw4W4dKu!6uH*zIY5OirJZ!NaW)PCxL3HtG`LSCQ7jk-i zqr5fQ$I9Z0Wn$a7O!AfKAf}=kaRY=z(Yh{B+Z!}M^SG z@xw8hj5MiVvL6-^Gac?;poyeKgHvvL5zN-M+?5JNSsmmzp$o>d1rekuf;2qcuss%=q58BcWFNJIrjY| zsxp)UeeePwfWPylMS~($Cr{x29>avo!klD@MijX_7I^61)v|&u)g`rSw)6AuZ##Sf zXC#S(q{fGLUD|Hc(?U7~nyLPBlc)vAym|&%bQ`9`otKa^ zbdpl5f$(pcZC{j=pqOjv39}~$#=IE|IAN6D8hWj+t}@UCG8po-PCQ}9{wGbNe;I7M z_ai?DBU@O{+EkLVE(Zg8AKdJ~%lZ$jk@g@A(I&UYmYK}Vy z1Mh@R8PeE}$wtI4R`hiwD7CPit>IxXA}6DI`JJxusy&@T3Ls})P$rn{n1^2;~az6|7>MF9X)lAC&G&@p3G}W7bd447e7+R+pnVm z?+m#v<0HdfJqn2vTNzkGTZjYX+Fs4c+5|6PF%5dLg9ymM>5U+&Ds`}IE8n;%P-FB` zNXg^iR%(ju4&b$_A(kEuz#KU7Iqw;w`skkAO+UPo%?wZy?A1G!wIduuBWN}Mc@n+i z5{r>MeJeS}r%;)LFbU7`LG^+Vw>Qbo{fN zRw(Z}k3&@R ztKb+zH2O%7?~2o>GTl+*{J~bF%md?;BAd6|NEOvS*=bw_e8i`7f|t?jVEuhm77K?L*zDSt&tLmFTl%(VzpGO>@fRtu;SQ9W*lxb_Wq` z2MVQhNmwR{>d!A*a($$lntN~3`j^|UMfE8K#N1wk^oIHJ zJT3K}`Da@C@((<5_9k8gM**+$Wf+p7*2`lLA!@)K`9B9BIHKEoC@BPTd99L={3R74 z9eNcFu5-T!n4?`@vrHl9fs1Mi-D<^JI{U?$Rlg<~L!V zHw6~!kS`p%N6niiCMt}BlqB_DD_Tf5i!w4cr<&8-6$5q37Hv`?Jv2S78q+Ux1=d~XKcCNL_&fe2HNv+DV;o_6-_5hg#Mbb&cD^7C3WYCkPUWj=bv-U3 zN6!jPK6*&95!Cf^{EI)_l6{q7GqtU~eAQMe@~jfG+tUYkG?Xk1HfZ*b8W9dk@CzY4 zBCWUU2fet^;rcA9R2YWnZ`={8uiVj1o7@eA7aL)kjVT2v;gcs6wH+Hqe_o(eG(ro* zL6a0K1=xXPCdfOsKT`{g?6*a>83#LWL__lV{7ZBAs+W$Zqu)}d>co>h2CJg^RtR<8 zKC45=>V5p*dU(>03I(_-hc3;EF~Yrs|2&9bOSE%}lL`-c62(}9*w$)u_{(C-TL6E` z?Q!^CMQBCm)3gX$&yssEA}5m_p0Cp|GFU1jMbv?ta>CBOq@SN|@c9HK%t)yDQN?W1 zack+*t=vukq!X8xFKI5lO&7oi$75v~A-0J%h3b z9;=0tuhSRHuzB*{Z1tUqF`v60B`@w1H1^KB2W>`^@Sy_u!Qhd+ZqdgF6$6RJ!ol?1 zV;)5{KpdJ*=2z=MH8=Hf#6%9dIST+~$0_Gwo8Zzpbf_<7%As~v@3lF2V5*H9U$WoN zs??;_5u;x__iYP&GqqnXq%e5NAlGR~p=Pgg5pnGyZOGI{hC`KIO`*@U`i0*@!;fvE$8jRl{bDP8I$ zV%tig`b91uilpFfp=c<85u9Hb*^-U8V6FUoFSsu`it5e8S%=Wi*#sU~k%Vh{05#OGl&$P--sXSuJ)zM%mgc%Jv{m5q0X`uiQarb$RMuL4WNDD)@2a4F$89=WG6VFXAG>1TI zV~$s>xp1Q%+sTw&Oo+>yOxvaq<8n<t#^S|JqsbHjKp$j= zCIxv#2*I{4jC*mESl1-)x#QMS(i_i1))`!-2-Kn=oGH)@q`qeCGZplU_5`!A zltgn1U(b*4`-gXt$npJ^O-=?aF65q*tZnY28uDR&tif5>gPP4KrpVQ5#?_M#^x%e@Rxp3+#&I*j`|DAx6bwrBn{S3`d;jl)BG?K?gB2FXdbhIx(6-} zmZsWT?>9Tf!!K*W6A9_p%MfaJaWGn_TFtU*eL3BM+FSa#($kGGfDryb@nfW~2L&8U z+B_L!WBU0`@AI(#d^2mGczffIV8sX#a+l zlP59yTK|9*7IfQ_u`SJsfF>z{=+dEf%u5r^O4#)MxR~aSVB;|KY;Fe#t*EtF*B%-~ zTvX6xu6kE8$2*+m!S^vGIfCw9iCamYf1*Ti_<2f^f^xk!5(@%HqJrNlg)aHK>~GPv zLIXRFY9@L%*B(M8#A5e+Hc0yQuLue@X@G&Y=#&-0BsRN8%8z)Yo%yDj5!Hd;hdfDN zK18wXfb@whf$GX^nzfZ>ZL)K*2l1O_Ge$)a%C!y4hEMQ&=wLGXH3an&&1mjJNA?d| zjV^KotA^2f?Vq*XO&be}=hCc+YunL;xt6T=$xV1oY)lDiJ>JxVb) zkq`00uI7Kv_iqMm&Ssdc0nN zqS8cYOTqIq&SLwA0|$P3*}+R2i85+0*U!_pM-nUT_Mz1I6nKt%`v`M9i))v7Es3K2~#Ehz6%qG#FLj;cQ;*-Tooo5{RWTv5S<+qWKhAo}hnC^l}gc}FG{3N(N zunL$)X@>=y;}?e|>eZhZtNRmaF$Zg>3S~suGX(O69)OaH$3t0j>cTwk4i3NU3!Nl) zP5Oi(5;!*nk;>fQfd-_~fF~Ud$p?nSpb_ZM%uJ~X9np_LSLC%Tmnd!_aUH4*-~QcC zI0*TiJFb~tm^tO|=y68I3l7`3-b87)xTHyxbf0&cf`oiP1p5&hLDisRm z-}*qjbklxQ4ZfRjHx0Bc32>8X`fi^b*9!SS^uJmIB5O6l?4oQN%A?^hC|~F@kGji+ zn$e`R8j3S(4i|X5q4mC76PRjB*!1q-@t&4@$4a_aHqN|zJ7py?B?rk}9Sx!W_quvK4f#59c_=|k`M z^YATY$Zq?CQdXugvT4g(@=zH~q>Uc!H*L!NA;2a}eN+}x2M9^*sErQ%xG*FR5jN-* zGbgBjtI06sz>4D7RX2I^+iW#Q$SW*ngGMN6=CFJBJ z^Iae4VcpBrO^C)_@v`asLG!HvTB8W;z{s7r%aC7f`q=QE@{@Y0@B{k)P9eJ`q-<7hJ$cOB_M_qDjX2#qM12P6%E=f zS0rIf?yv-n&h(a^DFAptnMpHdom`bsO@u5p+Rf|)vU8o5#Dvsz~m0ZepMpP zT)>toYcoSWHw~Sa*J$oL150X+YyyvhVfS#@kT5Olpp5=9XtEY_o-1fiAIc%392Vjz zQXjnRUhlhlqsi|;zrJEsAI|*(nQ3Jv3PNtycM063l>AmMo5~?}Z2ei^GuCJZ^}`b0 zqm(}RC8dqjuAOgq!BgoqCsgmv2!+Ge^Xo3e4f1h$!AB~|4%T0ZbElbqiWOGX)r*B^_xMwy8CRI` zp2NHo^})c6U^vQtqB?>+a5CaUB8gfvlgopnG*~eh#+E+>Rd=UvGE6)I-a7h0 z-!^amULY;uY6_g9WVv3!L#jPYBqD$961_hjW_9Ht0^sqckGvC%8cWa4FjY%24O<2fd%} z;k^6IQ_HT%EKZQ5H^%7K=o3!Le|lr0eU{ZjJfyh(#B|u^lnGB6ph0z?)@Gjo)C~Y3 z`@U4KKt3DGeL;FV5`bh&U&ik>VDle&OW`{|q^z`sTCKEGU#AL8K&t zvb;57o8>xSLhI#1BsU<@zm_IM@^MA8O2J7Ff^bZ#lh1QI_R#HKW+z8*&7ZC9-?rlq z6J>Th%Eqd{Sk_z~^1OKJ0{Nl9kLx;Y%#kPL@`{cy8?{0`sF>N2_E1% zSZY|SB3;9Yr1C#)rtVCjK#@Vyf@t0T)H0?((0&sS31$lumGPiglo3PE0X?eZ6A}7! zLi;);-Dk6J3$tUNvJ#_y5Rln^m^x9mkzZ2eh}oB;5b^LWy>F1_HDSWDX%45Aseu;K zT%CXq?JDZK3DoC@qm(<8U=ifX`UQfXmclO{DqghQSc%0_i;}r8~ECW#px8@Xq1THBazh zgGT%G64Y{wS({n*1bhHuO2)ke6E7<3rf+B6W7~;eOKH4WYdDI|%&Umx9%OH9pKDE0 zuT<#68ka8Y0vm-F3q#ch4d0s);|>-0dQb=35j{Ik)H2k;(J9z$K%;ji^KH*nO-eX= z5U#_%!q3pAMpy`@mpz_29lG@V(n2iZqW@lZeCf=b8)HhFl@X#-^^AqhXUMXB||hugAa-Hm^%Ag z$a2=xSnN?c4(E9QK=L8xoP--+%fWAyhd2Cz(sct^+y?#qwYvH zc8XSn{q8kvjfd=7f$$TM(`G*{tSmIpE4mait3lm-p!RZ3Epwi-J>Tle>VJZg=Fa(z z>4R&U%w9j}gC!qI^QdiM*??Qn&S?S-rs5y9i6C212j;v<0H_y2Nu!_GP7irud#Axq z24p|hw)V67MV9y|F$c{a%FIvLQw-`GVP@?Cy#?k~HyV71i|Qn`xF~gvoa0$G*m4bza9UO4h$5RiusEhWrg)8tIamP7)QgC;Wu}xsCYEYu=_P&n` zKc9Iz@0!V0R*44cU})5KkurUJLaxg#QWl<--srcI$qgLXA$t3yL$2#eDGhcTH;}!t zV6^arj(Y8t()8LMw0b{grv*R|+`Vp7+p+P)BuZHocZ4Tx3i^IzQ|%6lg5e6X+lr`s zebL??dtqWE0~+526ZP069HZW!IEjr!)GMJk-tll^8#V)0FK>+3#KCb@r>#bJo;+9u zyQPuGiL}hM5Xj57{TW)ufQ)(r3~&o%|7%0cJVL4% z!Bs3{6&t<-hMu{$=C~y4{NpJ^II}C~dFt>SyThv&f#d9~f^IZ=jCGD9hfAFuU`OXr zpjEE)W)j4`7*Zof|Ilx?4n8h^|6+gFhsqNS2sBAqS-GQ(iMrjvlC>xnnGJZOwOW8* z7f%umxT=#MJuUJXlh?AOOXv>=5O!z}zNKyS&~R+YWz8m7`dSSh!T@XybfXz!8w~2! zfafN}810E;=W69PT{1q&+=TpLSBFKG?ywDm)Kqj3&(7>cBq%y|bFGYY$)xv{=SR*@V!;tqB zH_6Oh$QS|(YZ^Fh84Xs2GUK%l3i(#R&Arh_>naSWRVnMA5yQJZY-(D_;FKApfD`#R zT~Ff#;m*$Lv~Iof7bDMROX5Z5v%q~KX%)9O$N_f8MQ-#cqzj+!MS=!jZcYOR*8sLA zVY4$Ys=Eq9O_)3!KR@?4Y#c*+F?N$g+V0zOC(f3*kzP z@xJ54FBBnYxdMSqA z*pN@QL9X&U+=)FcZcK^ljWSASV!cLfN8)pMfRMTo6BO(@cX2dn2?lNJb(XVq=8*2{ zeYyU6;f4>m6k#_k9$U3O^V_^_X9dAHsAiTf*&jy8D2)+0~SofOd8njif=ZxeauZt((lF|`MUq6pANx(<3#6a zgFvo5?H)0~Z)o#`^R}dKvC9!__X_OB$MZ65iejtS*6<^D+&uT?Cg@rlw#E(Ixl><` zy=dyK2+frrzr5t?ssH0uUrzM7_UKy(*%P!T#ibL6z`I#?PmJl0rdk4iZ7*-Kf4^Wq zUHwVJ;a#9}G~mACgk#ucyPjYEGbMtS?VwvF_Mw-)hUQGDeU{jzUs5#SYpk=L3SAVa z*G))Ouj0(w^!WY!*hMx#(}{P91&368EB}Be(jHV+e=GfU!NDeek3Lu=sroSMMg8MW ze{(J=pnzLvAdScYle&061$h{n@^}RwcB$%|)_2cyho=L)?aq@<8RSh(ntu0A|MVUq zw5-iM+^PBJVbQWUH|g}{V9vSbWjt5UYw_u(+bcv>18kk)m=Tg;M@ z6P7YDpV^O5AI65vSFiDH;iQyRt?$OUlhl&$*PEpa7}^os)0IcKMoOnbzVDpE5xkcs z;sQLMtru$2t!{NUebZ;;V{Sw=r-sd+JT||26aIvad+2EA%7V8cAr?F+cgP@0+xCQ{ zTgCWtUdfi5{upYU_vt~t0CcejHcZ2PPUO_TKg$dqR2Fqe9GuQtHbiMhVe^UC$4nuk90``DDp~~c_)#! zDCkOO_C~KaMsK_<>9Fsx?;3vBgR*lL+Bj*{W3ik0oN1N0*(N*wH8Mu(+xnhkzsUp1A2CstZWUn~NLn81=721x z=0Lu>cfIXK=``}gXY-6==TnY?G8tk9#5Vj|J7yd@MQ+~tfJ1sVv^;>8X0w^pnEx)m zUm_mul17XfoGHHHuAOVY_+GK8hkCT%A`$aVY}M24`(|@9e>djhTm)7tK5Izk&aE5! zI|s~WBH-AaJvr&X#J;#8wu^gs4X%d|tb8u3n`+gLT@u-6KBt(ElYsl5znyHK!Cq>& z{ah&yEeCfU_G_Qv%(QQ!$Gn2t6&V()AZyJ|vNseXXF`5Ro$TG>C`G-nT|rtKUSK@# z`#X9Sc$l=Is>q)56~y>%JF|*(w|ctp+`9QYtu8r}Iliad#b{fqSr*c3SJrZ%XQ%h8 z%lcEN0@@%wOpq#r1z=V&G9AL0&5RngX_KLOaW(q5PNvr6b#xd&!eQ%hQzqc+HMDRE zR|=k%!tHZhOg}{vmb<9QzB>?mIsfj{Ls^-{b&DVgm(`&2LlY zGYGGVu57xlYjxj8;CdLP!qlMHAwt#e!fb2z!yJlyJmh1P5 zr_xPp@|z=n3AYlw~kyqJ7pYn?c>WfMMtFH zW+#gh#dw)&+x1iUW|)>qRmG_@YKLSV*YBSXvmDI2Yd2_hIpg4)_?knvQrq)Gy{}VU z-88rsG^Q-S8BsyiwCg{#ZHkC->uM21)w)MV=x8C*jf4dzTOP6xs?L*2W5N zJBZ%B{sB5)-h6iKz9SCkw&ZUBb11%`^D5e4ZA!8Bd@;?Y>qFe>_&0Q`Jh3U#?*-4$ zL*r_)^;%Nr_&x%A9=U%mF>(UN{;07WV4y%B-$?0oeI9?dJ{@1jSHw)hE74AL`!0Jg z6TCSID%(8E1h$~ELpZ%<$^|z#>}v(zrF>1$W6Y)wRbP&%A=G~bsK!m%T}M5k?zvX_ zH*g;FD&4DEh%tZh0%q^@q@BO2rrOB;;?&kKsmS~M&$G?mn`gk}+j$8V)<+AEB*6X* zzN7vsepl}IBbO^{S)OXZN3FMu=}kQ$Q=k*j1Cks*;=C?>r!4c5gX#*k_{vY^0+d#) zv0qo=m0}D2<#FF2@{+Ra7tRNIt8QwaYjlC09Cli-FXkfkOGf)w9;6g`NN>ERE9i)G z=f7Y1#;f90GP@VHB?G#g?C@G7?9k<)!#At=bD!EHFRcYHniC?P#Wj{KNR&q;5Cw0|gfuO#Zw zh>FjKqpY|)A7G?*EK^d>ZOZVF!D0N9YAR=vJzPhWP!q_294DcMpys%(8vJ^$Z95-D zA#>~_jO~u2aoQyvl-648^ae6sR`8Di|BS&2r5$YTi)_AUAN{7Or^J53bt%G7V;3tP z({tKdhhBZr+d0F4Bbs+7skdHIT{Sbe?t(ce{!&uxI_25F(Aa-FTeTPZLQ{D))c-8 z1^JmgZ&c|cdt?KKv3az=UgtxRW=YxFZQp8TUDyGX>-EI3U0ZU~#IlHK%AUMX=ZTSW zg}u_);)x>k-mdCWWVyN2jXg#r=a>Lxu;z2fp{Kx8B_}u{YvvAr9=&C2m){ZCHfGs( zN%@O=MHTPeBeI$6X5J2UaO=7fGlX?a>-s=fQ@P|sw>9gURZV!;RDexk#OhYIPWPX$ zkopjuu0 z=6Jo}u~*So&@kiw;b_5T@{+?5`jZh6BXL8__^hg^SBF#0cEYEJ08>Ueww{I@xpL9CZ_|azt z-z5I+o5!QcmACCTF3QNyXdHQV_D!N`BM_`Q-eqw5CnM6!wcF|aDc-|3eTPiHzzm zv$8*-W3-RIKikm@TQP6!o%<>PsPIdE8Te zd0hV1Zuq!`@u7am+oXP(qi>}T2|&Mt>hE|&-VwL)6yzLobxVTN<~THoz2;7|v-D{< zyxI?$do$6RuFd{d$_#Q9y!M58aIf7hx>c39qb1#(k%er5*5mik|{ zanzm%5BB8UAfsF(z-gb#oe#!zSW8?;d9yw8*rR6|wx=H*sJ!;Ch$~7vHTv$Oyzc~UNT!^+%{gUV!xTL{(1miO}y79!u{gs3@B#o zVld2C!{XQMvGt-g?mQ1qOqCQPgxap{UtVUk!P!S$9Vwp5Nvt9+dUTeCczv!)@h!RU z#_lHZLhHMY-3&j97~eX3eZUs`o=u^8lcDb$S0Ve8w6ZL8;;g{lrwpSD$;IG0QdncR8YMb$6we$|4R z7|+^JUt!Ij1$~PZ4Z2NLjArYot(O%3R$g!BU>x5&>*M5g-lO>eFMf27uG`(GZ+`b{ z!&~j+X)hf|Y73JmsVQX^3x|FM&3Y|vI;fcbx?4*gP_pY*-BD9247s4a!sGHMo2L5s zU2cw2Xc~1{a&cXEFGQxwSF!<;t8}YLGcjTSQ8ffKJuGL@-EA^j`s{htWzQ>03|u?P zMl5sX8|LZKW1HIPvL0|sB^?R)w!Q7~{{fCbalh@O3{gJhjK3AI6pPa%>a49)b3JPu zVA!r<4^7Om#vLzWjVob|TUDf+kueuE*$Yu$9qT(Jl4Xs9nwmF}h8*jAx+1e#7qg;O zycHrs?r>X12QdqaY+a4YZ$DBUxRy4Y0dcn@hyr_ruvEz5vb1L}a$%5JCG_U#Ja#u}Bb;@oJ<$<32_&a7*b z9km*2tpe8`8ecRqr zA~MHINjO?~Aj8eiXb738>d`&@v0_o(lP(H`fXOUNXj6znkgP2LV-LT-8+?zy;&3$T zsjN`*(XNxm9EsjG3k#s=5IVbe@N8)g{T6aF%SVPa5e=R*T;N1RdbvM=PUReu(^iiCP z!32SUa`7_jZjKVrJ?-CV2sZ=4C>cEw&srfm%S1oGaa*5nq0cvM>hnc7!v#>s9#-Fd zPWp~M{eAUswdTfBtapb^=egEIHlCccG4`6s)FzUTVGTBpdKTL-pDuPe$IjSm9%6ft zEnE^~8A@dX@?B<7n{aAD{%jUN{cm`EH*M?Z&8HpT&8OL{&&c?s(1lnMZJp|gC_o}029iKlgeRJ0af$jUV zy!Ok+k~q@kb7`3HHvkW>qG z0PM8iyJl@_%3QKF6_}!uj1WTjjIncXRz(GXL;x`9Cr>CFz-F#-Dt8?L=-8>UD^F?5 z1}$deL7AMW%uqI8^3$mNUB^{9k}BhQ@XHSX zIi`fmIMr^%3T&*A^;Ta$ay0M?45PEK_1=0kuIA2h1aUlRM#t39GN#qwPcZ*+|k-0AZ_1K68~N0(Uy9UgPv&HBbO>%D&cXsv*bgN?U1&Tgs}jGzE}8_xV1 z2LRYG(te>7HgTu2F%%%{tzyVr9U$Z=%!41FUzT?Q8=0T)$Lrk_rR@u}|8p8cf3M=-IH+8l7-9ho+VX9# zUIo~DPTdw`FTh@lu{RzitpWDhp0>G+R!VCLZOp*t(~j@9Pv>{%`y5x<&aIc)cCtMAE{Y|Qfao_1Vj`*eO^ zyTz1CEPpXo53M>_M_U44C~PSe@1DXw^*{`M%5VBFfYRDVfdUa8lY>>~sBeWa{C z0KSTBfG@K)I-cyDvg6!(4mO@~PT$cJ)~~f6ZM+4RF!T?z?6HtFT9Gx9a$*%jlo}(S z7#ZAlxsfLs|K7OLM30R@7;u(h?ESCSKN0Fh%j^xC8{74HDf`-(1ik!Lp9iVgce#A(14@7u zwyE@{8txEo+&3r}Mib zHS@`N*p#)@r-v6{=et%f&m*rXs&KoCVYG}w&tq0VO!I5N-Y2E^^<`tYd|;qF{5Pjm z96hfz*Dl@t(^tB8t6ulVVP)B~TWAh+wmkhs{m*u*y`Ld%!Z5T5 z0l?tsgzBfG0278NFF61<62cr?WwGC2ec1BlIP+)IH+u_osnvHIbot|Y1?=0UxRZyJ z*j2 z?7E5mzb*Yu8FOUII*s9V0j91Yz$?Q;eOewY*VCFYoqOb}%$*r3hUGRKgI~Bm1O!pR z@`u^k;JPfXUn3YKOJ$#M|iN04o|Dq$~d≦QTTK8`}vtH}= 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

    ;aup}(K!-LEpf59K)Tu~El3zWJW*vZ=F% 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%0D#gH!l}^R0X;YDPmk%_bs&Qu5kc8c%y!&Spmx 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%0D&&-~(ffi@&ct8DrScxN6sh#*k8&#C)T_% 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 a0FF`TV3}U+MXw#;pY9Dq?Y!#`UjHvU!!%w1 literal 0 HcmV?d00001 diff --git a/packages/auth0/1.0.0/kibana/dashboard/auth0-29fb7200-4062-11ec-b18d-ef6bf98b26bf.json b/packages/auth0/1.0.0/kibana/dashboard/auth0-29fb7200-4062-11ec-b18d-ef6bf98b26bf.json new file mode 100755 index 0000000000..86e7ba2c55 --- /dev/null +++ b/packages/auth0/1.0.0/kibana/dashboard/auth0-29fb7200-4062-11ec-b18d-ef6bf98b26bf.json @@ -0,0 +1,132 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-c9215ac0-57f7-4fbb-af81-9f5bb365a238\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"c9215ac0-57f7-4fbb-af81-9f5bb365a238\":{\"columnOrder\":[\"ad18389f-67bd-47ae-bd5e-7a0a8a74ef31\",\"becf928d-1e95-4cf0-a37f-e4eb735dcc27\"],\"columns\":{\"ad18389f-67bd-47ae-bd5e-7a0a8a74ef31\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Top values of event.category\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"becf928d-1e95-4cf0-a37f-e4eb735dcc27\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"event.category\"},\"becf928d-1e95-4cf0-a37f-e4eb735dcc27\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count of records\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"auth0.logs\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"auth0.logs\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"ad18389f-67bd-47ae-bd5e-7a0a8a74ef31\"],\"layerId\":\"c9215ac0-57f7-4fbb-af81-9f5bb365a238\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"becf928d-1e95-4cf0-a37f-e4eb735dcc27\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":10,\"i\":\"1a13814d-17bf-42cf-8ef9-2dc599fb6766\",\"w\":15,\"x\":0,\"y\":0},\"panelIndex\":\"1a13814d-17bf-42cf-8ef9-2dc599fb6766\",\"title\":\"Auth0 Log Stream Event Types\",\"type\":\"lens\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-1f92a60a-ed7e-42e4-b03c-4a3fb37e1a35\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"1f92a60a-ed7e-42e4-b03c-4a3fb37e1a35\":{\"columnOrder\":[\"234dec72-0dd2-42cb-b486-059fa3e0a077\",\"9fb2da13-fb8b-4041-b60e-0840068dc570\"],\"columns\":{\"234dec72-0dd2-42cb-b486-059fa3e0a077\":{\"dataType\":\"date\",\"isBucketed\":true,\"label\":\"@timestamp\",\"operationType\":\"date_histogram\",\"params\":{\"interval\":\"auto\"},\"scale\":\"interval\",\"sourceField\":\"@timestamp\"},\"9fb2da13-fb8b-4041-b60e-0840068dc570\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Unique count of event.type\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"event.type\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"auth0.logs\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"auth0.logs\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"9fb2da13-fb8b-4041-b60e-0840068dc570\"],\"layerId\":\"1f92a60a-ed7e-42e4-b03c-4a3fb37e1a35\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"line\",\"showGridlines\":false,\"xAccessor\":\"234dec72-0dd2-42cb-b486-059fa3e0a077\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"line\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":10,\"i\":\"6089a77e-3c96-4414-9932-eda55ced3d07\",\"w\":14,\"x\":15,\"y\":0},\"panelIndex\":\"6089a77e-3c96-4414-9932-eda55ced3d07\",\"title\":\"Rate of events\",\"type\":\"lens\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"}],\"searchSource\":{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"logs-*\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"auth0.logs\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"auth0.logs\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"logs-*\",\"key\":\"event.category\",\"negate\":false,\"params\":{\"query\":\"Login - Failure\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"event.category\":\"Login - Failure\"}}}],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}},\"description\":\"\",\"params\":{\"addLegend\":false,\"addTooltip\":true,\"metric\":{\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"invertColors\":false,\"labels\":{\"show\":true},\"metricColorMode\":\"None\",\"percentageMode\":false,\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":60,\"labelColor\":false,\"subText\":\"\"},\"useRanges\":false},\"type\":\"metric\"},\"title\":\"\",\"type\":\"metric\",\"uiState\":{}}},\"gridData\":{\"h\":10,\"i\":\"5124c723-8890-477e-aad5-bc4fd529bd46\",\"w\":9,\"x\":29,\"y\":0},\"panelIndex\":\"5124c723-8890-477e-aad5-bc4fd529bd46\",\"title\":\"Number of Failed Logins\",\"type\":\"visualization\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"}],\"searchSource\":{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"logs-*\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"auth0.logs\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"auth0.logs\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"logs-*\",\"key\":\"event.category\",\"negate\":false,\"params\":{\"query\":\"Signup - Success\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"event.category\":\"Signup - Success\"}}}],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}},\"description\":\"\",\"params\":{\"addLegend\":false,\"addTooltip\":true,\"metric\":{\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"invertColors\":false,\"labels\":{\"show\":true},\"metricColorMode\":\"None\",\"percentageMode\":false,\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":60,\"labelColor\":false,\"subText\":\"\"},\"useRanges\":false},\"type\":\"metric\"},\"title\":\"\",\"type\":\"metric\",\"uiState\":{}}},\"gridData\":{\"h\":10,\"i\":\"cb337534-d263-480b-b6a3-80cc4f14d73b\",\"w\":10,\"x\":38,\"y\":0},\"panelIndex\":\"cb337534-d263-480b-b6a3-80cc4f14d73b\",\"title\":\"Number of Successful Signups\",\"type\":\"visualization\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-e7270679-c5d0-496a-9fd2-7409b402bdb0\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-1\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"e7270679-c5d0-496a-9fd2-7409b402bdb0\":{\"columnOrder\":[\"60724141-ecf4-4f42-b263-d12cd64fe1a3\",\"14ed1312-1743-452e-89e9-52018d6db787\"],\"columns\":{\"14ed1312-1743-452e-89e9-52018d6db787\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count of records\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"60724141-ecf4-4f42-b263-d12cd64fe1a3\":{\"dataType\":\"date\",\"isBucketed\":true,\"label\":\"@timestamp\",\"operationType\":\"date_histogram\",\"params\":{\"interval\":\"auto\"},\"scale\":\"interval\",\"sourceField\":\"@timestamp\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"auth0.logs\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"auth0.logs\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-1\",\"key\":\"event.category\",\"negate\":false,\"params\":{\"query\":\"Login - Success\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"event.category\":\"Login - Success\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"14ed1312-1743-452e-89e9-52018d6db787\"],\"layerId\":\"e7270679-c5d0-496a-9fd2-7409b402bdb0\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"line\",\"showGridlines\":false,\"xAccessor\":\"60724141-ecf4-4f42-b263-d12cd64fe1a3\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"line\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":12,\"i\":\"d00429d4-502f-41d8-8a2b-7300859930ea\",\"w\":15,\"x\":0,\"y\":10},\"panelIndex\":\"d00429d4-502f-41d8-8a2b-7300859930ea\",\"title\":\"Rate of Successful Logins\",\"type\":\"lens\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-4fc38bcd-1242-43bb-a213-0c6fe6e7a26e\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-1\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"4fc38bcd-1242-43bb-a213-0c6fe6e7a26e\":{\"columnOrder\":[\"56478895-2ad9-4541-9b3c-debffe3de81d\",\"d8ee79e4-d617-4809-9065-217bcd1f628c\"],\"columns\":{\"56478895-2ad9-4541-9b3c-debffe3de81d\":{\"dataType\":\"date\",\"isBucketed\":true,\"label\":\"@timestamp\",\"operationType\":\"date_histogram\",\"params\":{\"interval\":\"auto\"},\"scale\":\"interval\",\"sourceField\":\"@timestamp\"},\"d8ee79e4-d617-4809-9065-217bcd1f628c\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count of records\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"auth0.logs\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"auth0.logs\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-1\",\"key\":\"event.category\",\"negate\":false,\"params\":{\"query\":\"Login - Failure\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"event.category\":\"Login - Failure\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"d8ee79e4-d617-4809-9065-217bcd1f628c\"],\"layerId\":\"4fc38bcd-1242-43bb-a213-0c6fe6e7a26e\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"line\",\"showGridlines\":false,\"xAccessor\":\"56478895-2ad9-4541-9b3c-debffe3de81d\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"line\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":12,\"i\":\"c1a1b718-c5f1-4029-9fda-0cd7ed38b3a8\",\"w\":14,\"x\":15,\"y\":10},\"panelIndex\":\"c1a1b718-c5f1-4029-9fda-0cd7ed38b3a8\",\"title\":\"Rate of Failed Logins\",\"type\":\"lens\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"d6323397-e8a4-4869-ad2b-d48ee5b5a70a\",\"w\":19,\"x\":29,\"y\":10},\"panelIndex\":\"d6323397-e8a4-4869-ad2b-d48ee5b5a70a\",\"panelRefName\":\"panel_d6323397-e8a4-4869-ad2b-d48ee5b5a70a\",\"type\":\"visualization\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":11,\"i\":\"253f1007-1537-4012-a663-48bccf233f4c\",\"w\":48,\"x\":0,\"y\":22},\"panelIndex\":\"253f1007-1537-4012-a663-48bccf233f4c\",\"panelRefName\":\"panel_253f1007-1537-4012-a663-48bccf233f4c\",\"type\":\"search\",\"version\":\"7.15.1\"}]", + "timeRestore": false, + "title": "Auth0", + "version": 1 + }, + "coreMigrationVersion": "7.15.1", + "id": "auth0-29fb7200-4062-11ec-b18d-ef6bf98b26bf", + "migrationVersion": { + "dashboard": "7.15.0" + }, + "references": [ + { + "id": "logs-*", + "name": "1a13814d-17bf-42cf-8ef9-2dc599fb6766:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "1a13814d-17bf-42cf-8ef9-2dc599fb6766:indexpattern-datasource-layer-c9215ac0-57f7-4fbb-af81-9f5bb365a238", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "1a13814d-17bf-42cf-8ef9-2dc599fb6766:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "6089a77e-3c96-4414-9932-eda55ced3d07:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "6089a77e-3c96-4414-9932-eda55ced3d07:indexpattern-datasource-layer-1f92a60a-ed7e-42e4-b03c-4a3fb37e1a35", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "6089a77e-3c96-4414-9932-eda55ced3d07:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "5124c723-8890-477e-aad5-bc4fd529bd46:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "5124c723-8890-477e-aad5-bc4fd529bd46:kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "5124c723-8890-477e-aad5-bc4fd529bd46:kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "cb337534-d263-480b-b6a3-80cc4f14d73b:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "cb337534-d263-480b-b6a3-80cc4f14d73b:kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "cb337534-d263-480b-b6a3-80cc4f14d73b:kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d00429d4-502f-41d8-8a2b-7300859930ea:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d00429d4-502f-41d8-8a2b-7300859930ea:indexpattern-datasource-layer-e7270679-c5d0-496a-9fd2-7409b402bdb0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d00429d4-502f-41d8-8a2b-7300859930ea:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d00429d4-502f-41d8-8a2b-7300859930ea:filter-index-pattern-1", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c1a1b718-c5f1-4029-9fda-0cd7ed38b3a8:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c1a1b718-c5f1-4029-9fda-0cd7ed38b3a8:indexpattern-datasource-layer-4fc38bcd-1242-43bb-a213-0c6fe6e7a26e", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c1a1b718-c5f1-4029-9fda-0cd7ed38b3a8:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c1a1b718-c5f1-4029-9fda-0cd7ed38b3a8:filter-index-pattern-1", + "type": "index-pattern" + }, + { + "id": "auth0-187e7650-42a9-11ec-b9a2-edbe9edd14c9", + "name": "d6323397-e8a4-4869-ad2b-d48ee5b5a70a:panel_d6323397-e8a4-4869-ad2b-d48ee5b5a70a", + "type": "visualization" + }, + { + "id": "auth0-629b19e0-4061-11ec-b18d-ef6bf98b26bf", + "name": "253f1007-1537-4012-a663-48bccf233f4c:panel_253f1007-1537-4012-a663-48bccf233f4c", + "type": "search" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/auth0/1.0.0/kibana/search/auth0-629b19e0-4061-11ec-b18d-ef6bf98b26bf.json b/packages/auth0/1.0.0/kibana/search/auth0-629b19e0-4061-11ec-b18d-ef6bf98b26bf.json new file mode 100755 index 0000000000..3d37f68df5 --- /dev/null +++ b/packages/auth0/1.0.0/kibana/search/auth0-629b19e0-4061-11ec-b18d-ef6bf98b26bf.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "columns": [ + "auth0.logs.data.connection", + "auth0.logs.data.user_name", + "auth0.logs.data.user_agent" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:\\\"auth0.logs\\\" \"}}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "Auth0 logs", + "version": 1 + }, + "coreMigrationVersion": "7.15.1", + "id": "auth0-629b19e0-4061-11ec-b18d-ef6bf98b26bf", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/auth0/1.0.0/kibana/visualization/auth0-187e7650-42a9-11ec-b9a2-edbe9edd14c9.json b/packages/auth0/1.0.0/kibana/visualization/auth0-187e7650-42a9-11ec-b9a2-edbe9edd14c9.json new file mode 100755 index 0000000000..59f6851d51 --- /dev/null +++ b/packages/auth0/1.0.0/kibana/visualization/auth0-187e7650-42a9-11ec-b9a2-edbe9edd14c9.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"auth0.logs\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"auth0.logs\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"event.category\",\"negate\":false,\"params\":{\"query\":\"Login - Failure\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"event.category\":\"Login - Failure\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "title": "IP Addresses of failed logins", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"auth0.logs.data.ip\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"maxFontSize\":72,\"minFontSize\":18,\"orientation\":\"single\",\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"scale\":\"linear\",\"showLabel\":true},\"title\":\"IP Addresses of failed logins\",\"type\":\"tagcloud\"}" + }, + "coreMigrationVersion": "7.15.1", + "id": "auth0-187e7650-42a9-11ec-b9a2-edbe9edd14c9", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/auth0/1.0.0/manifest.yml b/packages/auth0/1.0.0/manifest.yml new file mode 100755 index 0000000000..c92f640b6c --- /dev/null +++ b/packages/auth0/1.0.0/manifest.yml @@ -0,0 +1,34 @@ +format_version: 1.0.0 +name: auth0 +title: "Auth0 Log Streams Integration" +version: 1.0.0 +license: basic +description: Collect logs from Auth0 with Elastic Agent. +type: integration +categories: + - cloud + - network + - security +release: ga +conditions: + kibana.version: "^7.16.0 || ^8.0.0" +screenshots: + - src: /img/auth0-screenshot.png + title: Auth0 Dashboard + size: 600x600 + type: image/png +icons: + - src: /img/auth0-logo.svg + title: Auth0 logo + size: 32x32 + type: image/svg+xml +policy_templates: + - name: auth0_events + title: Auth0 log stream events via Webhooks + description: Collect Auth0 log streams events via Webhooks. + inputs: + - type: http_endpoint + title: Collect Auth0 log streams events via Webhooks + description: Collecting Auth0 log stream events via Webhooks. +owner: + github: elastic/security-external-integrations diff --git a/packages/carbon_black_cloud/1.0.1/changelog.yml b/packages/carbon_black_cloud/1.0.1/changelog.yml new file mode 100755 index 0000000000..2280c850b8 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/changelog.yml @@ -0,0 +1,26 @@ +# newer versions go on top +- version: "1.0.1" + changes: + - description: Change event.outcome value from failure to failed according to ECS + type: bugfix + link: https://github.com/elastic/integrations/issues/3407 +- version: "1.0.0" + changes: + - description: Make GA + type: enhancement + link: https://github.com/elastic/integrations/pull/3428 +- version: 0.1.2 + changes: + - description: Add "VMware" to the title to make it "VMware Carbon Black Cloud". + type: enhancement + link: https://github.com/elastic/integrations/pull/3196 +- version: 0.1.1 + changes: + - description: Captured domain from username and hostname + type: enhancement + link: https://github.com/elastic/integrations/pull/3106 +- version: 0.1.0 + changes: + - description: Initial draft of the package. + type: enhancement + link: https://github.com/elastic/integrations/pull/2760 diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/alert/agent/stream/aws-s3.yml.hbs b/packages/carbon_black_cloud/1.0.1/data_stream/alert/agent/stream/aws-s3.yml.hbs new file mode 100755 index 0000000000..e02c596614 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/alert/agent/stream/aws-s3.yml.hbs @@ -0,0 +1,24 @@ +bucket_arn: {{bucket_arn}} +number_of_workers: {{number_of_workers}} +bucket_list_interval: {{interval}} +access_key_id: {{access_key_id}} +secret_access_key: {{secret_access_key}} +bucket_list_prefix: {{bucket_list_prefix}} +expand_event_list_from_field: Records +{{#if proxy_url}} +proxy_url: {{proxy_url}} +{{/if}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/alert/agent/stream/httpjson.yml.hbs b/packages/carbon_black_cloud/1.0.1/data_stream/alert/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..2f738b21a6 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/alert/agent/stream/httpjson.yml.hbs @@ -0,0 +1,52 @@ +config_version: 2 +interval: {{interval}} +request.timeout: 2m +request.method: POST + +{{#if proxy_url}} +request.proxy_url: {{proxy_url}} +{{/if}} +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} + +request.url: {{hostname}}/appservices/v6/orgs/{{org_key}}/alerts/_search +request.transforms: + - set: + target: header.X-Auth-Token + value: {{custom_api_secret_key}}/{{custom_api_id}} + - set: + target: body.criteria.last_update_time.start + value: '[[.cursor.last_update_timestamp]]' + default: '[[formatDate ((now (parseDuration "-{{initial_interval}}")).Add (parseDuration "-15m")) "RFC3339"]]' + - set: + target: body.criteria.last_update_time.end + value: '[[formatDate (now (parseDuration "-15m")) "RFC3339"]]' + - set: + target: body.sort + value: '[{ "field": "last_update_time", "order": "ASC"}]' + value_type: json +response.pagination: + - set: + target: body.criteria.last_update_time.start + value: '[[if (ne .last_response.body.num_found .last_response.body.num_available)]][[.last_event.last_update_time]][[else]][[.last_response.terminate_pagination]][[end]]' + fail_on_template_error: true +cursor: + last_update_timestamp: + value: '[[.last_event.last_update_time]]' +response.split: + target: body.results +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/alert/elasticsearch/ingest_pipeline/default.yml b/packages/carbon_black_cloud/1.0.1/data_stream/alert/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..f6f5fc171e --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/alert/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,313 @@ +--- +description: Pipeline for parsing Carbon Black Cloud alerts. +processors: + - set: + field: ecs.version + value: "8.0.0" + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - fingerprint: + fields: + - json.id + - json.create_time + - json.last_update_time + target_field: _id + ignore_missing: true + - date: + field: json.create_time + target_field: "@timestamp" + ignore_failure: true + formats: + - ISO8601 + - set: + field: event.kind + value: alert + - rename: + field: json.id + target_field: event.id + ignore_missing: true + - rename: + field: json.first_event_time + target_field: event.start + ignore_missing: true + - rename: + field: json.last_event_time + target_field: event.end + ignore_missing: true + - rename: + field: json.severity + target_field: event.severity + ignore_missing: true + - urldecode: + field: json.alert_url + target_field: event.url + ignore_missing: true + - rename: + field: json.reason + target_field: event.reason + ignore_missing: true + - convert: + field: json.device_id + target_field: host.id + type: string + ignore_missing: true + - set: + field: host.os.type + value: windows + if: ctx?.json?.device_os == "WINDOWS" + - set: + field: host.os.type + value: linux + if: ctx?.json?.device_os == "LINUX" + - set: + field: host.os.type + value: macos + if: ctx?.json?.device_os == "MAC" + - set: + field: event.kind + value: alert + - rename: + field: json.device_os_version + target_field: host.os.version + ignore_missing: true + - rename: + field: json.device_name + target_field: host.hostname + ignore_missing: true + - grok: + field: host.hostname + patterns: + - '^(%{DATA:user.domain})\\(%{GREEDYDATA:host.hostname})$' + ignore_missing: true + ignore_failure: true + - set: + field: host.name + value: "{{{host.hostname}}}" + ignore_failure: true + - append: + field: host.ip + value: "{{{json.device_internal_ip}}}" + if: ctx?.json?.device_internal_ip != null + allow_duplicates: false + ignore_failure: true + - append: + field: host.ip + value: "{{{json.device_external_ip}}}" + if: ctx?.json?.device_external_ip != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.device_username + target_field: user.name + ignore_missing: true + - grok: + field: user.name + patterns: + - '^(%{DATA:user.domain})\\(%{GREEDYDATA:user.name})$' + ignore_missing: true + ignore_failure: true + - append: + field: related.ip + value: + - "{{{json.device_internal_ip}}}" + - "{{{json.device_external_ip}}}" + allow_duplicates: false + - append: + field: related.user + value: + - "{{{user.name}}}" + allow_duplicates: false + - append: + field: related.hosts + value: + - "{{{host.hostname}}}" + - "{{{user.domain}}}" + allow_duplicates: false + - append: + field: related.hash + value: + - "{{{json.threat_cause_actor_md5}}}" + - "{{{json.threat_cause_actor_sha256}}}" + allow_duplicates: false + - rename: + field: json.process_name + target_field: process.name + ignore_missing: true + - rename: + field: json.process_path + target_field: process.executable + ignore_missing: true + - rename: + field: json.process_guid + target_field: process.entity_id + ignore_missing: true + - rename: + field: json.vendor_name + target_field: carbon_black_cloud.alert.vendor_name + ignore_missing: true + - rename: + field: json.product_name + target_field: carbon_black_cloud.alert.product_name + ignore_missing: true + - rename: + field: json.serial_number + target_field: carbon_black_cloud.alert.serial_number + ignore_missing: true + - rename: + field: json.policy_id + target_field: carbon_black_cloud.alert.policy.id + ignore_missing: true + - rename: + field: json.policy_name + target_field: carbon_black_cloud.alert.policy.name + ignore_missing: true + - rename: + field: json.threat_id + target_field: carbon_black_cloud.alert.threat_id + ignore_missing: true + - rename: + field: json.policy_applied + target_field: carbon_black_cloud.alert.policy.applied + ignore_missing: true + - rename: + field: json.threat_activity_c2 + target_field: carbon_black_cloud.alert.threat_activity.c2 + ignore_missing: true + - rename: + field: json.threat_activity_dlp + target_field: carbon_black_cloud.alert.threat_activity.dlp + ignore_missing: true + - rename: + field: json.threat_activity_phish + target_field: carbon_black_cloud.alert.threat_activity.phish + ignore_missing: true + - rename: + field: json.threat_cause_actor_name + target_field: carbon_black_cloud.alert.threat_cause.actor.name + ignore_missing: true + - rename: + field: json.threat_cause_actor_process_pid + target_field: carbon_black_cloud.alert.threat_cause.actor.process_pid + ignore_missing: true + - rename: + field: json.threat_cause_actor_sha256 + target_field: carbon_black_cloud.alert.threat_cause.actor.sha256 + ignore_missing: true + - rename: + field: json.threat_cause_actor_md5 + target_field: carbon_black_cloud.alert.threat_cause.actor.md5 + ignore_missing: true + - rename: + field: json.threat_cause_cause_event_id + target_field: carbon_black_cloud.alert.threat_cause.cause_event_id + ignore_missing: true + - rename: + field: json.threat_cause_parent_guid + target_field: carbon_black_cloud.alert.threat_cause.process.parent.guid + ignore_missing: true + - rename: + field: json.threat_cause_process_guid + target_field: carbon_black_cloud.alert.threat_cause.process.guid + ignore_missing: true + - rename: + field: json.threat_cause_reputation + target_field: carbon_black_cloud.alert.threat_cause.reputation + ignore_missing: true + - rename: + field: json.threat_cause_threat_category + target_field: carbon_black_cloud.alert.threat_cause.threat_category + ignore_missing: true + - rename: + field: json.threat_cause_vector + target_field: carbon_black_cloud.alert.threat_cause.vector + ignore_missing: true + - rename: + field: json.ioc_field + target_field: carbon_black_cloud.alert.ioc.field + ignore_missing: true + - rename: + field: json.ioc_hit + target_field: carbon_black_cloud.alert.ioc.hit + ignore_missing: true + - rename: + field: json.ioc_id + target_field: carbon_black_cloud.alert.ioc.id + ignore_missing: true + - rename: + field: json.report_id + target_field: carbon_black_cloud.alert.report.id + ignore_missing: true + - rename: + field: json.report_name + target_field: carbon_black_cloud.alert.report.name + ignore_missing: true + - rename: + field: json.org_key + target_field: carbon_black_cloud.alert.organization_key + ignore_missing: true + - rename: + field: json.device_location + target_field: carbon_black_cloud.alert.device.location + ignore_missing: true + - rename: + field: json.device_os + target_field: carbon_black_cloud.alert.device.os + ignore_missing: true + - rename: + field: json.device_internal_ip + target_field: carbon_black_cloud.alert.device.internal_ip + ignore_missing: true + - rename: + field: json.device_external_ip + target_field: carbon_black_cloud.alert.device.external_ip + ignore_missing: true + - remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + ignore_missing: true + - lowercase: + field: json.category + ignore_missing: true + - script: + description: Adds all the remaining fields in fields under carbon_black_cloud.alert + lang: painless + if: ctx?.json != null + source: | + for (Map.Entry m : ctx.json.entrySet()) { + ctx.carbon_black_cloud.alert[m.getKey()] = m.getValue(); + } + - remove: + field: + - json + - carbon_black_cloud.alert.create_time + - carbon_black_cloud.alert.device_id + - carbon_black_cloud.alert.alert_url + ignore_missing: true + - script: + description: Drops null/empty values recursively + lang: painless + source: | + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); +on_failure: + - set: + field: error.message + value: "{{{_ingest.on_failure_message}}}" diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/agent.yml b/packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/agent.yml new file mode 100755 index 0000000000..e313ec8287 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/agent.yml @@ -0,0 +1,204 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/base-fields.yml b/packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/base-fields.yml new file mode 100755 index 0000000000..14fb618ea4 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module. + value: carbon_black_cloud +- name: event.dataset + type: constant_keyword + description: Event dataset. + value: carbon_black_cloud.alert diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/ecs.yml b/packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/ecs.yml new file mode 100755 index 0000000000..cfad6817c1 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/ecs.yml @@ -0,0 +1,117 @@ +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: Unique ID to describe the event. + name: event.id + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + Reason why this event happened, according to the source. + This describes the why of a particular action or outcome captured in the event. Where `event.action` captures the action from the event, `event.reason` describes why that action was taken. For example, a web proxy with an `event.action` which denied the request may also populate `event.reason` with the reason why (e.g. `blocked site`). + name: event.reason + type: keyword +- description: |- + The numeric severity of the event according to your event source. + What the different severity values mean can be different between sources and use cases. It's up to the implementer to make sure severities are consistent across events from the same source. + The Syslog severity belongs in `log.syslog.severity.code`. `event.severity` is meant to represent the severity according to the event source (e.g. firewall, IDS). If the event source does not publish its own severity, you may optionally copy the `log.syslog.severity.code` to `event.severity`. + name: event.severity + type: long +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + URL linking to an external system to continue investigation of this event. + This URL links to another system where in-depth investigation of the specific occurrence of this event can take place. Alert events, indicated by `event.kind:alert`, are a common use case for this field. + name: event.url + type: keyword +- description: |- + Hostname of the host. + It normally contains what the `hostname` command returns on the host machine. + name: host.hostname + type: keyword +- description: |- + Unique host id. + As hostname is not always unique, use values that are meaningful in your environment. + Example: The current usage of `beat.name`. + name: host.id + type: keyword +- description: Host ip addresses. + name: host.ip + type: ip +- description: |- + Name of the host. + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. + name: host.name + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + One of these following values should be used (lowercase): linux, macos, unix, windows. + If the OS you're dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. + name: host.os.type + type: keyword +- description: Operating system version as a raw string. + name: host.os.version + type: keyword +- description: |- + Unique identifier for the process. + The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. + Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. + name: process.entity_id + type: keyword +- description: Absolute path to the process executable. + multi_fields: + - name: text + type: match_only_text + name: process.executable + type: keyword +- description: |- + Process name. + Sometimes called program name or similar. + multi_fields: + - name: text + type: match_only_text + name: process.name + type: keyword +- description: All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). + name: related.hash + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Name of the directory the user is a member of. + For example, an LDAP or Active Directory domain name. + name: user.domain + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/fields.yml b/packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/fields.yml new file mode 100755 index 0000000000..3eca3a1515 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/alert/fields/fields.yml @@ -0,0 +1,218 @@ +- name: carbon_black_cloud.alert + type: group + fields: + - name: blocked_threat_category + type: keyword + description: The category of threat which we were able to take action on. + - name: category + type: keyword + description: The category of the alert. + - name: count + type: long + - name: created_by_event_id + type: keyword + description: Event identifier that initiated the alert. + - name: device + type: group + fields: + - name: location + type: keyword + description: The Location of device. + - name: os + type: keyword + description: OS of the device. + - name: internal_ip + type: ip + description: Internal IP of the device. + - name: external_ip + type: ip + description: External IP of the device. + - name: document_guid + type: keyword + description: Unique ID of document. + - name: ioc + type: group + fields: + - name: field + type: keyword + description: The field the indicator of comprise (IOC) hit contains. + - name: hit + type: keyword + description: IOC field value or IOC query that matches. + - name: id + type: keyword + description: The identifier of the IOC that cause the hit. + - name: kill_chain_status + type: keyword + description: The stage within the Cyber Kill Chain sequence most closely associated with the attributes of the alert. + - name: last_update_time + type: date + description: The last time the alert was updated as an ISO 8601 UTC timestamp. + - name: legacy_alert_id + type: keyword + description: The legacy identifier for the alert. + - name: not_blocked_threat_category + type: keyword + description: Other potentially malicious activity involved in the threat that we weren't able to take action on (either due to policy config, or not having a relevant rule). + - name: notes_present + type: boolean + description: Indicates if notes are associated with the threat_id. + - name: organization_key + type: keyword + description: The unique identifier for the organization associated with the alert. + - name: policy + type: group + fields: + - name: applied + type: keyword + description: Whether a policy was applied. + - name: id + type: long + description: The identifier for the policy associated with the device at the time of the alert. + - name: name + type: keyword + description: The name of the policy associated with the device at the time of the alert. + - name: product_id + type: keyword + description: The hexadecimal id of the USB device's product. + - name: product_name + type: keyword + description: The name of the USB device’s vendor. + - name: reason_code + type: keyword + description: Shorthand enum for the full-text reason. + - name: report + type: group + fields: + - name: id + type: keyword + description: The identifier of the report that contains the IOC. + - name: name + type: keyword + description: The name of the report that contains the IOC. + - name: run_state + type: keyword + description: Whether the threat in the alert ran. + - name: sensor_action + type: keyword + description: The action taken by the sensor, according to the rule of the policy. + - name: serial_number + type: keyword + description: The serial number of the USB device. + - name: status + type: keyword + description: status of alert. + - name: tags + type: keyword + description: Tags associated with the alert. + - name: target_value + type: keyword + description: The priority of the device assigned by the policy. + - name: threat_activity + type: group + fields: + - name: c2 + type: keyword + description: Whether the alert involved a command and control (c2) server. + - name: dlp + type: keyword + description: Whether the alert involved data loss prevention (DLP). + - name: phish + type: keyword + description: Whether the alert involved phishing. + - name: threat_cause + type: group + fields: + - name: actor + type: group + fields: + - name: md5 + type: keyword + description: MD5 of the threat cause actor. + - name: name + type: keyword + description: 'The name can be one of the following: process commandline, process name, or analytic matched threat. Analytic matched threats are Exploit, Malware, PUP, or Trojan.' + - name: process_pid + type: keyword + description: Process identifier (PID) of the actor process. + - name: sha256 + type: keyword + description: SHA256 of the threat cause actor. + - name: cause_event_id + type: keyword + description: ID of the Event that triggered the threat. + - name: process + type: group + fields: + - name: guid + type: keyword + description: The global unique identifier of the process. + - name: parent + type: group + fields: + - name: guid + type: keyword + description: The global unique identifier of the process. + - name: reputation + type: keyword + description: Reputation of the threat cause. + - name: threat_category + type: keyword + description: Category of the threat cause. + - name: vector + type: keyword + description: The source of the threat cause. + - name: threat_id + type: keyword + description: The identifier of a threat which this alert belongs. Threats are comprised of a combination of factors that can be repeated across devices. + - name: threat_indicators + type: group + description: List of the threat indicators that make up the threat. + fields: + - name: process_name + type: keyword + description: Process name associated with threat. + - name: sha256 + type: keyword + description: Sha256 associated with threat. + - name: ttps + type: keyword + description: Tactics, techniques and procedures associated with threat. + - name: type + type: keyword + description: Type of alert. + - name: vendor_id + type: keyword + description: The hexadecimal id of the USB device's vendor. + - name: vendor_name + type: keyword + description: The name of the USB device’s vendor. + - name: watchlists + type: group + description: List of watchlists associated with an alert. + fields: + - name: id + type: keyword + description: The identifier of watchlist. + - name: name + type: keyword + description: The name of the watchlist. + - name: workflow + type: group + description: Tracking system for alerts as they are triaged and resolved. + fields: + - name: changed_by + type: keyword + description: The name of user who changed the workflow. + - name: comment + type: keyword + description: Comment associated with workflow. + - name: last_update_time + type: date + description: The last update time of workflow. + - name: remediation + type: keyword + description: N/A + - name: state + type: keyword + description: The state of workflow. diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/alert/manifest.yml b/packages/carbon_black_cloud/1.0.1/data_stream/alert/manifest.yml new file mode 100755 index 0000000000..477667ce22 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/alert/manifest.yml @@ -0,0 +1,95 @@ +title: Alert +type: logs +streams: + - input: httpjson + title: Collect alerts from Carbon Black Cloud + description: Collect alerts from Carbon Black Cloud. + template_path: httpjson.yml.hbs + vars: + - name: interval + type: text + title: Interval + description: Interval to fetch alerts from Carbon Black Cloud. + multi: false + required: true + show_user: true + default: 1m + - name: initial_interval + type: text + title: Initial Interval + description: How far back to pull the alerts from the Carbon Black Cloud API. + default: 24h + multi: false + required: true + show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - carbon_black_cloud-alert + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + + - input: aws-s3 + title: Collect alerts from Carbon Black Cloud + description: Collect alerts from Carbon Black Cloud. + template_path: aws-s3.yml.hbs + vars: + - name: bucket_list_prefix + type: text + title: Bucket Prefix + description: Prefix to apply for the list request to the S3 bucket. + multi: false + required: true + show_user: true + - name: interval + type: text + title: Interval + description: Interval to fetch alerts from AWS S3 bucket. + multi: false + required: true + show_user: true + default: 1m + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - carbon_black_cloud-alert + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: >- + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/alert/sample_event.json b/packages/carbon_black_cloud/1.0.1/data_stream/alert/sample_event.json new file mode 100755 index 0000000000..67e2c63a32 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/alert/sample_event.json @@ -0,0 +1,114 @@ +{ + "@timestamp": "2020-11-17T22:05:13.000Z", + "agent": { + "ephemeral_id": "56053d91-103c-4c77-8f15-0a1006a80102", + "hostname": "docker-fleet-agent", + "id": "4f53bc01-9d14-4e27-b716-9b41958e11e0", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "carbon_black_cloud": { + "alert": { + "category": "warning", + "device": { + "external_ip": "81.2.69.143", + "internal_ip": "81.2.69.144", + "location": "UNKNOWN", + "os": "WINDOWS" + }, + "last_update_time": "2020-11-17T22:05:13Z", + "legacy_alert_id": "C8EB7306-AF26-4A9A-B677-814B3AF69720", + "organization_key": "ABCD6X3T", + "policy": { + "applied": "APPLIED", + "id": 6997287, + "name": "Standard" + }, + "product_id": "0x5406", + "product_name": "U3 Cruzer Micro", + "reason_code": "6D578342-9DE5-4353-9C25-1D3D857BFC5B:DCAEB1FA-513C-4026-9AB6-37A935873FBC", + "run_state": "DID_NOT_RUN", + "sensor_action": "DENY", + "serial_number": "0875920EF7C2A304", + "target_value": "MEDIUM", + "threat_cause": { + "cause_event_id": "FCEE2AF0-D832-4C9F-B988-F11B46028C9E", + "threat_category": "NON_MALWARE", + "vector": "REMOVABLE_MEDIA" + }, + "threat_id": "t5678", + "type": "DEVICE_CONTROL", + "vendor_id": "0x0781", + "vendor_name": "SanDisk", + "workflow": { + "changed_by": "Carbon Black", + "last_update_time": "2020-11-17T22:02:16Z", + "state": "OPEN" + } + } + }, + "data_stream": { + "dataset": "carbon_black_cloud.alert", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "4f53bc01-9d14-4e27-b716-9b41958e11e0", + "snapshot": false, + "version": "7.17.0" + }, + "event": { + "agent_id_status": "verified", + "created": "2022-04-14T11:46:13.154Z", + "dataset": "carbon_black_cloud.alert", + "end": "2020-11-17T22:02:16Z", + "id": "test1", + "ingested": "2022-04-14T11:46:14Z", + "kind": "alert", + "original": "{\"alert_url\":\"https://defense-eap01.conferdeploy.net/alerts?orgId=1889976\",\"category\":\"WARNING\",\"create_time\":\"2020-11-17T22:05:13Z\",\"device_external_ip\":\"81.2.69.143\",\"device_id\":2,\"device_internal_ip\":\"81.2.69.144\",\"device_location\":\"UNKNOWN\",\"device_name\":\"DESKTOP-002\",\"device_os\":\"WINDOWS\",\"device_os_version\":\"Windows 10 x64\",\"device_username\":\"test34@demo.com\",\"first_event_time\":\"2020-11-17T22:02:16Z\",\"id\":\"test1\",\"last_event_time\":\"2020-11-17T22:02:16Z\",\"last_update_time\":\"2020-11-17T22:05:13Z\",\"legacy_alert_id\":\"C8EB7306-AF26-4A9A-B677-814B3AF69720\",\"org_key\":\"ABCD6X3T\",\"policy_applied\":\"APPLIED\",\"policy_id\":6997287,\"policy_name\":\"Standard\",\"product_id\":\"0x5406\",\"product_name\":\"U3 Cruzer Micro\",\"reason\":\"Access attempted on unapproved USB device SanDisk U3 Cruzer Micro (SN: 0875920EF7C2A304). A Deny Policy Action was applied.\",\"reason_code\":\"6D578342-9DE5-4353-9C25-1D3D857BFC5B:DCAEB1FA-513C-4026-9AB6-37A935873FBC\",\"run_state\":\"DID_NOT_RUN\",\"sensor_action\":\"DENY\",\"serial_number\":\"0875920EF7C2A304\",\"severity\":3,\"target_value\":\"MEDIUM\",\"threat_cause_cause_event_id\":\"FCEE2AF0-D832-4C9F-B988-F11B46028C9E\",\"threat_cause_threat_category\":\"NON_MALWARE\",\"threat_cause_vector\":\"REMOVABLE_MEDIA\",\"threat_id\":\"t5678\",\"type\":\"DEVICE_CONTROL\",\"vendor_id\":\"0x0781\",\"vendor_name\":\"SanDisk\",\"workflow\":{\"changed_by\":\"Carbon Black\",\"comment\":\"\",\"last_update_time\":\"2020-11-17T22:02:16Z\",\"remediation\":\"\",\"state\":\"OPEN\"}}", + "reason": "Access attempted on unapproved USB device SanDisk U3 Cruzer Micro (SN: 0875920EF7C2A304). A Deny Policy Action was applied.", + "severity": 3, + "start": "2020-11-17T22:02:16Z", + "url": "https://defense-eap01.conferdeploy.net/alerts?orgId=1889976" + }, + "host": { + "hostname": "DESKTOP-002", + "id": "2", + "ip": [ + "81.2.69.144", + "81.2.69.143" + ], + "name": "DESKTOP-002", + "os": { + "type": "windows", + "version": "Windows 10 x64" + } + }, + "input": { + "type": "httpjson" + }, + "related": { + "hosts": [ + "DESKTOP-002" + ], + "ip": [ + "81.2.69.144", + "81.2.69.143" + ], + "user": [ + "test34@demo.com" + ] + }, + "tags": [ + "preserve_original_event", + "forwarded", + "carbon_black_cloud-alert" + ], + "user": { + "name": "test34@demo.com" + } +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/agent/stream/httpjson.yml.hbs b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..310b6e05d5 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/agent/stream/httpjson.yml.hbs @@ -0,0 +1,45 @@ +config_version: 2 +interval: {{interval}} +request.method: POST +{{#if proxy_url }} +request.proxy_url: {{proxy_url}} +{{/if}} +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} +request.url: {{hostname}}/vulnerability/assessment/api/v1/orgs/{{org_key}}/devices/vulnerabilities/summary/_search +request.transforms: + - set: + target: header.X-Auth-Token + value: {{custom_api_secret_key}}/{{custom_api_id}} + - set: + target: body.start + value: '0' + value_type: int + - set: + target: body.rows + value: '10000' + value_type: int +request.timeout: 2m +response.pagination: + - set: + target: body.start + value: '[[if (eq (len .last_response.body.results) 0)]][[.last_response.terminate_pagination]][[else]][[mul .last_response.page .body.rows]][[end]]' + value_type: int + fail_on_template_error: true +response.split: + target: body.results +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/elasticsearch/ingest_pipeline/default.yml b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..94f7482f37 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,132 @@ +--- +description: Pipeline for parsing Carbon Black Cloud Asset Vulnerability Summary. +processors: +- rename: + field: message + target_field: event.original + ignore_missing: true +- set: + field: ecs.version + value: '8.0.0' +- json: + field: event.original + target_field: json +- rename: + field: json.host_name + target_field: host.hostname + ignore_missing: true +- convert: + field: json.device_id + type: string + target_field: host.id + ignore_missing: true +- rename: + field: json.name + target_field: host.name + ignore_missing: true +- rename: + field: json.os_info.os_name + target_field: host.os.name + ignore_missing: true +- set: + field: host.os.type + value: windows + if: ctx?.json?.os_info.os_type == "WINDOWS" +- set: + field: host.os.type + value: ubuntu + if: ctx?.json?.os_info.os_type == "UBUNTU" +- set: + field: host.os.type + value: centos + if: ctx?.json?.os_info.os_type == "CENTOS" +- remove : + field: json.os_info.os_type + ignore_missing: true +- remove : + field: json.device_id + ignore_missing: true +- rename: + field: json.os_info.os_version + target_field: host.os.version + ignore_missing: true +- rename: + field: json.highest_risk_score + target_field: vulnerability.score.base + ignore_missing: true +- rename: + field: json.severity + target_field: vulnerability.severity + ignore_missing: true +- date: + field: json.last_sync_ts + formats: + - ISO8601 + target_field: carbon_black_cloud.asset_vulnerability_summary.last_sync.timestamp +- remove: + field: json.last_sync_ts + ignore_missing: true +- rename: + field: json.sync_status + target_field: carbon_black_cloud.asset_vulnerability_summary.sync.status + ignore_missing: true +- rename: + field: json.sync_type + target_field: carbon_black_cloud.asset_vulnerability_summary.sync.type + ignore_missing: true +- rename: + field: json.type + target_field: carbon_black_cloud.asset_vulnerability_summary.type + ignore_missing: true +- rename: + field: json.vm_id + target_field: carbon_black_cloud.asset_vulnerability_summary.vm.id + ignore_missing: true +- rename: + field: json.vm_name + target_field: carbon_black_cloud.asset_vulnerability_summary.vm.name + ignore_missing: true +- rename: + field: json.vuln_count + target_field: carbon_black_cloud.asset_vulnerability_summary.vuln_count + ignore_missing: true +- append: + field: related.hosts + value: "{{{host.hostname}}}" + allow_duplicates: false +- script: + description: Adds all the remaining fields in fields under carbon_black_cloud.asset_vulnerability_summary + lang: painless + if: ctx?.json != null + source: | + for (Map.Entry m : ctx.json.entrySet()) { + ctx.carbon_black_cloud.asset_vulnerability_summary[m.getKey()] = m.getValue(); + } +- remove: + field: json + ignore_missing: true +- script: + description: Drops null/empty values recursively + lang: painless + source: | + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); +- remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_missing: true +on_failure: +- set: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/agent.yml b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/agent.yml new file mode 100755 index 0000000000..e313ec8287 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/agent.yml @@ -0,0 +1,204 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/base-fields.yml b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/base-fields.yml new file mode 100755 index 0000000000..e6791517a6 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module + value: carbon_black_cloud +- name: event.dataset + type: constant_keyword + description: Event dataset + value: carbon_black_cloud.asset_vulnerability_summary diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/ecs.yml b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/ecs.yml new file mode 100755 index 0000000000..bae6099a14 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/ecs.yml @@ -0,0 +1,57 @@ +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + Hostname of the host. + It normally contains what the `hostname` command returns on the host machine. + name: host.hostname + type: keyword +- description: |- + Unique host id. + As hostname is not always unique, use values that are meaningful in your environment. + Example: The current usage of `beat.name`. + name: host.id + type: keyword +- description: |- + Name of the host. + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. + name: host.name + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + One of these following values should be used (lowercase): linux, macos, unix, windows. + If the OS you're dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. + name: host.os.type + type: keyword +- description: Operating system version as a raw string. + name: host.os.version + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Scores can range from 0.0 to 10.0, with 10.0 being the most severe. + Base scores cover an assessment for exploitability metrics (attack vector, complexity, privileges, and user interaction), impact metrics (confidentiality, integrity, and availability), and scope. For example (https://www.first.org/cvss/specification-document) + name: vulnerability.score.base + type: float +- description: The severity of the vulnerability can help with metrics and internal prioritization regarding remediation. For example (https://nvd.nist.gov/vuln-metrics/cvss) + name: vulnerability.severity + type: keyword diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/fields.yml b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/fields.yml new file mode 100755 index 0000000000..a70b2974e8 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/fields/fields.yml @@ -0,0 +1,39 @@ +- name: carbon_black_cloud.asset_vulnerability_summary + type: group + fields: + - name: os_info + type: group + fields: + - name: os_arch + type: keyword + description: The identifier is for the Operating system architecture. + - name: last_sync + type: group + fields: + - name: timestamp + type: date + description: The identifier is for the Last sync time. + - name: sync + type: group + fields: + - name: status + type: keyword + description: The identifier is for the Device sync status. + - name: type + type: keyword + description: The identifier is for the Whether a manual sync was triggered for the device, or if it was a scheduled sync. + - name: type + type: keyword + description: The identifier is for the Device type. + - name: vm + type: group + fields: + - name: id + type: keyword + description: The identifier is for the Virtual Machine ID. + - name: name + type: keyword + description: The identifier is for the Virtual Machine name. + - name: vuln_count + type: integer + description: The identifier is for the Number of vulnerabilities at this level. diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/manifest.yml b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/manifest.yml new file mode 100755 index 0000000000..b7bf78f84d --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/manifest.yml @@ -0,0 +1,42 @@ +title: Asset Vulnerability Summary +type: logs +streams: + - input: httpjson + title: Collect asset vulnerability summary from Carbon Black Cloud + description: Collect asset vulnerability summary from Carbon Black Cloud. + template_path: httpjson.yml.hbs + vars: + - name: interval + type: text + title: Interval + description: Interval to query asset vulnerability summary in Carbon Black Cloud. + multi: false + required: true + show_user: true + default: 1h + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - carbon_black_cloud-asset-vulnerability-summary + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/sample_event.json b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/sample_event.json new file mode 100755 index 0000000000..c31987aefe --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/asset_vulnerability_summary/sample_event.json @@ -0,0 +1,76 @@ +{ + "@timestamp": "2022-04-14T11:47:25.371Z", + "agent": { + "ephemeral_id": "377d9292-c7d0-4c30-bbee-faf4848d30d8", + "hostname": "docker-fleet-agent", + "id": "4f53bc01-9d14-4e27-b716-9b41958e11e0", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "carbon_black_cloud": { + "asset_vulnerability_summary": { + "last_sync": { + "timestamp": "2022-01-17T08:33:37.384Z" + }, + "os_info": { + "os_arch": "64-bit" + }, + "sync": { + "status": "COMPLETED", + "type": "SCHEDULED" + }, + "type": "ENDPOINT", + "vuln_count": 1770 + } + }, + "data_stream": { + "dataset": "carbon_black_cloud.asset_vulnerability_summary", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "4f53bc01-9d14-4e27-b716-9b41958e11e0", + "snapshot": false, + "version": "7.17.0" + }, + "event": { + "agent_id_status": "verified", + "created": "2022-04-14T11:47:25.371Z", + "dataset": "carbon_black_cloud.asset_vulnerability_summary", + "ingested": "2022-04-14T11:47:26Z", + "original": "{\"cve_ids\":null,\"device_id\":8,\"highest_risk_score\":10,\"host_name\":\"DESKTOP-008\",\"last_sync_ts\":\"2022-01-17T08:33:37.384932Z\",\"name\":\"DESKTOP-008KK\",\"os_info\":{\"os_arch\":\"64-bit\",\"os_name\":\"Microsoft Windows 10 Education\",\"os_type\":\"WINDOWS\",\"os_version\":\"10.0.17763\"},\"severity\":\"CRITICAL\",\"sync_status\":\"COMPLETED\",\"sync_type\":\"SCHEDULED\",\"type\":\"ENDPOINT\",\"vm_id\":\"\",\"vm_name\":\"\",\"vuln_count\":1770}" + }, + "host": { + "hostname": "DESKTOP-008", + "id": "8", + "name": "DESKTOP-008KK", + "os": { + "name": "Microsoft Windows 10 Education", + "type": "windows", + "version": "10.0.17763" + } + }, + "input": { + "type": "httpjson" + }, + "related": { + "hosts": [ + "DESKTOP-008" + ] + }, + "tags": [ + "preserve_original_event", + "forwarded", + "carbon_black_cloud-asset-vulnerability-summary" + ], + "vulnerability": { + "score": { + "base": 10 + }, + "severity": "CRITICAL" + } +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/audit/agent/stream/httpjson.yml.hbs b/packages/carbon_black_cloud/1.0.1/data_stream/audit/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..2693bd2bbb --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/audit/agent/stream/httpjson.yml.hbs @@ -0,0 +1,32 @@ +config_version: 2 +interval: {{interval}} +request.method: GET + +{{#if proxy_url}} +request.proxy_url: {{proxy_url}} +{{/if}} +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} + +request.url: {{hostname}}/integrationServices/v3/auditlogs +request.transforms: + - set: + target: header.X-Auth-Token + value: {{api_secret_key}}/{{api_id}} +response.split: + target: body.notifications +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/audit/elasticsearch/ingest_pipeline/default.yml b/packages/carbon_black_cloud/1.0.1/data_stream/audit/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..55cc7106f9 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/audit/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,93 @@ +--- +description: Pipeline for parsing Carbon Black Cloud audit logs +processors: + - set: + field: ecs.version + value: '8.0.0' + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - date: + field: json.eventTime + target_field: "@timestamp" + ignore_failure: true + formats: + - UNIX_MS + - set: + field: event.kind + value: event + - set: + field: event.outcome + value: success + - set: + field: event.outcome + value: failure + if: ctx?.json?.flagged == true + - rename: + field: json.description + target_field: event.reason + - rename: + field: json.clientIp + target_field: client.ip + ignore_missing: true + - rename: + field: json.loginName + target_field: client.user.id + ignore_missing: true + - rename: + field: json.eventId + target_field: event.id + ignore_missing: true + - rename: + field: json.orgName + target_field: organization.name + ignore_missing: true + - urldecode: + field: json.requestUrl + target_field: url.original + ignore_missing: true + - rename: + field: json.verbose + target_field: carbon_black_cloud.audit.verbose + ignore_missing: true + - rename: + field: json.flagged + target_field: carbon_black_cloud.audit.flagged + ignore_missing: true + - append: + field: related.ip + value: "{{{client.ip}}}" + allow_duplicates: false + - remove: + field: json + - script: + description: Drops null/empty values recursively + lang: painless + source: | + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); + - remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + ignore_missing: true +on_failure: + - set: + field: error.message + value: "{{{_ingest.on_failure_message}}}" diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/agent.yml b/packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/agent.yml new file mode 100755 index 0000000000..e313ec8287 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/agent.yml @@ -0,0 +1,204 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/base-fields.yml b/packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/base-fields.yml new file mode 100755 index 0000000000..a14e71251a --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module. + value: carbon_black_cloud +- name: event.dataset + type: constant_keyword + description: Event dataset. + value: carbon_black_cloud.audit diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/ecs.yml b/packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/ecs.yml new file mode 100755 index 0000000000..b5cd2cc086 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/ecs.yml @@ -0,0 +1,55 @@ +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Unique identifier of the user. + name: client.user.id + type: keyword +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: Unique ID to describe the event. + name: event.id + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. + `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. + Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. + Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. + Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. + name: event.outcome + type: keyword +- description: |- + Reason why this event happened, according to the source. + This describes the why of a particular action or outcome captured in the event. Where `event.action` captures the action from the event, `event.reason` describes why that action was taken. For example, a web proxy with an `event.action` which denied the request may also populate `event.reason` with the reason why (e.g. `blocked site`). + name: event.reason + type: keyword +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: organization.name + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Unmodified original url as seen in the event source. + Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. + This field is meant to represent the URL as it was observed, complete or not. + multi_fields: + - name: text + type: match_only_text + name: url.original + type: wildcard diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/fields.yml b/packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/fields.yml new file mode 100755 index 0000000000..24af5d42b9 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/audit/fields/fields.yml @@ -0,0 +1,9 @@ +- name: carbon_black_cloud.audit + type: group + fields: + - name: flagged + type: boolean + description: true if action is failed otherwise false. + - name: verbose + type: boolean + description: true if verbose audit log otherwise false. diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/audit/manifest.yml b/packages/carbon_black_cloud/1.0.1/data_stream/audit/manifest.yml new file mode 100755 index 0000000000..929093a4ef --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/audit/manifest.yml @@ -0,0 +1,42 @@ +title: Audit +type: logs +streams: + - input: httpjson + title: Collect audit logs from Carbon Black Cloud + description: Collect audit logs from Carbon Black Cloud. + template_path: httpjson.yml.hbs + vars: + - name: interval + type: text + title: Interval + description: Interval to fetch audit logs from Carbon Black Cloud. + multi: false + required: true + show_user: true + default: 1m + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - carbon_black_cloud-audit + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/audit/sample_event.json b/packages/carbon_black_cloud/1.0.1/data_stream/audit/sample_event.json new file mode 100755 index 0000000000..4ecd8ed454 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/audit/sample_event.json @@ -0,0 +1,63 @@ +{ + "@timestamp": "2022-02-10T16:04:30.263Z", + "agent": { + "ephemeral_id": "6472e86c-fc7c-478a-a6fd-12ed19fe05c9", + "hostname": "docker-fleet-agent", + "id": "4f53bc01-9d14-4e27-b716-9b41958e11e0", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "carbon_black_cloud": { + "audit": { + "flagged": false, + "verbose": false + } + }, + "client": { + "ip": "10.10.10.10", + "user": { + "id": "abc@demo.com" + } + }, + "data_stream": { + "dataset": "carbon_black_cloud.audit", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "4f53bc01-9d14-4e27-b716-9b41958e11e0", + "snapshot": false, + "version": "7.17.0" + }, + "event": { + "agent_id_status": "verified", + "created": "2022-04-14T11:48:30.094Z", + "dataset": "carbon_black_cloud.audit", + "id": "2122f8ce8xxxxxxxxxxxxx", + "ingested": "2022-04-14T11:48:31Z", + "kind": "event", + "original": "{\"clientIp\":\"10.10.10.10\",\"description\":\"Logged in successfully\",\"eventId\":\"2122f8ce8xxxxxxxxxxxxx\",\"eventTime\":1644509070263,\"flagged\":false,\"loginName\":\"abc@demo.com\",\"orgName\":\"cb-xxxx-xxxx.com\",\"requestUrl\":null,\"verbose\":false}", + "outcome": "success", + "reason": "Logged in successfully" + }, + "input": { + "type": "httpjson" + }, + "organization": { + "name": "cb-xxxx-xxxx.com" + }, + "related": { + "ip": [ + "10.10.10.10" + ] + }, + "tags": [ + "preserve_original_event", + "forwarded", + "carbon_black_cloud-audit" + ] +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/agent/stream/aws-s3.yml.hbs b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/agent/stream/aws-s3.yml.hbs new file mode 100755 index 0000000000..e02c596614 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/agent/stream/aws-s3.yml.hbs @@ -0,0 +1,24 @@ +bucket_arn: {{bucket_arn}} +number_of_workers: {{number_of_workers}} +bucket_list_interval: {{interval}} +access_key_id: {{access_key_id}} +secret_access_key: {{secret_access_key}} +bucket_list_prefix: {{bucket_list_prefix}} +expand_event_list_from_field: Records +{{#if proxy_url}} +proxy_url: {{proxy_url}} +{{/if}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/elasticsearch/ingest_pipeline/default.yml b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..3a6c8fc6df --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,587 @@ +--- +description: Pipeline for parsing Carbon Black Cloud Endpoint Events. +processors: + - set: + field: ecs.version + value: '8.0.0' + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - date: + field: json.create_time + target_field: "@timestamp" + ignore_failure: true + formats: + - ISO8601 + - rename: + field: json.action + target_field: event.action + ignore_missing: true + - rename: + field: json.event_id + target_field: event.id + ignore_missing: true + - rename: + field: json.event_description + target_field: event.reason + ignore_missing: true + - rename: + field: json.filemod_name + target_field: file.path + ignore_missing: true + - rename: + field: json.modload_name + target_field: dll.path + ignore_missing: true + - set: + field: network.transport + value: udp + if: ctx?.json?.netconn_protocol == "PROTO_UDP" + - set: + field: network.transport + value: tcp + if: ctx?.json?.netconn_protocol == "PROTO_TCP" + - set: + field: network.direction + value: inbound + if: ctx?.json?.netconn_inbound == true + - set: + field: network.direction + value: outbound + if: ctx?.json?.netconn_inbound == false + - rename: + field: json.remote_port + target_field: source.port + ignore_missing: true + - rename: + field: json.remote_ip + target_field: source.ip + ignore_missing: true + - rename: + field: json.netconn_domain + target_field: source.address + ignore_missing: true + - rename: + field: json.local_port + target_field: client.port + ignore_missing: true + - rename: + field: json.local_ip + target_field: client.ip + ignore_missing: true + - convert: + field: json.device_id + target_field: host.id + type: string + ignore_missing: true + - set: + field: host.os.type + value: windows + if: ctx?.json?.device_os == "WINDOWS" + - set: + field: host.os.type + value: linux + if: ctx?.json?.device_os == "LINUX" + - set: + field: host.os.type + value: macos + if: ctx?.json?.device_os == "MAC" + - rename: + field: json.device_name + target_field: host.hostname + ignore_missing: true + - grok: + field: host.hostname + patterns: + - '^(%{DATA:user.domain})\\(%{GREEDYDATA:host.hostname})$' + ignore_missing: true + ignore_failure: true + - set: + field: host.name + value: "{{{host.hostname}}}" + ignore_failure: true + - rename: + field: json.device_group + target_field: host.os.family + ignore_missing: true + - append: + field: host.ip + value: "{{{json.device_internal_ip}}}" + if: ctx?.json?.device_internal_ip != null + allow_duplicates: false + ignore_failure: true + - append: + field: host.ip + value: "{{{json.device_external_ip}}}" + if: ctx?.json?.device_external_ip != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.device_group + target_field: host.os.family + ignore_missing: true + - rename: + field: json.process_cmdline + target_field: process.command_line + ignore_missing: true + - rename: + field: json.process_guid + target_field: process.entity_id + ignore_missing: true + - rename: + field: json.process_path + target_field: process.executable + ignore_missing: true + - rename: + field: json.process_pid + target_field: process.pid + ignore_missing: true + - rename: + field: json.parent_cmdline + target_field: process.parent.command_line + ignore_missing: true + - rename: + field: json.parent_guid + target_field: process.parent.entity_id + ignore_missing: true + - rename: + field: json.parent_path + target_field: process.parent.executable + ignore_missing: true + - rename: + field: json.parent_pid + target_field: process.parent.pid + ignore_missing: true + - rename: + field: json.regmod_name + target_field: registry.path + ignore_missing: true + - append: + field: related.ip + value: + - "{{{json.device_internal_ip}}}" + - "{{{json.device_external_ip}}}" + - "{{{json.netconn_proxy_ip}}}" + - "{{{source.ip}}}" + - "{{{client.ip}}}" + allow_duplicates: false + - append: + field: related.user + value: + - "{{{json.process_username}}}" + - "{{{json.childproc_username}}}" + allow_duplicates: false + - append: + field: related.hosts + value: + - "{{{host.hostname}}}" + - "{{{user.domain}}}" + allow_duplicates: false + - script: + description: Dynamically map MD5 and SHA256 hash + lang: painless + source: | + void mapHashField(def ctx, def hashes, def key) { + for (hash in hashes) { + if (hash.length() == 32) {ctx["json"][key + "_md5"] = hash;} + if (hash.length() == 64) {ctx["json"][key + "_sha256"] = hash;} + } + } + if (ctx.json?.process_hash instanceof List) { + mapHashField(ctx, ctx.json?.process_hash, "process_hash"); + } + if (ctx.json?.parent_hash instanceof List) { + mapHashField(ctx, ctx.json?.parent_hash, "parent_hash"); + } + if (ctx.json?.filemod_hash instanceof List) { + mapHashField(ctx, ctx.json?.filemod_hash, "filemod_hash"); + } + if (ctx.json?.childproc_hash instanceof List) { + mapHashField(ctx, ctx.json?.childproc_hash, "childproc_hash"); + } + if (ctx.json?.crossproc_hash instanceof List) { + mapHashField(ctx, ctx.json?.crossproc_hash, "crossproc_hash"); + } + if (ctx.json?.scriptload_hash instanceof List) { + mapHashField(ctx, ctx.json?.scriptload_hash, "scriptload_hash"); + } + - rename: + field: json.process_hash_md5 + target_field: process.hash.md5 + ignore_missing: true + - rename: + field: json.process_hash_sha256 + target_field: process.hash.sha256 + ignore_missing: true + - rename: + field: json.parent_hash_md5 + target_field: process.parent.hash.md5 + ignore_missing: true + - rename: + field: json.parent_hash_sha256 + target_field: process.parent.hash.sha256 + ignore_missing: true + - rename: + field: json.backend_timestamp + target_field: carbon_black_cloud.endpoint_event.backend.timestamp + ignore_missing: true + - rename: + field: json.device_timestamp + target_field: carbon_black_cloud.endpoint_event.device.timestamp + ignore_missing: true + - rename: + field: json.device_os + target_field: carbon_black_cloud.endpoint_event.device.os + ignore_missing: true + - rename: + field: json.childproc_name + target_field: carbon_black_cloud.endpoint_event.childproc.name + ignore_missing: true + - rename: + field: json.org_key + target_field: carbon_black_cloud.endpoint_event.organization_key + ignore_missing: true + - rename: + field: json.process_duration + target_field: carbon_black_cloud.endpoint_event.process.duration + ignore_missing: true + - foreach: + field: json.process_publisher + processor: + split: + field: _ingest._value.state + separator: " \\| " + ignore_missing: true + ignore_missing: true + ignore_failure: true + - rename: + field: json.process_publisher + target_field: carbon_black_cloud.endpoint_event.process.publisher + ignore_missing: true + - rename: + field: json.process_reputation + target_field: carbon_black_cloud.endpoint_event.process.reputation + ignore_missing: true + - rename: + field: json.process_terminated + target_field: carbon_black_cloud.endpoint_event.process.terminated + ignore_missing: true + - rename: + field: json.process_username + target_field: carbon_black_cloud.endpoint_event.process.username + ignore_missing: true + - rename: + field: json.parent_reputation + target_field: carbon_black_cloud.endpoint_event.process.parent.reputation + ignore_missing: true + - rename: + field: json.target_cmdline + target_field: carbon_black_cloud.endpoint_event.target_cmdline + ignore_missing: true + - rename: + field: json.type + target_field: carbon_black_cloud.endpoint_event.type + ignore_missing: true + +# Mapping for endpoint.event.crossproc event type + + - rename: + field: json.crossproc_action + target_field: carbon_black_cloud.endpoint_event.crossproc.action + ignore_missing: true + - rename: + field: json.crossproc_api + target_field: carbon_black_cloud.endpoint_event.crossproc.api + ignore_missing: true + - rename: + field: json.crossproc_guid + target_field: carbon_black_cloud.endpoint_event.crossproc.guid + ignore_missing: true + - rename: + field: json.crossproc_name + target_field: carbon_black_cloud.endpoint_event.crossproc.name + ignore_missing: true + - rename: + field: json.crossproc_target + target_field: carbon_black_cloud.endpoint_event.crossproc.target + ignore_missing: true + - rename: + field: json.crossproc_reputation + target_field: carbon_black_cloud.endpoint_event.crossproc.reputation + ignore_missing: true + - foreach: + field: json.crossproc_publisher + processor: + split: + field: _ingest._value.state + separator: " \\| " + ignore_missing: true + ignore_missing: true + ignore_failure: true + - rename: + field: json.crossproc_publisher + target_field: carbon_black_cloud.endpoint_event.crossproc.publisher + ignore_missing: true + - rename: + field: json.crossproc_hash_md5 + target_field: carbon_black_cloud.endpoint_event.crossproc.hash.md5 + ignore_missing: true + - rename: + field: json.crossproc_hash_sha256 + target_field: carbon_black_cloud.endpoint_event.crossproc.hash.sha256 + ignore_missing: true + +# Mapping for endpoint.event.filemod event type + + - rename: + field: json.filemod_hash_md5 + target_field: file.hash.md5 + ignore_missing: true + - rename: + field: json.filemod_hash_sha256 + target_field: file.hash.sha256 + ignore_missing: true + +# Mapping for endpoint.event.fileless_scriptload event type + + - rename: + field: json.fileless_scriptload_cmdline + target_field: carbon_black_cloud.endpoint_event.fileless_scriptload.cmdline + ignore_missing: true + - rename: + field: json.fileless_scriptload_cmdline_length + target_field: carbon_black_cloud.endpoint_event.fileless_scriptload.cmdline_length + ignore_missing: true + - rename: + field: json.fileless_scriptload_hash_md5 + target_field: carbon_black_cloud.endpoint_event.fileless_scriptload.hash.md5 + ignore_missing: true + - rename: + field: json.fileless_scriptload_hash_sha256 + target_field: carbon_black_cloud.endpoint_event.fileless_scriptload.hash.sha256 + ignore_missing: true + +# Mapping for endpoint.event.moduleload event type + + - rename: + field: json.modload_md5 + target_field: dll.hash.md5 + ignore_missing: true + - rename: + field: json.modload_sha256 + target_field: dll.hash.sha256 + ignore_missing: true + - rename: + field: json.modload_effective_reputation + target_field: carbon_black_cloud.endpoint_event.modload.effective_reputation + ignore_missing: true + - rename: + field: json.modload_count + target_field: carbon_black_cloud.endpoint_event.modload.count + ignore_missing: true + - foreach: + field: json.modload_publisher + processor: + split: + field: _ingest._value.state + separator: " \\| " + ignore_missing: true + ignore_missing: true + ignore_failure: true + - rename: + field: json.modload_publisher + target_field: carbon_black_cloud.endpoint_event.modload.publisher + ignore_missing: true + +# Mapping for endpoint.event.netconn_proxy event type + + - rename: + field: json.netconn_proxy_domain + target_field: carbon_black_cloud.endpoint_event.netconn.proxy.domain + ignore_missing: true + - rename: + field: json.netconn_proxy_port + target_field: carbon_black_cloud.endpoint_event.netconn.proxy.port + ignore_missing: true + - rename: + field: json.netconn_proxy_ip + target_field: carbon_black_cloud.endpoint_event.netconn.proxy.ip + ignore_missing: true + +# Mapping for endpoint.event.procstart event type + + - rename: + field: json.childproc_guid + target_field: carbon_black_cloud.endpoint_event.childproc.guid + ignore_missing: true + - rename: + field: json.childproc_name + target_field: carbon_black_cloud.endpoint_event.childproc.name + ignore_missing: true + - rename: + field: json.childproc_pid + target_field: carbon_black_cloud.endpoint_event.childproc.pid + ignore_missing: true + - foreach: + field: json.childproc_publisher + processor: + split: + field: _ingest._value.state + separator: " \\| " + ignore_missing: true + ignore_missing: true + ignore_failure: true + - rename: + field: json.childproc_publisher + target_field: carbon_black_cloud.endpoint_event.childproc.publisher + ignore_missing: true + - rename: + field: json.childproc_reputation + target_field: carbon_black_cloud.endpoint_event.childproc.reputation + ignore_missing: true + - rename: + field: json.childproc_username + target_field: carbon_black_cloud.endpoint_event.childproc.username + ignore_missing: true + - rename: + field: json.childproc_hash_md5 + target_field: carbon_black_cloud.endpoint_event.childproc.hash.md5 + ignore_missing: true + - rename: + field: json.childproc_hash_sha256 + target_field: carbon_black_cloud.endpoint_event.childproc.hash.sha256 + ignore_missing: true + +# Mapping for NGAV endpoint.event.scriptload event type + + - rename: + field: json.scriptload_name + target_field: carbon_black_cloud.endpoint_event.scriptload.name + ignore_missing: true + - foreach: + field: json.scriptload_publisher + processor: + split: + field: _ingest._value.state + separator: " \\| " + ignore_missing: true + ignore_missing: true + ignore_failure: true + - rename: + field: json.scriptload_publisher + target_field: carbon_black_cloud.endpoint_event.scriptload.publisher + ignore_missing: true + - rename: + field: json.scriptload_count + target_field: carbon_black_cloud.endpoint_event.scriptload.count + ignore_missing: true + - rename: + field: json.scriptload_hash_md5 + target_field: carbon_black_cloud.endpoint_event.scriptload.hash.md5 + ignore_missing: true + - rename: + field: json.scriptload_hash_sha256 + target_field: carbon_black_cloud.endpoint_event.scriptload.hash.sha256 + ignore_missing: true + - rename: + field: json.scriptload_effective_reputation + target_field: carbon_black_cloud.endpoint_event.scriptload.effective_reputation + ignore_missing: true + - rename: + field: json.scriptload_reputation + target_field: carbon_black_cloud.endpoint_event.scriptload.reputation + ignore_missing: true + - rename: + field: json.device_internal_ip + target_field: carbon_black_cloud.endpoint_event.device.internal_ip + ignore_missing: true + - rename: + field: json.device_external_ip + target_field: carbon_black_cloud.endpoint_event.device.external_ip + ignore_missing: true + - remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + - append: + field: related.hash + value: + - "{{{process.hash.md5}}}" + - "{{{process.hash.sha256}}}" + - "{{{process.parent.hash.md5}}}" + - "{{{process.parent.hash.sha256}}}" + - "{{{file.hash.md5}}}" + - "{{{file.hash.sha256}}}" + - "{{{dll.hash.md5}}}" + - "{{{dll.hash.sha256}}}" + - "{{{carbon_black_cloud.endpoint_event.childproc.hash.md5}}}" + - "{{{carbon_black_cloud.endpoint_event.childproc.hash.sha256}}}" + - "{{{carbon_black_cloud.endpoint_event.crossproc.hash.md5}}}" + - "{{{carbon_black_cloud.endpoint_event.crossproc.hash.sha256}}}" + - "{{{carbon_black_cloud.endpoint_event.fileless_scriptload.hash.md5}}}" + - "{{{carbon_black_cloud.endpoint_event.fileless_scriptload.hash.sha256}}}" + - "{{{carbon_black_cloud.endpoint_event.scriptload.hash.md5}}}" + - "{{{carbon_black_cloud.endpoint_event.scriptload.hash.sha256}}}" + allow_duplicates: false + - script: + description: Adds all the remaining fields in fields under carbon_black_cloud.endpoint_event + lang: painless + if: ctx?.json != null + source: | + for (Map.Entry m : ctx.json.entrySet()) { + ctx.carbon_black_cloud.endpoint_event[m.getKey()] = m.getValue(); + } + - remove: + field: + - json + - carbon_black_cloud.endpoint_event.create_time + - carbon_black_cloud.endpoint_event.device_id + - carbon_black_cloud.endpoint_event.process_hash + - carbon_black_cloud.endpoint_event.parent_hash + - carbon_black_cloud.endpoint_event.crossproc_hash + - carbon_black_cloud.endpoint_event.filemod_hash + - carbon_black_cloud.endpoint_event.childproc_hash + - carbon_black_cloud.endpoint_event.modload_hash + - carbon_black_cloud.endpoint_event.scriptload_hash + - carbon_black_cloud.endpoint_event.netconn_inbound + - carbon_black_cloud.endpoint_event.netconn_protocol + ignore_missing: true + - script: + description: Drops null/empty values recursively + lang: painless + source: | + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); + - script: + description: Remove duplicate values + lang: painless + source: | + if (ctx?.related?.user != null) { + ctx.related.user = new HashSet(ctx.related.user) + } + if (ctx?.related?.hash != null) { + ctx.related.hash = new HashSet(ctx.related.hash) + } + if (ctx?.related?.ip != null) { + ctx.related.ip = new HashSet(ctx.related.ip) + } +on_failure: + - set: + field: error.message + value: "{{{_ingest.on_failure_message}}}" diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/agent.yml b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/agent.yml new file mode 100755 index 0000000000..e313ec8287 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/agent.yml @@ -0,0 +1,204 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/base-fields.yml b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/base-fields.yml new file mode 100755 index 0000000000..9b3253d2db --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module. + value: carbon_black_cloud +- name: event.dataset + type: constant_keyword + description: Event dataset. + value: carbon_black_cloud.endpoint_event diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/ecs.yml b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/ecs.yml new file mode 100755 index 0000000000..11a1880a0a --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/ecs.yml @@ -0,0 +1,193 @@ +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: MD5 hash. + name: dll.hash.md5 + type: keyword +- description: SHA256 hash. + name: dll.hash.sha256 + type: keyword +- description: Full file path of the library. + name: dll.path + type: keyword +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: Unique ID to describe the event. + name: event.id + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + Reason why this event happened, according to the source. + This describes the why of a particular action or outcome captured in the event. Where `event.action` captures the action from the event, `event.reason` describes why that action was taken. For example, a web proxy with an `event.action` which denied the request may also populate `event.reason` with the reason why (e.g. `blocked site`). + name: event.reason + type: keyword +- description: MD5 hash. + name: file.hash.md5 + type: keyword +- description: SHA256 hash. + name: file.hash.sha256 + type: keyword +- description: Full path to the file, including the file name. It should include the drive letter, when appropriate. + multi_fields: + - name: text + type: match_only_text + name: file.path + type: keyword +- description: |- + Hostname of the host. + It normally contains what the `hostname` command returns on the host machine. + name: host.hostname + type: keyword +- description: |- + Unique host id. + As hostname is not always unique, use values that are meaningful in your environment. + Example: The current usage of `beat.name`. + name: host.id + type: keyword +- description: Host ip addresses. + name: host.ip + type: ip +- description: |- + Name of the host. + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. + name: host.name + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: host.os.family + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + Full command line that started the process, including the absolute path to the executable, and all arguments. + Some arguments may be filtered to protect sensitive information. + multi_fields: + - name: text + type: match_only_text + name: process.command_line + type: wildcard +- description: |- + Unique identifier for the process. + The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. + Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. + name: process.entity_id + type: keyword +- description: Absolute path to the process executable. + multi_fields: + - name: text + type: match_only_text + name: process.executable + type: keyword +- description: MD5 hash. + name: process.hash.md5 + type: keyword +- description: SHA256 hash. + name: process.hash.sha256 + type: keyword +- description: |- + Full command line that started the process, including the absolute path to the executable, and all arguments. + Some arguments may be filtered to protect sensitive information. + multi_fields: + - name: text + type: match_only_text + name: process.parent.command_line + type: wildcard +- description: |- + Unique identifier for the process. + The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. + Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. + name: process.parent.entity_id + type: keyword +- description: Absolute path to the process executable. + multi_fields: + - name: text + type: match_only_text + name: process.parent.executable + type: keyword +- description: MD5 hash. + name: process.parent.hash.md5 + type: keyword +- description: SHA256 hash. + name: process.parent.hash.sha256 + type: keyword +- description: Process id. + name: process.parent.pid + type: long +- description: Process id. + name: process.pid + type: long +- description: Full path, including hive, key and value + name: registry.path + type: keyword +- description: All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). + name: related.hash + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: |- + Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: source.address + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Name of the directory the user is a member of. + For example, an LDAP or Active Directory domain name. + name: user.domain + type: keyword diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/fields.yml b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/fields.yml new file mode 100755 index 0000000000..199988ffb6 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/fields/fields.yml @@ -0,0 +1,239 @@ +- name: carbon_black_cloud.endpoint_event + type: group + fields: + - name: alert_id + type: keyword + description: The ID of the Alert this event is associated with. + - name: backend + type: group + fields: + - name: timestamp + type: keyword + description: Time when the backend received the batch of events. + - name: childproc + type: group + fields: + - name: guid + type: keyword + description: Unique ID of the child process. + - name: hash + type: group + fields: + - name: md5 + type: keyword + description: Cryptographic MD5 hashes of the executable file backing the child process. + - name: sha256 + type: keyword + description: Cryptographic SHA256 hashes of the executable file backing the child process. + - name: name + type: keyword + description: Full path to the target of the crossproc event on the device's local file system. + - name: pid + type: long + description: OS-reported Process ID of the child process. + - name: publisher + type: group + description: Signature entry for the childproc as reported by the endpoint. + fields: + - name: name + type: keyword + description: The name of the publisher. + - name: state + type: keyword + description: The state of the publisher. + - name: reputation + type: keyword + description: Carbon Black Cloud Reputation string for the childproc. + - name: username + type: keyword + description: The username associated with the user context that the child process was started under. + - name: crossproc + type: group + fields: + - name: action + type: keyword + description: The action taken on cross-process. + - name: api + type: keyword + description: Name of the operating system API called by the actor process. + - name: guid + type: keyword + description: Unique ID of the cross process. + - name: hash + type: group + fields: + - name: md5 + type: keyword + description: Cryptographic MD5 hashes of the target of the crossproc event. + - name: sha256 + type: keyword + description: Cryptographic SHA256 hashes of the target of the crossproc event. + - name: name + type: keyword + description: Full path to the target of the crossproc event on the device's local file system. + - name: publisher + type: group + description: Signature entry for the crossproc as reported by the endpoint. + fields: + - name: name + type: keyword + description: The name of the publisher. + - name: state + type: keyword + description: The state of the publisher. + - name: reputation + type: keyword + description: Carbon Black Cloud Reputation string for the crossproc. + - name: target + type: boolean + description: True if the process was the target of the cross-process event; false if the process was the actor. + - name: device + type: group + fields: + - name: os + type: keyword + description: Os name. + - name: timestamp + type: keyword + description: Time seen on sensor. + - name: internal_ip + type: ip + description: Internal IP of the device. + - name: external_ip + type: ip + description: External IP of the device. + - name: event_origin + type: keyword + description: Indicates which product the event came from. "EDR" indicates the event originated from Enterprise EDR. "NGAV" indicates the event originated from Endpoint Standard. + - name: fileless_scriptload + type: group + fields: + - name: cmdline + type: keyword + description: Deobfuscated script content run in a fileless context by the process. + - name: cmdline_length + type: keyword + description: Character count of the deobfuscated script content run in a fileless context. + - name: hash + type: group + fields: + - name: md5 + type: keyword + description: MD5 hash of the deobfuscated script content run by the process in a fileless context. + - name: sha256 + type: keyword + description: SHA-256 hash of the deobfuscated script content run by the process in a fileless context. + - name: modload + type: group + fields: + - name: count + type: long + description: Count of modload events reported by the sensor since last initialization. + - name: effective_reputation + type: keyword + description: Effective reputation(s) of the loaded module(s); applied by the sensor when the event occurred. + - name: publisher + type: group + description: Signature entry for the moduleload as reported by the endpoint. + fields: + - name: name + type: keyword + description: The name of the publisher. + - name: state + type: keyword + description: The state of the publisher. + - name: netconn + type: group + fields: + - name: proxy + type: group + fields: + - name: domain + type: keyword + description: DNS name associated with the "proxy" end of this network connection; may be empty if the name cannot be inferred or the connection is made direct to/from a proxy IP address. + - name: ip + type: keyword + description: IPv4 or IPv6 address in string format associated with the "proxy" end of this network connection. + - name: port + type: keyword + description: UDP/TCP port number associated with the "proxy" end of this network connection. + - name: organization_key + type: keyword + description: The organization key associated with the console instance. + - name: process + type: group + fields: + - name: duration + type: long + description: The time difference in seconds between the process start and process terminate event. + - name: parent + type: group + fields: + - name: reputation + type: keyword + description: Reputation of the parent process; applied when event is processed by the Carbon Black Cloud i.e. after sensor delivers event to the cloud. + - name: publisher + type: group + description: Signature entry for the process as reported by the endpoint. + fields: + - name: name + type: keyword + description: The name of the publisher. + - name: state + type: keyword + description: The state of the publisher. + - name: reputation + type: keyword + description: Reputation of the actor process; applied when event is processed by the Carbon Black Cloud i.e. after sensor delivers event to the cloud. + - name: terminated + type: boolean + description: True if process was terminated elase false. + - name: username + type: keyword + description: The username associated with the user context that this process was started under. + - name: schema + type: long + description: The schema version. The current schema version is "1". This schema version will only be incremented if the field definitions are changed in a backwards-incompatible way. + - name: scriptload + type: group + fields: + - name: count + type: long + description: Count of scriptload events across all processes reported by the sensor since last initialization. + - name: effective_reputation + type: keyword + description: Effective reputation(s) of the script file(s) loaded at process launch; applied by the sensor when the event occurred. + - name: hash + type: group + fields: + - name: md5 + type: keyword + description: Cryptographic MD5 hashes of the target of the scriptload event. + - name: sha256 + type: keyword + description: Cryptographic SHA256 hashes of the target of the scriptload event. + - name: name + type: keyword + description: Full path to the target of the crossproc event on the device's local file system. + - name: publisher + type: group + description: Signature entry for the scriptload as reported by the endpoint. + fields: + - name: name + type: keyword + description: The name of the publisher. + - name: state + type: keyword + description: The state of the publisher. + - name: reputation + type: keyword + description: Carbon Black Cloud Reputation string for the scriptload. + - name: sensor_action + type: keyword + description: The sensor action taken on event. + - name: target_cmdline + type: keyword + description: Process command line associated with the target process. + - name: type + type: keyword + description: The event type. diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/manifest.yml b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/manifest.yml new file mode 100755 index 0000000000..0f52e82022 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/manifest.yml @@ -0,0 +1,48 @@ +title: Endpoint Event +type: logs +streams: + - input: aws-s3 + title: Collect endpoint events from Carbon Black Cloud + description: Collect endpoint events from Carbon Black Cloud. + template_path: aws-s3.yml.hbs + vars: + - name: bucket_list_prefix + type: text + title: Bucket Prefix + description: Prefix to apply for the list request to the S3 bucket. + multi: false + required: true + show_user: true + - name: interval + type: text + title: Interval + description: Interval to fetch endpoint events from AWS S3 bucket. + multi: false + required: true + show_user: true + default: 1m + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - carbon_black_cloud-endpoint-event + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: >- + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/sample_event.json b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/sample_event.json new file mode 100755 index 0000000000..958377158a --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/endpoint_event/sample_event.json @@ -0,0 +1,96 @@ +{ + "process": { + "parent": { + "pid": 1684, + "entity_id": "XXXXXXXX-003d902d-00000694-00000000-1d7540221dedd62", + "command_line": "C:\\WindowsAzure\\GuestAgent_2.7.41491.1010_2021-05-11_233023\\GuestAgent\\WindowsAzureGuestAgent.exe", + "executable": "c:\\windowsazure\\guestagent_2.7.41491.1010_2021-05-11_233023\\guestagent\\windowsazureguestagent.exe", + "hash": { + "sha256": "44a1975b2197484bb22a0eb673e67e7ee9ec20265e9f6347f5e06b6447ac82c5", + "md5": "03dd698da2671383c9b4f868c9931879" + } + }, + "pid": 4880, + "entity_id": "XXXXXXXX-003d902d-00001310-00000000-1d81e748c4adb37", + "command_line": "\"route.exe\" print", + "executable": "c:\\windows\\system32\\route.exe", + "hash": { + "sha256": "9e9c7696859b94b1c33a532fa4d5c648226cf3361121dd899e502b8949fb11a6", + "md5": "2498272dc48446891182747428d02a30" + } + }, + "ecs": { + "version": "8.0.0" + }, + "carbon_black_cloud": { + "endpoint_event": { + "schema": 1, + "event_origin": "EDR", + "process": { + "duration": 2, + "parent": { + "reputation": "REP_RESOLVING" + }, + "publisher": [ + { + "name": "Microsoft Windows", + "state": [ + "FILE_SIGNATURE_STATE_SIGNED", + "FILE_SIGNATURE_STATE_VERIFIED", + "FILE_SIGNATURE_STATE_TRUSTED", + "FILE_SIGNATURE_STATE_OS", + "FILE_SIGNATURE_STATE_CATALOG_SIGNED" + ] + } + ], + "reputation": "REP_RESOLVING", + "terminated": true, + "username": "NT AUTHORITY\\SYSTEM" + }, + "organization_key": "XXXXXXXX", + "backend": { + "timestamp": "2022-02-10 11:52:50 +0000 UTC" + }, + "target_cmdline": "\"route.exe\" print", + "type": "endpoint.event.procend", + "device": { + "os": "WINDOWS", + "timestamp": "2022-02-10 11:51:35.0684097 +0000 UTC", + "external_ip": "67.43.156.12" + }, + "sensor_action": "ACTION_ALLOW" + } + }, + "host": { + "hostname": "client-cb2", + "id": "4034605", + "os": { + "type": "windows" + }, + "ip": [ + "67.43.156.13" + ] + }, + "event": { + "action": "ACTION_PROCESS_TERMINATE", + "orignal": "{\"type\":\"endpoint.event.procend\",\"process_guid\":\"XXXXXXXX-003d902d-00001310-00000000-1d81e748c4adb37\",\"parent_guid\":\"XXXXXXXX-003d902d-00000694-00000000-1d7540221dedd62\",\"backend_timestamp\":\"2022-02-10 11:52:50 +0000 UTC\",\"org_key\":\"XXXXXXXX\",\"device_id\":\"4034605\",\"device_name\":\"client-cb2\",\"device_external_ip\":\"67.43.156.13\",\"device_os\":\"WINDOWS\",\"device_group\":\"\",\"action\":\"ACTION_PROCESS_TERMINATE\",\"schema\":1,\"device_timestamp\":\"2022-02-10 11:51:35.0684097 +0000 UTC\",\"process_terminated\":true,\"process_duration\":2,\"process_reputation\":\"REP_RESOLVING\",\"parent_reputation\":\"REP_RESOLVING\",\"process_pid\":4880,\"parent_pid\":1684,\"process_publisher\":[{\"name\":\"Microsoft Windows\",\"state\":\"FILE_SIGNATURE_STATE_SIGNED | FILE_SIGNATURE_STATE_VERIFIED | FILE_SIGNATURE_STATE_TRUSTED | FILE_SIGNATURE_STATE_OS | FILE_SIGNATURE_STATE_CATALOG_SIGNED\"}],\"process_path\":\"c:\\\\windows\\\\system32\\\\route.exe\",\"parent_path\":\"c:\\\\windowsazure\\\\guestagent_2.7.41491.1010_2021-05-11_233023\\\\guestagent\\\\windowsazureguestagent.exe\",\"process_hash\":[\"2498272dc48446891182747428d02a30\",\"9e9c7696859b94b1c33a532fa4d5c648226cf3361121dd899e502b8949fb11a6\"],\"parent_hash\":[\"03dd698da2671383c9b4f868c9931879\",\"44a1975b2197484bb22a0eb673e67e7ee9ec20265e9f6347f5e06b6447ac82c5\"],\"process_cmdline\":\"\\\"route.exe\\\" print\",\"parent_cmdline\":\"C:\\\\WindowsAzure\\\\GuestAgent_2.7.41491.1010_2021-05-11_233023\\\\GuestAgent\\\\WindowsAzureGuestAgent.exe\",\"process_username\":\"NT AUTHORITY\\\\SYSTEM\",\"sensor_action\":\"ACTION_ALLOW\",\"event_origin\":\"EDR\",\"target_cmdline\":\"\\\"route.exe\\\" print\"}" + }, + "data_stream": { + "dataset": "carbon_black_cloud.endpoint_event", + "namespace": "ep", + "type": "logs" + }, + "elastic_agent": { + "id": "3b20ea47-9610-412d-97e3-47cd19b7e4d5", + "snapshot": true, + "version": "8.0.0" + }, + "input": { + "type": "aws-s3" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "carbon_black_cloud-endpoint-event" + ] +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/agent/stream/aws-s3.yml.hbs b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/agent/stream/aws-s3.yml.hbs new file mode 100755 index 0000000000..e02c596614 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/agent/stream/aws-s3.yml.hbs @@ -0,0 +1,24 @@ +bucket_arn: {{bucket_arn}} +number_of_workers: {{number_of_workers}} +bucket_list_interval: {{interval}} +access_key_id: {{access_key_id}} +secret_access_key: {{secret_access_key}} +bucket_list_prefix: {{bucket_list_prefix}} +expand_event_list_from_field: Records +{{#if proxy_url}} +proxy_url: {{proxy_url}} +{{/if}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/elasticsearch/ingest_pipeline/default.yml b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..1699bc69c1 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,293 @@ +--- +description: Pipeline for parsing Carbon Black Cloud watchlist hit. +processors: + - set: + field: ecs.version + value: '8.0.0' + - set: + field: event.kind + value: event + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - date: + field: json.create_time + target_field: "@timestamp" + ignore_failure: true + formats: + - ISO8601 + - rename: + field: json.severity + target_field: event.severity + ignore_missing: true + - convert: + field: json.device_id + target_field: host.id + type: string + ignore_missing: true + - set: + field: host.os.type + value: windows + if: ctx?.json?.device_os == "WINDOWS" + - set: + field: host.os.type + value: linux + if: ctx?.json?.device_os == "LINUX" + - set: + field: host.os.type + value: macos + if: ctx?.json?.device_os == "MAC" + - rename: + field: json.device_os_version + target_field: host.os.version + ignore_missing: true + - rename: + field: json.device_name + target_field: host.hostname + ignore_missing: true + - grok: + field: host.hostname + patterns: + - '^(%{DATA:user.domain})\\(%{GREEDYDATA:host.hostname})$' + ignore_missing: true + ignore_failure: true + - set: + field: host.name + value: "{{{host.hostname}}}" + ignore_failure: true + - append: + field: host.ip + value: "{{{json.device_internal_ip}}}" + if: ctx?.json?.device_internal_ip != null + allow_duplicates: false + ignore_failure: true + - append: + field: host.ip + value: "{{{json.device_external_ip}}}" + if: ctx?.json?.device_external_ip != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.process_cmdline + target_field: process.command_line + ignore_missing: true + - rename: + field: json.process_guid + target_field: process.entity_id + ignore_missing: true + - rename: + field: json.process_path + target_field: process.executable + ignore_missing: true + - rename: + field: json.process_pid + target_field: process.pid + ignore_missing: true + - rename: + field: json.parent_cmdline + target_field: process.parent.command_line + ignore_missing: true + - rename: + field: json.parent_guid + target_field: process.parent.entity_id + ignore_missing: true + - rename: + field: json.parent_path + target_field: process.parent.executable + ignore_missing: true + - rename: + field: json.parent_pid + target_field: process.parent.pid + ignore_missing: true + - append: + field: related.ip + value: + - "{{{json.device_internal_ip}}}" + - "{{{json.device_external_ip}}}" + allow_duplicates: false + - append: + field: related.user + value: + - "{{{json.parent_username}}}" + - "{{{json.process_username}}}" + allow_duplicates: false + - append: + field: related.hosts + value: + - "{{{host.hostname}}}" + - "{{{user.domain}}}" + allow_duplicates: false + - script: + description: Dynamically map MD5 and SHA256 hash + lang: painless + source: | + void mapHashField(def ctx, def hashes, def key) { + for (hash in hashes) { + if (hash.length() == 32) {ctx["json"][key + "_md5"] = hash;} + if (hash.length() == 64) {ctx["json"][key + "_sha256"] = hash;} + } + } + if (ctx.json?.process_hash instanceof List) { + mapHashField(ctx, ctx.json?.process_hash, "process_hash"); + } + if (ctx.json?.parent_hash instanceof List) { + mapHashField(ctx, ctx.json?.parent_hash, "parent_hash"); + } + - rename: + field: json.process_hash_md5 + target_field: process.hash.md5 + ignore_missing: true + - rename: + field: json.process_hash_sha256 + target_field: process.hash.sha256 + ignore_missing: true + - rename: + field: json.parent_hash_md5 + target_field: process.parent.hash.md5 + ignore_missing: true + - rename: + field: json.parent_hash_sha256 + target_field: process.parent.hash.sha256 + ignore_missing: true + - append: + field: related.hash + value: + - "{{{process.hash.md5}}}" + - "{{{process.hash.sha256}}}" + - "{{{process.parent.hash.md5}}}" + - "{{{process.parent.hash.sha256}}}" + allow_duplicates: false + - rename: + field: json.device_os + target_field: carbon_black_cloud.watchlist_hit.device.os + ignore_missing: true + - rename: + field: json.device_internal_ip + target_field: carbon_black_cloud.watchlist_hit.device.internal_ip + ignore_missing: true + - rename: + field: json.device_external_ip + target_field: carbon_black_cloud.watchlist_hit.device.external_ip + ignore_missing: true + - rename: + field: json.ioc_hit + target_field: carbon_black_cloud.watchlist_hit.ioc.hit + ignore_missing: true + - rename: + field: json.ioc_id + target_field: carbon_black_cloud.watchlist_hit.ioc.id + ignore_missing: true + - rename: + field: json.org_key + target_field: carbon_black_cloud.watchlist_hit.organization_key + ignore_missing: true + - foreach: + field: json.parent_publisher + processor: + split: + field: _ingest._value.state + separator: " \\| " + ignore_missing: true + ignore_missing: true + ignore_failure: true + - rename: + field: json.parent_publisher + target_field: carbon_black_cloud.watchlist_hit.process.parent.publisher + ignore_missing: true + - rename: + field: json.parent_reputation + target_field: carbon_black_cloud.watchlist_hit.process.parent.reputation + ignore_missing: true + - rename: + field: json.parent_username + target_field: carbon_black_cloud.watchlist_hit.process.parent.username + ignore_missing: true + - foreach: + field: json.process_publisher + processor: + split: + field: _ingest._value.state + separator: " \\| " + ignore_missing: true + ignore_missing: true + ignore_failure: true + - rename: + field: json.process_publisher + target_field: carbon_black_cloud.watchlist_hit.process.publisher + ignore_missing: true + - rename: + field: json.process_reputation + target_field: carbon_black_cloud.watchlist_hit.process.reputation + ignore_missing: true + - rename: + field: json.process_username + target_field: carbon_black_cloud.watchlist_hit.process.username + ignore_missing: true + - rename: + field: json.report_id + target_field: carbon_black_cloud.watchlist_hit.report.id + ignore_missing: true + - rename: + field: json.report_name + target_field: carbon_black_cloud.watchlist_hit.report.name + ignore_missing: true + - rename: + field: json.report_tags + target_field: carbon_black_cloud.watchlist_hit.report.tags + ignore_missing: true + - script: + description: Drops null/empty values recursively + lang: painless + source: | + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); + - remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + - script: + description: Adds all the remaining fields in fields under carbon_black_cloud.watchlist_hit + lang: painless + if: ctx?.json != null + source: | + for (Map.Entry m : ctx.json.entrySet()) { + ctx.carbon_black_cloud.watchlist_hit[m.getKey()] = m.getValue(); + } + - remove: + field: + - json + - carbon_black_cloud.watchlist_hit.create_time + - carbon_black_cloud.watchlist_hit.device_id + - carbon_black_cloud.watchlist_hit.process_hash + - carbon_black_cloud.watchlist_hit.parent_hash + ignore_missing: true + - script: + description: Remove duplicate values + lang: painless + source: | + if (ctx?.related?.user != null) { + ctx.related.user = new HashSet(ctx.related.user) + } + if (ctx?.related?.hash != null) { + ctx.related.hash = new HashSet(ctx.related.hash) + } +on_failure: + - set: + field: error.message + value: "{{{_ingest.on_failure_message}}}" diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/agent.yml b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/agent.yml new file mode 100755 index 0000000000..e313ec8287 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/agent.yml @@ -0,0 +1,204 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/base-fields.yml b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/base-fields.yml new file mode 100755 index 0000000000..89df536282 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module. + value: carbon_black_cloud +- name: event.dataset + type: constant_keyword + description: Event dataset. + value: carbon_black_cloud.watchlist_hit diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/ecs.yml b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/ecs.yml new file mode 100755 index 0000000000..5257b0ad7a --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/ecs.yml @@ -0,0 +1,127 @@ +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + The numeric severity of the event according to your event source. + What the different severity values mean can be different between sources and use cases. It's up to the implementer to make sure severities are consistent across events from the same source. + The Syslog severity belongs in `log.syslog.severity.code`. `event.severity` is meant to represent the severity according to the event source (e.g. firewall, IDS). If the event source does not publish its own severity, you may optionally copy the `log.syslog.severity.code` to `event.severity`. + name: event.severity + type: long +- description: |- + Hostname of the host. + It normally contains what the `hostname` command returns on the host machine. + name: host.hostname + type: keyword +- description: |- + Unique host id. + As hostname is not always unique, use values that are meaningful in your environment. + Example: The current usage of `beat.name`. + name: host.id + type: keyword +- description: Host ip addresses. + name: host.ip + type: ip +- description: |- + Name of the host. + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. + name: host.name + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + One of these following values should be used (lowercase): linux, macos, unix, windows. + If the OS you're dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. + name: host.os.type + type: keyword +- description: |- + Full command line that started the process, including the absolute path to the executable, and all arguments. + Some arguments may be filtered to protect sensitive information. + multi_fields: + - name: text + type: match_only_text + name: process.command_line + type: wildcard +- description: |- + Unique identifier for the process. + The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. + Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. + name: process.entity_id + type: keyword +- description: Absolute path to the process executable. + multi_fields: + - name: text + type: match_only_text + name: process.executable + type: keyword +- description: MD5 hash. + name: process.hash.md5 + type: keyword +- description: SHA256 hash. + name: process.hash.sha256 + type: keyword +- description: |- + Full command line that started the process, including the absolute path to the executable, and all arguments. + Some arguments may be filtered to protect sensitive information. + multi_fields: + - name: text + type: match_only_text + name: process.parent.command_line + type: wildcard +- description: |- + Unique identifier for the process. + The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. + Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. + name: process.parent.entity_id + type: keyword +- description: Absolute path to the process executable. + multi_fields: + - name: text + type: match_only_text + name: process.parent.executable + type: keyword +- description: MD5 hash. + name: process.parent.hash.md5 + type: keyword +- description: SHA256 hash. + name: process.parent.hash.sha256 + type: keyword +- description: Process id. + name: process.parent.pid + type: long +- description: Process id. + name: process.pid + type: long +- description: All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). + name: related.hash + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Name of the directory the user is a member of. + For example, an LDAP or Active Directory domain name. + name: user.domain + type: keyword diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/fields.yml b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/fields.yml new file mode 100755 index 0000000000..25cb25005e --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/fields/fields.yml @@ -0,0 +1,89 @@ +- name: carbon_black_cloud.watchlist_hit + type: group + fields: + - name: device + type: group + fields: + - name: os + type: keyword + description: OS Type of device (Windows/OSX/Linux). + - name: internal_ip + type: ip + description: Internal IP of the device. + - name: external_ip + type: ip + description: External IP of the device. + - name: ioc + type: group + fields: + - name: field + type: keyword + description: Field the IOC hit contains. + - name: hit + type: keyword + description: IOC field value, or IOC query that matches. + - name: id + type: keyword + description: ID of the IOC that caused the hit. + - name: organization_key + type: keyword + description: The organization key associated with the console instance. + - name: process + type: group + fields: + - name: parent + type: group + fields: + - name: publisher + type: group + description: signature entry for the process as reported by the endpoint. + fields: + - name: name + type: keyword + description: The name of the publisher. + - name: state + type: keyword + description: The state of the publisher. + - name: reputation + type: keyword + description: Reputation of the actor process; applied when event is processed by the Carbon Black Cloud i.e. after sensor delivers event to the cloud. + - name: username + type: keyword + description: The username associated with the user context that this process was started under. + - name: publisher + type: group + description: signature entry for the process as reported by the endpoint. + - name: reputation + type: keyword + description: Reputation of the actor process; applied when event is processed by the Carbon Black Cloud i.e. after sensor delivers event to the cloud. + - name: username + type: keyword + description: The username associated with the user context that this process was started under. + - name: report + type: group + fields: + - name: id + type: keyword + description: ID of the watchlist report(s) that detected a hit on the process. + - name: name + type: keyword + description: Name of the watchlist report(s) that detected a hit on the process. + - name: tags + type: keyword + description: List of tags associated with the report(s) that detected a hit on the process. + - name: schema + type: long + description: Schema version. + - name: type + type: keyword + description: The watchlist hit type. + - name: watchlists + type: group + description: List of watchlists that contain the report of the ioc hit. + fields: + - name: id + type: keyword + description: The ID of the watchlists. + - name: name + type: keyword + description: The name of the watchlists. diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/manifest.yml b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/manifest.yml new file mode 100755 index 0000000000..7782458210 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/manifest.yml @@ -0,0 +1,48 @@ +title: Watchlist Hit +type: logs +streams: + - input: aws-s3 + title: Collect watchlist hit from Carbon Black Cloud + description: Collect watchlist hit from Carbon Black Cloud. + template_path: aws-s3.yml.hbs + vars: + - name: bucket_list_prefix + type: text + title: Bucket Prefix + description: Prefix to apply for the list request to the S3 bucket. + multi: false + required: true + show_user: true + - name: interval + type: text + title: Interval + description: Interval to fetch watchlist hit from AWS S3 bucket. + multi: false + required: true + show_user: true + default: 1m + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - carbon_black_cloud-watchlist-hit + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: >- + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. diff --git a/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/sample_event.json b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/sample_event.json new file mode 100755 index 0000000000..0a5e6c32fb --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/data_stream/watchlist_hit/sample_event.json @@ -0,0 +1,130 @@ +{ + "tags": [ + "preserve_original_event", + "forwarded", + "carbon_black_cloud-watchlist-hit" + ], + "input": { + "type": "aws-s3" + }, + "data_stream": { + "namespace": "default", + "type": "logs", + "dataset": "carbon_black_cloud.watchlist_hit" + }, + "agent": { + "id": "e0d5f508-9616-400f-b26b-bb1aa6638b80", + "type": "filebeat", + "version": "8.0.0" + }, + "ecs": { + "version": "8.0.0" + }, + "process": { + "parent": { + "pid": 4076, + "entity_id": "7DESJ9GN-00442a47-00000fec-00000000-1d81ed87d4655d1", + "command_line": "C:\\WINDOWS\\system32\\cmd.exe /c \"sc query aella_conf | findstr RUNNING \u003e null\"", + "executable": "c:\\windows\\syswow64\\cmd.exe", + "hash": { + "sha256": "4d89fc34d5f0f9babd022271c585a9477bf41e834e46b991deaa0530fdb25e22", + "md5": "d0fce3afa6aa1d58ce9fa336cc2b675b" + } + }, + "pid": 7516, + "entity_id": "7DESJ9GN-00442a47-00001d5c-00000000-1d81ed87d63d2c6", + "command_line": "sc query aella_conf ", + "executable": "c:\\windows\\syswow64\\sc.exe", + "hash": { + "sha256": "4fe6d9eb8109fb79ff645138de7cff37906867aade589bd68afa503a9ab3cfb2", + "md5": "d9d7684b8431a0d10d0e76fe9f5ffec8" + } + }, + "carbon_black_cloud": { + "watchlist_hit": { + "schema": 1, + "process": { + "parent": { + "publisher": [ + { + "name": "Microsoft Windows", + "state": [ + "FILE_SIGNATURE_STATE_SIGNED", + "FILE_SIGNATURE_STATE_VERIFIED", + "FILE_SIGNATURE_STATE_TRUSTED", + "FILE_SIGNATURE_STATE_OS", + "FILE_SIGNATURE_STATE_CATALOG_SIGNED" + ] + } + ], + "reputation": "REP_WHITE", + "username": "NT AUTHORITY\\SYSTEM" + }, + "publisher": [ + { + "name": "Microsoft Windows", + "state": [ + "FILE_SIGNATURE_STATE_SIGNED", + "FILE_SIGNATURE_STATE_VERIFIED", + "FILE_SIGNATURE_STATE_TRUSTED", + "FILE_SIGNATURE_STATE_OS", + "FILE_SIGNATURE_STATE_CATALOG_SIGNED" + ] + } + ], + "reputation": "REP_WHITE", + "username": "NT AUTHORITY\\SYSTEM" + }, + "organization_key": "xxxxxxxx", + "report": { + "name": "Discovery - System Service Discovery Detected", + "id": "CFnKBKLTv6hUkBGFobRdg-565571", + "tags": [ + "attack", + "attackframework", + "threathunting", + "hunting", + "t1007", + "recon", + "discovery", + "windows" + ] + }, + "watchlists": [ + { + "name": "ATT\u0026CK Framework", + "id": "P5f9AW29TGmTOvBW156Cig" + } + ], + "type": "watchlist.hit", + "ioc": { + "hit": "((process_name:sc.exe -parent_name:svchost.exe) AND process_cmdline:query) -enriched:true", + "id": "565571-0" + }, + "device": { + "internal_ip": "10.10.156.12", + "external_ip": "67.43.156.12", + "os": "WINDOWS" + } + } + }, + "host": { + "hostname": "Carbonblack-win1", + "os": { + "type": "windows" + }, + "ip": [ + "10.10.156.12", + "67.43.156.12" + ], + "id": "4467271" + }, + "event": { + "kind": "event", + "severity": 3, + "agent_id_status": "verified", + "ingested": "2022-02-17T07:23:31Z", + "original": "{\"schema\":1,\"create_time\":\"2022-02-10T23:54:32.449Z\",\"device_external_ip\":\"205.234.30.196\",\"device_id\":4467271,\"device_internal_ip\":\"10.33.4.214\",\"device_name\":\"Carbonblack-win1\",\"device_os\":\"WINDOWS\",\"ioc_hit\":\"((process_name:sc.exe -parent_name:svchost.exe) AND process_cmdline:query) -enriched:true\",\"ioc_id\":\"565571-0\",\"org_key\":\"7DESJ9GN\",\"parent_cmdline\":\"C:\\\\WINDOWS\\\\system32\\\\cmd.exe /c \\\"sc query aella_conf | findstr RUNNING \\u003e null\\\"\",\"parent_guid\":\"7DESJ9GN-00442a47-00000fec-00000000-1d81ed87d4655d1\",\"parent_hash\":[\"d0fce3afa6aa1d58ce9fa336cc2b675b\",\"4d89fc34d5f0f9babd022271c585a9477bf41e834e46b991deaa0530fdb25e22\"],\"parent_path\":\"c:\\\\windows\\\\syswow64\\\\cmd.exe\",\"parent_pid\":4076,\"parent_publisher\":[{\"name\":\"Microsoft Windows\",\"state\":\"FILE_SIGNATURE_STATE_SIGNED | FILE_SIGNATURE_STATE_VERIFIED | FILE_SIGNATURE_STATE_TRUSTED | FILE_SIGNATURE_STATE_OS | FILE_SIGNATURE_STATE_CATALOG_SIGNED\"}],\"parent_reputation\":\"REP_WHITE\",\"parent_username\":\"NT AUTHORITY\\\\SYSTEM\",\"process_cmdline\":\"sc query aella_conf \",\"process_guid\":\"7DESJ9GN-00442a47-00001d5c-00000000-1d81ed87d63d2c6\",\"process_hash\":[\"d9d7684b8431a0d10d0e76fe9f5ffec8\",\"4fe6d9eb8109fb79ff645138de7cff37906867aade589bd68afa503a9ab3cfb2\"],\"process_path\":\"c:\\\\windows\\\\syswow64\\\\sc.exe\",\"process_pid\":7516,\"process_publisher\":[{\"name\":\"Microsoft Windows\",\"state\":\"FILE_SIGNATURE_STATE_SIGNED | FILE_SIGNATURE_STATE_VERIFIED | FILE_SIGNATURE_STATE_TRUSTED | FILE_SIGNATURE_STATE_OS | FILE_SIGNATURE_STATE_CATALOG_SIGNED\"}],\"process_reputation\":\"REP_WHITE\",\"process_username\":\"NT AUTHORITY\\\\SYSTEM\",\"report_id\":\"CFnKBKLTv6hUkBGFobRdg-565571\",\"report_name\":\"Discovery - System Service Discovery Detected\",\"report_tags\":[\"attack\",\"attackframework\",\"threathunting\",\"hunting\",\"t1007\",\"recon\",\"discovery\",\"windows\"],\"severity\":3,\"type\":\"watchlist.hit\",\"watchlists\":[{\"id\":\"P5f9AW29TGmTOvBW156Cig\",\"name\":\"ATT\\u0026CK Framework\"}]}", + "dataset": "carbon_black_cloud.watchlist_hit" + } +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/docs/README.md b/packages/carbon_black_cloud/1.0.1/docs/README.md new file mode 100755 index 0000000000..b07163713d --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/docs/README.md @@ -0,0 +1,1042 @@ +# VMware Carbon Black Cloud + +The VMware Carbon Black Cloud integration collects and parses data from the Carbon Black Cloud REST APIs and AWS S3 bucket. + +## Compatibility + +This module has been tested against `Alerts API (v6)`, `Audit Log Events (v3)` and `Vulnerability Assessment (v1)`. + +## Requirements + +### In order to ingest data from the AWS S3 bucket you must: +1. Configure the [Data Forwarder](https://docs.vmware.com/en/VMware-Carbon-Black-Cloud/services/carbon-black-cloud-user-guide/GUID-F68F63DD-2271-4088-82C9-71D675CD0535.html) to ingest data into an AWS S3 bucket. +2. Create an [AWS Access Keys and Secret Access Keys](https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys). + + +### In order to ingest data from the APIs you must generate API keys and API Secret Keys: +1. In Carbon Black Cloud, On the left navigation pane, click **Settings > API Access**. +2. Click Add API Key. +3. Give the API key a unique name and description. + - Select the appropriate access level type. Please check required Access Levels & Permissions for integration in below table. + **Note:** To use a custom access level, select Custom from the Access Level type drop-down menu and specify the Custom Access Level. + - Optional: Add authorized IP addresses. + - You can restrict the use of an API key to a specific set of IP addresses for security reasons. + **Note:** Authorized IP addresses are not available with Custom keys. +4. To apply the changes, click Save. + +#### Access Levels & Permissions +- The following tables indicate which type of API Key access level is required. If the type is Custom then the permission that is required will also be included. + +| Data stream | Access Level and Permissions | +| --------------------------- | ------------------------------------------ | +| Audit | API | +| Alert | Custom orgs.alerts (Read) | +| Asset Vulnerability Summary | Custom vulnerabilityAssessment.data (Read) | + + +## Note + +- The alert data stream has a 15-minute delay to ensure that no occurrences are missed. + +## Logs + +### Audit + +This is the `audit` dataset. + +An example event for `audit` looks as following: + +```json +{ + "@timestamp": "2022-02-10T16:04:30.263Z", + "agent": { + "ephemeral_id": "6472e86c-fc7c-478a-a6fd-12ed19fe05c9", + "hostname": "docker-fleet-agent", + "id": "4f53bc01-9d14-4e27-b716-9b41958e11e0", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "carbon_black_cloud": { + "audit": { + "flagged": false, + "verbose": false + } + }, + "client": { + "ip": "10.10.10.10", + "user": { + "id": "abc@demo.com" + } + }, + "data_stream": { + "dataset": "carbon_black_cloud.audit", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "4f53bc01-9d14-4e27-b716-9b41958e11e0", + "snapshot": false, + "version": "7.17.0" + }, + "event": { + "agent_id_status": "verified", + "created": "2022-04-14T11:48:30.094Z", + "dataset": "carbon_black_cloud.audit", + "id": "2122f8ce8xxxxxxxxxxxxx", + "ingested": "2022-04-14T11:48:31Z", + "kind": "event", + "original": "{\"clientIp\":\"10.10.10.10\",\"description\":\"Logged in successfully\",\"eventId\":\"2122f8ce8xxxxxxxxxxxxx\",\"eventTime\":1644509070263,\"flagged\":false,\"loginName\":\"abc@demo.com\",\"orgName\":\"cb-xxxx-xxxx.com\",\"requestUrl\":null,\"verbose\":false}", + "outcome": "success", + "reason": "Logged in successfully" + }, + "input": { + "type": "httpjson" + }, + "organization": { + "name": "cb-xxxx-xxxx.com" + }, + "related": { + "ip": [ + "10.10.10.10" + ] + }, + "tags": [ + "preserve_original_event", + "forwarded", + "carbon_black_cloud-audit" + ] +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| carbon_black_cloud.audit.flagged | true if action is failed otherwise false. | boolean | +| carbon_black_cloud.audit.verbose | true if verbose audit log otherwise false. | boolean | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.user.id | Unique identifier of the user. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.dataset | Event dataset. | constant_keyword | +| event.id | Unique ID to describe the event. | keyword | +| event.module | Event module. | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.outcome | This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. | keyword | +| event.reason | Reason why this event happened, according to the source. This describes the why of a particular action or outcome captured in the event. Where `event.action` captures the action from the event, `event.reason` describes why that action was taken. For example, a web proxy with an `event.action` which denied the request may also populate `event.reason` with the reason why (e.g. `blocked site`). | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| organization.name | Organization name. | keyword | +| organization.name.text | Multi-field of `organization.name`. | match_only_text | +| related.ip | All of the IPs seen on your event. | ip | +| tags | List of keywords used to tag each event. | keyword | +| url.original | Unmodified original url as seen in the event source. Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. This field is meant to represent the URL as it was observed, complete or not. | wildcard | +| url.original.text | Multi-field of `url.original`. | match_only_text | + + +### Alert + +This is the `alert` dataset. + +An example event for `alert` looks as following: + +```json +{ + "@timestamp": "2020-11-17T22:05:13.000Z", + "agent": { + "ephemeral_id": "56053d91-103c-4c77-8f15-0a1006a80102", + "hostname": "docker-fleet-agent", + "id": "4f53bc01-9d14-4e27-b716-9b41958e11e0", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "carbon_black_cloud": { + "alert": { + "category": "warning", + "device": { + "external_ip": "81.2.69.143", + "internal_ip": "81.2.69.144", + "location": "UNKNOWN", + "os": "WINDOWS" + }, + "last_update_time": "2020-11-17T22:05:13Z", + "legacy_alert_id": "C8EB7306-AF26-4A9A-B677-814B3AF69720", + "organization_key": "ABCD6X3T", + "policy": { + "applied": "APPLIED", + "id": 6997287, + "name": "Standard" + }, + "product_id": "0x5406", + "product_name": "U3 Cruzer Micro", + "reason_code": "6D578342-9DE5-4353-9C25-1D3D857BFC5B:DCAEB1FA-513C-4026-9AB6-37A935873FBC", + "run_state": "DID_NOT_RUN", + "sensor_action": "DENY", + "serial_number": "0875920EF7C2A304", + "target_value": "MEDIUM", + "threat_cause": { + "cause_event_id": "FCEE2AF0-D832-4C9F-B988-F11B46028C9E", + "threat_category": "NON_MALWARE", + "vector": "REMOVABLE_MEDIA" + }, + "threat_id": "t5678", + "type": "DEVICE_CONTROL", + "vendor_id": "0x0781", + "vendor_name": "SanDisk", + "workflow": { + "changed_by": "Carbon Black", + "last_update_time": "2020-11-17T22:02:16Z", + "state": "OPEN" + } + } + }, + "data_stream": { + "dataset": "carbon_black_cloud.alert", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "4f53bc01-9d14-4e27-b716-9b41958e11e0", + "snapshot": false, + "version": "7.17.0" + }, + "event": { + "agent_id_status": "verified", + "created": "2022-04-14T11:46:13.154Z", + "dataset": "carbon_black_cloud.alert", + "end": "2020-11-17T22:02:16Z", + "id": "test1", + "ingested": "2022-04-14T11:46:14Z", + "kind": "alert", + "original": "{\"alert_url\":\"https://defense-eap01.conferdeploy.net/alerts?orgId=1889976\",\"category\":\"WARNING\",\"create_time\":\"2020-11-17T22:05:13Z\",\"device_external_ip\":\"81.2.69.143\",\"device_id\":2,\"device_internal_ip\":\"81.2.69.144\",\"device_location\":\"UNKNOWN\",\"device_name\":\"DESKTOP-002\",\"device_os\":\"WINDOWS\",\"device_os_version\":\"Windows 10 x64\",\"device_username\":\"test34@demo.com\",\"first_event_time\":\"2020-11-17T22:02:16Z\",\"id\":\"test1\",\"last_event_time\":\"2020-11-17T22:02:16Z\",\"last_update_time\":\"2020-11-17T22:05:13Z\",\"legacy_alert_id\":\"C8EB7306-AF26-4A9A-B677-814B3AF69720\",\"org_key\":\"ABCD6X3T\",\"policy_applied\":\"APPLIED\",\"policy_id\":6997287,\"policy_name\":\"Standard\",\"product_id\":\"0x5406\",\"product_name\":\"U3 Cruzer Micro\",\"reason\":\"Access attempted on unapproved USB device SanDisk U3 Cruzer Micro (SN: 0875920EF7C2A304). A Deny Policy Action was applied.\",\"reason_code\":\"6D578342-9DE5-4353-9C25-1D3D857BFC5B:DCAEB1FA-513C-4026-9AB6-37A935873FBC\",\"run_state\":\"DID_NOT_RUN\",\"sensor_action\":\"DENY\",\"serial_number\":\"0875920EF7C2A304\",\"severity\":3,\"target_value\":\"MEDIUM\",\"threat_cause_cause_event_id\":\"FCEE2AF0-D832-4C9F-B988-F11B46028C9E\",\"threat_cause_threat_category\":\"NON_MALWARE\",\"threat_cause_vector\":\"REMOVABLE_MEDIA\",\"threat_id\":\"t5678\",\"type\":\"DEVICE_CONTROL\",\"vendor_id\":\"0x0781\",\"vendor_name\":\"SanDisk\",\"workflow\":{\"changed_by\":\"Carbon Black\",\"comment\":\"\",\"last_update_time\":\"2020-11-17T22:02:16Z\",\"remediation\":\"\",\"state\":\"OPEN\"}}", + "reason": "Access attempted on unapproved USB device SanDisk U3 Cruzer Micro (SN: 0875920EF7C2A304). A Deny Policy Action was applied.", + "severity": 3, + "start": "2020-11-17T22:02:16Z", + "url": "https://defense-eap01.conferdeploy.net/alerts?orgId=1889976" + }, + "host": { + "hostname": "DESKTOP-002", + "id": "2", + "ip": [ + "81.2.69.144", + "81.2.69.143" + ], + "name": "DESKTOP-002", + "os": { + "type": "windows", + "version": "Windows 10 x64" + } + }, + "input": { + "type": "httpjson" + }, + "related": { + "hosts": [ + "DESKTOP-002" + ], + "ip": [ + "81.2.69.144", + "81.2.69.143" + ], + "user": [ + "test34@demo.com" + ] + }, + "tags": [ + "preserve_original_event", + "forwarded", + "carbon_black_cloud-alert" + ], + "user": { + "name": "test34@demo.com" + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| carbon_black_cloud.alert.blocked_threat_category | The category of threat which we were able to take action on. | keyword | +| carbon_black_cloud.alert.category | The category of the alert. | keyword | +| carbon_black_cloud.alert.count | | long | +| carbon_black_cloud.alert.created_by_event_id | Event identifier that initiated the alert. | keyword | +| carbon_black_cloud.alert.device.external_ip | External IP of the device. | ip | +| carbon_black_cloud.alert.device.internal_ip | Internal IP of the device. | ip | +| carbon_black_cloud.alert.device.location | The Location of device. | keyword | +| carbon_black_cloud.alert.device.os | OS of the device. | keyword | +| carbon_black_cloud.alert.document_guid | Unique ID of document. | keyword | +| carbon_black_cloud.alert.ioc.field | The field the indicator of comprise (IOC) hit contains. | keyword | +| carbon_black_cloud.alert.ioc.hit | IOC field value or IOC query that matches. | keyword | +| carbon_black_cloud.alert.ioc.id | The identifier of the IOC that cause the hit. | keyword | +| carbon_black_cloud.alert.kill_chain_status | The stage within the Cyber Kill Chain sequence most closely associated with the attributes of the alert. | keyword | +| carbon_black_cloud.alert.last_update_time | The last time the alert was updated as an ISO 8601 UTC timestamp. | date | +| carbon_black_cloud.alert.legacy_alert_id | The legacy identifier for the alert. | keyword | +| carbon_black_cloud.alert.not_blocked_threat_category | Other potentially malicious activity involved in the threat that we weren't able to take action on (either due to policy config, or not having a relevant rule). | keyword | +| carbon_black_cloud.alert.notes_present | Indicates if notes are associated with the threat_id. | boolean | +| carbon_black_cloud.alert.organization_key | The unique identifier for the organization associated with the alert. | keyword | +| carbon_black_cloud.alert.policy.applied | Whether a policy was applied. | keyword | +| carbon_black_cloud.alert.policy.id | The identifier for the policy associated with the device at the time of the alert. | long | +| carbon_black_cloud.alert.policy.name | The name of the policy associated with the device at the time of the alert. | keyword | +| carbon_black_cloud.alert.product_id | The hexadecimal id of the USB device's product. | keyword | +| carbon_black_cloud.alert.product_name | The name of the USB device’s vendor. | keyword | +| carbon_black_cloud.alert.reason_code | Shorthand enum for the full-text reason. | keyword | +| carbon_black_cloud.alert.report.id | The identifier of the report that contains the IOC. | keyword | +| carbon_black_cloud.alert.report.name | The name of the report that contains the IOC. | keyword | +| carbon_black_cloud.alert.run_state | Whether the threat in the alert ran. | keyword | +| carbon_black_cloud.alert.sensor_action | The action taken by the sensor, according to the rule of the policy. | keyword | +| carbon_black_cloud.alert.serial_number | The serial number of the USB device. | keyword | +| carbon_black_cloud.alert.status | status of alert. | keyword | +| carbon_black_cloud.alert.tags | Tags associated with the alert. | keyword | +| carbon_black_cloud.alert.target_value | The priority of the device assigned by the policy. | keyword | +| carbon_black_cloud.alert.threat_activity.c2 | Whether the alert involved a command and control (c2) server. | keyword | +| carbon_black_cloud.alert.threat_activity.dlp | Whether the alert involved data loss prevention (DLP). | keyword | +| carbon_black_cloud.alert.threat_activity.phish | Whether the alert involved phishing. | keyword | +| carbon_black_cloud.alert.threat_cause.actor.md5 | MD5 of the threat cause actor. | keyword | +| carbon_black_cloud.alert.threat_cause.actor.name | The name can be one of the following: process commandline, process name, or analytic matched threat. Analytic matched threats are Exploit, Malware, PUP, or Trojan. | keyword | +| carbon_black_cloud.alert.threat_cause.actor.process_pid | Process identifier (PID) of the actor process. | keyword | +| carbon_black_cloud.alert.threat_cause.actor.sha256 | SHA256 of the threat cause actor. | keyword | +| carbon_black_cloud.alert.threat_cause.cause_event_id | ID of the Event that triggered the threat. | keyword | +| carbon_black_cloud.alert.threat_cause.process.guid | The global unique identifier of the process. | keyword | +| carbon_black_cloud.alert.threat_cause.process.parent.guid | The global unique identifier of the process. | keyword | +| carbon_black_cloud.alert.threat_cause.reputation | Reputation of the threat cause. | keyword | +| carbon_black_cloud.alert.threat_cause.threat_category | Category of the threat cause. | keyword | +| carbon_black_cloud.alert.threat_cause.vector | The source of the threat cause. | keyword | +| carbon_black_cloud.alert.threat_id | The identifier of a threat which this alert belongs. Threats are comprised of a combination of factors that can be repeated across devices. | keyword | +| carbon_black_cloud.alert.threat_indicators.process_name | Process name associated with threat. | keyword | +| carbon_black_cloud.alert.threat_indicators.sha256 | Sha256 associated with threat. | keyword | +| carbon_black_cloud.alert.threat_indicators.ttps | Tactics, techniques and procedures associated with threat. | keyword | +| carbon_black_cloud.alert.type | Type of alert. | keyword | +| carbon_black_cloud.alert.vendor_id | The hexadecimal id of the USB device's vendor. | keyword | +| carbon_black_cloud.alert.vendor_name | The name of the USB device’s vendor. | keyword | +| carbon_black_cloud.alert.watchlists.id | The identifier of watchlist. | keyword | +| carbon_black_cloud.alert.watchlists.name | The name of the watchlist. | keyword | +| carbon_black_cloud.alert.workflow.changed_by | The name of user who changed the workflow. | keyword | +| carbon_black_cloud.alert.workflow.comment | Comment associated with workflow. | keyword | +| carbon_black_cloud.alert.workflow.last_update_time | The last update time of workflow. | date | +| carbon_black_cloud.alert.workflow.remediation | N/A | keyword | +| carbon_black_cloud.alert.workflow.state | The state of workflow. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.dataset | Event dataset. | constant_keyword | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.id | Unique ID to describe the event. | keyword | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module. | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.reason | Reason why this event happened, according to the source. This describes the why of a particular action or outcome captured in the event. Where `event.action` captures the action from the event, `event.reason` describes why that action was taken. For example, a web proxy with an `event.action` which denied the request may also populate `event.reason` with the reason why (e.g. `blocked site`). | keyword | +| event.severity | The numeric severity of the event according to your event source. What the different severity values mean can be different between sources and use cases. It's up to the implementer to make sure severities are consistent across events from the same source. The Syslog severity belongs in `log.syslog.severity.code`. `event.severity` is meant to represent the severity according to the event source (e.g. firewall, IDS). If the event source does not publish its own severity, you may optionally copy the `log.syslog.severity.code` to `event.severity`. | long | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.url | URL linking to an external system to continue investigation of this event. This URL links to another system where in-depth investigation of the specific occurrence of this event can take place. Alert events, indicated by `event.kind:alert`, are a common use case for this field. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.type | Use the `os.type` field to categorize the operating system into one of the broad commercial families. One of these following values should be used (lowercase): linux, macos, unix, windows. If the OS you're dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| process.entity_id | Unique identifier for the process. The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. | keyword | +| process.executable | Absolute path to the process executable. | keyword | +| process.executable.text | Multi-field of `process.executable`. | match_only_text | +| process.name | Process name. Sometimes called program name or similar. | keyword | +| process.name.text | Multi-field of `process.name`. | match_only_text | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| user.domain | Name of the directory the user is a member of. For example, an LDAP or Active Directory domain name. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | + + +### Endpoint Event + +This is the `endpoint_event` dataset. + +An example event for `endpoint_event` looks as following: + +```json +{ + "process": { + "parent": { + "pid": 1684, + "entity_id": "XXXXXXXX-003d902d-00000694-00000000-1d7540221dedd62", + "command_line": "C:\\WindowsAzure\\GuestAgent_2.7.41491.1010_2021-05-11_233023\\GuestAgent\\WindowsAzureGuestAgent.exe", + "executable": "c:\\windowsazure\\guestagent_2.7.41491.1010_2021-05-11_233023\\guestagent\\windowsazureguestagent.exe", + "hash": { + "sha256": "44a1975b2197484bb22a0eb673e67e7ee9ec20265e9f6347f5e06b6447ac82c5", + "md5": "03dd698da2671383c9b4f868c9931879" + } + }, + "pid": 4880, + "entity_id": "XXXXXXXX-003d902d-00001310-00000000-1d81e748c4adb37", + "command_line": "\"route.exe\" print", + "executable": "c:\\windows\\system32\\route.exe", + "hash": { + "sha256": "9e9c7696859b94b1c33a532fa4d5c648226cf3361121dd899e502b8949fb11a6", + "md5": "2498272dc48446891182747428d02a30" + } + }, + "ecs": { + "version": "8.0.0" + }, + "carbon_black_cloud": { + "endpoint_event": { + "schema": 1, + "event_origin": "EDR", + "process": { + "duration": 2, + "parent": { + "reputation": "REP_RESOLVING" + }, + "publisher": [ + { + "name": "Microsoft Windows", + "state": [ + "FILE_SIGNATURE_STATE_SIGNED", + "FILE_SIGNATURE_STATE_VERIFIED", + "FILE_SIGNATURE_STATE_TRUSTED", + "FILE_SIGNATURE_STATE_OS", + "FILE_SIGNATURE_STATE_CATALOG_SIGNED" + ] + } + ], + "reputation": "REP_RESOLVING", + "terminated": true, + "username": "NT AUTHORITY\\SYSTEM" + }, + "organization_key": "XXXXXXXX", + "backend": { + "timestamp": "2022-02-10 11:52:50 +0000 UTC" + }, + "target_cmdline": "\"route.exe\" print", + "type": "endpoint.event.procend", + "device": { + "os": "WINDOWS", + "timestamp": "2022-02-10 11:51:35.0684097 +0000 UTC", + "external_ip": "67.43.156.12" + }, + "sensor_action": "ACTION_ALLOW" + } + }, + "host": { + "hostname": "client-cb2", + "id": "4034605", + "os": { + "type": "windows" + }, + "ip": [ + "67.43.156.13" + ] + }, + "event": { + "action": "ACTION_PROCESS_TERMINATE", + "orignal": "{\"type\":\"endpoint.event.procend\",\"process_guid\":\"XXXXXXXX-003d902d-00001310-00000000-1d81e748c4adb37\",\"parent_guid\":\"XXXXXXXX-003d902d-00000694-00000000-1d7540221dedd62\",\"backend_timestamp\":\"2022-02-10 11:52:50 +0000 UTC\",\"org_key\":\"XXXXXXXX\",\"device_id\":\"4034605\",\"device_name\":\"client-cb2\",\"device_external_ip\":\"67.43.156.13\",\"device_os\":\"WINDOWS\",\"device_group\":\"\",\"action\":\"ACTION_PROCESS_TERMINATE\",\"schema\":1,\"device_timestamp\":\"2022-02-10 11:51:35.0684097 +0000 UTC\",\"process_terminated\":true,\"process_duration\":2,\"process_reputation\":\"REP_RESOLVING\",\"parent_reputation\":\"REP_RESOLVING\",\"process_pid\":4880,\"parent_pid\":1684,\"process_publisher\":[{\"name\":\"Microsoft Windows\",\"state\":\"FILE_SIGNATURE_STATE_SIGNED | FILE_SIGNATURE_STATE_VERIFIED | FILE_SIGNATURE_STATE_TRUSTED | FILE_SIGNATURE_STATE_OS | FILE_SIGNATURE_STATE_CATALOG_SIGNED\"}],\"process_path\":\"c:\\\\windows\\\\system32\\\\route.exe\",\"parent_path\":\"c:\\\\windowsazure\\\\guestagent_2.7.41491.1010_2021-05-11_233023\\\\guestagent\\\\windowsazureguestagent.exe\",\"process_hash\":[\"2498272dc48446891182747428d02a30\",\"9e9c7696859b94b1c33a532fa4d5c648226cf3361121dd899e502b8949fb11a6\"],\"parent_hash\":[\"03dd698da2671383c9b4f868c9931879\",\"44a1975b2197484bb22a0eb673e67e7ee9ec20265e9f6347f5e06b6447ac82c5\"],\"process_cmdline\":\"\\\"route.exe\\\" print\",\"parent_cmdline\":\"C:\\\\WindowsAzure\\\\GuestAgent_2.7.41491.1010_2021-05-11_233023\\\\GuestAgent\\\\WindowsAzureGuestAgent.exe\",\"process_username\":\"NT AUTHORITY\\\\SYSTEM\",\"sensor_action\":\"ACTION_ALLOW\",\"event_origin\":\"EDR\",\"target_cmdline\":\"\\\"route.exe\\\" print\"}" + }, + "data_stream": { + "dataset": "carbon_black_cloud.endpoint_event", + "namespace": "ep", + "type": "logs" + }, + "elastic_agent": { + "id": "3b20ea47-9610-412d-97e3-47cd19b7e4d5", + "snapshot": true, + "version": "8.0.0" + }, + "input": { + "type": "aws-s3" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "carbon_black_cloud-endpoint-event" + ] +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| carbon_black_cloud.endpoint_event.alert_id | The ID of the Alert this event is associated with. | keyword | +| carbon_black_cloud.endpoint_event.backend.timestamp | Time when the backend received the batch of events. | keyword | +| carbon_black_cloud.endpoint_event.childproc.guid | Unique ID of the child process. | keyword | +| carbon_black_cloud.endpoint_event.childproc.hash.md5 | Cryptographic MD5 hashes of the executable file backing the child process. | keyword | +| carbon_black_cloud.endpoint_event.childproc.hash.sha256 | Cryptographic SHA256 hashes of the executable file backing the child process. | keyword | +| carbon_black_cloud.endpoint_event.childproc.name | Full path to the target of the crossproc event on the device's local file system. | keyword | +| carbon_black_cloud.endpoint_event.childproc.pid | OS-reported Process ID of the child process. | long | +| carbon_black_cloud.endpoint_event.childproc.publisher.name | The name of the publisher. | keyword | +| carbon_black_cloud.endpoint_event.childproc.publisher.state | The state of the publisher. | keyword | +| carbon_black_cloud.endpoint_event.childproc.reputation | Carbon Black Cloud Reputation string for the childproc. | keyword | +| carbon_black_cloud.endpoint_event.childproc.username | The username associated with the user context that the child process was started under. | keyword | +| carbon_black_cloud.endpoint_event.crossproc.action | The action taken on cross-process. | keyword | +| carbon_black_cloud.endpoint_event.crossproc.api | Name of the operating system API called by the actor process. | keyword | +| carbon_black_cloud.endpoint_event.crossproc.guid | Unique ID of the cross process. | keyword | +| carbon_black_cloud.endpoint_event.crossproc.hash.md5 | Cryptographic MD5 hashes of the target of the crossproc event. | keyword | +| carbon_black_cloud.endpoint_event.crossproc.hash.sha256 | Cryptographic SHA256 hashes of the target of the crossproc event. | keyword | +| carbon_black_cloud.endpoint_event.crossproc.name | Full path to the target of the crossproc event on the device's local file system. | keyword | +| carbon_black_cloud.endpoint_event.crossproc.publisher.name | The name of the publisher. | keyword | +| carbon_black_cloud.endpoint_event.crossproc.publisher.state | The state of the publisher. | keyword | +| carbon_black_cloud.endpoint_event.crossproc.reputation | Carbon Black Cloud Reputation string for the crossproc. | keyword | +| carbon_black_cloud.endpoint_event.crossproc.target | True if the process was the target of the cross-process event; false if the process was the actor. | boolean | +| carbon_black_cloud.endpoint_event.device.external_ip | External IP of the device. | ip | +| carbon_black_cloud.endpoint_event.device.internal_ip | Internal IP of the device. | ip | +| carbon_black_cloud.endpoint_event.device.os | Os name. | keyword | +| carbon_black_cloud.endpoint_event.device.timestamp | Time seen on sensor. | keyword | +| carbon_black_cloud.endpoint_event.event_origin | Indicates which product the event came from. "EDR" indicates the event originated from Enterprise EDR. "NGAV" indicates the event originated from Endpoint Standard. | keyword | +| carbon_black_cloud.endpoint_event.fileless_scriptload.cmdline | Deobfuscated script content run in a fileless context by the process. | keyword | +| carbon_black_cloud.endpoint_event.fileless_scriptload.cmdline_length | Character count of the deobfuscated script content run in a fileless context. | keyword | +| carbon_black_cloud.endpoint_event.fileless_scriptload.hash.md5 | MD5 hash of the deobfuscated script content run by the process in a fileless context. | keyword | +| carbon_black_cloud.endpoint_event.fileless_scriptload.hash.sha256 | SHA-256 hash of the deobfuscated script content run by the process in a fileless context. | keyword | +| carbon_black_cloud.endpoint_event.modload.count | Count of modload events reported by the sensor since last initialization. | long | +| carbon_black_cloud.endpoint_event.modload.effective_reputation | Effective reputation(s) of the loaded module(s); applied by the sensor when the event occurred. | keyword | +| carbon_black_cloud.endpoint_event.modload.publisher.name | The name of the publisher. | keyword | +| carbon_black_cloud.endpoint_event.modload.publisher.state | The state of the publisher. | keyword | +| carbon_black_cloud.endpoint_event.netconn.proxy.domain | DNS name associated with the "proxy" end of this network connection; may be empty if the name cannot be inferred or the connection is made direct to/from a proxy IP address. | keyword | +| carbon_black_cloud.endpoint_event.netconn.proxy.ip | IPv4 or IPv6 address in string format associated with the "proxy" end of this network connection. | keyword | +| carbon_black_cloud.endpoint_event.netconn.proxy.port | UDP/TCP port number associated with the "proxy" end of this network connection. | keyword | +| carbon_black_cloud.endpoint_event.organization_key | The organization key associated with the console instance. | keyword | +| carbon_black_cloud.endpoint_event.process.duration | The time difference in seconds between the process start and process terminate event. | long | +| carbon_black_cloud.endpoint_event.process.parent.reputation | Reputation of the parent process; applied when event is processed by the Carbon Black Cloud i.e. after sensor delivers event to the cloud. | keyword | +| carbon_black_cloud.endpoint_event.process.publisher.name | The name of the publisher. | keyword | +| carbon_black_cloud.endpoint_event.process.publisher.state | The state of the publisher. | keyword | +| carbon_black_cloud.endpoint_event.process.reputation | Reputation of the actor process; applied when event is processed by the Carbon Black Cloud i.e. after sensor delivers event to the cloud. | keyword | +| carbon_black_cloud.endpoint_event.process.terminated | True if process was terminated elase false. | boolean | +| carbon_black_cloud.endpoint_event.process.username | The username associated with the user context that this process was started under. | keyword | +| carbon_black_cloud.endpoint_event.schema | The schema version. The current schema version is "1". This schema version will only be incremented if the field definitions are changed in a backwards-incompatible way. | long | +| carbon_black_cloud.endpoint_event.scriptload.count | Count of scriptload events across all processes reported by the sensor since last initialization. | long | +| carbon_black_cloud.endpoint_event.scriptload.effective_reputation | Effective reputation(s) of the script file(s) loaded at process launch; applied by the sensor when the event occurred. | keyword | +| carbon_black_cloud.endpoint_event.scriptload.hash.md5 | Cryptographic MD5 hashes of the target of the scriptload event. | keyword | +| carbon_black_cloud.endpoint_event.scriptload.hash.sha256 | Cryptographic SHA256 hashes of the target of the scriptload event. | keyword | +| carbon_black_cloud.endpoint_event.scriptload.name | Full path to the target of the crossproc event on the device's local file system. | keyword | +| carbon_black_cloud.endpoint_event.scriptload.publisher.name | The name of the publisher. | keyword | +| carbon_black_cloud.endpoint_event.scriptload.publisher.state | The state of the publisher. | keyword | +| carbon_black_cloud.endpoint_event.scriptload.reputation | Carbon Black Cloud Reputation string for the scriptload. | keyword | +| carbon_black_cloud.endpoint_event.sensor_action | The sensor action taken on event. | keyword | +| carbon_black_cloud.endpoint_event.target_cmdline | Process command line associated with the target process. | keyword | +| carbon_black_cloud.endpoint_event.type | The event type. | keyword | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| dll.hash.md5 | MD5 hash. | keyword | +| dll.hash.sha256 | SHA256 hash. | keyword | +| dll.path | Full file path of the library. | keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.dataset | Event dataset. | constant_keyword | +| event.id | Unique ID to describe the event. | keyword | +| event.module | Event module. | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.reason | Reason why this event happened, according to the source. This describes the why of a particular action or outcome captured in the event. Where `event.action` captures the action from the event, `event.reason` describes why that action was taken. For example, a web proxy with an `event.action` which denied the request may also populate `event.reason` with the reason why (e.g. `blocked site`). | keyword | +| file.hash.md5 | MD5 hash. | keyword | +| file.hash.sha256 | SHA256 hash. | keyword | +| file.path | Full path to the file, including the file name. It should include the drive letter, when appropriate. | keyword | +| file.path.text | Multi-field of `file.path`. | match_only_text | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| process.command_line | Full command line that started the process, including the absolute path to the executable, and all arguments. Some arguments may be filtered to protect sensitive information. | wildcard | +| process.command_line.text | Multi-field of `process.command_line`. | match_only_text | +| process.entity_id | Unique identifier for the process. The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. | keyword | +| process.executable | Absolute path to the process executable. | keyword | +| process.executable.text | Multi-field of `process.executable`. | match_only_text | +| process.hash.md5 | MD5 hash. | keyword | +| process.hash.sha256 | SHA256 hash. | keyword | +| process.parent.command_line | Full command line that started the process, including the absolute path to the executable, and all arguments. Some arguments may be filtered to protect sensitive information. | wildcard | +| process.parent.command_line.text | Multi-field of `process.parent.command_line`. | match_only_text | +| process.parent.entity_id | Unique identifier for the process. The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. | keyword | +| process.parent.executable | Absolute path to the process executable. | keyword | +| process.parent.executable.text | Multi-field of `process.parent.executable`. | match_only_text | +| process.parent.hash.md5 | MD5 hash. | keyword | +| process.parent.hash.sha256 | SHA256 hash. | keyword | +| process.parent.pid | Process id. | long | +| process.pid | Process id. | long | +| registry.path | Full path, including hive, key and value | keyword | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| source.address | Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| tags | List of keywords used to tag each event. | keyword | +| user.domain | Name of the directory the user is a member of. For example, an LDAP or Active Directory domain name. | keyword | + + +### Watchlist Hit + +This is the `watchlist_hit` dataset. + +An example event for `watchlist_hit` looks as following: + +```json +{ + "tags": [ + "preserve_original_event", + "forwarded", + "carbon_black_cloud-watchlist-hit" + ], + "input": { + "type": "aws-s3" + }, + "data_stream": { + "namespace": "default", + "type": "logs", + "dataset": "carbon_black_cloud.watchlist_hit" + }, + "agent": { + "id": "e0d5f508-9616-400f-b26b-bb1aa6638b80", + "type": "filebeat", + "version": "8.0.0" + }, + "ecs": { + "version": "8.0.0" + }, + "process": { + "parent": { + "pid": 4076, + "entity_id": "7DESJ9GN-00442a47-00000fec-00000000-1d81ed87d4655d1", + "command_line": "C:\\WINDOWS\\system32\\cmd.exe /c \"sc query aella_conf | findstr RUNNING \u003e null\"", + "executable": "c:\\windows\\syswow64\\cmd.exe", + "hash": { + "sha256": "4d89fc34d5f0f9babd022271c585a9477bf41e834e46b991deaa0530fdb25e22", + "md5": "d0fce3afa6aa1d58ce9fa336cc2b675b" + } + }, + "pid": 7516, + "entity_id": "7DESJ9GN-00442a47-00001d5c-00000000-1d81ed87d63d2c6", + "command_line": "sc query aella_conf ", + "executable": "c:\\windows\\syswow64\\sc.exe", + "hash": { + "sha256": "4fe6d9eb8109fb79ff645138de7cff37906867aade589bd68afa503a9ab3cfb2", + "md5": "d9d7684b8431a0d10d0e76fe9f5ffec8" + } + }, + "carbon_black_cloud": { + "watchlist_hit": { + "schema": 1, + "process": { + "parent": { + "publisher": [ + { + "name": "Microsoft Windows", + "state": [ + "FILE_SIGNATURE_STATE_SIGNED", + "FILE_SIGNATURE_STATE_VERIFIED", + "FILE_SIGNATURE_STATE_TRUSTED", + "FILE_SIGNATURE_STATE_OS", + "FILE_SIGNATURE_STATE_CATALOG_SIGNED" + ] + } + ], + "reputation": "REP_WHITE", + "username": "NT AUTHORITY\\SYSTEM" + }, + "publisher": [ + { + "name": "Microsoft Windows", + "state": [ + "FILE_SIGNATURE_STATE_SIGNED", + "FILE_SIGNATURE_STATE_VERIFIED", + "FILE_SIGNATURE_STATE_TRUSTED", + "FILE_SIGNATURE_STATE_OS", + "FILE_SIGNATURE_STATE_CATALOG_SIGNED" + ] + } + ], + "reputation": "REP_WHITE", + "username": "NT AUTHORITY\\SYSTEM" + }, + "organization_key": "xxxxxxxx", + "report": { + "name": "Discovery - System Service Discovery Detected", + "id": "CFnKBKLTv6hUkBGFobRdg-565571", + "tags": [ + "attack", + "attackframework", + "threathunting", + "hunting", + "t1007", + "recon", + "discovery", + "windows" + ] + }, + "watchlists": [ + { + "name": "ATT\u0026CK Framework", + "id": "P5f9AW29TGmTOvBW156Cig" + } + ], + "type": "watchlist.hit", + "ioc": { + "hit": "((process_name:sc.exe -parent_name:svchost.exe) AND process_cmdline:query) -enriched:true", + "id": "565571-0" + }, + "device": { + "internal_ip": "10.10.156.12", + "external_ip": "67.43.156.12", + "os": "WINDOWS" + } + } + }, + "host": { + "hostname": "Carbonblack-win1", + "os": { + "type": "windows" + }, + "ip": [ + "10.10.156.12", + "67.43.156.12" + ], + "id": "4467271" + }, + "event": { + "kind": "event", + "severity": 3, + "agent_id_status": "verified", + "ingested": "2022-02-17T07:23:31Z", + "original": "{\"schema\":1,\"create_time\":\"2022-02-10T23:54:32.449Z\",\"device_external_ip\":\"205.234.30.196\",\"device_id\":4467271,\"device_internal_ip\":\"10.33.4.214\",\"device_name\":\"Carbonblack-win1\",\"device_os\":\"WINDOWS\",\"ioc_hit\":\"((process_name:sc.exe -parent_name:svchost.exe) AND process_cmdline:query) -enriched:true\",\"ioc_id\":\"565571-0\",\"org_key\":\"7DESJ9GN\",\"parent_cmdline\":\"C:\\\\WINDOWS\\\\system32\\\\cmd.exe /c \\\"sc query aella_conf | findstr RUNNING \\u003e null\\\"\",\"parent_guid\":\"7DESJ9GN-00442a47-00000fec-00000000-1d81ed87d4655d1\",\"parent_hash\":[\"d0fce3afa6aa1d58ce9fa336cc2b675b\",\"4d89fc34d5f0f9babd022271c585a9477bf41e834e46b991deaa0530fdb25e22\"],\"parent_path\":\"c:\\\\windows\\\\syswow64\\\\cmd.exe\",\"parent_pid\":4076,\"parent_publisher\":[{\"name\":\"Microsoft Windows\",\"state\":\"FILE_SIGNATURE_STATE_SIGNED | FILE_SIGNATURE_STATE_VERIFIED | FILE_SIGNATURE_STATE_TRUSTED | FILE_SIGNATURE_STATE_OS | FILE_SIGNATURE_STATE_CATALOG_SIGNED\"}],\"parent_reputation\":\"REP_WHITE\",\"parent_username\":\"NT AUTHORITY\\\\SYSTEM\",\"process_cmdline\":\"sc query aella_conf \",\"process_guid\":\"7DESJ9GN-00442a47-00001d5c-00000000-1d81ed87d63d2c6\",\"process_hash\":[\"d9d7684b8431a0d10d0e76fe9f5ffec8\",\"4fe6d9eb8109fb79ff645138de7cff37906867aade589bd68afa503a9ab3cfb2\"],\"process_path\":\"c:\\\\windows\\\\syswow64\\\\sc.exe\",\"process_pid\":7516,\"process_publisher\":[{\"name\":\"Microsoft Windows\",\"state\":\"FILE_SIGNATURE_STATE_SIGNED | FILE_SIGNATURE_STATE_VERIFIED | FILE_SIGNATURE_STATE_TRUSTED | FILE_SIGNATURE_STATE_OS | FILE_SIGNATURE_STATE_CATALOG_SIGNED\"}],\"process_reputation\":\"REP_WHITE\",\"process_username\":\"NT AUTHORITY\\\\SYSTEM\",\"report_id\":\"CFnKBKLTv6hUkBGFobRdg-565571\",\"report_name\":\"Discovery - System Service Discovery Detected\",\"report_tags\":[\"attack\",\"attackframework\",\"threathunting\",\"hunting\",\"t1007\",\"recon\",\"discovery\",\"windows\"],\"severity\":3,\"type\":\"watchlist.hit\",\"watchlists\":[{\"id\":\"P5f9AW29TGmTOvBW156Cig\",\"name\":\"ATT\\u0026CK Framework\"}]}", + "dataset": "carbon_black_cloud.watchlist_hit" + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| carbon_black_cloud.watchlist_hit.device.external_ip | External IP of the device. | ip | +| carbon_black_cloud.watchlist_hit.device.internal_ip | Internal IP of the device. | ip | +| carbon_black_cloud.watchlist_hit.device.os | OS Type of device (Windows/OSX/Linux). | keyword | +| carbon_black_cloud.watchlist_hit.ioc.field | Field the IOC hit contains. | keyword | +| carbon_black_cloud.watchlist_hit.ioc.hit | IOC field value, or IOC query that matches. | keyword | +| carbon_black_cloud.watchlist_hit.ioc.id | ID of the IOC that caused the hit. | keyword | +| carbon_black_cloud.watchlist_hit.organization_key | The organization key associated with the console instance. | keyword | +| carbon_black_cloud.watchlist_hit.process.parent.publisher.name | The name of the publisher. | keyword | +| carbon_black_cloud.watchlist_hit.process.parent.publisher.state | The state of the publisher. | keyword | +| carbon_black_cloud.watchlist_hit.process.parent.reputation | Reputation of the actor process; applied when event is processed by the Carbon Black Cloud i.e. after sensor delivers event to the cloud. | keyword | +| carbon_black_cloud.watchlist_hit.process.parent.username | The username associated with the user context that this process was started under. | keyword | +| carbon_black_cloud.watchlist_hit.process.reputation | Reputation of the actor process; applied when event is processed by the Carbon Black Cloud i.e. after sensor delivers event to the cloud. | keyword | +| carbon_black_cloud.watchlist_hit.process.username | The username associated with the user context that this process was started under. | keyword | +| carbon_black_cloud.watchlist_hit.report.id | ID of the watchlist report(s) that detected a hit on the process. | keyword | +| carbon_black_cloud.watchlist_hit.report.name | Name of the watchlist report(s) that detected a hit on the process. | keyword | +| carbon_black_cloud.watchlist_hit.report.tags | List of tags associated with the report(s) that detected a hit on the process. | keyword | +| carbon_black_cloud.watchlist_hit.schema | Schema version. | long | +| carbon_black_cloud.watchlist_hit.type | The watchlist hit type. | keyword | +| carbon_black_cloud.watchlist_hit.watchlists.id | The ID of the watchlists. | keyword | +| carbon_black_cloud.watchlist_hit.watchlists.name | The name of the watchlists. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.dataset | Event dataset. | constant_keyword | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module. | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.severity | The numeric severity of the event according to your event source. What the different severity values mean can be different between sources and use cases. It's up to the implementer to make sure severities are consistent across events from the same source. The Syslog severity belongs in `log.syslog.severity.code`. `event.severity` is meant to represent the severity according to the event source (e.g. firewall, IDS). If the event source does not publish its own severity, you may optionally copy the `log.syslog.severity.code` to `event.severity`. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.type | Use the `os.type` field to categorize the operating system into one of the broad commercial families. One of these following values should be used (lowercase): linux, macos, unix, windows. If the OS you're dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| process.command_line | Full command line that started the process, including the absolute path to the executable, and all arguments. Some arguments may be filtered to protect sensitive information. | wildcard | +| process.command_line.text | Multi-field of `process.command_line`. | match_only_text | +| process.entity_id | Unique identifier for the process. The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. | keyword | +| process.executable | Absolute path to the process executable. | keyword | +| process.executable.text | Multi-field of `process.executable`. | match_only_text | +| process.hash.md5 | MD5 hash. | keyword | +| process.hash.sha256 | SHA256 hash. | keyword | +| process.parent.command_line | Full command line that started the process, including the absolute path to the executable, and all arguments. Some arguments may be filtered to protect sensitive information. | wildcard | +| process.parent.command_line.text | Multi-field of `process.parent.command_line`. | match_only_text | +| process.parent.entity_id | Unique identifier for the process. The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. | keyword | +| process.parent.executable | Absolute path to the process executable. | keyword | +| process.parent.executable.text | Multi-field of `process.parent.executable`. | match_only_text | +| process.parent.hash.md5 | MD5 hash. | keyword | +| process.parent.hash.sha256 | SHA256 hash. | keyword | +| process.parent.pid | Process id. | long | +| process.pid | Process id. | long | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| user.domain | Name of the directory the user is a member of. For example, an LDAP or Active Directory domain name. | keyword | + + +### Asset Vulnerability Summary + +This is the `asset_vulnerability_summary` dataset. + +An example event for `asset_vulnerability_summary` looks as following: + +```json +{ + "@timestamp": "2022-04-14T11:47:25.371Z", + "agent": { + "ephemeral_id": "377d9292-c7d0-4c30-bbee-faf4848d30d8", + "hostname": "docker-fleet-agent", + "id": "4f53bc01-9d14-4e27-b716-9b41958e11e0", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "carbon_black_cloud": { + "asset_vulnerability_summary": { + "last_sync": { + "timestamp": "2022-01-17T08:33:37.384Z" + }, + "os_info": { + "os_arch": "64-bit" + }, + "sync": { + "status": "COMPLETED", + "type": "SCHEDULED" + }, + "type": "ENDPOINT", + "vuln_count": 1770 + } + }, + "data_stream": { + "dataset": "carbon_black_cloud.asset_vulnerability_summary", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "4f53bc01-9d14-4e27-b716-9b41958e11e0", + "snapshot": false, + "version": "7.17.0" + }, + "event": { + "agent_id_status": "verified", + "created": "2022-04-14T11:47:25.371Z", + "dataset": "carbon_black_cloud.asset_vulnerability_summary", + "ingested": "2022-04-14T11:47:26Z", + "original": "{\"cve_ids\":null,\"device_id\":8,\"highest_risk_score\":10,\"host_name\":\"DESKTOP-008\",\"last_sync_ts\":\"2022-01-17T08:33:37.384932Z\",\"name\":\"DESKTOP-008KK\",\"os_info\":{\"os_arch\":\"64-bit\",\"os_name\":\"Microsoft Windows 10 Education\",\"os_type\":\"WINDOWS\",\"os_version\":\"10.0.17763\"},\"severity\":\"CRITICAL\",\"sync_status\":\"COMPLETED\",\"sync_type\":\"SCHEDULED\",\"type\":\"ENDPOINT\",\"vm_id\":\"\",\"vm_name\":\"\",\"vuln_count\":1770}" + }, + "host": { + "hostname": "DESKTOP-008", + "id": "8", + "name": "DESKTOP-008KK", + "os": { + "name": "Microsoft Windows 10 Education", + "type": "windows", + "version": "10.0.17763" + } + }, + "input": { + "type": "httpjson" + }, + "related": { + "hosts": [ + "DESKTOP-008" + ] + }, + "tags": [ + "preserve_original_event", + "forwarded", + "carbon_black_cloud-asset-vulnerability-summary" + ], + "vulnerability": { + "score": { + "base": 10 + }, + "severity": "CRITICAL" + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| carbon_black_cloud.asset_vulnerability_summary.last_sync.timestamp | The identifier is for the Last sync time. | date | +| carbon_black_cloud.asset_vulnerability_summary.os_info.os_arch | The identifier is for the Operating system architecture. | keyword | +| carbon_black_cloud.asset_vulnerability_summary.sync.status | The identifier is for the Device sync status. | keyword | +| carbon_black_cloud.asset_vulnerability_summary.sync.type | The identifier is for the Whether a manual sync was triggered for the device, or if it was a scheduled sync. | keyword | +| carbon_black_cloud.asset_vulnerability_summary.type | The identifier is for the Device type. | keyword | +| carbon_black_cloud.asset_vulnerability_summary.vm.id | The identifier is for the Virtual Machine ID. | keyword | +| carbon_black_cloud.asset_vulnerability_summary.vm.name | The identifier is for the Virtual Machine name. | keyword | +| carbon_black_cloud.asset_vulnerability_summary.vuln_count | The identifier is for the Number of vulnerabilities at this level. | integer | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.dataset | Event dataset | constant_keyword | +| event.module | Event module | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.type | Use the `os.type` field to categorize the operating system into one of the broad commercial families. One of these following values should be used (lowercase): linux, macos, unix, windows. If the OS you're dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| vulnerability.score.base | Scores can range from 0.0 to 10.0, with 10.0 being the most severe. Base scores cover an assessment for exploitability metrics (attack vector, complexity, privileges, and user interaction), impact metrics (confidentiality, integrity, and availability), and scope. For example (https://www.first.org/cvss/specification-document) | float | +| vulnerability.severity | The severity of the vulnerability can help with metrics and internal prioritization regarding remediation. For example (https://nvd.nist.gov/vuln-metrics/cvss) | keyword | diff --git a/packages/carbon_black_cloud/1.0.1/img/carbon_black_cloud-logo.svg b/packages/carbon_black_cloud/1.0.1/img/carbon_black_cloud-logo.svg new file mode 100755 index 0000000000..180cc3d212 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/img/carbon_black_cloud-logo.svg @@ -0,0 +1,91 @@ + + + + +Created by potrace 1.16, written by Peter Selinger 2001-2019 + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/carbon_black_cloud/1.0.1/img/carbon_black_cloud-screenshot.png b/packages/carbon_black_cloud/1.0.1/img/carbon_black_cloud-screenshot.png new file mode 100755 index 0000000000000000000000000000000000000000..6fda3c108d8bc27de6f53b1f284b2714d41c07f2 GIT binary patch literal 83921 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 SV70^dh>n*2`GP-hhW#Hf7I2;b literal 0 HcmV?d00001 diff --git a/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-869252c0-8d71-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-869252c0-8d71-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..129cd1c62a --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-869252c0-8d71-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,42 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.audit\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{},\"table\":null,\"vis\":{\"params\":{\"colWidth\":[{\"colIndex\":0,\"width\":831}]}}},\"gridData\":{\"h\":15,\"i\":\"c8d90872-b3b3-447d-a9fc-ada6409efeb2\",\"w\":48,\"x\":0,\"y\":0},\"panelIndex\":\"c8d90872-b3b3-447d-a9fc-ada6409efeb2\",\"panelRefName\":\"panel_0\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"16128cf1-2134-46a9-9fd3-19889a2a6c9e\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"16128cf1-2134-46a9-9fd3-19889a2a6c9e\",\"panelRefName\":\"panel_1\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"84a10ea8-959c-4fe7-852d-835b3786ed17\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"84a10ea8-959c-4fe7-852d-835b3786ed17\",\"panelRefName\":\"panel_2\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":18,\"i\":\"cd3e5a79-3640-47ff-95cd-c54debb5ee2d\",\"w\":48,\"x\":0,\"y\":30},\"panelIndex\":\"cd3e5a79-3640-47ff-95cd-c54debb5ee2d\",\"panelRefName\":\"panel_3\",\"type\":\"search\",\"version\":\"7.17.0\"}]", + "timeRestore": false, + "title": "[Carbon Black Cloud] Audit Logs", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-869252c0-8d71-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "carbon_black_cloud-ee2098d0-8d70-11ec-ac12-4bc77fa14e95", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-0f420ad0-8d71-11ec-ac12-4bc77fa14e95", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-a6d2a900-8d70-11ec-ac12-4bc77fa14e95", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-4272e690-8d71-11ec-ac12-4bc77fa14e95", + "name": "panel_3", + "type": "search" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-a94cd3a0-962a-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-a94cd3a0-962a-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..e3f216759c --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-a94cd3a0-962a-11ec-864c-3332b2a355f7.json @@ -0,0 +1,97 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Event Type\",\"field\":\"carbon_black_cloud.endpoint_event.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"searchSource\":{\"filter\":[],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}},\"description\":\"\",\"id\":\"\",\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"\",\"type\":\"pie\",\"uiState\":{\"vis\":{\"legendOpen\":true}}},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"f19543f7-04f5-42dd-849b-5f2fd8ca15f8\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"f19543f7-04f5-42dd-849b-5f2fd8ca15f8\",\"title\":\"[Carbon Black Cloud] Top 10 Event Types\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"bee43023-c427-4176-ba31-2c4831cbc44e\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"bee43023-c427-4176-ba31-2c4831cbc44e\",\"panelRefName\":\"panel_0\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"1727b9fb-4ba0-4f78-aa54-0d52db62b624\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"1727b9fb-4ba0-4f78-aa54-0d52db62b624\",\"panelRefName\":\"panel_1\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"10a11498-6416-4b72-adc6-78a5d7937428\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"10a11498-6416-4b72-adc6-78a5d7937428\",\"panelRefName\":\"panel_2\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"719006b6-32b2-4ed0-aecd-a1a1f37b471b\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"719006b6-32b2-4ed0-aecd-a1a1f37b471b\",\"panelRefName\":\"panel_3\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"735f366c-91c5-4f33-961f-4db200acc05c\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"735f366c-91c5-4f33-961f-4db200acc05c\",\"panelRefName\":\"panel_4\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"14a95a5a-61e8-459c-95bc-d1b11eed9054\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"14a95a5a-61e8-459c-95bc-d1b11eed9054\",\"panelRefName\":\"panel_5\",\"title\":\"[Carbon Black Cloud] Top 10 Device External IP\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3cc67760-3bba-4282-b91e-db120e8abe4e\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"3cc67760-3bba-4282-b91e-db120e8abe4e\",\"panelRefName\":\"panel_6\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"9df5251e-52af-4509-b30e-d62f8ef9a3a3\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"9df5251e-52af-4509-b30e-d62f8ef9a3a3\",\"panelRefName\":\"panel_7\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"04d664de-8814-4314-8f6e-2774b11ab572\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"04d664de-8814-4314-8f6e-2774b11ab572\",\"panelRefName\":\"panel_8\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"c80e4ab0-c5b5-4916-9025-d006a37aa7ba\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"c80e4ab0-c5b5-4916-9025-d006a37aa7ba\",\"panelRefName\":\"panel_9\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f57a7bf6-bc25-433b-8019-6489124907b6\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"f57a7bf6-bc25-433b-8019-6489124907b6\",\"panelRefName\":\"panel_10\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"c9984aec-8f3f-456a-aa80-b1fc314eb681\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"c9984aec-8f3f-456a-aa80-b1fc314eb681\",\"panelRefName\":\"panel_11\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"3232147b-0914-4432-ba42-0c6c03414e4b\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"3232147b-0914-4432-ba42-0c6c03414e4b\",\"panelRefName\":\"panel_12\",\"title\":\"[Carbon Black Cloud] Top 10 Effective Reputation of Loaded Modules\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":16,\"i\":\"391470e2-57a0-46c7-86bd-f66c6eb2ed66\",\"w\":48,\"x\":0,\"y\":105},\"panelIndex\":\"391470e2-57a0-46c7-86bd-f66c6eb2ed66\",\"panelRefName\":\"panel_13\",\"type\":\"search\",\"version\":\"7.17.0\"}]", + "timeRestore": false, + "title": "[Carbon Black Cloud] Endpoint Event", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-a94cd3a0-962a-11ec-864c-3332b2a355f7", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "f19543f7-04f5-42dd-849b-5f2fd8ca15f8:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "carbon_black_cloud-3afe1750-9630-11ec-864c-3332b2a355f7", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-11df3480-9630-11ec-864c-3332b2a355f7", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-c6cfa8d0-962f-11ec-864c-3332b2a355f7", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-2d324250-963e-11ec-864c-3332b2a355f7", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-949c1d00-9628-11ec-864c-3332b2a355f7", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-f28910d0-9628-11ec-864c-3332b2a355f7", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-76fe1db0-962e-11ec-864c-3332b2a355f7", + "name": "panel_6", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-ae34ca40-962e-11ec-864c-3332b2a355f7", + "name": "panel_7", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-f7681be0-962e-11ec-864c-3332b2a355f7", + "name": "panel_8", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-2be6ad50-962f-11ec-864c-3332b2a355f7", + "name": "panel_9", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-53d65ef0-962f-11ec-864c-3332b2a355f7", + "name": "panel_10", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-7a6261e0-962f-11ec-864c-3332b2a355f7", + "name": "panel_11", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-a7ce1420-9630-11ec-864c-3332b2a355f7", + "name": "panel_12", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-6494a7e0-9640-11ec-864c-3332b2a355f7", + "name": "panel_13", + "type": "search" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-af030950-8d73-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-af030950-8d73-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..4a9c10d677 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-af030950-8d73-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,147 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{},\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Category\",\"field\":\"carbon_black_cloud.alert.category\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"searchSource\":{\"filter\":[],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}},\"description\":\"\",\"id\":\"\",\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"\",\"type\":\"pie\",\"uiState\":{\"vis\":{\"legendOpen\":true}}}},\"gridData\":{\"h\":15,\"i\":\"a63e66da-6fdb-432e-8cd3-9beeceb7187e\",\"w\":16,\"x\":0,\"y\":0},\"panelIndex\":\"a63e66da-6fdb-432e-8cd3-9beeceb7187e\",\"panelRefName\":\"panel_0\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Alert Type\",\"field\":\"carbon_black_cloud.alert.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"searchSource\":{\"filter\":[],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}},\"description\":\"\",\"id\":\"\",\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"\",\"type\":\"pie\",\"uiState\":{\"vis\":{\"legendOpen\":true}}}},\"gridData\":{\"h\":15,\"i\":\"3b39bb5c-6d43-4bac-9551-dd3db3def5da\",\"w\":16,\"x\":16,\"y\":0},\"panelIndex\":\"3b39bb5c-6d43-4bac-9551-dd3db3def5da\",\"panelRefName\":\"panel_1\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5e9e34e5-35be-4f6c-922a-fb15daf002ab\",\"w\":16,\"x\":32,\"y\":0},\"panelIndex\":\"5e9e34e5-35be-4f6c-922a-fb15daf002ab\",\"panelRefName\":\"panel_2\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"7cba8aeb-90ad-4db5-8050-6093f8b51f56\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"7cba8aeb-90ad-4db5-8050-6093f8b51f56\",\"panelRefName\":\"panel_3\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"bb01cff3-1557-42ad-ad1a-0cca9f44b658\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"bb01cff3-1557-42ad-ad1a-0cca9f44b658\",\"panelRefName\":\"panel_4\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"fdcee22b-9a7d-4b00-af40-ebe01d7e8b28\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"fdcee22b-9a7d-4b00-af40-ebe01d7e8b28\",\"panelRefName\":\"panel_5\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3d50fe5a-b808-407c-830e-1badfb14b4b4\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"3d50fe5a-b808-407c-830e-1badfb14b4b4\",\"panelRefName\":\"panel_6\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"e7610078-a6b5-47e0-9739-ee08f84a39c8\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"e7610078-a6b5-47e0-9739-ee08f84a39c8\",\"panelRefName\":\"panel_7\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"93081e97-c841-4eb2-bfa3-6d214cb10282\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"93081e97-c841-4eb2-bfa3-6d214cb10282\",\"panelRefName\":\"panel_8\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"920d0841-19a5-4052-a5c6-4c2bcea8feee\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"920d0841-19a5-4052-a5c6-4c2bcea8feee\",\"panelRefName\":\"panel_9\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"2aab11a6-0445-43ae-b852-de68e72bc9f6\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"2aab11a6-0445-43ae-b852-de68e72bc9f6\",\"panelRefName\":\"panel_10\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"64eae241-7f78-45c4-9ec8-f2c1195a5fa2\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"64eae241-7f78-45c4-9ec8-f2c1195a5fa2\",\"panelRefName\":\"panel_11\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8f0964cf-d899-481f-b1e2-138d3e24f67f\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"8f0964cf-d899-481f-b1e2-138d3e24f67f\",\"panelRefName\":\"panel_12\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"colWidth\":[{\"colIndex\":1,\"width\":494}]}}},\"gridData\":{\"h\":15,\"i\":\"5cf45870-ceae-4231-9fe7-1dc62ff55c16\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"5cf45870-ceae-4231-9fe7-1dc62ff55c16\",\"panelRefName\":\"panel_13\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"01a42219-92ef-4f03-b8a3-3eb1f498c1f7\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"01a42219-92ef-4f03-b8a3-3eb1f498c1f7\",\"panelRefName\":\"panel_14\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"2afa241a-c05d-4c21-b993-d00d655e53f6\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"2afa241a-c05d-4c21-b993-d00d655e53f6\",\"panelRefName\":\"panel_15\",\"title\":\"[Carbon Black Cloud] Distribution of Alerts by IOC Field\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5ac185d0-99d0-473f-9cf5-4898053b1fa8\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"5ac185d0-99d0-473f-9cf5-4898053b1fa8\",\"panelRefName\":\"panel_16\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"9248238a-0980-423a-a19c-44102fdc173c\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"9248238a-0980-423a-a19c-44102fdc173c\",\"panelRefName\":\"panel_17\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"48aa679f-815f-4196-bca9-b3d7784aef73\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"48aa679f-815f-4196-bca9-b3d7784aef73\",\"panelRefName\":\"panel_18\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"669a2361-cb74-4def-a571-4af3ab5082b9\",\"w\":24,\"x\":0,\"y\":135},\"panelIndex\":\"669a2361-cb74-4def-a571-4af3ab5082b9\",\"panelRefName\":\"panel_19\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"83e71096-5c60-41e7-a258-ec2036fcf872\",\"w\":24,\"x\":24,\"y\":150},\"panelIndex\":\"83e71096-5c60-41e7-a258-ec2036fcf872\",\"panelRefName\":\"panel_20\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"ab2c450c-e97f-41ba-bffe-3c0672b64320\",\"w\":24,\"x\":0,\"y\":150},\"panelIndex\":\"ab2c450c-e97f-41ba-bffe-3c0672b64320\",\"panelRefName\":\"panel_21\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3df6d550-3202-40b6-a2ad-0909b7e5dd6b\",\"w\":24,\"x\":24,\"y\":165},\"panelIndex\":\"3df6d550-3202-40b6-a2ad-0909b7e5dd6b\",\"panelRefName\":\"panel_22\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"colWidth\":[{\"colIndex\":0,\"width\":1134}]}}},\"gridData\":{\"h\":15,\"i\":\"bab343d8-bdda-4558-8353-f4530b69a3b9\",\"w\":24,\"x\":0,\"y\":165},\"panelIndex\":\"bab343d8-bdda-4558-8353-f4530b69a3b9\",\"panelRefName\":\"panel_23\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":27,\"i\":\"7a714638-9485-4da1-bc85-38df2ef49e99\",\"w\":48,\"x\":0,\"y\":180},\"panelIndex\":\"7a714638-9485-4da1-bc85-38df2ef49e99\",\"panelRefName\":\"panel_24\",\"type\":\"search\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Threat Cause Actor Name\",\"field\":\"carbon_black_cloud.alert.threat_cause.actor.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"searchSource\":{\"filter\":[],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}},\"description\":\"\",\"id\":\"\",\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"\",\"type\":\"table\",\"uiState\":{}}},\"gridData\":{\"h\":15,\"i\":\"360b92d6-049c-42de-903f-f22ab75c0afc\",\"w\":24,\"x\":24,\"y\":135},\"panelIndex\":\"360b92d6-049c-42de-903f-f22ab75c0afc\",\"title\":\"[Carbon Black Cloud] Top 10 Threat Cause Actor Name\",\"type\":\"visualization\",\"version\":\"7.17.0\"}]", + "timeRestore": false, + "title": "[Carbon Black Cloud] Alerts", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-af030950-8d73-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "carbon_black_cloud-52fde850-8d73-11ec-ac12-4bc77fa14e95", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-f3f635b0-8d72-11ec-ac12-4bc77fa14e95", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-ff34eaa0-8d79-11ec-ac12-4bc77fa14e95", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-9a533f40-8d80-11ec-ac12-4bc77fa14e95", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-1b554010-8d73-11ec-ac12-4bc77fa14e95", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-906f65c0-8d81-11ec-ac12-4bc77fa14e95", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-0a8f5e90-8d79-11ec-ac12-4bc77fa14e95", + "name": "panel_6", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-5c122d10-8d83-11ec-ac12-4bc77fa14e95", + "name": "panel_7", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-2eafd430-8d83-11ec-ac12-4bc77fa14e95", + "name": "panel_8", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-cc2d3630-8d83-11ec-ac12-4bc77fa14e95", + "name": "panel_9", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-993b8650-8d83-11ec-ac12-4bc77fa14e95", + "name": "panel_10", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-97ab53f0-8d84-11ec-ac12-4bc77fa14e95", + "name": "panel_11", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-8af47260-8d87-11ec-ac12-4bc77fa14e95", + "name": "panel_12", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-d33296f0-8d79-11ec-ac12-4bc77fa14e95", + "name": "panel_13", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-f93958c0-8d83-11ec-ac12-4bc77fa14e95", + "name": "panel_14", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-5c6ce550-8d85-11ec-ac12-4bc77fa14e95", + "name": "panel_15", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-ee77a260-8d84-11ec-ac12-4bc77fa14e95", + "name": "panel_16", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-6efc6240-8d8a-11ec-ac12-4bc77fa14e95", + "name": "panel_17", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-ee670e50-8d89-11ec-ac12-4bc77fa14e95", + "name": "panel_18", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-10f699d0-8d8b-11ec-ac12-4bc77fa14e95", + "name": "panel_19", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-a5d6fa30-8d8c-11ec-ac12-4bc77fa14e95", + "name": "panel_20", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-d49a3710-8d96-11ec-ac12-4bc77fa14e95", + "name": "panel_21", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-928cff80-8d8a-11ec-ac12-4bc77fa14e95", + "name": "panel_22", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-89932a20-8d86-11ec-ac12-4bc77fa14e95", + "name": "panel_23", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-6e41bd70-8d8d-11ec-ac12-4bc77fa14e95", + "name": "panel_24", + "type": "search" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-db61a3d0-9534-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-db61a3d0-9534-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..ee0df3955b --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-db61a3d0-9534-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,67 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"table\":null,\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"604c7824-2086-4750-bd55-42ffffa9fc11\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"604c7824-2086-4750-bd55-42ffffa9fc11\",\"panelRefName\":\"panel_0\",\"title\":\"[Carbon Black Cloud] Distribution of Asset Vulnerability Summary by OS Type, OS Version\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"table\":null,\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"bd12665d-43af-45c1-b05e-556ed72556fa\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"bd12665d-43af-45c1-b05e-556ed72556fa\",\"panelRefName\":\"panel_1\",\"title\":\"[Carbon Black Cloud] Distribution of Asset Vulnerability Summary by Sync Status\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"table\":null,\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"fab676af-f870-4fd6-ac5d-3e17a224aaa8\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"fab676af-f870-4fd6-ac5d-3e17a224aaa8\",\"panelRefName\":\"panel_2\",\"title\":\"[Carbon Black Cloud] Distribution of Asset Vulnerability Summary by Severity\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"e3d4c200-17e9-4303-9073-b9dc8c95a790\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"e3d4c200-17e9-4303-9073-b9dc8c95a790\",\"panelRefName\":\"panel_3\",\"title\":\"[Carbon Black Cloud] Top 10 Hosts with Highest Vulnerability Count\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"table\":null,\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"624500b9-5f23-4c1c-b84b-83c5f20b72bb\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"624500b9-5f23-4c1c-b84b-83c5f20b72bb\",\"panelRefName\":\"panel_4\",\"title\":\"[Carbon Black Cloud] Distribution of Asset Vulnerability Summary by Sync Type\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"0ec67461-93e2-49df-bcd9-3407fabd5832\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"0ec67461-93e2-49df-bcd9-3407fabd5832\",\"panelRefName\":\"panel_5\",\"title\":\"[Carbon Black Cloud] Top 10 Hosts with Highest Risk Score\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"66d4f664-5644-48c9-b179-ddd94e1a3e46\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"66d4f664-5644-48c9-b179-ddd94e1a3e46\",\"panelRefName\":\"panel_6\",\"title\":\"[Carbon Black Cloud] Top 10 OS Names\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":20,\"i\":\"6e5579cc-cd91-4f7b-a221-e9bed77aa2b5\",\"w\":48,\"x\":0,\"y\":60},\"panelIndex\":\"6e5579cc-cd91-4f7b-a221-e9bed77aa2b5\",\"panelRefName\":\"panel_7\",\"title\":\"[Carbon Black Cloud] Asset Vulnerability Assessment Essential Details\",\"type\":\"search\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"244dc3ee-7810-4f22-b915-bc0a8118fb2a\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"244dc3ee-7810-4f22-b915-bc0a8118fb2a\",\"panelRefName\":\"panel_8\",\"type\":\"visualization\",\"version\":\"7.17.0\"}]", + "timeRestore": false, + "title": "[Carbon Black Cloud] Asset Vulnerability Summary", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-db61a3d0-9534-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "carbon_black_cloud-56130b90-954a-11ec-8b9d-35e42c3f7fcf", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-7caf3b20-954a-11ec-8b9d-35e42c3f7fcf", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-70cdb250-954a-11ec-8b9d-35e42c3f7fcf", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-6bfd1770-954a-11ec-8b9d-35e42c3f7fcf", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-792a3310-954a-11ec-8b9d-35e42c3f7fcf", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-750fefe0-954a-11ec-8b9d-35e42c3f7fcf", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-68a6c080-954a-11ec-8b9d-35e42c3f7fcf", + "name": "panel_6", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-dcc2d650-90a6-11ec-8b9d-35e42c3f7fcf", + "name": "panel_7", + "type": "search" + }, + { + "id": "carbon_black_cloud-2d1eedf0-9629-11ec-8b9d-35e42c3f7fcf", + "name": "panel_8", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-e226d530-9554-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-e226d530-9554-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..94761c84e1 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/dashboard/carbon_black_cloud-e226d530-9554-11ec-96f0-8de26c63c826.json @@ -0,0 +1,107 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8dc3cf12-046a-4901-b213-c29985291e77\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"8dc3cf12-046a-4901-b213-c29985291e77\",\"panelRefName\":\"panel_0\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Device External IP\",\"field\":\"carbon_black_cloud.watchlist_hit.device.external_ip\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"searchSource\":{\"filter\":[],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.watchlist_hit\\\"\"}}},\"description\":\"\",\"id\":\"\",\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"\",\"type\":\"table\",\"uiState\":{}}},\"gridData\":{\"h\":15,\"i\":\"4f7b5cef-a7e9-44a9-8769-44d5326a8df4\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"4f7b5cef-a7e9-44a9-8769-44d5326a8df4\",\"title\":\"[Carbon Black Cloud] Top 10 Device External IPs\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Watchlist Hit Name\",\"field\":\"carbon_black_cloud.watchlist_hit.watchlists.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"searchSource\":{\"filter\":[],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.watchlist_hit\\\"\"}}},\"description\":\"\",\"id\":\"\",\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Watchlist Hit Names\",\"type\":\"table\",\"uiState\":{}}},\"gridData\":{\"h\":15,\"i\":\"3d454d18-6baa-40de-aa94-4ebfaee9a759\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"3d454d18-6baa-40de-aa94-4ebfaee9a759\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Severity\",\"field\":\"event.severity\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"searchSource\":{\"filter\":[],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.watchlist_hit\\\"\"}}},\"description\":\"\",\"id\":\"\",\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Watchlist Hit by Severity\",\"type\":\"pie\",\"uiState\":{\"vis\":{\"legendOpen\":true}}},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"b0289aae-02bb-472e-8a22-07ff9f5d2372\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"b0289aae-02bb-472e-8a22-07ff9f5d2372\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Process Reputation\",\"field\":\"carbon_black_cloud.watchlist_hit.process.reputation\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"searchSource\":{\"filter\":[],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset: \\\"carbon_black_cloud.watchlist_hit\\\"\"}}},\"description\":\"\",\"id\":\"\",\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"\",\"type\":\"pie\",\"uiState\":{\"vis\":{\"legendOpen\":true}}},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"d29f5a98-736d-4f47-877e-b4552d15f889\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"d29f5a98-736d-4f47-877e-b4552d15f889\",\"title\":\"[Carbon Black Cloud] Distribution of Watchlist Hit by Process Reputation\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Parent Process Reputation\",\"field\":\"carbon_black_cloud.watchlist_hit.process.parent.reputation\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"searchSource\":{\"filter\":[],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset: \\\"carbon_black_cloud.watchlist_hit\\\"\"}}},\"description\":\"\",\"id\":\"\",\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Watchlist Hit by Process Reputation\",\"type\":\"pie\",\"uiState\":{\"vis\":{\"legendOpen\":true}}},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"ae5c96d5-b7d6-45f8-b57b-42cc190f990b\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"ae5c96d5-b7d6-45f8-b57b-42cc190f990b\",\"title\":\"[Carbon Black Cloud] Distribution of Watchlist Hit by Parent Process Reputation\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"f3ba83bc-4f34-4131-9a0c-bac18ec92ac0\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"f3ba83bc-4f34-4131-9a0c-bac18ec92ac0\",\"panelRefName\":\"panel_1\",\"title\":\"[Carbon Black Cloud] Top 10 Process Publisher Names\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5271fb1f-64a6-461e-b2de-4abc76736af6\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"5271fb1f-64a6-461e-b2de-4abc76736af6\",\"panelRefName\":\"panel_2\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"9c2fdcbe-43cb-4070-88ef-03e6e5082636\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"9c2fdcbe-43cb-4070-88ef-03e6e5082636\",\"panelRefName\":\"panel_3\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"bc0503e7-6c6d-4edf-a76e-17a74f7d0957\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"bc0503e7-6c6d-4edf-a76e-17a74f7d0957\",\"panelRefName\":\"panel_4\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"d02cda3a-ceef-4766-b25b-456733be2a66\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"d02cda3a-ceef-4766-b25b-456733be2a66\",\"panelRefName\":\"panel_5\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5b66a72e-ce08-441c-8705-bb632b896745\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"5b66a72e-ce08-441c-8705-bb632b896745\",\"panelRefName\":\"panel_6\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6bff08c7-8ffb-423e-87de-f7585aa6bc86\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"6bff08c7-8ffb-423e-87de-f7585aa6bc86\",\"panelRefName\":\"panel_7\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"437c123b-c447-476e-a28b-f3d965a50968\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"437c123b-c447-476e-a28b-f3d965a50968\",\"panelRefName\":\"panel_8\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"33d80097-0089-4b48-8fd9-5dcda9e58e48\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"33d80097-0089-4b48-8fd9-5dcda9e58e48\",\"panelRefName\":\"panel_9\",\"title\":\"[Carbon Black Cloud] Top 10 Process Publisher States\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"50a006ac-7108-47e5-adef-876c15fc8b44\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"50a006ac-7108-47e5-adef-876c15fc8b44\",\"panelRefName\":\"panel_10\",\"title\":\"[Carbon Black Cloud] Top 10 Parent Process Publisher States\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":31,\"i\":\"cfec84cb-87af-4b98-b855-17372eee70c8\",\"w\":48,\"x\":0,\"y\":120},\"panelIndex\":\"cfec84cb-87af-4b98-b855-17372eee70c8\",\"panelRefName\":\"panel_11\",\"type\":\"search\",\"version\":\"7.17.0\"}]", + "timeRestore": false, + "title": "[Carbon Black Cloud] Watchlist Hit", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-e226d530-9554-11ec-96f0-8de26c63c826", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "carbon_black_cloud-c3786990-9555-11ec-96f0-8de26c63c826", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "logs-*", + "name": "4f7b5cef-a7e9-44a9-8769-44d5326a8df4:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3d454d18-6baa-40de-aa94-4ebfaee9a759:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b0289aae-02bb-472e-8a22-07ff9f5d2372:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d29f5a98-736d-4f47-877e-b4552d15f889:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "ae5c96d5-b7d6-45f8-b57b-42cc190f990b:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "carbon_black_cloud-3aa59c50-955a-11ec-96f0-8de26c63c826", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-6fcd17f0-955a-11ec-96f0-8de26c63c826", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-bb323db0-955a-11ec-96f0-8de26c63c826", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-de59dff0-955a-11ec-96f0-8de26c63c826", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-17537cc0-955c-11ec-96f0-8de26c63c826", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-4dc9e690-955c-11ec-96f0-8de26c63c826", + "name": "panel_6", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-715f3ec0-955c-11ec-96f0-8de26c63c826", + "name": "panel_7", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-cb70a610-955c-11ec-96f0-8de26c63c826", + "name": "panel_8", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-0296fef0-955d-11ec-96f0-8de26c63c826", + "name": "panel_9", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-28323940-955d-11ec-96f0-8de26c63c826", + "name": "panel_10", + "type": "visualization" + }, + { + "id": "carbon_black_cloud-3ea9c2a0-955e-11ec-96f0-8de26c63c826", + "name": "panel_11", + "type": "search" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-3ea9c2a0-955e-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-3ea9c2a0-955e-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..fde5382f93 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-3ea9c2a0-955e-11ec-96f0-8de26c63c826.json @@ -0,0 +1,39 @@ +{ + "attributes": { + "columns": [ + "carbon_black_cloud.watchlist_hit.watchlists.name", + "process.command_line", + "process.parent.command_line", + "process.executable", + "process.parent.executable", + "carbon_black_cloud.watchlist_hit.ioc.id", + "carbon_black_cloud.watchlist_hit.ioc.hit" + ], + "description": "", + "grid": {}, + "hideChart": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset: \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Carbon Black Cloud] Watchlist Hit Essential Details" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-3ea9c2a0-955e-11ec-96f0-8de26c63c826", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-4272e690-8d71-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-4272e690-8d71-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..fdc104f3b2 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-4272e690-8d71-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,36 @@ +{ + "attributes": { + "columns": [ + "event.id", + "client.user.id", + "event.reason", + "client.ip" + ], + "description": "", + "grid": {}, + "hideChart": true, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.audit\\\"\"}}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Carbon Black Cloud] Audit Essential Details" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-4272e690-8d71-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-6494a7e0-9640-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-6494a7e0-9640-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..800a5cb006 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-6494a7e0-9640-11ec-864c-3332b2a355f7.json @@ -0,0 +1,39 @@ +{ + "attributes": { + "columns": [ + "carbon_black_cloud.endpoint_event.type", + "process.command_line", + "process.parent.command_line", + "dll.path", + "carbon_black_cloud.endpoint_event.target_cmdline", + "process.executable", + "process.parent.executable" + ], + "description": "", + "grid": {}, + "hideChart": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Carbon Black Cloud] Endpoint Events Essential Details" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-6494a7e0-9640-11ec-864c-3332b2a355f7", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-6e41bd70-8d8d-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-6e41bd70-8d8d-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..1a37e59347 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-6e41bd70-8d8d-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,37 @@ +{ + "attributes": { + "columns": [ + "event.id", + "event.reason", + "event.url", + "carbon_black_cloud.alert.threat_indicators.process_name", + "carbon_black_cloud.alert.category" + ], + "description": "", + "grid": {}, + "hideChart": true, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Carbon Black Cloud] Alerts Essential Details" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-6e41bd70-8d8d-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-dcc2d650-90a6-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-dcc2d650-90a6-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..c060c3bd41 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/search/carbon_black_cloud-dcc2d650-90a6-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,36 @@ +{ + "attributes": { + "columns": [ + "host.hostname", + "vulnerability.severity", + "vulnerability.score.base", + "carbon_black_cloud.asset_vulnerability_summary.vuln_count" + ], + "description": "", + "grid": {}, + "hideChart": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Carbon Black Cloud] Asset Vulnerability Assessment Essential Details" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-dcc2d650-90a6-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-0296fef0-955d-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-0296fef0-955d-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..bf6bf9170c --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-0296fef0-955d-11ec-96f0-8de26c63c826.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Process Publisher State", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Process Publisher State\",\"field\":\"carbon_black_cloud.watchlist_hit.process.publisher.state\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Process Publisher State\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-0296fef0-955d-11ec-96f0-8de26c63c826", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-0a8f5e90-8d79-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-0a8f5e90-8d79-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..329118ed72 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-0a8f5e90-8d79-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by OS, OS version", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"OS\",\"field\":\"host.os.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"OS Version\",\"field\":\"host.os.version\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":true,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by OS, OS version\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-0a8f5e90-8d79-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-0f420ad0-8d71-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-0f420ad0-8d71-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..fb78529067 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-0f420ad0-8d71-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.audit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Client IPs", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Client IPs\",\"field\":\"client.ip\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Client IPs\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-0f420ad0-8d71-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-10f699d0-8d8b-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-10f699d0-8d8b-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..edfb4ab922 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-10f699d0-8d8b-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Threat Indicators TTPS", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Threat Indicators TTPS\",\"field\":\"carbon_black_cloud.alert.threat_indicators.ttps\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Threat Indicators TTPS\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-10f699d0-8d8b-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-11df3480-9630-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-11df3480-9630-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..e058315a1e --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-11df3480-9630-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Actions", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Actions\",\"field\":\"event.action\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Top 10 Actions\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-11df3480-9630-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-17537cc0-955c-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-17537cc0-955c-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..e9926e3521 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-17537cc0-955c-11ec-96f0-8de26c63c826.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset: \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Watchlist Hit by OS", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"OS\",\"field\":\"carbon_black_cloud.watchlist_hit.device.os\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Watchlist Hit by OS\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-17537cc0-955c-11ec-96f0-8de26c63c826", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-1b554010-8d73-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-1b554010-8d73-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..5c97a8d4eb --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-1b554010-8d73-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Severity", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Severity\",\"field\":\"event.severity\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Severity\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-1b554010-8d73-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-28323940-955d-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-28323940-955d-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..8bb3adabfb --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-28323940-955d-11ec-96f0-8de26c63c826.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Parent Process Publisher State", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Parent Process Publisher State\",\"field\":\"carbon_black_cloud.watchlist_hit.process.parent.publisher.state\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Parent Process Publisher State\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-28323940-955d-11ec-96f0-8de26c63c826", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2be6ad50-962f-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2be6ad50-962f-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..7bec55f465 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2be6ad50-962f-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Child Process Username", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Child Process Username\",\"field\":\"carbon_black_cloud.endpoint_event.childproc.username\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":9},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Child Process Username\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-2be6ad50-962f-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2d1eedf0-9629-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2d1eedf0-9629-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..e4b7fe64f8 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2d1eedf0-9629-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Asset Vulnerability Summary by Type", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Type\",\"field\":\"carbon_black_cloud.asset_vulnerability_summary.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Asset Vulnerability Summary by Type\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-2d1eedf0-9629-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2d324250-963e-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2d324250-963e-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..6b1cb56ea0 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2d324250-963e-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Endpoint Events by Event Origin", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Event Origin\",\"field\":\"carbon_black_cloud.endpoint_event.event_origin\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Endpoint Events by Event Origin\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-2d324250-963e-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2eafd430-8d83-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2eafd430-8d83-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..c59f3f2623 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-2eafd430-8d83-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Category of the Threat Cause", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Category of the Threat Cause\",\"field\":\"carbon_black_cloud.alert.threat_cause.threat_category\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Category of the Threat Cause\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-2eafd430-8d83-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-3aa59c50-955a-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-3aa59c50-955a-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..0a01e78828 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-3aa59c50-955a-11ec-96f0-8de26c63c826.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset: \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Process Publisher Name", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Process Publisher Name\",\"field\":\"carbon_black_cloud.watchlist_hit.process.publisher.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Process Publisher Name\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-3aa59c50-955a-11ec-96f0-8de26c63c826", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-3afe1750-9630-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-3afe1750-9630-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..682f389163 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-3afe1750-9630-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Endpoint Events by OS", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Device OS\",\"field\":\"carbon_black_cloud.endpoint_event.device.os\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Endpoint Events by OS\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-3afe1750-9630-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-4dc9e690-955c-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-4dc9e690-955c-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..7af6d5ad55 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-4dc9e690-955c-11ec-96f0-8de26c63c826.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset: \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 IOC Hits", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"IOC Hit\",\"field\":\"carbon_black_cloud.watchlist_hit.ioc.hit\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 IOC Hits\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-4dc9e690-955c-11ec-96f0-8de26c63c826", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-52fde850-8d73-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-52fde850-8d73-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..1c116157a2 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-52fde850-8d73-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Category", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Category\",\"field\":\"carbon_black_cloud.alert.category\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Category\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-52fde850-8d73-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-53d65ef0-962f-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-53d65ef0-962f-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..3ced47d3fe --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-53d65ef0-962f-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Process Publisher State", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Process Publisher State\",\"field\":\"carbon_black_cloud.endpoint_event.process.publisher.state\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Process Publisher State\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-53d65ef0-962f-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-56130b90-954a-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-56130b90-954a-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..60cf2f819b --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-56130b90-954a-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "title": "Distribution of Asset Vulnerability Summary by OS Type, OS Version", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"OS Type\",\"field\":\"host.os.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"OS Version\",\"field\":\"host.os.version\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"row\":true,\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"Distribution of Asset Vulnerability Summary by OS Type, OS Version\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-56130b90-954a-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5a5dad90-954a-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5a5dad90-954a-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..411603d6cc --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5a5dad90-954a-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "title": "Distribution of Asset Vulnerability Summary by Type", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"carbon_black_cloud.asset_vulnerability_summary.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":2},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":75,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"Distribution of Asset Vulnerability Summary by Type\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-5a5dad90-954a-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5c122d10-8d83-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5c122d10-8d83-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..811d8c6112 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5c122d10-8d83-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Source of the Threat Cause", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Source of the Threat Cause\",\"field\":\"carbon_black_cloud.alert.threat_cause.vector\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Source of the Threat Cause\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-5c122d10-8d83-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5c6ce550-8d85-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5c6ce550-8d85-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..e390c83ecc --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5c6ce550-8d85-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by IOC field", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"IOC Field\",\"field\":\"carbon_black_cloud.alert.ioc.field\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by IOC field\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-5c6ce550-8d85-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5f690780-954a-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5f690780-954a-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..bdd43d6d65 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-5f690780-954a-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "title": "Distribution of Asset Vulnerability Summary by OS Type", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"host.os.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":3},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"Distribution of Asset Vulnerability Summary by OS Type\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-5f690780-954a-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6496b680-954a-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6496b680-954a-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..a8622511b3 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6496b680-954a-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "title": "Distribution of Asset Vulnerability Summary by OS Architecture", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"host.architecture\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":3},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":true,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"Distribution of Asset Vulnerability Summary by OS Architecture\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-6496b680-954a-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-68a6c080-954a-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-68a6c080-954a-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..02160d4bea --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-68a6c080-954a-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "title": "Top 10 OS Names", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"OS Names\",\"field\":\"host.os.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"row\":false,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"Top 10 OS Names\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-68a6c080-954a-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6bfd1770-954a-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6bfd1770-954a-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..6c64141f00 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6bfd1770-954a-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "title": "Top 10 Hosts with Highest Vulnerability Count", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Vulnerability Count\",\"field\":\"carbon_black_cloud.asset_vulnerability_summary.vuln_count\"},\"schema\":\"metric\",\"type\":\"max\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Hostname\",\"field\":\"host.hostname\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"Top 10 Hosts with Highest Vulnerability Count\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-6bfd1770-954a-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6efc6240-8d8a-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6efc6240-8d8a-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..630d474e6e --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6efc6240-8d8a-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Workflow State", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Workflow State\",\"field\":\"carbon_black_cloud.alert.workflow.state\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Workflow State\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-6efc6240-8d8a-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6fcd17f0-955a-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6fcd17f0-955a-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..228daf684c --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-6fcd17f0-955a-11ec-96f0-8de26c63c826.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset: \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Parent Process Publisher Names", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Parent Process Publisher Name\",\"field\":\"carbon_black_cloud.watchlist_hit.process.parent.publisher.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Parent Process Publisher Names\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-6fcd17f0-955a-11ec-96f0-8de26c63c826", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-70cdb250-954a-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-70cdb250-954a-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..1bd12c5d2e --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-70cdb250-954a-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "title": "Distribution of Asset Vulnerability Summary by Severity", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Severity\",\"field\":\"vulnerability.severity\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"Distribution of Asset Vulnerability Summary by Severity\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-70cdb250-954a-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-715f3ec0-955c-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-715f3ec0-955c-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..0a3d26dad2 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-715f3ec0-955c-11ec-96f0-8de26c63c826.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset: \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Report Names", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Report Name\",\"field\":\"carbon_black_cloud.watchlist_hit.report.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Report Names\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-715f3ec0-955c-11ec-96f0-8de26c63c826", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-750fefe0-954a-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-750fefe0-954a-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..6e873422cb --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-750fefe0-954a-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "title": "Top 10 Hosts with Highest Risk Score", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Risk Score\",\"field\":\"vulnerability.score.base\"},\"schema\":\"metric\",\"type\":\"max\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Hostname\",\"field\":\"host.hostname\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"Top 10 Hosts with Highest Risk Score\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-750fefe0-954a-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-76fe1db0-962e-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-76fe1db0-962e-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..48a0ff614a --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-76fe1db0-962e-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Process Publisher Name", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Process Publisher Name\",\"field\":\"carbon_black_cloud.endpoint_event.process.publisher.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Process Publisher Name\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-76fe1db0-962e-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-792a3310-954a-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-792a3310-954a-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..b549ad14a1 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-792a3310-954a-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "title": "Distribution of Asset Vulnerability Summary by Sync Type", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Sync type\",\"field\":\"carbon_black_cloud.asset_vulnerability_summary.sync.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"Distribution of Asset Vulnerability Summary by Sync Type\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-792a3310-954a-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-7a6261e0-962f-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-7a6261e0-962f-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..116934a90e --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-7a6261e0-962f-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Child Process Publisher State", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Child Process Publisher State\",\"field\":\"carbon_black_cloud.endpoint_event.childproc.publisher.state\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Child Process Publisher State\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-7a6261e0-962f-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-7caf3b20-954a-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-7caf3b20-954a-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..ebce21d74d --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-7caf3b20-954a-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "title": "Distribution of Asset Vulnerability Summary by Sync Status", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Sync Status\",\"field\":\"carbon_black_cloud.asset_vulnerability_summary.sync.status\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"Distribution of Asset Vulnerability Summary by Sync Status\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-7caf3b20-954a-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-80778dc0-954a-11ec-8b9d-35e42c3f7fcf.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-80778dc0-954a-11ec-8b9d-35e42c3f7fcf.json new file mode 100755 index 0000000000..8f11ac69cf --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-80778dc0-954a-11ec-8b9d-35e42c3f7fcf.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.asset_vulnerability_summary\\\"\"}}" + }, + "title": "Top 10 Hosts with Severity", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Severity\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Hostname\",\"field\":\"host.hostname\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderAgg\":{\"enabled\":true,\"id\":\"2-orderAgg\",\"params\":{\"field\":\"vulnerability.severity\"},\"schema\":\"orderAgg\",\"type\":\"cardinality\"},\"orderBy\":\"custom\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"Top 10 Hosts with Severity\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-80778dc0-954a-11ec-8b9d-35e42c3f7fcf", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-89932a20-8d86-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-89932a20-8d86-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..5d57824451 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-89932a20-8d86-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 IOC Hit", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"IOC Hit\",\"field\":\"carbon_black_cloud.alert.ioc.hit\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 IOC Hit\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-89932a20-8d86-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-8af47260-8d87-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-8af47260-8d87-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..dd5f86134d --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-8af47260-8d87-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Watchlist Hit", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Watchlist Hit\",\"field\":\"carbon_black_cloud.alert.watchlists.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Watchlist Hit\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-8af47260-8d87-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-906f65c0-8d81-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-906f65c0-8d81-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..60669ee962 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-906f65c0-8d81-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Threat Cause Reputation", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Threat Cause Reputation\",\"field\":\"carbon_black_cloud.alert.threat_cause.reputation\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Threat Cause Reputation\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-906f65c0-8d81-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-928cff80-8d8a-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-928cff80-8d8a-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..19ad6bf381 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-928cff80-8d8a-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Threat Indicators Process Name", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Threat Indicators Process Name\",\"field\":\"carbon_black_cloud.alert.threat_indicators.process_name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Threat Indicators Process Name\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-928cff80-8d8a-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-949c1d00-9628-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-949c1d00-9628-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..7992c14128 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-949c1d00-9628-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Devices", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Device Name\",\"field\":\"host.hostname\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Devices\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-949c1d00-9628-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-97ab53f0-8d84-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-97ab53f0-8d84-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..ebcc102bf4 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-97ab53f0-8d84-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Run State", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Run State\",\"field\":\"carbon_black_cloud.alert.run_state\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Run State\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-97ab53f0-8d84-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-993b8650-8d83-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-993b8650-8d83-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..bf3592d08f --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-993b8650-8d83-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Blocked Threat Category", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Blocked Threat Category\",\"field\":\"carbon_black_cloud.alert.blocked_threat_category\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Blocked Threat Category\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-993b8650-8d83-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-9a533f40-8d80-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-9a533f40-8d80-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..1025e00226 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-9a533f40-8d80-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Sensor Action", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Sensor Action\",\"field\":\"carbon_black_cloud.alert.sensor_action\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Sensor Action\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-9a533f40-8d80-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-a5d6fa30-8d8c-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-a5d6fa30-8d8c-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..c4ce665f33 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-a5d6fa30-8d8c-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Device Username", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Username\",\"field\":\"user.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Device Username\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-a5d6fa30-8d8c-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-a6d2a900-8d70-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-a6d2a900-8d70-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..7db345ec9b --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-a6d2a900-8d70-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.audit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Audit Logs by Flag Status", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Flagged\",\"field\":\"carbon_black_cloud.audit.flagged\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Audit Logs by Flag Status\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-a6d2a900-8d70-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-a7ce1420-9630-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-a7ce1420-9630-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..37864260d1 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-a7ce1420-9630-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Effective reputation of the loaded modules", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Effective Reputation of Loaded Modules\",\"field\":\"carbon_black_cloud.endpoint_event.modload.effective_reputation\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Effective reputation of the loaded modules\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-a7ce1420-9630-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ae34ca40-962e-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ae34ca40-962e-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..cf20544145 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ae34ca40-962e-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Child Process Publisher Name", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Child Process Publisher Name\",\"field\":\"carbon_black_cloud.endpoint_event.childproc.publisher.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":8},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Child Process Publisher Name\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-ae34ca40-962e-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-bb323db0-955a-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-bb323db0-955a-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..dd2d0ee97a --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-bb323db0-955a-11ec-96f0-8de26c63c826.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset: \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Process Usernames", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Process Username\",\"field\":\"carbon_black_cloud.watchlist_hit.process.username\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Process Usernames\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-bb323db0-955a-11ec-96f0-8de26c63c826", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-c3786990-9555-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-c3786990-9555-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..bb4fb20b4b --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-c3786990-9555-11ec-96f0-8de26c63c826.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Device Names", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Device Name\",\"field\":\"host.hostname\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Device Names\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-c3786990-9555-11ec-96f0-8de26c63c826", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-c6cfa8d0-962f-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-c6cfa8d0-962f-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..3a76cb6cae --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-c6cfa8d0-962f-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Endpoint Events by Sensor Actions", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Sensor Action\",\"field\":\"carbon_black_cloud.endpoint_event.sensor_action\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Endpoint Events by Sensor Actions\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-c6cfa8d0-962f-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-cb70a610-955c-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-cb70a610-955c-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..29d985b4d8 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-cb70a610-955c-11ec-96f0-8de26c63c826.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Watchlist Hit by Report Tags", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Watchlist Hit by Report Tag\",\"field\":\"carbon_black_cloud.watchlist_hit.report.tags\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":75,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Watchlist Hit by Report Tags\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-cb70a610-955c-11ec-96f0-8de26c63c826", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-cc2d3630-8d83-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-cc2d3630-8d83-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..50933d86cc --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-cc2d3630-8d83-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Not Blocked Threat Category", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Not Blocked Threat Category\",\"field\":\"carbon_black_cloud.alert.not_blocked_threat_category\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Not Blocked Threat Category\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-cc2d3630-8d83-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-d33296f0-8d79-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-d33296f0-8d79-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..bf02f82c2e --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-d33296f0-8d79-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Policy Names", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Policy Name\",\"field\":\"carbon_black_cloud.alert.policy.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Policy Names\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-d33296f0-8d79-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-d49a3710-8d96-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-d49a3710-8d96-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..bfebab9f24 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-d49a3710-8d96-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Reason Codes", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Reason Codes\",\"field\":\"carbon_black_cloud.alert.reason_code\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Reason Codes\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-d49a3710-8d96-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-de59dff0-955a-11ec-96f0-8de26c63c826.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-de59dff0-955a-11ec-96f0-8de26c63c826.json new file mode 100755 index 0000000000..85bf297c56 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-de59dff0-955a-11ec-96f0-8de26c63c826.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset: \\\"carbon_black_cloud.watchlist_hit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Parent Process Usernames", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Parent Process Username\",\"field\":\"carbon_black_cloud.watchlist_hit.process.parent.username\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Parent Process Usernames\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-de59dff0-955a-11ec-96f0-8de26c63c826", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ee2098d0-8d70-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ee2098d0-8d70-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..2ad0964cbb --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ee2098d0-8d70-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.audit\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Request URLs", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"URL\",\"field\":\"url.original\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Request URLs\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-ee2098d0-8d70-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ee670e50-8d89-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ee670e50-8d89-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..cb945df49b --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ee670e50-8d89-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Kill Chain Status", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Kill Chain Status\",\"field\":\"carbon_black_cloud.alert.kill_chain_status\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Kill Chain Status\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-ee670e50-8d89-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ee77a260-8d84-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ee77a260-8d84-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..fc1c6812f0 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ee77a260-8d84-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Process Name", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Process Name\",\"field\":\"process.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Process Name\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-ee77a260-8d84-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f28910d0-9628-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f28910d0-9628-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..3c04444ca9 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f28910d0-9628-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Device External IP", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Device External IP\",\"field\":\"carbon_black_cloud.endpoint_event.device.external_ip\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Device External IP\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-f28910d0-9628-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f3f635b0-8d72-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f3f635b0-8d72-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..a79db35e93 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f3f635b0-8d72-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Alert Type", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Alert Type\",\"field\":\"carbon_black_cloud.alert.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Alert Type\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-f3f635b0-8d72-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f75eabb0-8d8b-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f75eabb0-8d8b-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..d3f393c0d5 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f75eabb0-8d8b-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Threat Cause Actor Name", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Threat Cause Actor Name\",\"field\":\"carbon_black_cloud.alert.threat_cause.actor.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Threat Cause Actor Name\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-f75eabb0-8d8b-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f7681be0-962e-11ec-864c-3332b2a355f7.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f7681be0-962e-11ec-864c-3332b2a355f7.json new file mode 100755 index 0000000000..84fedf340e --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f7681be0-962e-11ec-864c-3332b2a355f7.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.endpoint_event\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Top 10 Process Username", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Process Username\",\"field\":\"carbon_black_cloud.endpoint_event.process.username\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Carbon Black Cloud] Top 10 Process Username\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-f7681be0-962e-11ec-864c-3332b2a355f7", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f93958c0-8d83-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f93958c0-8d83-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..1c30c4f320 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-f93958c0-8d83-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Policy Applied", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Policy Applied\",\"field\":\"carbon_black_cloud.alert.policy.applied\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Policy Applied\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-f93958c0-8d83-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ff34eaa0-8d79-11ec-ac12-4bc77fa14e95.json b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ff34eaa0-8d79-11ec-ac12-4bc77fa14e95.json new file mode 100755 index 0000000000..4a17555983 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/kibana/visualization/carbon_black_cloud-ff34eaa0-8d79-11ec-ac12-4bc77fa14e95.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"carbon_black_cloud.alert\\\"\"}}" + }, + "title": "[Carbon Black Cloud] Distribution of Alerts by Target Value", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Target Value\",\"field\":\"carbon_black_cloud.alert.target_value\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Carbon Black Cloud] Distribution of Alerts by Target Value\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "carbon_black_cloud-ff34eaa0-8d79-11ec-ac12-4bc77fa14e95", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/carbon_black_cloud/1.0.1/manifest.yml b/packages/carbon_black_cloud/1.0.1/manifest.yml new file mode 100755 index 0000000000..f7ae5c76f0 --- /dev/null +++ b/packages/carbon_black_cloud/1.0.1/manifest.yml @@ -0,0 +1,136 @@ +format_version: 1.0.0 +name: carbon_black_cloud +title: VMware Carbon Black Cloud +version: 1.0.1 +license: basic +description: Collect logs from VMWare Carbon Black Cloud with Elastic Agent. +type: integration +categories: + - security +release: ga +conditions: + kibana.version: ^7.17.0 || ^8.0.0 +screenshots: + - src: /img/carbon_black_cloud-screenshot.png + title: Carbon Black Cloud alert dashboard screenshot + size: 600x600 + type: image/png +icons: + - src: /img/carbon_black_cloud-logo.svg + title: Carbon Black Cloud logo + size: 32x32 + type: image/svg+xml +policy_templates: + - name: carbon_black_cloud + title: Carbon Black Cloud + description: Collect Logs from Carbon Black Cloud + inputs: + - type: httpjson + title: Collect Carbon Black Cloud logs via API + description: Collect Carbon Black Cloud logs via API + vars: + - name: hostname + type: text + title: Hostname + description: Carbon Black Cloud console Hostname. Find hostname in the console dashboard at the beginning of the web address (Add https:// before the hostname). + required: true + - name: org_key + type: text + title: Organization Key + description: Organization Key. + required: true + - name: custom_api_id + type: text + title: Custom API ID + description: API ID with Custom Access Level type. + required: true + - name: custom_api_secret_key + type: password + title: Custom API Secret Key + description: API Secret Key with Custom Access Level type + required: true + - name: api_id + type: text + title: API ID + description: API ID with API Access Level type. + required: true + - name: api_secret_key + type: password + title: API Secret Key + description: API Secret Key with API Access Level type + required: true + - name: proxy_url + type: text + title: Proxy URL + multi: false + required: false + show_user: false + description: URL to proxy connections in the form of http[s]://:@:. Please ensure your username and password are in URL encoded format. + - name: ssl + type: yaml + title: SSL Configuration + description: i.e. certificate_authorities, supported_protocols, verification_mode etc. + multi: false + required: false + show_user: false + default: | + #certificate_authorities: + # - | + # -----BEGIN CERTIFICATE----- + # MIIDCjCCAfKgAwIBAgITJ706Mu2wJlKckpIvkWxEHvEyijANBgkqhkiG9w0BAQsF + # ADAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwIBcNMTkwNzIyMTkyOTA0WhgPMjExOTA2 + # MjgxOTI5MDRaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEB + # BQADggEPADCCAQoCggEBANce58Y/JykI58iyOXpxGfw0/gMvF0hUQAcUrSMxEO6n + # fZRA49b4OV4SwWmA3395uL2eB2NB8y8qdQ9muXUdPBWE4l9rMZ6gmfu90N5B5uEl + # 94NcfBfYOKi1fJQ9i7WKhTjlRkMCgBkWPkUokvBZFRt8RtF7zI77BSEorHGQCk9t + # /D7BS0GJyfVEhftbWcFEAG3VRcoMhF7kUzYwp+qESoriFRYLeDWv68ZOvG7eoWnP + # PsvZStEVEimjvK5NSESEQa9xWyJOmlOKXhkdymtcUd/nXnx6UTCFgnkgzSdTWV41 + # CI6B6aJ9svCTI2QuoIq2HxX/ix7OvW1huVmcyHVxyUECAwEAAaNTMFEwHQYDVR0O + # BBYEFPwN1OceFGm9v6ux8G+DZ3TUDYxqMB8GA1UdIwQYMBaAFPwN1OceFGm9v6ux + # 8G+DZ3TUDYxqMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAG5D + # 874A4YI7YUwOVsVAdbWtgp1d0zKcPRR+r2OdSbTAV5/gcS3jgBJ3i1BN34JuDVFw + # 3DeJSYT3nxy2Y56lLnxDeF8CUTUtVQx3CuGkRg1ouGAHpO/6OqOhwLLorEmxi7tA + # H2O8mtT0poX5AnOAhzVy7QW0D/k4WaoLyckM5hUa6RtvgvLxOwA0U+VGurCDoctu + # 8F4QOgTAWyh8EZIwaKCliFRSynDpv3JTUwtfZkxo6K6nce1RhCWFAsMvDZL8Dgc0 + # yvgJ38BRsFOtkRuAGSf6ZUwTO8JJRRIFnpUzXflAnGivK9M13D5GEQMmIl6U9Pvk + # sxSmbIUfc2SGJGCJD4I= + # -----END CERTIFICATE----- + - type: aws-s3 + title: Collect Carbon Black Cloud logs via AWS S3 + description: Collect Carbon Black Cloud logs via AWS S3 + vars: + - name: bucket_arn + type: text + title: Bucket ARN + multi: false + required: true + show_user: true + - name: access_key_id + type: password + title: Access Key ID + multi: false + required: true + show_user: true + - name: secret_access_key + type: password + title: Secret Access Key + multi: false + required: true + show_user: true + - name: number_of_workers + type: integer + title: Number of Workers + multi: false + required: false + show_user: false + default: 5 + description: Number of workers that will process the S3 objects listed. + - name: proxy_url + type: text + title: Proxy URL + multi: false + required: false + show_user: false + description: URL to proxy connections in the form of http[s]://:@:. Please ensure your username and password are in URL encoded format. +owner: + github: elastic/security-external-integrations diff --git a/packages/cisco_umbrella/1.0.0/changelog.yml b/packages/cisco_umbrella/1.0.0/changelog.yml new file mode 100755 index 0000000000..7896c19512 --- /dev/null +++ b/packages/cisco_umbrella/1.0.0/changelog.yml @@ -0,0 +1,71 @@ +# newer versions go on top +- version: "1.0.0" + changes: + - description: Make GA + type: enhancement + link: https://github.com/elastic/integrations/pull/3428 +- version: "0.7.0" + changes: + - description: Add Audit Logs + type: enhancement + link: https://github.com/elastic/integrations/pull/3332 +- version: "0.6.1" + changes: + - description: Fix use of destination.ip instead of source.nat.ip in DNS logs + type: bugfix + link: https://github.com/elastic/integrations/pull/3218 +- version: "0.6.0" + changes: + - description: Update to ECS 8.2 + type: enhancement + link: https://github.com/elastic/integrations/pull/2778 +- version: "0.5.1" + changes: + - description: Add documentation for multi-fields + type: enhancement + link: https://github.com/elastic/integrations/pull/2916 +- version: "0.5.0" + changes: + - description: Update to ECS 8.0 + type: enhancement + link: https://github.com/elastic/integrations/pull/2396 +- version: "0.4.0" + changes: + - description: Update config to support Cisco Managed S3 + type: bugfix + link: https://github.com/elastic/integrations/pull/2462 +- version: "0.3.2" + changes: + - description: Regenerate test files using the new GeoIP database + type: bugfix + link: https://github.com/elastic/integrations/pull/2339 +- version: "0.3.1" + changes: + - description: Change test public IPs to the supported subset + type: bugfix + link: https://github.com/elastic/integrations/pull/2327 +- version: "0.3.0" + changes: + - description: Add 8.0.0 version constraint + type: enhancement + link: https://github.com/elastic/integrations/pull/2269 +- version: "0.2.2" + changes: + - description: Update Title and Description. + type: enhancement + link: https://github.com/elastic/integrations/pull/1959 +- version: "0.2.1" + changes: + - description: Fix logic that checks for the 'forwarded' tag + type: bugfix + link: https://github.com/elastic/integrations/pull/1810 +- version: "0.2.0" + changes: + - description: Update to ECS 1.12.0 + type: enhancement + link: https://github.com/elastic/integrations/pull/1787 +- version: "0.1.0" + changes: + - description: Initial migration from Filebeat Module + type: enhancement + link: https://github.com/elastic/integrations/pull/1646 diff --git a/packages/cisco_umbrella/1.0.0/data_stream/log/agent/stream/aws-s3.yml.hbs b/packages/cisco_umbrella/1.0.0/data_stream/log/agent/stream/aws-s3.yml.hbs new file mode 100755 index 0000000000..13c48cb366 --- /dev/null +++ b/packages/cisco_umbrella/1.0.0/data_stream/log/agent/stream/aws-s3.yml.hbs @@ -0,0 +1,70 @@ +{{#if queue_url}} +queue_url: {{queue_url}} +{{/if}} +{{#if bucket_arn}} +bucket_arn: {{bucket_arn}} +{{/if}} +{{#if bucket_list_prefix}} +bucket_list_prefix: {{bucket_list_prefix}}/ +{{/if}} +{{#if bucket_list_prefix}} +file_selectors: + - regex: {{bucket_list_prefix}}/dnslogs/.+ + - regex: {{bucket_list_prefix}}/proxylogs/.+ + - regex: {{bucket_list_prefix}}/cloudfirewalllogs/.+ + - regex: {{bucket_list_prefix}}/iplogs/.+ + - regex: {{bucket_list_prefix}}/auditlogs/.+ +{{/if}} +{{#if region}} +default_region: {{region}} +{{/if}} +{{#if credential_profile_name}} +credential_profile_name: {{credential_profile_name}} +{{/if}} +{{#if shared_credential_file}} +shared_credential_file: {{shared_credential_file}} +{{/if}} +{{#if visibility_timeout}} +visibility_timeout: {{visibility_timeout}} +{{/if}} +{{#if api_timeout}} +api_timeout: {{api_timeout}} +{{/if}} +{{#if endpoint}} +endpoint: {{endpoint}} +{{/if}} +{{#if access_key_id}} +access_key_id: {{access_key_id}} +{{/if}} +{{#if secret_access_key}} +secret_access_key: {{secret_access_key}} +{{/if}} +{{#if session_token}} +session_token: {{session_token}} +{{/if}} +{{#if role_arn}} +role_arn: {{role_arn}} +{{/if}} +{{#if fips_enabled}} +fips_enabled: {{fips_enabled}} +{{/if}} +{{#if number_of_workers}} +number_of_workers: {{number_of_workers}} +{{/if}} +{{#if bucket_list_interval}} +bucket_list_interval: {{bucket_list_interval}} +{{/if}} +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/cisco_umbrella/1.0.0/data_stream/log/elasticsearch/ingest_pipeline/default.yml b/packages/cisco_umbrella/1.0.0/data_stream/log/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..cadb340add --- /dev/null +++ b/packages/cisco_umbrella/1.0.0/data_stream/log/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,423 @@ +--- +description: Pipeline for Cisco Umbrella + +processors: + - set: + field: ecs.version + value: "8.2.0" + - set: + field: observer.vendor + value: Cisco + - set: + field: observer.product + value: Umbrella + - rename: + field: message + target_field: event.original + ############ + # DNS Logs # + ############ + - csv: + field: event.original + target_fields: + - cisco.umbrella._tmp.time + - user.name + - cisco.umbrella.identities + - source.address + - source.nat.ip + - cisco.umbrella.action + - dns.question.type + - dns.response_code + - dns.question.name + - cisco.umbrella.categories + - cisco.umbrella.policy_identity_type + - cisco.umbrella.identity_types + - cisco.umbrella.blocked_categories + if: ctx?.log?.file?.path.contains('dnslogs') + + - set: + field: observer.type + value: dns + if: ctx?.log?.file?.path.contains('dnslogs') + ########### + # IP Logs # + ########### + - csv: + field: event.original + target_fields: + - cisco.umbrella._tmp.time + - user.name + - source.address + - source.port + - destination.address + - destination.port + - cisco.umbrella.categories + if: ctx?.log?.file?.path.contains('iplogs') + + - set: + field: observer.type + value: firewall + if: ctx?.log?.file?.path.contains('iplogs') + + ############## + # Proxy Logs # + ############## + - csv: + field: event.original + target_fields: + - cisco.umbrella._tmp.time + - cisco.umbrella.computer_name + - cisco.umbrella.identities + - source.address + - source.nat.ip + - destination.address + - cisco.umbrella.content_type + - cisco.umbrella.verdict + - url.full + - http.request.referrer + - user_agent.original + - http.response.status_code + - http.request.bytes + - http.response.bytes + - http.response.body.bytes + - cisco.umbrella.sha_sha256 + - cisco.umbrella.categories + - cisco.umbrella.av_detections + - cisco.umbrella.puas + - cisco.umbrella.amp_disposition + - cisco.umbrella.amp_malware_name + - cisco.umbrella.amp_score + - cisco.umbrella.identity_types + - cisco.umbrella.blocked_categories + - cisco.umbrella.identity_types + - cisco.umbrella.request_method + - cisco.umbrella.dlp_status + - cisco.umbrella.certificate_errors + - cisco.umbrella.file_name + - cisco.umbrella.ruleset_id + - cisco.umbrella.rule_id + - cisco.umbrella.destination_lists_id + if: ctx?.log?.file?.path.contains('proxylogs') + + - set: + field: observer.type + value: proxy + if: ctx?.log?.file?.path.contains('proxylogs') + + ####################### + # Cloud Firewall Logs # + ####################### + - csv: + field: event.original + target_fields: + - cisco.umbrella._tmp.time + - cisco.umbrella.origin_id + - user.name + - cisco.umbrella.identity_types + - cisco.umbrella.direction + - network.transport + - source.bytes + - source.address + - source.port + - destination.address + - destination.port + - cisco.umbrella.datacenter + - cisco.umbrella.ruleid + - cisco.umbrella.verdict + if: ctx?.log?.file?.path.contains('cloudfirewalllogs') + + - set: + field: observer.type + value: firewall + if: ctx?.log?.file?.path.contains('cloudfirewalllogs') + + ####################### + # Audit Logs # + ####################### + - csv: + field: event.original + target_fields: + - event.id + - cisco.umbrella._tmp.time + - user.email + - user.name + - cisco.umbrella.audit.type + - event.action + - source.address + - cisco.umbrella.audit.before + - cisco.umbrella.audit.after + if: ctx?.log?.file?.path.contains('auditlogs') + + - uri_parts: + field: url.full + ignore_failure: true + if: ctx?.url?.full != null + + # Identifies is a field that includes any sort of username, device or other asset that is included in the request. + # Converting this to an array to make it easier to use in searches and visualizations + - split: + field: cisco.umbrella.identities + separator: "," + preserve_trailing: false + if: "ctx?.log?.file?.path.contains('dnslogs') && ctx?.cisco?.umbrella?.identities != null" + + - split: + field: cisco.umbrella.categories + separator: "," + preserve_trailing: false + if: "ctx?.log?.file?.path.contains('dnslogs') && ctx?.cisco?.umbrella?.categories != null" + - split: + field: cisco.umbrella.blocked_categories + separator: "," + preserve_trailing: false + if: "ctx?.log?.file?.path.contains('dnslogs') && ctx?.cisco?.umbrella?.blocked_categories != null" + ###################### + # General ECS Fields # + ###################### + # This field is always in UTC, so no timezone should need to be set + - date: + field: cisco.umbrella._tmp.time + target_field: "@timestamp" + formats: + - "yyyy-MM-dd HH:mm:ss" + - ISO8601 + if: ctx?.cisco?.umbrella?._tmp?.time != null + ################## + # DNS ECS Fields # + ################## + - set: + field: dns.type + value: query + if: ctx?.cisco?.umbrella?.action != null + ###################### + # Network ECS Fields # + ###################### + - lowercase: + field: cisco.umbrella.direction + target_field: network.direction + if: ctx?.cisco?.umbrella?.direction != null + - convert: + field: source.bytes + type: long + if: ctx?.source?.bytes != null + - convert: + field: source.port + type: long + if: ctx?.source?.port != null + - convert: + field: destination.port + type: long + if: ctx?.destination?.port != null + ################### + # HTTP ECS Fields # + ################### + - convert: + field: http.request.bytes + type: long + if: ctx?.http?.request?.bytes != null + - convert: + field: http.response.bytes + type: long + if: ctx?.http?.response?.bytes != null + - convert: + field: http.response.status_code + type: long + if: ctx?.http?.response?.status_code != null + ################### + # Rule ECS Fields # + ################### + - rename: + field: cisco.umbrella.ruleid + target_field: rule.id + if: ctx?.cisco?.umbrella?.ruleid != null + + #################### + # Event ECS Fields # + #################### + - set: + field: event.action + value: "dns-request-{{cisco.umbrella.action}}" + if: ctx?.cisco?.umbrella?.action != null + - set: + field: event.category + value: network + if: "!ctx?.log?.file?.path.contains('auditlogs')" + - append: + field: event.type + value: allowed + if: "ctx?.cisco?.umbrella?.action == 'Allowed' || ['ALLOWED','ALLOW'].contains(ctx?.cisco?.umbrella?.verdict)" + - append: + field: event.type + value: denied + if: "ctx?.cisco?.umbrella?.action == 'Blocked' || ['BLOCKED','BLOCK'].contains(ctx?.cisco?.umbrella?.verdict)" + - append: + field: event.type + value: connection + if: ctx?.cisco?.umbrella?.action != null + - set: + field: event.category + value: configuration + if: "ctx?.log?.file?.path.contains('auditlogs')" + - append: + field: event.type + value: creation + if: "ctx?.log?.file?.path.contains('auditlogs') && ctx.event?.action.toLowerCase() == 'create'" + - append: + field: event.type + value: change + if: "ctx?.log?.file?.path.contains('auditlogs') && ctx.event?.action.toLowerCase() == 'update'" + - append: + field: event.type + value: deletion + if: "ctx?.log?.file?.path.contains('auditlogs') && ctx.event?.action.toLowerCase() == 'delete'" + # Converting address fields to either ip or domain + - convert: + field: source.address + target_field: source.ip + type: ip + ignore_missing: true + on_failure: + - set: + copy_from: source.address + field: source.domain + override: true + + - convert: + field: destination.address + target_field: destination.ip + type: ip + ignore_missing: true + on_failure: + - set: + field: destination.domain + copy_from: destination.address + override: true + + # For nat, there's no address or domain subfield. + # If the value is not a valid IP, it must be removed + # or ingestion will fail. Probably just an empty value. + - convert: + field: source.nat.ip + type: ip + ignore_missing: true + on_failure: + - remove: + field: source.nat.ip + + - community_id: + ignore_missing: true + - geoip: + field: source.ip + target_field: source.geo + ignore_missing: true + - geoip: + database_file: GeoLite2-ASN.mmdb + field: source.ip + target_field: source.as + properties: + - asn + - organization_name + ignore_missing: true + - rename: + field: source.as.asn + target_field: source.as.number + ignore_missing: true + - rename: + field: source.as.organization_name + target_field: source.as.organization.name + ignore_missing: true + - geoip: + field: destination.ip + target_field: destination.geo + ignore_missing: true + - geoip: + database_file: GeoLite2-ASN.mmdb + field: destination.ip + target_field: destination.as + properties: + - asn + - organization_name + ignore_missing: true + - rename: + field: destination.as.asn + target_field: destination.as.number + ignore_missing: true + - rename: + field: destination.as.organization_name + target_field: destination.as.organization.name + ignore_missing: true + ###################### + # Related ECS Fields # + ###################### + - append: + field: related.user + value: "{{user.name}}" + if: ctx?.source?.user?.name != null + - append: + field: related.ip + value: "{{source.ip}}" + if: ctx?.source?.ip != null + - append: + field: related.ip + value: "{{source.nat.ip}}" + if: ctx?.source?.nat?.ip != null + - append: + field: related.ip + value: "{{destination.ip}}" + if: ctx?.destination?.ip != null + - append: + field: related.hosts + value: "{{source.domain}}" + if: ctx?.source?.domain != null + - append: + field: related.hosts + value: "{{dns.question.name}}" + if: ctx?.dns?.question?.name != null + - append: + field: related.hash + value: "{{cisco.umbrella.sha_sha256}}" + if: ctx?.cisco?.umbrella?.sha_sha256 != null + - script: + if: ctx?.cisco?.umbrella?.identities != null && ctx.cisco.umbrella.identities instanceof List + lang: painless + description: "Extract user name values from ctx.cisco.umbrella.identities and append it to related.user" + source: |- + void addRelatedUser(def ctx, def x) { + if (ctx?.related == null) { + Map map = new HashMap(); + ctx.put("related", map); + } + if (ctx?.related?.user == null) { + ArrayList al = new ArrayList(); + ctx.related.put("user", al); + } + if (!ctx.related.user.contains(x)) { + ctx.related.user.add(x); + } + } + for (cisco_identity in ctx.cisco.umbrella.identities) { + if (cisco_identity.contains('@')) { + addRelatedUser(ctx, cisco_identity); + } + } + + ########### + # Cleanup # + ########### + - remove: + field: + - cisco.umbrella._tmp + - cisco.umbrella.direction + - cisco.umbrella.action + - cisco.umbrella.verdict + ignore_missing: true + + - remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + ignore_missing: true +on_failure: + - set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/cisco_umbrella/1.0.0/data_stream/log/fields/agent.yml b/packages/cisco_umbrella/1.0.0/data_stream/log/fields/agent.yml new file mode 100755 index 0000000000..da4e652c53 --- /dev/null +++ b/packages/cisco_umbrella/1.0.0/data_stream/log/fields/agent.yml @@ -0,0 +1,198 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/cisco_umbrella/1.0.0/data_stream/log/fields/base-fields.yml b/packages/cisco_umbrella/1.0.0/data_stream/log/fields/base-fields.yml new file mode 100755 index 0000000000..1fb9b67d57 --- /dev/null +++ b/packages/cisco_umbrella/1.0.0/data_stream/log/fields/base-fields.yml @@ -0,0 +1,24 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: event.module + type: constant_keyword + description: Event module + value: cisco_umbrella +- name: event.dataset + type: constant_keyword + description: Event dataset + value: cisco_umbrella.log +- name: container.id + description: Unique container id. + ignore_above: 1024 + type: keyword +- name: input.type + description: Type of Filebeat input. + type: keyword diff --git a/packages/cisco_umbrella/1.0.0/data_stream/log/fields/ecs.yml b/packages/cisco_umbrella/1.0.0/data_stream/log/fields/ecs.yml new file mode 100755 index 0000000000..fbb3a4deb7 --- /dev/null +++ b/packages/cisco_umbrella/1.0.0/data_stream/log/fields/ecs.yml @@ -0,0 +1,406 @@ +- description: |- + Date/time when the event originated. + This is the date/time extracted from the event, typically representing when the event was generated by the source. + If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. + Required field for all events. + name: '@timestamp' + type: date +- description: |- + The domain name of the client system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: client.domain + type: keyword +- description: |- + The highest registered client domain, stripped of the subdomain. + For example, the registered domain for "foo.example.com" is "example.com". + This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". + name: client.registered_domain + type: keyword +- description: |- + The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain. + For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. + name: client.subdomain + type: keyword +- description: |- + The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com". + This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". + name: client.top_level_domain + type: keyword +- description: |- + Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: destination.address + type: keyword +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: destination.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: destination.as.organization.name + type: keyword +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: |- + The domain name of the destination system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: destination.domain + type: keyword +- description: City name. + name: destination.geo.city_name + type: keyword +- description: Country name. + name: destination.geo.country_name + type: keyword +- description: Name of the continent. + name: destination.geo.continent_name + type: keyword +- description: Region ISO code. + name: destination.geo.region_iso_code + type: keyword +- description: Region name. + name: destination.geo.region_name + type: keyword +- description: Country ISO code. + name: destination.geo.country_iso_code + type: keyword +- description: Longitude and latitude. + level: core + name: destination.geo.location + type: geo_point +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: |- + MAC address of the destination. + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. + name: destination.mac + type: keyword +- description: |- + Translated ip of destination based NAT sessions (e.g. internet to private DMZ) + Typically used with load balancers, firewalls, or routers. + name: destination.nat.ip + type: ip +- description: |- + Port the source session is translated to by NAT Device. + Typically used with load balancers, firewalls, or routers. + name: destination.nat.port + type: long +- description: Port of the destination. + name: destination.port + type: long +- description: The DNS response code. + name: dns.response_code + type: keyword +- description: The type of record being queried. + name: dns.question.type + type: keyword +- description: |- + The type of DNS event captured, query or answer. + If your source of DNS events only gives you DNS queries, you should only create dns events of type `dns.type:query`. + If your source of DNS events gives you answers as well, you should create one event per query (optionally as soon as the query is seen). And a second event containing all query details as well as an array of answers. + name: dns.type + type: keyword +- description: |- + The name being queried. + If the name field contains non-printable characters (below 32 or above 126), those characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n respectively. + name: dns.question.name + type: keyword +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: Error message. + name: error.message + type: match_only_text +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: |- + Identification code for this event, if one exists. + Some event sources use event codes to identify messages unambiguously, regardless of message language or wording adjustments over time. An example of this is the Windows Event ID. + name: event.code + type: keyword +- description: |- + Timestamp when an event arrived in the central data store. + This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. + In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` < `event.created` < `event.ingested`. + name: event.ingested + type: date +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. + `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. + Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. + Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. + Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. + name: event.outcome + type: keyword +- description: |- + This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. + Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). + name: event.timezone + type: keyword +- description: |- + Hostname of the host. + It normally contains what the `hostname` command returns on the host machine. + name: host.hostname + type: keyword +- description: Host ip addresses. + name: host.ip + type: ip +- description: |- + Host MAC addresses. + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. + name: host.mac + type: keyword +- description: |- + Name of the host. + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. + name: host.name + type: keyword +- description: |- + HTTP request method. + The value should retain its casing from the original event. For example, `GET`, `get`, and `GeT` are all considered valid values for this field. + name: http.request.method + type: keyword +- description: Referrer for this HTTP request. + name: http.request.referrer + type: keyword +- description: Total size in bytes of the request (body and headers). + name: http.request.bytes + type: long +- description: HTTP response status code. + name: http.response.status_code + type: long +- description: Total size in bytes of the response (body and headers). + name: http.response.bytes + type: long +- description: |- + For log events the message field contains the log message, optimized for viewing in a log viewer. + For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. + If multiple messages exist, they can be combined into one message. + name: message + type: match_only_text +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: The product name of the observer. + name: observer.product + type: keyword +- description: |- + The type of the observer the data is coming from. + There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. + name: observer.type + type: keyword +- description: Vendor name of the observer. + name: observer.vendor + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). + name: related.hash + type: keyword +- description: |- + Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: source.address + type: keyword +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: source.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: source.as.organization.name + type: keyword +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: |- + The domain name of the source system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: source.domain + type: keyword +- description: City name. + name: source.geo.city_name + type: keyword +- description: Country name. + name: source.geo.country_name + type: keyword +- description: Name of the continent. + name: source.geo.continent_name + type: keyword +- description: Country ISO code. + name: source.geo.country_iso_code + type: keyword +- description: Longitude and latitude. + level: core + name: source.geo.location + type: geo_point +- description: Region ISO code. + name: source.geo.region_iso_code + type: keyword +- description: Region name. + name: source.geo.region_name + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: |- + MAC address of the source. + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. + name: source.mac + type: keyword +- description: |- + Translated ip of source based NAT sessions (e.g. internal client to internet) + Typically connections traversing load balancers, firewalls, or routers. + name: source.nat.ip + type: ip +- description: |- + Translated port of source based NAT sessions. (e.g. internal client to internet) + Typically used with load balancers, firewalls, or routers. + name: source.nat.port + type: long +- description: Port of the source. + name: source.port + type: long +- description: |- + The highest registered source domain, stripped of the subdomain. + For example, the registered domain for "foo.example.com" is "example.com". + This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". + name: source.registered_domain + type: keyword +- description: |- + The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain. + For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. + name: source.subdomain + type: keyword +- description: |- + The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com". + This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". + name: source.top_level_domain + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Domain of the url, such as "www.elastic.co". + In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. + name: url.domain + type: keyword +- description: |- + Unmodified original url as seen in the event source. + Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. + This field is meant to represent the URL as it was observed, complete or not. + multi_fields: + - name: text + type: match_only_text + name: url.original + type: wildcard +- description: Path of the request, such as "/search". + name: url.path + type: wildcard +- description: |- + The query field describes the query string of the request, such as "q=elasticsearch". + The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. + name: url.query + type: keyword +- description: |- + The field contains the file extension from the original request url, excluding the leading dot. + The file extension is only set if it exists, as not every url has a file extension. + The leading period must not be included. For example, the value must be "png", not ".png". + Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). + name: url.extension + type: keyword +- description: |- + Scheme of the request, such as "https". + Note: The `:` is not part of the scheme. + name: url.scheme + type: keyword +- description: If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. + multi_fields: + - name: text + type: match_only_text + name: url.full + type: wildcard +- description: |- + Name of the directory the user is a member of. + For example, an LDAP or Active Directory domain name. + name: user.domain + type: keyword +- description: User's full name, if available. + multi_fields: + - name: text + type: match_only_text + name: user.full_name + type: keyword +- description: Unique identifier of the user. + name: user.id + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword +- description: User email address. + name: user.email + type: keyword +- description: Unparsed user_agent string. + multi_fields: + - name: text + type: match_only_text + name: user_agent.original + type: keyword +- description: A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. + name: rule.id + type: keyword +- description: |- + Full path to the log file this event came from, including the file name. It should include the drive letter, when appropriate. + If the event wasn't read from a log file, do not populate this field. + name: log.file.path + type: keyword diff --git a/packages/cisco_umbrella/1.0.0/data_stream/log/fields/fields.yml b/packages/cisco_umbrella/1.0.0/data_stream/log/fields/fields.yml new file mode 100755 index 0000000000..930527b81d --- /dev/null +++ b/packages/cisco_umbrella/1.0.0/data_stream/log/fields/fields.yml @@ -0,0 +1,108 @@ +- name: cisco.umbrella + type: group + description: > + Fields for Cisco Umbrella. + + fields: + - name: identities + type: keyword + description: > + An array of the different identities related to the event. + + - name: computer_name + type: keyword + description: > + The computer name related to the event. + + - name: categories + type: keyword + description: > + The security or content categories that the destination matches. + + - name: policy_identity_type + type: keyword + description: > + The first identity type matched with this request. Available in version 3 and above. + + - name: identity_types + type: keyword + description: > + The type of identity that made the request. For example, Roaming Computer or Network. + + - name: blocked_categories + type: keyword + description: > + The categories that resulted in the destination being blocked. Available in version 4 and above. + + - name: content_type + type: keyword + description: > + The type of web content, typically text/html. + + - name: sha_sha256 + type: keyword + description: > + Hex digest of the response content. + + - name: av_detections + type: keyword + description: > + The detection name according to the antivirus engine used in file inspection. + + - name: puas + type: keyword + description: > + A list of all potentially unwanted application (PUA) results for the proxied file as returned by the antivirus scanner. + + - name: amp_disposition + type: keyword + description: > + The status of the files proxied and scanned by Cisco Advanced Malware Protection (AMP) as part of the Umbrella File Inspection feature; can be Clean, Malicious or Unknown. + + - name: amp_malware_name + type: keyword + description: > + If Malicious, the name of the malware according to AMP. + + - name: amp_score + type: keyword + description: > + The score of the malware from AMP. This field is not currently used and will be blank. + + - name: datacenter + type: keyword + description: > + The name of the Umbrella Data Center that processed the user-generated traffic. + + - name: origin_id + type: keyword + description: > + The unique identity of the network tunnel. + + - name: identities + type: keyword + - name: identity_types + type: keyword + - name: request_method + type: keyword + - name: dlp_status + type: keyword + - name: certificate_errors + type: keyword + - name: file_name + type: keyword + - name: ruleset_id + type: keyword + - name: rule_id + type: keyword + - name: destination_lists_id + type: keyword + - name: audit.type + type: keyword + description: Where the change was made, such as settings or a policy. + - name: audit.before + type: keyword + description: The policy or setting before the change was made. + - name: audit.after + type: keyword + description: The policy or setting after the change was made. diff --git a/packages/cisco_umbrella/1.0.0/data_stream/log/manifest.yml b/packages/cisco_umbrella/1.0.0/data_stream/log/manifest.yml new file mode 100755 index 0000000000..9908a895a4 --- /dev/null +++ b/packages/cisco_umbrella/1.0.0/data_stream/log/manifest.yml @@ -0,0 +1,148 @@ +title: Cisco Umbrella logs +release: experimental +type: logs +streams: + - input: aws-s3 + enabled: false + title: Cisco Umbrella logs + description: Collect Cisco Umbrella logs + template_path: aws-s3.yml.hbs + vars: + - name: queue_url + type: text + title: Queue URL + multi: false + required: false + show_user: true + description: URL of the AWS SQS queue that messages will be received from. For Cisco Managed S3 buckets or S3 without SQS, use Bucket ARN. + - name: bucket_arn + type: text + title: Bucket ARN + multi: false + required: false + show_user: true + description: >- + Required for Cisco Managed S3. If the S3 bucket does not use SQS, this is the address for the S3 bucket, one example is `arn:aws:s3:::cisco-managed-eu-central-1` For a list of Cisco Managed buckets, please see https://docs.umbrella.com/mssp-deployment/docs/enable-logging-to-a-cisco-managed-s3-bucket. + - name: region + type: text + title: Bucket Region + multi: false + required: false + show_user: true + description: >- + Required for Cisco Managed S3. The region the bucket is located in. + - name: bucket_list_prefix + type: text + title: Bucket List Prefix + multi: false + required: false + show_user: true + description: >- + Required for Cisco Managed S3. This sets the root folder of the S3 bucket that should be monitored, found in the S3 Web UI. Example value: `1235_654vcasd23431e5dd6f7fsad457sdf1fd5`. Forward slash at the end required for Cisco Managed S3. + - name: number_of_workers + type: text + title: Number of Workers + multi: false + required: false + show_user: true + default: 1 + description: Required for Cisco Managed S3. Number of workers that will process the S3 objects listed. Minimum is 1. + - name: bucket_list_interval + type: text + title: Bucket List Interval + multi: false + required: false + show_user: true + description: Time interval for polling listing of the S3 bucket. Defaults to 120s. + - name: shared_credential_file + type: text + title: Shared Credential File + multi: false + required: false + show_user: false + description: Directory of the shared credentials file. + - name: credential_profile_name + type: text + title: Credential Profile Name + multi: false + required: false + show_user: false + - name: access_key_id + type: text + title: Access Key ID + multi: false + required: false + show_user: true + - name: secret_access_key + type: text + title: Secret Access Key + multi: false + required: false + show_user: true + - name: session_token + type: text + title: Session Token + multi: false + required: false + show_user: true + - name: role_arn + type: text + title: Role ARN + multi: false + required: false + show_user: false + - name: endpoint + type: text + title: Endpoint + multi: false + required: false + show_user: false + default: "amazonaws.com" + description: URL of the entry point for an AWS web service. + - name: visibility_timeout + type: text + title: Visibility Timeout + multi: false + required: false + show_user: false + description: The duration that the received messages are hidden from subsequent retrieve requests after being retrieved by a ReceiveMessage request. The maximum is 12 hours. + - name: api_timeout + type: text + title: API Timeout + multi: false + required: false + show_user: false + description: The maximum duration of AWS API can take. The maximum is half of the visibility timeout value. + - name: fips_enabled + type: bool + title: Enable S3 FIPS + default: false + multi: false + required: false + show_user: false + description: Enabling this option changes the service name from `s3` to `s3-fips` for connecting to the correct service endpoint. + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - cisco-umbrella + - forwarded + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: >- + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. diff --git a/packages/cisco_umbrella/1.0.0/data_stream/log/sample_event.json b/packages/cisco_umbrella/1.0.0/data_stream/log/sample_event.json new file mode 100755 index 0000000000..f2356b0269 --- /dev/null +++ b/packages/cisco_umbrella/1.0.0/data_stream/log/sample_event.json @@ -0,0 +1,97 @@ +{ + "destination": { + "geo": { + "continent_name": "North America", + "country_name": "United States", + "location": { + "lon": -97.822, + "lat": 37.751 + }, + "country_iso_code": "US" + }, + "as": { + "number": 15169, + "organization": { + "name": "Google LLC" + } + }, + "address": "8.8.8.8", + "ip": "8.8.8.8" + }, + "source": { + "nat": { + "ip": "1.1.1.1" + }, + "address": "192.168.1.1", + "ip": "192.168.1.1" + }, + "url": { + "path": "/blog/ext_id=Anyclip", + "original": "https://elastic.co/blog/ext_id=Anyclip", + "scheme": "https", + "domain": "elastic.co", + "full": "https://elastic.co/blog/ext_id=Anyclip" + }, + "tags": [ + "preserve_original_event" + ], + "observer": { + "type": "proxy", + "product": "Umbrella", + "vendor": "Cisco" + }, + "@timestamp": "2020-07-23T23:48:56.000Z", + "ecs": { + "version": "8.2.0" + }, + "related": { + "hash": [ + "" + ], + "ip": [ + "192.168.1.1", + "1.1.1.1", + "8.8.8.8" + ] + }, + "http": { + "request": { + "referrer": "https://google.com/elastic", + "bytes": 850 + }, + "response": { + "status_code": 200 + } + }, + "event": { + "ingested": "2021-09-13T00:16:24.480432923Z", + "original": "\"2020-07-23 23:48:56\",\"elasticuser\",\"someotheruser\",\"192.168.1.1\",\"1.1.1.1\",\"8.8.8.8\",\"\",\"ALLOWED\",\"https://elastic.co/blog/ext_id=Anyclip\",\"https://google.com/elastic\",\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36\",\"200\",\"850\",\"\",\"\",\"\",\"Business Services\",\"AVDetectionName\",\"Malicious\",\"MalwareName\",\"\",\"\",\"Roaming Computers\",\"\"", + "category": "network", + "type": [ + "allowed" + ] + }, + "cisco": { + "umbrella": { + "amp_score": "", + "puas": "Malicious", + "identities": [ + "someotheruser" + ], + "content_type": "", + "identity_types": "Roaming Computers", + "blocked_categories": "", + "sha_sha256": "", + "amp_disposition": "MalwareName", + "categories": "Business Services", + "av_detections": "AVDetectionName", + "amp_malware_name": "" + } + }, + "user": { + "name": "elasticuser" + }, + "user_agent": { + "original": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36" + } +} \ No newline at end of file diff --git a/packages/cisco_umbrella/1.0.0/docs/README.md b/packages/cisco_umbrella/1.0.0/docs/README.md new file mode 100755 index 0000000000..10abae0590 --- /dev/null +++ b/packages/cisco_umbrella/1.0.0/docs/README.md @@ -0,0 +1,276 @@ +# Cisco Umbrella Integration + +This integration is for Cisco Umbrella . It includes the following +datasets for receiving logs from an AWS S3 bucket using an SQS notification queue and Cisco Managed S3 bucket without SQS: + +- `log` dataset: supports Cisco Umbrella logs. + +## Logs + +### Umbrella + +When using Cisco Managed S3 buckets that does not use SQS there is no load balancing possibilities for multiple agents, a single agent should be configured to poll the S3 bucket for new and updated files, and the number of workers can be configured to scale vertically. + +The `log` dataset collects Cisco Umbrella logs. + +An example event for `log` looks as following: + +```json +{ + "destination": { + "geo": { + "continent_name": "North America", + "country_name": "United States", + "location": { + "lon": -97.822, + "lat": 37.751 + }, + "country_iso_code": "US" + }, + "as": { + "number": 15169, + "organization": { + "name": "Google LLC" + } + }, + "address": "8.8.8.8", + "ip": "8.8.8.8" + }, + "source": { + "nat": { + "ip": "1.1.1.1" + }, + "address": "192.168.1.1", + "ip": "192.168.1.1" + }, + "url": { + "path": "/blog/ext_id=Anyclip", + "original": "https://elastic.co/blog/ext_id=Anyclip", + "scheme": "https", + "domain": "elastic.co", + "full": "https://elastic.co/blog/ext_id=Anyclip" + }, + "tags": [ + "preserve_original_event" + ], + "observer": { + "type": "proxy", + "product": "Umbrella", + "vendor": "Cisco" + }, + "@timestamp": "2020-07-23T23:48:56.000Z", + "ecs": { + "version": "8.2.0" + }, + "related": { + "hash": [ + "" + ], + "ip": [ + "192.168.1.1", + "1.1.1.1", + "8.8.8.8" + ] + }, + "http": { + "request": { + "referrer": "https://google.com/elastic", + "bytes": 850 + }, + "response": { + "status_code": 200 + } + }, + "event": { + "ingested": "2021-09-13T00:16:24.480432923Z", + "original": "\"2020-07-23 23:48:56\",\"elasticuser\",\"someotheruser\",\"192.168.1.1\",\"1.1.1.1\",\"8.8.8.8\",\"\",\"ALLOWED\",\"https://elastic.co/blog/ext_id=Anyclip\",\"https://google.com/elastic\",\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36\",\"200\",\"850\",\"\",\"\",\"\",\"Business Services\",\"AVDetectionName\",\"Malicious\",\"MalwareName\",\"\",\"\",\"Roaming Computers\",\"\"", + "category": "network", + "type": [ + "allowed" + ] + }, + "cisco": { + "umbrella": { + "amp_score": "", + "puas": "Malicious", + "identities": [ + "someotheruser" + ], + "content_type": "", + "identity_types": "Roaming Computers", + "blocked_categories": "", + "sha_sha256": "", + "amp_disposition": "MalwareName", + "categories": "Business Services", + "av_detections": "AVDetectionName", + "amp_malware_name": "" + } + }, + "user": { + "name": "elasticuser" + }, + "user_agent": { + "original": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36" + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Date/time when the event originated. This is the date/time extracted from the event, typically representing when the event was generated by the source. If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. | date | +| cisco.umbrella.amp_disposition | The status of the files proxied and scanned by Cisco Advanced Malware Protection (AMP) as part of the Umbrella File Inspection feature; can be Clean, Malicious or Unknown. | keyword | +| cisco.umbrella.amp_malware_name | If Malicious, the name of the malware according to AMP. | keyword | +| cisco.umbrella.amp_score | The score of the malware from AMP. This field is not currently used and will be blank. | keyword | +| cisco.umbrella.audit.after | The policy or setting after the change was made. | keyword | +| cisco.umbrella.audit.before | The policy or setting before the change was made. | keyword | +| cisco.umbrella.audit.type | Where the change was made, such as settings or a policy. | keyword | +| cisco.umbrella.av_detections | The detection name according to the antivirus engine used in file inspection. | keyword | +| cisco.umbrella.blocked_categories | The categories that resulted in the destination being blocked. Available in version 4 and above. | keyword | +| cisco.umbrella.categories | The security or content categories that the destination matches. | keyword | +| cisco.umbrella.certificate_errors | | keyword | +| cisco.umbrella.computer_name | The computer name related to the event. | keyword | +| cisco.umbrella.content_type | The type of web content, typically text/html. | keyword | +| cisco.umbrella.datacenter | The name of the Umbrella Data Center that processed the user-generated traffic. | keyword | +| cisco.umbrella.destination_lists_id | | keyword | +| cisco.umbrella.dlp_status | | keyword | +| cisco.umbrella.file_name | | keyword | +| cisco.umbrella.identities | | keyword | +| cisco.umbrella.identity_types | | keyword | +| cisco.umbrella.origin_id | The unique identity of the network tunnel. | keyword | +| cisco.umbrella.policy_identity_type | The first identity type matched with this request. Available in version 3 and above. | keyword | +| cisco.umbrella.puas | A list of all potentially unwanted application (PUA) results for the proxied file as returned by the antivirus scanner. | keyword | +| cisco.umbrella.request_method | | keyword | +| cisco.umbrella.rule_id | | keyword | +| cisco.umbrella.ruleset_id | | keyword | +| cisco.umbrella.sha_sha256 | Hex digest of the response content. | keyword | +| client.domain | The domain name of the client system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| client.registered_domain | The highest registered client domain, stripped of the subdomain. For example, the registered domain for "foo.example.com" is "example.com". This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". | keyword | +| client.subdomain | The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain. For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. | keyword | +| client.top_level_domain | The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com". This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.address | Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| destination.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| destination.as.organization.name | Organization name. | keyword | +| destination.as.organization.name.text | Multi-field of `destination.as.organization.name`. | match_only_text | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.domain | The domain name of the destination system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| destination.geo.city_name | City name. | keyword | +| destination.geo.continent_name | Name of the continent. | keyword | +| destination.geo.country_iso_code | Country ISO code. | keyword | +| destination.geo.country_name | Country name. | keyword | +| destination.geo.location | Longitude and latitude. | geo_point | +| destination.geo.region_iso_code | Region ISO code. | keyword | +| destination.geo.region_name | Region name. | keyword | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.mac | MAC address of the destination. The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. | keyword | +| destination.nat.ip | Translated ip of destination based NAT sessions (e.g. internet to private DMZ) Typically used with load balancers, firewalls, or routers. | ip | +| destination.nat.port | Port the source session is translated to by NAT Device. Typically used with load balancers, firewalls, or routers. | long | +| destination.port | Port of the destination. | long | +| dns.question.name | The name being queried. If the name field contains non-printable characters (below 32 or above 126), those characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n respectively. | keyword | +| dns.question.type | The type of record being queried. | keyword | +| dns.response_code | The DNS response code. | keyword | +| dns.type | The type of DNS event captured, query or answer. If your source of DNS events only gives you DNS queries, you should only create dns events of type `dns.type:query`. If your source of DNS events gives you answers as well, you should create one event per query (optionally as soon as the query is seen). And a second event containing all query details as well as an array of answers. | keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| error.message | Error message. | match_only_text | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.code | Identification code for this event, if one exists. Some event sources use event codes to identify messages unambiguously, regardless of message language or wording adjustments over time. An example of this is the Windows Event ID. | keyword | +| event.dataset | Event dataset | constant_keyword | +| event.ingested | Timestamp when an event arrived in the central data store. This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` \< `event.created` \< `event.ingested`. | date | +| event.module | Event module | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.outcome | This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. | keyword | +| event.timezone | This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host MAC addresses. The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| http.request.bytes | Total size in bytes of the request (body and headers). | long | +| http.request.method | HTTP request method. The value should retain its casing from the original event. For example, `GET`, `get`, and `GeT` are all considered valid values for this field. | keyword | +| http.request.referrer | Referrer for this HTTP request. | keyword | +| http.response.bytes | Total size in bytes of the response (body and headers). | long | +| http.response.status_code | HTTP response status code. | long | +| input.type | Type of Filebeat input. | keyword | +| log.file.path | Full path to the log file this event came from, including the file name. It should include the drive letter, when appropriate. If the event wasn't read from a log file, do not populate this field. | keyword | +| message | For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message. | match_only_text | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| observer.product | The product name of the observer. | keyword | +| observer.type | The type of the observer the data is coming from. There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. | keyword | +| observer.vendor | Vendor name of the observer. | keyword | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| rule.id | A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. | keyword | +| source.address | Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| source.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| source.as.organization.name | Organization name. | keyword | +| source.as.organization.name.text | Multi-field of `source.as.organization.name`. | match_only_text | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.domain | The domain name of the source system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| source.geo.city_name | City name. | keyword | +| source.geo.continent_name | Name of the continent. | keyword | +| source.geo.country_iso_code | Country ISO code. | keyword | +| source.geo.country_name | Country name. | keyword | +| source.geo.location | Longitude and latitude. | geo_point | +| source.geo.region_iso_code | Region ISO code. | keyword | +| source.geo.region_name | Region name. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.mac | MAC address of the source. The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. | keyword | +| source.nat.ip | Translated ip of source based NAT sessions (e.g. internal client to internet) Typically connections traversing load balancers, firewalls, or routers. | ip | +| source.nat.port | Translated port of source based NAT sessions. (e.g. internal client to internet) Typically used with load balancers, firewalls, or routers. | long | +| source.port | Port of the source. | long | +| source.registered_domain | The highest registered source domain, stripped of the subdomain. For example, the registered domain for "foo.example.com" is "example.com". This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". | keyword | +| source.subdomain | The subdomain portion of a fully qualified domain name includes all of the names except the host name under the registered_domain. In a partially qualified domain, or if the the qualification level of the full name cannot be determined, subdomain contains all of the names below the registered domain. For example the subdomain portion of "www.east.mydomain.co.uk" is "east". If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. | keyword | +| source.top_level_domain | The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com". This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". | keyword | +| tags | List of keywords used to tag each event. | keyword | +| url.domain | Domain of the url, such as "www.elastic.co". In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. | keyword | +| url.extension | The field contains the file extension from the original request url, excluding the leading dot. The file extension is only set if it exists, as not every url has a file extension. The leading period must not be included. For example, the value must be "png", not ".png". Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). | keyword | +| url.full | If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. | wildcard | +| url.full.text | Multi-field of `url.full`. | match_only_text | +| url.original | Unmodified original url as seen in the event source. Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. This field is meant to represent the URL as it was observed, complete or not. | wildcard | +| url.original.text | Multi-field of `url.original`. | match_only_text | +| url.path | Path of the request, such as "/search". | wildcard | +| url.query | The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. | keyword | +| url.scheme | Scheme of the request, such as "https". Note: The `:` is not part of the scheme. | keyword | +| user.domain | Name of the directory the user is a member of. For example, an LDAP or Active Directory domain name. | keyword | +| user.email | User email address. | keyword | +| user.full_name | User's full name, if available. | keyword | +| user.full_name.text | Multi-field of `user.full_name`. | match_only_text | +| user.id | Unique identifier of the user. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | +| user_agent.original | Unparsed user_agent string. | keyword | +| user_agent.original.text | Multi-field of `user_agent.original`. | match_only_text | + diff --git a/packages/cisco_umbrella/1.0.0/img/cisco.svg b/packages/cisco_umbrella/1.0.0/img/cisco.svg new file mode 100755 index 0000000000..20ebebf197 --- /dev/null +++ b/packages/cisco_umbrella/1.0.0/img/cisco.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/cisco_umbrella/1.0.0/manifest.yml b/packages/cisco_umbrella/1.0.0/manifest.yml new file mode 100755 index 0000000000..3a7ccb1531 --- /dev/null +++ b/packages/cisco_umbrella/1.0.0/manifest.yml @@ -0,0 +1,28 @@ +format_version: 1.0.0 +name: cisco_umbrella +title: Cisco Umbrella +version: 1.0.0 +license: basic +description: Collect logs from Cisco Umbrella with Elastic Agent. +type: integration +categories: + - network + - security +release: ga +conditions: + kibana.version: "^8.0.0" +icons: + - src: /img/cisco.svg + title: cisco + size: 216x216 + type: image/svg+xml +policy_templates: + - name: cisco_umbrella + title: Cisco Umbrella logs + description: Collect logs from Cisco Umbrella instances + inputs: + - type: aws-s3 + title: Collect logs from Cisco Umbrella + description: Collecting logs from Cisco Umbrella +owner: + github: elastic/security-external-integrations diff --git a/packages/github/1.0.0/changelog.yml b/packages/github/1.0.0/changelog.yml new file mode 100755 index 0000000000..1bceef1bb0 --- /dev/null +++ b/packages/github/1.0.0/changelog.yml @@ -0,0 +1,61 @@ +# newer versions go on top +- version: "1.0.0" + changes: + - description: Make GA + type: enhancement + link: https://github.com/elastic/integrations/pull/3428 +- version: "0.4.0" + changes: + - description: Update to ECS 8.2 + type: enhancement + link: https://github.com/elastic/integrations/pull/2779 +- version: "0.3.4" + changes: + - description: Fix typo in config template for ignoring host enrichment + type: bugfix + link: https://github.com/elastic/integrations/pull/3092 +- version: "0.3.3" + changes: + - description: Add documentation for multi-fields + type: enhancement + link: https://github.com/elastic/integrations/pull/2916 +- version: "0.3.2" + changes: + - description: Fix date format used in queries. + type: bugfix + link: https://github.com/elastic/integrations/pull/2732 +- version: "0.3.1" + changes: + - description: Resolve invalid query operator + type: bugfix + link: https://github.com/elastic/integrations/pull/2664 +- version: "0.3.0" + changes: + - description: Update to ECS 8.0 + type: enhancement + link: https://github.com/elastic/integrations/pull/2407 +- version: "0.2.2" + changes: + - description: Removes saved search used for testing + type: bugfix + link: https://github.com/elastic/integrations/pull/2554 +- version: "0.2.1" + changes: + - description: Regenerate test files using the new GeoIP database + type: bugfix + link: https://github.com/elastic/integrations/pull/2339 +- version: "0.2.0" + changes: + - description: Add 8.0.0 version constraint + type: enhancement + link: https://github.com/elastic/integrations/pull/2259 +- version: "0.1.1" + changes: + - description: Update Title and Description. + type: bugfix + link: https://github.com/elastic/integrations/pull/1997 +- version: "0.1.0" + changes: + - description: initial release + type: enhancement # can be one of: enhancement, bugfix, breaking-change + link: https://github.com/elastic/integrations/pull/1760 diff --git a/packages/github/1.0.0/data_stream/audit/agent/stream/httpjson.yml.hbs b/packages/github/1.0.0/data_stream/audit/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..9dbed92e60 --- /dev/null +++ b/packages/github/1.0.0/data_stream/audit/agent/stream/httpjson.yml.hbs @@ -0,0 +1,69 @@ +config_version: "2" +interval: {{interval}} +request.method: "GET" +request.url: {{api_url}}/orgs/{{organization}}/audit-log +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} +{{#if http_client_timeout}} +request.timeout: {{http_client_timeout}} +{{/if}} +{{#if proxy_url }} +request.proxy_url: {{proxy_url}} +{{/if}} + +{{!-- https://github.community/t/new-feature-audit-log-rest-api-check-it-out/161512 --}} +request.transforms: + - set: + target: header.Authorization + value: "Bearer {{access_token}}" + - set: + target: header.Accept + value: "application/vnd.github.v3+json" + - set: + target: url.params.phrase + value: '[[sprintf "created:>=%s" (formatDate .cursor.last_timestamp "2006-01-02T15:04:05-07:00")]]' + default: '[[sprintf "created:>=%s" (formatDate (now (parseDuration "-{{initial_interval}}")) "2006-01-02T15:04:05-07:00")]]' + - set: + target: url.params.per_page + value: 100 + - set: + target: url.params.include + value: all + - set: + target: url.params.order + value: asc + +request.rate_limit.limit: '[[ .last_response.header.Get "X-RateLimit-Limit" ]]' +request.rate_limit.reset: '[[ .last_response.header.Get "X-RateLimit-Reset" ]]' +request.rate_limit.remaining: '[[ .last_response.header.Get "X-RateLimit-Remaining" ]]' + +response.pagination: + - set: + target: url.value + value: '[[ getRFC5988Link "next" .last_response.header.Link ]]' + fail_on_template_error: true + +cursor: + last_timestamp: + value: '[[ .last_event.created_at ]]' + +{{#if tags.length}} +tags: +{{else if preserve_original_event}} +tags: +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} + +{{#if processors}} +processors: +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/github/1.0.0/data_stream/audit/elasticsearch/ingest_pipeline/default.yml b/packages/github/1.0.0/data_stream/audit/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..c75e40eef0 --- /dev/null +++ b/packages/github/1.0.0/data_stream/audit/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,155 @@ +--- +description: Pipeline for parsing GitHub audit logs +processors: +- set: + field: event.kind + value: event +- set: + field: ecs.version + value: "8.2.0" +- append: + field: event.type + value: access +- append: + field: event.category + value: web +- append: + field: event.category + value: iam +- rename: + field: message + target_field: event.original + ignore_missing: true +- json: + field: event.original + target_field: json +- fingerprint: + fields: + - json._document_id + target_field: "_id" + ignore_missing: true +- date: + field: json.created_at + formats: + - UNIX_MS + timezone: UTC + target_field: "@timestamp" +- rename: + field: json._document_id + target_field: event.id + ignore_missing: true +- rename: + field: json.action + target_field: event.action + ignore_missing: true +- rename: + field: json.actor + target_field: user.name + ignore_missing: true +- append: + field: related.user + value: "{{user.name}}" + if: ctx.user?.name != null +- rename: + field: json.org + target_field: github.org + ignore_missing: true +- rename: + field: json.user + target_field: user.target.name + ignore_missing: true +- append: + field: related.user + value: "{{user.target.name}}" + if: ctx.user?.target?.name != null +- rename: + field: json.repo + target_field: github.repo + ignore_missing: true +- rename: + field: json.team + target_field: github.team + ignore_missing: true +- rename: + field: json.data.team + target_field: github.team + ignore_missing: true + if: ctx.github?.team == null +- set: + field: group.name + copy_from: github.team + ignore_empty_value: true + if: ctx.event?.action.startsWith("team.") +- set: + field: user.target.group.name + copy_from: github.team + ignore_empty_value: true + if: ctx.event?.action.startsWith("team.") && ctx.user?.target?.name != null +- set: + field: group.name + copy_from: github.org + ignore_empty_value: true + if: ctx.event?.action.startsWith("org.") +- set: + field: user.target.group.name + copy_from: github.org + ignore_empty_value: true + if: ctx.event?.action.startsWith("org.") && ctx.user?.target?.name != null +- rename: + field: json.data.old_user + target_field: user.target.group.name + ignore_missing: true +- rename: + field: json.data.old_user + target_field: user.target.group.name + ignore_missing: true + if: ctx.user?.target?.group?.name == null +- rename: + field: json.actor_location.country_code + target_field: client.geo.country_iso_code + ignore_missing: true +- grok: + field: event.action + ignore_missing: true + patterns: + - '^%{GH_CAT:github.category}\.%{GREEDYDATA}' + pattern_definitions: + GH_CAT: '[a-z_]+' +- remove: + field: + - json + ignore_missing: true +- remove: + field: event.original + if: "ctx.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + ignore_missing: true +- script: + lang: painless + description: This script processor iterates over the whole document to remove fields with null values. + source: | + void handleMap(Map map) { + for (def x : map.values()) { + if (x instanceof Map) { + handleMap(x); + } else if (x instanceof List) { + handleList(x); + } + } + map.values().removeIf(v -> v == null || v == '' || (v instanceof Map && v.size() == 0) || (v instanceof List && v.size() == 0)); + } + void handleList(List list) { + for (def x : list) { + if (x instanceof Map) { + handleMap(x); + } else if (x instanceof List) { + handleList(x); + } + } + list.removeIf(v -> v == null || v == '' || (v instanceof Map && v.size() == 0) || (v instanceof List && v.size() == 0)); + } + handleMap(ctx); +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/github/1.0.0/data_stream/audit/fields/agent.yml b/packages/github/1.0.0/data_stream/audit/fields/agent.yml new file mode 100755 index 0000000000..4d9a6f7b36 --- /dev/null +++ b/packages/github/1.0.0/data_stream/audit/fields/agent.yml @@ -0,0 +1,114 @@ +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/github/1.0.0/data_stream/audit/fields/base-fields.yml b/packages/github/1.0.0/data_stream/audit/fields/base-fields.yml new file mode 100755 index 0000000000..f087bfee14 --- /dev/null +++ b/packages/github/1.0.0/data_stream/audit/fields/base-fields.yml @@ -0,0 +1,23 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset name. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: event.module + type: constant_keyword + description: Event module + value: github +- name: event.dataset + type: constant_keyword + description: Event dataset + value: github.audit +- name: "@timestamp" + type: date + description: Event timestamp. +- name: input.type + type: keyword + description: Type of Filebeat input. diff --git a/packages/github/1.0.0/data_stream/audit/fields/ecs.yml b/packages/github/1.0.0/data_stream/audit/fields/ecs.yml new file mode 100755 index 0000000000..089f10244c --- /dev/null +++ b/packages/github/1.0.0/data_stream/audit/fields/ecs.yml @@ -0,0 +1,88 @@ +- description: Country ISO code. + name: client.geo.country_iso_code + type: keyword +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: Error message. + name: error.message + type: match_only_text +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: Unique ID to describe the event. + name: event.id + type: keyword +- description: |- + Timestamp when an event arrived in the central data store. + This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. + In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` < `event.created` < `event.ingested`. + name: event.ingested + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. + `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. + Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. + Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. + Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. + name: event.outcome + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + For log events the message field contains the log message, optimized for viewing in a log viewer. + For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. + If multiple messages exist, they can be combined into one message. + name: message + type: match_only_text +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword +- description: Name of the group. + name: group.name + type: keyword +- description: Name of the group. + name: user.target.group.name + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.target.name + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword diff --git a/packages/github/1.0.0/data_stream/audit/fields/fields.yml b/packages/github/1.0.0/data_stream/audit/fields/fields.yml new file mode 100755 index 0000000000..59930fc9dc --- /dev/null +++ b/packages/github/1.0.0/data_stream/audit/fields/fields.yml @@ -0,0 +1,17 @@ +- name: github.org + type: keyword + description: > + GitHub organization name + +- name: github.team + type: keyword + description: >- + GitHub team name +- name: github.repo + type: keyword + description: >- + GitHub repository name +- name: github.category + type: keyword + description: >- + GitHub action category diff --git a/packages/github/1.0.0/data_stream/audit/manifest.yml b/packages/github/1.0.0/data_stream/audit/manifest.yml new file mode 100755 index 0000000000..fd72fb7ea5 --- /dev/null +++ b/packages/github/1.0.0/data_stream/audit/manifest.yml @@ -0,0 +1,91 @@ +type: logs +title: GitHub Audit Logs +release: experimental +streams: + - input: httpjson + vars: + - name: access_token + type: text + title: Personal Access Token + description: the GitHub Personal Access Token. Requires the 'admin:org' scope + multi: false + required: true + show_user: true + - name: organization + type: text + title: Organization Name + description: The GitHub organization name/ID + multi: false + required: true + show_user: true + - name: http_client_timeout + type: text + title: HTTP Client Timeout + multi: false + required: false + show_user: true + default: 60s + - name: interval + type: text + title: Interval + multi: false + required: true + show_user: true + description: Interval at which the logs will be pulled. The value must be between 2m and 1h. + default: 1h + - name: initial_interval + type: text + title: Initial Interval + multi: false + required: true + show_user: true + default: 730h # 30 days + description: Initial interval to poll for events. Default is 730 hours (30 days). + - name: api_url + type: text + title: API URL. + description: The API URL without the path. + multi: false + required: true + show_user: false + default: https://api.github.com + - name: ssl + type: yaml + title: SSL + multi: false + required: false + show_user: false + - name: proxy_url + type: text + title: Proxy URL + multi: false + required: false + show_user: false + description: URL to proxy connections in the form of http[s]://:@: + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: true + default: + - forwarded + - github-audit + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original` + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: "Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. \nThis executes in the agent before the logs are parsed. \nSee [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details.\n" + template_path: httpjson.yml.hbs + title: GitHub audit logs + description: Collect GitHub audit logs via the API diff --git a/packages/github/1.0.0/data_stream/audit/sample_event.json b/packages/github/1.0.0/data_stream/audit/sample_event.json new file mode 100755 index 0000000000..04e6483361 --- /dev/null +++ b/packages/github/1.0.0/data_stream/audit/sample_event.json @@ -0,0 +1,64 @@ +{ + "@timestamp": "2020-11-18T17:05:48.837Z", + "agent": { + "ephemeral_id": "95d78df4-1364-43b9-ab4f-62fc70d21b04", + "id": "584f3aea-648c-4e58-aba4-32b8f88d4396", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.0.0-beta1" + }, + "data_stream": { + "dataset": "github.audit", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "584f3aea-648c-4e58-aba4-32b8f88d4396", + "snapshot": false, + "version": "8.0.0-beta1" + }, + "event": { + "action": "repo.destroy", + "agent_id_status": "verified", + "category": [ + "web", + "iam" + ], + "created": "2022-02-03T12:34:05.664Z", + "dataset": "github.audit", + "id": "LwW2vpJZCDS-WUmo9Z-ifw", + "ingested": "2022-02-03T12:34:06Z", + "kind": "event", + "original": "{\"@timestamp\":1605719148837,\"_document_id\":\"LwW2vpJZCDS-WUmo9Z-ifw\",\"action\":\"repo.destroy\",\"actor\":\"monalisa\",\"created_at\":1605719148837,\"org\":\"mona-org\",\"repo\":\"mona-org/mona-test-repo\",\"visibility\":\"private\"}", + "type": [ + "access" + ] + }, + "github": { + "category": "repo", + "org": "mona-org", + "repo": "mona-org/mona-test-repo" + }, + "host": { + "name": "docker-fleet-agent" + }, + "input": { + "type": "httpjson" + }, + "related": { + "user": [ + "monalisa" + ] + }, + "tags": [ + "forwarded", + "github-audit", + "preserve_original_event" + ], + "user": { + "name": "monalisa" + } +} \ No newline at end of file diff --git a/packages/github/1.0.0/docs/README.md b/packages/github/1.0.0/docs/README.md new file mode 100755 index 0000000000..8971a5d008 --- /dev/null +++ b/packages/github/1.0.0/docs/README.md @@ -0,0 +1,136 @@ +# GitHub Integration + +The GitHub integration collects audit events from the GitHub API. + +## Logs + +### Audit + +The GitHub audit log records all events related to the GitHub organization. See [https://docs.github.com/en/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization#audit-log-actions](https://docs.github.com/en/organizations/keeping-your-organization-secure/reviewing-the-audit-log-for-your-organization#audit-log-actions) for more details. + +To use this integration, you must be an organization owner, and you must use an Personal Access Token with the admin:org scope. + +*This integration is not compatible with GitHub Enterprise server.* + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.geo.country_iso_code | Country ISO code. | keyword | +| data_stream.dataset | Data stream dataset name. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| error.message | Error message. | match_only_text | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Event dataset | constant_keyword | +| event.id | Unique ID to describe the event. | keyword | +| event.ingested | Timestamp when an event arrived in the central data store. This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` \< `event.created` \< `event.ingested`. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.outcome | This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. | keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| github.category | GitHub action category | keyword | +| github.org | GitHub organization name | keyword | +| github.repo | GitHub repository name | keyword | +| github.team | GitHub team name | keyword | +| group.name | Name of the group. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Type of Filebeat input. | keyword | +| message | For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message. | match_only_text | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | +| user.target.group.name | Name of the group. | keyword | +| user.target.name | Short name or login of the user. | keyword | +| user.target.name.text | Multi-field of `user.target.name`. | match_only_text | + + +An example event for `audit` looks as following: + +```json +{ + "@timestamp": "2020-11-18T17:05:48.837Z", + "agent": { + "ephemeral_id": "95d78df4-1364-43b9-ab4f-62fc70d21b04", + "id": "584f3aea-648c-4e58-aba4-32b8f88d4396", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.0.0-beta1" + }, + "data_stream": { + "dataset": "github.audit", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "584f3aea-648c-4e58-aba4-32b8f88d4396", + "snapshot": false, + "version": "8.0.0-beta1" + }, + "event": { + "action": "repo.destroy", + "agent_id_status": "verified", + "category": [ + "web", + "iam" + ], + "created": "2022-02-03T12:34:05.664Z", + "dataset": "github.audit", + "id": "LwW2vpJZCDS-WUmo9Z-ifw", + "ingested": "2022-02-03T12:34:06Z", + "kind": "event", + "original": "{\"@timestamp\":1605719148837,\"_document_id\":\"LwW2vpJZCDS-WUmo9Z-ifw\",\"action\":\"repo.destroy\",\"actor\":\"monalisa\",\"created_at\":1605719148837,\"org\":\"mona-org\",\"repo\":\"mona-org/mona-test-repo\",\"visibility\":\"private\"}", + "type": [ + "access" + ] + }, + "github": { + "category": "repo", + "org": "mona-org", + "repo": "mona-org/mona-test-repo" + }, + "host": { + "name": "docker-fleet-agent" + }, + "input": { + "type": "httpjson" + }, + "related": { + "user": [ + "monalisa" + ] + }, + "tags": [ + "forwarded", + "github-audit", + "preserve_original_event" + ], + "user": { + "name": "monalisa" + } +} +``` \ No newline at end of file diff --git a/packages/github/1.0.0/img/github-audit-dashboard.png b/packages/github/1.0.0/img/github-audit-dashboard.png new file mode 100755 index 0000000000000000000000000000000000000000..e6738cf99f79bae0571b1e8299bead674e431896 GIT binary patch literal 481911 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

    lkme%;&@HL1JZ32aJq>CObQT>LBRU6B4Q3dHiX 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

    xge2t+KvG?LCi};QmoyqiYU1ilCGU?z$@O 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

    8_>4K16yaONkp
    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	T
    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⪻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

    13=$?T45x3#F)ZkiiJ6eF&ene;Y^wZBK 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

    q6YAUF}rK4qWyT*&3i|*8Y6&8`3392 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 z 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∓2q`K`mn zyb7j=VQ*2;H?#EBc>uShZ#v_z8_fC}%!*1!LG|2APsgQYKHeJMh#+ceXnn)DhP7ks zdtyz)Hu|%!?t3{_YBeGJan%;l0%UK#Yk#uG1*?0eDP>z-LpUs#t@KM6>vlq2pnNeX zGg5K~utHR>OSq>{ab%Lc?B?4iqaIr{hzAgqB>e#6m4Y5en52EI38{?GzO1LfAs%yL zJ}>l&4Qw61eb~6GkZN+??^)h_EzG`yrFM0NNd#MbTglNP)Q@{7nErCfzv)wIOG)Ji zN+pP^%&&G@W|`M9^X9)PH&4uUosiq3#J>OouJtQ{G49N@!K2zfmt)KmEg*8GpV8Sq zD`1<}fgGEq*u8*l@_sNw&S!iz^}hr)MlhV&FFZfu-H!SSpb3TcM^_GAUT%!lsUi&x zNv0(<=|z2ygai+5CPmYV z)w~#0r$a^6rJW;=Asl>42IW+vI4S0WO}HE_eal@#G@2zsW_daelsp2`3o`@@a508* z_7P@}(LCTtD=fPK*E#)Lrf0t*bQSkv9E;G0>plWT<~PlWTwEsNGjB3#zJG*DL3 zcM}eLe%HX&_4j)^6Z)Q=Q@F{i+~d#U`jga)hIb(P=(a4g=vKE%vfDh{bBwJq!8>;9 zADhD=(Xl!elBTb@*=Y>R(kST=UKiB=6R(+)Nt6Ru?dAV-h&XJ;*&Ch<8t>BOzka1( z-i!~5>4CTw{`KY)0Hc+Ad08;fKfq{H7(v2cd;OT!4Q_Y&DAoW?TEC@<^4Y?>M_VS# zl;*cwzX`T|dmip`FB0qg%A{q|s1Od|#OUKhnEdqG(T_D33|46bCP{#KX=+V%9a z(**n2kd9GVJo?AITE`2fc&is#?|C>wrJ5x~lkE#_wntOB$puMO<#4jq0UA|rON~+ym;cqZZswv| z@diX06@82P=snAaocrit)a9kDweeZnw&KXg4kz-2{Z(AbAlqspAnR-oysO`SRnRu- zM7{gq><(b1ParvJI*jXP!|i>- zi&H&oM04V`v?vZ7bBd%_ZZ*z*Pv!-HSU3Ig#COF_@Ua{$+CU8&rr5#EP}A-QzH2Ai zzT&wo+#GUNbou?cOH4IM-MG+a@SBj(QEC6mBEjl5579cGW}Vjh0TO!eV!JrUx+zW? z&kGj#<)T~`H+CNd@`JL`YnJzkMd=+V4p-8qS zFavKqQK;rttRN3omtrp`$CfJo`tbC<-RE;|j~H_vk4t*+{`Hlep+(16ixvTTNiz#S zEO`W@+y~dbuyCbuh)47C^&F$j1_k>pZ=io&WRe(v8|VcV3XD+DfYL(W7Vmpx?KV=}g z&Ce%pDYy+_?g*MF;bEF27540A5m|IAv~w90&KTa^++~B08k0@>-@w0fMQiz3B{ibC zn(xrxUxz;)cWGAH8r`?V`4+RuiZ!U#htK-<`jXjO3JsR*QId=f-e!WFro&UqOnffCKgx~;UrSgsj6Au&B&SB5VLj(BqhLpzO&I_%CG307 zMDabZNS!qNl`B6rHCMj0rT(M$#pP1b;mc`CG1QvQa~p7gi4sSH0k)fJz3-rIUsA1V zC}y-dPxPf*D5@7YG3w($l2ZMan^zvUuPt7d>v(o@1%Aet>PwIBGJsa4(kSk&>+WF) zy?g}w?2V27gVWjZJM$}Ng2`ssm!flo&`2{xsB8qTea;p3eoQ))Zt(rQhWBCM>6hsw ztrZ}76{%^UrA1~donHhL00(bbeO1=!%i~e*DXHpxmxN?j`%dUx)_49%&ry-KRNhEb zsi6i*CyHHwFhM1jrS5MkKjrK&-$e!VF5nXz`}#e>DgZQYv=rXomk@g?h2S4cjeLcG?Vd{%WccNnXAPjL%&@0S?2H zhgo#QrLg-mU<&l3&_?~R)5l!oJ-!S?YOBA!Su6iY_2WTsO=iI?d9K{b!jaQu8BPf)yb7}_F)k6?#!l=DeT?G`CedxD! zx4FZAQf^e;DLGe{3~LtWJyTIG``=&x#s7$rs$%Po)wzG5ol{Q9K3G5wRx-*crJ~=# zF$Kyd6rP&ou|nHq=*;ab0WF5s%rk$V+o5SIgkMsq`OT3ku4hy?#oQ_u|J=a=oeeA>vp_`>1UjVcAi|B{s1O9ami@fk zA~A@!itdgj8|61v@}PM7W+big<7nvKux9i2WXae206Gd|iDAO#WEo((qW{mO?(+N- z2Sn}w$58E?d*7!^QKA~}ogs{B+a;c_*T2jb0=I0{;}z;)Wv`Zou($bo)43*n)@B3O zsq4ut2}`FzZjPQzI~ES#<)f#@7Y_!Py7CBgsT9xBegEAs3h-UdJthp{_!q$4p^!6( zIId!XEPLGSGEL4+3s?;KDChIYBYDK zh`xu%KDMoP7D(XPR9OA*ebxGDK1(`i22r;jfh-@3_)Co{S;;ow5tyMwd=s;ci`sKX zTa}^>z~a_n%SIneO|b4}J_7g%zd5&VVUmj)pYS*n+x!MOw_C5$Kg#&i3rH@^fN-7q zcJ2;m3`=G07R!v7Uh?2iN@( z9J3((`B#9IuE3aS&CD(DZO3e}ydaq#@5Zi90Bu_4(Oa$-TQs$G!1zuvqdbA7Q>}dXO^VIGvy~-xWD^S{KMrQVP@P? z^<~*Mqll;O&77}P98i)tDbgmV^UM#-#&Y4n<3`NgF>OH~`+Xhu;*w?c2DmWOKAVRf zd6-OJV}j7V>#|#ZT-Fw>)ngKUR5wbO?WQE+Y=JG{8>5ZP*U|gA=&8c3*X$uV!&4C z-Lv>WTl*~)F>M)LE26HDY zL*W{m?!Ab-&CU&tfdza9%vQS(A_Z*r^w#M%%ATw4twD0DJL^iGY&JIR4Dv2DZ!K_cx!JG)gH^=6&GRt z&qS7lMIeELF}U45nP29cz*&R)TfpB@zfW0scM$}bM67HXQirqA(#xZ|;=I9>6>2+Y zC77GPK=dJS)eN5dgI0pX9%en3rsHhi`@@a9LnD)99_IM{lauk{OAYRF2H1KI^bYth z0D#)o@Xw8xkb5OfGjSri`}M!uRmqCfKkgx>v~eL(OK!NB9{pchnDTU*)VUd)WWR+4 zYO8CJyZqdft?~fni4u5r6U2zx711rQ+6G1$>Yy^0zt& zjVN*5;Cnq7BS^&j2eteWaZn||9FVS%>Rj@O?vwC3QVsU?T^ zGbijt5$8hT-{7r}W>mk- z^qqRzyWtDmZ#nu;jb|7q(SlJu7dX=A+%_Ha29rdsC9}_}KvWcV{0l!FC;)i5TkM+f zXgZDvXnM*0Vu$hD0(*fKE&o*Cq~u}xXu^{n;`18XU@7mtr6W9M3J`t*9@aI8D5)1m zlA$C8i`2!Q?0nQ{?LDv)#W(Gs*bHUy7~FaK>BMt?xOc~k=jZKz-h2p*#>WMlDrNh9 zVC=%c-yjEDA;V`W?x*9l2+%(KkqI*cK~s>p^mfIHlKYd>#b&s)YmzK%fIW<}825-& z<)PdDFm9$z7JGR)C#cOR(py5rw9TD*AKmx@25AU(z94`f$$8=hvRAnOm=OeYxiXHs zE0naFbyKozLR0j^xUu&>{%ZvFb&7v|R8kGsENcP?Zz|-;(S0rA_|}aXq+lYq4LfE0 zHuT07$R|qp5<|bp<{7swcdZlXttZN#eXEOk^V$$Sit1|*U6n>QZu?Xs9|cI#xk zJoYtCq|&Jep}NGvvEqjr)k@ERN}O$%1iPDy4>l?i<)&e#>3an)-RRGkLf#VXeYqG* zJuE=qmEV4Nqg%kjB>_iGS7+Fyy;?eMI81_8OJLucWxvbnOfVAm6{5hrGX8dE9l1LW zay@e$HlW2mnB=)3GvBfLuU6=h+-cE{3bw^~1J^|hAEV5hHO{T)?=IUA+)X z47%qsGS*HDk8v!C1?gtvwCXnai4X6d@4J{X8NJ-O%&#Es`A;ZQ(%m86sJpLQ_Tr*3 z)OAI)N-ooo#Oe*`8w>NsXfqGvB>@kw8OQLQ&vY5h;f@6)5>9X>J)C`+vbMGLiTmo% z`fU4_^=*x2&ec_JOqJdvkfJlWJ85j;-t2DFYFuLsVj|%ha9tBL@~CLDe=8IXT*#n8K83vQ_k9!OM(h2Ta#K5XcY1J` zDo(XXhpPmqB5}?4Pmq=uZmwB1OZ)rA(-!bwZ9+o98)oWDdAmu;Tr-rHB~@)R_u--KoTXpQkIF#ACMx}I0?M*ggFDK>!&{8v)cOTN74&6-rzmg_9=A~_C4QMMIj$V$^0t3fo4MM-r9T5`r}VQJkBAyN8C9|}6|;Auc^PQHB*W(vV8 z+pE=v2XZg4zTx}u!Xae)Lk9d@lJxM!A<3cL%b7J3m4&yk^8>8;nI6^ySrlo2fuU#pZD&_!q=~{D}ho4jtNpYQli9~Npm?^Nrm==tPsjPOkwl01w_k7Atp_*e zUNQ)sTD=<<%=sSKBt#)WAQ8eE7vhDv6y3Oy zX+XOq0?864&=dEdIHS%je+f8T{y4vFoPbnA7_Vze1aZc()R9U>7oJNvJEw%E2?z0I~A)mJA?WxT4t*6ecmX zC}I6yb>OwQCex%SP(iCr6wPz%md6@;)baDiE{udl{W}<&;1=SHy!dcAj$+mI-pn8a zN1?Q+?!d1UDBknG2H_Thq(=E^!-lVMbIjvk2CvvI4N^leQ*(y$`m1f=Jp!@*@Terq zEo~nQwUw&Dxw{0sF7;+KGty%wAQ z87k7S6oT#2{wE(L%|&Clc?$yKH3PK0h``ApwIrcC9L&T=!dmnSlqEmwXu)t3h7#^{ zlQmf4(5h~=G7Tgn+8gtbE54Z+hU>?LRzh4Q>G2WZ6NV?IKnvLjjtiR{n1h~C9^TPZ z@1Hklex4&kz0o_!pt1C+Q@g%>!%1`x1RLc()+%%y9p#BvwBAIlMjdc)3GdyVN5Z6g_Jsd|@kt1) zvtpqa{;*5Ev;!ry(I=H#A1~!o9bH+7TBT6g)yj{UTA&TiScuNugsYX6Zv5Iu({?dE zFWUV1-X)cxrI7EFqPFP<@wOq`R^tc;{e7B&xZ4RHf)zny8?EDkMK~*1V=pK&_Vukp zK6&WBAdxW7*xF;zE7-JYE{Tu|7~ACCQWbNKPwcz!q!=6|?igEn->>!2O);UyJt{M5 z8o`S$Q{SR?Z1j7@%qXS#h}hY_!a=4DY9h^b-`9g8?j5CBOVnc!Uj*XKxrC1o)pL5; z`_zHWmw$rEEAW8c!nrFd^|LG;s>}tfMgj?(*smUMAy%y61L|-;4aA*Rf+ifueYEg{ z59&#cKODPUu^ohj&c#IxO}`Kv2L=fBL#**1nAfwD)m#n{Ipn`>)A95hJ7ff*U%e}| z^=dUHv`}VD4|pVKv4?hF=Sh3COUo+e?j{$t;eEaLv8iC+YgJzqeSBMYKNa1Sk~!u==%;Ap}PQE|x+6OeiB4)pnt=o6P!E1W@*wHT)|Gl3N60dE8VcsDHciu!M&IA}uiU;O>J zW&l)4SyhaxxuwD3*4fynx4A>qW@ZG-rVsUhCeYA%%r)5oM{M!uy{4GIB0n+2X@ZlS z-2nsrBSz=Li7b>1*)*Ht%h)W&Na3cu3WkZcnM z5^frs@m_U{jETR(p{LnB0yU5nRqCOsSOdzJUkBpWoh~#c5G&@G_TF2qtM}Vg_rV%z zAP3*=O@VKGq@VS>eC`M~;S64jjdR%`5|=E;F5hh7!2Z6>*Hy18i^}~1U9lG>Uw+{H z1dO0IH|4mea@BX4$taMYB=D|Jfi2#`g}FfC_}l(8DLBu*Pl=~#2>w@K+#f_kH#1}w z!9B;aVK7|LF5$QqS2gqLy+Y&l>MvSvC~EOx8{l^qvp^8UJ`1?uI3rcS=ijGGejt;v zQLuwL&p4I?ox%f#d2-Ht!*-Acb7&uKp~nECRB0AK7ziyWPKy>T+XH^a(|Wz(*NeD% zSHG+^jfpUQhb(NeXVr>sQWUAW7|JV(`gpTa8v&v!GxjlXS!JEp*bv*cgHhGec20w> zfyq-W-su6;andgXqHEf29$|Xkozr^rg~^+P=IYtX1QjFw{Rk)Wtb9IugbQ54?5Qrr za6>JKx=@J@@`>~W`GyE2ai!p|6$yB-#2ULxTiINDdhW~xp8+#FBfhI~<9GJ45v1@-y?d`HZxx|nXpA|)vMpOj0U zz5}HpsGCk!-cgCXP9(p=BA(42tVvN8^%kV)Oiog>-F-&82v(O(-R2lsI);&u94A+v zwvfNK#QXkG= z3q~I~6}8;O^-wBT|Gk{%)jdv8Y!41o%GG*~Fk&A7r)*Jyo#9BcS&5J==NcP~uhCpu zyNtAU3m6h}D?m#ykpdwAIg6M){OQJxK*&lfv0hhPI+7;6-Me~3@S3h&Wy~ePR5Vu#>MiL{-a-%K0 zDemb1cslE-D7)|NKZ=5cprUk0cbBw+bSWW7Bi-FGA|)-|Al)EH*N8|r2qQUkh=9P5 z!!Yj|zrXeV?OJ%Rx$kq%K6_u+=aOoFi8igafzYWLdoR2KWM^hl3jG|O!oBlnDRGzb zmJ1B^Q0)^Ve`7U8mwul`z&!B1wx>~8@U8vT1O}Bf_L==eAI-_ji@>Z;L!|e+6XUa< z74C7IBfq^LM+Xm06ufDGpQ_Pypa#lu|6(WaS#(fm6%E5YnzzehW=ZGl9U01|3#pAL zltaSb+Y6`|JtIxaQ6=3DB9SA7YX|j!I*M4M)W+XNS53y>Hbghh1|Gw$WTeJ>PJ_pj zWL|YbouqTfa1X8rIwJjr2x$N3>L$cXF~{Sfk}M;hWal5eFM-c9Qus?y^f9l(-$ETu zU=E}~Jd63$ep>~M^(d(CT{f-s82^bE<=<08^`yHHe&(NdYgU~jea@uYFi4ckk)K5r zqx<^F$vxPibo z_`bbr?Gu^^*nVtFGNIebW|@`Ayr~=Z}1ba@0J6jfVz`4_TQ_1KZj>V2Dm#=xm^j`2Q(>STC{-(re2W;L@P*prl} z#c33t@N+6JtN~+!MoF}AK-}`+{?0fdf{%am2+Grv9-vjL347LvMoI^j%p1fH0$92u zN#OnQAAW5o11-#cR(`KwHy^!nMw6nG9*h-u1$;%MQQ_ZXr3dV>-@Y@Y*QuC&mL!I_ zY0+QazG38#Vx94yOnHFcY;+`e7}KpM5p7DeOUb(JYH26y<{^?zWZc}vAymB)T zKD{Gz%kG`EW?7Oh4B0ByHG_@w{(%tK-AhVZiYbi+lnWV3QZEZujF;z1K!bFfx_x~?#Qj0iq~W{mo15mnrF`$ zVMJ$a9qi7IvY=)etJXd`v}g;;8?BDnCC;9E8U5o(Y*_fkn_FMrumukDtJ-TYs0pP3 zG-VOS2iOmU)stJ7sp=7oa)x;T!b{X<6{|zY=LvKv5yH8HObSd~#s*~$bs)aWNmt<8 z9^U3GaPPiW9lXDp1-5D$NrOHDUl?_Zq;L(cH_~Qw z-J#vEneg3-x)^@@LD4th?kdRe!qrsdl{+n6sj}Kk;*Z%)oOX!_YG|X6H5UKjT6I|9 zG&>>oKvOwF25&cL{DN!|Y^Uau7Xa|~_x8_6d26KRz7L8A?3+TACy-oTzWC5Pd z`LUrxBxFd1EPVG{ZO9$GJmM4shL`9tGY^0YG^S`b`}dXH4H5rtO&F0n%zoR4;FhZ1 zO4KXLYl1=v5@Q~z1o`$Ke0IJspvqY3{W6dUTb+;2XqrCuQ7%Fr8IWYrPs2ma)f6h|##N%UWJ(P2PGW+r~;($9EY z^Y!kK0ccdK5<0myT2Q}53B5+Gv}$G^roThn@g}7s+m2ASR|wfg`g z!R~#1zz66IoljtI!zZzKiGgt$!M|ZgaG+@0{Su$XfK7{1YlE-69ZDzm=#Biay5$h8 z+y48rCPk{f(HxCke4GjaX7x9YEY+?mr69?~BC$QpE$EAUZ6ICoW0nI0&{WY48veJ% zgR64JN=>V9cTD>{gI4M*SQq#fY|vHbL(~=}FcMYag>k}rGp_O#k3R(6iMdF)3v1=S ze?pD%@V{L4wAFkKmLQPIv!8S7GhF2wB%2e>+)B+=Ed?1Q72}h-{wc8VNt!LL^m@}z z=Nj!50h%E54#*cK0i^e;7c|6tH$U}Q3b(}T^n;-hS54gVIYje+kEQ}BC)(~O538k5 z9ADEuTI7?mwcP;Y3WH4nBDCETl+3WQ?&;z@_gx5}Ab$V{kNo+2FZ`8QM zSL1AQ#=|gvoh)$B#9_@g$tKM_hNc7oAQb#RW%KUV_YBgtsdE#C($Sne1iqwpU`?Yc ztW4Gz;sx#D;O@nnubxy~QhdkX3wQqsUw(Y}Et~7eRKfffEdHQ+hmj(dK<8wEY%?-* z0Xl5&Ds1@gVJrdgrfGP?KW`K?WdMWX{m~|siOPm{y7@mzD!{w}6=>;E{qjm8?!|M5 zkn;a_`L2>vUlthK4r67!?BQ+8R=0Z!uvx8SGW!>kismkPn2X-RkKt~oA|0YevYrQ^ z<@`fPEp^4ni$5gjS&$qd8Q4QB0+hq~95LacSthy9XrFa1k$vB&Qc>jsDTliMJIRMZ zG7&3p;ag^yZH-#f+B_&rR7%EdO}_TAbLxk=(qL2U_wyY=ha{6ya}`SqS2y`LA2NII z2Zm4Oets0i-Ks<@9r&i}VNU=e{=76713_n(g2ga#bahVGO5nJ?q~BC%A$JFk=u% zR+twrCFUg*LUZOSCmT+#!Te(-?oJv=v2|N}Z${SR8edr~5}3UxNpc|N%Y~Cd-8eP1 zEzUGaPfFmjXUz}OJ;_Pj{6?oN#O6LBcJ6@Mq){dWPf$E9?mlg#C&-fw-6htK1lob%VH~q5T;e^ zl-V>_P{TQU8dMeyKswkf+u^_rAb}+im;}uS7Np9|hKui0t|hv*)LDPaX@Hp(C68wm z-`|_H2}7KL`08R`pC%*vYLDUM&1Hb)O2EehgypIH34VQ7_7JP6GxXShs1YF?84Ok# z`_xVP)9d_#eLCPhjs2Au+8x-bOE?!deOoHM_lpfsVP!B$X$Wl^ch>&4QhJ=_gT`9!1a#}4(QV%?CJ~G z$AiA1cHh!z)7L*ed-q_>CUj^ZLS}fEMf5y{HU4yIZ4pDYJ7y#AYv}&KpO#J`_E|xw z;eShgW8!?5A;*DBTWA#Q>(j8w%3Z_?b#nx{RY%5y5OGAb8vUl=qRw(ExY)h}LsIYO ztGXe>AX`>{CsUYpa!F4{Q~bs`Fh9{Nm+SN0F}8*&$&i1Ep)u5j{64>;vk4%qVUuth@SxM*O<4#y|3=kzY=c(?^0fqOl9eveKMRI2+Mwa zI6`*@%bDE&R#t;)YXVJWr&X++4f69+JY>Dm`-*f5C}c%(-iK8K4lc+@syF=mo1*fD z!tVR_(pFYs0A)Bi0XuR_c(E8n%|dAe?A-sO2x&i9?<46$yN);=4Hl0}{OwQ2Rdj{I zPcq;5#~I!?6N|!JFMT`Ehy;MRsm!!~3wR%xiQDg>{=t0$frqN;-GQJa2YHZX9bA~F zT=QrRuj1BLnxp(9^6tnZFw`ptW__u^o2mc? z@MwveXE>z8^(z41`GYT)zl@Pb@FBK$tk(tU>*X1L!~sfSlNb~??!}1I7F})Sr1W`L za7$e1?c`~{$yM$DM~>!x(m2`ej#X}`_%>pYYKwTue#Qsak-uZx0a^6AlPBi(>$_Y- z&1UI`K!Yg$cG0=_s1bx-AjqdJ?#k`2+knP21;D|{=ZkVVxR{MZ9RsYENSV(MLG9Ea zv7oNRjwFizdl!@FT>%}qkK$hE$;RnDX1Gvp*>dvbQlni*XdPq2sOL-oTgzSHND&PNQamUu|7ZyspPuVtxZ{WuaH zXM6jGV1n_r`HDZyREUIopJD5NR&`-xY_iOs>APJU6-Y4WofLUbI*y_&koFc7K73Nq zFFeeff5+!tFP9(cAmo2r4H=CTL>9m#KtI*cIR4XE`y5MrHnYnuVoe9@Ii|r-N!j5Z z1H-Z+FrH_v!0_YAz8CPz1}>hWjMxVTW=fv{STqt)l&0^(@c;O6Z+ z;}wpe7gvbtW_oNCAbV*+U{2HFhYWtF>^uch%4W>7EYstn_Tm%*Bm>vNxIwMJOO)G1 zw}=0P|22hqe#CcW+rdb|8SpVEc3InykA8_wGq1Hn5&(*n(A1Y~BZ$JKJVD`DQre+S zm_geg`c-dKOkk>&vjGyx5t6|7&VBHsR8Mez0QZ`C zJs9N?C&JGo9w&JZ>0pYKiO=78*iqb)8FZvNfV!US2mwBb4~C1?UfH`Gp#pSOxG4io z7h8kL7lGX&q_^MY-8XLapiku>1fJe$x^2d&OlLjoU&LaYg%n0uL2^h6La29s5Abhp&}D2X^4B zU{zj;QT6+x@xqN_2_A2ZR7Vg@10=%_T2YO(+Do|GR4dHFBGEaw!oW25v~qCig#?g4 zTFD?}qPhZ9F$xY-DiHf0nKl&O-)mKM#~1LAsefe%#Ehg+8xoXu;y z0SM&=Bo4_LH7TqBc(w~E;%Q?|o%%0!xFJ2HB+BmoE_|0I!tC%+Gx;rGHd@OyQ12ht zt)S5@d@|D2Pd@~*{XSf@zLv70){%4HPa2RZkK6KT1u^7XS|C?pbDB5iGPsokV4Gy$ zu;$iaIt1w?X3h56qm5u@a=bC6`Mi@>^k=Xca|o_L%ec3?&T=BAW_WRY34#>dS_~E5 zkXG0PyAOquE%H5&-AKjS9LYzz#aw#o}&cRDB_qLpR?PlxE?sZIc(_)jNK)|p;? za{%(C{Yudh(Gug#=BCTdVR!s^I`VQws;`I0OYlM{$3w+z$0nq3^ulprc|a>vR)ebh zzgNre`3DdA~A)8vl!k|MsN(W0BUXHdRjbf!kP@9`EHNRJ%+t%g}66{9qS zq@odDx~Jc%q#iTQEK&H=X{D0{4x~&U-=>s_b`8|f+#n#!Vb(>gwOewt1*Ynh zc=Q{riE_aO&Jdnd)VhXw$q<@OpUMFI z@X0(<=c^qXy^Kk%MbcIR&R@?jr&|dlkM+V5@E5A+D=oecFR>U_hw(vx!D0yawQi34 z`(o&yAAz$#EsHS?2UTLO-wF=4;`{jA3E@eF1t_8(+{9AMZ}Mp5KM?4Lt=t0uJWi5H z@6GHY_{?GzgdI;tOTU*Ohnh{vP~e($AAmcj^CyBWfHE1OLmr4Wh!ud410xo4hyKPDz@MOk9 zb~%NCF4b1^Y9p><4l@+U=JuH7ux14HY%f?6W{i@L^$R+fF!fqJ&zDz(U8{bfZut>1 zLot~SrOZVyxy4hIFvo~+dN8%t!0)vI+i&Wik2Ncxa*#Lek~U45@!DOi{6#98kX4lU zlmQ?CtE{JnspI|xL9Rc4P0Hp$S!v&!jie8J5YAYMi=^IP&n||3A!9DtVD8)rti68o z@1XHMl%8t+L*h#f=E>tE$IUKIGEcMX1*|I+WPNta+(*?ujEwZN-$ z#vZNLDEip(#_xQ!@K}wkj~9p;EWQ`ay9(=5$Fi1!P)205nuOyi%IZdrau>wccfbTj zv_AvG8HnVjIIk-xuL6(=&=AR8?%EdQ!1PPCoz-ghi+1|lJYn1`(IL=y0N}FXj3!(U!-hsOE5U%9>oEO8$-)_$xr+Wdn=s{S z_aAi)t$7ZZuO*#)WU;4ne)x}qdiFfoi43s#}BEU6t#qw>-DOR zbk1aH&{kwxnAA^DSqzGAR{U#t5)bFQV}&dzCWVQTqG9_jlm-!FDU*+2f*Bhh^V0H$ ziU7y57g-t*sH#TUd15ZNJ;Ys5nuL0-ryE7%jy@Ht;>X{NT3#&=+QTmxW9%HM&VC@!?F3PT%84 zlrZ1TftT{vF+c4&@eFrUk52iFT7MW91G!s${FgHi63ZF5PS@QYGQz~4SOPUl>yh(E z!X!XZ_i4Y^8HLCB^hm{VEzDsgIUn4IS_eGQ_ex%Zwj`CYdg+>d3Y-=5DNdfRGHi-0 z7gAeCTlgUpiFX?uZ3l>8`m8hK4dH%e_xT}yj=w9ZuY|w-YudEi0Q#Ev8js_>#cv{ zZQGNU+BAo(dY$_%AZPeuUN=o9MZ>oXXa~Y@`C6QxC8>zC<+3>sg6n?WGs6mc%<$Jm|09NZ_zic zQb4sNtfN8t5}RWw;O23_-`!qJ`Wz5r7o{&|K2p=cwm!JBu*$M?ysJXU@|+2c^2 zxve2_LgvG-soD)t$Gh`6G@Ci(eb?RTr#UROn;muYuF|;_HfY%35hV1b)8liV{^2AO zrBrYaHNWb(_#2m9vss?$3htptAd57~>Ab!_1z;^)MOxaykcs`AU~?ZcF3bgam~I94 zu?9d9#?06q2x4pI2>Iw*MOs3w=9mFSRYG(pw%@eC(Cbk#e4X|1w~=tOfPDVmuDuw0 zoImH^2}#0Oy6BT94FaD(fzfR@^Bb!npoug9)p%<3%b#%&b3CkhOt4q1HHqWVV9G8Z zx2~OKqO<9i(ELu03XY8O=I7?EF0-Kzblb0N$b}ZSB6+}LMf{rbvSn4sT$)PSZO|~3 z#T-kCI@&^@Uf`EPY=74_&c<$teHHx)7T(da&#(B+)OHh13Cr8u# zSgfcAkh}_1YlOe4zNmpi)LG2;`ik)~Yk-~;WPR{eKROSt23F@4Lq1WXni7yN0I`fUPz92TAF)=KM*Ll|e%^Zrtj}oh&doP%6|JI= zz5eywhdV*;t~IHV+DVQkn0p^QHHNGNhN~~SJ<<1K&+)qRcmP3CbTZbcQB+B-u|u3? zK*r!ESf#CgP(~eL{&0i~84_J~GRd)-LuO@n^v9F7)wrBVg&|LxSJ+9~;N@QDaZxIW z2mArg4);ft)SCF7cdvZ)VOhV?R5J+p;jUgX4e|xua#uWj0~>pwAM5uHr;tI$RlU3; z8=s7)mEMrDgMC31ylGkg57?zF6b5=#ZR#CFiQY3!vU=BTvkZIoL*fL{lpSuYO^A}? za&oIb9YN>8+$2qtH?Dd=U0JIP8)EIsayUfzw33hbTNrWzonP(3&d|!|4o7IJDE77& zwaZ<)%YnQ+%N?Z~6@;#|97!cYWQ=uWB<2QohkSEloHazH@9a}F#=&lOWE$WW?OY>> zUEntr>?+*SQ`NQcQta)=p!dM2c`0{efhv~a_Ue_i%4xAK>%8%a#4K&8fD)eMtChA2(KKMRHVy{tY~)dhTL~Y5xiSz& zQQP8TtmV%AmnUlIOZd(|K{rxBJLqk@L}s0%Y-mIz_x?U zdB5Z)J}*TBs4TYu6SRTl%eNg6^6E|$kuufEQk&xaF1@^eW~{$qT3RDh=;s)gY*?=j z*j;TR-dRCWe~W)ci_jA2|3YjTN$V^HsQTZ=vw^q_eo~5~9NU;ma9I!VlC|*diURvE z25rolf|-Gn7r~YR6yV7Q<2<^BdHZ^S$?DK>e1W1dPgWRz-@@>#T+$xB6 zc0uOxu`i7;e}ecWO#-$|WKK+F3JO0wqawLU;NN|+*L60rPUI3=K3eaN=belIR1yZM>=^wn_^2{h<*feJp+m6k(f#=H%_7U zWxI45=1OnB3X+8?V4UW-Fhfo$F@9ign<{EzCEOlT}cO)WC%xEcn|uVSZ4*E*e>llR5 zahdCYb`-H8_xxI)!6F8h%_mJ^;*r!lqpDNL4Q!?+{(FgRg~)I>EAW1!Fv7P@1LGxt zXxNxU9}&OJJzFjEVKoj_H2h7$~T}lP!}~+|4w; zqNE;99+{+ThaD%&kjmfxpON;er{AT#q-~s830|M73w%rWX|hJx=z010z49&I)?X%7 zMLD;6>+wDwAkA)j78{gg{}kG~lurEH)&G6Cy!@mbOeQhE+Ojt-t3;{Jo1~sbTZR8B ztO$xke;YT)Fs0+VEG@Aut2nmH^NN3G{4yk|)iB9k2I36e+mlsB3P_PRsj zggN^|tPL|$GUmxRx~X+i&#==5>T)@l_T|g%5ZVYejM2z0-eG3k8lz{;1q1grNzdlk zQd6g9s2<>rOKM4BDzhIUuBjcB=UvQ8-xcGIAf!3=seG31b@ImEV46_r1RFSVlXN^9 zEd``hkH3a&ORK#fVjgy1m;wsryy=f*>ydoG*jg~Ubr*qnGOo*~MQP5|VopOAJ@VSM zeC-NrbEY5r(bDS|mjHw$x?F?IjZ3rd4P?!E6L}MS&@_qZ1Doec1fo;b8%WABy?`oh z0LT=d0qIl9_+F)6bA^S%0Typ3mkZ??Cgic-lLa1(MsYy`n{A@$)#g_Fq%7z_Rw!mk5E%LAw}iqkH`)>S%hg96b$59yt5qH(o8` zh8Y2S@xfKi)AaiX3NMk@+J@Afe)fxJ=$SYgaFYuqj389E^^Pe|OUdFTY!vZX14GxX zyI)Hn`h~~1m|qR20X=OeW~1@<`Q5nn?Ml$Qf8=;dxf~#+Z?<@My;=o$stcIGH!t(x z8-1Fft($j?c6q?Na6X!GKjaS-H2sf48FN*v%n`T+RjVAlT=6w4)fa`8~!z0cn+l@ zMLXiUI-~8N;bPNj#8a?M>+_nWCmjnzf3;Eu>{#oJIH%f_UtQnWJPq$30N3#Db47B| zJw8@`7+s{DlT>nEl35=XkgwEt>2cwd&BVPJ*mdj7&h9RXvH$bUoG{I9kgX(cHhU}| zK&@=RJ-is^F+u5CYn@&W`0@-O#yeT*W7~Fgjp@^cC)zTUfycJh&rCj%g>Q@Y3W93| z#XPB@D#%?K;-E|ee4k=mTFa25x1XM3C$&QC7^oi{;=9KlY*X_9Gz@0&QWi0t16mUn zpZK>U_CCLJQ9xp|wekM`ZQLG1$H_nc+u-T+f%>9BjV9#nj5^{LCS_T3^2TH@L+zn&wP8j=2FYV#&q=Vm*1rorxGdm8 zRJ!Iq&3{Kj_Pa|#e0;5yqpd?LSj1Ns28lt<9Alv)EwykJ`d)G>M z`pmTrR*oBOOI>JRw#TOH4V1xdz87m;tv`MaRaCS{(d}S6I;j=3*M$jV+KuG;g-u2V zXKO&n&GvK{e{-nRl5G8W_k`5$_n&;vQg`k67mnRO@C9l@W(~==1}ARba>iN5gynW< zawHX!Td`w>_=70Lh7m3mZoMff4UaH)>?gNgGr1&r=Q!kWx5i4Jta+NI(h|8y zIsF}CRLMuPiWEiQL)e?k*;Y1 z5&RhxiwxQlseHvTOkDv4<2AqUTuquuqqg$Ue5m=u8)g&=a?_5Wo#iUxx_n)Mq^xjc z;zKN;Z!~t!(Z8WV&5qVOw^5aOXi`)s{F0@iQ&3*2Nth`;=n#72f0c!Xp_!znX(xxs z;D@;)Po8+!W?V_1P~GoI$9Hgn-Npj6996Dskdv+WOXTb2(O>0E^E6hqh_)PWb6jkN z)6A+0lXpG77m==LrGsX%W5P3 z6#U|Vgc`lcGZ#a(7{v&X)S4!r2|Rk`pO0uR8BJ2;RSX!4M0PpIc59NCi*&6lKJ?tV zHIEMPHBT>>Go0fBYR0q1C3nzZOwAj50NXs`Lv^#p-0@cB{{E}1DPA5})<7VZfTXFw zQvvnQqpozdDOQnEhi6~qOvbU&=O)i0g72a}#4fk4wNUS1IY=bQaxC!|vtjF)etEu8 zV>9g%cFU^meUqt~JE@kvDi(lnG&u$#9=M43;2x!p*Hkf-msDMH7v_Sxpn@r7HG2 zL#%yBR|g2sz6JXWxEq!!jH9Qx=Er34#i#Sn=3!jsxY0Rrp*j;lW^3!Gy`aEw=iwhB z?vm}!z#$eZvh^wS(N`Os#X?cS!Gc(mzo)-sv#=c@_sajM$mRJY?O<_wsiozUfySHd z+#rE(jcNX3v`FAu!iiAjta zm1=EJLFAp^A(<*~@!L%4$I;eKKg_0=p0*pO0(DM_y?5>uUbDkIxkU$_I%d>U{^Gn{ z_aFOr!hQ^Bsb75h`nzdx%I5w7IuMP0wT)hvo(zxSy*!DF(z_a#wBHp$|B1ITa7B0{ z_o_2r>buTG1fBETsAi&P2o9v%X;K$}O+9@dy@|ebMl?g#X(u3t(2qCW(rBYA1;{mz zt%C0#@9`Y=`j*TWp5txF0>BOE4m?EqK#Wj0cZTcWVV%wvIunKofklZawO+i;6l{KK z`?~qWiPP-#y0yw`o>K2Q7;@W!NXP)`z4cs~bcv3~nEi^aeNye7FqYltJINh4JF?JcK=FlrPwiNBG=B{&{A= z+Pp2aj46*|h;+sC673zR9nX5-&By?T65aiMy%s#JKbIYQ2*jyr(v!Y!(~fs1PXvt0 zp{P&*7L2s_?Djs#=d=I;fZ9#fT=YXb^Erc#C-1KPN{r}%MdiiKu9_Pk9>EnTUIu#E z^>!*ym;JK99+S{h{M%Kff=Z*pSqkK#%%?AX+lPc_;C)*(m^=F{tvft)w@f(XK}qKeIX6Bk&0LdCaw^5(iHK!y!}7?Cu7Th1pi4JG(v;DL+LQGD z#s~XLLTePzT~)%RpbJgk*$tQTK@Q*!VjVk_0QrDiwD!Mu@@I1A8rCe@vd^b)t}!X$ zj?F{`_eqT5j+Dy(zGPW=Y5ZgV+P5={_B9k^D_vsUc{exGNNWA8$E<40kUC#-)Mb=t zgUYpk(0gLk8RTL*xX7b!99_4}b^bPJmjHDDxpBX0j<%kF6E6g9OQQ_*-IjB1c1><@ zuEfzhu;Mw&E$2Vy{^(8kWFGg0k`&teW^LSJO>|jz0sL>vCLPOpO6wQSs7u=E0(Tbd zK>1iqO} zdHC>5<7O0E;#p1?VvIH3gG7Uag9RKjs9A69^ZVra$L*+n$i+DT03M0n%)(LPh&2D% z!9c5QF?nC6Ws0io^H z^Xl{5qYo5T-+fSLSaT*-iNt3jv>hv&g#?8--EX=0M?Jh>)n#}5*kDYgW&kiQ0c!JK z7OPpB8u(PimdM7c(_q2YD#;wBJq_#W$uIo2Qm~@txKcoEwN$cjFWlY~2MTw&Xuvm8 zv=T^(hUeGp#slbP{$URb2uv%++QwEEG{~+kn#q0Z)?I$!Ih-z|%ou}M9=!kaa)*gY z$7=#0z%zEjdNqNNYRBge$?c;bPX$~*YyP^teuJrdo7+dnLx*^Y?_Uk*AzJzvqMI%@ zhI>~dz7N@=G9=vMY6>F8;mQmn7VeGfxQ<6-7$3o7#`#(u5t=Cq*V?4$c{wBmI!j-B zG-Y<=AN+QVisMm}H?+vyjA@F|L$E5{DROUp&l}EjWesNQKFF>-{yi~U-IeG5aIp$` z?q|IPQcLz}d||F6MOXTvX`1~#Y1&*hy&xXP;=fzpox#~yM16Ca{A#%ds3OTB%Yhe) zxRxT8Gw&(S^El%92?QSheGe?+@&K|XXCS6Q(fiuhAB3;WGtSRGD~%b=5^*kXstK;B zurJPq`p}V9d3h}7w_R2KTtLbnoZq1Q?d+WL_Z&sa(d!EH`)P8J&f$o)V>{NbWl_RD zC6n2O-P+m<^3g_91I&VX**uUeq}0X}g^0jMwn@d~pOG+^e|l$0id^sE20Nj`+E!fb zbLmVJ3_)s;8aQKeV5G31Y`$>@ZCX@<{9T8X-tFc_7@!a0EgxOI$%o$%p~GjHiO8nR zWYDM57uF4pe-j03(2$!mv~K3S8Fxg+b@L4>Z(_DUMP?E~iM}#XWDq|?LeOwX^cK!D zW%Fx-W^;rFdI9n|N9V}o{=vd<&Bya=;!N5dM!2=wyU&7!&O@T;(-V6^7%c8zeRZkd zwh-hc$_NeVE0bCn)(;X6AR?PLbAtt7r%!m^KM?0wx1E#YnSV{LfZmA@f_&-@{QuS3 zY8A9Z8U!LQ>h@j@zC0&)B5{NEt~woCYpD#=R-VlizmoT+47}pMT=xUc6hg4dO#SOV zY>6{Xvx5{=+q{7-t#Ceb(+1fLo6+CMCr)ptZ1^9_OWzBjGYD|oJ&JCgGOTLNHNE|* zmJ751x4OYxgRQY5DL^X|sQ**(G7kU?p#mpq5L|aQpFewli5>E{J40>5r92UgvnTVv z-~mf~rC%+7c+&;R#1yfuwri(B5VrfegFXXDYbd@uRz5WmiVy(<@uZP9@q+ut%vYya zNq&0C4RZzvoC2Iu*Vr_|T#iyKx?b)1+~DWa_D6S?SIiB~Y>@c>y-}z%<~5G)8}BN}cY z$7~}wi)r|Bd4#LPl@ji@ow{*`>3zI0zEhVMDO70Koq0X^H%f(h2aWa;p?I`qHn#)< z`wN3TOkze?#6s#AL2=M0@ti~(n8OQDaK=hHenL9_Va*lN+w1oI|0IOTq`&CPe6jTMh5D^5KXwEKblmF0|- zeuD!8S6y5YTFSpru)!W)`iCbO)3GJ_y5Om&D$s+z#%S{&gjA&E%4_2WV!CvO}3hE0{sK>d{3|2T| zf3pq|k4BhGhL3!y1@7i520oOo7jg$D0;P%B_k~7}>X27{6y1t7SyeTi_qTk>#v$uO zkUU|Fu;Ko+mjsN%_NqtX?C*AIK_!J8Td8>%bI^u;o@YcfjYj8PhhHqNBKqBfPG?r) z4oe+fVAq`YQA6&dMopulKPSaoXMT}~lZ!jJ=$h5Y7I3n3ZCEfr5n4*327{52c*h`L zezn)rq8R>}iqSN-r0}xL+Y1F|iHAd&5k2*nFT=tWps#K<&3tJ1mf1htlM3Z>jYoZt zO{Y^MR!1BwicPQ-T*(BX2>JT}T+R&mS{W}}2U){%`I@}%&wDyPMj#X-pjLE_ z0Ft<&JDyo(N7XAu53k5mN!iQ4fDBD-@U;;L1PLzrvU89+f$F{;v@3ypi_1kh-vsph zHJ4@%bj)WaKPtPm2!670u37Xyj*?j01MCu#>SrnHEHytdVXJ&BG|&JA<3ZhBJ)d5f z{bTk+F4r8g5b;poALgr;9);1<^`K`#hVnrkP|t~Gf8IzY@H?-GuX4x+Ndq6Qu9k-( zCNXiv`|X5NNi355bAcyKo!W18KyDIkVQ%TT?F|X#m2D*lwRD;WMATlA>r2;jX#Gdf z19;i~21$dF2Ae(Z`iSPIUH*&(LL#wE-5(Ha_Y_Al>|T$jjpw70up91brF);^=^C%4 z9rb0PM-k``H!J<<7iin{M^~qiOH7KvPYKAg5G3@X5`BE?8tY57rUs}$W}L2B+g zFBPaeFE3t*5`&-B`qxU$_v#3qU6x8cQS$dcXwHAgs~cF631G49wqxNBzEEW922__?jJaR+QtOH!FwrZFAY3<)d{J!4bu^XDQ=c?LP7 z*D%NuKQs!k*I6<1;thQavJGf+){+ZsBer(6>T?rT17MxNVRx2DOc55`-JhuYh^Ox_ zrocREXVTuM;zJAl$!vGv+_brbX$GKuvmhrz8C}i~%EV zt#-zM&elabL5dqDEj0JBtAF`3eH%{=oklAP3?q7CzJX>Hs~EF!$=9BVWq^UpHe6)m z5RW&89u$W}RBu3=4<(+Tx6`~*QK8&l4E#tzkyX^)d2?lSWilK;5kp;SlMu+sW!M?* zv~=+K+fV(gU7wN9{ushx_+&9AZ(`|9f!!Tp&sYl=lLtF5p(msed1+DFM5O~o4->y` z+04Ns=RaThI6mBTgL)D~sTUPH^FaCkQp`Q%zYGMIHQf;86~cW=kdQ(2EO;)cuiU&r zYJU+1o4&WZ=d(}l)Q>IM#m8aTH9n;{eh5rUiMKb$#fQu{$9=Ay(S6br3oCIbGz5BM zZxVY(vC7xc2S-~&xk&$8`HJd4jozTY#kjoJRUm6F{>HR$_=su=-j5sb7afWN!>64)N-4hl?#98v3 zygigdkkO<(yD=J1jUqJ?(0%4=qg?!(sJ|H;9*lnsbYwvni=YtOiZGhSd!nwAyrR!k z>xt?rL=agERZ%i|upwiBSFl5i9;BU^8kpv9L=gpDA0l-7y(iil+!6NBa|6shVhY{# zOC1V2QYk_E-jF14{!m)DD9m5xji3{5;zymXmY^5S2-s}chjSJxHSF4nS zB4ImAr8mJ?xn}8XSd@zqW&j}o{0T)mG`omGOU}+GaByXq-o}WEcTJwBl2&wOz9kVW z1&OGep_vAP`m4E?v&C7MW8h@l!7r(Ur(&s8o+DyM4D`>{V{;^j+S5gv+f6>n`LI>H zjejn#DMv(mN&xy-B_{JIna!?C!T&bCO&-WRvVsT9yEeH@c-qrrREBZkX@C}IB8~a1 z1`GfAi8wwym%)5Rmee}3rSJC2F#}qok*xN3lf>a-JpIj7C2`b=ZMd35>kn-X%r0j+ zFNY4Sv&VBp(6o%v^#+zg9)ec##lgJL^7l2`O8gXlmk1D*0UX5`;U>7T%=o8B{j14& zjL*(r@9b0PBzx3Ta1e*mN zQ`^7jxy>)X&oD(3gl3)*t{}xMg-pEXeff4P$Me%TEHF-V2Sl+g1rDdQl3P`L$38b> zwd>LVNQ)_nQj4oO;b0)I zt0MLLvR>a`AuCP zKb#Y^tfUBks|082)Cd>0QkXcr>CFoi>h94)gVw~jt+mdzH&R`Jx<;cgJ7OPkgs;0{ zm0nH&*2(JT!a49T#!+#@rbwVNAfqc*Du|+mRoL@v!V7)7qVw{j+984YI|pfl=Vz0R zA!1uemM$in3384`JUi3YU9T`lYm$Ni%)P!{Pc9W`cF#Fv!=hM$kOb)831=Fl-z@iD zzo0+?swz?o&=knMvdQEe}f9ucBi? zd|9o$WC74fH_~8e26X>JrT-3t!COHofO1@45jihu&xpAWl<*u%ooWq*?0J+)sm(l> z$g#x3lwFCJ7M^oA619<(j8>y19io2<~2J`F6*conv?>u+o`!aIFSxP_=EB0kRs zh#jeME1#Bfcw$=b%yR%sbM_z|e4F{GZRG)`CbNn4 z^>UC5yx~`zntOiCNQNnqFGGP2TCG6RpS9ydc5NA)h>M=xHs2i&qZnl-*>_ZYZ|KJ! zl8TRM^@GH2giRDvvZwSOQ+pX61}MN%;eA0mtv^mR&l%+0junl`JD7W^qs$-y7)jm8 z8;!@A(=s??Dfio~9M8spnvG?4rHiK}c`S1LwmH?mPoFst8jz2XUG*_!okcZuejR(3 zA+Km@0`jGYHLRwbs(*NsPMSP>tgo)3VKu?ufYz{1@(R@B0cE>&hT@sHz?{k1(@O2>~}yE0Tnq_x zpbs7LLiQrxaVPxS2D89`aN`1{sB{1f>zni%S<&zhs~D;8$O+LQYyH>UvstFf%*eN# zS_!%aY@P@ytvEwaoPaqXZFt*Rzu>g+3ubLQk*i6z_pANK0ZhOM;m$A6lTOw|T4`~W z+{EXsVOsa+=N@x=d<3s;%V6nyFYL#ffci63`tIK@zui48;vrTZ46xy;=e>=k?gPi) zn}2?t0p^At=3D@iEbd%eF1N)g6dMA;)b$%@+BL?H4d&GW)B*@Ry`ESa2o3GB@uoIH{n5u$aZrczV zN}j61OiRoXr!d{)jh>O=NZZ3@lehO-Fdfb zNJ@Y65DRAbD&N!D%rkIq)ml-P-kYf^YBXHfN4hkWFvL6J0n&qd-UpX+1^te620&R* zVWrHsG#m<$J3YAMQn5LfBUXtT#@Qyj0^AuRJ z2-qfh69R%unr$LxA2E+w{2fF$JyaWcb};!Rv9`E_;iNWcCXC;gM>cUCOr-VQ=#8YL zs2@f0kis9sp_um$Wz1H$GuAZ^Nd2& zuqJ7@X?`EVY10^4k-rqo#D9t>fAtGPi%$hQC-A?Q;3S5bX+wZ4Tc=4fIfV!qDD#bO z$zkF{W!!5f*@?96lnd{!EsKJoGZl}{$vtWCpTy~ypF~D%=p0ZEZZ;(Wdu90nx<4zyjT7}Q}H$(E^g?u{~@+HrNbB3 zo=$^<&hrnhhkc#i!$FX3)KN@=1^I(BMZFWB+>>XD0)-i`>k<@r0eM-kINF-6?d-D7)qPuu&ug{M$LU+g6na{obld`w zgM&@cq9RuN1jnl{X_!S=TrhmrV|;Cr&lNfU%yY}*vQkU4+Hxf*IMwl&5!KAr0nJwm z>bqh~muDjvn*xRF!QNJ4e$fbWhs!=AS9{p*cAqUez+M0P;>axR&(1#7-__yz?`r;0 zVSjjk<2bB0wpRV4f7>``+^o;v9VIA&Ua750Oa~(7rycS3I$oAYx@yFeAB{UrQ%Z(tNzM4)JV26a#K(D;*07_X%aaSmPAjygmi`uY12ouwqxEshUX6VAEZ{npFn&AH5V`DH~P?r z5bqa@v!3#N|M@kH|2Z~Lyy9$hLIz)$M;vY6EN*o>9nY~k9nM~)8B51TT#dv_cZ%@^ zovgJ?c@lE;K_Ki)v((ON(PM>aB;yV&N>iI}Xm*(MI?K!q&Z(kIq@~*s=yp2ngT&10 zE`;-TM!QI#tV+L-xJ0;JTj1&dS)HdGmDJ{Ty=Jxb%Cc(o>^^&L6I=Y$GNQX$9G>|Q z?PDHg){Y=|+P*35O`tfjiH=XZS-feS-gx&Zu~q~nfU><_S?%t{TJ#kMU(7KN?F#gy zde>D2Mjo4ciy5_f$~GBz?O(U|9(|~iH{(`xZUb-a{VF86?EK=oyeG8fCI$ECRY+kC zL_hxAfD8(;4e+38WF)-2ORA)KKP5hBo9OF;L8;2&^x};8T72;#>COD^wY6XCS7cQS za-W>f>}ZRu(NycQnlUhS{>!@Qk$c;97~=Zw=>m9qY2SbgUr4TWtb~pF&C=g(!u7Qa zC53y*jE#rv(tE-#X^7W35=OL1-Zjz4)EJP_N02tcWRDc@&9r4 z=5bA3``UQVrdu9hm z+*PnvG}9ll(fy5ifTOXcyQmj z!ZUu7J$vma4O=KOI1SgWm+bLx-+Sre0_;7E`eGCH$10A_iLJFGsr5@nD^~Dut%LUA zTGuqtE@bdvTn+Gj%+5i(wtn|F0o0~tZ55mYCuUB!z&S4B2EuAF7vxxN7FOiD~GS>qxe{-2K6*H12^Cm+Z46@Bor(URs` z-mDgrxp^?{ErpP|7dBHr8g2R_YA~+;MVkZQ$S3pK+PFI`eApQ3B4A8kDZZ(1kp_gB zuT49CW#yw|=HyxK=s`&9(ZaFQLCa-pheB`cWTg@yYf8bP{yy72Ip4TSV=aUuiCZ#H zq{A(vDd!c3lqRCpuKr}s!0P>7cS9^J2;RA@6&Jx*46Etl#c(!t)U7JY$S={&&r8Ag zmWSR}{ste3Perfe#cn-SggRUJxQB&X^}r>2*Dl~zL&d0kFl@IEMSsW9BoPb@TE{t_ zW9tAP9&E9RosP}%T_CGRZ6Ps6_y4e#z;|V$BG+M0rEf_% z)(3d!&!6W)yTHheuFKVMxB7*Vv`ux`i#NO<;1?$J=m|_pfxruYyQh){1QSCG_;|oz zT(oKS-dBpr%^T_P$W|s5=KD{>$p|L|$(4Sz@OmxB&|k1U5K2b2ndbdc&iebMpMK77 zW#Nu@>eyxCdrVAjC0!`QoZ=5BoLA%~6vE2vsEy3^zf`zZEtfd){QV4tc6>QLF4Z){ z_8v&2JPduA?{2ze;~D z{DDqWo2?#rX=iDIv0HlF@VrTL%dE&Ib1IAkvqkyZTwk#TYJgdWy0eTB3do7p?pyP_ z5n5MFue9I;HLn5uyug-RkdR7W1C|sV_5e(;szIfjQieX*w2zvFZE4ld=YC~$0D;^% zLBkv^X#Mx5rPlTBX(eH6`1KiyH+Ds_cJ}+=+SCshKTZYaIChIAaZz*`yP*o+v9{kX z`n)JE2-whztNFVzm z#)x|jLCCd4K-*8y4$?~^T2EkSUnq8pilI-~%Men2frkqlejsQUUe4Ms*r<&L<~Y+| zDKqIhcCH;;cAT%$e9yX8E7s7ilp8^op!yl%#kFD}@Ng?M$NUATi*sC)j{ZsEh{lj> z*n6OoIqd^W0{YP0foyJcDD&{K!m%LLIr$wSYws3|uA4sVtuT+^C&LtZn*m$SB_==o z2a8bW)k-4PYRQn1A9jfbvWoqba! zj^S%QqIDncDnozTgil^2lk~&v=6(~^^wwjUUQBc->o=%;5lm7?eDCIHsH4UC#FVKw z$fpF2B1_s87eo|3=JhW+j%$dxIw(I6$eZ!%&oo;VJ#n96W^xh~-*CefLt7C=7Q)lq zvgooe=4o=$5MkhO;RpNiR_XWt0Y9tTQM8BXSk622@_i4n(ZS(ve4r34)b^JHIZNSP zskU}$-sc{2E*5Y%pz+zCquGZJ9T#dH?u2GT@&Gb7hn4nlBhjnf8n9*hEhj{Dj4H_t zBET)-2CYGCc5z}&8>GCg9KaYLcn5g(s9XU*Zn@dxn$q)&_zqi98+U|k3HW+P;wPVm z^eeW&g2whhWp`~e`wFm`y#-}{L7pI^K_B8Fst#I18V|H08QO~Qfy?SaWfeqNK=E;k zbxz#HnfzZJ8@C0RBXsHaSbL9Dh|p`*cg`dA#t0 z#jvt;pUOY6m}xQBG+dQ8`=oRo zWN&KPWupxagf0}+Qr%9wJ`nR;cCFrgC1i2H9*nhqA8*|T^cX)lPFmdMv@o?o#F zb=9F;*{>uK5Th09HSuz%Oa=>(rDLz~EyKNZjour*9O5BToYxFa4UeaG)IQLw2=%QcR&Gl^vo|>8Inwt}-ijp>q13Yc@9=$xHZ1I2gi^x^@6&+QxGAgxzjeCoo91fBE;$AOeZzQ_fRD8%0}D4In@QB zY>4uA&*-qF$ufZ{Pmv>T;7pV?^ zXJAK}H+uvka>Rc5fv`1KHyyh!PubYMSGEfeDM##yHvrs1YRS4-m&6@}r?{5pYtlFA zril!6sCE=R9?_Uv4d!YWQ5Drkv?FnUIa^@0M7DyLwwFWP&ZvRV8C4&#tI+0Yqg~=wA6}lg76B*13%OG%o8haKiO7kdBrh5=4OHy z0{)?0E;;RQbI7u0@);tVtp&Te!LirBQ>#0Ql@7I(ktUh^yOx(_#TIHHvp?G;_9ap#u%HUaW&$@ zLh|tnVR~EAqfhhmvAR30y7|7ebxMiN07?uCx;uUop`fZ?$hZIxnWZzIG7 zTy0;UvK^La2ha9gT$=J|AarzzBvm~EKVyr3#;@rCtk6#r)x$bIpUr?kZ?j3YdkG6j?`NxmGPdnN`>!v z!}+H;6YP^g$xO!9N?YnbGPo|SM19jeq=%=cweBq|SBV)`%d1I7(>_zF>8Vk38vj9h zwXYe^e)H8v3vu9eRB%&wWeQ}16>#7M#mO2r`Bc^(6>_rL)Mc1435dcNCqbQTki~O|9B&t8G*M<+c&^FTf^f+1#+efWf<)JkZ=jtgN+|58INLa$Q z499gpqsuEs6(nd}xhoAGnJG+^`ES0`F2DA+s;9>7QQCUuHiAX{6tHq%w03+5Xa!YR z?Re`+xK_*Cnt~x;V>?FHd$pUJxCJ?iTqqfJtnjgBoB{MPP)J@roVokafYn9ywhO4F z4uIzOwBg?MH0tA1yH2`qg=PvtGC#QN6Ks#5qPZ2f{TTUBL@KzTEs&V163Tf2NEad= zAB>Y)4k|hjx1G6z@0YlGPR1|Og0z`+-2Ync!x}j$-25DgD})qRHLQ2{OZAVQd+)1R z97n=7$4nUP6w@J)byCS3M(UZD0KNe^Ld&*yFVL@cW_RV6iFJ3^4xnEDl&+8zu)p-- zH2B*0_ek^^EtLpTQT@K0c|)Jvf=l!%vl(?m39;77KEb(yGnn`7Ndtu#Ekt;QZLE!X zHz>)!-7D@2%CXqoc1F>ze=JR>34a!;7su1q@xn8VjQ+le=B{TS<8$ZV&A*-RrHwXW zgPupWw5A8h((7Pjz(qwlW?xX1Zkk-b?9u8~h&qr1cG| zeW0!EsI7?Y>h+Bi)(_$dhEcNU^_xR%PUd*C!$!QDlBG8ocZRa(hT?L##|XPzc0~r` z+O9kZaajE$Q1JA_q0vtH6<{FP9vyHKfW6KSh zePbgnm^4L3UxT{G{Q&UBzl<`sL!mIKzNzh^_{kA4X(kaWWTnjSUq?piq+dbCUlkLg zra3#{SBj9A-i~*Zt_hA1+;(WqI)#|6*Qc~!cq96jkl6SHsTzHEzq%jaE;aX)q69+I z`m->YKG(B|B<%hepMwm0H(rmk-yy;4htukJFbTghxEbe%xM;yCLc%mJnE(TzB{K%B zGDS)_X+6aWY~W~c2d&RYAwq5lnJNa0`YWz|PUxghX}hx6dIWhtL->SSGBL~jX6U@Z zx4VuIbIH^`^Z;W;?oA?p*tiJK*wvMQbPw7^9a-2`+7khK0Vj>IBuB+o>9IlfN&+f7 za4H9j?cWaSeTK84BA!2Ny%9JEUMpFBtaVp+Ru47W9W2BrecuaI)dZtyR`fTSEtZDk zQ)ILIJ?e1DVL*fU2z_=AY$!{0zpi=X4&>bstUYLFK@vea-nh|BR6r`8bWT2u7f%iZ zV*dMS^EOhqMg6Y~bi|xhVJD=y23ohQKY&ee+iu1l8I**8&>DHgR*n|D(T(T7X9q#? z;jK<%w#g+*p{6~SW0KQgVsvYP3HrL8;_eRg;}ButreljVEo~tmNX0p<6#dd?Uk9m? zVQ#vqcLa>ryhoXo6{Q>vPfUNI(5^~LqdGy>M1RkG@VKYS&d{fN%Dp39F-_}>Ca*Kdi4#=-t$28 z+wq|&!TB}MG209aD)*QH(Pc$v2$zH1dCpnP(+ZHISJ#vu`r!6-=Jb6(rsc|s5}(Z= zylGUlZ7MvP$h3Ue193uJ?LYWQ90Wt=@yh_ujaD5{9*E;UbV(DKzenqVueG|wF1a<> zyYGKS7wodFqfMZRy(PXz{-WdyA0aHei3`&nN2`_HDRo{^)`$tL6CzE}f(b?MRkE`6=m#cHfU#?O z`%tcc0>16g!emRU`Wi}^BeZ2 zr{`@9s9Ud{;b29NYuHJ?oN2wj#VA1Jcq~e1eQh~F{wpE{5kRF(t{$DCoO6kNS14hZ zWXc%-BemnJBx#xL5hnky;X(SAe&fAL15<9lqhN#z7Q1Z$J~^*sUeXKwgSE4*3brFp zWjV`yqQn$Z%TAUxuR~FhHW^5zcqD0(LhbS2L5L>ku{(3ddmGdziRL(Tnclmb)^jjf zLiSZ!9M{VDfhs&rVNJG|GRlNcWoZ>x6e zo4(%;E@%8iFB9sPCcjt#DcY8^HC=6G#hv)T zuDyQ6Gs>j#-y8=n_mzvbnKNDyjy*fFFCd8}uXxD5x81d1T)ybtmj18j%r_{-@mBxy z4H-fF_vm1g3_uH-62nb1KYA-BY*#rsoC&q$(K@*lw+*2I`(LTkexvKK(qrsBu<~cx zlMgr5n0eQx3w1s7_r+P!aik;);)ro3z$|XA3yJwSTnrCT#yv7=k4pyvbJ0csPM{jC z=74}J?0|{5F41zqhb>Ww`Q>e}L|n?Z3bVDI>h8pYK@SiNAMViSmV=;4+|xZI(1uJ+ zHm+ielT9WNQLuU+-M`soxwn|pRtFVU0#7SnCuE?$F}17y9cFwZ(VK~|`48{I;{hBn zKVIE?CQV!7?yw9rE~#$Y07y+TSUM;~u+pzwnlmo9(rd(>gIY_6SPLo06+Sq#;^`zU zay>1r%uz^8`hL!Eq$>)5a5HNCYsV$$?XlDhjbuIi;!W>O+|yS9%zXN7L(H}^k8zf1 zu~~Gd&zFgxE8^vzz7G26oBhJ~pM5tk9KiOQVy=$!f7)yNEaM>qSCDLLzwumNz3SBy zS`n|T@*|_-`R-rbeXpPJ{;kh3{<1D=JIUmqGS*8s_uIyFf7rnGIbf^y-NftQsGW#d4(LoZ-!|Joq zb#8Y4K|SMr=uG?Hc9LsxZab`I`gkAhnnC&qF!t8B<9(!XK_X#|YQHMBRJ$FuCwqq5 z{{GSWaVeFTh|=y5)G58M%Ho;91e1yzB!`(jSf`ZucLP{ZO8|V8QR9A9BPR3iX)A*z z;`_wV>E$)+eO~#zn3MX{S1VJ<5GXV$C>()>GXS+kpU5DGHWi-*urAeo#~2?iTTlq*Cn4)*!sfcN2kb4Xc+!#ntFmhGGg9+ zdP5ULK=Ul9fEn8hHl1xOb*BsY88^}EN^grbZ32oD5qCLq!H=(l4sVVEwR>O503f>t z#r>^EI;qiR>q*NIUl14f`qrgiP4a(lT==Gbvt{Jsw~BA{bvALN2VWfve(?Z-W?3sX ztS~c*YJ0KR*1_&BO6d2cY!T)$j7!qn9n_GSEF$6k4>~M)yW(vdxM18mmT_LOx_*UI z_}wQO)-DgkE4xK^=7kWmdy1s;P_Eppnq7ovCWp;Q9H>|H_gh<3A4H2=Arrw&r(=cJ zD;JFg-(_E1EgqA863q;1IT`P>;f&p0AXz{o?ru-54dPU1TS#b^JR0OeYBx^N1E^J> z0H}atEYm)KY@fS1cgZ|g(s&(T(YdBzAUDOa? z%)3v1M*~V%j{@nJO*b#e82OA71uYnU`Jo9nhtRGXJ5=rN^A&sI2#V&64|D&s+Qo%N zjU925&fKBx-a*-ijeZ`5)jaG}vNEhU*Ow!9aFtJG8N?m5v*oGNN73s(x!shSpE87j z#a=saPy22Yt~8bc#^wVl8MQt!X_R6VFS(bWw8?mE)vp=Io8M78Cfq)kn%`E|Ngan& z`+qgjC7f;W+uz8K6r&9ojOX8OSDf@heCFXU3 zdt5e6-_WNjBiO5!83j+|7*LHriCD{A9CW`k&j~*NTvv-p<#! z-D{gOe!oE@b!=6M@A0Tqx!VP(skEDnnYLbACG#!rAMfGDgUr~3x!6Lgl@Tdm-3F7o z6QX8Qfe1wel@1Tq=XNhj|44>IN*9E3+oHbb3;pW<dsuocPhqWQD^$`2h$#E^;ubb zG@`rIXn4AYzf)TiY}tJf1NbPhk;2+{B9`r!NiAxKX z(aRsaYCLOOvW%?`niar~1aM2ESNRlxYRHV#zkUB~4Ie7=Szm#Gv^=K{o;5sAJCv;$ zAR4;E7>RKv(cF|GJG9FML2WnOb!5Z)ffBr&qD0BZCdQ{<=#uWE9|2k})S6wFV zJN_91F$Q-3on&MTz|eeqtr68VimSKKJpgFPMjo#=1E|+Cx2g=IzyrNBI|?QoZ&jyk zHyc~EkDa`)3k>TUFT^r@E)f(cvuX3k`RMg)walSkEm|60zpP!Re>?b@w#Dg8R~>MQNQMBE^TLpbvBmkjJQ*mcLVddl>9C$)BXq5)48IdQo*^) zuQH_*4$g?NevjMI3sA(QFYcuNX4T0u+ByWG--s6@6Fm!h+v9mM(M?}Uf8}{;N$cF( zeYS6WGy9EU8}9iX5sGItvQuVC?T^lJ)md) ztr0Wsu60pLo&YI!+C+~umbr>ZP*XrLgvipBOsIK8=UY>zFgx&Rm+ByDful#Dl>%vJ zIlv9c0QTa&%3%XKksq;Pqm;854$~86I6L8qeR%uECvw%BL)kf`Kmtses=PX)_wF?H=c9q43lUqB8bjwPfS~vE@rSXQhvobF*$`=Xlgguj$df1L+u~sz^!x zhw>G}Vrp&GgVUT@C*Cj3Gh0Z=Xc)_D$5~i)IH7$;2>!hVCFCjZDD)Zq+O2Q`+$xdh z#)Vxykc5)Wdk9IU@_lCGwT|2QeU_+u*1nB|llvL@x5?K=IQRmu4+Um~s7$NQWu;L} zHGtnIYy59wJIG}>|2yp%wb`w$KH$~X+o&i#vy*G;dHY598 z$SPUzK4T!~b2O4PivH-)A?gaC>;x6o9_ve#M>r5}@Hn-e$Op z3KEAzS|DJw1qxmFnye;sfYkXG833T3>kiYeui;ZaL92Dz!~44S6v7r>06s2|4T<|{ zPuO<#r*_<41c;YN{)gW@d<24oD|4-a+zKP}7A$$;JAG46wH7M(B!qi9 zqytcEc)kTr6@pDuMW3T5R4Ht&6=Ls8T%YXyVjTTajVgEu9O0^|A+WQ9Rf*$31VM5~ z0UqQw8wqeAKvmrA^Rf@*_?LXE{MY_8H(DNNC+}FPjmwr`Y z^I|7>L-3k&AUW&h0M$xT&bFz0e(#Mylb@ZPFxjDFvl|qz{f5Ny`k*|y0Qz+uzS*k|U*}~R z&baPB@PpinnN+5;TD(zx*@$261NT5=d?y7sAUB{la3U=mm%_^iD^T2=@wSt-hCRWa z6EFRuU0XV}*5IN8c*6-dFSGtYIPt)++~*5`{kUPW6q$b1G$N8%FUIqZ5H;{qpuf-e z)2?*ZnL*ajlrkUm^&2Be8E&R8IWJubB?ApS)JPZu*C07cn0i!2l z@6h35k`Xxc3 zeyh`m=+`9N5-A%?Nf(jK$d<5-~=^<2V)YZ@!S)3VgvdBqAR z29ZV;qRAg6fq|`&e&-Dq;s?eud(UR;?7&6EycEHq$-wJF;lBSQm?NWb+N>;qDm?O^ zYcEHvr?K{V0K$hh++yLTkEztu-;44i5a{J;ubQRI^hzPkGh%Bf z9Oj?60}rMOt;pq(m!byqjK%Bf>^(q8(=|A5GUsns2%ZGQp}r}6yiq;`ko$9uf`ZuW zm?^;vZ`^#&EaOV5|I14^8pU$WOx@v1aZ%CG3eoS4)jk=)U1C)>2DUzr2WB-wP~s-c zxNxD-A*RY!Wjk75Kr##!2(~qm3Fd{Ty1BI;;_mG1u0!}4C*m*)k2xQypIyS#Bj2V# z@^X=IXlwfMseC{C&Mc3uziBgo;esSq8hF;%BT=?{ABFyUPcwfApXxstR{)L)Tzs4u zTiithNN70FH+d%-v2$FaCEU7#Q>(U8^&hlZF zNg(7+06XEwSsogy&pATS<{I;dL|a+l{^@~nVZN&$#r(H43_yU)mbApgmp5D}8avF& zNW6qwtVf3p{t|%)Wqnus5Pd@N%;|I|B#uOx75Mm^D0ojX=o z`p%KRdAsQKyVwTHk|6A5T6~_6xy6uh{vW8iinWmXau9%cuLoGyTw*VHcwy2M{BFt+ zm3xF;+0(^YEf31?uZ=_0FRzYOHy3%wac5Rq_XS_{2glLPAJ3e1r_1>tQxQi@fSynk zp>@dHx~d$%WAKT?m5G6bOq^Mk2C$VZbyZJ0jpGSStItz)Tq_c1uCuUj@%4KvNy~nI zSM>l(E}{VB4-vfA-1f7G2FbhYpaFRyD>of$msTz4^T|)0zu4v2L~k+KsFb* z0pbXhU>wdoZGe7b(S~x%&5~jh^c#Yl%9K_Gr74yegu#(__mb?zdoXIZ|irZ zORp6^R{5a~XBGm`d-sD!!L|0X9Ep*}`K5h4Mj-I?j@NdTG{+x0!Ee~#g?qW39opm*G!7sn?5PKqBf|K`LVqzo z9n(p%BDo&E@bi|#JS?`?i%`;@^rEu==;9-gn9OkigCf_AtH_aKGa;{gk|LX(r((p`#>CHLjV#x@#8Rlg+T0da#-VKpQu`HGq3?1_N*y`1!MvAM{$QJ zOW;Bh4`9IQ4ohvw}d^5k*0NF+PMg2yA;bJeeJwn1l zTvpT|h9QFD@b$%Eln{&{QFpMm9CHc9n;)j9jeVlGs2&emg$NFp3OWneQB-ea!wcN! z$H*Ap@9|H0y&^KeyrjgKWK|7{HW$u1)_aPOCsg$>03=I;g4Q3xHBwmrwC4Y0O?_G> z|GO+W;sNW@m^14FGkv0<wDRpYrHqy~;2w3!B?-JQ01GaB>iFdD07@hPl^QBEi^%266OV^-i|F9vcuRvsb zzHkiDzJ=)mlyFDAldSz_8$exDa0dvVDKewMtsSYl5yc;hO|6t`%QAoF0n%0Jc18cc zof@?78DZl8xh$bc5O!NXypgOX@adjRlG zB6IdCXYQoB5^Vo5oY>Un} zUrgg``+Jq!0lm!PNQ;q?g{7oEV=@67DBM)DTnoX&OI_80up~HcI?T-{ov!QBHoiX# zB+a4f{IgXWL7ujm9RzY6oc)^&&f4FgPJ4alNTqgl23^aK`9h`Iisfe6OU=M_Co(oowEgfEIsk~KYhwkd5*X!F))Ap_e3cBLs=Tc_16~lR_C}~4&d$k zXIl<)PZ~D6)1@&mmZIqK@YP=HWSUOy{=NC?=cBLeN zAXlQrWA5?n0?Hjih>#@b3*m&NrT6rz`O&zfRv^-_9Ve`#DTWN8nE1eSd1Sox`nAa7tLmm(oWlTjr*1*<+ z+}w!r-TQzl^{vk6>YIvuzhE=!qBLh`e^-4kH`liR_W?9##xMM;>&M%O=F_yf^+05_ zrp`%N4A}M+?AxSoI@U)Z5x+`XE^&opGm{ky4o09bT^UCtfRN<_iHxPQz`<57M@|IP zCNU$H#%iEpz*~Ntev`n|zW$lsGSmq;Md9Ps0M)on7C}oO+1T25)r3@clZ$}~c@|0# zJ`@rYjTaCLW9`~O2YyKO=%WrqtTpS9l)~J`QcS$ch`%vH-#&~QSsy=K2YDXdsPV5o zSO2%q{`d#Wn$bXu5>CmIZ`R*$tKiG09lf;+6UZBxH^(uPlT+Vbmfn|2F5kd^_8EO$ zsnMeNR#-bT!%*U{Ck|llM~_w$KV@Mt2sGFAtx(pB!of$Fz&p9kU+zbZI=ey>woh05 z*PplYs_5RoHSItP@7=^HS(@@rNyaM;Up?Ji{b+^l=@~J6_SyHIE{5oRP-&4oqzu$< z{>4^?AXWGPl!rbaWl4>z`$UtEoaNv3|2OU#Zta>sFC59>i_bLswhX;%KP5}ufk>=( zYY0dS$hg#dW&>TCQRLAw4qQ8_2LD0(ti`u}fs4tdl&Nz!(y2b-#KcJf|1^K6hqfEa zYWcMuXTx7AyYTy!CzWS1daW`0(k4Fp?Df_VJ@Y`CZwt4^?ejg7q=2(si#1cP+kaKn zMAj)&i{=}a|MuBr%wBVJ)9xGfdE+~U)%*Q3v6m+)5zDv5%QGuyUtTFgVqo=jrCpNX z>JTb3L{e~WueSd`!yuD!y{sv&4J?Q10NjrqPiI{-nA0yehHR*l7HlPb5S07NzqQeR zP^Xr*K|cHJ{r5xiuUrYla6M%Y%i)FTzpf;{--$r6X0x!@4G$^BgCUNa&pTX|l7KYAf9~Q|^tFQz7a;b(f2TVo?$|o9? z$fscL0Nz?r?NS;Yf*ob^5opYYt!sm z)2^w}^(-c?^pCUft9m&1FuBpARiQ^@cAWXX{PB>E9+UMH<-o)*S;j8!IPiA~mwKNl zTRi7Gvb5ptGvIC1`w2M;yM8~bDKPAoZ8rQvz|7gXnH`JkP2)N;(%;$RNqs^0$;A>O zv{ka0w&-U-H>!?(c4!2IKtsu%YyANUi7;!L0Qi7K= zf!B1&^h$(1pGQhu^1-sJaSJVTvD%ZMaoD&b?0^p!H5zNM-NJW7GJ)^PwIbudA*dyo zlN{p&Mhb_abymKUV*2HVhU?tX`}WVNVV03(l45?RT=!{KGi1H9Rq6&|SuRS=Hzs3c zstkE-stglhrc#go$J|=|;}icMKU~>?GuyD1T{L6!!R6WRB$jcEm``lc%rrV&Apjc% z2K%k5sgwtMK`*%^GE7^q=qr=6UhAp9in1n!U9S@)yvFWZ(?OQ~Onr;>ZW*O_JiaQ+ zXortQ=$G@Wc&sJ4)e#zCxZ$5+bgCi;YB3lJ#(#f5GF6i$)sxsPoUEaQ3?ajh@Eq!P zO?k|;hZz_QAC_rM?<9rN`xbP~dhZuTJG;8jKm6tKor*TiI`~gMNlQsz0mkhWcKN^Y zyt4`jwQYyY3na8Y5X&#Si^`;Rm5%|ANpV;4UTSGdj<9Z|6&Pl1mt6x0g!GVJthIwP z91*M-A#`wn&1;FsA4^S<;`BKU)7nDJjhAKaiYBVb3M$ojgt6DU@YMX;sEQR&4X!>Z zm|;-uaJ_h#9N(*XUU01glv`V7$vgbV^L0yB1<+<&j@7T>!#_ImRr$fu?*KOvUzqD8 zZKQ`@Kk!)KGh?C8#8XK`eLbr4MHKlk?7{iSnF0HO#oNT46@;^lz3qzS89h%MAWu5S!Qowl>APu)vQuT#*JNF zqB>|AxPa4TfpWBgG~tpsxMtwBS(lgotGXEs`;7SI%rb6&H1%c88}k7ptfJkjf35t{ zR+eAa_QvKTTh9|Z1{K4%I-Di=J{og)9r(wLc(tW23S5mEus(3BZ}V5*@|>C zGPGF=L;8OPSVjbi{i?z?=B!ZY?68~Y^Rr-sN1}zN`;AwZ(i z_}hU=~+?x&Ze<%VtBNt+EZun$^fL(Q`_Gg1?_JB&aKD*Xd=cISev2hqI8W0jP2yFueArek=auLg z?0+*+IOs(H@ymON#2_FX0vLL5C8wNg NUZ7%?qpk?UgMvqUzBlRC`V>k~uqOy~> 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 E1w{GKegFUf literal 0 HcmV?d00001 diff --git a/packages/github/1.0.0/img/github-user-dashboard.png b/packages/github/1.0.0/img/github-user-dashboard.png new file mode 100755 index 0000000000000000000000000000000000000000..d31984b7fa99b8ece0a28ac46144e3774004f2f5 GIT binary patch literal 331861 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 {Jqj=^0n(y+*ECnv! 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

    $()Jg5IHnE^;W^ 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�?^zYNc@)NP4 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 KiZ9%G^8Ww`eiO0) literal 0 HcmV?d00001 diff --git a/packages/github/1.0.0/img/github.svg b/packages/github/1.0.0/img/github.svg new file mode 100755 index 0000000000..a8d1174049 --- /dev/null +++ b/packages/github/1.0.0/img/github.svg @@ -0,0 +1,3 @@ + + + diff --git a/packages/github/1.0.0/kibana/dashboard/github-8bfd8310-205c-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/dashboard/github-8bfd8310-205c-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..50358b3d23 --- /dev/null +++ b/packages/github/1.0.0/kibana/dashboard/github-8bfd8310-205c-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,42 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":7,\"i\":\"af01806a-78b1-4068-8d69-fa2ca952f365\",\"w\":48,\"x\":0,\"y\":0},\"panelIndex\":\"af01806a-78b1-4068-8d69-fa2ca952f365\",\"panelRefName\":\"panel_af01806a-78b1-4068-8d69-fa2ca952f365\",\"type\":\"visualization\",\"version\":\"7.16.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"7d42442c-83c9-420d-8ef4-883eeb150687\",\"w\":24,\"x\":0,\"y\":7},\"panelIndex\":\"7d42442c-83c9-420d-8ef4-883eeb150687\",\"panelRefName\":\"panel_7d42442c-83c9-420d-8ef4-883eeb150687\",\"type\":\"visualization\",\"version\":\"7.16.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"76db3a0d-7562-4436-acd5-3cbfd4f6d044\",\"w\":24,\"x\":24,\"y\":7},\"panelIndex\":\"76db3a0d-7562-4436-acd5-3cbfd4f6d044\",\"panelRefName\":\"panel_76db3a0d-7562-4436-acd5-3cbfd4f6d044\",\"type\":\"visualization\",\"version\":\"7.16.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"1e435c96-c37f-4eb5-a4e5-2d446b2bf464\",\"w\":48,\"x\":0,\"y\":22},\"panelIndex\":\"1e435c96-c37f-4eb5-a4e5-2d446b2bf464\",\"panelRefName\":\"panel_1e435c96-c37f-4eb5-a4e5-2d446b2bf464\",\"type\":\"search\",\"version\":\"7.16.0\"}]", + "timeRestore": false, + "title": "[GitHub] User Change Audit", + "version": 1 + }, + "coreMigrationVersion": "7.16.0", + "id": "github-8bfd8310-205c-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "github-7b073f90-205e-11ec-8b10-11a4c5e322a0", + "name": "af01806a-78b1-4068-8d69-fa2ca952f365:panel_af01806a-78b1-4068-8d69-fa2ca952f365", + "type": "visualization" + }, + { + "id": "github-97737b60-20b5-11ec-8b10-11a4c5e322a0", + "name": "7d42442c-83c9-420d-8ef4-883eeb150687:panel_7d42442c-83c9-420d-8ef4-883eeb150687", + "type": "visualization" + }, + { + "id": "github-b50c62e0-20b5-11ec-8b10-11a4c5e322a0", + "name": "76db3a0d-7562-4436-acd5-3cbfd4f6d044:panel_76db3a0d-7562-4436-acd5-3cbfd4f6d044", + "type": "visualization" + }, + { + "id": "github-173f1050-20ae-11ec-8b10-11a4c5e322a0", + "name": "1e435c96-c37f-4eb5-a4e5-2d446b2bf464:panel_1e435c96-c37f-4eb5-a4e5-2d446b2bf464", + "type": "search" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/dashboard/github-dcee84c0-2059-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/dashboard/github-dcee84c0-2059-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..506153bc21 --- /dev/null +++ b/packages/github/1.0.0/kibana/dashboard/github-dcee84c0-2059-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,62 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":7,\"i\":\"63210180-c999-4d93-8d7a-f2fcb810ad1b\",\"w\":41,\"x\":0,\"y\":0},\"panelIndex\":\"63210180-c999-4d93-8d7a-f2fcb810ad1b\",\"panelRefName\":\"panel_63210180-c999-4d93-8d7a-f2fcb810ad1b\",\"type\":\"visualization\",\"version\":\"7.16.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":7,\"i\":\"b37e0c71-2cc3-4895-b839-383ce53561a8\",\"w\":7,\"x\":41,\"y\":0},\"panelIndex\":\"b37e0c71-2cc3-4895-b839-383ce53561a8\",\"panelRefName\":\"panel_b37e0c71-2cc3-4895-b839-383ce53561a8\",\"type\":\"visualization\",\"version\":\"7.16.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":19,\"i\":\"fb1ebb7a-c8bf-419d-be8f-ff5d2a741cc9\",\"w\":48,\"x\":0,\"y\":7},\"panelIndex\":\"fb1ebb7a-c8bf-419d-be8f-ff5d2a741cc9\",\"panelRefName\":\"panel_fb1ebb7a-c8bf-419d-be8f-ff5d2a741cc9\",\"type\":\"visualization\",\"version\":\"7.16.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"hiddenLayers\":[],\"isLayerTOCOpen\":false,\"mapBuffer\":{\"maxLat\":85.05113,\"maxLon\":360,\"minLat\":-85.05113,\"minLon\":-540},\"mapCenter\":{\"lat\":27.08856,\"lon\":-30.5613,\"zoom\":1},\"openTOCDetails\":[]},\"gridData\":{\"h\":18,\"i\":\"88887e58-b192-4c9b-85c7-14d18a6c1c0d\",\"w\":37,\"x\":0,\"y\":26},\"panelIndex\":\"88887e58-b192-4c9b-85c7-14d18a6c1c0d\",\"panelRefName\":\"panel_88887e58-b192-4c9b-85c7-14d18a6c1c0d\",\"type\":\"map\",\"version\":\"7.16.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":18,\"i\":\"0c469087-fb3f-46d3-8962-c49d2e50f70c\",\"w\":11,\"x\":37,\"y\":26},\"panelIndex\":\"0c469087-fb3f-46d3-8962-c49d2e50f70c\",\"panelRefName\":\"panel_0c469087-fb3f-46d3-8962-c49d2e50f70c\",\"type\":\"visualization\",\"version\":\"7.16.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":19,\"i\":\"108cd1b7-ce79-4558-ae38-5f1bb93961fe\",\"w\":25,\"x\":0,\"y\":44},\"panelIndex\":\"108cd1b7-ce79-4558-ae38-5f1bb93961fe\",\"panelRefName\":\"panel_108cd1b7-ce79-4558-ae38-5f1bb93961fe\",\"type\":\"visualization\",\"version\":\"7.16.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":19,\"i\":\"9ed1cfce-9337-4813-8df5-14a1280bb351\",\"w\":23,\"x\":25,\"y\":44},\"panelIndex\":\"9ed1cfce-9337-4813-8df5-14a1280bb351\",\"panelRefName\":\"panel_9ed1cfce-9337-4813-8df5-14a1280bb351\",\"type\":\"visualization\",\"version\":\"7.16.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":17,\"i\":\"d48a66a5-50e7-4cab-9b16-767bfa427860\",\"w\":48,\"x\":0,\"y\":63},\"panelIndex\":\"d48a66a5-50e7-4cab-9b16-767bfa427860\",\"panelRefName\":\"panel_d48a66a5-50e7-4cab-9b16-767bfa427860\",\"type\":\"visualization\",\"version\":\"7.16.0-SNAPSHOT\"}]", + "timeRestore": false, + "title": "[GitHub] Audit Log Activity", + "version": 1 + }, + "coreMigrationVersion": "7.16.0", + "id": "github-dcee84c0-2059-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "github-7b073f90-205e-11ec-8b10-11a4c5e322a0", + "name": "63210180-c999-4d93-8d7a-f2fcb810ad1b:panel_63210180-c999-4d93-8d7a-f2fcb810ad1b", + "type": "visualization" + }, + { + "id": "github-d7343340-20b3-11ec-8b10-11a4c5e322a0", + "name": "b37e0c71-2cc3-4895-b839-383ce53561a8:panel_b37e0c71-2cc3-4895-b839-383ce53561a8", + "type": "visualization" + }, + { + "id": "github-ba0ece10-20b3-11ec-8b10-11a4c5e322a0", + "name": "fb1ebb7a-c8bf-419d-be8f-ff5d2a741cc9:panel_fb1ebb7a-c8bf-419d-be8f-ff5d2a741cc9", + "type": "visualization" + }, + { + "id": "github-871e5750-205e-11ec-8b10-11a4c5e322a0", + "name": "88887e58-b192-4c9b-85c7-14d18a6c1c0d:panel_88887e58-b192-4c9b-85c7-14d18a6c1c0d", + "type": "map" + }, + { + "id": "github-9638a6e0-20b4-11ec-8b10-11a4c5e322a0", + "name": "0c469087-fb3f-46d3-8962-c49d2e50f70c:panel_0c469087-fb3f-46d3-8962-c49d2e50f70c", + "type": "visualization" + }, + { + "id": "github-61f60d00-20b4-11ec-8b10-11a4c5e322a0", + "name": "108cd1b7-ce79-4558-ae38-5f1bb93961fe:panel_108cd1b7-ce79-4558-ae38-5f1bb93961fe", + "type": "visualization" + }, + { + "id": "github-78ec0aa0-20b4-11ec-8b10-11a4c5e322a0", + "name": "9ed1cfce-9337-4813-8df5-14a1280bb351:panel_9ed1cfce-9337-4813-8df5-14a1280bb351", + "type": "visualization" + }, + { + "id": "github-c803b110-20b4-11ec-8b10-11a4c5e322a0", + "name": "d48a66a5-50e7-4cab-9b16-767bfa427860:panel_d48a66a5-50e7-4cab-9b16-767bfa427860", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/map/github-871e5750-205e-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/map/github-871e5750-205e-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..28e6fd92ec --- /dev/null +++ b/packages/github/1.0.0/kibana/map/github-871e5750-205e-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "description": "", + "layerListJSON": "[{\"alpha\":0.75,\"id\":\"a427cb7d-077b-4c8a-8741-74f8f03283e2\",\"includeInFitToBounds\":true,\"joins\":[],\"label\":null,\"maxZoom\":24,\"minZoom\":0,\"sourceDescriptor\":{\"id\":\"world_countries\",\"tooltipProperties\":[\"name\"],\"type\":\"EMS_FILE\"},\"style\":{\"isTimeAware\":true,\"properties\":{\"fillColor\":{\"options\":{\"color\":\"#6092C0\"},\"type\":\"STATIC\"},\"icon\":{\"options\":{\"value\":\"marker\"},\"type\":\"STATIC\"},\"iconOrientation\":{\"options\":{\"orientation\":0},\"type\":\"STATIC\"},\"iconSize\":{\"options\":{\"size\":6},\"type\":\"STATIC\"},\"labelBorderColor\":{\"options\":{\"color\":\"#FFFFFF\"},\"type\":\"STATIC\"},\"labelBorderSize\":{\"options\":{\"size\":\"SMALL\"}},\"labelColor\":{\"options\":{\"color\":\"#000000\"},\"type\":\"STATIC\"},\"labelSize\":{\"options\":{\"size\":14},\"type\":\"STATIC\"},\"labelText\":{\"options\":{\"value\":\"\"},\"type\":\"STATIC\"},\"lineColor\":{\"options\":{\"color\":\"#4379aa\"},\"type\":\"STATIC\"},\"lineWidth\":{\"options\":{\"size\":1},\"type\":\"STATIC\"},\"symbolizeAs\":{\"options\":{\"value\":\"circle\"}}},\"type\":\"VECTOR\"},\"type\":\"VECTOR\",\"visible\":true},{\"alpha\":0.75,\"id\":\"a0ea096b-e0eb-43dd-8f75-c0d8c0e4ac9a\",\"includeInFitToBounds\":true,\"joins\":[{\"leftField\":\"iso2\",\"right\":{\"applyGlobalQuery\":true,\"applyGlobalTime\":true,\"id\":\"167d9148-ad58-4fa1-99eb-c3e75fc75f96\",\"indexPatternRefName\":\"layer_1_join_0_index_pattern\",\"indexPatternTitle\":\"logs-*\",\"term\":\"client.geo.country_iso_code\",\"type\":\"ES_TERM_SOURCE\"}}],\"label\":\"Events by Country\",\"maxZoom\":24,\"minZoom\":0,\"sourceDescriptor\":{\"id\":\"world_countries\",\"tooltipProperties\":[\"name\"],\"type\":\"EMS_FILE\"},\"style\":{\"isTimeAware\":true,\"properties\":{\"fillColor\":{\"options\":{\"color\":\"#54B399\"},\"type\":\"STATIC\"},\"icon\":{\"options\":{\"value\":\"marker\"},\"type\":\"STATIC\"},\"iconOrientation\":{\"options\":{\"orientation\":0},\"type\":\"STATIC\"},\"iconSize\":{\"options\":{\"size\":6},\"type\":\"STATIC\"},\"labelBorderColor\":{\"options\":{\"color\":\"#FFFFFF\"},\"type\":\"STATIC\"},\"labelBorderSize\":{\"options\":{\"size\":\"SMALL\"}},\"labelColor\":{\"options\":{\"color\":\"#000000\"},\"type\":\"STATIC\"},\"labelSize\":{\"options\":{\"size\":14},\"type\":\"STATIC\"},\"labelText\":{\"options\":{\"value\":\"\"},\"type\":\"STATIC\"},\"lineColor\":{\"options\":{\"color\":\"#41937c\"},\"type\":\"STATIC\"},\"lineWidth\":{\"options\":{\"size\":1},\"type\":\"STATIC\"},\"symbolizeAs\":{\"options\":{\"value\":\"circle\"}}},\"type\":\"VECTOR\"},\"type\":\"VECTOR\",\"visible\":true}]", + "mapStateJSON": "{\"center\":{\"lat\":0,\"lon\":-29.82486},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"logs-*\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"github.audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"github.audit\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"refreshConfig\":{\"interval\":0,\"isPaused\":true},\"settings\":{\"autoFitToDataBounds\":false,\"backgroundColor\":\"#ffffff\",\"browserLocation\":{\"zoom\":2},\"disableInteractive\":false,\"disableTooltipControl\":false,\"fixedLocation\":{\"lat\":0,\"lon\":0,\"zoom\":2},\"hideLayerControl\":false,\"hideToolbarOverlay\":false,\"hideViewControl\":false,\"initialLocation\":\"LAST_SAVED_LOCATION\",\"maxZoom\":24,\"minZoom\":0,\"showScaleControl\":false,\"showSpatialFilters\":true,\"showTimesliderToggleButton\":true,\"spatialFiltersAlpa\":0.3,\"spatialFiltersFillColor\":\"#DA8B45\",\"spatialFiltersLineColor\":\"#DA8B45\"},\"timeFilters\":{\"from\":\"now-18M\",\"to\":\"now\"},\"zoom\":0.56}", + "title": "Activity Map by Actor Location [GitHub]", + "uiStateJSON": "{\"isLayerTOCOpen\":true,\"openTOCDetails\":[]}" + }, + "coreMigrationVersion": "7.16.0", + "id": "github-871e5750-205e-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "map": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "layer_1_join_0_index_pattern", + "type": "index-pattern" + } + ], + "type": "map" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/search/github-173f1050-20ae-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/search/github-173f1050-20ae-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..3becd882e0 --- /dev/null +++ b/packages/github/1.0.0/kibana/search/github-173f1050-20ae-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,46 @@ +{ + "attributes": { + "columns": [ + "user.name", + "user.target.name", + "github.org", + "event.action" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"github.audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"github.audit\"}}},{\"$state\":{\"store\":\"appState\"},\"exists\":{\"field\":\"user.target.name\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"user.target.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "GitHub Audit Users", + "version": 1 + }, + "coreMigrationVersion": "7.16.0", + "id": "github-173f1050-20ae-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/search/github-a5f3d9b0-20af-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/search/github-a5f3d9b0-20af-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..6fcc2915aa --- /dev/null +++ b/packages/github/1.0.0/kibana/search/github-a5f3d9b0-20af-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,36 @@ +{ + "attributes": { + "columns": [], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"github.audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"github.audit\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "GitHub Audit", + "version": 1 + }, + "coreMigrationVersion": "7.16.0", + "id": "github-a5f3d9b0-20af-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/visualization/github-61f60d00-20b4-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/visualization/github-61f60d00-20b4-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..e74ffec7ff --- /dev/null +++ b/packages/github/1.0.0/kibana/visualization/github-61f60d00-20b4-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "Top 5 Event Types [GitHub]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"\",\"field\":\"event.action\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":3,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":75,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"Top 5 Event Types [GitHub]\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.16.0", + "id": "github-61f60d00-20b4-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "github-a5f3d9b0-20af-11ec-8b10-11a4c5e322a0", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/visualization/github-78ec0aa0-20b4-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/visualization/github-78ec0aa0-20b4-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..bee75a85b9 --- /dev/null +++ b/packages/github/1.0.0/kibana/visualization/github-78ec0aa0-20b4-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "Top 5 Active Users [GitHub]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"user.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":200},\"position\":\"left\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":3,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":true,\"rotate\":75,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"bottom\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"Top 5 Active Users [GitHub]\",\"type\":\"horizontal_bar\"}" + }, + "coreMigrationVersion": "7.16.0", + "id": "github-78ec0aa0-20b4-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "github-a5f3d9b0-20af-11ec-8b10-11a4c5e322a0", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/visualization/github-7b073f90-205e-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/visualization/github-7b073f90-205e-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..ffb543647f --- /dev/null +++ b/packages/github/1.0.0/kibana/visualization/github-7b073f90-205e-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,50 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"github.audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"github.audit\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "title": "Controls Audit [GitHub]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[],\"params\":{\"controls\":[{\"fieldName\":\"github.org\",\"id\":\"1632831213212\",\"indexPatternRefName\":\"control_0_index_pattern\",\"label\":\"Organization\",\"options\":{\"dynamicOptions\":true,\"multiselect\":true,\"order\":\"desc\",\"size\":5,\"type\":\"terms\"},\"parent\":\"\",\"type\":\"list\"},{\"fieldName\":\"github.repo\",\"id\":\"1632831234336\",\"indexPatternRefName\":\"control_1_index_pattern\",\"label\":\"Repository\",\"options\":{\"dynamicOptions\":true,\"multiselect\":true,\"order\":\"desc\",\"size\":5,\"type\":\"terms\"},\"parent\":\"\",\"type\":\"list\"},{\"fieldName\":\"user.name\",\"id\":\"1632872599896\",\"indexPatternRefName\":\"control_2_index_pattern\",\"label\":\"Actor\",\"options\":{\"dynamicOptions\":true,\"multiselect\":true,\"order\":\"desc\",\"size\":5,\"type\":\"terms\"},\"parent\":\"\",\"type\":\"list\"},{\"fieldName\":\"user.target.name\",\"id\":\"1632872564349\",\"indexPatternRefName\":\"control_3_index_pattern\",\"label\":\"Users\",\"options\":{\"dynamicOptions\":true,\"multiselect\":true,\"order\":\"desc\",\"size\":5,\"type\":\"terms\"},\"parent\":\"\",\"type\":\"list\"},{\"fieldName\":\"event.action\",\"id\":\"1632874177516\",\"indexPatternRefName\":\"control_4_index_pattern\",\"label\":\"Action\",\"options\":{\"dynamicOptions\":true,\"multiselect\":true,\"order\":\"desc\",\"size\":5,\"type\":\"terms\"},\"parent\":\"\",\"type\":\"list\"}],\"pinFilters\":false,\"updateFiltersOnChange\":false,\"useTimeFilter\":false},\"title\":\"Controls Audit [GitHub]\",\"type\":\"input_control_vis\"}" + }, + "coreMigrationVersion": "7.16.0", + "id": "github-7b073f90-205e-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "control_0_index_pattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "control_1_index_pattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "control_2_index_pattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "control_3_index_pattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "control_4_index_pattern", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/visualization/github-9638a6e0-20b4-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/visualization/github-9638a6e0-20b4-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..0b63b91066 --- /dev/null +++ b/packages/github/1.0.0/kibana/visualization/github-9638a6e0-20b4-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "Events per Organization [GitHub]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"github.org\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10000},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"value\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"Events per Organization [GitHub]\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.0", + "id": "github-9638a6e0-20b4-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "github-a5f3d9b0-20af-11ec-8b10-11a4c5e322a0", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/visualization/github-97737b60-20b5-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/visualization/github-97737b60-20b5-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..2adad09de2 --- /dev/null +++ b/packages/github/1.0.0/kibana/visualization/github-97737b60-20b5-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "User Changes [GitHub]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"event.action\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":1000},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":0,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"value\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"User Changes [GitHub]\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.0", + "id": "github-97737b60-20b5-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "github-173f1050-20ae-11ec-8b10-11a4c5e322a0", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/visualization/github-b50c62e0-20b5-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/visualization/github-b50c62e0-20b5-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..ab96e88761 --- /dev/null +++ b/packages/github/1.0.0/kibana/visualization/github-b50c62e0-20b5-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "User Change Timeline [GitHub]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"scaleMetricValues\":false,\"timeRange\":{\"from\":\"now-18M\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"used_interval\":\"1w\"},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"event.action\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":1000},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":3,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"User Change Timeline [GitHub]\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.0", + "id": "github-b50c62e0-20b5-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "github-173f1050-20ae-11ec-8b10-11a4c5e322a0", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/visualization/github-ba0ece10-20b3-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/visualization/github-ba0ece10-20b3-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..862ffe3f0b --- /dev/null +++ b/packages/github/1.0.0/kibana/visualization/github-ba0ece10-20b3-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "Events over time [GitHub]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"scaleMetricValues\":false,\"timeRange\":{\"from\":\"now-18M\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"used_interval\":\"1w\"},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"event.action\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":1000},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":3,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"Events over time [GitHub]\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.0", + "id": "github-ba0ece10-20b3-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "github-a5f3d9b0-20af-11ec-8b10-11a4c5e322a0", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/visualization/github-c803b110-20b4-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/visualization/github-c803b110-20b4-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..e833f96f8f --- /dev/null +++ b/packages/github/1.0.0/kibana/visualization/github-c803b110-20b4-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "Top 10 Active Repositories [GitHub]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Repository\",\"field\":\"github.repo\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":3,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"Top 10 Active Repositories [GitHub]\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.0", + "id": "github-c803b110-20b4-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "github-a5f3d9b0-20af-11ec-8b10-11a4c5e322a0", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/github/1.0.0/kibana/visualization/github-d7343340-20b3-11ec-8b10-11a4c5e322a0.json b/packages/github/1.0.0/kibana/visualization/github-d7343340-20b3-11ec-8b10-11a4c5e322a0.json new file mode 100755 index 0000000000..1b32797c76 --- /dev/null +++ b/packages/github/1.0.0/kibana/visualization/github-d7343340-20b3-11ec-8b10-11a4c5e322a0.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "Total Events [GitHub]", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\" \"},\"schema\":\"metric\",\"type\":\"count\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"metric\":{\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"invertColors\":false,\"labels\":{\"show\":true},\"metricColorMode\":\"None\",\"percentageMode\":false,\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":60,\"labelColor\":false,\"subText\":\"\"},\"useRanges\":false},\"type\":\"metric\"},\"title\":\"Total Events [GitHub]\",\"type\":\"metric\"}" + }, + "coreMigrationVersion": "7.16.0", + "id": "github-d7343340-20b3-11ec-8b10-11a4c5e322a0", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "github-a5f3d9b0-20af-11ec-8b10-11a4c5e322a0", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/github/1.0.0/manifest.yml b/packages/github/1.0.0/manifest.yml new file mode 100755 index 0000000000..505e50360f --- /dev/null +++ b/packages/github/1.0.0/manifest.yml @@ -0,0 +1,35 @@ +name: github +title: GitHub +version: 1.0.0 +release: ga +description: Collect events from GitHub with Elastic Agent. +type: integration +format_version: 1.0.0 +license: basic +categories: [security] +conditions: + kibana.version: "^7.16.0 || ^8.0.0" +icons: + - src: /img/github.svg + title: GitHub + size: 1024x1024 + type: image/svg+xml +screenshots: + - src: /img/github-audit-dashboard.png + title: GitHub audit overview + size: 3000x1788 + type: image/png + - src: /img/github-user-dashboard.png + title: GitHub user overview + size: 2998x1631 + type: image/png +policy_templates: + - name: github + title: GitHub logs + description: Collect logs from GitHub + inputs: + - type: httpjson + title: "Collect GitHub logs via API" + description: "Collecting logs from GitHub via API" +owner: + github: elastic/security-external-integrations diff --git a/packages/microsoft_dhcp/1.4.2/changelog.yml b/packages/microsoft_dhcp/1.4.2/changelog.yml new file mode 100755 index 0000000000..0dc3997b95 --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/changelog.yml @@ -0,0 +1,61 @@ +# newer versions go on top +- version: "1.4.2" + changes: + - description: Change event.type value from end to stop according to ECS + type: bugfix + link: https://github.com/elastic/integrations/issues/3406 +- version: "1.4.1" + changes: + - description: Format observer.mac as per ECS and add missing mappings for event.category, event.outcome, and event.type. + type: bugfix + link: https://github.com/elastic/integrations/pull/3300 +- version: "1.4.0" + changes: + - description: Update to ECS 8.2 + type: enhancement + link: https://github.com/elastic/integrations/pull/2780 +- version: "1.3.1" + changes: + - description: Add documentation for multi-fields + type: enhancement + link: https://github.com/elastic/integrations/pull/2916 +- version: "1.3.0" + changes: + - description: Update to ECS 8.0 + type: enhancement + link: https://github.com/elastic/integrations/pull/2423 +- version: "1.2.0" + changes: + - description: Add DHCPv6 Server support + type: enhancement + link: https://github.com/elastic/integrations/pull/2473 +- version: "1.1.0" + changes: + - description: Add more event.action and event.outcome values + type: enhancement + link: https://github.com/elastic/integrations/pull/2296 +- version: "1.0.0" + changes: + - description: GA integration + type: enhancement + link: https://github.com/elastic/integrations/pull/2360 +- version: "0.2.1" + changes: + - description: Change test public IPs to the supported subset + type: bugfix + link: https://github.com/elastic/integrations/pull/2327 +- version: "0.2.0" + changes: + - description: Add 8.0.0 version constraint + type: enhancement + link: https://github.com/elastic/integrations/pull/2276 +- version: "0.1.1" + changes: + - description: Update Title and Description. + type: enhancement + link: https://github.com/elastic/integrations/pull/1972 +- version: "0.1.0" + changes: + - description: Initial release + type: enhancement + link: https://github.com/elastic/integrations/pull/1793 diff --git a/packages/microsoft_dhcp/1.4.2/data_stream/log/agent/stream/logfile.yml.hbs b/packages/microsoft_dhcp/1.4.2/data_stream/log/agent/stream/logfile.yml.hbs new file mode 100755 index 0000000000..2b61987446 --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/data_stream/log/agent/stream/logfile.yml.hbs @@ -0,0 +1,32 @@ +paths: +{{#each paths as |path i|}} + - '{{path}}' +{{/each}} +exclude_files: [".gz$"] +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if tz_offset}} +fields_under_root: true +fields: + _conf: + tz_offset: {{tz_offset}} +{{/if}} +processors: +- drop_event: + when: + not: + regexp: + message: "^[0-9]+,.*" +- add_observer_metadata: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/microsoft_dhcp/1.4.2/data_stream/log/elasticsearch/ingest_pipeline/default.yml b/packages/microsoft_dhcp/1.4.2/data_stream/log/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..5f2a5b4cad --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/data_stream/log/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,63 @@ +--- +description: Pipeline for processing Microsoft DHCP Server logs. +processors: + - set: + field: ecs.version + value: "8.2.0" + - set: + field: event.kind + value: event + - set: + field: event.timezone + value: "{{{_conf.tz_offset}}}" + if: "ctx?._conf?.tz_offset != null && ctx._conf.tz_offset != 'local'" + - set: + field: event.original + override: false + copy_from: message + - remove: + field: message + ignore_missing: true + - rename: + field: message + target_field: event.original + ignore_missing: true + - pipeline: + name: '{{ IngestPipeline "dhcp" }}' + if: "ctx?.log?.file?.path != null && !ctx.log.file.path.contains('V6')" + - pipeline: + name: '{{ IngestPipeline "dhcpv6" }}' + if: "ctx?.log?.file?.path != null && ctx.log.file.path.contains('V6')" + - foreach: + field: observer.mac + ignore_missing: true + processor: + gsub: + field: _ingest._value + pattern: '[:]' + replacement: '-' + - foreach: + field: observer.mac + ignore_missing: true + processor: + uppercase: + field: _ingest._value + - remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + ignore_missing: true + - remove: + field: + - _tmp_ + - _conf + ignore_missing: true +on_failure: + - set: + field: error.message + value: |- + Processor "{{ _ingest.on_failure_processor_type }}" with tag "{{ _ingest.on_failure_processor_tag }}" in pipeline "{{ _ingest.on_failure_pipeline }}" failed with message "{{ _ingest.on_failure_message }}" + - remove: + field: + - _tmp_ + - _conf diff --git a/packages/microsoft_dhcp/1.4.2/data_stream/log/elasticsearch/ingest_pipeline/dhcp.yml b/packages/microsoft_dhcp/1.4.2/data_stream/log/elasticsearch/ingest_pipeline/dhcp.yml new file mode 100755 index 0000000000..6f891b51df --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/data_stream/log/elasticsearch/ingest_pipeline/dhcp.yml @@ -0,0 +1,345 @@ +--- +## Reference document for DHCP field mapping: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd183591(v=ws.10) +description: Pipeline for processing Microsoft DHCP Server logs. +processors: + - csv: + field: event.original + target_fields: + - event.code + - _tmp_.date + - _tmp_.time + - message + - host.ip + - host.domain + - _tmp_.mac + - user.name + - microsoft.dhcp.transaction_id + - microsoft.dhcp.result + - microsoft.dhcp.probation_time + - microsoft.dhcp.correlation_id + - microsoft.dhcp.dhc_id + - microsoft.dhcp.vendor.hex + - microsoft.dhcp.vendor.string + - microsoft.dhcp.user.hex + - microsoft.dhcp.user.string + - microsoft.dhcp.relay_agent_info + - microsoft.dhcp.dns_error_code + ignore_failure: true + - set: + field: _tmp_.timestamp + value: "{{{_tmp_.date}}} {{{_tmp_.time}}}" + - date: + field: _tmp_.timestamp + formats: + - "MM/dd/yy HH:mm:ss" + timezone: "{{{event.timezone}}}" + - script: + description: Set event action, category, outcome, and type for all known event types. + lang: painless + tag: Add ECS categorization fields + params: + "00": + action: log-start + category: + - process + type: + - start + "01": + action: log-end + category: + - process + type: + - end + "02": + action: log-pause + category: + - process + type: + - change + outcome: failure + "10": + action: dhcp-new + category: + - network + type: + - allowed + - connection + "11": + action: dhcp-renew + category: + - network + type: + - allowed + - connection + "12": + action: dhcp-release + category: + - network + type: + - allowed + - connection + "13": + category: + - network + type: + - connection + "14": + category: + - network + type: + - connection + - denied + outcome: failure + "15": + action: dhcp-deny + category: + - network + type: + - connection + - denied + outcome: failure + "16": + action: dhcp-delete + category: + - network + type: + - connection + "17": + action: dhcp-expire + category: + - network + type: + - connection + "18": + action: dhcp-expire + category: + - network + type: + - connection + "20": + category: + - network + type: + - allowed + - connection + "21": + category: + - network + type: + - allowed + - connection + "22": + category: + - network + type: + - connection + - denied + outcome: failure + "23": + category: + - network + type: + - connection + - denied + outcome: failure + "24": + action: ip-cleanup-start + category: + - process + type: + - start + "25": + action: ip-cleanup-end + category: + - process + type: + - start + "30": + action: dhcp-dns-update + category: + - network + type: + - connection + "31": + action: dhcp-dns-update + category: + - network + type: + - connection + outcome: failure + "32": + action: dhcp-dns-update + category: + - network + type: + - connection + "33": + category: + - network + type: + - connection + outcome: failure + "34": + action: dhcp-dns-update + category: + - network + type: + - connection + outcome: failure + "35": + action: dhcp-dns-update + category: + - network + type: + - connection + - denied + outcome: failure + "36": + category: + - network + type: + - connection + - denied + outcome: failure + "50": + action: rogue-server-detection + category: + - authentication + - network + type: + - connection + outcome: failure + "51": + action: rogue-server-detection + category: + - authentication + - network + type: + - allowed + - connection + "52": + action: rogue-server-detection + category: + - authentication + - network + type: + - connection + "53": + action: rogue-server-detection + category: + - authentication + - network + type: + - allowed + - connection + "54": + action: rogue-server-detection + category: + - authentication + - network + type: + - connection + - denied + outcome: failure + "55": + action: rogue-server-detection + category: + - authentication + - network + type: + - allowed + - connection + "56": + action: rogue-server-detection + category: + - authentication + - network + type: + - connection + - denied + outcome: failure + "57": + action: rogue-server-detection + category: + - authentication + - network + type: + - connection + "58": + action: rogue-server-detection + category: + - authentication + - network + type: + - connection + outcome: failure + "59": + action: rogue-server-detection + category: + - authentication + - network + type: + - connection + outcome: failure + "60": + action: rogue-server-detection + category: + - authentication + - network + type: + - connection + "61": + action: rogue-server-detection + category: + - authentication + - network + type: + - connection + "62": + action: rogue-server-detection + category: + - authentication + - network + type: + - connection + "63": + action: rogue-server-detection + category: + - authentication + - network + type: + - connection + "64": + action: rogue-server-detection + category: + - authentication + - network + type: + - connection + source: |- + if (ctx?.event?.code == null || params.get(ctx.event.code) == null) { + return; + } + def hm = new HashMap(params[ctx.event.code]); + hm.forEach((k, v) -> ctx.event[k] = v); + - set: + field: event.outcome + value: success + if: ctx?.event?.outcome == null + - gsub: + field: _tmp_.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true + - uppercase: + field: _tmp_.mac + ignore_missing: true + - append: + if: ctx?._tmp_?.mac != null + field: host.mac + value: '{{{_tmp_.mac}}}' +on_failure: + - set: + field: error.message + value: |- + Processor "{{ _ingest.on_failure_processor_type }}" with tag "{{ _ingest.on_failure_processor_tag }}" in pipeline "{{ _ingest.on_failure_pipeline }}" failed with message "{{ _ingest.on_failure_message }}" diff --git a/packages/microsoft_dhcp/1.4.2/data_stream/log/elasticsearch/ingest_pipeline/dhcpv6.yml b/packages/microsoft_dhcp/1.4.2/data_stream/log/elasticsearch/ingest_pipeline/dhcpv6.yml new file mode 100755 index 0000000000..7c808cad13 --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/data_stream/log/elasticsearch/ingest_pipeline/dhcpv6.yml @@ -0,0 +1,244 @@ +--- +description: Pipeline for processing Microsoft DHCPv6 Server logs. +processors: + - csv: + field: event.original + target_fields: + - event.code + - _tmp_.date + - _tmp_.time + - message + - host.ip + - host.domain + - microsoft.dhcp.error_code + - microsoft.dhcp.duid.length + - microsoft.dhcp.duid.hex + - microsoft.dhcp.user.string + - microsoft.dhcp.dhc_id + - microsoft.dhcp.subnet_prefix + ignore_failure: true + - set: + field: _tmp_.timestamp + value: "{{{_tmp_.date}}} {{{_tmp_.time}}}" + - date: + field: _tmp_.timestamp + formats: + - "MM/dd/yy HH:mm:ss" + timezone: "{{{event.timezone}}}" + - script: + description: Set event action, category, outcome, and type for all known event types. + lang: painless + tag: Add ECS categorization fields + params: + "11000": + action: dhcpv6-solicit + category: + - network + type: + - connection + - protocol + "11001": + action: dhcpv6-advertise + category: + - network + type: + - connection + - protocol + "11002": + action: dhcpv6-request + category: + - network + type: + - connection + - protocol + "11003": + action: dhcpv6-confirm + category: + - network + type: + - connection + - protocol + "11004": + action: dhcpv6-renew + category: + - network + type: + - connection + - protocol + "11005": + action: dhcpv6-rebind + category: + - network + type: + - connection + - protocol + "11006": + action: dhcpv6-decline + category: + - network + type: + - connection + - protocol + outcome: failure + "11007": + action: dhcpv6-release + category: + - network + type: + - connection + "11008": + action: dhcpv6-info-request + category: + - network + type: + - connection + "11009": + action: dhcpv6-scope-full + category: + - network + type: + - connection + "11010": + action: log-start + category: + - process + type: + - start + "11011": + action: log-stop + category: + - process + type: + - end + "11012": + action: log-pause + category: + - process + type: + - change + "11013": + action: log-file + category: + - process + type: + - info + "11014": + action: dhcpv6-bad-address + category: + - network + type: + - connection + outcome: failure + "11015": + action: dhcpv6-address-in-use + category: + - network + type: + - connection + "11016": + action: dhcpv6-client-deleted + category: + - network + type: + - connection + "11017": + action: ipv6-dns-record-not-deleted + category: + - network + type: + - connection + "11018": + action: dhcpv6-expired + category: + - network + type: + - connection + "11019": + action: dhcpv6-lease-expired-deleted + category: + - network + type: + - connection + "11020": + action: dhcpv6-cleanup-start + category: + - process + type: + - start + "11021": + action: dhcpv6-cleanup-end + category: + - process + type: + - end + "11022": + action: ipv6-dns-update-request + category: + - network + type: + - connection + - start + "11023": + action: ipv6-dns-update-failed + category: + - network + type: + - connection + - end + outcome: failure + "11024": + action: ipv6-dns-update-successful + category: + - network + type: + - connection + - end + "11028": + action: ipv6-dns-update-request-queue-exceeded + category: + - network + type: + - connection + - end + outcome: failure + "11029": + action: ipv6-dns-update-request-failed + category: + - network + type: + - connection + - end + outcome: failure + "11030": + action: dhcpv6-stateless-clients-pruged + category: + - process + type: + - change + "11031": + action: dhcpv6-stateless-clients-expired + category: + - process + type: + - change + "11032": + action: dhcpv6-stateless-client-info-request + category: + - network + type: + - info + source: |- + if (ctx?.event?.code == null || params.get(ctx.event.code) == null) { + return; + } + def hm = new HashMap(params[ctx.event.code]); + hm.forEach((k, v) -> ctx.event[k] = v); + - set: + field: event.outcome + value: success + if: ctx?.event?.outcome == null +on_failure: + - set: + field: error.message + value: |- + Processor "{{ _ingest.on_failure_processor_type }}" with tag "{{ _ingest.on_failure_processor_tag }}" in pipeline "{{ _ingest.on_failure_pipeline }}" failed with message "{{ _ingest.on_failure_message }}" diff --git a/packages/microsoft_dhcp/1.4.2/data_stream/log/fields/agent.yml b/packages/microsoft_dhcp/1.4.2/data_stream/log/fields/agent.yml new file mode 100755 index 0000000000..dbed2e68dc --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/data_stream/log/fields/agent.yml @@ -0,0 +1,4 @@ +- name: input.type + type: keyword +- name: log.offset + type: long diff --git a/packages/microsoft_dhcp/1.4.2/data_stream/log/fields/base-fields.yml b/packages/microsoft_dhcp/1.4.2/data_stream/log/fields/base-fields.yml new file mode 100755 index 0000000000..096db185c7 --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/data_stream/log/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module + value: microsoft_dhcp +- name: event.dataset + type: constant_keyword + description: Event dataset + value: microsoft_dhcp.log diff --git a/packages/microsoft_dhcp/1.4.2/data_stream/log/fields/ecs.yml b/packages/microsoft_dhcp/1.4.2/data_stream/log/fields/ecs.yml new file mode 100755 index 0000000000..6d56ae30e7 --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/data_stream/log/fields/ecs.yml @@ -0,0 +1,103 @@ +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Identification code for this event, if one exists. + Some event sources use event codes to identify messages unambiguously, regardless of message language or wording adjustments over time. An example of this is the Windows Event ID. + name: event.code + type: keyword +- description: |- + Timestamp when an event arrived in the central data store. + This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. + In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` < `event.created` < `event.ingested`. + name: event.ingested + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. + `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. + Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. + Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. + Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. + name: event.outcome + type: keyword +- description: |- + This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. + Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). + name: event.timezone + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Name of the domain of which the host is a member. + For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. + name: host.domain + type: keyword +- description: Host ip addresses. + name: host.ip + type: ip +- description: |- + Host MAC addresses. + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. + name: host.mac + type: keyword +- description: |- + Full path to the log file this event came from, including the file name. It should include the drive letter, when appropriate. + If the event wasn't read from a log file, do not populate this field. + name: log.file.path + type: keyword +- description: |- + For log events the message field contains the log message, optimized for viewing in a log viewer. + For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. + If multiple messages exist, they can be combined into one message. + name: message + type: match_only_text +- description: Hostname of the observer. + name: observer.hostname + type: keyword +- description: IP addresses of the observer. + name: observer.ip + type: ip +- description: |- + MAC addresses of the observer. + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. + name: observer.mac + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword diff --git a/packages/microsoft_dhcp/1.4.2/data_stream/log/fields/fields.yml b/packages/microsoft_dhcp/1.4.2/data_stream/log/fields/fields.yml new file mode 100755 index 0000000000..3d7eebb86c --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/data_stream/log/fields/fields.yml @@ -0,0 +1,63 @@ +- name: microsoft.dhcp + type: group + fields: + - name: transaction_id + type: keyword + description: | + The DHCP transaction ID. + - name: result + type: keyword + description: | + The DHCP result type, for example "NoQuarantine", "Drop Packet" etc. + - name: probation_time + type: keyword + description: | + The probation time before lease ends on specific IP. + - name: correlation_id + type: keyword + description: | + The NAP correlation ID related to the client/server transaction. + - name: dhc_id + type: keyword + description: | + The related DHCID (DHC DNS record). + - name: vendor.hex + type: keyword + description: | + Hex representation of the vendor. + - name: vendor.string + type: keyword + description: | + String representation of the vendor. + - name: user.hex + type: keyword + description: | + Hex representation of the user. + - name: user.string + type: keyword + description: | + String representation of the user. + - name: relay_agent_info + type: keyword + description: | + Information about DHCP relay agent used for the DHCP request. + - name: dns_error_code + type: keyword + description: | + DNS error code communicated to client. + - name: error_code + type: keyword + description: | + DHCP server error code. + - name: duid.length + type: keyword + description: | + The length of the DUID field. + - name: duid.hex + type: keyword + description: | + The related DHCP Unique Identifier (DUID) for the host (DHCPv6). + - name: subnet_prefix + type: keyword + description: | + The number of bits for the subnet prefix. diff --git a/packages/microsoft_dhcp/1.4.2/data_stream/log/manifest.yml b/packages/microsoft_dhcp/1.4.2/data_stream/log/manifest.yml new file mode 100755 index 0000000000..092f44f2b0 --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/data_stream/log/manifest.yml @@ -0,0 +1,50 @@ +title: "Microsoft DHCP Logs" +type: logs +streams: + - input: logfile + template_path: logfile.yml.hbs + title: DHCP Logs + description: Collects Microsoft DHCP logs. + vars: + - name: tz_offset + type: text + title: Timezone Offset + multi: false + required: true + show_user: true + default: local + description: >- + By default, datetimes in the logs will be interpreted as relative to the timezone configured in the host where the agent is running. If ingesting logs from a host on a different timezone, use this field to set the timezone offset so that datetimes are correctly parsed. Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00") from UCT. + - name: paths + type: text + title: Paths + multi: true + show_user: true + default: + - 'C:\Windows\System32\DHCP\DhcpSrvLog-*.log' + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - microsoft_dhcp + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/microsoft_dhcp/1.4.2/data_stream/log/sample_event.json b/packages/microsoft_dhcp/1.4.2/data_stream/log/sample_event.json new file mode 100755 index 0000000000..fc2dbc6524 --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/data_stream/log/sample_event.json @@ -0,0 +1,77 @@ +{ + "agent": { + "name": "docker-fleet-agent", + "id": "ca0beb8d-9522-4450-8af7-3cb7f3d8c478", + "type": "filebeat", + "ephemeral_id": "adc79855-a07e-4f88-b14d-79d03400f73d", + "version": "8.2.0" + }, + "log": { + "file": { + "path": "/tmp/service_logs/test-dhcpV6.log" + }, + "offset": 1619 + }, + "elastic_agent": { + "id": "ca0beb8d-9522-4450-8af7-3cb7f3d8c478", + "version": "8.2.0", + "snapshot": false + }, + "message": "DHCPV6 Request", + "microsoft": { + "dhcp": { + "duid": { + "length": "18", + "hex": "0004A34473BFC27FC55B25E86AF0E1761DAA" + } + } + }, + "tags": [ + "preserve_original_event", + "forwarded", + "microsoft_dhcp" + ], + "observer": { + "hostname": "docker-fleet-agent", + "ip": [ + "172.18.0.7" + ], + "mac": [ + "02-42-AC-12-00-07" + ] + }, + "input": { + "type": "log" + }, + "@timestamp": "2021-12-06T12:43:57.000-05:00", + "ecs": { + "version": "8.3.0" + }, + "data_stream": { + "namespace": "ep", + "type": "logs", + "dataset": "microsoft_dhcp.log" + }, + "host": { + "ip": "2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6", + "domain": "test-host" + }, + "event": { + "agent_id_status": "verified", + "ingested": "2022-05-09T14:40:22Z", + "original": "11002,12/06/21,12:43:57,DHCPV6 Request,2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6,test-host,,18,0004A34473BFC27FC55B25E86AF0E1761DAA,,,,,", + "code": "11002", + "timezone": "America/New_York", + "kind": "event", + "action": "dhcpv6-request", + "category": [ + "network" + ], + "type": [ + "connection", + "protocol" + ], + "dataset": "microsoft_dhcp.log", + "outcome": "success" + } +} \ No newline at end of file diff --git a/packages/microsoft_dhcp/1.4.2/docs/README.md b/packages/microsoft_dhcp/1.4.2/docs/README.md new file mode 100755 index 0000000000..4a669c1370 --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/docs/README.md @@ -0,0 +1,148 @@ +# Microsoft DHCP + +This integration collects logs and metrics from Microsoft DHCP logs. + +## Compatibility + +This integration has been made to support the DHCP log format from Windows Server 2008 and later. + +### Logs + +Ingest logs from Microsoft DHCP Server, by default logged with the filename format: +`%windir%\System32\DHCP\DhcpSrvLog-*.log` + +Logs may also be ingested from Microsoft DHCPv6 Server, by default logged with the filename format: +`%windir%\System32\DHCP\DhcpV6SrvLog-*.log` + +Relevant documentation for Microsoft DHCP can be found on [this]https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd183591(v=ws.10) location. + +An example event for `log` looks as following: + +```json +{ + "agent": { + "name": "docker-fleet-agent", + "id": "ca0beb8d-9522-4450-8af7-3cb7f3d8c478", + "type": "filebeat", + "ephemeral_id": "adc79855-a07e-4f88-b14d-79d03400f73d", + "version": "8.2.0" + }, + "log": { + "file": { + "path": "/tmp/service_logs/test-dhcpV6.log" + }, + "offset": 1619 + }, + "elastic_agent": { + "id": "ca0beb8d-9522-4450-8af7-3cb7f3d8c478", + "version": "8.2.0", + "snapshot": false + }, + "message": "DHCPV6 Request", + "microsoft": { + "dhcp": { + "duid": { + "length": "18", + "hex": "0004A34473BFC27FC55B25E86AF0E1761DAA" + } + } + }, + "tags": [ + "preserve_original_event", + "forwarded", + "microsoft_dhcp" + ], + "observer": { + "hostname": "docker-fleet-agent", + "ip": [ + "172.18.0.7" + ], + "mac": [ + "02-42-AC-12-00-07" + ] + }, + "input": { + "type": "log" + }, + "@timestamp": "2021-12-06T12:43:57.000-05:00", + "ecs": { + "version": "8.3.0" + }, + "data_stream": { + "namespace": "ep", + "type": "logs", + "dataset": "microsoft_dhcp.log" + }, + "host": { + "ip": "2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6", + "domain": "test-host" + }, + "event": { + "agent_id_status": "verified", + "ingested": "2022-05-09T14:40:22Z", + "original": "11002,12/06/21,12:43:57,DHCPV6 Request,2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6,test-host,,18,0004A34473BFC27FC55B25E86AF0E1761DAA,,,,,", + "code": "11002", + "timezone": "America/New_York", + "kind": "event", + "action": "dhcpv6-request", + "category": [ + "network" + ], + "type": [ + "connection", + "protocol" + ], + "dataset": "microsoft_dhcp.log", + "outcome": "success" + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.code | Identification code for this event, if one exists. Some event sources use event codes to identify messages unambiguously, regardless of message language or wording adjustments over time. An example of this is the Windows Event ID. | keyword | +| event.dataset | Event dataset | constant_keyword | +| event.ingested | Timestamp when an event arrived in the central data store. This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` \< `event.created` \< `event.ingested`. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.outcome | This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. | keyword | +| event.timezone | This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). | keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host MAC addresses. The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. | keyword | +| input.type | | keyword | +| log.file.path | Full path to the log file this event came from, including the file name. It should include the drive letter, when appropriate. If the event wasn't read from a log file, do not populate this field. | keyword | +| log.offset | | long | +| message | For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message. | match_only_text | +| microsoft.dhcp.correlation_id | The NAP correlation ID related to the client/server transaction. | keyword | +| microsoft.dhcp.dhc_id | The related DHCID (DHC DNS record). | keyword | +| microsoft.dhcp.dns_error_code | DNS error code communicated to client. | keyword | +| microsoft.dhcp.duid.hex | The related DHCP Unique Identifier (DUID) for the host (DHCPv6). | keyword | +| microsoft.dhcp.duid.length | The length of the DUID field. | keyword | +| microsoft.dhcp.error_code | DHCP server error code. | keyword | +| microsoft.dhcp.probation_time | The probation time before lease ends on specific IP. | keyword | +| microsoft.dhcp.relay_agent_info | Information about DHCP relay agent used for the DHCP request. | keyword | +| microsoft.dhcp.result | The DHCP result type, for example "NoQuarantine", "Drop Packet" etc. | keyword | +| microsoft.dhcp.subnet_prefix | The number of bits for the subnet prefix. | keyword | +| microsoft.dhcp.transaction_id | The DHCP transaction ID. | keyword | +| microsoft.dhcp.user.hex | Hex representation of the user. | keyword | +| microsoft.dhcp.user.string | String representation of the user. | keyword | +| microsoft.dhcp.vendor.hex | Hex representation of the vendor. | keyword | +| microsoft.dhcp.vendor.string | String representation of the vendor. | keyword | +| observer.hostname | Hostname of the observer. | keyword | +| observer.ip | IP addresses of the observer. | ip | +| observer.mac | MAC addresses of the observer. The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | diff --git a/packages/microsoft_dhcp/1.4.2/img/logo.svg b/packages/microsoft_dhcp/1.4.2/img/logo.svg new file mode 100755 index 0000000000..5334aa7ca6 --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/img/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/microsoft_dhcp/1.4.2/manifest.yml b/packages/microsoft_dhcp/1.4.2/manifest.yml new file mode 100755 index 0000000000..f06c54ee05 --- /dev/null +++ b/packages/microsoft_dhcp/1.4.2/manifest.yml @@ -0,0 +1,27 @@ +format_version: 1.0.0 +name: microsoft_dhcp +title: Microsoft DHCP +version: "1.4.2" +license: basic +description: Collect logs from Microsoft DHCP with Elastic Agent. +type: integration +categories: + - network +release: ga +conditions: + kibana.version: ^7.14.0 || ^8.0.0 +icons: + - src: /img/logo.svg + title: Microsoft logo + size: 32x32 + type: image/svg+xml +policy_templates: + - name: microsoft_dhcp + title: Microsoft DHCP + description: Collect Microsoft DHCP logs. + inputs: + - type: logfile + title: Logs from file + description: Collect DHCP logs from file. +owner: + github: elastic/security-external-integrations diff --git a/packages/microsoft_sqlserver/1.0.0/changelog.yml b/packages/microsoft_sqlserver/1.0.0/changelog.yml new file mode 100755 index 0000000000..7b5f5da77e --- /dev/null +++ b/packages/microsoft_sqlserver/1.0.0/changelog.yml @@ -0,0 +1,62 @@ +# newer versions go on top +- version: "1.0.0" + changes: + - description: Make GA + type: enhancement + link: https://github.com/elastic/integrations/pull/3428 +- version: "0.5.0" + changes: + - description: Update to ECS 8.2 + type: enhancement + link: https://github.com/elastic/integrations/pull/2780 +- version: "0.4.5" + changes: + - description: Update Readme. Added links to Microsoft documentation + type: enhancement + link: https://github.com/elastic/integrations/pull/3058 +- version: "0.4.4" + changes: + - description: Add documentation for multi-fields + type: enhancement + link: https://github.com/elastic/integrations/pull/2916 +- version: "0.4.3" + changes: + - description: Fix field conflict for `winlog.record_id` + type: bugfix + link: https://github.com/elastic/integrations/pull/2894 +- version: "0.4.2" + changes: + - description: Fix mapper_parsing_exception when parsing sqlserver.audit.event_time. + type: bugfix + link: https://github.com/elastic/integrations/pull/2813 +- version: "0.4.1" + changes: + - description: Change owner to SEI + type: bugfix + link: https://github.com/elastic/integrations/pull/2650 +- version: "0.4.0" + changes: + - description: Update to ECS 8.0 + type: enhancement + link: https://github.com/elastic/integrations/pull/2493 +- version: "0.3.0" + changes: + - description: Expose winlog input ignore_older option. + type: enhancement + link: https://github.com/elastic/integrations/pull/2542 + - description: Fix preserve original event option + type: bugfix + link: https://github.com/elastic/integrations/pull/2542 + - description: Make order of options consistent with other winlog based integrations. + type: enhancement + link: https://github.com/elastic/integrations/pull/2542 +- version: "0.2.0" + changes: + - description: Expose winlog input language option. + type: enhancement + link: https://github.com/elastic/integrations/pull/2344 +- version: "0.1.0" + changes: + - description: Initial draft of the package + type: enhancement + link: https://github.com/elastic/integrations/pull/2009 diff --git a/packages/microsoft_sqlserver/1.0.0/data_stream/audit/agent/stream/winlog.yml.hbs b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/agent/stream/winlog.yml.hbs new file mode 100755 index 0000000000..ed053196d1 --- /dev/null +++ b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/agent/stream/winlog.yml.hbs @@ -0,0 +1,22 @@ +name: {{channel}} +condition: ${host.platform} == 'windows' +event_id: {{event_id}} +{{#if ignore_older}} +ignore_older: {{ignore_older}} +{{/if}} +{{#if language}} +language: {{language}} +{{/if}} +{{#if tags.length}} +tags: +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if preserve_original_event}} +include_xml: true +{{/if}} +{{#if processors.length}} +processors: +{{processors}} +{{/if}} diff --git a/packages/microsoft_sqlserver/1.0.0/data_stream/audit/elasticsearch/ingest_pipeline/default.yml b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..1c21df6a8a --- /dev/null +++ b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,1280 @@ +--- +description: Pipeline for processing SQL Server audit logs +processors: +- set: + field: ecs.version + value: 8.2.0 +- gsub: + description: Strip final dot from param1. + field: winlog.event_data.param1 + pattern: '(?m)^\.$' + replacement: '' + if: ctx?.winlog?.event_id == "33205" +- dissect: + description: Extract statement + pattern: "%{}statement:%{_temp.stmt}\nadditional_information:%{}" + field: winlog.event_data.param1 +- gsub: + field: winlog.event_data.param1 + pattern: 'statement:(.*\s)*(?=additional_information:)' + replacement: '' +- kv: + field: winlog.event_data.param1 + field_split: \n + value_split: ':' + target_field: sqlserver.audit + trim_key: \n + trim_value: \n +- set: + field: sqlserver.audit.statement + copy_from: _temp.stmt +- set: + field: log.level + copy_from: winlog.log.level + ignore_empty_value: true + if: ctx?.winlog?.log?.level != "" +- date: + field: sqlserver.audit.event_time + formats: + - "yyyy-MM-dd HH:mm:ss.SSSSSSS" +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +## +# Event kind, code and action +## +- set: + field: event.kind + value: event +- append: + field: event.category + value: database +- trim: + field: sqlserver.audit.action_id + ignore_missing: true +- trim: + field: sqlserver.audit.class_type + ignore_missing: true +- uppercase: + field: sqlserver.audit.action_id + ignore_missing: true +- uppercase: + field: sqlserver.audit.class_type + ignore_missing: true +- script: + lang: painless + description: The script processor enables setting event type, action and category based on action_id and class_type fields. + params: + classtypes: + "DB": "DATABASE" + "OB": "OBJECT" + "TY": "TYPE" + "SC": "SCHEMA" + "SX": "XML SCHEMA COLLECTION" + "AS": "ASSEMBLY" + "US": "USER" + "RL": "ROLE" + "AR": "APPLICATION ROLE" + "MT": "MESSAGE TYPE" + "CT": "CONTRACT" + "SV": "SERVICE" + "BN": "REMOTE SERVICE BINDING" + "RT": "ROUTE" + "FC": "FULLTEXT CATALOG" + "FL": "FULLTEXT STOPLIST" + "FP": "SEARCH PROPERTY LIST" + "SK": "SYMMETRIC KEY" + "CR": "CERTIFICATE" + "AK": "ASYMMETRIC KEY" + "DC": "DATABASE SCOPED CREDENTIAL" + "EL": "EXTERNAL LIBRARY" + "LA": "EXTERNAL LANGUAGE" + "SR": "SERVER" + "EP": "ENDPOINT" + "SG": "SERVER ROLE" + "AG": "AVAILABILITY GROUP" + "LX": "LOGIN" + "CK": "COLUMN ENCRYPTION KEY" + "CM": "COLUMN MASTER KEY" + "DA": "DATABASE AUDIT SPECIFICATION" + "DU": "AUDIT" + "DS": "DATABASE SCOPED CONFIGURATION" + "DR": "DATABASE SCOPED RESOURCE GOVERNOR" + "DN": "EVENT NOTIFICATION DATABASE" + "DT": "TRIGGER DATABASE" + "MK": "MASTER KEY" + "DK": "DATABASE ENCRYPTION KEY" + "ON": "EVENT NOTIFICATION OBJECT" + "PF": "PARTITION FUNCTION" + "PR": "BROKER PRIORITY" + "PS": "PARTITION SCHEME" + "DE": "DATABASE EVENT SESSION" + "AQ": "ADHOC QUERY" + "AF": "AGGREGATE" + "AP": "Undocumented" + "C": "CHECK CONSTRAINT" + "D": "DEFAULT" + "EC": "EDGE CONSTRAINT" + "EN": "EVENT NOTIFICATION" + "F": "FOREIGN KEY CONSTRAINT" + "FS": "FUNCTION SCALAR ASSEMBLY" + "FT": "FUNCTION TABLE-VALUED ASSEMBLY" + "FN": "FUNCTION SCALAR SQL" + "IX": "INDEX" + "IF": "FUNCTION TABLE-VALUED INLINE SQL" + "IS": "FUNCTION SCALAR INLINE SQL" + "IT": "INTERNAL TABLE" + "PQ": "PREPARED ADHOC QUERY" + "PK": "PRIMARY KEY" + "P": "STORED PROCEDURE" + "PC": "STORED PROCEDURE ASSEMBLY" + "RF": "STORED PROCEDURE REPLICATION FILTER" + "R": "RULE" + "SP": "SECURITY POLICY" + "SO": "SEQUENCE OBJECT" + "ST": "STATISTICS" + "SQ": "QUEUE" + "SN": "SYNONYM" + "S": "TABLE SYSTEM" + "TF": "FUNCTION TABLE-VALUED SQL" + "TA": "TRIGGER ASSEMBLY" + "TR": "TRIGGER" + "UQ": "UNIQUE CONSTRAINT" + "U": "TABLE" + "V": "VIEW" + "X": "STORED PROCEDURE EXTENDED" + "XR": "XREL TREE" + "AU": "ASYMMETRIC KEY USER" + "CU": "CERTIFICATE USER" + "GU": "GROUP USER" + "SU": "SQL USER" + "WU": "WINDOWS USER" + "XU": "EXTERNAL USER" + "PU": "EXTERNAL GROUP USER" + "A": "SERVER AUDIT" + "CD": "CREDENTIAL" + "CP": "CRYPTOGRAPHIC PROVIDER" + "ED": "EXTERNAL DATA SOURCE" + "EF": "EXTERNAL FILE FORMAT" + "RG": "RESOURCE GOVERNOR" + "SA": "SERVER AUDIT SPECIFICATION" + "SD": "EVENT NOTIFICATION SERVER" + "T": "TRIGGER SERVER" + "SE": "EVENT SESSION" + "CO": "SERVER CONFIG" + "AL": "ASYMMETRIC KEY LOGIN" + "CL": "CERTIFICATE LOGIN" + "SL": "SQL LOGIN" + "WG": "WINDOWS GROUP" + "WL": "WINDOWS LOGIN" + "ER": "EXTERNAL RESOURCE POOL" + "EX": "EXTERNAL SCRIPT QUERY" + "PL": "EXTERNAL GROUP LOGIN" + "XL": "EXTERNAL LOGIN" + actions: + "ACDO": + value: "DATABASE_OBJECT_ACCESS_GROUP" + type: + - access + action: database-object-accessed + "ACO": + value: "SCHEMA_OBJECT_ACCESS_GROUP" + type: + - access + action: schema-object-permission-checked + "ADBO": + value: "BULK ADMIN" + type: + - change + action: bulk-admin-operation + "ADDP": + value: "DATABASE_ROLE_MEMBER_CHANGE_GROUP" + type: + - admin + - change + - user + category: + - iam + action: login-changed-from-database-role + "ADFR": + # SQL 2019 feature to tackle dynamic SQL + # and SQL injection threats. By restricting + # ErrorMessages and WaitFor statement. + value: "ADD FEATURE RESTRICTION" + type: + - info + action: add-feature-restriction + "ADSC": + value: "ADD SENSITIVITY CLASSIFICATION" + type: + - change + action: add-sensitivity-classification-to-db-columns + "ADSP": + value: "SERVER_ROLE_MEMBER_CHANGE_GROUP" + type: + - admin + - change + - user + category: + - iam + action: login-changed-from-server-role + "AL": + value: "ALTER" + type: + - change + action: alter-object + "ALCN": + value: "ALTER CONNECTION" + type: + - change + - connection + category: + - network + action: alter-connection + "ALRS": + value: "ALTER RESOURCES" + type: + - change + action: alter-resources + "ALSS": + value: "ALTER SERVER STATE" + type: + - change + action: alter-server-state + "ALST": + value: "ALTER SETTINGS" + type: + - change + category: + - configuration + action: alter-settings + "ALTR": + value: "ALTER TRACE" + type: + - change + action: alter-trace + "APRL": + value: "ADD MEMBER" + type: + - change + action: add-member + "AS": + value: "ACCESS" + type: + - access + action: access-object + "AUSC": + # To troubleshoot what goes on after this event + # configure login auditing + # https://docs.microsoft.com/en-us/sql/ssms/configure-login-auditing-sql-server-management-studio + value: "AUDIT SESSION CHANGED" + type: + - change + action: audit-session-changed + "AUSF": + # https://docs.microsoft.com/en-us/sql/t-sql/statements/create-server-audit-transact-sql + # See ON_FAILURE + value: "AUDIT SHUTDOWN ON FAILURE" + type: + - error + action: audit-write-failed-database-shutdown + "AUTH": + # Changing authentication mode for login + value: "AUTHENTICATE" + type: + - info + action: authenticate + "BA": + # https://docs.microsoft.com/en-us/sql/t-sql/statements/backup-transact-sql + value: "BACKUP" + type: + - info + action: database-backup-executed + "BAL": + # https://docs.microsoft.com/en-us/sql/t-sql/statements/backup-transact-sql + value: "BACKUP LOG" + type: + - info + action: transaction-log-backup-executed + "BCM": + value: "BATCH COMPLETED" + type: + - info + action: transact-sql-batch-completed + "BCMG": + value: "BATCH_COMPLETED_GROUP" + type: + - info + action: batch-text-stored-proc-or-txn-mgmt-op-ended + "BRDB": + value: "BACKUP_RESTORE_GROUP" + type: + - admin + action: backup-or-restore-command-issued + "BST": + value: "BATCH STARTED" + type: + - info + action: transact-sql-batch-started + "BSTG": + value: "BATCH_STARTED_GROUP" + type: + - info + action: batch-text-stored-proc-txn-mgmt-op-started + "C2OF": + # https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/c2-audit-mode-server-configuration-option + value: "TRACE AUDIT C2OFF" + type: + - change + action: c2-audit-mode-server-config-off + "C2ON": + value: "TRACE AUDIT C2ON" + type: + - info + action: c2-audit-mode-server-config-on + "CCLG": + value: "CHANGE LOGIN CREDENTIAL" + type: + - change + action: change-login-credential + "CMLG": + value: "CREDENTIAL MAP TO LOGIN" + type: + - change + action: credential-mapped-to-sql-server-login + "CNAU": + value: "AUDIT_CHANGE_GROUP" + type: + - change + action: audit-or-audit-spec-changed + "CO": + # nodoc or TSQL + value: "CONNECT" + type: + - info + action: connect + "CP": + value: "CHECKPOINT" + type: + - info + action: checkpoint-created + "CR": + value: "CREATE" + type: + - info + action: create + "DABO": + # bulk ops like bulk insert, copy, load + # and so on. + value: "DATABASE BULK ADMIN" + type: + - change + action: database-bulk-admin + "DAGF": + # principal login to contained database failed. + # https://docs.microsoft.com/en-us/sql/relational-databases/security/contained-database-users-making-your-database-portable + value: "FAILED_DATABASE_AUTHENTICATION_GROUP" + type: + - error + action: principal-login-failed + "DAGL": + value: "DATABASE_LOGOUT_GROUP" + type: + - info + - end + category: + - session + action: contained-database-user-logout + "DAGS": + value: "SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP" + type: + - info + - start + category: + - session + action: principal-login-to-contained-database-successful + "DBAF": + # nodoc + value: "DATABASE AUTHENTICATION FAILED" + type: + - error + action: database-authentication-failed + "DBAS": + value: "DATABASE AUTHENTICATION SUCCEEDED" + type: + - access + - info + action: database-authentication-succeeded + "DBCC": + # https://docs.microsoft.com/en-us/sql/t-sql/database-console-commands/dbcc-transact-sql + value: "DBCC" + type: + - change + category: + - configuration + action: principal-issued-dbcc-command + "DBCG": + value: "DBCC_GROUP" + type: + - change + category: + - configuration + action: principal-issued-dbcc-command + "DBL": + # nodoc + value: "DATABASE LOGOUT" + type: + - end + category: + - session + action: database-logout + "D": + # TSQL + value: "DENY" + type: + - info + action: permission-denied-to-principal + "DL": + # nodoc + # TSQL DELETE + value: "DELETE" + type: + - change + action: delete + "DPRL": + # ? https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-droprolemember-transact-sql + value: "DROP MEMBER" + type: + - info + action: drop-security-account-from-role + "DR": + value: "DROP" + type: + - change + action: drop-object + "DRFR": + # SQL 2019 feature to tackle dynamic SQL + # and SQL injection threats. By restricting + # ErrorMessages and WaitFor statement. + value: "DROP FEATURE RESTRICTION" + type: + - change + action: drop-feature-restriction + "DRSC": + value: "DROP SENSITIVITY CLASSIFICATION" + type: + - change + action: drop-sensitivity-classification-from-db-columns + "DWC": + # TSQL + value: "DENY WITH CASCADE" + type: + - change + action: permission-denied-with-cascade + "EX": + value: "EXECUTE" + type: + - info + action: execute-stored-proc-or-function + "FRCG": + # nodoc + # 2019 feature see ADFR and DRFR + value: "FEATURE_RESTRICTION_CHANGE_GROUP" + type: + - change + action: feature-restriction-changed + "FT": + # nodoc + # using FTG + value: "FULLTEXT" + type: + - info + action: fulltext-event-occurred + "FTG": + value: "FULLTEXT_GROUP" + type: + - info + action: fulltext-event-occurred + "G": + # TSQL + value: "GRANT" + type: + - info + action: grant-permission-to-principal + "GRDB": + value: "DATABASE_PERMISSION_CHANGE_GROUP" + type: + - change + action: grant-revoke-or-deny-permission + "GRDO": + value: "DATABASE_OBJECT_PERMISSION_CHANGE_GROUP" + type: + - change + action: grant-revoke-or-deny-permission-on-schema-or-assemblies + "GRO": + # schema objects like database tables, views etc. + value: "SCHEMA_OBJECT_PERMISSION_CHANGE_GROUP" + type: + - change + action: grant-revoke-or-deny-permission-on-schema-objects + "GRSO": + value: "SERVER_OBJECT_PERMISSION_CHANGE_GROUP" + type: + - change + action: grant-revoke-or-deny-permission-on-server-objects + "GRSV": + value: "SERVER_PERMISSION_CHANGE_GROUP" + type: + - change + action: grant-revoke-or-deny-permission-issued-in-server-scope + "GWG": + # TSQL + value: "GRANT WITH GRANT" + type: + - info + action: grant-with-grant-issued-to-principal + "IMDP": + value: "DATABASE_PRINCIPAL_IMPERSONATION_GROUP" + type: + - info + action: database-user-impersonation-occurred + "IMP": + # nodoc + # using IMDP + value: "IMPERSONATE" + type: + - info + action: database-user-impersonation-occurred + "IMSP": + value: "SERVER_PRINCIPAL_IMPERSONATION_GROUP" + type: + - user + action: server-login-impersonation-occurred + "IN": + value: "INSERT" + type: + - info + action: insert + "LGB": + # nodoc + # using LGBG + value: "BROKER LOGIN" + type: + - info + action: service-broker-transport-security-event + "LGBG": + value: "BROKER_LOGIN_GROUP" + type: + - info + action: service-broker-transport-security-event + "LGDA": + # Can be disable trigger or indexes and constraints + value: "DISABLE" + type: + - change + action: disable + "LGDB": + value: "CHANGE DEFAULT DATABASE" + type: + - change + action: change-default-database + "LGEA": + value: "ENABLE" + type: + - info + action: enable + "LGFL": + value: "FAILED_LOGIN_GROUP" + type: + - error + category: + - authentication + action: principal-login-failed + "LGGG": + # nodoc + value: "GLOBAL_TRANSACTIONS_LOGIN_GROUP" + type: + - info + action: global-transactions-login + "LGG": + # nodoc + # https://www.manageengine.com/products/eventlog/sql-auditing/global-transaction-login-in-sql-server-24337.html + value: "GLOBAL TRANSACTIONS LOGIN" + type: + - info + action: global-transactions-login + "LGIF": + value: "LOGIN FAILED" + type: + - error + category: + - authentication + action: login-failed + "LGIS": + value: "LOGIN SUCCEEDED" + type: + - info + - start + category: + - session + action: login-succeeded + "LGLG": + value: "CHANGE DEFAULT LANGUAGE" + type: + - change + action: change-default-language + "LGM": + # using LGMG + value: "DATABASE MIRRORING LOGIN" + type: + - info + action: database-mirroring-transport-security-event + "LGMG": + value: "DATABASE_MIRRORING_LOGIN_GROUP" + type: + - info + action: database-mirroring-transport-security-event + "LGNM": + value: "NAME CHANGE" + type: + - change + action: name-change + "LGO": + value: "LOGOUT" + type: + - end + category: + - session + action: logout + "LGSD": + value: "SUCCESSFUL_LOGIN_GROUP" + type: + - info + - start + category: + - session + action: user-login-succeeded + "LGSG": + # nodoc + value: "STORAGE_LOGIN_GROUP" + type: + - info + action: storage-login + "LGS": + # nodoc + value: "STORAGE LOGIN" + type: + - info + action: storage-login + "LO": + value: "LOGOUT_GROUP" + type: + - info + - end + category: + - session + action: user-logout-succeeded + "MNDB": + value: "DATABASE_CHANGE_GROUP" + type: + - change + action: database-created-altered-or-dropped + "MNDO": + value: "DATABASE_OBJECT_CHANGE_GROUP" + type: + - change + action: database-object-created-altered-or-dropped + "MNDP": + value: "DATABASE_PRINCIPAL_CHANGE_GROUP" + type: + - change + action: principals-created-altered-or-dropped + "MNO": + value: "SCHEMA_OBJECT_CHANGE_GROUP" + type: + - change + action: schema-object-create-alter-or-dropped + "MNSO": + # server objects like databases or endpoints + value: "SERVER_OBJECT_CHANGE_GROUP" + type: + - change + action: server-object-create-alter-or-dropped + "MNSP": + value: "SERVER_PRINCIPAL_CHANGE_GROUP" + type: + - change + action: server-principal-create-alter-or-dropped + "NMLG": + # no credential map to login probably unable to execute + # external operation + # https://docs.microsoft.com/en-us/sql/relational-databases/security/authentication-access/create-a-credential + value: "NO CREDENTIAL MAP TO LOGIN" + type: + - error + action: no-credential-map-to-login + "OPDB": + value: "DATABASE_OPERATION_GROUP" + type: + - info + action: db-checkpoint-or-subscribe-query-notification-executed + "OP": + # open cursor + value: "OPEN" + type: + - access + action: open + "OPSV": + value: "SERVER_OPERATION_GROUP" + type: + - change + action: alter-settings-resources-or-external-access + "PWAR": + value: "APPLICATION_ROLE_CHANGE_PASSWORD_GROUP" + type: + - change + action: password-changed-for-application-role + "PWC": + # nodoc + # using PWAR + value: "CHANGE PASSWORD" + type: + - change + action: password-changed-for-application-role + "PWCG": + value: "LOGIN_CHANGE_PASSWORD_GROUP" + type: + - change + action: login-password-changed-via-alter-or-sp-password + "PWCS": + # nodoc + value: "CHANGE OWN PASSWORD" + type: + - change + action: change-own-password + "PWEX": + # nodoc + value: "PASSWORD EXPIRATION" + type: + - info + action: password-expired + "PWMC": + # nodoc + value: "MUST CHANGE PASSWORD" + type: + - info + action: must-change-password + "PWPL": + # nodoc + value: "PASSWORD POLICY" + type: + - info + action: password-policy + "PWR": + # nodoc + value: "RESET PASSWORD" + type: + - change + action: reset-password + "PWRS": + # nodoc + value: "RESET OWN PASSWORD" + type: + - change + action: reset-own-password + "PWU": + # TSQL ALTER LOGIN UNLOCK + value: "UNLOCK ACCOUNT" + type: + - change + action: unlock-sql-server-login-account + "RCM": + value: "RPC COMPLETED" + type: + - end + category: + - network + action: rpc-completed + "RC": + value: "RECEIVE" + type: + - access + action: retrieve-message-from-queue + "RF": + value: "REFERENCES" + type: + - info + action: references + "R": + value: "REVOKE" + type: + - change + action: remove-granted-or-denied-permission + "RS": + value: "RESTORE" + type: + - change + action: restore-database-backup + "RST": + value: "RPC STARTED" + type: + - start + category: + - network + action: rpc-started + "RWC": + value: "REVOKE WITH CASCADE" + type: + - change + action: revoke-granted-or-denied-permission-with-cascade + "RWG": + value: "REVOKE WITH GRANT" + type: + - change + action: revoke-with-grant + "SCCG": + # sensitivity classification for columns + # https://docs.microsoft.com/en-us/sql/t-sql/statements/add-sensitivity-classification-transact-sql + value: "SENSITIVITY_CLASSIFICATION_CHANGE_GROUP" + type: + - change + action: sensitivity-classification-changed + "SL": + value: "SELECT" + type: + - access + action: select + "SN": + value: "SEND" + type: + - access + action: send-message-to-queue + "SPLN": + # https://docs.microsoft.com/en-us/sql/t-sql/statements/set-showplan-all-transact-sql + value: "SHOW PLAN" + type: + - info + action: show-plan + "STSV": + value: "SERVER_STATE_CHANGE_GROUP" + type: + - info + action: server-service-state-changed + "SUQN": + value: "SUBSCRIBE QUERY NOTIFICATION" + type: + - info + action: subscribe-query-notification + "SVCN": + value: "SERVER CONTINUE" + type: + - change + action: server-service-state-changed-to-continue + "SVPD": + value: "SERVER PAUSED" + type: + - change + action: server-service-state-changed-to-paused + "SVSD": + value: "SERVER SHUTDOWN" + type: + - change + action: server-service-state-changed-to-shutdown + "SVSR": + value: "SERVER STARTED" + type: + - change + action: server-service-state-changed-to-start + "TASA": + # nodoc + value: "TRACE AUDIT START" + type: + - info + action: trace-audit-start + "TASP": + # nodoc + value: "TRACE AUDIT STOP" + type: + - info + action: trace-audit-stop + "TODB": + value: "DATABASE_OWNERSHIP_CHANGE_GROUP" + type: + - change + action: permission-check-performed-to-change-database-owner + "TODO": + value: "DATABASE_OBJECT_OWNERSHIP_CHANGE_GROUP" + type: + - change + action: database-object-owner-changed + "TOO": + value: "SCHEMA_OBJECT_OWNERSHIP_CHANGE_GROUP" + type: + - info + action: permission-check-performed-to-change-schema-object + "TOSO": + value: "SERVER_OBJECT_OWNERSHIP_CHANGE_GROUP" + type: + - change + action: server-scoped-object-owner-changed + "TO": + # nodoc + value: "TAKE OWNERSHIP" + type: + - info + action: take-ownership + "TRBC": + value: "TRANSACTION BEGIN COMPLETED" + type: + - info + action: transaction-begin-completed + "TRBS": + value: "TRANSACTION BEGIN STARTING" + type: + - info + action: transaction-begin-starting + "TRCC": + value: "TRANSACTION COMMIT COMPLETED" + type: + - info + action: transaction-commit-completed + "TRCG": + value: "TRACE_CHANGE_GROUP" + type: + - info + action: permission-checked-for-alter-trace + "TRCS": + value: "TRANSACTION COMMIT STARTING" + type: + - info + action: transaction-commit-starting + "TRGC": + value: "TRANSACTION PROPAGATE COMPLETED" + type: + - info + action: transaction-propogation-completed + "TRGS": + value: "TRANSACTION PROPAGATE STARTING" + type: + - info + action: transaction-propogation-starting + "TRO": + value: "TRANSFER" + type: + - info + action: data-transfer + "TRPC": + # https://docs.microsoft.com/en-us/sql/relational-databases/clr-integration-data-access-transactions/transaction-promotion + value: "TRANSACTION PROMOTE COMPLETED" + type: + - info + action: local-to-distributed-transaction-promote-completed + "TRPS": + # https://docs.microsoft.com/en-us/sql/relational-databases/clr-integration-data-access-transactions/transaction-promotion + value: "TRANSACTION PROMOTE STARTING" + type: + - info + action: local-to-distributed-transaction-promote-starting + "TRRC": + value: "TRANSACTION ROLLBACK COMPLETED" + type: + - info + action: transaction-rollback-completed + "TRRS": + value: "TRANSACTION ROLLBACK STARTING" + type: + - info + action: transaction-rollback-starting + "TRSC": + value: "TRANSACTION SAVEPOINT COMPLETED" + type: + - info + action: transaction-savepoint-completed + "TRSS": + value: "TRANSACTION SAVEPOINT STARTING" + type: + - info + action: transaction-savepoint-starting + "TXBG": + value: "TRANSACTION BEGIN" + type: + - info + action: transaction-begin + "TXCG": + value: "TRANSACTION_COMMIT_GROUP" + type: + - info + action: transaction-commit-group-event + "TXCM": + value: "TRANSACTION COMMIT" + type: + - info + action: transaction-commit + "TXGG": + value: "TRANSACTION_BEGIN_GROUP" + type: + - info + action: transaction-begin-group-event + "TXRB": + value: "TRANSACTION ROLLBACK" + type: + - info + action: transaction-rollback + "TXRG": + value: "TRANSACTION_ROLLBACK_GROUP" + type: + - info + action: transaction-rollback-group + "TX": + value: "TRANSACTION_GROUP" + type: + - info + action: transaction-event-occurred + "UCGP": + value: "USER_CHANGE_PASSWORD_GROUP" + type: + - change + action: password-of-contained-database-user-changed + "UDAG": + value: "USER_DEFINED_AUDIT_GROUP" + type: + - info + action: user-defined-audit-event-sp-audit-write + "UDAU": + value: "USER DEFINED AUDIT" + type: + - info + action: user-defined-audit-event-sp-audit-write + "UNDG": + value: "STATEMENT_ROLLBACK_GROUP" + type: + - info + action: statement-rollback-group + "UNDO": + value: "STATEMENT ROLLBACK" + type: + - info + action: statement-rollback + "UP": + value: "UPDATE" + type: + - change + action: update + "USAF": + value: "CHANGE USERS LOGIN AUTO" + type: + - change + action: change-users-login-auto + "USLG": + value: "CHANGE USERS LOGIN" + type: + - change + action: change-users-login + "USTC": + # https://docs.microsoft.com/en-us/troubleshoot/sql/security/transfer-logins-passwords-between-instances + value: "COPY PASSWORD" + type: + - info + action: password-copied + "VDST": + value: "VIEW DATABASE STATE" + type: + - info + action: view-database-state + "VSST": + value: "VIEW SERVER STATE" + type: + - info + action: view-server-state + "VWCT": + value: "VIEW CHANGETRACKING" + type: + - info + action: view-change-tracking + "VW": + value: "VIEW" + type: + - info + action: view + "XA": + # see EXTERNAL_ACCESS + # https://docs.microsoft.com/en-us/sql/relational-databases/clr-integration/assemblies/creating-an-assembly + value: "EXTERNAL ACCESS ASSEMBLY" + type: + - access + category: + - network + - registry + action: external-access-assembly + "XU": + # see UNSAFE + # https://docs.microsoft.com/en-us/sql/relational-databases/clr-integration/assemblies/creating-an-assembly + value: "UNSAFE ASSEMBLY" + type: + - access + action: unsafe-assembly + source: |- + def actionIdKey = ctx.sqlserver.audit.action_id; + def actions = params.get('actions'); + def classTypes = params.get('classtypes'); + // handle class type + // overwrite the abbreviated key with its value + def ct = classTypes.get(ctx.sqlserver.audit.class_type); + if (ct != null) { + ctx.sqlserver.audit.class_type = ct; + } + // error case - for unhandled action ids + def actionData = actions.get(actionIdKey); + if (actionData == null) { + ctx.event.action = 'unknown-' + actionIdKey.toLowerCase(); + ctx.event.type = ['info']; + return; + } + // overwrite the action id with its actual value + ctx.sqlserver.audit.action_id = actionData.get('value'); + // event.type + def actionType = actionData.get('type'); + if (actionType != null) { + ctx.event.type = new ArrayList(actionType); + } + // event.category + def actionCategory = actionData.get('category'); + if (actionCategory != null) { + for (def c : actionCategory) { + ctx.event.category.add(c); + } + } + // event.action + def action = actionData.get('action'); + if (action != null) { + ctx.event.action = action; + } +- convert: + field: sqlserver.audit.sequence_number + type: integer + ignore_missing: true +- convert: + field: sqlserver.audit.succeeded + type: boolean + ignore_missing: true +- convert: + field: sqlserver.audit.affected_rows + type: long + ignore_missing: true +- convert: + field: sqlserver.audit.response_rows + type: long + ignore_missing: true +- convert: + field: sqlserver.audit.is_column_permission + type: boolean + ignore_missing: true +- script: + lang: painless + description: Convert ms to ns and set it to event.duration + source: |- + def v = ctx?.sqlserver?.audit?.duration_milliseconds; + if (v != null) { + ctx.event.duration = Long.parseLong(v) * 1000000; + } +- rename: + field: winlog.process + target_field: process + ignore_missing: true +## +# Set user.name, user.domain and user.id values from +# SPN +## +- dissect: + description: Extract user domain and name + pattern: "%{_temp.domain}\\%{_temp.username}" + field: sqlserver.audit.server_principal_name + if: 'ctx?.sqlserver?.audit?.server_principal_name != null && ctx?.sqlserver?.audit?.server_principal_name.contains("\\")' + ignore_missing: true +- set: + description: Set username as is if domain is not present + field: user.name + copy_from: sqlserver.audit.server_principal_name + if: 'ctx?.sqlserver?.audit?.server_principal_name != null && !ctx?.sqlserver?.audit?.server_principal_name.contains("\\")' +- set: + description: Set username if it was extracted from Domain\User format + field: user.name + copy_from: _temp.username + if: "ctx?._temp?.username != null" +- set: + description: Set domain if it was extracted from Domain\User format + field: user.domain + copy_from: _temp.domain + if: "ctx?._temp?.domain != null" +- set: + field: user.id + copy_from: sqlserver.audit.server_principal_sid +- set: + field: user.target.name + copy_from: sqlserver.audit.target_server_principal_name +- set: + field: user.target.id + copy_from: sqlserver.audit.target_server_principal_sid + +- convert: + field: winlog.record_id + type: string + ignore_missing: true +## +# Clean up +## +- remove: + field: + - _temp + - winlog.event_data.param1 + - sqlserver.audit.event_time + - sqlserver.audit.additional_information + - sqlserver.audit.duration_milliseconds + - sqlserver.audit.server_principal_name + - sqlserver.audit.server_principal_sid + - sqlserver.audit.target_server_principal_name + - sqlserver.audit.target_server_principal_sid + ignore_missing: true +- script: + lang: painless + description: This script processor iterates over the whole document to remove fields with null values. + source: | + void handleMap(Map map) { + for (def x : map.values()) { + if (x instanceof Map) { + handleMap(x); + } else if (x instanceof List) { + handleList(x); + } + } + map.values().removeIf(v -> v == null || v == '' || (v instanceof Map && v.size() == 0) || (v instanceof List && v.size() == 0)); + } + void handleList(List list) { + for (def x : list) { + if (x instanceof Map) { + handleMap(x); + } else if (x instanceof List) { + handleList(x); + } + } + list.removeIf(v -> v == null || v == '' || (v instanceof Map && v.size() == 0) || (v instanceof List && v.size() == 0)); + } + handleMap(ctx); +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/base-fields.yml b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/base-fields.yml new file mode 100755 index 0000000000..7c798f4534 --- /dev/null +++ b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/base-fields.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. diff --git a/packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/ecs.yml b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/ecs.yml new file mode 100755 index 0000000000..523f9134da --- /dev/null +++ b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/ecs.yml @@ -0,0 +1,205 @@ +- description: |- + Name of the directory the user is a member of. + For example, an LDAP or Active Directory domain name. + name: destination.user.domain + type: keyword +- description: Unique identifier of the user. + name: destination.user.id + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: destination.user.name + type: keyword +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Identification code for this event, if one exists. + Some event sources use event codes to identify messages unambiguously, regardless of message language or wording adjustments over time. An example of this is the Windows Event ID. + name: event.code + type: keyword +- description: |- + event.created contains the date/time when the event was first read by an agent, or by your pipeline. + This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. + In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. + In case the two timestamps are identical, @timestamp should be used. + name: event.created + type: date +- description: |- + Timestamp when an event arrived in the central data store. + This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. + In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` < `event.created` < `event.ingested`. + name: event.ingested + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. + `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. + Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. + Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. + Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. + name: event.outcome + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + Source of the event. + Event transports such as Syslog or the Windows Event Log typically mention the source of an event. It can be the name of the software that generated the event (e.g. Sysmon, httpd), or of a subsystem of the operating system (kernel, Microsoft-Windows-Security-Auditing). + name: event.provider + type: keyword +- description: |- + Sequence number of the event. + The sequence number is a value published by some event sources, to make the exact ordering of events unambiguous, regardless of the timestamp precision. + name: event.sequence + type: long +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: Directory where the file is located. It should include the drive letter, when appropriate. + name: file.directory + type: keyword +- description: |- + File extension, excluding the leading dot. + Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). + name: file.extension + type: keyword +- description: Name of the file including the extension, without the directory. + name: file.name + type: keyword +- description: Full path to the file, including the file name. It should include the drive letter, when appropriate. + multi_fields: + - name: text + type: match_only_text + name: file.path + type: keyword +- description: |- + Name of the host. + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. + name: host.name + type: keyword +- description: |- + Original log level of the log event. + If the source of the event provides a log level or textual severity, this is the one that goes in `log.level`. If your source doesn't specify one, you may put your event transport's severity here (e.g. Syslog severity). + Some examples are `warn`, `err`, `i`, `informational`. + name: log.level + type: keyword +- description: |- + Array of process arguments, starting with the absolute path to the executable. + May be filtered to protect sensitive information. + name: process.args + type: keyword +- description: |- + Length of the process.args array. + This field can be useful for querying or performing bucket analysis on how many arguments were provided to start a process. More arguments may be an indication of suspicious activity. + name: process.args_count + type: long +- description: |- + Full command line that started the process, including the absolute path to the executable, and all arguments. + Some arguments may be filtered to protect sensitive information. + multi_fields: + - name: text + type: match_only_text + name: process.command_line + type: wildcard +- description: |- + Unique identifier for the process. + The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. + Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. + name: process.entity_id + type: keyword +- description: Absolute path to the process executable. + multi_fields: + - name: text + type: match_only_text + name: process.executable + type: keyword +- description: |- + Process name. + Sometimes called program name or similar. + multi_fields: + - name: text + type: match_only_text + name: process.name + type: keyword +- description: Process id. + name: process.pid + type: long +- description: |- + Process title. + The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. + multi_fields: + - name: text + type: match_only_text + name: process.title + type: keyword +- description: Thread ID. + name: process.thread.id + type: long +- description: All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). + name: related.hash + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: |- + Name of the directory the user is a member of. + For example, an LDAP or Active Directory domain name. + name: user.domain + type: keyword +- description: Unique identifier of the user. + name: user.id + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.target.name + type: keyword +- description: Unique identifier of the user. + name: user.target.id + type: keyword diff --git a/packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/fields.yml b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/fields.yml new file mode 100755 index 0000000000..7985824ba4 --- /dev/null +++ b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/fields.yml @@ -0,0 +1,139 @@ +- name: sqlserver + type: group + description: All fields specific to SQL Server events + fields: + - name: audit + type: group + description: All fields specific to SQL Server audit events. + fields: + - name: audit_schema_version + type: keyword + description: Audit event schema version. + - name: event_time + type: date + description: Date/time when the auditable action is fired. + - name: sequence_number + type: integer + description: > + Tracks the sequence of records within a single audit record that was too large to fit in the write buffer for audits. + + - name: action_id + type: keyword + description: ID of the action + - name: succeeded + type: boolean + description: > + Indicates whether or not the permission check of the action triggering the audit event succeeded or failed. + + - name: permission_bitmask + type: keyword + description: > + When applicable shows the permissions that were granted, denied or revoked. + + - name: is_column_permission + type: boolean + description: Flag indicating a column level permission + - name: session_id + type: integer + description: ID of the session on which the event occurred. + - name: server_principal_id + type: keyword + description: ID of the login context that the action is performed in. + - name: database_principal_id + type: keyword + description: ID of the database user context that the action is performed in. + - name: object_id + type: keyword + description: > + "The primary ID of the entity on which the audit occurred. This ID can be one of server objects, databases, database objects or schema objects." + + - name: target_server_principal_id + type: keyword + description: Server principal that the auditable action applies to. + - name: target_database_principal_id + type: keyword + description: Database principal that the auditable action applies to. + - name: class_type + type: keyword + description: Type of auditable entity that the audit occurs on. + - name: session_server_principal_name + type: keyword + description: Server principal for the session. + - name: server_principal_name + type: keyword + description: Current login. + - name: server_principal_sid + type: keyword + description: Current login SID. + - name: database_principal_name + type: keyword + description: Current user. + - name: target_server_principal_name + type: keyword + description: Target login of the action. + - name: target_server_principal_sid + type: keyword + description: SID of the target login. + - name: target_database_principal_name + type: keyword + description: Target user of the action. + - name: server_instance_name + type: keyword + description: > + "Name of the server instance where the audit occurred. Uses the standard machine\\instance format." + + - name: database_name + type: keyword + description: The database context in which the action occurred. + - name: schema_name + type: keyword + description: The schema context in which the action occurred. + - name: object_name + type: keyword + description: > + "The name of the entity on which the audit occurred. This can be server objects, databases, database objects, schema objects or TSQL statement (if any)." + + - name: statement + type: text + description: "TSQL statement (if any)" + - name: additional_information + type: text + description: Any additional information about the event stored as XML. + - name: affected_rows + type: long + description: Number of rows affected by the operation. + - name: application_name + type: keyword + description: Name of the application that caused the audit event. + - name: client_ip + type: keyword + description: > + "Name or IP address of the machine running the application that caused the audit event." + + - name: connection_id + type: keyword + description: Connection ID (unique UUID for the connection) + - name: data_sensitivity_information + type: keyword + description: Sensitivity information about the operation. + - name: duration_milliseconds + type: long + description: Duration of the operation in milliseconds. + - name: host_name + type: keyword + description: SQL Server host name. + - name: response_rows + type: long + description: Number of rows returned. + - name: sequence_group_id + type: keyword + description: Sequence group ID (unique UUID). + - name: transaction_id + type: keyword + description: Transaction ID + - name: user_defined_event_id + type: integer + description: User defined event ID. + - name: user_defined_information + type: text + description: User defined information diff --git a/packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/winlog.yml b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/winlog.yml new file mode 100755 index 0000000000..075d40345d --- /dev/null +++ b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/fields/winlog.yml @@ -0,0 +1,155 @@ +- name: winlog + type: group + description: > + All fields specific to the Windows Event Log are defined here. + + fields: + - name: api + required: true + type: keyword + description: > + The event log API type used to read the record. The possible values are "wineventlog" for the Windows Event Log API or "eventlogging" for the Event Logging API. + + The Event Logging API was designed for Windows Server 2003 or Windows 2000 operating systems. In Windows Vista, the event logging infrastructure was redesigned. On Windows Vista or later operating systems, the Windows Event Log API is used. Winlogbeat automatically detects which API to use for reading event logs. + + - name: activity_id + type: keyword + required: false + description: > + A globally unique identifier that identifies the current activity. The events that are published with this identifier are part of the same activity. + + - name: computer_name + type: keyword + required: true + description: > + The name of the computer that generated the record. When using Windows event forwarding, this name can differ from `agent.hostname`. + + - name: event_data + type: object + object_type: keyword + required: false + description: > + The event-specific data. This field is mutually exclusive with `user_data`. If you are capturing event data on versions prior to Windows Vista, the parameters in `event_data` are named `param1`, `param2`, and so on, because event log parameters are unnamed in earlier versions of Windows. + + - name: event_data + type: group + description: > + This is a non-exhaustive list of parameters that are used in Windows events. By having these fields defined in the template they can be used in dashboards and machine-learning jobs. + + fields: + - name: param1 + type: keyword + - name: param2 + type: keyword + - name: param3 + type: keyword + - name: param4 + type: keyword + - name: param5 + type: keyword + - name: param6 + type: keyword + - name: param7 + type: keyword + - name: param8 + type: keyword + - name: event_id + type: keyword + required: true + description: > + The event identifier. The value is specific to the source of the event. + + - name: keywords + type: keyword + required: false + description: > + The keywords are used to classify an event. + + - name: channel + type: keyword + required: true + description: > + The name of the channel from which this record was read. This value is one of the names from the `event_logs` collection in the configuration. + + - name: record_id + type: keyword + required: true + description: > + The record ID of the event log record. The first record written to an event log is record number 1, and other records are numbered sequentially. If the record number reaches the maximum value (2^32^ for the Event Logging API and 2^64^ for the Windows Event Log API), the next record number will be 0. + + - name: related_activity_id + type: keyword + required: false + description: > + A globally unique identifier that identifies the activity to which control was transferred to. The related events would then have this identifier as their `activity_id` identifier. + + - name: opcode + type: keyword + required: false + description: > + The opcode defined in the event. Task and opcode are typically used to identify the location in the application from where the event was logged. + + - name: provider_guid + type: keyword + required: false + description: > + A globally unique identifier that identifies the provider that logged the event. + + - name: process.pid + type: long + required: false + description: > + The process_id of the Client Server Runtime Process. + + - name: provider_name + type: keyword + required: true + description: > + The source of the event log record (the application or service that logged the record). + + - name: task + type: keyword + required: false + description: > + The task defined in the event. Task and opcode are typically used to identify the location in the application from where the event was logged. The category used by the Event Logging API (on pre Windows Vista operating systems) is written to this field. + + - name: process.thread.id + type: long + required: false + - name: user_data + type: object + object_type: keyword + required: false + description: > + The event specific data. This field is mutually exclusive with `event_data`. + + - name: user.identifier + type: keyword + required: false + example: S-1-5-21-3541430928-2051711210-1391384369-1001 + description: > + The Windows security identifier (SID) of the account associated with this event. + + If Winlogbeat cannot resolve the SID to a name, then the `user.name`, `user.domain`, and `user.type` fields will be omitted from the event. If you discover Winlogbeat not resolving SIDs, review the log for clues as to what the problem may be. + + - name: user.name + type: keyword + description: > + Name of the user associated with this event. + + - name: user.domain + type: keyword + required: false + description: > + The domain that the account associated with this event is a member of. + + - name: user.type + type: keyword + required: false + description: > + The type of account associated with this event. + + - name: version + type: long + required: false + description: The version number of the event's definition. diff --git a/packages/microsoft_sqlserver/1.0.0/data_stream/audit/manifest.yml b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/manifest.yml new file mode 100755 index 0000000000..da4c3838e1 --- /dev/null +++ b/packages/microsoft_sqlserver/1.0.0/data_stream/audit/manifest.yml @@ -0,0 +1,62 @@ +title: "SQL Server audit events" +type: logs +streams: + - input: winlog + title: SQL Server audit events from Windows event logs + description: Collect SQL Server audit events from the Windows event logs + template_path: winlog.yml.hbs + vars: + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: >- + Preserves a raw copy of the original XML event, added to the field `event.original` + type: bool + multi: false + default: false + - name: event_id + type: text + title: Event ID + multi: false + required: false + show_user: false + description: >- + Defaults to 33205. Change the default only if SQL Server uses another documented event ID for audits. Setting a value other than an SQL Server audit event ID will cause the package to malfunction. A list of included and excluded (blocked) event IDs. The value is a comma-separated list. The accepted values are single event IDs to include (e.g. 33205), a range of event IDs to include (e.g. 4700-4800), and single event IDs to exclude (e.g. -4735). Limit 22 IDs. + default: 33205 + - name: channel + description: Channel name where audit events are configured to be sent. + type: text + title: Channel + multi: false + required: true + default: Security + show_user: true + - name: ignore_older + type: text + title: Ignore events older than + default: 72h + required: false + show_user: false + description: >- + If this option is specified, events that are older than the specified amount of time are ignored. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". + - name: language + type: text + title: Language ID + description: >- + The language ID the events will be rendered in. The language will be forced regardless of the system language. A complete list of language IDs can be found https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c[here]. It defaults to `0`, which indicates to use the system language. E.g.: 0x0409 for en-US + required: false + show_user: false + default: 0 + - name: tags + type: text + title: Tags + multi: true + show_user: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: "Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. \nThis executes in the agent before the logs are parsed. \nSee [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details.\n" diff --git a/packages/microsoft_sqlserver/1.0.0/docs/README.md b/packages/microsoft_sqlserver/1.0.0/docs/README.md new file mode 100755 index 0000000000..ccc8b0d7b4 --- /dev/null +++ b/packages/microsoft_sqlserver/1.0.0/docs/README.md @@ -0,0 +1,156 @@ +# Microsoft SQL Server Integration + +The Microsoft SQL Server integration package allows you to search, observe and visualize the SQL Server audit events through Elasticsearch. +Auditing an instance of the SQL Server Database Engine or an individual database involves tracking and logging events that occur on the Database Engine. +SQL Server audit lets you create server audits, which can contain server audit specifications for server level events, and database audit specifications for database level events. +See: [SQL Server Audit page](https://docs.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-database-engine?view=sql-server-ver15) for more information on SQL Server auditing. + +## Compatibility + +The package collects audit events from the event log. Other log sources such as file are not supported. + +## Configuration + +There are several levels of auditing for SQL Server, depending on government or standards requirements for your installation. The SQL Server Audit feature enables you to audit server-level and database-level groups of events and individual events. + +See: [SQL Server Audit Action Groups and Actions](https://docs.microsoft.com/en-us/sql/relational-databases/security/auditing/sql-server-audit-action-groups-and-actions?view=sql-server-ver15) for more information on the different audit levels. + +See: [Instructions on how to enable auditing for SQL Server](https://docs.microsoft.com/en-us/sql/relational-databases/security/auditing/create-a-server-audit-and-server-audit-specification?view=sql-server-ver15). + +>Note: For the integration package to be able to read and send audit events the event target must be configured to be Windows event log. + +### Audit Events + +Enable to collect SQL Server audit events from the specified windows event log channel. + +## Logs + +### Audit + +The SQL Server audit dataset provides events from the configured Windows event log channel. All SQL Server audit specific fields are available in the `sqlserver.audit` field group. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.user.domain | Name of the directory the user is a member of. For example, an LDAP or Active Directory domain name. | keyword | +| destination.user.id | Unique identifier of the user. | keyword | +| destination.user.name | Short name or login of the user. | keyword | +| destination.user.name.text | Multi-field of `destination.user.name`. | match_only_text | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.code | Identification code for this event, if one exists. Some event sources use event codes to identify messages unambiguously, regardless of message language or wording adjustments over time. An example of this is the Windows Event ID. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.ingested | Timestamp when an event arrived in the central data store. This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` \< `event.created` \< `event.ingested`. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.outcome | This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. | keyword | +| event.provider | Source of the event. Event transports such as Syslog or the Windows Event Log typically mention the source of an event. It can be the name of the software that generated the event (e.g. Sysmon, httpd), or of a subsystem of the operating system (kernel, Microsoft-Windows-Security-Auditing). | keyword | +| event.sequence | Sequence number of the event. The sequence number is a value published by some event sources, to make the exact ordering of events unambiguous, regardless of the timestamp precision. | long | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| file.directory | Directory where the file is located. It should include the drive letter, when appropriate. | keyword | +| file.extension | File extension, excluding the leading dot. Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). | keyword | +| file.name | Name of the file including the extension, without the directory. | keyword | +| file.path | Full path to the file, including the file name. It should include the drive letter, when appropriate. | keyword | +| file.path.text | Multi-field of `file.path`. | match_only_text | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| log.level | Original log level of the log event. If the source of the event provides a log level or textual severity, this is the one that goes in `log.level`. If your source doesn't specify one, you may put your event transport's severity here (e.g. Syslog severity). Some examples are `warn`, `err`, `i`, `informational`. | keyword | +| process.args | Array of process arguments, starting with the absolute path to the executable. May be filtered to protect sensitive information. | keyword | +| process.args_count | Length of the process.args array. This field can be useful for querying or performing bucket analysis on how many arguments were provided to start a process. More arguments may be an indication of suspicious activity. | long | +| process.command_line | Full command line that started the process, including the absolute path to the executable, and all arguments. Some arguments may be filtered to protect sensitive information. | wildcard | +| process.command_line.text | Multi-field of `process.command_line`. | match_only_text | +| process.entity_id | Unique identifier for the process. The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. | keyword | +| process.executable | Absolute path to the process executable. | keyword | +| process.executable.text | Multi-field of `process.executable`. | match_only_text | +| process.name | Process name. Sometimes called program name or similar. | keyword | +| process.name.text | Multi-field of `process.name`. | match_only_text | +| process.pid | Process id. | long | +| process.thread.id | Thread ID. | long | +| process.title | Process title. The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. | keyword | +| process.title.text | Multi-field of `process.title`. | match_only_text | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| sqlserver.audit.action_id | ID of the action | keyword | +| sqlserver.audit.additional_information | Any additional information about the event stored as XML. | text | +| sqlserver.audit.affected_rows | Number of rows affected by the operation. | long | +| sqlserver.audit.application_name | Name of the application that caused the audit event. | keyword | +| sqlserver.audit.audit_schema_version | Audit event schema version. | keyword | +| sqlserver.audit.class_type | Type of auditable entity that the audit occurs on. | keyword | +| sqlserver.audit.client_ip | "Name or IP address of the machine running the application that caused the audit event." | keyword | +| sqlserver.audit.connection_id | Connection ID (unique UUID for the connection) | keyword | +| sqlserver.audit.data_sensitivity_information | Sensitivity information about the operation. | keyword | +| sqlserver.audit.database_name | The database context in which the action occurred. | keyword | +| sqlserver.audit.database_principal_id | ID of the database user context that the action is performed in. | keyword | +| sqlserver.audit.database_principal_name | Current user. | keyword | +| sqlserver.audit.duration_milliseconds | Duration of the operation in milliseconds. | long | +| sqlserver.audit.event_time | Date/time when the auditable action is fired. | date | +| sqlserver.audit.host_name | SQL Server host name. | keyword | +| sqlserver.audit.is_column_permission | Flag indicating a column level permission | boolean | +| sqlserver.audit.object_id | "The primary ID of the entity on which the audit occurred. This ID can be one of server objects, databases, database objects or schema objects." | keyword | +| sqlserver.audit.object_name | "The name of the entity on which the audit occurred. This can be server objects, databases, database objects, schema objects or TSQL statement (if any)." | keyword | +| sqlserver.audit.permission_bitmask | When applicable shows the permissions that were granted, denied or revoked. | keyword | +| sqlserver.audit.response_rows | Number of rows returned. | long | +| sqlserver.audit.schema_name | The schema context in which the action occurred. | keyword | +| sqlserver.audit.sequence_group_id | Sequence group ID (unique UUID). | keyword | +| sqlserver.audit.sequence_number | Tracks the sequence of records within a single audit record that was too large to fit in the write buffer for audits. | integer | +| sqlserver.audit.server_instance_name | "Name of the server instance where the audit occurred. Uses the standard machine\\instance format." | keyword | +| sqlserver.audit.server_principal_id | ID of the login context that the action is performed in. | keyword | +| sqlserver.audit.server_principal_name | Current login. | keyword | +| sqlserver.audit.server_principal_sid | Current login SID. | keyword | +| sqlserver.audit.session_id | ID of the session on which the event occurred. | integer | +| sqlserver.audit.session_server_principal_name | Server principal for the session. | keyword | +| sqlserver.audit.statement | TSQL statement (if any) | text | +| sqlserver.audit.succeeded | Indicates whether or not the permission check of the action triggering the audit event succeeded or failed. | boolean | +| sqlserver.audit.target_database_principal_id | Database principal that the auditable action applies to. | keyword | +| sqlserver.audit.target_database_principal_name | Target user of the action. | keyword | +| sqlserver.audit.target_server_principal_id | Server principal that the auditable action applies to. | keyword | +| sqlserver.audit.target_server_principal_name | Target login of the action. | keyword | +| sqlserver.audit.target_server_principal_sid | SID of the target login. | keyword | +| sqlserver.audit.transaction_id | Transaction ID | keyword | +| sqlserver.audit.user_defined_event_id | User defined event ID. | integer | +| sqlserver.audit.user_defined_information | User defined information | text | +| user.domain | Name of the directory the user is a member of. For example, an LDAP or Active Directory domain name. | keyword | +| user.id | Unique identifier of the user. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | +| user.target.id | Unique identifier of the user. | keyword | +| user.target.name | Short name or login of the user. | keyword | +| user.target.name.text | Multi-field of `user.target.name`. | match_only_text | +| winlog.activity_id | A globally unique identifier that identifies the current activity. The events that are published with this identifier are part of the same activity. | keyword | +| winlog.api | The event log API type used to read the record. The possible values are "wineventlog" for the Windows Event Log API or "eventlogging" for the Event Logging API. The Event Logging API was designed for Windows Server 2003 or Windows 2000 operating systems. In Windows Vista, the event logging infrastructure was redesigned. On Windows Vista or later operating systems, the Windows Event Log API is used. Winlogbeat automatically detects which API to use for reading event logs. | keyword | +| winlog.channel | The name of the channel from which this record was read. This value is one of the names from the `event_logs` collection in the configuration. | keyword | +| winlog.computer_name | The name of the computer that generated the record. When using Windows event forwarding, this name can differ from `agent.hostname`. | keyword | +| winlog.event_data | The event-specific data. This field is mutually exclusive with `user_data`. If you are capturing event data on versions prior to Windows Vista, the parameters in `event_data` are named `param1`, `param2`, and so on, because event log parameters are unnamed in earlier versions of Windows. | object | +| winlog.event_data.param1 | | keyword | +| winlog.event_data.param2 | | keyword | +| winlog.event_data.param3 | | keyword | +| winlog.event_data.param4 | | keyword | +| winlog.event_data.param5 | | keyword | +| winlog.event_data.param6 | | keyword | +| winlog.event_data.param7 | | keyword | +| winlog.event_data.param8 | | keyword | +| winlog.event_id | The event identifier. The value is specific to the source of the event. | keyword | +| winlog.keywords | The keywords are used to classify an event. | keyword | +| winlog.opcode | The opcode defined in the event. Task and opcode are typically used to identify the location in the application from where the event was logged. | keyword | +| winlog.process.pid | The process_id of the Client Server Runtime Process. | long | +| winlog.process.thread.id | | long | +| winlog.provider_guid | A globally unique identifier that identifies the provider that logged the event. | keyword | +| winlog.provider_name | The source of the event log record (the application or service that logged the record). | keyword | +| winlog.record_id | The record ID of the event log record. The first record written to an event log is record number 1, and other records are numbered sequentially. If the record number reaches the maximum value (2^32^ for the Event Logging API and 2^64^ for the Windows Event Log API), the next record number will be 0. | keyword | +| winlog.related_activity_id | A globally unique identifier that identifies the activity to which control was transferred to. The related events would then have this identifier as their `activity_id` identifier. | keyword | +| winlog.task | The task defined in the event. Task and opcode are typically used to identify the location in the application from where the event was logged. The category used by the Event Logging API (on pre Windows Vista operating systems) is written to this field. | keyword | +| winlog.user.domain | The domain that the account associated with this event is a member of. | keyword | +| winlog.user.identifier | The Windows security identifier (SID) of the account associated with this event. If Winlogbeat cannot resolve the SID to a name, then the `user.name`, `user.domain`, and `user.type` fields will be omitted from the event. If you discover Winlogbeat not resolving SIDs, review the log for clues as to what the problem may be. | keyword | +| winlog.user.name | Name of the user associated with this event. | keyword | +| winlog.user.type | The type of account associated with this event. | keyword | +| winlog.user_data | The event specific data. This field is mutually exclusive with `event_data`. | object | +| winlog.version | The version number of the event's definition. | long | + diff --git a/packages/microsoft_sqlserver/1.0.0/img/microsoft-sql-server-logo.svg b/packages/microsoft_sqlserver/1.0.0/img/microsoft-sql-server-logo.svg new file mode 100755 index 0000000000..30758ba323 --- /dev/null +++ b/packages/microsoft_sqlserver/1.0.0/img/microsoft-sql-server-logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/microsoft_sqlserver/1.0.0/img/sqlserver-dashboard.png b/packages/microsoft_sqlserver/1.0.0/img/sqlserver-dashboard.png new file mode 100755 index 0000000000000000000000000000000000000000..8929f7c2a9052315de94b4bc39bd9ed0e2118b7f GIT binary patch literal 518596 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

    l#cKQ0ZZY0(7N2MR?P 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
    dV{cEeD(8T>~oek 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%0DXO+K@YDuqB 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 *>j4%tGwpHE?}UqK+`c7ZSCV`dmJisAzkL3D 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

    TeNhjvh3&NOy=tkO} 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 b2t`Epwnp1E&0y&f`lIsZtwNQYS@8b?PTas$ literal 0 HcmV?d00001 diff --git a/packages/microsoft_sqlserver/1.0.0/kibana/dashboard/microsoft_sqlserver-361588b0-389b-11ec-9973-85eff9a74fdb.json b/packages/microsoft_sqlserver/1.0.0/kibana/dashboard/microsoft_sqlserver-361588b0-389b-11ec-9973-85eff9a74fdb.json new file mode 100755 index 0000000000..3ab14432ae --- /dev/null +++ b/packages/microsoft_sqlserver/1.0.0/kibana/dashboard/microsoft_sqlserver-361588b0-389b-11ec-9973-85eff9a74fdb.json @@ -0,0 +1,167 @@ +{ + "attributes": { + "description": "Microsoft SQL Server Audit Events", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"microsoft_sqlserver.audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"microsoft_sqlserver.audit\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-b51d3b6d-d5e8-4631-b11c-81dcb81734a8\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"b51d3b6d-d5e8-4631-b11c-81dcb81734a8\":{\"columnOrder\":[\"70000b7b-124a-439e-8ef2-6a8dad15c166\",\"a6937f39-2999-4be2-8371-619b5bf2fb67\"],\"columns\":{\"70000b7b-124a-439e-8ef2-6a8dad15c166\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Top values of event.action\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"a6937f39-2999-4be2-8371-619b5bf2fb67\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"event.action\"},\"a6937f39-2999-4be2-8371-619b5bf2fb67\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count of records\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"microsoft_sqlserver.audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"microsoft_sqlserver.audit\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"70000b7b-124a-439e-8ef2-6a8dad15c166\"],\"layerId\":\"b51d3b6d-d5e8-4631-b11c-81dcb81734a8\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"a6937f39-2999-4be2-8371-619b5bf2fb67\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"donut\"}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{},\"hidePanelTitles\":false,\"timeRange\":{\"from\":\"now-2d\",\"to\":\"now\"}},\"gridData\":{\"h\":13,\"i\":\"842e1cfc-7341-462d-8949-eef99e130666\",\"w\":18,\"x\":0,\"y\":0},\"panelIndex\":\"842e1cfc-7341-462d-8949-eef99e130666\",\"title\":\"Microsoft SQL Server Event Types\",\"type\":\"lens\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-7af1e8e7-5f23-4195-b8e1-94f90b0a840a\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"7af1e8e7-5f23-4195-b8e1-94f90b0a840a\":{\"columnOrder\":[\"4652b8d0-971a-4472-bf0a-e19c6834092d\",\"5f9fa38a-bd5b-498b-ac78-d698c436773e\"],\"columns\":{\"4652b8d0-971a-4472-bf0a-e19c6834092d\":{\"customLabel\":true,\"dataType\":\"date\",\"isBucketed\":true,\"label\":\"Timestamp\",\"operationType\":\"date_histogram\",\"params\":{\"interval\":\"auto\"},\"scale\":\"interval\",\"sourceField\":\"@timestamp\"},\"5f9fa38a-bd5b-498b-ac78-d698c436773e\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Number of events\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"microsoft_sqlserver.audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"microsoft_sqlserver.audit\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"5f9fa38a-bd5b-498b-ac78-d698c436773e\"],\"layerId\":\"7af1e8e7-5f23-4195-b8e1-94f90b0a840a\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"line\",\"showGridlines\":false,\"xAccessor\":\"4652b8d0-971a-4472-bf0a-e19c6834092d\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"line\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":13,\"i\":\"d2bbfd00-6448-4207-9aef-b5bfcb8f978b\",\"w\":17,\"x\":18,\"y\":0},\"panelIndex\":\"d2bbfd00-6448-4207-9aef-b5bfcb8f978b\",\"title\":\"Rate of events\",\"type\":\"lens\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-7af1e8e7-5f23-4195-b8e1-94f90b0a840a\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"7af1e8e7-5f23-4195-b8e1-94f90b0a840a\":{\"columnOrder\":[\"4652b8d0-971a-4472-bf0a-e19c6834092d\",\"5f9fa38a-bd5b-498b-ac78-d698c436773e\"],\"columns\":{\"4652b8d0-971a-4472-bf0a-e19c6834092d\":{\"customLabel\":true,\"dataType\":\"date\",\"isBucketed\":true,\"label\":\"Timestamp\",\"operationType\":\"date_histogram\",\"params\":{\"interval\":\"auto\"},\"scale\":\"interval\",\"sourceField\":\"@timestamp\"},\"5f9fa38a-bd5b-498b-ac78-d698c436773e\":{\"customLabel\":true,\"dataType\":\"number\",\"filter\":{\"language\":\"kuery\",\"query\":\"event.action: \\\"login-failed\\\" \"},\"isBucketed\":false,\"label\":\"Failed Logins\",\"operationType\":\"count\",\"params\":{\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"microsoft_sqlserver.audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"microsoft_sqlserver.audit\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"5f9fa38a-bd5b-498b-ac78-d698c436773e\"],\"layerId\":\"7af1e8e7-5f23-4195-b8e1-94f90b0a840a\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"line\",\"showGridlines\":false,\"xAccessor\":\"4652b8d0-971a-4472-bf0a-e19c6834092d\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"line\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":13,\"i\":\"e0dde78f-31ea-478a-b2d2-7bde0fd3eedb\",\"w\":13,\"x\":35,\"y\":0},\"panelIndex\":\"e0dde78f-31ea-478a-b2d2-7bde0fd3eedb\",\"title\":\"Rate of Failed Logins\",\"type\":\"lens\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-43db16e8-42fc-4bf0-b02a-67ed2d5e9ebd\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-1\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-2\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"43db16e8-42fc-4bf0-b02a-67ed2d5e9ebd\":{\"columnOrder\":[\"041831df-5315-4457-98a4-2be03a47fc31\",\"25cc5b1c-7d6b-4ccb-b55f-c3556cb981e3\"],\"columns\":{\"041831df-5315-4457-98a4-2be03a47fc31\":{\"dataType\":\"date\",\"isBucketed\":true,\"label\":\"@timestamp\",\"operationType\":\"date_histogram\",\"params\":{\"interval\":\"5m\"},\"scale\":\"interval\",\"sourceField\":\"@timestamp\"},\"25cc5b1c-7d6b-4ccb-b55f-c3556cb981e3\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Principal Changes\",\"operationType\":\"count\",\"params\":{\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}}},\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"microsoft_sqlserver.audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"microsoft_sqlserver.audit\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-1\",\"key\":\"sqlserver.audit.class_type\",\"negate\":false,\"params\":[\"SQL LOGIN\",\"SQL USER\",\"WINDOWS LOGIN\",\"LOGIN\"],\"type\":\"phrases\"},\"query\":{\"bool\":{\"minimum_should_match\":1,\"should\":[{\"match_phrase\":{\"sqlserver.audit.class_type\":\"SQL LOGIN\"}},{\"match_phrase\":{\"sqlserver.audit.class_type\":\"SQL USER\"}},{\"match_phrase\":{\"sqlserver.audit.class_type\":\"WINDOWS LOGIN\"}},{\"match_phrase\":{\"sqlserver.audit.class_type\":\"LOGIN\"}}]}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-2\",\"key\":\"sqlserver.audit.action_id\",\"negate\":false,\"params\":[\"ALTER\",\"CREATE\",\"DROP\"],\"type\":\"phrases\"},\"query\":{\"bool\":{\"minimum_should_match\":1,\"should\":[{\"match_phrase\":{\"sqlserver.audit.action_id\":\"ALTER\"}},{\"match_phrase\":{\"sqlserver.audit.action_id\":\"CREATE\"}},{\"match_phrase\":{\"sqlserver.audit.action_id\":\"DROP\"}}]}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"25cc5b1c-7d6b-4ccb-b55f-c3556cb981e3\"],\"layerId\":\"43db16e8-42fc-4bf0-b02a-67ed2d5e9ebd\",\"layerType\":\"data\",\"seriesType\":\"line\",\"xAccessor\":\"041831df-5315-4457-98a4-2be03a47fc31\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"line\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":9,\"i\":\"9df96bf5-959d-470c-afaa-f85cd3921d41\",\"w\":13,\"x\":0,\"y\":13},\"panelIndex\":\"9df96bf5-959d-470c-afaa-f85cd3921d41\",\"title\":\"Database Principal Changes\",\"type\":\"lens\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-43db16e8-42fc-4bf0-b02a-67ed2d5e9ebd\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-1\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-2\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"43db16e8-42fc-4bf0-b02a-67ed2d5e9ebd\":{\"columnOrder\":[\"5341d8d4-e599-467c-b891-544b3a47ed4f\",\"3216384d-1cdc-43dc-83a0-b0215a64fd12\"],\"columns\":{\"3216384d-1cdc-43dc-83a0-b0215a64fd12\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Role Member Changes\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"5341d8d4-e599-467c-b891-544b3a47ed4f\":{\"customLabel\":true,\"dataType\":\"date\",\"isBucketed\":true,\"label\":\"Timestamp\",\"operationType\":\"date_histogram\",\"params\":{\"interval\":\"auto\"},\"scale\":\"interval\",\"sourceField\":\"@timestamp\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"microsoft_sqlserver.audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"microsoft_sqlserver.audit\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-1\",\"key\":\"sqlserver.audit.class_type\",\"negate\":false,\"params\":[\"ROLE\",\"SERVER ROLE\"],\"type\":\"phrases\"},\"query\":{\"bool\":{\"minimum_should_match\":1,\"should\":[{\"match_phrase\":{\"sqlserver.audit.class_type\":\"ROLE\"}},{\"match_phrase\":{\"sqlserver.audit.class_type\":\"SERVER ROLE\"}}]}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-2\",\"key\":\"sqlserver.audit.action_id\",\"negate\":false,\"params\":[\"ALTER\",\"DATABASE_ROLE_MEMBER_CHANGE_GROUP\",\"SERVER_ROLE_MEMBER_CHANGE_GROUP\"],\"type\":\"phrases\"},\"query\":{\"bool\":{\"minimum_should_match\":1,\"should\":[{\"match_phrase\":{\"sqlserver.audit.action_id\":\"ALTER\"}},{\"match_phrase\":{\"sqlserver.audit.action_id\":\"DATABASE_ROLE_MEMBER_CHANGE_GROUP\"}},{\"match_phrase\":{\"sqlserver.audit.action_id\":\"SERVER_ROLE_MEMBER_CHANGE_GROUP\"}}]}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"3216384d-1cdc-43dc-83a0-b0215a64fd12\"],\"layerId\":\"43db16e8-42fc-4bf0-b02a-67ed2d5e9ebd\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"line\",\"showGridlines\":false,\"xAccessor\":\"5341d8d4-e599-467c-b891-544b3a47ed4f\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"line\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":9,\"i\":\"c95238d4-553e-424f-9880-7377837f0ba2\",\"w\":13,\"x\":13,\"y\":13},\"panelIndex\":\"c95238d4-553e-424f-9880-7377837f0ba2\",\"title\":\"Role Member Changes\",\"type\":\"lens\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-43db16e8-42fc-4bf0-b02a-67ed2d5e9ebd\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-1\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-2\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"43db16e8-42fc-4bf0-b02a-67ed2d5e9ebd\":{\"columnOrder\":[\"5341d8d4-e599-467c-b891-544b3a47ed4f\",\"3216384d-1cdc-43dc-83a0-b0215a64fd12\",\"3216384d-1cdc-43dc-83a0-b0215a64fd12X0\"],\"columns\":{\"3216384d-1cdc-43dc-83a0-b0215a64fd12\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"count()\",\"operationType\":\"formula\",\"params\":{\"format\":{\"id\":\"number\",\"params\":{\"decimals\":0}},\"formula\":\"count()\",\"isFormulaBroken\":false},\"references\":[\"3216384d-1cdc-43dc-83a0-b0215a64fd12X0\"],\"scale\":\"ratio\"},\"3216384d-1cdc-43dc-83a0-b0215a64fd12X0\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Part of count()\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"5341d8d4-e599-467c-b891-544b3a47ed4f\":{\"customLabel\":true,\"dataType\":\"date\",\"isBucketed\":true,\"label\":\"Timestamp\",\"operationType\":\"date_histogram\",\"params\":{\"interval\":\"15m\"},\"scale\":\"interval\",\"sourceField\":\"@timestamp\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"microsoft_sqlserver.audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"microsoft_sqlserver.audit\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-1\",\"key\":\"sqlserver.audit.class_type\",\"negate\":false,\"params\":[\"DATABASE AUDIT SPECIFICATION\",\"SERVER AUDIT SPECIFICATION\",\"AUDIT\"],\"type\":\"phrases\"},\"query\":{\"bool\":{\"minimum_should_match\":1,\"should\":[{\"match_phrase\":{\"sqlserver.audit.class_type\":\"DATABASE AUDIT SPECIFICATION\"}},{\"match_phrase\":{\"sqlserver.audit.class_type\":\"SERVER AUDIT SPECIFICATION\"}},{\"match_phrase\":{\"sqlserver.audit.class_type\":\"AUDIT\"}}]}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-2\",\"key\":\"sqlserver.audit.action_id\",\"negate\":false,\"params\":[\"ALTER\",\"CREATE\",\"DROP\"],\"type\":\"phrases\"},\"query\":{\"bool\":{\"minimum_should_match\":1,\"should\":[{\"match_phrase\":{\"sqlserver.audit.action_id\":\"ALTER\"}},{\"match_phrase\":{\"sqlserver.audit.action_id\":\"CREATE\"}},{\"match_phrase\":{\"sqlserver.audit.action_id\":\"DROP\"}}]}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":-90,\"yRight\":0},\"layers\":[{\"accessors\":[\"3216384d-1cdc-43dc-83a0-b0215a64fd12\"],\"layerId\":\"43db16e8-42fc-4bf0-b02a-67ed2d5e9ebd\",\"layerType\":\"data\",\"seriesType\":\"line\",\"xAccessor\":\"5341d8d4-e599-467c-b891-544b3a47ed4f\",\"yConfig\":[{\"axisMode\":\"auto\",\"forAccessor\":\"3216384d-1cdc-43dc-83a0-b0215a64fd12\"}]}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"line\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"},\"yTitle\":\"Number of Audit Changes\"}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":9,\"i\":\"c48ea73e-2a8d-41bf-831c-275c516ee481\",\"w\":13,\"x\":26,\"y\":13},\"panelIndex\":\"c48ea73e-2a8d-41bf-831c-275c516ee481\",\"title\":\"Audit Changes\",\"type\":\"lens\",\"version\":\"7.15.1\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-03553b27-f941-4b4b-bcb6-8e1943c154f3\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-1\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"03553b27-f941-4b4b-bcb6-8e1943c154f3\":{\"columnOrder\":[\"d4a0fc9f-f361-4113-b529-f55dd6faab93\"],\"columns\":{\"d4a0fc9f-f361-4113-b529-f55dd6faab93\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Failed Logins\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"microsoft_sqlserver.audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"microsoft_sqlserver.audit\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-1\",\"key\":\"event.action\",\"negate\":false,\"params\":{\"query\":\"login-failed\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"event.action\":\"login-failed\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"accessor\":\"d4a0fc9f-f361-4113-b529-f55dd6faab93\",\"layerId\":\"03553b27-f941-4b4b-bcb6-8e1943c154f3\",\"layerType\":\"data\"}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":9,\"i\":\"c68c4401-b3a5-486a-8e66-da4bad6b035d\",\"w\":9,\"x\":39,\"y\":13},\"panelIndex\":\"c68c4401-b3a5-486a-8e66-da4bad6b035d\",\"title\":\"Number of Failed Logins\",\"type\":\"lens\",\"version\":\"7.15.1\"}]", + "timeRestore": false, + "title": "[Logs Microsoft SQL Server Audit Events] Overview", + "version": 1 + }, + "coreMigrationVersion": "7.15.1", + "id": "microsoft_sqlserver-361588b0-389b-11ec-9973-85eff9a74fdb", + "migrationVersion": { + "dashboard": "7.15.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "842e1cfc-7341-462d-8949-eef99e130666:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "842e1cfc-7341-462d-8949-eef99e130666:indexpattern-datasource-layer-b51d3b6d-d5e8-4631-b11c-81dcb81734a8", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "842e1cfc-7341-462d-8949-eef99e130666:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d2bbfd00-6448-4207-9aef-b5bfcb8f978b:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d2bbfd00-6448-4207-9aef-b5bfcb8f978b:indexpattern-datasource-layer-7af1e8e7-5f23-4195-b8e1-94f90b0a840a", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d2bbfd00-6448-4207-9aef-b5bfcb8f978b:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e0dde78f-31ea-478a-b2d2-7bde0fd3eedb:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e0dde78f-31ea-478a-b2d2-7bde0fd3eedb:indexpattern-datasource-layer-7af1e8e7-5f23-4195-b8e1-94f90b0a840a", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e0dde78f-31ea-478a-b2d2-7bde0fd3eedb:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "9df96bf5-959d-470c-afaa-f85cd3921d41:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "9df96bf5-959d-470c-afaa-f85cd3921d41:indexpattern-datasource-layer-43db16e8-42fc-4bf0-b02a-67ed2d5e9ebd", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "9df96bf5-959d-470c-afaa-f85cd3921d41:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "9df96bf5-959d-470c-afaa-f85cd3921d41:filter-index-pattern-1", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "9df96bf5-959d-470c-afaa-f85cd3921d41:filter-index-pattern-2", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c95238d4-553e-424f-9880-7377837f0ba2:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c95238d4-553e-424f-9880-7377837f0ba2:indexpattern-datasource-layer-43db16e8-42fc-4bf0-b02a-67ed2d5e9ebd", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c95238d4-553e-424f-9880-7377837f0ba2:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c95238d4-553e-424f-9880-7377837f0ba2:filter-index-pattern-1", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c95238d4-553e-424f-9880-7377837f0ba2:filter-index-pattern-2", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c48ea73e-2a8d-41bf-831c-275c516ee481:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c48ea73e-2a8d-41bf-831c-275c516ee481:indexpattern-datasource-layer-43db16e8-42fc-4bf0-b02a-67ed2d5e9ebd", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c48ea73e-2a8d-41bf-831c-275c516ee481:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c48ea73e-2a8d-41bf-831c-275c516ee481:filter-index-pattern-1", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c48ea73e-2a8d-41bf-831c-275c516ee481:filter-index-pattern-2", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c68c4401-b3a5-486a-8e66-da4bad6b035d:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c68c4401-b3a5-486a-8e66-da4bad6b035d:indexpattern-datasource-layer-03553b27-f941-4b4b-bcb6-8e1943c154f3", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c68c4401-b3a5-486a-8e66-da4bad6b035d:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c68c4401-b3a5-486a-8e66-da4bad6b035d:filter-index-pattern-1", + "type": "index-pattern" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/microsoft_sqlserver/1.0.0/manifest.yml b/packages/microsoft_sqlserver/1.0.0/manifest.yml new file mode 100755 index 0000000000..5dc0f404ca --- /dev/null +++ b/packages/microsoft_sqlserver/1.0.0/manifest.yml @@ -0,0 +1,33 @@ +format_version: 1.0.0 +name: microsoft_sqlserver +title: "Microsoft SQL Server" +version: 1.0.0 +license: basic +description: Collect audit events from Microsoft SQL Server with Elastic Agent. +type: integration +categories: + - datastore + - security +release: ga +conditions: + kibana.version: "^7.16.0 || ^8.0.0" +screenshots: + - src: /img/sqlserver-dashboard.png + title: Microsoft SQL Server Dashboard + size: 600x600 + type: image/png +icons: + - src: /img/microsoft-sql-server-logo.svg + title: Microsof SQL Server + size: 32x32 + type: image/svg+xml +policy_templates: + - name: audit_logs + title: SQL Server audit logs + description: Collect audit logs from Windows event logs + inputs: + - type: winlog + title: Collect audit events from Windows event logs + description: Collecting audit events from Windows event logs +owner: + github: elastic/security-external-integrations diff --git a/packages/modsecurity/1.0.0/changelog.yml b/packages/modsecurity/1.0.0/changelog.yml new file mode 100755 index 0000000000..1873cac579 --- /dev/null +++ b/packages/modsecurity/1.0.0/changelog.yml @@ -0,0 +1,36 @@ +# newer versions go on top +- version: "1.0.0" + changes: + - description: Make GA + type: enhancement + link: https://github.com/elastic/integrations/pull/3428 +- version: "0.1.5" + changes: + - description: Add documentation for multi-fields + type: enhancement + link: https://github.com/elastic/integrations/pull/2916 +- version: "0.1.4" + changes: + - description: Change ownership to correct owner and update versions to support 8.x + type: enhancement + link: https://github.com/elastic/integrations/pull/2846 +- version: "0.1.3" + changes: + - description: Regenerate test files using the new GeoIP database + type: bugfix + link: https://github.com/elastic/integrations/pull/2339 +- version: "0.1.2" + changes: + - description: Change test public IPs to the supported subset + type: bugfix + link: https://github.com/elastic/integrations/pull/2327 +- version: "0.1.1" + changes: + - description: Fix logic that checks for the 'forwarded' tag + type: bugfix + link: https://github.com/elastic/integrations/pull/1830 +- version: "0.1.0" + changes: + - description: Initial draft of the package + type: enhancement + link: https://github.com/elastic/integrations/pull/1603 diff --git a/packages/modsecurity/1.0.0/data_stream/auditlog/agent/stream/stream.yml.hbs b/packages/modsecurity/1.0.0/data_stream/auditlog/agent/stream/stream.yml.hbs new file mode 100755 index 0000000000..334aa4dc32 --- /dev/null +++ b/packages/modsecurity/1.0.0/data_stream/auditlog/agent/stream/stream.yml.hbs @@ -0,0 +1,23 @@ +paths: +{{#each paths}} +- {{this}} +{{/each}} +tags: +{{#if preserve_original_event}} +- preserve_original_event +{{/if}} +{{#each tags as |tag i|}} +- {{tag}} +{{/each}} +fields_under_root: true +fields: + tz_offset: {{tz_offset}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +exclude_files: [".gz$"] +processors: +{{#if processors}} +{{processors}} +{{/if}} +- add_locale: ~ diff --git a/packages/modsecurity/1.0.0/data_stream/auditlog/elasticsearch/ingest_pipeline/default.yml b/packages/modsecurity/1.0.0/data_stream/auditlog/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..fe85cabc28 --- /dev/null +++ b/packages/modsecurity/1.0.0/data_stream/auditlog/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,145 @@ +--- +description: Pipeline for modsecurity audit log. + +processors: + - set: + field: event.ingested + value: '{{_ingest.timestamp}}' + - set: + field: ecs.version + value: '1.12.0' + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true +# parse date + - set: + field: _temps.date + if: ctx?.tz_offset != null + value: '{{json.transaction.time_stamp}}{{tz_offset}}' + - set: + field: _temps.date + if: ctx?.tz_offset == null + value: '{{json.transaction.time_stamp}}{{event.timezone }}' + - date: + field: _temps.date + formats: + - E MMM d HH:mm:ss yyyyZ + - E MMM d HH:mm:ss yyyyXXX +# rename ecs + - rename: + field: json.transaction.client_ip + target_field: source.ip + ignore_missing: true + - rename: + field: json.transaction.client_port + target_field: source.port + ignore_missing: true + - rename: + field: json.transaction.request.method + target_field: http.request.method + ignore_missing: true + - convert: + field: json.transaction.request.http_version + target_field: http.version + type: string + ignore_missing: true + - set: + field: _temps.url + if: ctx.json.transaction.host_port == 443 + value: "https://{{{json.transaction.request.headers.Host}}}:{{json.transaction.host_port}}{{{json.transaction.request.uri}}}" + - set: + field: _temps.url + if: ctx.json.transaction.host_port == 80 + value: "http://{{{json.transaction.request.headers.Host}}}:{{json.transaction.host_port}}{{{json.transaction.request.uri}}}" + - uri_parts: + field: _temps.url + ignore_failure: true + keep_original: true + remove_if_successful: true + - rename: + field: json.transaction.response.http_code + target_field: http.response.status_code + ignore_missing: true + - rename: + field: json.transaction.response.headers.Content-Type + target_field: http.response.mime_type + ignore_missing: true + - rename: + field: json.transaction.response.Content-Length + target_field: http.response.bytes + ignore_missing: true + - foreach: + field: json.transaction.messages + ignore_missing: true + processor: + rename: + field: _ingest._value.message + target_field: message + - foreach: + field: json.transaction.messages + ignore_missing: true + processor: + rename: + field: _ingest._value.details.match + target_field: modsec.audit.detail + - foreach: + field: json.transaction.messages + ignore_missing: true + processor: + rename: + field: _ingest._value.details.ruleId + target_field: rule.id +# user agent and geoip enrich + - user_agent: + field: json.transaction.request.headers.User-Agent + ignore_missing: true + - geoip: + field: source.ip + target_field: source.geo + ignore_missing: true + - geoip: + database_file: GeoLite2-ASN.mmdb + field: source.ip + target_field: source.as + properties: + - asn + - organization_name + ignore_missing: true + - rename: + field: source.as.asn + target_field: source.as.number + ignore_missing: true + - rename: + field: source.as.organization_name + target_field: source.as.organization.name + ignore_missing: true + - set: + field: event.kind + value: event + - append: + field: event.category + value: web + - append: + field: event.type + value: access + - remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + ignore_missing: true + - remove: + field: + - json + - _temps + - tz_offset + ignore_failure: true + ignore_missing: true +on_failure: + - set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/modsecurity/1.0.0/data_stream/auditlog/fields/agent.yml b/packages/modsecurity/1.0.0/data_stream/auditlog/fields/agent.yml new file mode 100755 index 0000000000..e313ec8287 --- /dev/null +++ b/packages/modsecurity/1.0.0/data_stream/auditlog/fields/agent.yml @@ -0,0 +1,204 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/modsecurity/1.0.0/data_stream/auditlog/fields/base-fields.yml b/packages/modsecurity/1.0.0/data_stream/auditlog/fields/base-fields.yml new file mode 100755 index 0000000000..041609421b --- /dev/null +++ b/packages/modsecurity/1.0.0/data_stream/auditlog/fields/base-fields.yml @@ -0,0 +1,23 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: 'message' + type: text + description: human-readable summary of the event +- name: event.module + type: constant_keyword + description: Event module + value: modsecurity +- name: event.dataset + type: constant_keyword + description: Event dataset + value: modsecurity.auditlog diff --git a/packages/modsecurity/1.0.0/data_stream/auditlog/fields/ecs.yml b/packages/modsecurity/1.0.0/data_stream/auditlog/fields/ecs.yml new file mode 100755 index 0000000000..b78ed163f8 --- /dev/null +++ b/packages/modsecurity/1.0.0/data_stream/auditlog/fields/ecs.yml @@ -0,0 +1,176 @@ +- description: Destination domain. + name: destination.domain + type: keyword +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: Host ip addresses. + name: host.ip + type: ip +- description: |- + HTTP request method. + Prior to ECS 1.6.0 the following guidance was provided: + "The field value must be normalized to lowercase for querying." + As of ECS 1.6.0, the guidance is deprecated because the original case of the method may be useful in anomaly detection. Original case will be mandated in ECS 2.0.0 + name: http.request.method + type: keyword +- description: Referrer for this HTTP request. + name: http.request.referrer + type: keyword +- description: Size in bytes of the response body. + name: http.response.body.bytes + type: long +- description: HTTP response status code. + name: http.response.status_code + type: long +- description: |- + Mime type of the body of the response. + This value must only be populated based on the content of the response body, not on the `Content-Type` header. Comparing the mime type of a response with the response's Content-Type header can be helpful in detecting misconfigured servers. + name: http.response.mime_type + type: keyword +- description: HTTP version. + name: http.version + type: keyword +- description: |- + Full path to the log file this event came from, including the file name. It should include the drive letter, when appropriate. + If the event wasn't read from a log file, do not populate this field. + name: log.file.path + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: |- + Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: source.address + type: keyword +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: source.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: source.as.organization.name + type: keyword +- description: City name. + name: source.geo.city_name + type: keyword +- description: Name of the continent. + name: source.geo.continent_name + type: keyword +- description: Country ISO code. + name: source.geo.country_iso_code + type: keyword +- description: Country name. + name: source.geo.country_name + type: keyword +- description: Longitude and latitude. + level: core + name: source.geo.location + type: geo_point +- description: Region ISO code. + name: source.geo.region_iso_code + type: keyword +- description: Region name. + name: source.geo.region_name + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Domain of the url, such as "www.elastic.co". + In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. + name: url.domain + type: keyword +- description: |- + The field contains the file extension from the original request url, excluding the leading dot. + The file extension is only set if it exists, as not every url has a file extension. + The leading period must not be included. For example, the value must be "png", not ".png". + Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). + name: url.extension + type: keyword +- description: |- + Portion of the url after the `#`, such as "top". + The `#` is not part of the fragment. + name: url.fragment + type: keyword +- description: |- + Unmodified original url as seen in the event source. + Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. + This field is meant to represent the URL as it was observed, complete or not. + multi_fields: + - name: text + type: match_only_text + name: url.original + type: wildcard +- description: Path of the request, such as "/search". + name: url.path + type: wildcard +- description: |- + Scheme of the request, such as "https". + Note: The `:` is not part of the scheme. + name: url.scheme + type: keyword +- description: Port of the request, such as 443. + name: url.port + type: long +- description: |- + The query field describes the query string of the request, such as "q=elasticsearch". + The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. + name: url.query + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword +- description: Name of the device. + name: user_agent.device.name + type: keyword +- description: Name of the user agent. + name: user_agent.name + type: keyword +- description: Unparsed user_agent string. + multi_fields: + - name: text + type: match_only_text + name: user_agent.original + type: keyword +- description: Operating system name, including the version or code name. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.full + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.name + type: keyword +- description: Operating system version as a raw string. + name: user_agent.os.version + type: keyword +- description: Version of the user agent. + name: user_agent.version + type: keyword +- description: A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. + name: rule.id + type: keyword diff --git a/packages/modsecurity/1.0.0/data_stream/auditlog/fields/fields.yml b/packages/modsecurity/1.0.0/data_stream/auditlog/fields/fields.yml new file mode 100755 index 0000000000..1ad1b17fe0 --- /dev/null +++ b/packages/modsecurity/1.0.0/data_stream/auditlog/fields/fields.yml @@ -0,0 +1,6 @@ +- name: modsec.audit + type: group + fields: + - name: detail + type: keyword + description: Details message of the audit event. diff --git a/packages/modsecurity/1.0.0/data_stream/auditlog/manifest.yml b/packages/modsecurity/1.0.0/data_stream/auditlog/manifest.yml new file mode 100755 index 0000000000..9d76d46436 --- /dev/null +++ b/packages/modsecurity/1.0.0/data_stream/auditlog/manifest.yml @@ -0,0 +1,48 @@ +title: Modsecurity Audit Log +type: logs +release: experimental +streams: + - input: logfile + template_path: stream.yml.hbs + vars: + - name: paths + type: text + title: Paths + multi: true + required: true + show_user: true + default: + - /var/log/modsec-audit* + - name: tz_offset + type: text + title: Timezone offset (+HH:mm format) + multi: false + required: false + show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - modsec-audit + - name: preserve_original_event + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original` + type: bool + multi: false + required: true + show_user: true + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + + title: Modsecurity Audit Log + description: Collect modsecurity audit logs diff --git a/packages/modsecurity/1.0.0/data_stream/auditlog/sample_event.json b/packages/modsecurity/1.0.0/data_stream/auditlog/sample_event.json new file mode 100755 index 0000000000..ae90192f65 --- /dev/null +++ b/packages/modsecurity/1.0.0/data_stream/auditlog/sample_event.json @@ -0,0 +1,118 @@ +{ + "@timestamp": "2021-05-14T14:38:37.000Z", + "agent": { + "ephemeral_id": "061dfa96-ca94-49ac-91b6-bdf673019894", + "hostname": "docker-fleet-agent", + "id": "825f840d-2cf2-4972-91e6-99c4735ef994", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.16.0" + }, + "data_stream": { + "dataset": "modsecurity.auditlog", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "1.12.0" + }, + "elastic_agent": { + "id": "825f840d-2cf2-4972-91e6-99c4735ef994", + "snapshot": true, + "version": "7.16.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "web" + ], + "dataset": "modsecurity.auditlog", + "ingested": "2021-09-17T03:51:35Z", + "kind": "event", + "timezone": "+00:00", + "type": [ + "access" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "id": "7018a7d8148499f0598830dd37987dc4", + "ip": [ + "172.18.0.7" + ], + "mac": [ + "02:42:ac:12:00:07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "Core", + "family": "redhat", + "kernel": "5.11.0-34-generic", + "name": "CentOS Linux", + "platform": "centos", + "type": "linux", + "version": "7 (Core)" + } + }, + "http": { + "request": { + "method": "PUT" + }, + "response": { + "mime_type": "application/json; charset=utf-8", + "status_code": 400 + }, + "version": "1.1" + }, + "input": { + "type": "log" + }, + "log": { + "file": { + "path": "/tmp/service_logs/modsec-audit.log" + }, + "offset": 0 + }, + "source": { + "as": { + "number": 9009, + "organization": { + "name": "M247 Ltd" + } + }, + "geo": { + "city_name": "Montreal", + "continent_name": "North America", + "country_iso_code": "CA", + "country_name": "Canada", + "location": { + "lat": 45.4994, + "lon": -73.5703 + }, + "region_iso_code": "CA-QC", + "region_name": "Quebec" + }, + "ip": "37.120.205.2", + "port": 56047 + }, + "tags": [ + "modsec-audit" + ], + "url": { + "domain": "www.owayride.com", + "original": "https://www.owayride.com:443/orders/2734183/finish", + "path": "/orders/2734183/finish", + "port": 443, + "scheme": "https" + }, + "user_agent": { + "device": { + "name": "Other" + }, + "name": "okhttp", + "original": "okhttp/2.7.5", + "version": "2.7.5" + } +} \ No newline at end of file diff --git a/packages/modsecurity/1.0.0/docs/README.md b/packages/modsecurity/1.0.0/docs/README.md new file mode 100755 index 0000000000..5aa8fba3a4 --- /dev/null +++ b/packages/modsecurity/1.0.0/docs/README.md @@ -0,0 +1,111 @@ +# Modsecuriy Integration + +This integration periodically fetches audit logs from [Modsecurity](https://github.com/SpiderLabs/ModSecurity/) servers. It can parse audit logs created by the HTTP server. + +## Compatibility + +The logs were tested with Modsecurity v3 with nginx connector.Change the default modsecurity logging format to json as per configuration + +``` +SecAuditLogType Serial +SecAuditLog /var/log/modsec_audit.json +SecAuditLogFormat JSON +``` + +### Audit Log + +The `Audit Log` dataset collects Modsecurity Audit logs. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.domain | Destination domain. | keyword | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.dataset | Event dataset | constant_keyword | +| event.module | Event module | constant_keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| http.request.method | HTTP request method. Prior to ECS 1.6.0 the following guidance was provided: "The field value must be normalized to lowercase for querying." As of ECS 1.6.0, the guidance is deprecated because the original case of the method may be useful in anomaly detection. Original case will be mandated in ECS 2.0.0 | keyword | +| http.request.referrer | Referrer for this HTTP request. | keyword | +| http.response.body.bytes | Size in bytes of the response body. | long | +| http.response.mime_type | Mime type of the body of the response. This value must only be populated based on the content of the response body, not on the `Content-Type` header. Comparing the mime type of a response with the response's Content-Type header can be helpful in detecting misconfigured servers. | keyword | +| http.response.status_code | HTTP response status code. | long | +| http.version | HTTP version. | keyword | +| input.type | Input type | keyword | +| log.file.path | Full path to the log file this event came from, including the file name. It should include the drive letter, when appropriate. If the event wasn't read from a log file, do not populate this field. | keyword | +| log.offset | Log offset | long | +| message | human-readable summary of the event | text | +| modsec.audit.detail | Details message of the audit event. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| rule.id | A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. | keyword | +| source.address | Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| source.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| source.as.organization.name | Organization name. | keyword | +| source.as.organization.name.text | Multi-field of `source.as.organization.name`. | match_only_text | +| source.geo.city_name | City name. | keyword | +| source.geo.continent_name | Name of the continent. | keyword | +| source.geo.country_iso_code | Country ISO code. | keyword | +| source.geo.country_name | Country name. | keyword | +| source.geo.location | Longitude and latitude. | geo_point | +| source.geo.region_iso_code | Region ISO code. | keyword | +| source.geo.region_name | Region name. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| tags | List of keywords used to tag each event. | keyword | +| url.domain | Domain of the url, such as "www.elastic.co". In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. | keyword | +| url.extension | The field contains the file extension from the original request url, excluding the leading dot. The file extension is only set if it exists, as not every url has a file extension. The leading period must not be included. For example, the value must be "png", not ".png". Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). | keyword | +| url.fragment | Portion of the url after the `#`, such as "top". The `#` is not part of the fragment. | keyword | +| url.original | Unmodified original url as seen in the event source. Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. This field is meant to represent the URL as it was observed, complete or not. | wildcard | +| url.original.text | Multi-field of `url.original`. | match_only_text | +| url.path | Path of the request, such as "/search". | wildcard | +| url.port | Port of the request, such as 443. | long | +| url.query | The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. | keyword | +| url.scheme | Scheme of the request, such as "https". Note: The `:` is not part of the scheme. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | +| user_agent.device.name | Name of the device. | keyword | +| user_agent.name | Name of the user agent. | keyword | +| user_agent.original | Unparsed user_agent string. | keyword | +| user_agent.original.text | Multi-field of `user_agent.original`. | match_only_text | +| user_agent.os.full | Operating system name, including the version or code name. | keyword | +| user_agent.os.full.text | Multi-field of `user_agent.os.full`. | match_only_text | +| user_agent.os.name | Operating system name, without the version. | keyword | +| user_agent.os.name.text | Multi-field of `user_agent.os.name`. | match_only_text | +| user_agent.os.version | Operating system version as a raw string. | keyword | +| user_agent.version | Version of the user agent. | keyword | + diff --git a/packages/modsecurity/1.0.0/img/modsec.svg b/packages/modsecurity/1.0.0/img/modsec.svg new file mode 100755 index 0000000000..3001b7e70c --- /dev/null +++ b/packages/modsecurity/1.0.0/img/modsec.svg @@ -0,0 +1 @@ + diff --git a/packages/modsecurity/1.0.0/manifest.yml b/packages/modsecurity/1.0.0/manifest.yml new file mode 100755 index 0000000000..efe0c50898 --- /dev/null +++ b/packages/modsecurity/1.0.0/manifest.yml @@ -0,0 +1,28 @@ +format_version: 1.0.0 +name: modsecurity +title: "ModSecurity Audit" +version: 1.0.0 +license: basic +description: "ModSecurity Audit Log Integration" +type: integration +categories: + - security + - web +release: ga +conditions: + kibana.version: "^7.16.0 || ^8.0.0" +icons: + - src: /img/modsec.svg + title: ModSecurity + size: 32x32 + type: image/svg+xml +policy_templates: + - name: modsec + title: ModSecurity audit logs + description: Collect modsecurity audit logs + inputs: + - type: logfile + title: Collect logs from modsecurity instances + description: Collecting modsecurity audit logs +owner: + github: elastic/security-external-integrations diff --git a/packages/netskope/1.0.0/changelog.yml b/packages/netskope/1.0.0/changelog.yml new file mode 100755 index 0000000000..ea7a8ffeee --- /dev/null +++ b/packages/netskope/1.0.0/changelog.yml @@ -0,0 +1,21 @@ +# newer versions go on top +- version: "1.0.0" + changes: + - description: Make GA + type: enhancement + link: https://github.com/elastic/integrations/pull/3428 +- version: "0.1.2" + changes: + - description: Fix boolean conversion logic to accept "true", "false", "yes", and "no" as strings. Correct the type of `is_alert` and `is_web_universal_connector` to boolean. + type: bugfix + link: https://github.com/elastic/integrations/pull/3110 +- version: "0.1.1" + changes: + - description: Add documentation for multi-fields + type: enhancement + link: https://github.com/elastic/integrations/pull/2916 +- version: "0.1.0" + changes: + - description: Initial draft of the package + type: enhancement + link: https://github.com/elastic/integrations/pull/2638 diff --git a/packages/netskope/1.0.0/data_stream/alerts/agent/stream/tcp.yml.hbs b/packages/netskope/1.0.0/data_stream/alerts/agent/stream/tcp.yml.hbs new file mode 100755 index 0000000000..bc587e50a3 --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/alerts/agent/stream/tcp.yml.hbs @@ -0,0 +1,18 @@ +host: "{{listen_address}}:{{listen_port}}" +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if ssl}} +ssl: {{ssl}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/netskope/1.0.0/data_stream/alerts/elasticsearch/ingest_pipeline/default.yml b/packages/netskope/1.0.0/data_stream/alerts/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..b9e9af61d8 --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/alerts/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,296 @@ +--- +description: Pipeline for Netskope alerts +processors: + - set: + field: ecs.version + value: '8.0.0' + - json: + field: message + add_to_root: true + add_to_root_conflict_strategy: replace + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: netskope.alerts.policy.actions + ignore_failure: true + - append: + field: related.ip + value: "{{{destination.ip}}}" + if: ctx?.destination?.ip != null + ignore_failure: true + - append: + field: related.ip + value: "{{{netskope.alerts.user.ip}}}" + if: ctx?.netskope?.alerts?.user?.ip != null + ignore_failure: true + - append: + field: related.ip + value: "{{{source.ip}}}" + if: ctx?.source?.ip != null + ignore_failure: true + - append: + field: related.hosts + value: "{{{destination.domain}}}" + if: ctx?.destination?.domain != null + allow_duplicates: false + ignore_failure: true + - append: + field: related.hosts + value: "{{{destination.domain}}}" + if: ctx?.netskope?.alerts?.domain != null + allow_duplicates: false + ignore_failure: true + - append: + field: related.hosts + value: "{{{host.hostname}}}" + if: ctx?.host?.hostname != null + allow_duplicates: false + ignore_failure: true + - user_agent: + field: user_agent.original + ignore_failure: true + - geoip: + field: source.ip + target_field: source.geo + ignore_missing: true + - geoip: + field: destination.ip + target_field: destination.geo + ignore_missing: true + - geoip: + field: netskope.alerts.user.ip + target_field: netskope.alerts.user.geo + ignore_missing: true + - uri_parts: + field: netskope.alerts.url + target_field: netskope.alerts.url + keep_original: true + remove_if_successful: false + ignore_failure: true + - uri_parts: + field: netskope.alerts.web.url + target_field: netskope.alerts.web.url + keep_original: true + remove_if_successful: false + ignore_failure: true + - remove: + field: netskope.alerts.page.url + if: ctx?.netskope?.alerts?.page?.url == ' ' + - uri_parts: + field: netskope.alerts.page.url + target_field: netskope.alerts.page.url + keep_original: true + remove_if_successful: false + ignore_failure: true + - uri_parts: + field: netskope.alerts.login.url + target_field: netskope.alerts.login.url + keep_original: true + remove_if_successful: false + ignore_failure: true + - uri_parts: + field: netskope.alerts.referer + target_field: netskope.alerts.url + keep_original: true + remove_if_successful: false + ignore_failure: true + - set: + field: netskope.alerts.managed.app + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.managed?.app?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.managed.app + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.managed?.app?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.is_alert + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.is_alert?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.is_alert + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.is_alert?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.is_malicious + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.is_malicious?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.is_malicious + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.is_malicious?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.aggregated.user + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.aggregated?.user?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.aggregated.user + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.aggregated?.user?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.bypass.traffic + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.bypass?.traffic?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.bypass.traffic + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.bypass?.traffic?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.is_user_generated + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.is_user_generated?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.is_user_generated + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.is_user_generated?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.dlp.is_unique_count + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.dlp?.is_unique_count?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.dlp.is_unique_count + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.dlp?.is_unique_count?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.is_file_passwd_protected + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.is_file_passwd_protected?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.is_file_passwd_protected + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.is_file_passwd_protected?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.is_web_universal_connector + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.is_web_universal_connector?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.is_web_universal_connector + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.is_web_universal_connector?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.acked + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.acked?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.acked + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.acked?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.obfuscate + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.obfuscate?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.obfuscate + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.obfuscate?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.ml_detection + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.ml_detection?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.ml_detection + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.ml_detection?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.shared.is_shared + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.alerts?.shared?.is_shared?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.alerts.shared.is_shared + value: false + if: "['no', 'false'].contains(ctx?.netskope?.alerts?.shared?.is_shared?.toString()?.toLowerCase())" + ignore_failure: true + - lowercase: + ignore_failure: true + field: network.protocol + - script: + if: ctx?.file?.mime_type != null + lang: painless + source: >- + def parts = ctx.file.mime_type; + if (parts != null && parts.size() > 0) { + List l = new ArrayList(); + for (entry in parts.entrySet()) { + l.add(entry.getValue()); + } + List setList = new ArrayList(new HashSet(l)); + ctx.file.mime_type = setList; + } + - script: + if: ctx?.user?.email != null + lang: painless + source: >- + def parts = ctx.user.email; + if (parts != null && parts.size() > 0) { + List l = new ArrayList(); + for (entry in parts.entrySet()) { + l.add(entry.getValue()); + } + List setList = new ArrayList(new HashSet(l)); + ctx.user.email = setList; + } + - script: + if: ctx?.netskope?.alerts?.quarantine?.app != null + lang: painless + source: >- + def parts = ctx.netskope.alerts.quarantine.app; + if (parts != null && parts.size() > 0) { + List l = new ArrayList(); + for (entry in parts.entrySet()) { + l.add(entry.getValue()); + } + List setList = new ArrayList(new HashSet(l)); + ctx.netskope.alerts.quarantine.app = setList; + } + - script: + description: Drops null/empty values recursively + lang: painless + source: | + boolean dropEmptyFields(Object object) { + if (object == null || object == "" || object == "null") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); + - remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + ignore_missing: true +on_failure: +- set: + field: error.message + value: "{{{ _ingest.on_failure_message }}}" diff --git a/packages/netskope/1.0.0/data_stream/alerts/fields/agent.yml b/packages/netskope/1.0.0/data_stream/alerts/fields/agent.yml new file mode 100755 index 0000000000..e313ec8287 --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/alerts/fields/agent.yml @@ -0,0 +1,204 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/netskope/1.0.0/data_stream/alerts/fields/base-fields.yml b/packages/netskope/1.0.0/data_stream/alerts/fields/base-fields.yml new file mode 100755 index 0000000000..df7e82b799 --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/alerts/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module + value: netskope +- name: event.dataset + type: constant_keyword + description: Event dataset + value: netskope.alerts diff --git a/packages/netskope/1.0.0/data_stream/alerts/fields/ecs.yml b/packages/netskope/1.0.0/data_stream/alerts/fields/ecs.yml new file mode 100755 index 0000000000..e5cddd8524 --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/alerts/fields/ecs.yml @@ -0,0 +1,213 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: Port of the client. + name: client.port + type: long +- description: |- + The cloud account or organization id used to identify different entities in a multi-tenant environment. + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. + name: cloud.account.id + type: keyword +- description: |- + The cloud account name or alias used to identify different entities in a multi-tenant environment. + Examples: AWS account name, Google Cloud ORG display name. + name: cloud.account.name + type: keyword +- description: |- + The cloud service name is intended to distinguish services running on different platforms within a provider, eg AWS EC2 vs Lambda, GCP GCE vs App Engine, Azure VM vs App Server. + Examples: app engine, app service, cloud run, fargate, lambda. + name: cloud.service.name + type: keyword +- description: |- + Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: destination.address + type: keyword +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: |- + The domain name of the destination system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: destination.domain + type: keyword +- description: City name. + name: destination.geo.city_name + type: keyword +- description: Name of the continent. + name: destination.geo.continent_name + type: keyword +- description: Country ISO code. + name: destination.geo.country_iso_code + type: keyword +- description: Country name. + name: destination.geo.country_name + type: keyword +- description: Longitude and latitude. + name: destination.geo.location + type: geo_point +- description: |- + Postal code associated with the location. + Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. + name: destination.geo.postal_code + type: keyword +- description: Region ISO code. + name: destination.geo.region_iso_code + type: keyword +- description: Region name. + name: destination.geo.region_name + type: keyword +- description: The time zone of the location, such as IANA time zone name. + name: destination.geo.timezone + type: keyword +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: Unique ID to describe the event. + name: event.id + type: keyword +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: MD5 hash. + name: file.hash.md5 + type: keyword +- description: MIME type should identify the format of the file or stream of bytes using https://www.iana.org/assignments/media-types/media-types.xhtml[IANA official types], where possible. When more than one type is applicable, the most specific type should be used. + name: file.mime_type + type: keyword +- description: Name of the file including the extension, without the directory. + name: file.name + type: keyword +- description: Full path to the file, including the file name. It should include the drive letter, when appropriate. + multi_fields: + - name: text + type: match_only_text + name: file.path + type: keyword +- description: |- + File size in bytes. + Only relevant when `file.type` is "file". + name: file.size + type: long +- description: |- + Hostname of the host. + It normally contains what the `hostname` command returns on the host machine. + name: host.hostname + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: host.os.name + type: keyword +- description: Referrer for this HTTP request. + name: http.request.referrer + type: keyword +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: |- + Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: source.address + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: City name. + name: source.geo.city_name + type: keyword +- description: Name of the continent. + name: source.geo.continent_name + type: keyword +- description: Country ISO code. + name: source.geo.country_iso_code + type: keyword +- description: Country name. + name: source.geo.country_name + type: keyword +- description: Longitude and latitude. + name: source.geo.location + type: geo_point +- description: |- + Postal code associated with the location. + Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. + name: source.geo.postal_code + type: keyword +- description: Region ISO code. + name: source.geo.region_iso_code + type: keyword +- description: Region name. + name: source.geo.region_name + type: keyword +- description: The time zone of the location, such as IANA time zone name. + name: source.geo.timezone + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: MD5 hash. + name: threat.indicator.file.hash.md5 + type: keyword +- description: SHA1 hash. + name: threat.indicator.file.hash.sha1 + type: keyword +- description: SHA256 hash. + name: threat.indicator.file.hash.sha256 + type: keyword +- description: User email address. + name: user.email + type: keyword +- description: Name of the group. + name: user.group.name + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword +- description: Array of user roles at the time of the event. + name: user.roles + type: keyword +- description: Name of the user agent. + name: user_agent.name + type: keyword +- description: Unparsed user_agent string. + multi_fields: + - name: text + type: match_only_text + name: user_agent.original + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.name + type: keyword +- description: Operating system version as a raw string. + name: user_agent.os.version + type: keyword +- description: Version of the user agent. + name: user_agent.version + type: keyword diff --git a/packages/netskope/1.0.0/data_stream/alerts/fields/fields.yml b/packages/netskope/1.0.0/data_stream/alerts/fields/fields.yml new file mode 100755 index 0000000000..33542d9154 --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/alerts/fields/fields.yml @@ -0,0 +1,1856 @@ +- name: netskope.alerts + type: group + fields: + - name: access_method + type: keyword + description: | + Cloud app traffic can be steered to the Netskope cloud using different deployment methods such as Client (Netskope Client), Secure Forwarder etc. Administrators can also upload firewall and/or proxy logs for log analytics. This field shows the actual access method that triggered the event. For log uploads this shows the actual log type such as PAN, Websense, etc. + - name: account + type: group + fields: + - name: id + type: keyword + description: | + Account ID (usually is account number as provided by the cloud provider). + - name: name + type: keyword + description: | + Account name - in case of AWS this is the instance name set by user. For others, account name is provided by cloud provider. + - name: acked + type: boolean + description: | + Whether user acknowledged the alert or not. + - name: acting + type: group + fields: + - name: role + type: keyword + description: | + N/A + - name: action + type: keyword + description: | + Action taken on the event for the policy. + - name: activities + type: array + description: | + N/A + - name: activity + type: group + fields: + - name: name + type: keyword + description: | + Description of the user performed activity. + - name: status + type: keyword + description: | + Displayed when the user is denied access while performing some activity. + - name: type + type: keyword + description: | + Displayed when only admins can perform the activity in question. + - name: agg + type: group + fields: + - name: window + type: long + description: | + N/A + - name: aggregated + type: group + fields: + - name: user + type: boolean + description: | + N/A + - name: alert + type: group + fields: + - name: affected.entities + type: keyword + description: | + N/A + - name: category + type: keyword + description: | + N/A + - name: description + type: keyword + description: | + N/A + - name: detection.stage + type: keyword + description: | + N/A + - name: id + type: keyword + description: | + Hash of alert generated from code. + - name: name + type: keyword + description: | + Name of the alert. + - name: notes + type: keyword + description: | + N/A + - name: query + type: keyword + description: | + N/A + - name: score + type: long + description: | + N/A + - name: source + type: keyword + description: | + N/A + - name: status + type: keyword + description: | + N/A + - name: type + type: keyword + description: | + Shows if it is an application event or a connection event. Application events are recorded to track user events inside a cloud app. Connection events shows the actual HTTP connection. + - name: window + type: long + description: | + N/A + - name: algorithm + type: keyword + description: | + N/A + - name: anomaly + type: group + fields: + - name: efficacy + type: keyword + description: | + Full anomaly details for debugging. + - name: fields + type: keyword + description: | + Name(s) and values(s) of the anomalous fields, usually there's going to be only one in the list. + - name: id + type: keyword + description: | + N/A + - name: magnitude + type: double + description: | + N/A + - name: type + type: keyword + description: | + Type of UBA alert. + - name: app + type: group + fields: + - name: suite + type: keyword + description: | + N/A + - name: app_name + type: keyword + description: | + N/A + - name: name + type: keyword + description: | + Specific cloud application used by the user (e.g. app = Dropbox). + - name: activity + type: keyword + description: | + N/A + - name: category + type: keyword + description: | + N/A + - name: region + type: keyword + description: | + N/A + - name: session.id + type: keyword + description: | + Unique App/Site Session ID for traffic_type = CloudApp and Web. An app session starts when a user starts using a cloud app/site on and ends once they have been inactive for a certain period of time(15 mins). Use app_session_id to check all the user activities in a single app session. app_session_id is unique for a user, device, browser and domain. + - name: asn + type: long + description: | + N/A + - name: asset + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: object.id + type: keyword + description: | + N/A + - name: attachment + type: keyword + description: | + File name. + - name: audit + type: group + fields: + - name: category + type: keyword + description: | + The subcategories in an application such as IAM, EC in AWS, login, token, file, etc., in case of Google. + - name: type + type: keyword + description: | + The sub category in audit according to SaaS / IaaS apps. + - name: bin + type: group + fields: + - name: timestamp + type: long + description: | + Applicable to only: Shared Credentials, Data Exfiltration, Bulk Anomaly types( Bulk Upload/Download/Delete) and Failed Login Anomaly type. Bin TimeStamp (is a window used that is used for certain types of anomalies - for breaking into several windows per day/hour). + - name: breach + type: group + fields: + - name: description + type: keyword + description: | + N/A + - name: date + type: double + description: | + Breach date for compromised credentials. + - name: id + type: keyword + description: | + Breach ID for compromised credentials. + - name: media_references + type: keyword + description: | + Media references of breach. + - name: score + type: long + description: | + Breach score for compromised credentials. + - name: target_references + type: keyword + description: | + Breach target references for compromised credentials. + - name: browser + type: group + fields: + - name: session.id + type: keyword + description: | + Browser session ID. If there is an idle timeout of 15 minutes, it will timeout the session. + - name: bucket + type: keyword + description: | + N/A + - name: bypass + type: group + fields: + - name: traffic + type: boolean + description: | + Tells if traffic is bypassed by Netskope. + - name: category + type: group + fields: + - name: name + type: keyword + description: | + N/A + - name: id + type: keyword + description: | + Matching category ID according to policy. Populated for both cloud and web traffic. + - name: cci + type: keyword + description: | + N/A + - name: ccl + type: keyword + description: | + Cloud Confidence Level. CCL measures the enterprise readiness of the cloud apps taking into consideration those apps security, auditability and business continuity. Each app is assigned one of five cloud confidence levels: excellent, high, medium, low, or poor. Useful for querying if users are accessing a cloud app with a lower CCL. + - name: channel + type: keyword + description: | + Channel of the user for slack and slack enterprise apps. + - name: cloud + type: group + fields: + - name: provider + type: keyword + description: | + N/A + - name: compliance + type: group + fields: + - name: standards + type: keyword + description: | + N/A + - name: compute + type: group + fields: + - name: instance + type: keyword + description: | + N/A + - name: connection + type: group + fields: + - name: duration + type: long + description: | + Duration of the connection in milliseconds. Useful for querying long-lived sessions. + - name: endtime + type: long + description: | + Connection end time. + - name: id + type: keyword + description: | + Each connection has a unique ID. Shows the ID for the connection event. + - name: starttime + type: long + description: | + Connection start time. + - name: created_at + type: keyword + description: | + N/A + - name: count + type: long + description: | + Number of raw log lines/events sessionized or suppressed during the suppressed interval. + - name: data + type: group + fields: + - name: type + type: keyword + description: | + Content type of upload/download. + - name: version + type: long + description: | + N/A + - name: description + type: keyword + description: | + N/A + - name: destination + type: group + fields: + - name: geoip_src + type: long + description: | + Source from where the location of Destination IP was derived. + - name: detected-file-type + type: keyword + description: | + N/A + - name: detection + type: group + fields: + - name: engine + type: keyword + description: | + Customer exposed detection engine name. + - name: type + type: keyword + description: | + Same as malware type. Duplicate. + - name: device + type: group + fields: + - name: classification + type: keyword + description: | + Designation of device as determined by the Netskope Client as to whether the device is managed or not. + - name: name + type: keyword + description: | + Device type from where the user accessed the cloud app. It could be Macintosh Windows device, iPad etc. + - name: dlp + type: group + fields: + - name: file + type: keyword + description: | + File/Object name extracted from the file/object. + - name: fingerprint.classification + type: keyword + description: | + Fingerprint classification. + - name: fingerprint.match + type: keyword + description: | + Fingerprint classification match file name. + - name: fingerprint.score + type: long + description: | + Fingerprint classification score. + - name: fv + type: long + description: | + N/A + - name: incident.id + type: keyword + description: | + Incident ID associated with sub-file. In the case of main file, this is same as the parent incident ID. + - name: is_unique_count + type: boolean + description: | + True or false depending upon if rule is unique counted per rule data. + - name: mail.parent.id + type: keyword + description: | + N/A + - name: parent.id + type: keyword + description: | + Incident ID associated with main container (or non-container) file that was scanned. + - name: profile + type: keyword + description: | + DLP profile name. + - name: rule.count + type: long + description: | + Count of rule hits. + - name: rule.score + type: long + description: | + DLP rule score for weighted dictionaries. + - name: rule.severity + type: keyword + description: | + Severity of rule. + - name: unique_count + type: long + description: | + Integer value of number of unique matches seen per rule data. Only present if rule is uniquely counted. + - name: rule.name + type: keyword + description: | + DLP rule that triggered. + - name: doc + type: group + fields: + - name: count + type: long + description: | + N/A + - name: domain + type: keyword + description: | + Domain value. This will hold the host header value or SNI or extracted from absolute URI. + - name: domain_shared_with + type: keyword + description: | + N/A + - name: download + type: group + fields: + - name: app + type: keyword + description: | + Applicable to only data exfiltration. Download App (App in the download event). + - name: drive + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: dynamic + type: group + fields: + - name: classification + type: keyword + description: | + URLs were categorized by NSURLC machine or not. + - name: elastic_key + type: keyword + description: | + N/A + - name: email + type: group + fields: + - name: source + type: keyword + description: | + N/A + - name: encrypt + type: group + fields: + - name: failure + type: keyword + description: | + Reason of failure while encrypting. + - name: encryption + type: group + fields: + - name: service.key + type: keyword + description: | + N/A + - name: enterprise + type: group + fields: + - name: id + type: keyword + description: | + EnterpriseID in case of Slack for Enterprise. + - name: name + type: keyword + description: | + Enterprise name in case of Slack for Enterprise. + - name: entity + type: group + fields: + - name: list + type: array + description: | + N/A + - name: type + type: keyword + description: | + N/A + - name: value + type: keyword + description: | + N/A + - name: event_source_channel + type: keyword + description: | + N/A + - name: event + type: group + fields: + - name: detail + type: keyword + description: | + N/A + - name: id + type: keyword + description: | + N/A + - name: type + type: keyword + description: | + Anomaly type. + - name: exposure + type: keyword + description: | + Exposure of a document. + - name: external + type: group + fields: + - name: collaborator.count + type: long + description: | + Count of external collaborators on a file/folder. Supported for some apps. + - name: email + type: long + description: | + N/A + - name: feature + type: group + fields: + - name: description + type: keyword + description: | + N/A + - name: id + type: keyword + description: | + N/A + - name: name + type: keyword + description: | + N/A + - name: file + type: group + fields: + - name: name + type: keyword + description: | + N/A + - name: id + type: keyword + description: | + Unique identifier of the file. + - name: lang + type: keyword + description: | + Language of the file. + - name: password.protected + type: keyword + description: | + N/A + - name: path.orignal + type: keyword + description: | + If the file is moved, then keep original path of the file in this field. + - name: size + type: long + description: | + Size of the file in bytes. + - name: type + type: keyword + description: | + File type. + - name: flow_status + type: keyword + description: | + N/A + - name: from + type: group + fields: + - name: logs + type: keyword + description: | + Shows if the event was generated from the Risk Insights log. + - name: object + type: keyword + description: | + Initial name of an object that has been renamed, copied or moved. + - name: storage + type: keyword + description: | + N/A + - name: user_category + type: keyword + description: | + Type of from_user. + - name: gateway + type: keyword + description: | + N/A + - name: graph + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: http_status + type: keyword + description: | + N/A + - name: http_transaction_count + type: long + description: | + HTTP transaction count. + - name: iaas + type: group + fields: + - name: asset.tags + type: keyword + description: | + List of tags associated with the asset for which alert is raised. Each tag is a key/value pair. + - name: remediated + type: keyword + description: | + N/A + - name: iam + type: group + fields: + - name: session + type: keyword + description: | + N/A + - name: id + type: keyword + description: | + N/A + - name: insertion_epoch_timestamp + type: long + description: | + Insertion timestamp. + - name: instance_name + type: keyword + description: | + Instance associated with an organization application instance. + - name: instance + type: group + fields: + - name: id + type: keyword + description: | + Unique ID associated with an organization application instance. + - name: name + type: keyword + description: | + Instance name associated with an organization application instance. + - name: type + type: keyword + description: | + Instance type. + - name: internal + type: group + fields: + - name: collaborator.count + type: long + description: | + Count of internal collaborators on a file/folder. Supported for some apps. + - name: ip + type: group + fields: + - name: protocol + type: keyword + description: | + N/A + - name: ipblock + type: keyword + description: | + IPblock that caused the alert. + - name: is_alert + type: boolean + description: | + Indicates whether alert is generated or not. Populated as yes for all alerts. + - name: is_file_passwd_protected + type: boolean + description: | + Tells if the file is password protected. + - name: is_malicious + type: boolean + description: | + Only exists if some HTTP transaction belonging to the page event resulted in a malsite alert. + - name: is_two_factor_auth + type: keyword + description: | + N/A + - name: is_universal_connector + type: keyword + description: | + N/A + - name: is_user_generated + type: boolean + description: | + Tells whether it is user generated page event. + - name: is_web_universal_connector + type: boolean + description: | + N/A + - name: isp + type: keyword + description: | + N/A + - name: item + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: justification + type: group + fields: + - name: reason + type: keyword + description: | + Justification reason provided by user. For following policies, justification events are raised. User is displayed a notification popup, user enters justification and can select to proceed or block: useralert policy, dlp block policy, block policy with custom template which contains justification text box. + - name: type + type: keyword + description: | + Type of justification provided by user when user bypasses the policy block. + - name: last + type: group + fields: + - name: app + type: keyword + description: | + Last application (app in the first/older event). Applies to only proximity anomaly alert. + - name: coordinates + type: keyword + description: | + Last location coordinates(latitude, longitude). Applies to only proximity alert. + - name: country + type: keyword + description: | + Last location (Country). Applies to only proximity anomaly alert. + - name: device + type: keyword + description: | + Last device name (Device Name in the first/older event). Applies to only proximity anomaly alert. + - name: location + type: keyword + description: | + Last location (City). Applies to only proximity anomaly alert. + - name: modified_timestamp + type: long + description: | + Timestamp when alert is acknowledged. + - name: region + type: keyword + description: | + Applies to only proximity anomaly alert. + - name: timestamp + type: long + description: | + Last timestamp (timestamp in the first/older event). Applies to only proximity anomaly alert. + - name: latency + type: group + fields: + - name: max + type: long + description: | + Max latency for a connection in milliseconds. + - name: min + type: long + description: | + Min latency for a connection in milliseconds. + - name: total + type: long + description: | + Total latency from proxy to app in milliseconds. + - name: legal_hold + type: group + fields: + - name: custodian_name + type: keyword + description: | + Custodian name of legal hold profile. + - name: destination.app + type: keyword + description: | + Destination appname of legalhold action. + - name: destination.instance + type: keyword + description: | + Destination instance of legal hold action. + - name: file.id + type: keyword + description: | + File ID of legal hold file. + - name: file.name + type: keyword + description: | + File name of legal hold file. + - name: file.name_original + type: keyword + description: | + Original filename of legal hold file. + - name: file.path + type: keyword + description: | + File path of legal hold file. + - name: profile_name + type: keyword + description: | + Legal hold profile name. + - name: shared + type: keyword + description: | + Shared type of legal hold file. + - name: shared_with + type: keyword + description: | + User shared with the legal hold file. + - name: version + type: keyword + description: | + File version of original file. + - name: list + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: local + type: group + fields: + - name: md5 + type: keyword + description: | + md5 hash of file generated by Malware engine. + - name: sha1 + type: keyword + description: | + sha1 hash of file generated by Malware engine. + - name: sha256 + type: keyword + description: | + sha256 hash of file generated by Malware engine. + - name: log + type: group + fields: + - name: file.name + type: keyword + description: | + Log file name for Risk Insights. + - name: login + type: group + fields: + - name: type + type: keyword + description: | + Salesforce login type. + - name: url + type: flattened + description: | + Salesforce login URL. + - name: malsite + type: group + fields: + - name: active + type: long + description: | + Since how many days malsite is Active. + - name: as.number + type: keyword + description: | + Malsite ASN Number. + - name: category + type: keyword + description: | + Category of malsite [ Phishing / Botnet / Malicous URL, etc. ]. + - name: city + type: keyword + description: | + Malsite city. + - name: confidence + type: long + description: | + Malsite confidence score. + - name: consecutive + type: long + description: | + How many times that malsite is seen. + - name: country + type: keyword + description: | + Malsite country. + - name: dns.server + type: keyword + description: | + DNS server of the malsite URL/Domain/IP. + - name: first_seen + type: long + description: | + Malsite first seen timestamp. + - name: hostility + type: long + description: | + Malsite hostility score. + - name: id + type: keyword + description: | + Malicious Site ID - Hash of threat match value. + - name: ip_host + type: keyword + description: | + Malsite IP. + - name: isp + type: keyword + description: | + Malsite ISP info. + - name: last.seen + type: long + description: | + Malsite last seen timestamp. + - name: latitude + type: double + description: | + Latitude plot of the Malsite URL/IP/Domain. + - name: longitude + type: double + description: | + Longitude plot of the Malsite URL/IP/Domain. + - name: region + type: keyword + description: | + Region of the malsite URL/IP/Domain. + - name: reputation + type: double + description: | + Reputation score of Malsite IP/Domain/URL. + - name: malware + type: group + fields: + - name: id + type: keyword + description: | + md5 hash of the malware name as provided by the scan engine. + - name: name + type: keyword + description: | + Netskope detection name. + - name: profile + type: keyword + description: | + tss_profile: profile which user has selected. Data comes from WebUI. Its a json structure. + - name: severity + type: keyword + description: | + Malware severity. + - name: type + type: keyword + description: | + Malware Type. + - name: managed + type: group + fields: + - name: app + type: boolean + description: | + Whether or not the app in question is managed. + - name: management + type: group + fields: + - name: id + type: keyword + description: | + Management ID. + - name: matched + type: group + fields: + - name: username + type: keyword + description: | + N/A + - name: matrix + type: group + fields: + - name: columns + type: keyword + description: | + N/A + - name: rows + type: keyword + description: | + N/A + - name: md5 + type: keyword + description: | + md5 of the file. + - name: md5_list + type: keyword + description: | + List of md5 hashes specific to the files that are part of custom sequence policy alert. + - name: mime + type: group + fields: + - name: type + type: keyword + description: | + MIME type of the file. + - name: ml_detection + type: boolean + description: | + N/A + - name: modified + type: group + fields: + - name: timestamp + type: long + description: | + Timestamp corresponding to the modification time of the entity (file, etc.). + - name: date + type: long + description: | + N/A + - name: netskope_pop + type: keyword + description: | + N/A + - name: network + type: group + fields: + - name: name + type: keyword + description: | + N/A + - name: security.group + type: array + description: | + N/A + - name: new + type: group + fields: + - name: value + type: keyword + description: | + New value for a given file for salesforce.com. + - name: nonzero + type: group + fields: + - name: entries + type: long + description: | + N/A + - name: percentage + type: double + description: | + N/A + - name: notify + type: group + fields: + - name: template + type: keyword + description: | + N/A + - name: ns_activity + type: keyword + description: | + Maps app activity to Netskope standard activity. + - name: ns_device_uid + type: keyword + description: | + Device identifiers on macOS and Windows. + - name: numbytes + type: long + description: | + Total number of bytes that were transmitted for the connection - numbytes = client_bytes + server_bytes. + - name: obfuscate + type: boolean + description: | + N/A + - name: object + type: group + fields: + - name: count + type: long + description: | + Displayed when the activity is Delete. Shows the number of objects being deleted. + - name: id + type: keyword + description: | + Unique ID associated with an object. + - name: name + type: keyword + description: | + Name of the object which is being acted on. It could be a filename, folder name, report name, document name, etc. + - name: type + type: keyword + description: | + Type of the object which is being acted on. Object type could be a file, folder, report, document, message, etc. + - name: old + type: group + fields: + - name: value + type: keyword + description: | + Old value for a given file for salesforce.com. + - name: org + type: keyword + description: | + Search for events from a specific organization. Organization name is derived from the user ID. + - name: organization + type: group + fields: + - name: unit + type: keyword + description: | + Org Units for which the event correlates to. This ties to user information extracted from Active Directory using the Directory Importer/AD Connector application. + - name: orig_ty + type: keyword + description: | + Event Type of original event. + - name: original + type: group + fields: + - name: file_path + type: keyword + description: | + If the file is moved, then keep original path of the file in this field. + - name: os_version_hostname + type: keyword + description: | + Host and OS Version that caused the alert. Concatenation of 2 fields (hostname and os). + - name: other + type: group + fields: + - name: categories + type: keyword + description: | + N/A + - name: owner + type: keyword + description: | + Owner of the file. + - name: page + type: group + fields: + - name: url + type: flattened + description: | + The URL of the originating page. + - name: site + type: keyword + description: | + N/A + - name: parameters + type: keyword + description: | + N/A + - name: parent + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: path + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: policy + type: group + fields: + - name: actions + type: keyword + description: | + N/A + - name: id + type: keyword + description: | + The Netskope internal ID for the policy created by an admin. + - name: name + type: keyword + description: | + Predefined or Custom policy name. + - name: pretty + type: group + fields: + - name: sourcetype + type: keyword + description: | + N/A + - name: processing + type: group + fields: + - name: time + type: long + description: | + N/A + - name: profile + type: group + fields: + - name: emails + type: keyword + description: | + List of profile emails per policy. + - name: id + type: keyword + description: | + Anomaly profile ID. + - name: quarantine + type: group + fields: + - name: action.reason + type: keyword + description: | + Reason for the action taken for quarantine. + - name: admin + type: keyword + description: | + Quarantine profile custodian email/name. + - name: app + type: keyword + description: | + Quarantine app name. + - name: failure + type: keyword + description: | + Reason of failure. + - name: file.id + type: keyword + description: | + File ID of the quarantined file. + - name: file.name + type: keyword + description: | + File name of the quarantine file. + - name: instance + type: keyword + description: | + Quarantine instance name. + - name: original.file.name + type: keyword + description: | + Original file name which got quarantined. + - name: original.file.path + type: keyword + description: | + Original file path which got quarantined. + - name: original.shared + type: keyword + description: | + Original file shared user details. + - name: original.version + type: keyword + description: | + Original version of file which got quarantined. + - name: profile + type: group + fields: + - name: name + type: keyword + description: | + Quarantine profile name of policy for quarantine action. + - name: id + type: keyword + description: | + Quarantine profile ID. + - name: shared.with + type: keyword + description: | + N/A + - name: referer + type: keyword + description: | + Referer URL of the application(with http) that the user visited as provided by the log or data plane traffic. + - name: region + type: group + fields: + - name: id + type: keyword + description: | + Region ID (as provided by the cloud provider). + - name: name + type: keyword + description: | + N/A + - name: reladb + type: keyword + description: | + N/A + - name: repo + type: keyword + description: | + N/A + - name: request + type: group + fields: + - name: cnt + type: long + description: | + Total number of HTTP requests (equal to number of transaction events for this page event) sent from client to server over one underlying TCP connection. + - name: id + type: keyword + description: | + Unique request ID for the event. + - name: resource + type: group + fields: + - name: category + type: keyword + description: | + Category of resource as defined in DOM. + - name: group + type: keyword + description: | + N/A + - name: resources + type: keyword + description: | + N/A + - name: response + type: group + fields: + - name: cnt + type: long + description: | + Total number of HTTP responses (equal to number of transaction events for this page event) from server to client. + - name: content.length + type: long + description: | + N/A + - name: content.type + type: keyword + description: | + N/A + - name: retro + type: group + fields: + - name: scan.name + type: keyword + description: | + Retro scan name. + - name: risk_level + type: group + fields: + - name: id + type: keyword + description: | + This field is set by both role-based access (RBA) and MLAD. + - name: tag + type: keyword + description: | + Corresponding field to risk_level_id. Name. + - name: role + type: keyword + description: | + Roles for Box. + - name: rule + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: sa + type: group + fields: + - name: rule.id + type: keyword + description: | + CSA rule ID. + - name: rule.name + type: keyword + description: | + CSA rule name. + - name: profile.id + type: keyword + description: | + CSA profile ID. + - name: profile.name + type: keyword + description: | + CSA profile name. + - name: rule.remediation + type: keyword + description: | + N/A + - name: rule.severity + type: keyword + description: | + Rule severity. + - name: scan + type: group + fields: + - name: time + type: long + description: | + Time when the scan is done. + - name: type + type: keyword + description: | + Generated during retroactive scan or new ongoing activity. + - name: scopes + type: keyword + description: | + List of permissions for google apps. + - name: serial + type: keyword + description: | + N/A + - name: server + type: group + fields: + - name: bytes + type: long + description: | + Total number of downloaded from server to client. + - name: session + type: group + fields: + - name: id + type: keyword + description: | + Populated by Risk Insights. + - name: severity + type: group + fields: + - name: level + type: keyword + description: | + Severity used by watchlist and malware alerts. + - name: id + type: keyword + description: | + Severity ID used by watchlist and malware alerts. + - name: malsite + type: group + fields: + - name: severity.level + type: keyword + description: | + Severity level of the Malsite ( High / Med / Low). + - name: severity + type: group + fields: + - name: level_id + type: long + description: | + If the Severity Level ID is 1, it means that URL / IP /Domain is detected from Internal threat feed and if Severity Level ID is 2, then it means the detection happened based on the Zvelo DB Malsite Category. + - name: sfwder + type: keyword + description: | + N/A + - name: shared_type + type: keyword + description: | + N/A + - name: shared + type: group + fields: + - name: credential.user + type: keyword + description: | + Applicable to only shared credentials. User with whom the credentials are shared with. + - name: domains + type: keyword + description: | + List of domains of users the document is shared with. + - name: is_shared + type: boolean + description: | + If the file is shared or not. + - name: type + type: keyword + description: | + Shared Type. + - name: with + type: keyword + description: | + Array of emails with whom a document is shared with. + - name: site + type: keyword + description: | + For traffic_type = CloudApp, site = app and for traffic_type = Web, it will be the second level domain name + top-level domain name. For example, in "www.cnn.com", it is "cnn.com". + - name: source + type: group + fields: + - name: geoip_src + type: long + description: | + Source from where the location of Source IP was derived. + - name: srcip2 + type: keyword + description: | + N/A + - name: ssl + type: group + fields: + - name: decrypt.policy + type: keyword + description: | + Applicable to only bypass events. There are 2 ways to create rules for bypass: + Bypass due to Exception Configuration + Bypass due to SSL Decrypt Policy + The existing flag bypass_traffic only gives information that a flow has been bypassed, but does not tell exactly which policy was responsible for it. ssl_decrypt_policy field will provide this extra information. In addition, policy field will be also set for every Bypass event. + - name: start_time + type: long + description: | + Start time for alert time period. + - name: statistics + type: long + description: | + This field & summary field go together. This field will either tell count or size of files. File size is in bytes. + - name: storage_service_bucket + type: keyword + description: | + N/A + - name: sub + type: group + fields: + - name: type + type: keyword + description: | + Workplace by Facebook post sub category (files, comments, status etc). + - name: summary + type: keyword + description: | + Tells whether anomaly was measured from count or size of files. + - name: suppression + type: group + fields: + - name: end.time + type: long + description: | + When events are suppressed (like collaboration apps), then the suppression end time will be set and only one event will be send with suppression start time and end time and count of occurrence. + - name: key + type: keyword + description: | + To limit the number of events. Example: Suppress block event for browse. + - name: start.time + type: long + description: | + When events are suppressed (like collaboration apps), then the suppression end time will be set and only one event will be send with suppression start time and end time and count of occurrence. + - name: target + type: group + fields: + - name: entity.key + type: keyword + description: | + N/A + - name: entity.type + type: keyword + description: | + N/A + - name: entity.value + type: keyword + description: | + N/A + - name: team + type: keyword + description: | + Slack team name. + - name: telemetry + type: group + fields: + - name: app + type: keyword + description: | + Typically SaaS app web sites use web analytics code within the pages to gather analytic data. When a SaaS app action or page is shown, there is subsequent traffic generated to tracking apps such as doubleclick.net, Optimizely, etc. These tracking apps are listed if applicable in the Telemetry App field. + - name: temp + type: group + fields: + - name: user + type: keyword + description: | + N/A + - name: tenant + type: group + fields: + - name: id + type: keyword + description: | + Tenant id. + - name: threat + type: group + fields: + - name: match.value + type: keyword + description: | + N/A + - name: match.field + type: keyword + description: | + Threat match field, either from domain or URL or IP. + - name: source.id + type: keyword + description: | + Threat source id: 1 - NetskopeThreatIntel, 2 - Zvelodb. + - name: threshold + type: group + fields: + - name: time + type: long + description: | + Applicable to: Shared Credentials, Data Exfiltration, Bulk Anomaly types( Bulk Upload/ Download/ Delete) and Failed Login Anomaly type. Threshold Time. + - name: value + type: long + description: | + Threshold (Count at which the anomaly should trigger). Applicable to Bulk Anomaly types( Bulk Upload/ Download/ Delete) and Failed Login Anomaly type. + - name: title + type: keyword + description: | + Title of the file. + - name: to + type: group + fields: + - name: object + type: keyword + description: | + Changed name of an object that has been renamed, copied, or moved. + - name: storage + type: keyword + description: | + N/A + - name: user + type: keyword + description: | + Used when a file is moved from user A to user B. Shows the email address of user B. + - name: user_category + type: keyword + description: | + Type of user to which move is done. + - name: total + type: group + fields: + - name: collaborator.count + type: long + description: | + Count of collaborators on a file/folder. Supported for some apps. + - name: traffic + type: group + fields: + - name: type + type: keyword + description: | + Type of the traffic: CloudApp or Web. CloudApp indicates CASB and web indicates HTTP traffic. Web traffic is only captured for inline access method. It is currently not captured for Risk Insights. + - name: transaction + type: group + fields: + - name: id + type: keyword + description: | + Unique ID for a given request/response. + - name: transformation + type: keyword + description: | + N/A + - name: tss + type: group + fields: + - name: mode + type: keyword + description: | + Malware scanning mode, specifies whether it's Real-time Protection or API Data Protection. + - name: version + type: long + description: | + N/A + - name: tunnel + type: group + fields: + - name: id + type: keyword + description: | + Shows the Client installation ID. Only available for the Client steering configuration. + - name: type + type: keyword + description: | + Type of the alert. + - name: updated + type: long + description: | + N/A + - name: url + type: flattened + description: | + URL of the application that the user visited as provided by the log or data plane traffic. + - name: Url2Activity + type: keyword + description: | + Populated if the activity from the URL matches certain activities. This field applies to Risk Insights only. + - name: user + type: group + fields: + - name: category + type: keyword + description: | + Type of user in an enterprise - external / internal. + - name: group + type: keyword + description: | + N/A + - name: ip + type: keyword + description: | + IP address of User. + - name: geo + type: group + fields: + - name: city_name + type: keyword + description: | + City name. + - name: continent_name + type: keyword + description: | + Name of the continent. + - name: country_iso_code + type: keyword + description: | + Country ISO code. + - name: country_name + type: keyword + description: | + Country name. + - name: location + type: geo_point + description: | + Longitude and latitude. + - name: region_iso_code + type: keyword + description: | + Region ISO code. + - name: region_name + type: keyword + description: | + Region name. + - name: value + type: double + description: | + N/A + - name: violating_user + type: group + fields: + - name: name + type: keyword + description: | + User who caused a violation. Populated for Workplace by Facebook. + - name: type + type: keyword + description: | + Category of the user who caused a violation. Populated for Workplace by Facebook. + - name: web + type: group + fields: + - name: url + type: flattened + description: | + File preview URL. + - name: workspace + type: group + fields: + - name: id + type: keyword + description: | + Workspace ID in case of Slack for Enterprise. + - name: name + type: keyword + description: | + Workspace name in case of Slack for Enterprise. + - name: zip + type: group + fields: + - name: password + type: keyword + description: | + Zip the malicious file and put pwd to it and send it back to caller. + - name: scanner_result + type: keyword + description: | + N/A + - name: slc_latitude + type: keyword + description: | + N/A + - name: slc_longitude + type: keyword + description: | + N/A + - name: source + type: group + fields: + - name: time + type: keyword + description: | + N/A + - name: uba_ap1 + type: keyword + description: | + N/A + - name: uba_ap2 + type: keyword + description: | + N/A + - name: uba_inst1 + type: keyword + description: | + N/A + - name: uba_inst2 + type: keyword + description: |- + N/A +- name: log.source.address + type: keyword + description: Source address from which the log event was read / sent from. diff --git a/packages/netskope/1.0.0/data_stream/alerts/manifest.yml b/packages/netskope/1.0.0/data_stream/alerts/manifest.yml new file mode 100755 index 0000000000..73acd6e99c --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/alerts/manifest.yml @@ -0,0 +1,41 @@ +title: Alerts +type: logs +streams: + - input: tcp + template_path: tcp.yml.hbs + title: Netskope Alerts + description: Collect Netskope Alerts using tcp input + vars: + - name: listen_port + type: integer + title: Listen Port + description: The TCP port number to listen on. + multi: false + required: true + show_user: true + default: 9020 + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - netskope-alerts + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original` + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: >- + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. diff --git a/packages/netskope/1.0.0/data_stream/alerts/sample_event.json b/packages/netskope/1.0.0/data_stream/alerts/sample_event.json new file mode 100755 index 0000000000..e287ed230b --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/alerts/sample_event.json @@ -0,0 +1,182 @@ +{ + "@timestamp": "2021-12-23T16:27:09.000Z", + "agent": { + "ephemeral_id": "f6ea30bb-70ab-4ae9-b338-b103657dd749", + "id": "52d90929-98ee-4480-9b14-fe07637d0bbe", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.3.0" + }, + "data_stream": { + "dataset": "netskope.alerts", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "address": "81.2.69.143", + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.143" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "52d90929-98ee-4480-9b14-fe07637d0bbe", + "snapshot": true, + "version": "8.3.0" + }, + "event": { + "agent_id_status": "verified", + "id": "f621f259f5fbde850ad5593a", + "ingested": "2022-04-14T11:24:23Z", + "original": "{\"event\":{\"id\":\"f621f259f5fbde850ad5593a\"},\"netskope\":{\"alerts\":{\"insertion_epoch_timestamp\":1640277131,\"access_method\":\"API Connector\",\"acked\":\"false\",\"action\":\"block\",\"activity\":{\"name\":\"Login Successful\"},\"is_alert\":\"yes\",\"alert\":{\"name\":\"policy-alert\",\"type\":\"nspolicy\"},\"app\":{\"name\":\"SomeApp\",\"category\":\"Cloud Storage\"},\"category\":{\"name\":\"Cloud Storage\"},\"cci\":\"81\",\"ccl\":\"high\",\"count\":1,\"device\":{\"name\":\"Other\"},\"destination\":{\"geoip_src\":2},\"exposure\":\"organization_wide_link\",\"file\":{\"lang\":\"ENGLISH\"},\"instance\":{\"name\":\"example.com\",\"id\":\"example.com\"},\"modified\":{\"timestamp\":1613760236},\"object\":{\"name\":\"HjBuUvDLWgpudzQr\",\"id\":\"GxyjNjJxKg14W3Mb57aLY9_klcxToPEyqIoNAcF82rGg\",\"type\":\"File\"},\"organization\":{\"unit\":\"example.local\\\\\\\\/example\\\\\\\\/Active Users\"},\"other\":{\"categories\":\"null\"},\"owner\":\"foobar\",\"policy\":{\"name\":\"Some Policy\"},\"request\":{\"id\":\"9262245914980288500\"},\"scan\":{\"type\":\"Ongoing\"},\"shared\":{\"with\":\"none\"},\"site\":\"Example\",\"source\":{\"geoip_src\":2},\"suppression\":{\"key\":\"Tenant Migration across MPs\"},\"traffic\":{\"type\":\"CloudApp\"},\"type\":\"policy\",\"url\":\"http:\\\\\\\\/\\\\\\\\/www.example.com\\\\\\\\/open?id=WLb5Mc7aPGx914gEyYNjJxTo32yjF8xKAcqIoN_klrGg\"}},\"user_agent\":{\"name\":\"unknown\",\"os\":{\"name\":\"unknown\"}},\"destination\":{\"geo\":{\"country_iso_code\":\"NL\",\"location\":{\"lat\":52.3759,\"lon\":4.8975},\"city_name\":\"Amsterdam\",\"region_name\":\"North Holland\",\"postal_code\":\"1012\"},\"address\":\"81.2.69.143\",\"ip\":\"81.2.69.143\"},\"file\":{\"path\":\"\\\\\\\\/My Drive\\\\\\\\/Clickhouse\\\\\\\\/Tenant Migration across MPs\",\"size\":196869,\"mime_type\":{\"1\":\"application\\\\\\\\/vnd.apps.document\",\"2\":\"application\\\\\\\\/vnd.apps.document\"},\"hash\":{\"md5\":\"4bb5d9501bf7685ecaed55e3eda9ca01\"}},\"source\":{\"geo\":{\"country_iso_code\":\"NL\",\"location\":{\"lat\":52.3759,\"lon\":4.8975},\"city_name\":\"Amsterdam\",\"region_name\":\"North Holland\",\"postal_code\":\"1012\"},\"address\":\"81.2.69.143\",\"ip\":\"81.2.69.143\"},\"@timestamp\":\"2021-12-23T16:27:09.000Z\",\"user\":{\"email\":{\"1\":\"test@example.com\",\"2\":\"test@example.com\",\"3\":\"test@example.com\"},\"group\":{\"name\":\"null\"}}}" + }, + "file": { + "hash": { + "md5": "4bb5d9501bf7685ecaed55e3eda9ca01" + }, + "mime_type": [ + "application\\\\/vnd.apps.document" + ], + "path": "\\\\/My Drive\\\\/Clickhouse\\\\/Tenant Migration across MPs", + "size": 196869 + }, + "input": { + "type": "tcp" + }, + "log": { + "source": { + "address": "192.168.224.1:57542" + } + }, + "netskope": { + "alerts": { + "access_method": "API Connector", + "acked": false, + "action": "block", + "activity": { + "name": "Login Successful" + }, + "alert": { + "name": "policy-alert", + "type": "nspolicy" + }, + "app": { + "category": "Cloud Storage", + "name": "SomeApp" + }, + "category": { + "name": "Cloud Storage" + }, + "cci": "81", + "ccl": "high", + "count": 1, + "destination": { + "geoip_src": 2 + }, + "device": { + "name": "Other" + }, + "exposure": "organization_wide_link", + "file": { + "lang": "ENGLISH" + }, + "insertion_epoch_timestamp": 1640277131, + "instance": { + "id": "example.com", + "name": "example.com" + }, + "is_alert": true, + "modified": { + "timestamp": 1613760236 + }, + "object": { + "id": "GxyjNjJxKg14W3Mb57aLY9_klcxToPEyqIoNAcF82rGg", + "name": "HjBuUvDLWgpudzQr", + "type": "File" + }, + "organization": { + "unit": "example.local\\\\/example\\\\/Active Users" + }, + "owner": "foobar", + "policy": { + "name": "Some Policy" + }, + "request": { + "id": "9262245914980288500" + }, + "scan": { + "type": "Ongoing" + }, + "shared": { + "with": "none" + }, + "site": "Example", + "source": { + "geoip_src": 2 + }, + "suppression": { + "key": "Tenant Migration across MPs" + }, + "traffic": { + "type": "CloudApp" + }, + "type": "policy", + "url": { + "extension": "com\\\\/open", + "original": "http:\\\\/\\\\/www.example.com\\\\/open?id=WLb5Mc7aPGx914gEyYNjJxTo32yjF8xKAcqIoN_klrGg", + "path": "\\\\/\\\\/www.example.com\\\\/open", + "query": "id=WLb5Mc7aPGx914gEyYNjJxTo32yjF8xKAcqIoN_klrGg", + "scheme": "http" + } + } + }, + "related": { + "ip": [ + "81.2.69.143", + "81.2.69.143" + ] + }, + "source": { + "address": "81.2.69.143", + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.143" + }, + "tags": [ + "forwarded", + "netskope-alerts" + ], + "user": { + "email": [ + "test@example.com" + ] + }, + "user_agent": { + "name": "unknown", + "os": { + "name": "unknown" + } + } +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/data_stream/events/agent/stream/tcp.yml.hbs b/packages/netskope/1.0.0/data_stream/events/agent/stream/tcp.yml.hbs new file mode 100755 index 0000000000..bc587e50a3 --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/events/agent/stream/tcp.yml.hbs @@ -0,0 +1,18 @@ +host: "{{listen_address}}:{{listen_port}}" +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if ssl}} +ssl: {{ssl}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/netskope/1.0.0/data_stream/events/elasticsearch/ingest_pipeline/default.yml b/packages/netskope/1.0.0/data_stream/events/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..989c462df9 --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/events/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,253 @@ +--- +description: Pipeline for Netskope events +processors: + - set: + field: ecs.version + value: '8.0.0' + - json: + field: message + add_to_root: true + add_to_root_conflict_strategy: replace + - rename: + field: message + target_field: event.original + ignore_missing: true + - append: + field: related.ip + value: "{{{destination.ip}}}" + if: ctx?.destination?.ip != null + ignore_failure: true + - append: + field: related.ip + value: "{{{netskope.events.user.ip}}}" + if: ctx?.netskope?.events?.user?.ip != null + ignore_failure: true + - append: + field: related.ip + value: "{{{source.ip}}}" + if: ctx?.source?.ip != null + ignore_failure: true + - append: + field: related.hosts + value: "{{{destination.domain}}}" + if: ctx?.destination?.domain != null + allow_duplicates: false + ignore_failure: true + - append: + field: related.hosts + value: "{{{host.hostname}}}" + if: ctx?.host?.hostname != null + allow_duplicates: false + ignore_failure: true + - user_agent: + field: user_agent.original + ignore_failure: true + - geoip: + field: source.ip + target_field: source.geo + ignore_missing: true + - geoip: + field: destination.ip + target_field: destination.geo + ignore_missing: true + - geoip: + field: netskope.events.user.ip + target_field: netskope.events.user.geo + ignore_missing: true + - uri_parts: + field: netskope.events.url + target_field: netskope.events.url + keep_original: true + remove_if_successful: false + ignore_failure: true + - uri_parts: + field: netskope.events.web.url + target_field: netskope.events.web.url + keep_original: true + remove_if_successful: false + ignore_failure: true + - uri_parts: + field: netskope.events.login.url + target_field: netskope.events.login.url + keep_original: true + remove_if_successful: false + ignore_failure: true + - uri_parts: + field: netskope.events.url + target_field: netskope.events.url + keep_original: true + remove_if_successful: false + ignore_failure: true + - json: + field: netskope.events.site + ignore_failure: true + - json: + field: netskope.events.app.name + ignore_failure: true + - lowercase: + ignore_failure: true + field: network.protocol + - uri_parts: + field: netskope.events.referer + target_field: netskope.events.referer + keep_original: true + remove_if_successful: false + ignore_failure: true + - set: + field: netskope.events.managed_app + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.events?.managed_app?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.managed_app + value: false + if: "['no', 'false'].contains(ctx?.netskope?.events?.managed_app?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.is_bypass_traffic + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.events?.is_bypass_traffic?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.is_bypass_traffic + value: false + if: "['no', 'false'].contains(ctx?.netskope?.events?.is_bypass_traffic?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.is_unique_count + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.events?.is_unique_count?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.is_unique_count + value: false + if: "['no', 'false'].contains(ctx?.netskope?.events?.is_unique_count?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.user.is_aggregated + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.events?.user?.is_aggregated?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.user.is_aggregated + value: false + if: "['no', 'false'].contains(ctx?.netskope?.events?.user?.is_aggregated?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.alert.is_present + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.events?.alert?.is_present?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.alert.is_present + value: false + if: "['no', 'false'].contains(ctx?.netskope?.events?.alert?.is_present?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.user.generated + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.events?.user?.generated?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.user.generated + value: false + if: "['no', 'false'].contains(ctx?.netskope?.events?.user?.generated?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.ack + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.events?.ack?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.ack + value: false + if: "['no', 'false'].contains(ctx?.netskope?.events?.ack?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.is_malicious + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.events?.is_malicious?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.is_malicious + value: false + if: "['no', 'false'].contains(ctx?.netskope?.events?.is_malicious?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.obfuscate + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.events?.obfuscate?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.obfuscate + value: false + if: "['no', 'false'].contains(ctx?.netskope?.events?.obfuscate?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.shared.is_shared + value: true + if: "['yes', 'true'].contains(ctx?.netskope?.events?.shared?.is_shared?.toString()?.toLowerCase())" + ignore_failure: true + - set: + field: netskope.events.shared.is_shared + value: false + if: "['no', 'false'].contains(ctx?.netskope?.events?.shared?.is_shared?.toString()?.toLowerCase())" + ignore_failure: true + - date: + field: netskope.events.modified_at + target_field: netskope.events.modified_at + ignore_failure: true + formats: + - UNIX + - script: + if: ctx?.file?.mime_type != null + lang: painless + source: >- + def parts = ctx.file.mime_type; + if (parts != null && parts.size() > 0) { + List l = new ArrayList(); + for (entry in parts.entrySet()) { + l.add(entry.getValue()); + } + List setList = new ArrayList(new HashSet(l)); + ctx.file.mime_type = setList; + } + - script: + if: ctx?.user?.email != null + lang: painless + source: >- + def parts = ctx.user.email; + if (parts != null && parts.size() > 0) { + List l = new ArrayList(); + for (entry in parts.entrySet()) { + l.add(entry.getValue()); + } + List setList = new ArrayList(new HashSet(l)); + ctx.user.email = setList; + } + - script: + description: Drops null/empty values recursively + lang: painless + source: | + boolean dropEmptyFields(Object object) { + if (object == null || object == "" || object == "null") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); + - remove: + field: event.original + if: "ctx?.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + ignore_missing: true +on_failure: +- set: + field: error.message + value: "{{{ _ingest.on_failure_message }}}" diff --git a/packages/netskope/1.0.0/data_stream/events/fields/agent.yml b/packages/netskope/1.0.0/data_stream/events/fields/agent.yml new file mode 100755 index 0000000000..e313ec8287 --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/events/fields/agent.yml @@ -0,0 +1,204 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/netskope/1.0.0/data_stream/events/fields/base-fields.yml b/packages/netskope/1.0.0/data_stream/events/fields/base-fields.yml new file mode 100755 index 0000000000..b6306aceaf --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/events/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module + value: netskope +- name: event.dataset + type: constant_keyword + description: Event dataset + value: netskope.events diff --git a/packages/netskope/1.0.0/data_stream/events/fields/ecs.yml b/packages/netskope/1.0.0/data_stream/events/fields/ecs.yml new file mode 100755 index 0000000000..674f6f18d6 --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/events/fields/ecs.yml @@ -0,0 +1,257 @@ +- description: Packets sent from the client to the server. + name: client.packets + type: long +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: |- + Translated IP of source based NAT sessions (e.g. internal client to internet). + Typically connections traversing load balancers, firewalls, or routers. + name: client.nat.ip + type: ip +- description: Packets sent from the client to the server. + name: client.packets + type: long +- description: |- + The cloud account name or alias used to identify different entities in a multi-tenant environment. + Examples: AWS account name, Google Cloud ORG display name. + name: cloud.account.name + type: keyword +- description: Region in which this host, resource, or service is located. + name: cloud.region + type: keyword +- description: |- + The cloud service name is intended to distinguish services running on different platforms within a provider, eg AWS EC2 vs Lambda, GCP GCE vs App Engine, Azure VM vs App Server. + Examples: app engine, app service, cloud run, fargate, lambda. + name: cloud.service.name + type: keyword +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: |- + Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: destination.address + type: keyword +- description: |- + The domain name of the destination system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: destination.domain + type: keyword +- description: City name. + name: destination.geo.city_name + type: keyword +- description: Name of the continent. + name: destination.geo.continent_name + type: keyword +- description: Country ISO code. + name: destination.geo.country_iso_code + type: keyword +- description: Country name. + name: destination.geo.country_name + type: keyword +- description: Longitude and latitude. + name: destination.geo.location + type: geo_point +- description: |- + User-defined description of a location, at the level of granularity they care about. + Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. + Not typically used in automated geolocation. + name: destination.geo.name + type: keyword +- description: |- + Postal code associated with the location. + Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. + name: destination.geo.postal_code + type: keyword +- description: Region ISO code. + name: destination.geo.region_iso_code + type: keyword +- description: Region name. + name: destination.geo.region_name + type: keyword +- description: The time zone of the location, such as IANA time zone name. + name: destination.geo.timezone + type: keyword +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: Unique ID to describe the event. + name: event.id + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: MD5 hash. + name: file.hash.md5 + type: keyword +- description: MIME type should identify the format of the file or stream of bytes using https://www.iana.org/assignments/media-types/media-types.xhtml[IANA official types], where possible. When more than one type is applicable, the most specific type should be used. + name: file.mime_type + type: keyword +- description: Name of the file including the extension, without the directory. + name: file.name + type: keyword +- description: Full path to the file, including the file name. It should include the drive letter, when appropriate. + multi_fields: + - name: text + type: match_only_text + name: file.path + type: keyword +- description: |- + File size in bytes. + Only relevant when `file.type` is "file". + name: file.size + type: long +- description: |- + Hostname of the host. + It normally contains what the `hostname` command returns on the host machine. + name: host.hostname + type: keyword +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. + name: rule.id + type: keyword +- description: The name of the rule or signature generating the event. + name: rule.name + type: keyword +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: Packets sent from the server to the client. + name: server.packets + type: long +- description: |- + Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: source.address + type: keyword +- description: City name. + name: source.geo.city_name + type: keyword +- description: Name of the continent. + name: source.geo.continent_name + type: keyword +- description: Country ISO code. + name: source.geo.country_iso_code + type: keyword +- description: Country name. + name: source.geo.country_name + type: keyword +- description: Longitude and latitude. + name: source.geo.location + type: geo_point +- description: |- + Postal code associated with the location. + Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. + name: source.geo.postal_code + type: keyword +- description: Region ISO code. + name: source.geo.region_iso_code + type: keyword +- description: Region name. + name: source.geo.region_name + type: keyword +- description: The time zone of the location, such as IANA time zone name. + name: source.geo.timezone + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: MD5 hash. + name: threat.indicator.file.hash.md5 + type: keyword +- description: SHA1 hash. + name: threat.indicator.file.hash.sha1 + type: keyword +- description: SHA256 hash. + name: threat.indicator.file.hash.sha256 + type: keyword +- description: User email address. + name: user.email + type: keyword +- description: Name of the group. + name: user.group.name + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword +- description: Array of user roles at the time of the event. + name: user.roles + type: keyword +- description: Name of the device. + name: user_agent.device.name + type: keyword +- description: Name of the user agent. + name: user_agent.name + type: keyword +- description: Unparsed user_agent string. + multi_fields: + - name: text + type: match_only_text + name: user_agent.original + type: keyword +- description: Operating system name, including the version or code name. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.full + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.name + type: keyword +- description: Operating system version as a raw string. + name: user_agent.os.version + type: keyword +- description: Version of the user agent. + name: user_agent.version + type: keyword diff --git a/packages/netskope/1.0.0/data_stream/events/fields/fields.yml b/packages/netskope/1.0.0/data_stream/events/fields/fields.yml new file mode 100755 index 0000000000..e5521ff3c5 --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/events/fields/fields.yml @@ -0,0 +1,1240 @@ +- name: netskope.events + type: group + fields: + - name: url + type: flattened + description: | + URL of the application that the user visited as provided by the log or data plane traffic + - name: cci + type: keyword + description: | + N/A + - name: access_method + type: keyword + description: | + Cloud app traffic can be steered to the Netskope cloud using different deployment methods such as Client (Netskope Client), Secure Forwarder etc. Administrators can also upload firewall and/or proxy logs for log analytics. This field shows the actual access method that triggered the event. + For log uploads this shows the actual log type such as PAN, Websense, etc. + - name: ack + type: boolean + description: | + Whether user acknowledged the alert or not. + - name: activity + type: group + fields: + - name: name + type: keyword + description: | + Description of the user performed activity. + - name: status + type: keyword + description: | + Displayed when the user is denied access while performing some activity. + - name: type + type: keyword + description: | + Displayed when only admins can perform the activity in question. + - name: alarm + type: group + fields: + - name: description + type: keyword + description: | + N/A + - name: name + type: keyword + description: | + N/A + - name: alert + type: group + fields: + - name: is_present + type: boolean + description: | + Indicates whether alert is generated or not. + Populated as yes for all alerts. + - name: name + type: keyword + description: | + Name of the alert. + - name: type + type: keyword + description: | + Type of the alert. + - name: app + type: group + fields: + - name: activity + type: keyword + description: | + N/A + - name: category + type: keyword + description: | + N/A + - name: name + type: keyword + description: | + Specific cloud application used by the user (e.g. app = Dropbox). + - name: region + type: keyword + description: | + N/A + - name: session.id + type: keyword + description: | + Unique App/Site Session ID for traffic_type = CloudApp and Web. + An app session starts when a user starts using a cloud app/site on and ends once they have been inactive for a certain period of time(15 mins). Use app_session_id to check all the user activities in a single app session. app_session_id is unique for a user, device, browser and domain. + - name: attachment + type: keyword + description: | + File name. + - name: audit + type: group + fields: + - name: category + type: keyword + description: | + The subcategories in an application such as IAM, EC in AWS, login, token, file, etc., in case of Google. + - name: log.event + type: keyword + description: | + N/A + - name: type + type: keyword + description: | + The sub category in audit according to SaaS / IaaS apps. + - name: browser + type: group + fields: + - name: session.id + type: keyword + description: | + Browser session ID. If there is an idle timeout of 15 minutes, it will timeout the session. + - name: bucket + type: keyword + description: | + N/A + - name: category + type: group + fields: + - name: id + type: keyword + description: | + Matching category ID according to policy. Populated for both cloud and web traffic. + - name: name + type: keyword + description: | + N/A + - name: ccl + type: keyword + description: | + Cloud Confidence Level. CCL measures the enterprise readiness of the cloud apps taking into consideration those apps security, auditability and business continuity. + Each app is assigned one of five cloud confidence levels: excellent, high, medium, low, or poor. Useful for querying if users are accessing a cloud app with a lower CCL. + - name: channel + type: keyword + description: | + Channel of the user for slack and slack enterprise apps. + - name: client + type: group + fields: + - name: bytes + type: long + description: | + Total number of bytes uploaded from client to server. + - name: packets + type: long + description: | + N/A + - name: connection + type: group + fields: + - name: duration + type: long + description: | + Duration of the connection in milliseconds. Useful for querying long-lived sessions. + - name: end_time + type: long + description: | + Connection end time. + - name: id + type: keyword + description: | + Each connection has a unique ID. Shows the ID for the connection event. + - name: start_time + type: long + description: | + Connection start time. + - name: count + type: long + description: | + Number of raw log lines/events sessionized or suppressed during the suppressed interval. + - name: description + type: keyword + description: | + N/A + - name: destination + type: group + fields: + - name: geoip.source + type: long + description: | + Source from where the location of Destination IP was derived. + - name: detail + type: keyword + description: | + N/A + - name: detection + type: group + fields: + - name: engine + type: keyword + description: | + Customer exposed detection engine name. + - name: type + type: keyword + description: | + Same as malware type. Duplicate. + - name: device + type: group + fields: + - name: classification + type: keyword + description: | + Designation of device as determined by the Netskope Client as to whether the device is managed or not. + - name: name + type: keyword + description: | + N/A + - name: type + type: keyword + description: | + Device type from where the user accessed the cloud app. It could be Macintosh Windows device, iPad etc. + - name: dlp + type: group + fields: + - name: count + type: long + description: | + Count of rule hits. + - name: file + type: keyword + description: | + File/Object name extracted from the file/object. + - name: fingerprint.classificaiton + type: keyword + description: | + Fingerprint classification. + - name: fingerprint.match + type: keyword + description: | + Fingerprint classification match file name. + - name: fingerprint.score + type: long + description: | + Fingerprint classification score. + - name: fv + type: long + description: | + N/A + - name: incident.id + type: keyword + description: | + Incident ID associated with sub-file. In the case of main file, this is same as the parent incident ID. + - name: is_unique_count + type: boolean + description: | + True or false depending upon if rule is unique counted per rule data. + - name: mail.parent_id + type: keyword + description: | + N/A + - name: parent.id + type: keyword + description: | + Incident ID associated with main container (or non-container) file that was scanned. + - name: profile + type: keyword + description: | + DLP profile name. + - name: score + type: long + description: | + DLP rule score for weighted dictionaries. + - name: severity + type: keyword + description: | + Severity of rule. + - name: unique_count + type: long + description: | + Integer value of number of unique matches seen per rule data. Only present if rule is uniquely counted. + - name: domain + type: keyword + description: | + Domain value. This will hold the host header value or SNI or extracted from absolute URI. + - name: domain_shared_with + type: long + description: | + N/A + - name: drive + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: encrypt + type: group + fields: + - name: failure + type: keyword + description: | + Reason of failure while encrypting. + - name: end_time + type: keyword + description: | + N/A + - name: enterprise + type: group + fields: + - name: id + type: keyword + description: | + EnterpriseID in case of Slack for Enterprise. + - name: name + type: keyword + description: | + Enterprise name in case of Slack for Enterprise. + - name: event + type: group + fields: + - name: type + type: keyword + description: | + Anomaly type. + - name: exposure + type: keyword + description: | + Exposure of a document. + - name: external_collaborator_count + type: long + description: | + Count of external collaborators on a file/folder. Supported for some apps. + - name: file + type: group + fields: + - name: id + type: keyword + description: | + Unique identifier of the file. + - name: is_password_protected + type: keyword + description: | + N/A + - name: lang + type: keyword + description: | + Language of the file. + - name: from + type: group + fields: + - name: object + type: keyword + description: | + Initial name of an object that has been renamed, copied or moved. + - name: user_category + type: keyword + description: | + Type of from_user. + - name: storage + type: keyword + description: | + N/A + - name: logs + type: keyword + description: | + Shows if the event was generated from the Risk Insights log. + - name: gateway + type: keyword + description: | + N/A + - name: graph + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: http_status + type: keyword + description: | + N/A + - name: http_transaction_count + type: long + description: | + HTTP transaction count. + - name: iaas_asset_tags + type: keyword + description: | + List of tags associated with the asset for which alert is raised. Each tag is a key/value pair. + - name: id + type: keyword + description: | + N/A + - name: insertion + type: group + fields: + - name: timestamp + type: long + description: | + Insertion timestamp. + - name: instance_name + type: keyword + description: | + Instance associated with an organization application instance. + - name: instance + type: group + fields: + - name: id + type: keyword + description: | + Unique ID associated with an organization application instance. + - name: name + type: keyword + description: | + Instance name associated with an organization application instance. + - name: type + type: keyword + description: | + Instance type. + - name: internal_collaborator_count + type: long + description: | + Count of internal collaborators on a file/folder. Supported for some apps. + - name: ip + type: group + fields: + - name: protocol + type: keyword + description: | + N/A + - name: is_bypass_traffic + type: boolean + description: | + Tells if traffic is bypassed by Netskope. + - name: is_malicious + type: boolean + description: | + Only exists if some HTTP transaction belonging to the page event resulted in a malsite alert. + - name: item + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: justification + type: group + fields: + - name: reason + type: keyword + description: | + Justification reason provided by user. For following policies, justification events are raised. User is displayed a notification popup, user enters justification and can select to proceed or block: useralert policy, dlp block policy, block policy with custom template which contains justification text box. + - name: type + type: keyword + description: | + Type of justification provided by user when user bypasses the policy block. + - name: last + type: group + fields: + - name: app + type: keyword + description: | + Last application (app in the first/older event). Applies to only proximity anomaly alert. + - name: country + type: keyword + description: | + Last location (Country). Applies to only proximity anomaly alert. + - name: device + type: keyword + description: | + Last device name (Device Name in the first/older event). Applies to only proximity anomaly alert. + - name: location + type: keyword + description: | + Last location (City). Applies to only proximity anomaly alert. + - name: region + type: keyword + description: | + Applies to only proximity anomaly alert. + - name: timestamp + type: long + description: | + Last timestamp (timestamp in the first/older event). Applies to only proximity anomaly alert. + - name: latency + type: group + fields: + - name: max + type: long + description: | + Max latency for a connection in milliseconds. + - name: min + type: long + description: | + Min latency for a connection in milliseconds. + - name: total + type: long + description: | + Total latency from proxy to app in milliseconds. + - name: legal_hold_profile_name + type: keyword + description: | + Legal hold profile name. + - name: lh + type: group + fields: + - name: custodian.name + type: keyword + description: | + Custodian name of legal hold profile. + - name: destination.app + type: keyword + description: | + Destination appname of legalhold action. + - name: destination.instance + type: keyword + description: | + Destination instance of legal hold action. + - name: file_id + type: keyword + description: | + File ID of legal hold file. + - name: filename + type: keyword + description: | + File name of legal hold file. + - name: filename_original + type: keyword + description: | + Original filename of legal hold file. + - name: filepath + type: keyword + description: | + File path of legal hold file. + - name: shared + type: keyword + description: | + Shared type of legal hold file. + - name: shared_with + type: keyword + description: | + User shared with the legal hold file. + - name: version + type: keyword + description: | + File version of original file. + - name: list + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: log_file + type: group + fields: + - name: name + type: keyword + description: | + Log file name for Risk Insights. + - name: login + type: group + fields: + - name: type + type: keyword + description: | + Salesforce login type. + - name: url + type: flattened + description: | + Salesforce login URL. + - name: malsite_category + type: keyword + description: | + Category of malsite [ Phishing / Botnet / Malicous URL, etc. ]. + - name: malware + type: group + fields: + - name: id + type: keyword + description: | + md5 hash of the malware name as provided by the scan engine. + - name: name + type: keyword + description: | + Netskope detection name. + - name: profile + type: keyword + description: | + tss_profile: profile which user has selected. Data comes from WebUI. Its a json structure. + - name: severity + type: keyword + description: | + Malware severity. + - name: type + type: keyword + description: | + Malware Type. + - name: managed_app + type: boolean + description: | + Whether or not the app in question is managed. + - name: management + type: group + fields: + - name: id + type: keyword + description: | + Management ID. + - name: metric_value + type: long + description: | + N/A + - name: modified_at + type: date + description: | + Timestamp corresponding to the modification time of the entity (file, etc.). + - name: netskope_pop + type: keyword + description: | + N/A + - name: network + type: keyword + description: | + N/A + - name: new_value + type: keyword + description: | + New value for a given file for salesforce.com. + - name: notify_template + type: keyword + description: | + N/A + - name: ns + type: group + fields: + - name: activity + type: keyword + description: | + Maps app activity to Netskope standard activity. + - name: device_uid + type: keyword + description: | + Device identifiers on macOS and Windows. + - name: num_sessions + type: long + description: | + N/A + - name: numbytes + type: long + description: | + Total number of bytes that were transmitted for the connection - numbytes = client_bytes + server_bytes. + - name: obfuscate + type: boolean + description: | + N/A + - name: object + type: group + fields: + - name: count + type: long + description: | + Displayed when the activity is Delete. Shows the number of objects being deleted. + - name: id + type: keyword + description: | + Unique ID associated with an object. + - name: name + type: keyword + description: | + Name of the object which is being acted on. It could be a filename, folder name, report name, document name, etc. + - name: type + type: keyword + description: | + Type of the object which is being acted on. Object type could be a file, folder, report, document, message, etc. + - name: old_value + type: keyword + description: | + Old value for a given file for salesforce.com. + - name: org + type: keyword + description: | + Search for events from a specific organization. Organization name is derived from the user ID. + - name: organization_unit + type: keyword + description: | + Org Units for which the event correlates to. This ties to user information extracted from Active Directory using the Directory Importer/AD Connector application. + - name: orig_ty + type: keyword + description: | + Event Type of original event. + - name: original_file_path + type: keyword + description: | + If the file is moved, then keep original path of the file in this field. + - name: other + type: group + fields: + - name: categories + type: keyword + description: | + N/A + - name: owner + type: keyword + description: | + Owner of the file. + - name: page + type: keyword + description: | + The URL of the originating page. + - name: page_site + type: keyword + description: | + N/A + - name: parent + type: group + fields: + - name: id + type: keyword + description: | + N/A + - name: path_id + type: long + description: | + Path ID of the file in the application. + - name: policy + type: group + fields: + - name: id + type: keyword + description: | + The Netskope internal ID for the policy created by an admin. + - name: name + type: keyword + description: | + Name of the policy configured by an admin. + - name: profile + type: group + fields: + - name: emails + type: keyword + description: | + List of profile emails per policy. + - name: id + type: keyword + description: | + Anomaly profile ID. + - name: publisher_cn + type: keyword + description: | + N/A + - name: quarantine + type: group + fields: + - name: action.reason + type: keyword + description: | + Reason for the action taken for quarantine. + - name: admin + type: keyword + description: | + Quarantine profile custodian email/name. + - name: app + type: keyword + description: | + Quarantine app name. + - name: app_name + type: keyword + description: | + N/A + - name: failure + type: keyword + description: | + Reason of failure. + - name: file.id + type: keyword + description: | + File ID of the quarantined file. + - name: file.name + type: keyword + description: | + File name of the quarantine file. + - name: instance + type: keyword + description: | + Quarantine instance name. + - name: original.file.name + type: keyword + description: | + Original file name which got quarantined. + - name: original.file.path + type: keyword + description: | + Original file path which got quarantined. + - name: original.version + type: keyword + description: | + Original version of file which got quarantined. + - name: shared_with + type: keyword + description: | + N/A + - name: profile.id + type: keyword + description: | + Quarantine profile ID. + - name: profile.name + type: keyword + description: | + Quarantine profile name of policy for quarantine action. + - name: original.shared + type: keyword + description: | + Original file shared user details. + - name: qar + type: keyword + description: | + N/A + - name: referer + type: flattened + description: | + Referer URL of the application(with http) that the user visited as provided by the log or data plane traffic. + - name: region + type: keyword + description: | + N/A + - name: region + type: group + fields: + - name: id + type: keyword + description: | + Region ID (as provided by the cloud provider). + - name: repo + type: keyword + description: | + N/A + - name: request + type: group + fields: + - name: count + type: long + description: | + Total number of HTTP requests (equal to number of transaction events for this page event) sent from client to server over one underlying TCP connection. + - name: id + type: keyword + description: | + Unique request ID for the event. + - name: response + type: group + fields: + - name: content.length + type: long + description: | + N/A + - name: content.type + type: keyword + description: | + N/A + - name: count + type: long + description: | + Total number of HTTP responses (equal to number of transaction events for this page event) from server to client. + - name: retro_scan_name + type: keyword + description: | + Retro scan name. + - name: risk_level + type: keyword + description: | + Corresponding field to risk_level_id. Name. + - name: risk_level_id + type: keyword + description: | + This field is set by both role-based access (RBA) and MLAD. + - name: role + type: keyword + description: | + Roles for Box. + - name: run_id + type: long + description: | + Run ID. + - name: sa + type: group + fields: + - name: profile.id + type: keyword + description: | + CSA profile ID. + - name: profile.name + type: keyword + description: | + CSA profile name. + - name: rule.severity + type: keyword + description: | + Rule severity. + - name: scan + type: group + fields: + - name: time + type: long + description: | + Time when the scan is done. + - name: type + type: keyword + description: | + Generated during retroactive scan or new ongoing activity. + - name: scopes + type: keyword + description: | + List of permissions for google apps. + - name: serial + type: keyword + description: | + N/A + - name: server + type: group + fields: + - name: bytes + type: long + description: | + Total number of downloaded from server to client. + - name: packets + type: long + description: | + N/A + - name: session + type: group + fields: + - name: id + type: keyword + description: | + Session ID for Dropbox application. + - name: packets + type: long + description: | + N/A + - name: duration + type: long + description: | + N/A + - name: severity + type: group + fields: + - name: id + type: keyword + description: | + Severity ID used by watchlist and malware alerts. + - name: level + type: keyword + description: | + Severity used by watchlist and malware alerts. + - name: type + type: keyword + description: | + Severity type used by watchlist and malware alerts + - name: sfwder + type: keyword + description: | + N/A + - name: shared + type: group + fields: + - name: domains + type: keyword + description: | + List of domains of users the document is shared with. + - name: is_shared + type: boolean + description: | + If the file is shared or not. + - name: type + type: keyword + description: | + Shared Type. + - name: with + type: keyword + description: | + Array of emails with whom a document is shared with. + - name: site + type: keyword + description: | + For traffic_type = CloudApp, site = app and for traffic_type = Web, it will be the second level domain name + top-level domain name. For example, in "www.cnn.com", it is "cnn.com". + - name: slc + type: group + fields: + - name: geo.location + type: geo_point + description: | + Longitude and latitude. + - name: source + type: group + fields: + - name: geoip_src + type: long + description: | + Source from where the location of Source IP was derived. + - name: ssl_decrypt_policy + type: keyword + description: | + Applicable to only bypass events. There are 2 ways to create rules for bypass: Bypass due to Exception Configuration, Bypass due to SSL Decrypt Policy.The existing flag bypass_traffic only gives information that a flow has been bypassed, but does not tell exactly which policy was responsible for it. ssl_decrypt_policy field will provide this extra information. In addition, policy field will be also set for every Bypass event. + - name: start_time + type: keyword + description: | + N/A + - name: sub_type + type: keyword + description: | + Workplace by Facebook post sub category (files, comments, status etc). + - name: supporting_data + type: keyword + description: | + N/A + - name: suppression + type: group + fields: + - name: end_time + type: long + description: | + When events are suppressed (like collaboration apps), then the suppression end time will be set and only one event will be send with suppression start time and end time and count of occurrence. + - name: key + type: keyword + description: | + To limit the number of events. Example: Suppress block event for browse. + - name: start_time + type: long + description: | + When events are suppressed (like collaboration apps), then the suppression end time will be set and only one event will be send with suppression start time and end time and count of occurrence. + - name: team + type: keyword + description: | + Slack team name. + - name: telemetry_app + type: keyword + description: | + Typically SaaS app web sites use web analytics code within the pages to gather analytic data. + When a SaaS app action or page is shown, there is subsequent traffic generated to tracking apps such as doubleclick.net, Optimizely, etc. These tracking apps are listed if applicable in the + Telemetry App field. + - name: temp_user + type: keyword + description: | + N/A + - name: tenant + type: group + fields: + - name: id + type: keyword + description: | + Tenant id. + - name: threat + type: group + fields: + - name: match_field + type: keyword + description: | + Threat match field, either from domain or URL or IP. + - name: source.id + type: keyword + description: | + Threat source id: 1 - NetskopeThreatIntel, 2 - Zvelodb. + - name: threshold + type: long + description: | + Threshold (Count at which the anomaly should trigger). Applicable to Bulk Anomaly types( Bulk Upload/ Download/ Delete) and Failed Login Anomaly type. + - name: tnetwork_session_id + type: keyword + description: | + N/A + - name: to + type: group + fields: + - name: object + type: keyword + description: | + Changed name of an object that has been renamed, copied, or moved. + - name: storage + type: keyword + description: | + N/A + - name: user + type: keyword + description: | + Used when a file is moved from user A to user B. Shows the email address of user B. + - name: user_category + type: keyword + description: | + Type of user to which move is done. + - name: total_packets + type: long + description: | + N/A + - name: total + type: group + fields: + - name: collaborator_count + type: long + description: | + Count of collaborators on a file/folder. Supported for some apps. + - name: traffic + type: group + fields: + - name: type + type: keyword + description: | + Type of the traffic: CloudApp or Web. CloudApp indicates CASB and web indicates HTTP traffic. Web traffic is only captured for inline access method. It is currently not captured for Risk Insights. + - name: transaction + type: group + fields: + - name: id + type: keyword + description: | + Unique ID for a given request/response. + - name: tss_mode + type: keyword + description: | + Malware scanning mode, specifies whether it's Real-time Protection or API Data Protection. + - name: tunnel + type: group + fields: + - name: id + type: keyword + description: | + Shows the Client installation ID. Only available for the Client steering configuration. + - name: type + type: keyword + description: | + N/A + - name: up_time + type: long + description: | + N/A + - name: two_factor_auth + type: keyword + description: | + N/A + - name: type + type: keyword + description: | + Shows if it is an application event or a connection event. Application events are recorded to track user events inside a cloud app. Connection events shows the actual HTTP connection. + - name: universal_connector + type: keyword + description: | + N/A + - name: url + type: flattened + description: | + URL of the application that the user visited as provided by the log or data plane traffic. + - name: url_to_activity + type: keyword + description: | + Populated if the activity from the URL matches certain activities. This field applies to Risk Insights only. + - name: user + type: group + fields: + - name: category + type: keyword + description: | + Type of user in an enterprise - external / internal. + - name: group + type: keyword + description: | + N/A + - name: generated + type: boolean + description: | + Tells whether it is user generated page event. + - name: ip + type: keyword + description: | + IP address of User. + - name: is_aggregated + type: boolean + description: | + N/A + - name: violating + type: group + fields: + - name: user.name + type: keyword + description: | + User who caused a vioaltion. Populated for Workplace by Facebook. + - name: user.type + type: keyword + description: | + Category of the user who caused a violation. Populated for Workplace by Facebook. + - name: web_universal_connector + type: keyword + description: | + N/A + - name: web + type: group + fields: + - name: url + type: flattened + description: | + File preview URL. + - name: workspace + type: group + fields: + - name: id + type: keyword + description: | + Workspace ID in case of Slack for Enterprise. + - name: name + type: keyword + description: | + Workspace name in case of Slack for Enterprise. + - name: event_type + type: keyword + description: | + N/A + - name: zip_password + type: keyword + description: | + Zip the malacious file and put pwd to it and send it back to caller. + - name: user + type: group + fields: + - name: geo.city_name + type: keyword + description: | + N/A + - name: geo.continent_name + type: keyword + description: | + N/A + - name: geo.country_iso_code + type: keyword + description: | + N/A + - name: geo.country_name + type: keyword + description: | + N/A + - name: geo.location + type: geo_point + description: | + Longitude and latitude. + - name: geo.region_iso_code + type: keyword + description: | + N/A + - name: geo.region_name + type: keyword + description: | + N/A +- name: log.source.address + type: keyword + description: Source address from which the log event was read / sent from. diff --git a/packages/netskope/1.0.0/data_stream/events/manifest.yml b/packages/netskope/1.0.0/data_stream/events/manifest.yml new file mode 100755 index 0000000000..c5186b4df7 --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/events/manifest.yml @@ -0,0 +1,41 @@ +title: Events +type: logs +streams: + - input: tcp + template_path: tcp.yml.hbs + title: Netskope Events + description: Collect Netskope Events using tcp input + vars: + - name: listen_port + type: integer + title: Listen Port + description: The TCP port number to listen on. + multi: false + required: true + show_user: true + default: 9021 + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - netskope-events + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original` + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: >- + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. diff --git a/packages/netskope/1.0.0/data_stream/events/sample_event.json b/packages/netskope/1.0.0/data_stream/events/sample_event.json new file mode 100755 index 0000000000..23098b922f --- /dev/null +++ b/packages/netskope/1.0.0/data_stream/events/sample_event.json @@ -0,0 +1,60 @@ +{ + "@timestamp": "2021-12-24T00:29:56.000Z", + "agent": { + "ephemeral_id": "3cabd78f-ac92-4719-87ff-e1dd82c3162a", + "id": "52d90929-98ee-4480-9b14-fe07637d0bbe", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.3.0" + }, + "data_stream": { + "dataset": "netskope.events", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "52d90929-98ee-4480-9b14-fe07637d0bbe", + "snapshot": true, + "version": "8.3.0" + }, + "event": { + "agent_id_status": "verified", + "dataset": "netskope.events", + "ingested": "2022-04-14T09:24:43Z", + "original": "{\"@timestamp\":\"2021-12-24T00:29:56.000Z\",\"event.id\":\"613ee55ec9d868fc47654a73\",\"netskope\":{\"events\":{\"event_type\":\"infrastructure\",\"severity\":{\"level\":\"high\"},\"alarm\":{\"name\":\"No_events_from_device\",\"description\":\"Events from device not received in the last 24 hours\"},\"device\":{\"name\":\"device-1\"},\"metric_value\":43831789,\"serial\":\"FFFFFFFFFFFFFFFF\",\"supporting_data\":\"abc\"}}}" + }, + "event.id": "613ee55ec9d868fc47654a73", + "input": { + "type": "tcp" + }, + "log": { + "source": { + "address": "192.168.224.1:46522" + } + }, + "netskope": { + "events": { + "alarm": { + "description": "Events from device not received in the last 24 hours", + "name": "No_events_from_device" + }, + "device": { + "name": "device-1" + }, + "event_type": "infrastructure", + "metric_value": 43831789, + "serial": "FFFFFFFFFFFFFFFF", + "severity": { + "level": "high" + }, + "supporting_data": "abc" + } + }, + "tags": [ + "forwarded", + "netskope-events" + ] +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/docs/README.md b/packages/netskope/1.0.0/docs/README.md new file mode 100755 index 0000000000..7e045449c3 --- /dev/null +++ b/packages/netskope/1.0.0/docs/README.md @@ -0,0 +1,2920 @@ +# Netskope + +This integration is for Netskope. It can be used +to receive logs sent by Netskope Cloud Log Shipper on respective TCP ports. + +The log message is expected to be in JSON format. The data is mapped to +ECS fields where applicable and the remaining fields are written under +`netskope..*`. + +## Setup steps + +1. Configure this integration with the TCP input in Kibana. +2. For all Netskope Cloud Exchange configurations refer to the [_Log Shipper_](https://docs.netskope.com/en/log-shipper.html). +3. In Netskope Cloud Exchange please enable Log Shipper, add your Netskope Tenant. +4. Configure input connectors: + 1. First with all Event types, and + 2. Second with all Alerts type. + For detailed steps refer [_Configure the Netskope Plugin for Log Shipper_](https://docs.netskope.com/en/configure-the-netskope-plugin-for-log-shipper.html). +5. Creating mappings: + 1. Navigate to Settings -> Log Shipper -> Mapping. + 2. Click on Add mapping and paste mappings of Alerts mentioned below in Netskope Elastic Integration's Overview Page. + 3. Click on Add mapping and paste mappings of Events mentioned below in Netskope Elastic Integration's Overview Page. +6. Configure output connectors: + 1. Navigate to Settings -> Plugins. + 2. Adding output connector **Elastic CLS**, select mapping created for Alerts and click **Next**, then paste the Events-validation in the **Valid Extensions** section for Alerts mentioned below in Netskope Elastic Integration's Overview Page. + For detailed steps refer [_Elastic Plugin for Log Shipper_](https://docs.netskope.com/en/elastic-plugin-for-log-shipper.html). +7. Create business rules: + 1. Navigate to Home Page > Log Shipper > Business rules. + 2. Create business rules with Netskope Alerts. + 3. Create business rules with Netskope Events. + For detailed steps refer [_Manage Log Shipper Business Rules_](https://docs.netskope.com/en/manage-log-shipper-business-rules.html). +8. Adding SIEM mappings: + 1. Navigate to Home Page > Log Shipper > SIEM Mappings + 2. Add SIEM mapping for events: + * Add **Rule** put rule created in step 7. + * Add **Source Configuration** put input created for Events in step 4. + * Add **Destination Configuration**, put output created for Events in step 6. + For detailed steps refer [_Configure Log Shipper SIEM Mappings_](https://docs.netskope.com/en/configure-log-shipper-siem-mappings.html). +9. *Please make sure to use the given response formats.* + +## Compatibility + +This package has been tested against `Netskope version 91.1.0.605` and `Netskope Cloud Exchange version 3.1.5`. + +## Documentation and configuration + +### Alerts + +Default port: _9020_ + +Netskope Alert Mapping: +```json +{ + "elastic_map_version": "2.0.0", + "ecs_version": "0", + "taxonomy": { + "alerts": { + "policy": { + "header": {}, + "extension": { + "event.id": { "mapping_field": "_id" }, + "netskope.alerts.insertion_epoch_timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.alerts.access_method": { "mapping_field": "access_method" }, + "netskope.alerts.acked": { "mapping_field": "acked" }, + "netskope.alerts.action": { "mapping_field": "action" }, + "netskope.alerts.activity.name": { "mapping_field": "activity" }, + "netskope.alerts.is_alert": { "mapping_field": "alert" }, + "netskope.alerts.alert.name": { "mapping_field": "alert_name" }, + "netskope.alerts.alert.type": { "mapping_field": "type" }, + "netskope.alerts.app.name": { "mapping_field": "app" }, + "netskope.alerts.app.category": { "mapping_field": "appcategory" }, + "user_agent.name": { "mapping_field": "browser" }, + "netskope.alerts.category.name": { "mapping_field": "category" }, + "netskope.alerts.cci": { "mapping_field": "cci" }, + "netskope.alerts.ccl": { "mapping_field": "ccl" }, + "netskope.alerts.count": { "mapping_field": "count" }, + "netskope.alerts.device.name": { "mapping_field": "device" }, + "destination.geo.country_iso_code": { "mapping_field": "dst_country" }, + "netskope.alerts.destination.geoip_src": { "mapping_field": "dst_geoip_src" }, + "destination.geo.location.lat": { "mapping_field": "dst_latitude" }, + "destination.geo.city_name": { "mapping_field": "dst_location" }, + "destination.geo.location.lon": { "mapping_field": "dst_longitude" }, + "destination.geo.region_name": { "mapping_field": "dst_region" }, + "destination.geo.postal_code": { "mapping_field": "dst_zipcode" }, + "destination.address": { "mapping_field": "dstip" }, + "destination.ip": { "mapping_field": "dstip" }, + "netskope.alerts.exposure": { "mapping_field": "exposure" }, + "netskope.alerts.file.lang": { "mapping_field": "file_lang" }, + "file.path": { "mapping_field": "file_path" }, + "file.size": { "mapping_field": "file_size" }, + "file.mime_type.1": { "mapping_field": "file_type" }, + "netskope.alerts.instance.name": { "mapping_field": "instance" }, + "netskope.alerts.instance.id": { "mapping_field": "instance_id" }, + "file.hash.md5": { "mapping_field": "md5" }, + "file.mime_type.2": { "mapping_field": "mime_type" }, + "netskope.alerts.modified.timestamp": { "mapping_field": "modified" }, + "netskope.alerts.object.name": { "mapping_field": "object" }, + "netskope.alerts.object.id": { "mapping_field": "object_id" }, + "netskope.alerts.object.type": { "mapping_field": "object_type" }, + "netskope.alerts.organization.unit": { "mapping_field": "organization_unit" }, + "user_agent.os.name": { "mapping_field": "os" }, + "netskope.alerts.other.categories": { "mapping_field": "other_categories" }, + "netskope.alerts.owner": { "mapping_field": "owner" }, + "netskope.alerts.policy.name": { "mapping_field": "policy" }, + "netskope.alerts.request.id": { "mapping_field": "request_id" }, + "netskope.alerts.scan.type": { "mapping_field": "scan_type" }, + "netskope.alerts.shared.with": { "mapping_field": "shared_with" }, + "netskope.alerts.site": { "mapping_field": "site" }, + "source.geo.country_iso_code": { "mapping_field": "src_country" }, + "netskope.alerts.source.geoip_src": { "mapping_field": "src_geoip_src" }, + "source.geo.location.lat": { "mapping_field": "src_latitude" }, + "source.geo.city_name": { "mapping_field": "src_location" }, + "source.geo.location.lon": { "mapping_field": "src_longitude" }, + "source.geo.region_name": { "mapping_field": "src_region" }, + "source.geo.postal_code": { "mapping_field": "src_zipcode" }, + "source.address": { "mapping_field": "srcip" }, + "source.ip": { "mapping_field": "srcip" }, + "netskope.alerts.suppression.key": { "mapping_field": "suppression_key" }, + "@timestamp": { "mapping_field": "timestamp" }, + "netskope.alerts.traffic.type": { "mapping_field": "traffic_type" }, + "netskope.alerts.type": { "mapping_field": "alert_type" }, + "user.email.1": { "mapping_field": "ur_normalized" }, + "netskope.alerts.url": { "mapping_field": "url" }, + "user.email.2": { "mapping_field": "user" }, + "user.group.name": { "mapping_field": "usergroup" }, + "user.email.3": { "mapping_field": "userkey" }, + "netskope.alerts.app.session.id": { "mapping_field": "app_session_id" }, + "netskope.alerts.connection.id": { "mapping_field": "connection_id" }, + "destination.geo.timezone": { "mapping_field": "dst_timezone" }, + "netskope.alerts.encrypt.failure": { "mapping_field": "encrypt_failure" }, + "netskope.alerts.ip.protocol": { "mapping_field": "ip_protocol" }, + "netskope.alerts.managed.app": { "mapping_field": "managed_app" }, + "netskope.alerts.netskope_pop": { "mapping_field": "netskope_pop" }, + "user_agent.os.version": { "mapping_field": "os_version" }, + "network.protocol": { "mapping_field": "protocol" }, + "netskope.alerts.referer": { "mapping_field": "referer" }, + "netskope.alerts.severity.level": { "mapping_field": "severity" }, + "source.geo.timezone": { "mapping_field": "src_timezone" }, + "netskope.alerts.transaction.id": { "mapping_field": "transaction_id" } + } + }, + "dlp": { + "header": {}, + "extension": { + "event.id": { "mapping_field": "_id" }, + "netskope.alerts.insertion_epoch_timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.alerts.access_method": { "mapping_field": "access_method" }, + "netskope.alerts.acked": { "mapping_field": "acked" }, + "netskope.alerts.action": { "mapping_field": "action" }, + "netskope.alerts.activity.name": { "mapping_field": "activity" }, + "netskope.alerts.is_alert": { "mapping_field": "alert" }, + "netskope.alerts.alert.name": { "mapping_field": "alert_name" }, + "netskope.alerts.alert.type": { "mapping_field": "type" }, + "netskope.alerts.app.name": { "mapping_field": "app" }, + "netskope.alerts.app.category": { "mapping_field": "appcategory" }, + "user_agent.name": { "mapping_field": "browser" }, + "netskope.alerts.category.name": { "mapping_field": "category" }, + "netskope.alerts.cci": { "mapping_field": "cci" }, + "netskope.alerts.ccl": { "mapping_field": "ccl" }, + "netskope.alerts.count": { "mapping_field": "count" }, + "netskope.alerts.device.name": { "mapping_field": "device" }, + "netskope.alerts.dlp.file": { "mapping_field": "dlp_file" }, + "netskope.alerts.dlp.incident.id": { "mapping_field": "dlp_incident_id" }, + "netskope.alerts.dlp.is_unique_count": { "mapping_field": "dlp_is_unique_count" }, + "netskope.alerts.dlp.parent.id": { "mapping_field": "dlp_parent_id" }, + "netskope.alerts.dlp.profile": { "mapping_field": "dlp_profile" }, + "netskope.alerts.dlp.rule.name": { "mapping_field": "dlp_rule" }, + "netskope.alerts.dlp.rule.count": { "mapping_field": "dlp_rule_count" }, + "netskope.alerts.dlp.rule.severity": { "mapping_field": "dlp_rule_severity" }, + "netskope.alerts.dlp.unique_count": { "mapping_field": "dlp_unique_count" }, + "destination.geo.country_iso_code": { "mapping_field": "dst_country" }, + "netskope.alerts.destination.geoip_src": { "mapping_field": "dst_geoip_src" }, + "destination.geo.location.lat": { "mapping_field": "dst_latitude" }, + "destination.geo.city_name": { "mapping_field": "dst_location" }, + "destination.geo.location.lon": { "mapping_field": "dst_longitude" }, + "destination.geo.region_name": { "mapping_field": "dst_region" }, + "destination.geo.postal_code": { "mapping_field": "dst_zipcode" }, + "destination.address": { "mapping_field": "dstip" }, + "destination.ip": { "mapping_field": "dstip" }, + "netskope.alerts.exposure": { "mapping_field": "exposure" }, + "netskope.alerts.file.lang": { "mapping_field": "file_lang" }, + "file.path": { "mapping_field": "file_path" }, + "file.size": { "mapping_field": "file_size" }, + "file.mime_type.1": { "mapping_field": "file_type" }, + "netskope.alerts.instance.name": { "mapping_field": "instance" }, + "netskope.alerts.instance.id": { "mapping_field": "instance_id" }, + "file.hash.md5": { "mapping_field": "md5" }, + "file.mime_type.2": { "mapping_field": "mime_type" }, + "netskope.alerts.modified.timestamp": { "mapping_field": "modified" }, + "netskope.alerts.object.name": { "mapping_field": "object" }, + "netskope.alerts.object.id": { "mapping_field": "object_id" }, + "netskope.alerts.object.type": { "mapping_field": "object_type" }, + "netskope.alerts.organization.unit": { "mapping_field": "organization_unit" }, + "user_agent.os.name": { "mapping_field": "os" }, + "netskope.alerts.other.categories": { "mapping_field": "other_categories" }, + "netskope.alerts.owner": { "mapping_field": "owner" }, + "netskope.alerts.policy.name": { "mapping_field": "policy" }, + "netskope.alerts.request.id": { "mapping_field": "request_id" }, + "netskope.alerts.scan.type": { "mapping_field": "scan_type" }, + "netskope.alerts.shared.with": { "mapping_field": "shared_with" }, + "netskope.alerts.site": { "mapping_field": "site" }, + "source.geo.country_iso_code": { "mapping_field": "src_country" }, + "netskope.alerts.source.geoip_src": { "mapping_field": "src_geoip_src" }, + "source.geo.location.lat": { "mapping_field": "src_latitude" }, + "source.geo.city_name": { "mapping_field": "src_location" }, + "source.geo.location.lon": { "mapping_field": "src_longitude" }, + "source.geo.region_name": { "mapping_field": "src_region" }, + "source.geo.postal_code": { "mapping_field": "src_zipcode" }, + "source.address": { "mapping_field": "srcip" }, + "source.ip": { "mapping_field": "srcip" }, + "netskope.alerts.suppression.key": { "mapping_field": "suppression_key" }, + "@timestamp": { "mapping_field": "timestamp" }, + "netskope.alerts.traffic.type": { "mapping_field": "traffic_type" }, + "netskope.alerts.type": { "mapping_field": "alert_type" }, + "user.email.1": { "mapping_field": "ur_normalized" }, + "netskope.alerts.url": { "mapping_field": "url" }, + "user.email.2": { "mapping_field": "user" }, + "user.group.name": { "mapping_field": "usergroup" }, + "user.email.3": { "mapping_field": "userkey" } + } + }, + "quarantine": { + "header": {}, + "extension": { + "event.id": { "mapping_field": "_id" }, + "netskope.alerts.insertion_epoch_timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.alerts.access_method": { "mapping_field": "access_method" }, + "netskope.alerts.acked": { "mapping_field": "acked" }, + "netskope.alerts.action": { "mapping_field": "action" }, + "netskope.alerts.activity.name": { "mapping_field": "activity" }, + "netskope.alerts.is_alert": { "mapping_field": "alert" }, + "netskope.alerts.alert.name": { "mapping_field": "alert_name" }, + "netskope.alerts.alert.type": { "mapping_field": "type" }, + "netskope.alerts.app.name": { "mapping_field": "app" }, + "netskope.alerts.app.category": { "mapping_field": "appcategory" }, + "user_agent.name": { "mapping_field": "browser" }, + "netskope.alerts.category.name": { "mapping_field": "category" }, + "netskope.alerts.cci": { "mapping_field": "cci" }, + "netskope.alerts.ccl": { "mapping_field": "ccl" }, + "netskope.alerts.count": { "mapping_field": "count" }, + "netskope.alerts.device.name": { "mapping_field": "device" }, + "destination.geo.country_iso_code": { "mapping_field": "dst_country" }, + "netskope.alerts.destination.geoip_src": { "mapping_field": "dst_geoip_src" }, + "destination.geo.location.lat": { "mapping_field": "dst_latitude" }, + "destination.geo.city_name": { "mapping_field": "dst_location" }, + "destination.geo.location.lon": { "mapping_field": "dst_longitude" }, + "destination.geo.region_name": { "mapping_field": "dst_region" }, + "destination.geo.postal_code": { "mapping_field": "dst_zipcode" }, + "destination.address": { "mapping_field": "dstip" }, + "destination.ip": { "mapping_field": "dstip" }, + "netskope.alerts.exposure": { "mapping_field": "exposure" }, + "netskope.alerts.file.lang": { "mapping_field": "file_lang" }, + "file.path": { "mapping_field": "file_path" }, + "file.size": { "mapping_field": "file_size" }, + "file.mime_type.1": { "mapping_field": "file_type" }, + "netskope.alerts.instance.name": { "mapping_field": "instance" }, + "netskope.alerts.instance.id": { "mapping_field": "instance_id" }, + "file.hash.md5": { "mapping_field": "md5" }, + "file.mime_type.2": { "mapping_field": "mime_type" }, + "netskope.alerts.modified.timestamp": { "mapping_field": "modified" }, + "netskope.alerts.object.name": { "mapping_field": "object" }, + "netskope.alerts.object.id": { "mapping_field": "object_id" }, + "netskope.alerts.object.type": { "mapping_field": "object_type" }, + "netskope.alerts.organization.unit": { "mapping_field": "organization_unit" }, + "user_agent.os.name": { "mapping_field": "os" }, + "netskope.alerts.other.categories": { "mapping_field": "other_categories" }, + "netskope.alerts.owner": { "mapping_field": "owner" }, + "netskope.alerts.policy.name": { "mapping_field": "policy" }, + "netskope.alerts.quarantine.admin": { "mapping_field": "q_admin" }, + "netskope.alerts.quarantine.app.1": { "mapping_field": "q_app" }, + "netskope.alerts.quarantine.instance": { "mapping_field": "q_instance" }, + "netskope.alerts.quarantine.original.file.name": { "mapping_field": "q_original_filename" }, + "netskope.alerts.quarantine.original.file.path": { "mapping_field": "q_original_filepath" }, + "netskope.alerts.quarantine.original.shared": { "mapping_field": "q_original_shared" }, + "netskope.alerts.quarantine.original.version": { "mapping_field": "q_original_version" }, + "netskope.alerts.quarantine.shared.with": { "mapping_field": "q_shared_with" }, + "netskope.alerts.quarantine.action.reason": { "mapping_field": "quarantine_action_reason" }, + "netskope.alerts.quarantine.app.2": { "mapping_field": "quarantine_app" }, + "netskope.alerts.quarantine.failure": { "mapping_field": "quarantine_failure" }, + "netskope.alerts.quarantine.file.id": { "mapping_field": "quarantine_file_id" }, + "netskope.alerts.quarantine.file.name": { "mapping_field": "quarantine_file_name" }, + "netskope.alerts.quarantine.profile.name": { "mapping_field": "quarantine_profile" }, + "netskope.alerts.quarantine.profile.id": { "mapping_field": "quarantine_profile_id" }, + "netskope.alerts.request.id": { "mapping_field": "request_id" }, + "netskope.alerts.scan.type": { "mapping_field": "scan_type" }, + "netskope.alerts.shared.with": { "mapping_field": "shared_with" }, + "netskope.alerts.site": { "mapping_field": "site" }, + "source.geo.country_iso_code": { "mapping_field": "src_country" }, + "netskope.alerts.source.geoip_src": { "mapping_field": "src_geoip_src" }, + "source.geo.location.lat": { "mapping_field": "src_latitude" }, + "source.geo.city_name": { "mapping_field": "src_location" }, + "source.geo.location.lon": { "mapping_field": "src_longitude" }, + "source.geo.region_name": { "mapping_field": "src_region" }, + "source.geo.postal_code": { "mapping_field": "src_zipcode" }, + "source.address": { "mapping_field": "srcip" }, + "source.ip": { "mapping_field": "srcip" }, + "netskope.alerts.suppression.key": { "mapping_field": "suppression_key" }, + "@timestamp": { "mapping_field": "timestamp" }, + "netskope.alerts.traffic.type": { "mapping_field": "traffic_type" }, + "netskope.alerts.type": { "mapping_field": "alert_type" }, + "user.email.1": { "mapping_field": "ur_normalized" }, + "netskope.alerts.url": { "mapping_field": "url" }, + "user.email.2": { "mapping_field": "user" }, + "user.group.name": { "mapping_field": "usergroup" }, + "user.email.3": { "mapping_field": "userkey"} + } + }, + "Security Assessment": { + "header": {}, + "extension": { + "event.id": { "mapping_field": "_id" }, + "netskope.alerts.insertion_epoch_timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.alerts.access_method": { "mapping_field": "access_method" }, + "netskope.alerts.acked": { "mapping_field": "acked" }, + "netskope.alerts.action": { "mapping_field": "action" }, + "netskope.alerts.activity.name": { "mapping_field": "activity" }, + "netskope.alerts.is_alert": { "mapping_field": "alert" }, + "netskope.alerts.alert.name": { "mapping_field": "alert_name" }, + "netskope.alerts.alert.type": { "mapping_field": "type" }, + "netskope.alerts.app.name": { "mapping_field": "app" }, + "netskope.alerts.app.category": { "mapping_field": "appcategory" }, + "user_agent.name": { "mapping_field": "browser" }, + "netskope.alerts.category.name": { "mapping_field": "category" }, + "netskope.alerts.ccl": { "mapping_field": "ccl" }, + "netskope.alerts.count": { "mapping_field": "count" }, + "netskope.alerts.device.name": { "mapping_field": "device" }, + "destination.geo.country_iso_code": { "mapping_field": "dst_country" }, + "netskope.alerts.destination.geoip_src": { "mapping_field": "dst_geoip_src" }, + "destination.geo.location.lat": { "mapping_field": "dst_latitude" }, + "destination.geo.city_name": { "mapping_field": "dst_location" }, + "destination.geo.location.lon": { "mapping_field": "dst_longitude" }, + "destination.geo.region_name": { "mapping_field": "dst_region" }, + "destination.address": { "mapping_field": "dstip" }, + "destination.ip": { "mapping_field": "dstip" }, + "netskope.alerts.exposure": { "mapping_field": "exposure" }, + "netskope.alerts.file.lang": { "mapping_field": "file_lang" }, + "file.path": { "mapping_field": "file_path" }, + "file.size": { "mapping_field": "file_size" }, + "file.mime_type.1": { "mapping_field": "file_type" }, + "netskope.alerts.instance.name": { "mapping_field": "instance" }, + "netskope.alerts.instance.id": { "mapping_field": "instance_id" }, + "file.hash.md5": { "mapping_field": "md5" }, + "file.mime_type.2": { "mapping_field": "mime_type" }, + "netskope.alerts.modified.timestamp": { "mapping_field": "modified" }, + "netskope.alerts.object.name": { "mapping_field": "object" }, + "netskope.alerts.object.id": { "mapping_field": "object_id" }, + "netskope.alerts.object.type": { "mapping_field": "object_type" }, + "netskope.alerts.organization.unit": { "mapping_field": "organization_unit" }, + "user_agent.os.name": { "mapping_field": "os" }, + "netskope.alerts.other.categories": { "mapping_field": "other_categories" }, + "netskope.alerts.owner": { "mapping_field": "owner" }, + "netskope.alerts.policy.name": { "mapping_field": "policy" }, + "netskope.alerts.request.id": { "mapping_field": "request_id" }, + "netskope.alerts.sa.profile.id": { "mapping_field": "sa_profile_id" }, + "netskope.alerts.sa.profile.name": { "mapping_field": "sa_profile_name" }, + "netskope.alerts.sa.rule.id": { "mapping_field": "sa_rule_id" }, + "netskope.alerts.sa.rule.name": { "mapping_field": "sa_rule_name" }, + "netskope.alerts.sa.rule.severity": { "mapping_field": "sa_rule_severity" }, + "netskope.alerts.scan.type": { "mapping_field": "scan_type" }, + "netskope.alerts.shared.with": { "mapping_field": "shared_with" }, + "netskope.alerts.site": { "mapping_field": "site" }, + "source.geo.country_iso_code": { "mapping_field": "src_country" }, + "netskope.alerts.source.geoip_src": { "mapping_field": "src_geoip_src" }, + "source.geo.location.lat": { "mapping_field": "src_latitude" }, + "source.geo.city_name": { "mapping_field": "src_location" }, + "source.geo.location.lon": { "mapping_field": "src_longitude" }, + "source.geo.region_name": { "mapping_field": "src_region" }, + "source.address": { "mapping_field": "srcip" }, + "source.ip": { "mapping_field": "srcip" }, + "netskope.alerts.suppression.key": { "mapping_field": "suppression_key" }, + "@timestamp": { "mapping_field": "timestamp" }, + "netskope.alerts.traffic.type": { "mapping_field": "traffic_type" }, + "netskope.alerts.type": { "mapping_field": "alert_type" }, + "user.email.1": { "mapping_field": "ur_normalized" }, + "netskope.alerts.url": { "mapping_field": "url" }, + "user.email.2": { "mapping_field": "user" }, + "user.group.name": { "mapping_field": "usergroup" }, + "user.email.3": { "mapping_field": "userkey" }, + "netskope.alerts.compliance.standards": { "mapping_field": "compliance_standards" }, + "netskope.alerts.iaas.asset.tags": { "mapping_field": "iaas_asset_tags" }, + "netskope.alerts.iaas.remediated": { "mapping_field": "iaas_remediated" }, + "netskope.alerts.sa.rule.remediation": { "mapping_field": "sa_rule_remediation" }, + "cloud.account.id": { "mapping_field": "account_id" }, + "cloud.account.name": { "mapping_field": "account_name" }, + "netskope.alerts.asset.id": { "mapping_field": "asset_id" }, + "netskope.alerts.asset.object.id": { "mapping_field": "asset_object_id" }, + "netskope.alerts.cci": { "mapping_field": "cci" }, + "netskope.alerts.policy.id": { "mapping_field": "policy_id" }, + "netskope.alerts.region.id": { "mapping_field": "region_id" }, + "netskope.alerts.region.name": { "mapping_field": "region_name" }, + "netskope.alerts.resource.category": { "mapping_field": "resource_category" }, + "netskope.alerts.resource.group": { "mapping_field": "resource_group" } + } + }, + "uba": { + "header": {}, + "extension": { + "event.id": { "mapping_field": "_id" }, + "netskope.alerts.insertion_epoch_timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.alerts.access_method": { "mapping_field": "access_method" }, + "netskope.alerts.acked": { "mapping_field": "acked" }, + "netskope.alerts.action": { "mapping_field": "action" }, + "netskope.alerts.activity.name": { "mapping_field": "activity" }, + "netskope.alerts.is_alert": { "mapping_field": "alert" }, + "netskope.alerts.alert.id": { "mapping_field": "alert_id" }, + "netskope.alerts.alert.name": { "mapping_field": "alert_name" }, + "netskope.alerts.alert.type": { "mapping_field": "type" }, + "netskope.alerts.app.name": { "mapping_field": "app" }, + "netskope.alerts.app.category": { "mapping_field": "appcategory" }, + "user_agent.name": { "mapping_field": "browser" }, + "netskope.alerts.category.name": { "mapping_field": "category" }, + "netskope.alerts.cci": { "mapping_field": "cci" }, + "netskope.alerts.ccl": { "mapping_field": "ccl" }, + "netskope.alerts.count": { "mapping_field": "count" }, + "netskope.alerts.device.name": { "mapping_field": "device" }, + "netskope.alerts.device.classification": { "mapping_field": "device_classification" }, + "destination.geo.country_iso_code": { "mapping_field": "dst_country" }, + "netskope.alerts.destination.geoip_src": { "mapping_field": "dst_geoip_src" }, + "destination.geo.location.lat": { "mapping_field": "dst_latitude" }, + "destination.geo.city_name": { "mapping_field": "dst_location" }, + "destination.geo.location.lon": { "mapping_field": "dst_longitude" }, + "destination.geo.region_name": { "mapping_field": "dst_region" }, + "destination.geo.postal_code": { "mapping_field": "dst_zipcode" }, + "destination.address": { "mapping_field": "dstip" }, + "destination.ip": { "mapping_field": "dstip" }, + "netskope.alerts.event.type": { "mapping_field": "event_type" }, + "netskope.alerts.event_source_channel": { "mapping_field": "evt_src_chnl" }, + "file.size": { "mapping_field": "file_size" }, + "file.mime_type.1": { "mapping_field": "file_type" }, + "netskope.alerts.from.storage": { "mapping_field": "from_storage" }, + "host.hostname": { "mapping_field": "hostname" }, + "netskope.alerts.managed.app": { "mapping_field": "managed_app" }, + "netskope.alerts.management.id": { "mapping_field": "managementID" }, + "netskope.alerts.ns_device_uid": { "mapping_field": "nsdeviceuid" }, + "netskope.alerts.object.name": { "mapping_field": "object" }, + "netskope.alerts.object.type": { "mapping_field": "object_type" }, + "netskope.alerts.organization.unit": { "mapping_field": "organization_unit" }, + "netskope.alerts.orig_ty": { "mapping_field": "orig_ty" }, + "user_agent.os.name": { "mapping_field": "os" }, + "user_agent.os.version": { "mapping_field": "os_version" }, + "netskope.alerts.other.categories": { "mapping_field": "other_categories" }, + "netskope.alerts.page.url": { "mapping_field": "page" }, + "netskope.alerts.page.site": { "mapping_field": "page_site" }, + "netskope.alerts.policy.name": { "mapping_field": "policy" }, + "netskope.alerts.policy.actions": { "mapping_field": "policy_actions" }, + "netskope.alerts.profile.id": { "mapping_field": "profile_id" }, + "netskope.alerts.severity.level": { "mapping_field": "severity" }, + "netskope.alerts.site": { "mapping_field": "site" }, + "source.geo.country_iso_code": { "mapping_field": "src_country" }, + "netskope.alerts.source.geoip_src": { "mapping_field": "src_geoip_src" }, + "source.geo.location.lat": { "mapping_field": "src_latitude" }, + "source.geo.city_name": { "mapping_field": "src_location" }, + "source.geo.location.lon": { "mapping_field": "src_longitude" }, + "source.geo.region_name": { "mapping_field": "src_region" }, + "source.geo.postal_code": { "mapping_field": "src_zipcode" }, + "source.address": { "mapping_field": "srcip" }, + "source.ip": { "mapping_field": "srcip" }, + "netskope.alerts.telemetry.app": { "mapping_field": "telemetry_app" }, + "netskope.alerts.threshold.value": { "mapping_field": "threshold" }, + "netskope.alerts.threshold.time": { "mapping_field": "threshold_time" }, + "@timestamp": { "mapping_field": "timestamp" }, + "netskope.alerts.traffic.type": { "mapping_field": "traffic_type" }, + "netskope.alerts.transaction.id": { "mapping_field": "transaction_id" }, + "netskope.alerts.type": { "mapping_field": "alert_type" }, + "user.email.1": { "mapping_field": "ur_normalized" }, + "netskope.alerts.url": { "mapping_field": "url" }, + "user.email.2": { "mapping_field": "user" }, + "user.group.name": { "mapping_field": "usergroup" }, + "netskope.alerts.user.ip": { "mapping_field": "userip" }, + "user.email.3": { "mapping_field": "userkey" }, + "netskope.alerts.app.session.id": { "mapping_field": "app_session_id" }, + "netskope.alerts.browser.session.id": { "mapping_field": "browser_session_id" }, + "destination.geo.timezone": { "mapping_field": "dst_timezone" }, + "netskope.alerts.last.app": { "mapping_field": "last_app" }, + "netskope.alerts.last.country": { "mapping_field": "last_country" }, + "netskope.alerts.last.device": { "mapping_field": "last_device" }, + "netskope.alerts.last.location": { "mapping_field": "last_location" }, + "netskope.alerts.last.region": { "mapping_field": "last_region" }, + "netskope.alerts.last.timestamp": { "mapping_field": "last_timestamp" }, + "netskope.alerts.slc_longitude": { "mapping_field": "slc_longitude" }, + "source.geo.timezone": { "mapping_field": "src_timezone" }, + "netskope.alerts.flow_status": { "mapping_field": "flow_status" }, + "netskope.alerts.uba_ap1": { "mapping_field": "uba_ap1" }, + "netskope.alerts.uba_ap2": { "mapping_field": "uba_ap2" }, + "netskope.alerts.uba_inst1": { "mapping_field": "uba_inst1" }, + "netskope.alerts.uba_inst2": { "mapping_field": "uba_inst2" }, + "netskope.alerts.activity.status": { "mapping_field": "activity_status" }, + "netskope.alerts.connection.id": { "mapping_field": "connection_id" }, + "netskope.alerts.instance.id": { "mapping_field": "instance_id" }, + "file.hash.md5": { "mapping_field": "md5" }, + "netskope.alerts.parent.id": { "mapping_field": "parent_id" }, + "netskope.alerts.referer": { "mapping_field": "referer" }, + "netskope.alerts.slc_latitude": { "mapping_field": "slc_latitude" }, + "netskope.alerts.is_web_universal_connector": { "mapping_field": "web_universal_connector" } + } + }, + "Compromised Credential": { + "header": {}, + "extension": { + "event.id": { "mapping_field": "_id" }, + "netskope.alerts.insertion_epoch_timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.alerts.acked": { "mapping_field": "acked" }, + "netskope.alerts.is_alert": { "mapping_field": "alert" }, + "netskope.alerts.alert.name": { "mapping_field": "alert_name" }, + "netskope.alerts.type": { "mapping_field": "alert_type" }, + "netskope.alerts.breach.date": { "mapping_field": "breach_date" }, + "netskope.alerts.breach.description": { "mapping_field": "breach_description" }, + "netskope.alerts.breach.id": { "mapping_field": "breach_id" }, + "netskope.alerts.breach.media_references": { "mapping_field": "breach_media_references" }, + "netskope.alerts.breach.score": { "mapping_field": "breach_score" }, + "netskope.alerts.breach.target_references": { "mapping_field": "breach_target_references" }, + "netskope.alerts.category.name": { "mapping_field": "category" }, + "netskope.alerts.cci": { "mapping_field": "cci" }, + "netskope.alerts.ccl": { "mapping_field": "ccl" }, + "netskope.alerts.count": { "mapping_field": "count" }, + "netskope.alerts.email.source": { "mapping_field": "email_source" }, + "netskope.alerts.external.email": { "mapping_field": "external_email" }, + "netskope.alerts.matched.username": { "mapping_field": "matched_username" }, + "netskope.alerts.organization.unit": { "mapping_field": "organization_unit" }, + "netskope.alerts.other.categories": { "mapping_field": "other_categories" }, + "@timestamp": { "mapping_field": "timestamp" }, + "netskope.alerts.alert.type": { "mapping_field": "type" }, + "user.email.1": { "mapping_field": "ur_normalized" }, + "user.email.2": { "mapping_field": "user" }, + "netskope.alerts.user.group": { "mapping_field": "usergroup" }, + "user.email.3": { "mapping_field": "userkey" }, + "netskope.alerts.app.category": { "mapping_field": "appcategory" }, + "netskope.alerts.flow_status": { "mapping_field": "flow_status" } + } + }, + "Malsite": { + "header": {}, + "extension": { + "event.id": { "mapping_field": "_id" }, + "netskope.alerts.insertion_epoch_timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.alerts.access_method": { "mapping_field": "access_method" }, + "netskope.alerts.acked": { "mapping_field": "acked" }, + "netskope.alerts.is_alert": { "mapping_field": "alert" }, + "netskope.alerts.alert.name": { "mapping_field": "alert_name" }, + "netskope.alerts.type": { "mapping_field": "alert_type" }, + "netskope.alerts.app.name": { "mapping_field": "app" }, + "netskope.alerts.app.session.id": { "mapping_field": "app_session_id" }, + "netskope.alerts.app.category": { "mapping_field": "appcategory" }, + "netskope.alerts.app.suite": { "mapping_field": "appsuite" }, + "user_agent.name": { "mapping_field": "browser" }, + "netskope.alerts.browser.session.id": { "mapping_field": "browser_session_id" }, + "netskope.alerts.category.name": { "mapping_field": "category" }, + "netskope.alerts.cci": { "mapping_field": "cci" }, + "netskope.alerts.ccl": { "mapping_field": "ccl" }, + "netskope.alerts.connection.id": { "mapping_field": "connection_id" }, + "netskope.alerts.count": { "mapping_field": "count" }, + "netskope.alerts.device.name": { "mapping_field": "device" }, + "netskope.alerts.device.classification": { "mapping_field": "device_classification" }, + "destination.geo.country_iso_code": { "mapping_field": "dst_country" }, + "destination.geo.location.lat": { "mapping_field": "dst_latitude" }, + "destination.geo.city_name": { "mapping_field": "dst_location" }, + "destination.geo.location.lon": { "mapping_field": "dst_longitude" }, + "destination.geo.region_name": { "mapping_field": "dst_region" }, + "destination.geo.timezone": { "mapping_field": "dst_timezone" }, + "destination.geo.postal_code": { "mapping_field": "dst_zipcode" }, + "destination.ip": { "mapping_field": "dstip" }, + "destination.address": { "mapping_field": "dstip" }, + "host.hostname": { "mapping_field": "hostname" }, + "netskope.alerts.is_malicious": { "mapping_field": "malicious" }, + "netskope.alerts.malsite.active": { "mapping_field": "malsite_active" }, + "netskope.alerts.malsite.as.number": { "mapping_field": "malsite_as_number" }, + "netskope.alerts.malsite.category": { "mapping_field": "malsite_category" }, + "netskope.alerts.malsite.city": { "mapping_field": "malsite_city" }, + "netskope.alerts.malsite.confidence": { "mapping_field": "malsite_confidence" }, + "netskope.alerts.malsite.consecutive": { "mapping_field": "malsite_consecutive" }, + "netskope.alerts.malsite.country": { "mapping_field": "malsite_country" }, + "netskope.alerts.malsite.dns.server": { "mapping_field": "malsite_dns_server" }, + "netskope.alerts.malsite.first_seen": { "mapping_field": "malsite_first_seen" }, + "netskope.alerts.malsite.hostility": { "mapping_field": "malsite_hostility" }, + "netskope.alerts.malsite.id": { "mapping_field": "malsite_id" }, + "netskope.alerts.malsite.ip_host": { "mapping_field": "malsite_ip_host" }, + "netskope.alerts.malsite.isp": { "mapping_field": "malsite_isp" }, + "netskope.alerts.malsite.last.seen": { "mapping_field": "malsite_last_seen" }, + "netskope.alerts.malsite.latitude": { "mapping_field": "malsite_latitude" }, + "netskope.alerts.malsite.longitude": { "mapping_field": "malsite_longitude" }, + "netskope.alerts.malsite.region": { "mapping_field": "malsite_region" }, + "netskope.alerts.malsite.reputation": { "mapping_field": "malsite_reputation" }, + "netskope.alerts.managed.app": { "mapping_field": "managed_app" }, + "netskope.alerts.netskope_pop": { "mapping_field": "netskope_pop" }, + "netskope.alerts.organization.unit": { "mapping_field": "organization_unit" }, + "user_agent.os.name": { "mapping_field": "os" }, + "user_agent.os.version": { "mapping_field": "os_version" }, + "netskope.alerts.other.categories": { "mapping_field": "other_categories" }, + "netskope.alerts.page.url": { "mapping_field": "page" }, + "netskope.alerts.page.site": { "mapping_field": "page_site" }, + "network.protocol": { "mapping_field": "protocol" }, + "netskope.alerts.severity.level": { "mapping_field": "severity" }, + "netskope.alerts.malsite.severity.level": { "mapping_field": "severity_level" }, + "netskope.alerts.severity.level_id": { "mapping_field": "severity_level_id" }, + "netskope.alerts.site": { "mapping_field": "site" }, + "source.geo.country_iso_code": { "mapping_field": "src_country" }, + "source.geo.location.lat": { "mapping_field": "src_latitude" }, + "source.geo.city_name": { "mapping_field": "src_location" }, + "source.geo.location.lon": { "mapping_field": "src_longitude" }, + "source.geo.region_name": { "mapping_field": "src_region" }, + "netskope.alerts.source.time": { "mapping_field": "src_time" }, + "source.geo.timezone": { "mapping_field": "src_timezone" }, + "source.geo.postal_code": { "mapping_field": "src_zipcode" }, + "source.ip": { "mapping_field": "srcip" }, + "source.address": { "mapping_field": "srcip" }, + "netskope.alerts.telemetry.app": { "mapping_field": "telemetry_app" }, + "netskope.alerts.threat.match.field": { "mapping_field": "threat_match_field" }, + "netskope.alerts.threat.match.value": { "mapping_field": "threat_match_value" }, + "netskope.alerts.threat.source.id": { "mapping_field": "threat_source_id" }, + "@timestamp": { "mapping_field": "timestamp" }, + "netskope.alerts.traffic.type": { "mapping_field": "traffic_type" }, + "netskope.alerts.transaction.id": { "mapping_field": "transaction_id" }, + "netskope.alerts.alert.type": { "mapping_field": "type" }, + "user.email.1": { "mapping_field": "ur_normalized" }, + "netskope.alerts.url": { "mapping_field": "url" }, + "user.email.2": { "mapping_field": "user" }, + "netskope.alerts.user.group": { "mapping_field": "usergroup" }, + "netskope.alerts.user.ip": { "mapping_field": "userip" }, + "user.email.3": { "mapping_field": "userkey" }, + "netskope.alerts.action": { "mapping_field": "action" }, + "netskope.alerts.ip.protocol": { "mapping_field": "ip_protocol" }, + "netskope.alerts.notify.template": { "mapping_field": "notify_template" }, + "netskope.alerts.policy.name": { "mapping_field": "policy" }, + "netskope.alerts.referer": { "mapping_field": "referer" }, + "user_agent.version": { "mapping_field": "browser_version" }, + "netskope.alerts.flow_status": { "mapping_field": "flow_status" } + } + }, + "malware": { + "header": {}, + "extension": { + "event.id": { "mapping_field": "_id" }, + "netskope.alerts.insertion_epoch_timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.alerts.access_method": { "mapping_field": "access_method" }, + "netskope.alerts.acked": { "mapping_field": "acked" }, + "netskope.alerts.action": { "mapping_field": "action" }, + "netskope.alerts.activity.name": { "mapping_field": "activity" }, + "netskope.alerts.is_alert": { "mapping_field": "alert" }, + "netskope.alerts.alert.name": { "mapping_field": "alert_name" }, + "netskope.alerts.type": { "mapping_field": "alert_type" }, + "netskope.alerts.app.name": { "mapping_field": "app" }, + "netskope.alerts.app.app_name": { "mapping_field": "app_name" }, + "netskope.alerts.app.session.id": { "mapping_field": "app_session_id" }, + "netskope.alerts.app.category": { "mapping_field": "appcategory" }, + "netskope.alerts.category.name": { "mapping_field": "category" }, + "netskope.alerts.cci": { "mapping_field": "cci" }, + "netskope.alerts.ccl": { "mapping_field": "ccl" }, + "netskope.alerts.connection.id": { "mapping_field": "connection_id" }, + "netskope.alerts.count": { "mapping_field": "count" }, + "netskope.alerts.created_at": { "mapping_field": "created_date" }, + "netskope.alerts.detection.engine": { "mapping_field": "detection_engine" }, + "netskope.alerts.file.id": { "mapping_field": "file_id" }, + "file.name": { "mapping_field": "file_name" }, + "file.path": { "mapping_field": "file_path" }, + "file.size": { "mapping_field": "file_size" }, + "file.mime_type.1": { "mapping_field": "file_type" }, + "netskope.alerts.instance.name": { "mapping_field": "instance" }, + "threat.indicator.file.hash.md5": { "mapping_field": "local_md5" }, + "threat.indicator.file.hash.sha256": { "mapping_field": "local_sha256" }, + "netskope.alerts.malware.id": { "mapping_field": "malware_id" }, + "netskope.alerts.malware.name": { "mapping_field": "malware_name" }, + "netskope.alerts.malware.profile": { "mapping_field": "malware_profile" }, + "netskope.alerts.malware.severity": { "mapping_field": "malware_severity" }, + "netskope.alerts.malware.type": { "mapping_field": "malware_type" }, + "netskope.alerts.mime.type": { "mapping_field": "mime_type" }, + "netskope.alerts.ml_detection": { "mapping_field": "ml_detection" }, + "netskope.alerts.modified.timestamp": { "mapping_field": "modified" }, + "netskope.alerts.modified.date": { "mapping_field": "modified_date" }, + "netskope.alerts.object.name": { "mapping_field": "object" }, + "netskope.alerts.object.id": { "mapping_field": "object_id" }, + "netskope.alerts.organization.unit": { "mapping_field": "organization_unit" }, + "netskope.alerts.other.categories": { "mapping_field": "other_categories" }, + "netskope.alerts.path.id": { "mapping_field": "path_id" }, + "netskope.alerts.scanner_result": { "mapping_field": "scanner_result" }, + "netskope.alerts.severity.level": { "mapping_field": "severity" }, + "netskope.alerts.severity.id": { "mapping_field": "severity_id" }, + "netskope.alerts.shared.type": { "mapping_field": "shared_type" }, + "netskope.alerts.shared.with": { "mapping_field": "shared_with" }, + "netskope.alerts.site": { "mapping_field": "site" }, + "@timestamp": { "mapping_field": "timestamp" }, + "netskope.alerts.title": { "mapping_field": "title" }, + "netskope.alerts.traffic.type": { "mapping_field": "traffic_type" }, + "netskope.alerts.tss.mode": { "mapping_field": "tss_mode" }, + "netskope.alerts.alert.type": { "mapping_field": "type" }, + "user.email.1": { "mapping_field": "ur_normalized" }, + "user.email.2": { "mapping_field": "user" }, + "user.email.3": { "mapping_field": "user_id" }, + "netskope.alerts.user.group": { "mapping_field": "usergroup" }, + "user.email.4": { "mapping_field": "userkey" }, + "netskope.alerts.browser.session.id": { "mapping_field": "browser_session_id" }, + "user_agent.name": { "mapping_field": "browser" }, + "user_agent.version": { "mapping_field": "browser_version" }, + "netskope.alerts.device.name": { "mapping_field": "device" }, + "netskope.alerts.device.classification": { "mapping_field": "device_classification" }, + "destination.geo.country_iso_code": { "mapping_field": "dst_country" }, + "netskope.alerts.destination.geoip_src": { "mapping_field": "dst_geoip_src" }, + "destination.geo.location.lat": { "mapping_field": "dst_latitude" }, + "destination.geo.city_name": { "mapping_field": "dst_location" }, + "destination.geo.location.lon": { "mapping_field": "dst_longitude" }, + "destination.geo.region_name": { "mapping_field": "dst_region" }, + "destination.geo.timezone": { "mapping_field": "dst_timezone" }, + "destination.geo.postal_code": { "mapping_field": "dst_zipcode" }, + "destination.ip": { "mapping_field": "dstip" }, + "destination.address": { "mapping_field": "dstip" }, + "netskope.alerts.flow_status": { "mapping_field": "flow_status" }, + "host.hostname": { "mapping_field": "hostname" }, + "netskope.alerts.ip.protocol": { "mapping_field": "ip_protocol" }, + "netskope.alerts.ns_device_uid": { "mapping_field": "nsdeviceuid" }, + "netskope.alerts.object.type": { "mapping_field": "object_type" }, + "user_agent.os.name": { "mapping_field": "os" }, + "user_agent.os.version": { "mapping_field": "os_version" }, + "netskope.alerts.page.url": { "mapping_field": "page" }, + "netskope.alerts.page.site": { "mapping_field": "page_site" }, + "network.protocol": { "mapping_field": "protocol" }, + "netskope.alerts.referer": { "mapping_field": "referer" }, + "netskope.alerts.source.geoip_src": { "mapping_field": "src_geoip_src" }, + "source.geo.location.lat": { "mapping_field": "src_latitude" }, + "source.geo.city_name": { "mapping_field": "src_location" }, + "source.geo.location.lon": { "mapping_field": "src_longitude" }, + "source.geo.region_name": { "mapping_field": "src_region" }, + "netskope.alerts.source.time": { "mapping_field": "src_time" }, + "source.geo.timezone": { "mapping_field": "src_timezone" }, + "source.geo.postal_code": { "mapping_field": "src_zipcode" }, + "source.ip": { "mapping_field": "srcip" }, + "source.address": { "mapping_field": "srcip" }, + "netskope.alerts.transaction.id": { "mapping_field": "transaction_id" }, + "netskope.alerts.is_web_universal_connector": { "mapping_field": "web_universal_connector" }, + "source.geo.country_iso_code": { "mapping_field": "src_country" }, + "netskope.alerts.management.id": { "mapping_field": "managementID" }, + "netskope.alerts.managed.app": { "mapping_field": "managed_app" }, + "netskope.alerts.request.id": { "mapping_field": "request_id" }, + "netskope.alerts.user.ip": { "mapping_field": "userip" } + } + } + } + } +} +``` +Netskope Alert Validation Extensions: +``` +ECS Key Name,Length,Data Type +@timestamp,,DateTime +cloud.account.id,,String +cloud.account.name,,String +cloud.service.name,,String +client.bytes,,Integer +client.packets,,Integer +destination.address,,String +destination.domain,,String +destination.geo.country_iso_code,,String +destination.geo.city_name,,String +destination.geo.location.lat,,Floating Point +destination.geo.location.lon,,Floating Point +destination.geo.postal_code,,String +destination.geo.region_name,,String +destination.geo.timezone,,String +destination.ip,,String +destination.port,,Integer +event.id,,String +file.hash.md5,,String +file.mime_type,,String +file.name,,String +file.path,,String +file.size,,Integer +host.hostname,,String +netskope.alerts.access_method,,String +netskope.alerts.acked,,String +netskope.alerts.acting.role,,String +netskope.alerts.action,,String +netskope.alerts.activities,,String +netskope.alerts.activity.name,,String +netskope.alerts.activity.status,,String +netskope.alerts.activity.type,,String +netskope.alerts.agg.window,,String +netskope.alerts.aggregated.user,,String +netskope.alerts.alert.affected.entities,,String +netskope.alerts.alert.category,,String +netskope.alerts.alert.description,,String +netskope.alerts.alert.detection.stage,,String +netskope.alerts.alert.id,,String +netskope.alerts.alert.name,,String +netskope.alerts.alert.notes,,String +netskope.alerts.alert.query,,String +netskope.alerts.alert.score,,Integer +netskope.alerts.alert.source,,String +netskope.alerts.alert.status,,String +netskope.alerts.alert.type,,String +netskope.alerts.alert.window,,String +netskope.alerts.algorithm,,String +netskope.alerts.anomaly.efficacy,,String +netskope.alerts.anomaly.fields,,String +netskope.alerts.anomaly.id,,String +netskope.alerts.anomaly.magnitude,,Floating Point +netskope.alerts.anomaly.type,,String +netskope.alerts.app.app_name,,String +netskope.alerts.app.activity,,String +netskope.alerts.app.category,,String +netskope.alerts.app.suite,,String +netskope.alerts.app.name,,String +netskope.alerts.app.region,,String +netskope.alerts.app.session.id,,String +netskope.alerts.asn,,Integer +netskope.alerts.asset.id,,String +netskope.alerts.asset.object.id,,String +netskope.alerts.attachment,,String +netskope.alerts.audit.category,,String +netskope.alerts.audit.type,,String +netskope.alerts.bin.timestamp,,Integer +netskope.alerts.breach.date,,Integer +netskope.alerts.breach.id,,String +netskope.alerts.breach.description,,String +netskope.alerts.breach.media_references,,String +netskope.alerts.breach.name,,String +netskope.alerts.breach.score,,Integer +netskope.alerts.breach.target_references,,String +netskope.alerts.browser.session.id,,String +netskope.alerts.bucket,,String +netskope.alerts.bypass.traffic,,String +netskope.alerts.category,,String +netskope.alerts.category.id,,String +netskope.alerts.category.name,,String +netskope.alerts.cci,,String +netskope.alerts.ccl,,String +netskope.alerts.channel,,String +netskope.alerts.cloud.provider,,String +netskope.alerts.compliance.standards,,String +netskope.alerts.compute.instance,,String +netskope.alerts.connection.duration,,Integer +netskope.alerts.connection.endtime,,Floating Point +netskope.alerts.connection.id,,String +netskope.alerts.connection.starttime,,Floating Point +netskope.alerts.count,,Integer +netskope.alerts.created_at,,String +netskope.alerts.data.version,,String +netskope.alerts.description,,String +netskope.alerts.destination.geoip_src,,Integer +netskope.alerts.detected-file-type,,String +netskope.alerts.detection.engine,,String +netskope.alerts.detection.type,,String +netskope.alerts.device.name,,String +netskope.alerts.device.classification,,String +netskope.alerts.dlp.file,,String +netskope.alerts.dlp.fingerprint.classification,,String +netskope.alerts.dlp.fingerprint.match,,String +netskope.alerts.dlp.fingerprint.score,,Integer +netskope.alerts.dlp.fv,,Integer +netskope.alerts.dlp.incident.id,,String +netskope.alerts.dlp.is_unique_count,,String +netskope.alerts.dlp.mail.parent.id,,String +netskope.alerts.dlp.parent.id,,String +netskope.alerts.dlp.profile,,String +netskope.alerts.dlp.rule.count,,Integer +netskope.alerts.dlp.rule.name,,String +netskope.alerts.dlp.rule.score,,Integer +netskope.alerts.dlp.rule.severity,,String +netskope.alerts.dlp.unique_count,,Integer +netskope.alerts.doc.count,,Integer +netskope.alerts.domain,,String +netskope.alerts.domain.shared.with,,String +netskope.alerts.download.app,,String +netskope.alerts.drive.id,,String +netskope.alerts.dynamic.classification,,String +netskope.alerts.elastic_key,,String +netskope.alerts.email.source,,String +netskope.alerts.encrypt.failure,,String +netskope.alerts.encryption.service.key,,String +netskope.alerts.end_time,,Integer +netskope.alerts.enterprise.id,,String +netskope.alerts.enterprise.name,,String +netskope.alerts.entity.list,,String +netskope.alerts.entity.type,,String +netskope.alerts.entity.value,,String +netskope.alerts.event_source_channel,,String +netskope.alerts.event.detail,,String +netskope.alerts.event.id,,String +netskope.alerts.event.type,,String +netskope.alerts.exposure,,String +netskope.alerts.external.collaborator.count,,Integer +netskope.alerts.external.email,,Integer +netskope.alerts.false_positive,,String +netskope.alerts.feature.description,,String +netskope.alerts.feature.id,,String +netskope.alerts.feature.name,,String +netskope.alerts.file.id,,String +netskope.alerts.file.lang,,String +netskope.alerts.file.name,,String +netskope.alerts.file.password.protected,,String +netskope.alerts.file.path,,String +netskope.alerts.file.path.original,,String +netskope.alerts.file.size,,Floating Point +netskope.alerts.file.type,,String +netskope.alerts.forward_to_proxy_profile,,String +netskope.alerts.from.logs,,String +netskope.alerts.from.object,,String +netskope.alerts.from.storage,,String +netskope.alerts.from.user_category,,String +netskope.alerts.gateway,,String +netskope.alerts.graph.id,,String +netskope.alerts.http_status,,String +netskope.alerts.http_transaction_count,,Integer +netskope.alerts.iaas.asset.tags,,String +netskope.alerts.iaas.remediated,,String +netskope.alerts.iam.session,,String +netskope.alerts.id,,String +netskope.alerts.insertion_epoch_timestamp,,Integer +netskope.alerts.instance_name,,String +netskope.alerts.instance.id,,String +netskope.alerts.instance.name,,String +netskope.alerts.instance.type,,String +netskope.alerts.internal.collaborator.count,,Integer +netskope.alerts.ip_protocol,,String +netskope.alerts.ipblock,,String +netskope.alerts.is_alert,,String +netskope.alerts.is_file_passwd_protected,,String +netskope.alerts.is_malicious,,String +netskope.alerts.is_two_factor_auth,,Integer +netskope.alerts.is_universal_connector,,String +netskope.alerts.is_user_generated,,String +netskope.alerts.is_web_universal_connector,,String +netskope.alerts.isp,,String +netskope.alerts.item.id,,String +netskope.alerts.justification.reason,,String +netskope.alerts.justification.type,,String +netskope.alerts.last.app,,String +netskope.alerts.last.coordinates,,Floating Point +netskope.alerts.last.country,,String +netskope.alerts.last.device,,String +netskope.alerts.last.location,,String +netskope.alerts.last.modified_timestamp,,Integer +netskope.alerts.last.region,,String +netskope.alerts.last.timestamp,,Integer +netskope.alerts.latency.max,,Integer +netskope.alerts.latency.min,,Integer +netskope.alerts.latency.total,,Integer +netskope.alerts.legal_hold.custodian_name,,String +netskope.alerts.legal_hold.destination.app,,String +netskope.alerts.legal_hold.destination.instance,,String +netskope.alerts.legal_hold.file.id,,String +netskope.alerts.legal_hold.file.name,,String +netskope.alerts.legal_hold.file.name_original,,String +netskope.alerts.legal_hold.file.path,,String +netskope.alerts.legal_hold.profile_name,,String +netskope.alerts.legal_hold.shared,,String +netskope.alerts.legal_hold.shared_with,,String +netskope.alerts.legal_hold.version,,String +netskope.alerts.list.id,,String +netskope.alerts.log.file.name,,String +netskope.alerts.login.type,,String +netskope.alerts.login.url,,String +netskope.alerts.malsite.active,,Integer +netskope.alerts.malsite.as.number,,String +netskope.alerts.malsite.category,,String +netskope.alerts.malsite.city,,String +netskope.alerts.malsite.confidence,,Integer +netskope.alerts.malsite.consecutive,,Integer +netskope.alerts.malsite.country,,String +netskope.alerts.malsite.dns.server,,String +netskope.alerts.malsite.first_seen,,Integer +netskope.alerts.malsite.hostility,,String +netskope.alerts.malsite.id,,String +netskope.alerts.malsite.ip_host,,String +netskope.alerts.malsite.isp,,String +netskope.alerts.malsite.last.seen,,Integer +netskope.alerts.malsite.latitude,,Floating Point +netskope.alerts.malsite.longitude,,Floating Point +netskope.alerts.malsite.region,,String +netskope.alerts.malsite.reputation,,Floating Point +netskope.alerts.malsite.severity.level,,String +netskope.alerts.malware.id,,String +netskope.alerts.malware.name,,String +netskope.alerts.malware.profile,,String +netskope.alerts.malware.severity,,String +netskope.alerts.malware.type,,String +netskope.alerts.managed.app,,String +netskope.alerts.management.id,,String +netskope.alerts.matched.username,,String +netskope.alerts.matrix.columns,,String +netskope.alerts.matrix.rows,,String +netskope.alerts.md5_list,,String +netskope.alerts.mime.type,,String +netskope.alerts.modified.timestamp,,Integer +netskope.alerts.modified.date,,Integer +netskope.alerts.netskope_pop,,String +netskope.alerts.network.name,,String +netskope.alerts.network.security.group,,String +netskope.alerts.network.session_id,,String +netskope.alerts.new.value,,String +netskope.alerts.nonzero.entries,,Integer +netskope.alerts.nonzero.percentage,,Floating Point +netskope.alerts.notify.template,,String +netskope.alerts.ns_activity,,String +netskope.alerts.ns_device_uid,,String +netskope.alerts.numbytes,,Integer +netskope.alerts.obfuscate,,String +netskope.alerts.object.count,,Integer +netskope.alerts.object.id,,String +netskope.alerts.object.name,,String +netskope.alerts.object.type,,String +netskope.alerts.old.value,,String +netskope.alerts.org,,String +netskope.alerts.organization.unit,,String +netskope.alerts.orig_ty,,String +netskope.alerts.os_version_hostname,,String +netskope.alerts.other.categories,,String +netskope.alerts.owner,,String +netskope.alerts.page,,String +netskope.alerts.page.site,,String +netskope.alerts.parameters,,String +netskope.alerts.parent.id,,String +netskope.alerts.path.id,,String +netskope.alerts.policy.actions,,String +netskope.alerts.policy.id,,String +netskope.alerts.policy.name,,String +netskope.alerts.pretty.sourcetype,,String +netskope.alerts.processing.time,,Integer +netskope.alerts.profile.emails,,String +netskope.alerts.profile.id,,String +netskope.alerts.quarantine.action.reason,,String +netskope.alerts.quarantine.admin,,String +netskope.alerts.quarantine.app,,String +netskope.alerts.quarantine.failure,,String +netskope.alerts.quarantine.file.id,,String +netskope.alerts.quarantine.file.name,,String +netskope.alerts.quarantine.instance,,String +netskope.alerts.quarantine.original.file.name,,String +netskope.alerts.quarantine.original.file.path,,String +netskope.alerts.quarantine.original.shared,,String +netskope.alerts.quarantine.original.version,,String +netskope.alerts.quarantine.profile.name,,String +netskope.alerts.quarantine.profile.id,,String +netskope.alerts.quarantine.shared.with,,String +netskope.alerts.referer,,String +http.request.referrer,,String +netskope.alerts.region.id,,String +netskope.alerts.region.name,,String +netskope.alerts.reladb,,String +netskope.alerts.repo,,String +netskope.alerts.request.cnt,,String +netskope.alerts.request.id,,String +netskope.alerts.resource.group,,String +netskope.alerts.resources,,String +netskope.alerts.response.cnt,,Integer +netskope.alerts.response.content.length,,Integer +netskope.alerts.response.content.type,,String +netskope.alerts.retro.scan.name,,String +netskope.alerts.risk_level.id,,String +netskope.alerts.risk_level.tag,,String +netskope.alerts.role,,String +netskope.alerts.rule.id,,String +netskope.alerts.sa.profile.id,,String +netskope.alerts.sa.profile.name,,String +netskope.alerts.sa.rule.remediation,,String +netskope.alerts.sa.rule.severity,,String +netskope.alerts.scan.time,,String +netskope.alerts.scan.type,,String +netskope.alerts.scanner_result,,String +netskope.alerts.scopes,,String +netskope.alerts.serial,,String +netskope.alerts.session.duration,,Integer +netskope.alerts.session.id,,String +netskope.alerts.severity,,String +netskope.alerts.severity.id,,String +netskope.alerts.severity.level,,String +netskope.alerts.severity.level_id,,Integer +netskope.alerts.sfwder,,String +netskope.alerts.shared_type,,String +netskope.alerts.shared.credential.user,,String +netskope.alerts.shared.domains,,String +netskope.alerts.shared.is_shared,,String +netskope.alerts.shared.type,,String +netskope.alerts.shared.with,,String +netskope.alerts.site,,String +netskope.alerts.source.geoip_src,,Integer +netskope.alerts.source.time,,String +netskope.alerts.srcip2,,String +netskope.alerts.ssl.decrypt.policy,,String +netskope.alerts.start_time,,Integer +netskope.alerts.start_time,,String +netskope.alerts.statistics,,String +netskope.alerts.storage_service_bucket,,String +netskope.alerts.sub.type,,String +netskope.alerts.summary,,String +netskope.alerts.suppression.end.time,,String +netskope.alerts.suppression.key,,String +netskope.alerts.suppression.start.time,,String +netskope.alerts.target.entity.key,,String +netskope.alerts.target.entity.type,,String +netskope.alerts.target.entity.value,,String +netskope.alerts.team,,String +netskope.alerts.telemetry.app,,String +netskope.alerts.temp.user,,String +netskope.alerts.tenant.id,,String +netskope.alerts.tenant.id,,String +netskope.alerts.threat.match.field,,String +netskope.alerts.threat.match.value,,String +netskope.alerts.threat.source.id,,String +netskope.alerts.threshold.time,,Integer +netskope.alerts.threshold.value,,Integer +netskope.alerts.timestamp,,Integer +netskope.alerts.to.object,,String +netskope.alerts.to.storage,,String +netskope.alerts.to.user,,String +netskope.alerts.to.user_category,,String +netskope.alerts.total.collaborator.count,,String +netskope.alerts.total.packets,,Integer +netskope.alerts.traffic.type,,String +netskope.alerts.transaction.id,,String +netskope.alerts.transformation,,String +netskope.alerts.tss.mode,,String +netskope.alerts.tss.version,,String +netskope.alerts.tunnel.id,,String +netskope.alerts.tunnel.type,,String +netskope.alerts.tunnel.up_time,,String +netskope.alerts.type,,String +netskope.alerts.updated,,String +netskope.alerts.url,,String +netskope.alerts.Url2Activity,,String +netskope.alerts.user.category,,String +netskope.alerts.user.ip,,String +netskope.alerts.value,,String +netskope.alerts.violating_user.name,,Floating Point +netskope.alerts.violating_user.type,,String +netskope.alerts.web.url,,String +netskope.alerts.workspace.id,,String +netskope.alerts.workspace.name,,String +netskope.alerts.zip.password,,String +network.protocol,,String +server.bytes,,Integer +server.packets,,Integer +source.address,,String +source.geo.city_name,,String +source.geo.country_iso_code,,String +source.geo.location.lat,,Floating Point +source.geo.location.lon,,Floating Point +source.geo.postal_code,,String +source.geo.region_name,,String +source.geo.timezone,,String +source.ip,,String +source.port,,Integer +threat.indicator.file.hash.md5,,String +threat.indicator.file.hash.sha1,,String +threat.indicator.file.hash.sha256,,String +user_agent.name,,String +user_agent.original,,String +user_agent.os.name,,String +user_agent.os.version,,String +user_agent.version,,String +user.email,,String +user.group.name,,String +user.id,,String +user.name,,String +user.roles,,String +netskope.alerts.user.group,,String +netskope.alerts.page.url,,String +netskope.alerts.page_site,,String +netskope.alerts.sa.rule.name,,String +netskope.alerts.sa.rule.id,,String +netskope.alerts.resource.category,,String +netskope.alerts.ip.protocol,,String +netskope.alerts.slc_longitude,,String +netskope.alerts.flow_status,,String +netskope.alerts.uba_inst2,,String +netskope.alerts.uba_inst1,,String +netskope.alerts.uba_ap2,,String +netskope.alerts.uba_ap1,,String +netskope.alerts.slc_latitude,,String +netskope.alerts.ml_detection,,String +netskope.alerts.title,,String +file.mime_type.1,,String +file.mime_type.2,,String +user.email.1,,String +user.email.2,,String +user.email.3,,String +user.email.4,,String +netskope.alerts.quarantine.app.1,,String +netskope.alerts.quarantine.app.2,,String +``` + +### Events + +Default port: _9021_ + +Netskope Event Mapping: +```json +{ + "elastic_map_version": "2.0.0", + "ecs_version": "0", + "taxonomy": { + "events": { + "application": { + "header": {}, + "extension": { + "netskope.events.event_type": { "default_value": "application" }, + "event.id": { "mapping_field": "_id" }, + "netskope.events.insertion.timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.events.access_method": { "mapping_field": "access_method" }, + "netskope.events.ack": { "mapping_field": "ack" }, + "user.email.1": { "mapping_field": "act_user" }, + "netskope.events.activity.name": { "mapping_field": "activity" }, + "netskope.events.alert.is_present": { "mapping_field": "alert" }, + "netskope.events.app.name": { "mapping_field": "app" }, + "netskope.events.app.activity": { "mapping_field": "app_activity" }, + "netskope.events.app.category": { "mapping_field": "appcategory" }, + "user_agent.name": { "mapping_field": "browser" }, + "netskope.events.category.name": { "mapping_field": "category" }, + "netskope.events.cci": { "mapping_field": "cci" }, + "netskope.events.ccl": { "mapping_field": "ccl" }, + "netskope.events.count": { "mapping_field": "count" }, + "netskope.events.device.type": { "mapping_field": "device" }, + "netskope.events.instance.id": { "mapping_field": "instance_id" }, + "netskope.events.object.name": { "mapping_field": "object" }, + "netskope.events.object.id": { "mapping_field": "object_id" }, + "netskope.events.object.type": { "mapping_field": "object_type" }, + "netskope.events.organization_unit": { "mapping_field": "organization_unit" }, + "user_agent.os.name": { "mapping_field": "os" }, + "netskope.events.other.categories": { "mapping_field": "other_categories" }, + "netskope.events.request.id": { "mapping_field": "request_id" }, + "netskope.events.site": { "mapping_field": "site" }, + "source.geo.country_iso_code": { "mapping_field": "src_country" }, + "netskope.events.source.geoip_src": { "mapping_field": "src_geoip_src" }, + "source.geo.location.lat": { "mapping_field": "src_latitude" }, + "source.geo.city_name": { "mapping_field": "src_location" }, + "source.geo.location.lon": { "mapping_field": "src_longitude" }, + "source.geo.region_name": { "mapping_field": "src_region" }, + "source.geo.postal_code": { "mapping_field": "src_zipcode" }, + "source.address": { "mapping_field": "srcip" }, + "source.ip": { "mapping_field": "srcip" }, + "@timestamp": { "mapping_field": "timestamp" }, + "netskope.events.traffic.type": { "mapping_field": "traffic_type" }, + "netskope.events.type": { "mapping_field": "type" }, + "user.email.2": { "mapping_field": "ur_normalized" }, + "user.email.3": { "mapping_field": "user" }, + "netskope.events.user.category": { "mapping_field": "user_category" }, + "user.email.4": { "mapping_field": "user_id" }, + "user.name": { "mapping_field": "user_name" }, + "user.roles": { "mapping_field": "user_role" }, + "user.group.name": { "mapping_field": "usergroup" }, + "netskope.events.user.ip": { "mapping_field": "userip" }, + "user.email.5": { "mapping_field": "userkey" }, + "cloud.account.name": { "mapping_field": "ack"}, + "event.action": { "mapping_field": "action"}, + "netskope.events.alert.name": { "mapping_field": "alert_name"}, + "netskope.events.alert.type": { "mapping_field": "alert_type"}, + "destination.geo.country_iso_code": { "mapping_field": "dst_country"}, + "netskope.events.destination.geoip.source": { "mapping_field": "dst_geoip_src"}, + "destination.geo.location.lat": { "mapping_field": "dst_latitude"}, + "destination.geo.city_name": { "mapping_field": "dst_location"}, + "destination.geo.location.lon": { "mapping_field": "dst_longitude"}, + "destination.geo.region_name": { "mapping_field": "dst_region"}, + "destination.geo.postal_code": { "mapping_field": "dst_zipcode"}, + "destination.address": { "mapping_field": "dstip"}, + "destination.ip": { "mapping_field": "dstip"}, + "netskope.events.exposure": { "mapping_field": "exposure"}, + "netskope.events.file.lang": { "mapping_field": "file_lang"}, + "file.path": { "mapping_field": "file_path"}, + "file.size": { "mapping_field": "file_size"}, + "file.mime_type.1": { "mapping_field": "file_type"}, + "netskope.events.instance_name": { "mapping_field": "instance"}, + "file.hash.md5": { "mapping_field": "md5"}, + "file.mime_type.2": { "mapping_field": "mime_type"}, + "netskope.events.modified_at": { "mapping_field": "modified"}, + "netskope.events.owner": { "mapping_field": "owner"}, + "netskope.events.policy.name": { "mapping_field": "policy"}, + "netskope.events.quarantine.admin": { "mapping_field": "q_admin"}, + "netskope.events.quarantine.app": { "mapping_field": "q_app"}, + "netskope.events.quarantine.instance": { "mapping_field": "q_instance"}, + "netskope.events.quarantine.original.file.name": { "mapping_field": "q_original_filename"}, + "netskope.events.quarantine.original.file.path": { "mapping_field": "q_original_filepath"}, + "netskope.events.quarantine.original.shared": { "mapping_field": "q_original_shared"}, + "netskope.events.quarantine.original.version": { "mapping_field": "q_original_version"}, + "netskope.events.quarantine.shared_with": { "mapping_field": "q_shared_with"}, + "netskope.events.qar": { "mapping_field": "qar"}, + "netskope.events.quarantine.app_name": { "mapping_field": "quarantine_app"}, + "netskope.events.quarantine.action.reason": { "mapping_field": "quarantine_action_reason"}, + "netskope.events.quarantine.failure": { "mapping_field": "quarantine_failure"}, + "netskope.events.quarantine.file.id": { "mapping_field": "quarantine_file_id"}, + "netskope.events.quarantine.file.name": { "mapping_field": "quarantine_file_name"}, + "netskope.events.quarantine.profile.name": { "mapping_field": "quarantine_profile"}, + "netskope.events.quarantine.profile.id": { "mapping_field": "quarantine_profile_id"}, + "netskope.events.scan.type": { "mapping_field": "scan_type"}, + "netskope.events.shared.with": { "mapping_field": "shared_with"}, + "netskope.events.suppression.key": { "mapping_field": "suppression_key"}, + "netskope.events.url": { "mapping_field": "url"}, + "netskope.events.device.classification": { "mapping_field": "device_classification"}, + "netskope.events.from.storage": { "mapping_field": "from_storage"}, + "netskope.events.managed_app": { "mapping_field": "managed_app"}, + "netskope.events.management.id": { "mapping_field": "managementID"}, + "netskope.events.page": { "mapping_field": "page"}, + "netskope.events.page_site": { "mapping_field": "page_site"}, + "netskope.events.telemetry_app": { "mapping_field": "telemetry_app"}, + "netskope.events.transaction.id": { "mapping_field": "transaction_id"}, + "user_agent.os.version": { "mapping_field": "os_version"}, + "netskope.events.legal_hold_profile_name": { "mapping_field": "legal_hold_profile_name"}, + "user.email.6": { "mapping_field": "lh_custodian_email"}, + "netskope.events.lh.custodian.name": { "mapping_field": "lh_custodian_name"}, + "netskope.events.lh.destination.app": { "mapping_field": "lh_dest_app"}, + "netskope.events.lh.destination.instance": { "mapping_field": "lh_dest_instance"}, + "netskope.events.lh.file_id": { "mapping_field": "lh_fileid"}, + "netskope.events.lh.filename": { "mapping_field": "lh_filename"}, + "netskope.events.lh.filepath": { "mapping_field": "lh_filepath"}, + "netskope.events.lh.filename_original": { "mapping_field": "lh_original_filename"}, + "netskope.events.lh.shared": { "mapping_field": "lh_shared"}, + "netskope.events.lh.shared_with": { "mapping_field": "lh_shared_with"}, + "netskope.events.lh.version": { "mapping_field": "lh_version"}, + "host.hostname": { "mapping_field": "hostname"}, + "netskope.events.ns.device_uid": { "mapping_field": "nsdeviceuid"}, + "netskope.events.severity.level": { "mapping_field": "severity"} + } + }, + "audit": { + "header": {}, + "extension": { + "netskope.events.event_type": { "default_value": "audit" }, + "event.id": { "mapping_field": "_id" }, + "netskope.events.insertion.timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.events.app.category": { "mapping_field": "appcategory" }, + "netskope.events.audit.log.event": { "mapping_field": "audit_log_event" }, + "netskope.events.category.name": { "mapping_field": "category" }, + "netskope.events.ccl": { "mapping_field": "ccl" }, + "netskope.events.count": { "mapping_field": "count" }, + "netskope.events.organization_unit": { "mapping_field": "organization_unit" }, + "netskope.events.severity.level": { "mapping_field": "severity_level" }, + "netskope.events.supporting_data": { "mapping_field": "supporting_data" }, + "@timestamp": { "mapping_field": "timestamp" }, + "netskope.events.type": { "mapping_field": "type" }, + "user.email.1": { "mapping_field": "ur_normalized" }, + "user.email.2": { "mapping_field": "user" } + } + }, + "infrastructure": { + "header": {}, + "extension": { + "netskope.events.event_type": { "default_value": "infrastructure" }, + "@timestamp": { "mapping_field": "timestamp" }, + "event.id": { "mapping_field": "_id" }, + "netskope.events.insertion.timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.events.alarm.name": { "mapping_field": "alarm_name" }, + "netskope.events.alarm.description": { "mapping_field": "alarm_description" }, + "netskope.events.device.name": { "mapping_field": "device_name" }, + "netskope.events.metric_value": { "mapping_field": "metric_value" }, + "netskope.events.serial": { "mapping_field": "serial" }, + "netskope.events.severity.level": { "mapping_field": "severity" }, + "netskope.events.supporting_data": { "mapping_field": "supporting_data" } + } + }, + "network": { + "header": {}, + "extension": { + "netskope.events.event_type": { "default_value": "network" }, + "event.id": { "mapping_field": "_id" }, + "destination.geo.country_iso_code": { "mapping_field": "dst_country" }, + "netskope.events.destination.geoip.source": { "mapping_field": "dst_geoip_src" }, + "destination.geo.location.lat": { "mapping_field": "dst_latitude" }, + "destination.geo.city_name": { "mapping_field": "dst_location" }, + "destination.geo.location.lon": { "mapping_field": "dst_longitude" }, + "destination.geo.region_name": { "mapping_field": "dst_region" }, + "netskope.events.insertion.timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.events.access_method": { "mapping_field": "access_method" }, + "event.action": { "mapping_field": "action" }, + "netskope.events.app.name": { "mapping_field": "app" }, + "netskope.events.app.category": { "mapping_field": "appcategory" }, + "netskope.events.category.name": { "mapping_field": "category" }, + "netskope.events.ccl": { "mapping_field": "ccl" }, + "client.bytes": { "mapping_field": "client_bytes" }, + "client.packets": { "mapping_field": "client_packets" }, + "netskope.events.count": { "mapping_field": "count" }, + "netskope.events.device.type": { "mapping_field": "device" }, + "destination.domain": { "mapping_field": "dsthost" }, + "destination.address": { "mapping_field": "dstip" }, + "destination.ip": { "mapping_field": "dstip" }, + "destination.port": { "mapping_field": "dstport" }, + "destination.geo.postal_code": { "mapping_field": "dst_zipcode" }, + "netskope.events.end_time": { "mapping_field": "end_time" }, + "netskope.events.ip.protocol": { "mapping_field": "ip_protocol" }, + "netskope.events.netskope_pop": { "mapping_field": "netskope_pop" }, + "netskope.events.num_sessions": { "mapping_field": "num_sessions" }, + "netskope.events.numbytes": { "mapping_field": "numbytes" }, + "netskope.events.organization_unit": { "mapping_field": "organization_unit" }, + "user_agent.os.name": { "mapping_field": "os" }, + "user_agent.os.version": { "mapping_field": "os_version" }, + "netskope.events.policy.name": { "mapping_field": "policy" }, + "netskope.events.publisher_cn": { "mapping_field": "publisher_cn" }, + "netskope.events.session.packets": { "mapping_field": "session_duration" }, + "netskope.events.site": { "mapping_field": "site" }, + "network.protocol": { "mapping_field": "protocol" }, + "server.bytes": { "mapping_field": "server_bytes" }, + "server.packets": { "mapping_field": "server_packets" }, + "source.address": { "mapping_field": "srcip" }, + "source.ip": { "mapping_field": "srcip" }, + "source.port": { "mapping_field": "srcport" }, + "netskope.events.start_time": { "mapping_field": "start_time" }, + "@timestamp": { "mapping_field": "timestamp" }, + "netskope.events.tnetwork_session_id": { "mapping_field": "tnetwork_session_id" }, + "netskope.events.total_packets": { "mapping_field": "total_packets" }, + "netskope.events.traffic.type": { "mapping_field": "traffic_type" }, + "netskope.events.tunnel.id": { "mapping_field": "tunnel_id" }, + "netskope.events.tunnel.type": { "mapping_field": "tunnel_type" }, + "netskope.events.tunnel.up_time": { "mapping_field": "tunnel_up_time" }, + "netskope.events.type": { "mapping_field": "type" }, + "source.geo.country_iso_code": { "mapping_field": "src_country" }, + "netskope.events.source.geoip_src": { "mapping_field": "src_geoip_src" }, + "source.geo.location.lat": { "mapping_field": "src_latitude" }, + "source.geo.city_name": { "mapping_field": "src_location" }, + "source.geo.location.lon": { "mapping_field": "src_longitude" }, + "source.geo.region_name": { "mapping_field": "src_region" }, + "source.geo.timezone": { "mapping_field": "src_timezone" }, + "source.geo.postal_code": { "mapping_field": "src_zipcode" }, + "user.email.1": { "mapping_field": "ur_normalized" }, + "user.email.2": { "mapping_field": "user" }, + "user.group.name": { "mapping_field": "usergroup" }, + "netskope.events.user.ip": { "mapping_field": "userip" }, + "user.email.3": { "mapping_field": "userkey" } + } + }, + "page": { + "header": {}, + "extension": { + "netskope.events.event_type": { "default_value": "page" }, + "event.id": { "mapping_field": "_id" }, + "netskope.events.insertion.timestamp": { "mapping_field": "_insertion_epoch_timestamp" }, + "netskope.events.access_method": { "mapping_field": "access_method" }, + "netskope.events.app.name": { "mapping_field": "app" }, + "netskope.events.app.session.id": { "mapping_field": "app_session_id" }, + "netskope.events.app.category": { "mapping_field": "appcategory" }, + "user_agent.name": { "mapping_field": "browser" }, + "netskope.events.browser.session.id": { "mapping_field": "browser_session_id" }, + "user_agent.version": { "mapping_field": "browser_version" }, + "netskope.events.category.name": { "mapping_field": "category" }, + "netskope.events.cci": { "mapping_field": "cci" }, + "netskope.events.ccl": { "mapping_field": "ccl" }, + "client.bytes": { "mapping_field": "client_bytes" }, + "netskope.events.connection.duration": { "mapping_field": "conn_duration" }, + "netskope.events.connection.end_time": { "mapping_field": "conn_endtime" }, + "netskope.events.connection.start_time": { "mapping_field": "conn_starttime" }, + "netskope.events.connection.id": { "mapping_field": "connection_id" }, + "netskope.events.count": { "mapping_field": "count" }, + "netskope.events.device.type": { "mapping_field": "device" }, + "netskope.events.domain": { "mapping_field": "domain" }, + "destination.geo.country_iso_code": { "mapping_field": "dst_country" }, + "netskope.events.destination.geoip.source": { "mapping_field": "dst_geoip_src" }, + "destination.geo.location.lat": { "mapping_field": "dst_latitude" }, + "destination.geo.city_name": { "mapping_field": "dst_location" }, + "destination.geo.location.lon": { "mapping_field": "dst_longitude" }, + "destination.geo.region_name": { "mapping_field": "dst_region" }, + "destination.geo.timezone": { "mapping_field": "dst_timezone" }, + "destination.geo.postal_code": { "mapping_field": "dst_zipcode" }, + "destination.address": { "mapping_field": "dstip" }, + "destination.ip": { "mapping_field": "dstip" }, + "destination.port": { "mapping_field": "dstport" }, + "netskope.events.numbytes": { "mapping_field": "numbytes" }, + "netskope.events.organization_unit": { "mapping_field": "organization_unit" }, + "user_agent.os.name": { "mapping_field": "os" }, + "user_agent.os.version": { "mapping_field": "os_version" }, + "netskope.events.page": { "mapping_field": "page" }, + "netskope.events.request.count": { "mapping_field": "req_cnt" }, + "netskope.events.response.count": { "mapping_field": "resp_cnt" }, + "server.bytes": { "mapping_field": "server_bytes" }, + "netskope.events.severity.level": { "mapping_field": "severity" }, + "netskope.events.site": { "mapping_field": "site" }, + "netskope.events.slc.geo.location.lat": { "mapping_field": "slc_latitude" }, + "netskope.events.slc.geo.location.lon": { "mapping_field": "slc_longitude" }, + "source.geo.country_iso_code": { "mapping_field": "src_country" }, + "netskope.events.source.geoip_src": { "mapping_field": "src_geoip_src" }, + "source.geo.location.lat": { "mapping_field": "src_latitude" }, + "source.geo.city_name": { "mapping_field": "src_location" }, + "source.geo.location.lon": { "mapping_field": "src_longitude" }, + "source.geo.region_name": { "mapping_field": "src_region" }, + "source.geo.timezone": { "mapping_field": "src_timezone" }, + "source.geo.postal_code": { "mapping_field": "src_zipcode" }, + "source.address": { "mapping_field": "srcip" }, + "source.ip": { "mapping_field": "srcip" }, + "@timestamp": { "mapping_field": "timestamp" }, + "netskope.events.traffic.type": { "mapping_field": "traffic_type" }, + "netskope.events.type": { "mapping_field": "type" }, + "user.email.1": { "mapping_field": "ur_normalized" }, + "user.email.2": { "mapping_field": "user" }, + "netskope.events.user.generated": { "mapping_field": "user_generated" }, + "user_agent.original": { "mapping_field": "useragent" }, + "user.group.name": { "mapping_field": "usergroup" }, + "netskope.events.user.ip": { "mapping_field": "userip" }, + "user.email.3": { "mapping_field": "userkey" }, + "netskope.events.url": { "mapping_field" : "url" }, + "netskope.events.is_bypass_traffic": { "mapping_field" : "bypass_traffic" }, + "host.hostname": { "mapping_field" : "hostname" }, + "netskope.events.http_transaction_count": { "mapping_field" : "http_transaction_count" }, + "netskope.events.response.content.length": { "mapping_field" : "resp_content_len" }, + "netskope.events.response.content.type": { "mapping_field" : "resp_content_type" }, + "netskope.events.suppression.end_time": { "mapping_field" : "suppression_end_time" }, + "netskope.events.suppression.start_time": { "mapping_field" : "suppression_start_time" }, + "netskope.events.transaction.id": { "mapping_field" : "transaction_id" } + } + } + } + } +} +``` + +Netskope Event Validation Extensions: +``` +ECS Key Name,Length,Data Type +@timestamp,,DateTime +client.bytes,,Integer +client.packets,,Integer +cloud.account.id,,String +cloud.account.name,,String +cloud.region,,String +cloud.service.name,,String +destination.address,,String +destination.domain,,String +destination.geo.city_name,,String +destination.geo.country_iso_code,,String +destination.geo.location.lat,,Floating Point +destination.geo.location.lon,,Floating Point +destination.geo.postal_code,,String +destination.geo.region_name,,String +destination.geo.timezone,,String +destination.ip,,String +destination.port,,Integer +event.action,,String +event.id,,String +file.hash.md5,,String +file.mime_type,,String +file.name,,String +file.path,,String +file.size,,Integer +host.hostname,,String +netskope.events.access_method,,String +netskope.events.ack,,String +netskope.events.acked,,String +netskope.events.activity.name,,String +netskope.events.activity.status,,String +netskope.events.activity.type,,String +netskope.events.alarm.description,,String +netskope.events.alarm.name,,String +netskope.events.alert.is_present,,String +netskope.events.alert.name,,String +netskope.events.alert.type,,String +netskope.events.app.activity,,String +netskope.events.app.category,,String +netskope.events.app.name,,String +netskope.events.app.region,,String +netskope.events.app.session.id,,String +netskope.events.attachment,,String +netskope.events.audit.category,,String +netskope.events.audit.log.event,,String +netskope.events.audit.type,,String +netskope.events.breach_name,,String +netskope.events.browser.session.id,,String +netskope.events.bucket,,String +netskope.events.category.id,,String +netskope.events.category.name,,String +netskope.events.cci,,String +netskope.events.ccl,,String +netskope.events.channel,,String +netskope.events.connection.duration,,Integer +netskope.events.connection.end_time,,Floating Point +netskope.events.connection.id,,String +netskope.events.connection.start_time,,Floating Point +netskope.events.count,,Integer +netskope.events.description,,String +netskope.events.destination.geoip.source,,Integer +netskope.events.detail,,String +netskope.events.detection.engine,,String +netskope.events.detection.type,,String +netskope.events.device.classification,,String +netskope.events.device.name,,String +netskope.events.device.type,,String +netskope.events.dlp.count,,Integer +netskope.events.dlp.file,,String +netskope.events.dlp.fingerprint.classification,,String +netskope.events.dlp.fingerprint.match,,String +netskope.events.dlp.fingerprint.score,,Integer +netskope.events.dlp.fv,,Integer +netskope.events.dlp.incident.id,,String +netskope.events.dlp.is_unique_count,,String +netskope.events.dlp.mail.parent_id,,String +netskope.events.dlp.parent.id,,String +netskope.events.dlp.profile,,String +netskope.events.dlp.score,,Integer +netskope.events.dlp.severity,,String +netskope.events.dlp.unique_count,,Integer +netskope.events.domain,,String +netskope.events.domain_shared_with,,String +netskope.events.drive.id,,String +netskope.events.encrypt.failure,,String +netskope.events.end_time,,Integer +netskope.events.enterprise.id,,String +netskope.events.enterprise.name,,String +netskope.events.event_type,,String +netskope.events.event.type,,String +netskope.events.exposure,,String +netskope.events.external_collaborator_count,,Integer +netskope.events.false_positive,,String +netskope.events.file.id,,String +netskope.events.file.is_password_protected,,String +netskope.events.file.lang,,String +netskope.events.forward_to_proxy_profile,,String +netskope.events.from.logs,,String +netskope.events.from.object,,String +netskope.events.from.storage,,String +netskope.events.from.user_category,,String +netskope.events.gateway,,String +netskope.events.graph.id,,Integer +netskope.events.http_status,,String +netskope.events.http_transaction_count,,Integer +netskope.events.iaas_asset_tags,,String +netskope.events.id,,String +netskope.events.insertion.timestamp,,Integer +netskope.events.instance_name,,String +netskope.events.instance.id,,String +netskope.events.instance.name,,String +netskope.events.instance.type,,String +netskope.events.internal_collaborator_count,,Integer +netskope.events.ip.protocol,,String +netskope.events.is_bypass_traffic,,String +netskope.events.is_malicious,,String +netskope.events.item.id,,String +netskope.events.justification.type,,String +netskope.events.last.app,,String +netskope.events.last.country,,String +netskope.events.last.device,,String +netskope.events.last.location,,String +netskope.events.last.region,,String +netskope.events.last.timestamp,,Integer +netskope.events.latency.max,,Integer +netskope.events.latency.min,,Integer +netskope.events.latency.total,,Integer +netskope.events.legal_hold_profile_name,,String +netskope.events.lh.custodian.name,,String +netskope.events.lh.destination.app,,String +netskope.events.lh.destination.instance,,String +netskope.events.lh.file_id,,String +netskope.events.lh.filename,,String +netskope.events.lh.filename_original,,String +netskope.events.lh.filepath,,String +netskope.events.lh.shared,,String +netskope.events.lh.shared_with,,String +netskope.events.lh.version,,String +netskope.events.list.id,,String +netskope.events.log_file.name,,String +netskope.events.login.type,,String +netskope.events.login.url,,String +netskope.events.malsite_category,,String +netskope.events.malware.id,,String +netskope.events.malware.name,,String +netskope.events.malware.profile,,String +netskope.events.malware.severity,,String +netskope.events.malware.type,,String +netskope.events.managed_app,,String +netskope.events.management.id,,String +netskope.events.metric_value,,Integer +netskope.events.modified_at,,Integer +netskope.events.quarantine.original.shared,,String +netskope.events.network.name,,String +netskope.events.network.session_id,,String +netskope.events.new_value,,String +netskope.events.notify_template,,String +netskope.events.ns.activity,,String +netskope.events.ns.device_uid,,String +netskope.events.numbytes,,Integer +netskope.events.obfuscate,,String +netskope.events.object.count,,String +netskope.events.object.id,,String +netskope.events.object.name,,String +netskope.events.object.type,,String +netskope.events.old_value,,String +netskope.events.org,,String +netskope.events.organization_unit,,String +netskope.events.orig_ty,,String +netskope.events.original_file_path,,String +netskope.events.other.categories,,String +netskope.events.owner,,String +netskope.events.page,,String +netskope.events.page_site,,String +netskope.events.parent.id,,String +netskope.events.path_id,,String +netskope.events.policy.id,,String +netskope.events.policy.name,,String +netskope.events.profile.emails,,String +netskope.events.profile.id,,String +netskope.events.protocol,,String +netskope.events.publisher_cn,,String +netskope.events.qar,,String +netskope.events.quarantine.action.reason,,String +netskope.events.quarantine.admin,,String +netskope.events.quarantine.app,,String +netskope.events.quarantine.app_name,,String +netskope.events.quarantine.failure,,String +netskope.events.quarantine.file.id,,String +netskope.events.quarantine.file.name,,String +netskope.events.quarantine.instance,,String +netskope.events.quarantine.original.file.name,,String +netskope.events.quarantine.original.file.path,,String +netskope.events.quarantine.original.shared,,String +netskope.events.quarantine.original.version,,String +netskope.events.quarantine.profile.id,,String +netskope.events.quarantine.profile.name,,String +netskope.events.quarantine.shared_with,,String +netskope.events.referer,,String +netskope.events.region,,String +netskope.events.region.id,,String +netskope.events.repo,,String +netskope.events.request.count,,Integer +netskope.events.request.id,,String +netskope.events.response.content.length,,Integer +netskope.events.response.content.type,,String +netskope.events.response.count,,Integer +netskope.events.retro_scan_name,,String +netskope.events.risk_level,,String +netskope.events.risk_level_id,,String +netskope.events.role,,String +netskope.events.run_id,,String +netskope.events.sa.profile.id,,String +netskope.events.sa.profile.name,,String +netskope.events.sa.rule.severity,,String +netskope.events.scan.time,,String +netskope.events.scan.type,,String +netskope.events.scopes,,String +netskope.events.serial,,String +netskope.events.session.duration,,Integer +netskope.events.session.id,,String +netskope.events.session.packets,,Integer +netskope.events.severity.id,,String +netskope.events.severity.level,,String +netskope.events.severity.type,,String +netskope.events.sfwder,,String +netskope.events.shared.domains,,String +netskope.events.shared.is_shared,,String +netskope.events.shared.type,,String +netskope.events.shared.with,,String +netskope.events.site,,String +netskope.events.slc.geo.location.lat,,Floating Point +netskope.events.slc.geo.location.lon,,Floating Point +netskope.events.source.geoip_src,,Integer +netskope.events.ssl_decrypt_policy,,String +netskope.events.start_time,,Integer +netskope.events.sub_type,,String +netskope.events.supporting_data,,String +netskope.events.suppression.end_time,,Integer +netskope.events.suppression.key,,String +netskope.events.suppression.start_time,,Integer +netskope.events.team,,String +netskope.events.telemetry_app,,String +netskope.events.temp_user,,String +netskope.events.tenant.id,,String +netskope.events.threat.match.field,,String +netskope.events.threat.match.value,,String +netskope.events.threat.source.id,,String +netskope.events.threshold,,Integer +netskope.events.to.object,,String +netskope.events.to.storage,,String +netskope.events.to.user,,String +netskope.events.to.user_category,,String +netskope.events.total_packets,,Integer +netskope.events.total.collaborator_count,,String +netskope.events.traffic.type,,String +netskope.events.transaction.id,,String +netskope.events.tss_mode,,Integer +netskope.events.tunnel.id,,String +netskope.events.tunnel.type,,String +netskope.events.tunnel.up_time,,Integer +netskope.events.two_factor_auth,,Integer +netskope.events.type,,String +netskope.events.universal_connector,,String +netskope.events.url,,String +netskope.events.url_to_activity,,String +netskope.events.user.category,,String +netskope.events.user.generated,,String +netskope.events.user.group,,String +netskope.events.user.ip,,String +netskope.events.user.is_aggregated,,String +netskope.events.violating.user.name,,String +netskope.events.violating.user.type,,String +netskope.events.web_universal_connector,,String +netskope.events.web.url,,String +netskope.events.workspace.id,,String +netskope.events.workspace.name,,String +netskope.events.zip_password,,String +network.protocol,,String +rule.id,,String +rule.name,,String +server.bytes,,Integer +server.packets,,Integer +source.address,,String +source.geo.city_name,,String +source.geo.country_iso_code,,String +source.geo.location.lat,,Floating Point +source.geo.location.lon,,Floating Point +source.geo.postal_code,,String +source.geo.region_name,,String +source.geo.timezone,,String +source.ip,,String +source.port,,Integer +threat.indicator.file.hash.md5,,String +threat.indicator.file.hash.sha1,,String +threat.indicator.file.hash.sha256,,String +user_agent.name,,String +user_agent.original,,String +user_agent.os.name,,String +user_agent.os.version,,String +user_agent.version,,String +user.email,,String +user.group.name,,String +user.name,,String +user.roles,,String +file.mime_type.1,,String +file.mime_type.2,,String +user.email.1,,String +user.email.2,,String +user.email.3,,String +user.email.4,,String +user.email.5,,String +user.email.6,,String +``` + +## Fields and Sample event + +### Alerts + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.port | Port of the client. | long | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.account.name | The cloud account name or alias used to identify different entities in a multi-tenant environment. Examples: AWS account name, Google Cloud ORG display name. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| cloud.service.name | The cloud service name is intended to distinguish services running on different platforms within a provider, eg AWS EC2 vs Lambda, GCP GCE vs App Engine, Azure VM vs App Server. Examples: app engine, app service, cloud run, fargate, lambda. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.address | Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| destination.domain | The domain name of the destination system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| destination.geo.city_name | City name. | keyword | +| destination.geo.continent_name | Name of the continent. | keyword | +| destination.geo.country_iso_code | Country ISO code. | keyword | +| destination.geo.country_name | Country name. | keyword | +| destination.geo.location | Longitude and latitude. | geo_point | +| destination.geo.postal_code | Postal code associated with the location. Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. | keyword | +| destination.geo.region_iso_code | Region ISO code. | keyword | +| destination.geo.region_name | Region name. | keyword | +| destination.geo.timezone | The time zone of the location, such as IANA time zone name. | keyword | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.dataset | Event dataset | constant_keyword | +| event.id | Unique ID to describe the event. | keyword | +| event.module | Event module | constant_keyword | +| file.hash.md5 | MD5 hash. | keyword | +| file.mime_type | MIME type should identify the format of the file or stream of bytes using https://www.iana.org/assignments/media-types/media-types.xhtml[IANA official types], where possible. When more than one type is applicable, the most specific type should be used. | keyword | +| file.name | Name of the file including the extension, without the directory. | keyword | +| file.path | Full path to the file, including the file name. It should include the drive letter, when appropriate. | keyword | +| file.path.text | Multi-field of `file.path`. | match_only_text | +| file.size | File size in bytes. Only relevant when `file.type` is "file". | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | match_only_text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| http.request.referrer | Referrer for this HTTP request. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| log.source.address | Source address from which the log event was read / sent from. | keyword | +| netskope.alerts.Url2Activity | Populated if the activity from the URL matches certain activities. This field applies to Risk Insights only. | keyword | +| netskope.alerts.access_method | Cloud app traffic can be steered to the Netskope cloud using different deployment methods such as Client (Netskope Client), Secure Forwarder etc. Administrators can also upload firewall and/or proxy logs for log analytics. This field shows the actual access method that triggered the event. For log uploads this shows the actual log type such as PAN, Websense, etc. | keyword | +| netskope.alerts.account.id | Account ID (usually is account number as provided by the cloud provider). | keyword | +| netskope.alerts.account.name | Account name - in case of AWS this is the instance name set by user. For others, account name is provided by cloud provider. | keyword | +| netskope.alerts.acked | Whether user acknowledged the alert or not. | boolean | +| netskope.alerts.acting.role | N/A | keyword | +| netskope.alerts.action | Action taken on the event for the policy. | keyword | +| netskope.alerts.activities | N/A | array | +| netskope.alerts.activity.name | Description of the user performed activity. | keyword | +| netskope.alerts.activity.status | Displayed when the user is denied access while performing some activity. | keyword | +| netskope.alerts.activity.type | Displayed when only admins can perform the activity in question. | keyword | +| netskope.alerts.agg.window | N/A | long | +| netskope.alerts.aggregated.user | N/A | boolean | +| netskope.alerts.alert.affected.entities | N/A | keyword | +| netskope.alerts.alert.category | N/A | keyword | +| netskope.alerts.alert.description | N/A | keyword | +| netskope.alerts.alert.detection.stage | N/A | keyword | +| netskope.alerts.alert.id | Hash of alert generated from code. | keyword | +| netskope.alerts.alert.name | Name of the alert. | keyword | +| netskope.alerts.alert.notes | N/A | keyword | +| netskope.alerts.alert.query | N/A | keyword | +| netskope.alerts.alert.score | N/A | long | +| netskope.alerts.alert.source | N/A | keyword | +| netskope.alerts.alert.status | N/A | keyword | +| netskope.alerts.alert.type | Shows if it is an application event or a connection event. Application events are recorded to track user events inside a cloud app. Connection events shows the actual HTTP connection. | keyword | +| netskope.alerts.alert.window | N/A | long | +| netskope.alerts.algorithm | N/A | keyword | +| netskope.alerts.anomaly.efficacy | Full anomaly details for debugging. | keyword | +| netskope.alerts.anomaly.fields | Name(s) and values(s) of the anomalous fields, usually there's going to be only one in the list. | keyword | +| netskope.alerts.anomaly.id | N/A | keyword | +| netskope.alerts.anomaly.magnitude | N/A | double | +| netskope.alerts.anomaly.type | Type of UBA alert. | keyword | +| netskope.alerts.app.activity | N/A | keyword | +| netskope.alerts.app.app_name | N/A | keyword | +| netskope.alerts.app.category | N/A | keyword | +| netskope.alerts.app.name | Specific cloud application used by the user (e.g. app = Dropbox). | keyword | +| netskope.alerts.app.region | N/A | keyword | +| netskope.alerts.app.session.id | Unique App/Site Session ID for traffic_type = CloudApp and Web. An app session starts when a user starts using a cloud app/site on and ends once they have been inactive for a certain period of time(15 mins). Use app_session_id to check all the user activities in a single app session. app_session_id is unique for a user, device, browser and domain. | keyword | +| netskope.alerts.app.suite | N/A | keyword | +| netskope.alerts.asn | N/A | long | +| netskope.alerts.asset.id | N/A | keyword | +| netskope.alerts.asset.object.id | N/A | keyword | +| netskope.alerts.attachment | File name. | keyword | +| netskope.alerts.audit.category | The subcategories in an application such as IAM, EC in AWS, login, token, file, etc., in case of Google. | keyword | +| netskope.alerts.audit.type | The sub category in audit according to SaaS / IaaS apps. | keyword | +| netskope.alerts.bin.timestamp | Applicable to only: Shared Credentials, Data Exfiltration, Bulk Anomaly types( Bulk Upload/Download/Delete) and Failed Login Anomaly type. Bin TimeStamp (is a window used that is used for certain types of anomalies - for breaking into several windows per day/hour). | long | +| netskope.alerts.breach.date | Breach date for compromised credentials. | double | +| netskope.alerts.breach.description | N/A | keyword | +| netskope.alerts.breach.id | Breach ID for compromised credentials. | keyword | +| netskope.alerts.breach.media_references | Media references of breach. | keyword | +| netskope.alerts.breach.score | Breach score for compromised credentials. | long | +| netskope.alerts.breach.target_references | Breach target references for compromised credentials. | keyword | +| netskope.alerts.browser.session.id | Browser session ID. If there is an idle timeout of 15 minutes, it will timeout the session. | keyword | +| netskope.alerts.bucket | N/A | keyword | +| netskope.alerts.bypass.traffic | Tells if traffic is bypassed by Netskope. | boolean | +| netskope.alerts.category.id | Matching category ID according to policy. Populated for both cloud and web traffic. | keyword | +| netskope.alerts.category.name | N/A | keyword | +| netskope.alerts.cci | N/A | keyword | +| netskope.alerts.ccl | Cloud Confidence Level. CCL measures the enterprise readiness of the cloud apps taking into consideration those apps security, auditability and business continuity. Each app is assigned one of five cloud confidence levels: excellent, high, medium, low, or poor. Useful for querying if users are accessing a cloud app with a lower CCL. | keyword | +| netskope.alerts.channel | Channel of the user for slack and slack enterprise apps. | keyword | +| netskope.alerts.cloud.provider | N/A | keyword | +| netskope.alerts.compliance.standards | N/A | keyword | +| netskope.alerts.compute.instance | N/A | keyword | +| netskope.alerts.connection.duration | Duration of the connection in milliseconds. Useful for querying long-lived sessions. | long | +| netskope.alerts.connection.endtime | Connection end time. | long | +| netskope.alerts.connection.id | Each connection has a unique ID. Shows the ID for the connection event. | keyword | +| netskope.alerts.connection.starttime | Connection start time. | long | +| netskope.alerts.count | Number of raw log lines/events sessionized or suppressed during the suppressed interval. | long | +| netskope.alerts.created_at | N/A | keyword | +| netskope.alerts.data.type | Content type of upload/download. | keyword | +| netskope.alerts.data.version | N/A | long | +| netskope.alerts.description | N/A | keyword | +| netskope.alerts.destination.geoip_src | Source from where the location of Destination IP was derived. | long | +| netskope.alerts.detected-file-type | N/A | keyword | +| netskope.alerts.detection.engine | Customer exposed detection engine name. | keyword | +| netskope.alerts.detection.type | Same as malware type. Duplicate. | keyword | +| netskope.alerts.device.classification | Designation of device as determined by the Netskope Client as to whether the device is managed or not. | keyword | +| netskope.alerts.device.name | Device type from where the user accessed the cloud app. It could be Macintosh Windows device, iPad etc. | keyword | +| netskope.alerts.dlp.file | File/Object name extracted from the file/object. | keyword | +| netskope.alerts.dlp.fingerprint.classification | Fingerprint classification. | keyword | +| netskope.alerts.dlp.fingerprint.match | Fingerprint classification match file name. | keyword | +| netskope.alerts.dlp.fingerprint.score | Fingerprint classification score. | long | +| netskope.alerts.dlp.fv | N/A | long | +| netskope.alerts.dlp.incident.id | Incident ID associated with sub-file. In the case of main file, this is same as the parent incident ID. | keyword | +| netskope.alerts.dlp.is_unique_count | True or false depending upon if rule is unique counted per rule data. | boolean | +| netskope.alerts.dlp.mail.parent.id | N/A | keyword | +| netskope.alerts.dlp.parent.id | Incident ID associated with main container (or non-container) file that was scanned. | keyword | +| netskope.alerts.dlp.profile | DLP profile name. | keyword | +| netskope.alerts.dlp.rule.count | Count of rule hits. | long | +| netskope.alerts.dlp.rule.name | DLP rule that triggered. | keyword | +| netskope.alerts.dlp.rule.score | DLP rule score for weighted dictionaries. | long | +| netskope.alerts.dlp.rule.severity | Severity of rule. | keyword | +| netskope.alerts.dlp.unique_count | Integer value of number of unique matches seen per rule data. Only present if rule is uniquely counted. | long | +| netskope.alerts.doc.count | N/A | long | +| netskope.alerts.domain | Domain value. This will hold the host header value or SNI or extracted from absolute URI. | keyword | +| netskope.alerts.domain_shared_with | N/A | keyword | +| netskope.alerts.download.app | Applicable to only data exfiltration. Download App (App in the download event). | keyword | +| netskope.alerts.drive.id | N/A | keyword | +| netskope.alerts.dynamic.classification | URLs were categorized by NSURLC machine or not. | keyword | +| netskope.alerts.elastic_key | N/A | keyword | +| netskope.alerts.email.source | N/A | keyword | +| netskope.alerts.encrypt.failure | Reason of failure while encrypting. | keyword | +| netskope.alerts.encryption.service.key | N/A | keyword | +| netskope.alerts.enterprise.id | EnterpriseID in case of Slack for Enterprise. | keyword | +| netskope.alerts.enterprise.name | Enterprise name in case of Slack for Enterprise. | keyword | +| netskope.alerts.entity.list | N/A | array | +| netskope.alerts.entity.type | N/A | keyword | +| netskope.alerts.entity.value | N/A | keyword | +| netskope.alerts.event.detail | N/A | keyword | +| netskope.alerts.event.id | N/A | keyword | +| netskope.alerts.event.type | Anomaly type. | keyword | +| netskope.alerts.event_source_channel | N/A | keyword | +| netskope.alerts.exposure | Exposure of a document. | keyword | +| netskope.alerts.external.collaborator.count | Count of external collaborators on a file/folder. Supported for some apps. | long | +| netskope.alerts.external.email | N/A | long | +| netskope.alerts.feature.description | N/A | keyword | +| netskope.alerts.feature.id | N/A | keyword | +| netskope.alerts.feature.name | N/A | keyword | +| netskope.alerts.file.id | Unique identifier of the file. | keyword | +| netskope.alerts.file.lang | Language of the file. | keyword | +| netskope.alerts.file.name | N/A | keyword | +| netskope.alerts.file.password.protected | N/A | keyword | +| netskope.alerts.file.path.orignal | If the file is moved, then keep original path of the file in this field. | keyword | +| netskope.alerts.file.size | Size of the file in bytes. | long | +| netskope.alerts.file.type | File type. | keyword | +| netskope.alerts.flow_status | N/A | keyword | +| netskope.alerts.from.logs | Shows if the event was generated from the Risk Insights log. | keyword | +| netskope.alerts.from.object | Initial name of an object that has been renamed, copied or moved. | keyword | +| netskope.alerts.from.storage | N/A | keyword | +| netskope.alerts.from.user_category | Type of from_user. | keyword | +| netskope.alerts.gateway | N/A | keyword | +| netskope.alerts.graph.id | N/A | keyword | +| netskope.alerts.http_status | N/A | keyword | +| netskope.alerts.http_transaction_count | HTTP transaction count. | long | +| netskope.alerts.iaas.asset.tags | List of tags associated with the asset for which alert is raised. Each tag is a key/value pair. | keyword | +| netskope.alerts.iaas.remediated | N/A | keyword | +| netskope.alerts.iam.session | N/A | keyword | +| netskope.alerts.id | N/A | keyword | +| netskope.alerts.insertion_epoch_timestamp | Insertion timestamp. | long | +| netskope.alerts.instance.id | Unique ID associated with an organization application instance. | keyword | +| netskope.alerts.instance.name | Instance name associated with an organization application instance. | keyword | +| netskope.alerts.instance.type | Instance type. | keyword | +| netskope.alerts.instance_name | Instance associated with an organization application instance. | keyword | +| netskope.alerts.internal.collaborator.count | Count of internal collaborators on a file/folder. Supported for some apps. | long | +| netskope.alerts.ip.protocol | N/A | keyword | +| netskope.alerts.ipblock | IPblock that caused the alert. | keyword | +| netskope.alerts.is_alert | Indicates whether alert is generated or not. Populated as yes for all alerts. | boolean | +| netskope.alerts.is_file_passwd_protected | Tells if the file is password protected. | boolean | +| netskope.alerts.is_malicious | Only exists if some HTTP transaction belonging to the page event resulted in a malsite alert. | boolean | +| netskope.alerts.is_two_factor_auth | N/A | keyword | +| netskope.alerts.is_universal_connector | N/A | keyword | +| netskope.alerts.is_user_generated | Tells whether it is user generated page event. | boolean | +| netskope.alerts.is_web_universal_connector | N/A | boolean | +| netskope.alerts.isp | N/A | keyword | +| netskope.alerts.item.id | N/A | keyword | +| netskope.alerts.justification.reason | Justification reason provided by user. For following policies, justification events are raised. User is displayed a notification popup, user enters justification and can select to proceed or block: useralert policy, dlp block policy, block policy with custom template which contains justification text box. | keyword | +| netskope.alerts.justification.type | Type of justification provided by user when user bypasses the policy block. | keyword | +| netskope.alerts.last.app | Last application (app in the first/older event). Applies to only proximity anomaly alert. | keyword | +| netskope.alerts.last.coordinates | Last location coordinates(latitude, longitude). Applies to only proximity alert. | keyword | +| netskope.alerts.last.country | Last location (Country). Applies to only proximity anomaly alert. | keyword | +| netskope.alerts.last.device | Last device name (Device Name in the first/older event). Applies to only proximity anomaly alert. | keyword | +| netskope.alerts.last.location | Last location (City). Applies to only proximity anomaly alert. | keyword | +| netskope.alerts.last.modified_timestamp | Timestamp when alert is acknowledged. | long | +| netskope.alerts.last.region | Applies to only proximity anomaly alert. | keyword | +| netskope.alerts.last.timestamp | Last timestamp (timestamp in the first/older event). Applies to only proximity anomaly alert. | long | +| netskope.alerts.latency.max | Max latency for a connection in milliseconds. | long | +| netskope.alerts.latency.min | Min latency for a connection in milliseconds. | long | +| netskope.alerts.latency.total | Total latency from proxy to app in milliseconds. | long | +| netskope.alerts.legal_hold.custodian_name | Custodian name of legal hold profile. | keyword | +| netskope.alerts.legal_hold.destination.app | Destination appname of legalhold action. | keyword | +| netskope.alerts.legal_hold.destination.instance | Destination instance of legal hold action. | keyword | +| netskope.alerts.legal_hold.file.id | File ID of legal hold file. | keyword | +| netskope.alerts.legal_hold.file.name | File name of legal hold file. | keyword | +| netskope.alerts.legal_hold.file.name_original | Original filename of legal hold file. | keyword | +| netskope.alerts.legal_hold.file.path | File path of legal hold file. | keyword | +| netskope.alerts.legal_hold.profile_name | Legal hold profile name. | keyword | +| netskope.alerts.legal_hold.shared | Shared type of legal hold file. | keyword | +| netskope.alerts.legal_hold.shared_with | User shared with the legal hold file. | keyword | +| netskope.alerts.legal_hold.version | File version of original file. | keyword | +| netskope.alerts.list.id | N/A | keyword | +| netskope.alerts.local.md5 | md5 hash of file generated by Malware engine. | keyword | +| netskope.alerts.local.sha1 | sha1 hash of file generated by Malware engine. | keyword | +| netskope.alerts.local.sha256 | sha256 hash of file generated by Malware engine. | keyword | +| netskope.alerts.log.file.name | Log file name for Risk Insights. | keyword | +| netskope.alerts.login.type | Salesforce login type. | keyword | +| netskope.alerts.login.url | Salesforce login URL. | flattened | +| netskope.alerts.malsite.active | Since how many days malsite is Active. | long | +| netskope.alerts.malsite.as.number | Malsite ASN Number. | keyword | +| netskope.alerts.malsite.category | Category of malsite [ Phishing / Botnet / Malicous URL, etc. ]. | keyword | +| netskope.alerts.malsite.city | Malsite city. | keyword | +| netskope.alerts.malsite.confidence | Malsite confidence score. | long | +| netskope.alerts.malsite.consecutive | How many times that malsite is seen. | long | +| netskope.alerts.malsite.country | Malsite country. | keyword | +| netskope.alerts.malsite.dns.server | DNS server of the malsite URL/Domain/IP. | keyword | +| netskope.alerts.malsite.first_seen | Malsite first seen timestamp. | long | +| netskope.alerts.malsite.hostility | Malsite hostility score. | long | +| netskope.alerts.malsite.id | Malicious Site ID - Hash of threat match value. | keyword | +| netskope.alerts.malsite.ip_host | Malsite IP. | keyword | +| netskope.alerts.malsite.isp | Malsite ISP info. | keyword | +| netskope.alerts.malsite.last.seen | Malsite last seen timestamp. | long | +| netskope.alerts.malsite.latitude | Latitude plot of the Malsite URL/IP/Domain. | double | +| netskope.alerts.malsite.longitude | Longitude plot of the Malsite URL/IP/Domain. | double | +| netskope.alerts.malsite.region | Region of the malsite URL/IP/Domain. | keyword | +| netskope.alerts.malsite.reputation | Reputation score of Malsite IP/Domain/URL. | double | +| netskope.alerts.malsite.severity.level | Severity level of the Malsite ( High / Med / Low). | keyword | +| netskope.alerts.malware.id | md5 hash of the malware name as provided by the scan engine. | keyword | +| netskope.alerts.malware.name | Netskope detection name. | keyword | +| netskope.alerts.malware.profile | tss_profile: profile which user has selected. Data comes from WebUI. Its a json structure. | keyword | +| netskope.alerts.malware.severity | Malware severity. | keyword | +| netskope.alerts.malware.type | Malware Type. | keyword | +| netskope.alerts.managed.app | Whether or not the app in question is managed. | boolean | +| netskope.alerts.management.id | Management ID. | keyword | +| netskope.alerts.matched.username | N/A | keyword | +| netskope.alerts.matrix.columns | N/A | keyword | +| netskope.alerts.matrix.rows | N/A | keyword | +| netskope.alerts.md5 | md5 of the file. | keyword | +| netskope.alerts.md5_list | List of md5 hashes specific to the files that are part of custom sequence policy alert. | keyword | +| netskope.alerts.mime.type | MIME type of the file. | keyword | +| netskope.alerts.ml_detection | N/A | boolean | +| netskope.alerts.modified.date | N/A | long | +| netskope.alerts.modified.timestamp | Timestamp corresponding to the modification time of the entity (file, etc.). | long | +| netskope.alerts.netskope_pop | N/A | keyword | +| netskope.alerts.network.name | N/A | keyword | +| netskope.alerts.network.security.group | N/A | array | +| netskope.alerts.new.value | New value for a given file for salesforce.com. | keyword | +| netskope.alerts.nonzero.entries | N/A | long | +| netskope.alerts.nonzero.percentage | N/A | double | +| netskope.alerts.notify.template | N/A | keyword | +| netskope.alerts.ns_activity | Maps app activity to Netskope standard activity. | keyword | +| netskope.alerts.ns_device_uid | Device identifiers on macOS and Windows. | keyword | +| netskope.alerts.numbytes | Total number of bytes that were transmitted for the connection - numbytes = client_bytes + server_bytes. | long | +| netskope.alerts.obfuscate | N/A | boolean | +| netskope.alerts.object.count | Displayed when the activity is Delete. Shows the number of objects being deleted. | long | +| netskope.alerts.object.id | Unique ID associated with an object. | keyword | +| netskope.alerts.object.name | Name of the object which is being acted on. It could be a filename, folder name, report name, document name, etc. | keyword | +| netskope.alerts.object.type | Type of the object which is being acted on. Object type could be a file, folder, report, document, message, etc. | keyword | +| netskope.alerts.old.value | Old value for a given file for salesforce.com. | keyword | +| netskope.alerts.org | Search for events from a specific organization. Organization name is derived from the user ID. | keyword | +| netskope.alerts.organization.unit | Org Units for which the event correlates to. This ties to user information extracted from Active Directory using the Directory Importer/AD Connector application. | keyword | +| netskope.alerts.orig_ty | Event Type of original event. | keyword | +| netskope.alerts.original.file_path | If the file is moved, then keep original path of the file in this field. | keyword | +| netskope.alerts.os_version_hostname | Host and OS Version that caused the alert. Concatenation of 2 fields (hostname and os). | keyword | +| netskope.alerts.other.categories | N/A | keyword | +| netskope.alerts.owner | Owner of the file. | keyword | +| netskope.alerts.page.site | N/A | keyword | +| netskope.alerts.page.url | The URL of the originating page. | flattened | +| netskope.alerts.parameters | N/A | keyword | +| netskope.alerts.parent.id | N/A | keyword | +| netskope.alerts.path.id | N/A | keyword | +| netskope.alerts.policy.actions | N/A | keyword | +| netskope.alerts.policy.id | The Netskope internal ID for the policy created by an admin. | keyword | +| netskope.alerts.policy.name | Predefined or Custom policy name. | keyword | +| netskope.alerts.pretty.sourcetype | N/A | keyword | +| netskope.alerts.processing.time | N/A | long | +| netskope.alerts.profile.emails | List of profile emails per policy. | keyword | +| netskope.alerts.profile.id | Anomaly profile ID. | keyword | +| netskope.alerts.quarantine.action.reason | Reason for the action taken for quarantine. | keyword | +| netskope.alerts.quarantine.admin | Quarantine profile custodian email/name. | keyword | +| netskope.alerts.quarantine.app | Quarantine app name. | keyword | +| netskope.alerts.quarantine.failure | Reason of failure. | keyword | +| netskope.alerts.quarantine.file.id | File ID of the quarantined file. | keyword | +| netskope.alerts.quarantine.file.name | File name of the quarantine file. | keyword | +| netskope.alerts.quarantine.instance | Quarantine instance name. | keyword | +| netskope.alerts.quarantine.original.file.name | Original file name which got quarantined. | keyword | +| netskope.alerts.quarantine.original.file.path | Original file path which got quarantined. | keyword | +| netskope.alerts.quarantine.original.shared | Original file shared user details. | keyword | +| netskope.alerts.quarantine.original.version | Original version of file which got quarantined. | keyword | +| netskope.alerts.quarantine.profile.id | Quarantine profile ID. | keyword | +| netskope.alerts.quarantine.profile.name | Quarantine profile name of policy for quarantine action. | keyword | +| netskope.alerts.quarantine.shared.with | N/A | keyword | +| netskope.alerts.referer | Referer URL of the application(with http) that the user visited as provided by the log or data plane traffic. | keyword | +| netskope.alerts.region.id | Region ID (as provided by the cloud provider). | keyword | +| netskope.alerts.region.name | N/A | keyword | +| netskope.alerts.reladb | N/A | keyword | +| netskope.alerts.repo | N/A | keyword | +| netskope.alerts.request.cnt | Total number of HTTP requests (equal to number of transaction events for this page event) sent from client to server over one underlying TCP connection. | long | +| netskope.alerts.request.id | Unique request ID for the event. | keyword | +| netskope.alerts.resource.category | Category of resource as defined in DOM. | keyword | +| netskope.alerts.resource.group | N/A | keyword | +| netskope.alerts.resources | N/A | keyword | +| netskope.alerts.response.cnt | Total number of HTTP responses (equal to number of transaction events for this page event) from server to client. | long | +| netskope.alerts.response.content.length | N/A | long | +| netskope.alerts.response.content.type | N/A | keyword | +| netskope.alerts.retro.scan.name | Retro scan name. | keyword | +| netskope.alerts.risk_level.id | This field is set by both role-based access (RBA) and MLAD. | keyword | +| netskope.alerts.risk_level.tag | Corresponding field to risk_level_id. Name. | keyword | +| netskope.alerts.role | Roles for Box. | keyword | +| netskope.alerts.rule.id | N/A | keyword | +| netskope.alerts.sa.profile.id | CSA profile ID. | keyword | +| netskope.alerts.sa.profile.name | CSA profile name. | keyword | +| netskope.alerts.sa.rule.id | CSA rule ID. | keyword | +| netskope.alerts.sa.rule.name | CSA rule name. | keyword | +| netskope.alerts.sa.rule.remediation | N/A | keyword | +| netskope.alerts.sa.rule.severity | Rule severity. | keyword | +| netskope.alerts.scan.time | Time when the scan is done. | long | +| netskope.alerts.scan.type | Generated during retroactive scan or new ongoing activity. | keyword | +| netskope.alerts.scanner_result | N/A | keyword | +| netskope.alerts.scopes | List of permissions for google apps. | keyword | +| netskope.alerts.serial | N/A | keyword | +| netskope.alerts.server.bytes | Total number of downloaded from server to client. | long | +| netskope.alerts.session.id | Populated by Risk Insights. | keyword | +| netskope.alerts.severity.id | Severity ID used by watchlist and malware alerts. | keyword | +| netskope.alerts.severity.level | Severity used by watchlist and malware alerts. | keyword | +| netskope.alerts.severity.level_id | If the Severity Level ID is 1, it means that URL / IP /Domain is detected from Internal threat feed and if Severity Level ID is 2, then it means the detection happened based on the Zvelo DB Malsite Category. | long | +| netskope.alerts.sfwder | N/A | keyword | +| netskope.alerts.shared.credential.user | Applicable to only shared credentials. User with whom the credentials are shared with. | keyword | +| netskope.alerts.shared.domains | List of domains of users the document is shared with. | keyword | +| netskope.alerts.shared.is_shared | If the file is shared or not. | boolean | +| netskope.alerts.shared.type | Shared Type. | keyword | +| netskope.alerts.shared.with | Array of emails with whom a document is shared with. | keyword | +| netskope.alerts.shared_type | N/A | keyword | +| netskope.alerts.site | For traffic_type = CloudApp, site = app and for traffic_type = Web, it will be the second level domain name + top-level domain name. For example, in "www.cnn.com", it is "cnn.com". | keyword | +| netskope.alerts.slc_latitude | N/A | keyword | +| netskope.alerts.slc_longitude | N/A | keyword | +| netskope.alerts.source.geoip_src | Source from where the location of Source IP was derived. | long | +| netskope.alerts.source.time | N/A | keyword | +| netskope.alerts.srcip2 | N/A | keyword | +| netskope.alerts.ssl.decrypt.policy | Applicable to only bypass events. There are 2 ways to create rules for bypass: Bypass due to Exception Configuration Bypass due to SSL Decrypt Policy The existing flag bypass_traffic only gives information that a flow has been bypassed, but does not tell exactly which policy was responsible for it. ssl_decrypt_policy field will provide this extra information. In addition, policy field will be also set for every Bypass event. | keyword | +| netskope.alerts.start_time | Start time for alert time period. | long | +| netskope.alerts.statistics | This field & summary field go together. This field will either tell count or size of files. File size is in bytes. | long | +| netskope.alerts.storage_service_bucket | N/A | keyword | +| netskope.alerts.sub.type | Workplace by Facebook post sub category (files, comments, status etc). | keyword | +| netskope.alerts.summary | Tells whether anomaly was measured from count or size of files. | keyword | +| netskope.alerts.suppression.end.time | When events are suppressed (like collaboration apps), then the suppression end time will be set and only one event will be send with suppression start time and end time and count of occurrence. | long | +| netskope.alerts.suppression.key | To limit the number of events. Example: Suppress block event for browse. | keyword | +| netskope.alerts.suppression.start.time | When events are suppressed (like collaboration apps), then the suppression end time will be set and only one event will be send with suppression start time and end time and count of occurrence. | long | +| netskope.alerts.target.entity.key | N/A | keyword | +| netskope.alerts.target.entity.type | N/A | keyword | +| netskope.alerts.target.entity.value | N/A | keyword | +| netskope.alerts.team | Slack team name. | keyword | +| netskope.alerts.telemetry.app | Typically SaaS app web sites use web analytics code within the pages to gather analytic data. When a SaaS app action or page is shown, there is subsequent traffic generated to tracking apps such as doubleclick.net, Optimizely, etc. These tracking apps are listed if applicable in the Telemetry App field. | keyword | +| netskope.alerts.temp.user | N/A | keyword | +| netskope.alerts.tenant.id | Tenant id. | keyword | +| netskope.alerts.threat.match.field | Threat match field, either from domain or URL or IP. | keyword | +| netskope.alerts.threat.match.value | N/A | keyword | +| netskope.alerts.threat.source.id | Threat source id: 1 - NetskopeThreatIntel, 2 - Zvelodb. | keyword | +| netskope.alerts.threshold.time | Applicable to: Shared Credentials, Data Exfiltration, Bulk Anomaly types( Bulk Upload/ Download/ Delete) and Failed Login Anomaly type. Threshold Time. | long | +| netskope.alerts.threshold.value | Threshold (Count at which the anomaly should trigger). Applicable to Bulk Anomaly types( Bulk Upload/ Download/ Delete) and Failed Login Anomaly type. | long | +| netskope.alerts.title | Title of the file. | keyword | +| netskope.alerts.to.object | Changed name of an object that has been renamed, copied, or moved. | keyword | +| netskope.alerts.to.storage | N/A | keyword | +| netskope.alerts.to.user | Used when a file is moved from user A to user B. Shows the email address of user B. | keyword | +| netskope.alerts.to.user_category | Type of user to which move is done. | keyword | +| netskope.alerts.total.collaborator.count | Count of collaborators on a file/folder. Supported for some apps. | long | +| netskope.alerts.traffic.type | Type of the traffic: CloudApp or Web. CloudApp indicates CASB and web indicates HTTP traffic. Web traffic is only captured for inline access method. It is currently not captured for Risk Insights. | keyword | +| netskope.alerts.transaction.id | Unique ID for a given request/response. | keyword | +| netskope.alerts.transformation | N/A | keyword | +| netskope.alerts.tss.mode | Malware scanning mode, specifies whether it's Real-time Protection or API Data Protection. | keyword | +| netskope.alerts.tss.version | N/A | long | +| netskope.alerts.tunnel.id | Shows the Client installation ID. Only available for the Client steering configuration. | keyword | +| netskope.alerts.type | Type of the alert. | keyword | +| netskope.alerts.uba_ap1 | N/A | keyword | +| netskope.alerts.uba_ap2 | N/A | keyword | +| netskope.alerts.uba_inst1 | N/A | keyword | +| netskope.alerts.uba_inst2 | N/A | keyword | +| netskope.alerts.updated | N/A | long | +| netskope.alerts.url | URL of the application that the user visited as provided by the log or data plane traffic. | flattened | +| netskope.alerts.user.category | Type of user in an enterprise - external / internal. | keyword | +| netskope.alerts.user.geo.city_name | City name. | keyword | +| netskope.alerts.user.geo.continent_name | Name of the continent. | keyword | +| netskope.alerts.user.geo.country_iso_code | Country ISO code. | keyword | +| netskope.alerts.user.geo.country_name | Country name. | keyword | +| netskope.alerts.user.geo.location | Longitude and latitude. | geo_point | +| netskope.alerts.user.geo.region_iso_code | Region ISO code. | keyword | +| netskope.alerts.user.geo.region_name | Region name. | keyword | +| netskope.alerts.user.group | N/A | keyword | +| netskope.alerts.user.ip | IP address of User. | keyword | +| netskope.alerts.value | N/A | double | +| netskope.alerts.violating_user.name | User who caused a violation. Populated for Workplace by Facebook. | keyword | +| netskope.alerts.violating_user.type | Category of the user who caused a violation. Populated for Workplace by Facebook. | keyword | +| netskope.alerts.web.url | File preview URL. | flattened | +| netskope.alerts.workspace.id | Workspace ID in case of Slack for Enterprise. | keyword | +| netskope.alerts.workspace.name | Workspace name in case of Slack for Enterprise. | keyword | +| netskope.alerts.zip.password | Zip the malicious file and put pwd to it and send it back to caller. | keyword | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| source.address | Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| source.geo.city_name | City name. | keyword | +| source.geo.continent_name | Name of the continent. | keyword | +| source.geo.country_iso_code | Country ISO code. | keyword | +| source.geo.country_name | Country name. | keyword | +| source.geo.location | Longitude and latitude. | geo_point | +| source.geo.postal_code | Postal code associated with the location. Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. | keyword | +| source.geo.region_iso_code | Region ISO code. | keyword | +| source.geo.region_name | Region name. | keyword | +| source.geo.timezone | The time zone of the location, such as IANA time zone name. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| tags | List of keywords used to tag each event. | keyword | +| threat.indicator.file.hash.md5 | MD5 hash. | keyword | +| threat.indicator.file.hash.sha1 | SHA1 hash. | keyword | +| threat.indicator.file.hash.sha256 | SHA256 hash. | keyword | +| user.email | User email address. | keyword | +| user.group.name | Name of the group. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | +| user.roles | Array of user roles at the time of the event. | keyword | +| user_agent.name | Name of the user agent. | keyword | +| user_agent.original | Unparsed user_agent string. | keyword | +| user_agent.original.text | Multi-field of `user_agent.original`. | match_only_text | +| user_agent.os.name | Operating system name, without the version. | keyword | +| user_agent.os.name.text | Multi-field of `user_agent.os.name`. | match_only_text | +| user_agent.os.version | Operating system version as a raw string. | keyword | +| user_agent.version | Version of the user agent. | keyword | + + +An example event for `alerts` looks as following: + +```json +{ + "@timestamp": "2021-12-23T16:27:09.000Z", + "agent": { + "ephemeral_id": "f6ea30bb-70ab-4ae9-b338-b103657dd749", + "id": "52d90929-98ee-4480-9b14-fe07637d0bbe", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.3.0" + }, + "data_stream": { + "dataset": "netskope.alerts", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "address": "81.2.69.143", + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.143" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "52d90929-98ee-4480-9b14-fe07637d0bbe", + "snapshot": true, + "version": "8.3.0" + }, + "event": { + "agent_id_status": "verified", + "id": "f621f259f5fbde850ad5593a", + "ingested": "2022-04-14T11:24:23Z", + "original": "{\"event\":{\"id\":\"f621f259f5fbde850ad5593a\"},\"netskope\":{\"alerts\":{\"insertion_epoch_timestamp\":1640277131,\"access_method\":\"API Connector\",\"acked\":\"false\",\"action\":\"block\",\"activity\":{\"name\":\"Login Successful\"},\"is_alert\":\"yes\",\"alert\":{\"name\":\"policy-alert\",\"type\":\"nspolicy\"},\"app\":{\"name\":\"SomeApp\",\"category\":\"Cloud Storage\"},\"category\":{\"name\":\"Cloud Storage\"},\"cci\":\"81\",\"ccl\":\"high\",\"count\":1,\"device\":{\"name\":\"Other\"},\"destination\":{\"geoip_src\":2},\"exposure\":\"organization_wide_link\",\"file\":{\"lang\":\"ENGLISH\"},\"instance\":{\"name\":\"example.com\",\"id\":\"example.com\"},\"modified\":{\"timestamp\":1613760236},\"object\":{\"name\":\"HjBuUvDLWgpudzQr\",\"id\":\"GxyjNjJxKg14W3Mb57aLY9_klcxToPEyqIoNAcF82rGg\",\"type\":\"File\"},\"organization\":{\"unit\":\"example.local\\\\\\\\/example\\\\\\\\/Active Users\"},\"other\":{\"categories\":\"null\"},\"owner\":\"foobar\",\"policy\":{\"name\":\"Some Policy\"},\"request\":{\"id\":\"9262245914980288500\"},\"scan\":{\"type\":\"Ongoing\"},\"shared\":{\"with\":\"none\"},\"site\":\"Example\",\"source\":{\"geoip_src\":2},\"suppression\":{\"key\":\"Tenant Migration across MPs\"},\"traffic\":{\"type\":\"CloudApp\"},\"type\":\"policy\",\"url\":\"http:\\\\\\\\/\\\\\\\\/www.example.com\\\\\\\\/open?id=WLb5Mc7aPGx914gEyYNjJxTo32yjF8xKAcqIoN_klrGg\"}},\"user_agent\":{\"name\":\"unknown\",\"os\":{\"name\":\"unknown\"}},\"destination\":{\"geo\":{\"country_iso_code\":\"NL\",\"location\":{\"lat\":52.3759,\"lon\":4.8975},\"city_name\":\"Amsterdam\",\"region_name\":\"North Holland\",\"postal_code\":\"1012\"},\"address\":\"81.2.69.143\",\"ip\":\"81.2.69.143\"},\"file\":{\"path\":\"\\\\\\\\/My Drive\\\\\\\\/Clickhouse\\\\\\\\/Tenant Migration across MPs\",\"size\":196869,\"mime_type\":{\"1\":\"application\\\\\\\\/vnd.apps.document\",\"2\":\"application\\\\\\\\/vnd.apps.document\"},\"hash\":{\"md5\":\"4bb5d9501bf7685ecaed55e3eda9ca01\"}},\"source\":{\"geo\":{\"country_iso_code\":\"NL\",\"location\":{\"lat\":52.3759,\"lon\":4.8975},\"city_name\":\"Amsterdam\",\"region_name\":\"North Holland\",\"postal_code\":\"1012\"},\"address\":\"81.2.69.143\",\"ip\":\"81.2.69.143\"},\"@timestamp\":\"2021-12-23T16:27:09.000Z\",\"user\":{\"email\":{\"1\":\"test@example.com\",\"2\":\"test@example.com\",\"3\":\"test@example.com\"},\"group\":{\"name\":\"null\"}}}" + }, + "file": { + "hash": { + "md5": "4bb5d9501bf7685ecaed55e3eda9ca01" + }, + "mime_type": [ + "application\\\\/vnd.apps.document" + ], + "path": "\\\\/My Drive\\\\/Clickhouse\\\\/Tenant Migration across MPs", + "size": 196869 + }, + "input": { + "type": "tcp" + }, + "log": { + "source": { + "address": "192.168.224.1:57542" + } + }, + "netskope": { + "alerts": { + "access_method": "API Connector", + "acked": false, + "action": "block", + "activity": { + "name": "Login Successful" + }, + "alert": { + "name": "policy-alert", + "type": "nspolicy" + }, + "app": { + "category": "Cloud Storage", + "name": "SomeApp" + }, + "category": { + "name": "Cloud Storage" + }, + "cci": "81", + "ccl": "high", + "count": 1, + "destination": { + "geoip_src": 2 + }, + "device": { + "name": "Other" + }, + "exposure": "organization_wide_link", + "file": { + "lang": "ENGLISH" + }, + "insertion_epoch_timestamp": 1640277131, + "instance": { + "id": "example.com", + "name": "example.com" + }, + "is_alert": true, + "modified": { + "timestamp": 1613760236 + }, + "object": { + "id": "GxyjNjJxKg14W3Mb57aLY9_klcxToPEyqIoNAcF82rGg", + "name": "HjBuUvDLWgpudzQr", + "type": "File" + }, + "organization": { + "unit": "example.local\\\\/example\\\\/Active Users" + }, + "owner": "foobar", + "policy": { + "name": "Some Policy" + }, + "request": { + "id": "9262245914980288500" + }, + "scan": { + "type": "Ongoing" + }, + "shared": { + "with": "none" + }, + "site": "Example", + "source": { + "geoip_src": 2 + }, + "suppression": { + "key": "Tenant Migration across MPs" + }, + "traffic": { + "type": "CloudApp" + }, + "type": "policy", + "url": { + "extension": "com\\\\/open", + "original": "http:\\\\/\\\\/www.example.com\\\\/open?id=WLb5Mc7aPGx914gEyYNjJxTo32yjF8xKAcqIoN_klrGg", + "path": "\\\\/\\\\/www.example.com\\\\/open", + "query": "id=WLb5Mc7aPGx914gEyYNjJxTo32yjF8xKAcqIoN_klrGg", + "scheme": "http" + } + } + }, + "related": { + "ip": [ + "81.2.69.143", + "81.2.69.143" + ] + }, + "source": { + "address": "81.2.69.143", + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.143" + }, + "tags": [ + "forwarded", + "netskope-alerts" + ], + "user": { + "email": [ + "test@example.com" + ] + }, + "user_agent": { + "name": "unknown", + "os": { + "name": "unknown" + } + } +} +``` + +### Events + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.nat.ip | Translated IP of source based NAT sessions (e.g. internal client to internet). Typically connections traversing load balancers, firewalls, or routers. | ip | +| client.packets | Packets sent from the client to the server. | long | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.account.name | The cloud account name or alias used to identify different entities in a multi-tenant environment. Examples: AWS account name, Google Cloud ORG display name. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| cloud.service.name | The cloud service name is intended to distinguish services running on different platforms within a provider, eg AWS EC2 vs Lambda, GCP GCE vs App Engine, Azure VM vs App Server. Examples: app engine, app service, cloud run, fargate, lambda. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.address | Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| destination.domain | The domain name of the destination system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| destination.geo.city_name | City name. | keyword | +| destination.geo.continent_name | Name of the continent. | keyword | +| destination.geo.country_iso_code | Country ISO code. | keyword | +| destination.geo.country_name | Country name. | keyword | +| destination.geo.location | Longitude and latitude. | geo_point | +| destination.geo.name | User-defined description of a location, at the level of granularity they care about. Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. Not typically used in automated geolocation. | keyword | +| destination.geo.postal_code | Postal code associated with the location. Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. | keyword | +| destination.geo.region_iso_code | Region ISO code. | keyword | +| destination.geo.region_name | Region name. | keyword | +| destination.geo.timezone | The time zone of the location, such as IANA time zone name. | keyword | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Event dataset | constant_keyword | +| event.id | Unique ID to describe the event. | keyword | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module | constant_keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| file.hash.md5 | MD5 hash. | keyword | +| file.mime_type | MIME type should identify the format of the file or stream of bytes using https://www.iana.org/assignments/media-types/media-types.xhtml[IANA official types], where possible. When more than one type is applicable, the most specific type should be used. | keyword | +| file.name | Name of the file including the extension, without the directory. | keyword | +| file.path | Full path to the file, including the file name. It should include the drive letter, when appropriate. | keyword | +| file.path.text | Multi-field of `file.path`. | match_only_text | +| file.size | File size in bytes. Only relevant when `file.type` is "file". | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| log.source.address | Source address from which the log event was read / sent from. | keyword | +| netskope.events.access_method | Cloud app traffic can be steered to the Netskope cloud using different deployment methods such as Client (Netskope Client), Secure Forwarder etc. Administrators can also upload firewall and/or proxy logs for log analytics. This field shows the actual access method that triggered the event. For log uploads this shows the actual log type such as PAN, Websense, etc. | keyword | +| netskope.events.ack | Whether user acknowledged the alert or not. | boolean | +| netskope.events.activity.name | Description of the user performed activity. | keyword | +| netskope.events.activity.status | Displayed when the user is denied access while performing some activity. | keyword | +| netskope.events.activity.type | Displayed when only admins can perform the activity in question. | keyword | +| netskope.events.alarm.description | N/A | keyword | +| netskope.events.alarm.name | N/A | keyword | +| netskope.events.alert.is_present | Indicates whether alert is generated or not. Populated as yes for all alerts. | boolean | +| netskope.events.alert.name | Name of the alert. | keyword | +| netskope.events.alert.type | Type of the alert. | keyword | +| netskope.events.app.activity | N/A | keyword | +| netskope.events.app.category | N/A | keyword | +| netskope.events.app.name | Specific cloud application used by the user (e.g. app = Dropbox). | keyword | +| netskope.events.app.region | N/A | keyword | +| netskope.events.app.session.id | Unique App/Site Session ID for traffic_type = CloudApp and Web. An app session starts when a user starts using a cloud app/site on and ends once they have been inactive for a certain period of time(15 mins). Use app_session_id to check all the user activities in a single app session. app_session_id is unique for a user, device, browser and domain. | keyword | +| netskope.events.attachment | File name. | keyword | +| netskope.events.audit.category | The subcategories in an application such as IAM, EC in AWS, login, token, file, etc., in case of Google. | keyword | +| netskope.events.audit.log.event | N/A | keyword | +| netskope.events.audit.type | The sub category in audit according to SaaS / IaaS apps. | keyword | +| netskope.events.browser.session.id | Browser session ID. If there is an idle timeout of 15 minutes, it will timeout the session. | keyword | +| netskope.events.bucket | N/A | keyword | +| netskope.events.category.id | Matching category ID according to policy. Populated for both cloud and web traffic. | keyword | +| netskope.events.category.name | N/A | keyword | +| netskope.events.cci | N/A | keyword | +| netskope.events.ccl | Cloud Confidence Level. CCL measures the enterprise readiness of the cloud apps taking into consideration those apps security, auditability and business continuity. Each app is assigned one of five cloud confidence levels: excellent, high, medium, low, or poor. Useful for querying if users are accessing a cloud app with a lower CCL. | keyword | +| netskope.events.channel | Channel of the user for slack and slack enterprise apps. | keyword | +| netskope.events.client.bytes | Total number of bytes uploaded from client to server. | long | +| netskope.events.client.packets | N/A | long | +| netskope.events.connection.duration | Duration of the connection in milliseconds. Useful for querying long-lived sessions. | long | +| netskope.events.connection.end_time | Connection end time. | long | +| netskope.events.connection.id | Each connection has a unique ID. Shows the ID for the connection event. | keyword | +| netskope.events.connection.start_time | Connection start time. | long | +| netskope.events.count | Number of raw log lines/events sessionized or suppressed during the suppressed interval. | long | +| netskope.events.description | N/A | keyword | +| netskope.events.destination.geoip.source | Source from where the location of Destination IP was derived. | long | +| netskope.events.detail | N/A | keyword | +| netskope.events.detection.engine | Customer exposed detection engine name. | keyword | +| netskope.events.detection.type | Same as malware type. Duplicate. | keyword | +| netskope.events.device.classification | Designation of device as determined by the Netskope Client as to whether the device is managed or not. | keyword | +| netskope.events.device.name | N/A | keyword | +| netskope.events.device.type | Device type from where the user accessed the cloud app. It could be Macintosh Windows device, iPad etc. | keyword | +| netskope.events.dlp.count | Count of rule hits. | long | +| netskope.events.dlp.file | File/Object name extracted from the file/object. | keyword | +| netskope.events.dlp.fingerprint.classificaiton | Fingerprint classification. | keyword | +| netskope.events.dlp.fingerprint.match | Fingerprint classification match file name. | keyword | +| netskope.events.dlp.fingerprint.score | Fingerprint classification score. | long | +| netskope.events.dlp.fv | N/A | long | +| netskope.events.dlp.incident.id | Incident ID associated with sub-file. In the case of main file, this is same as the parent incident ID. | keyword | +| netskope.events.dlp.is_unique_count | True or false depending upon if rule is unique counted per rule data. | boolean | +| netskope.events.dlp.mail.parent_id | N/A | keyword | +| netskope.events.dlp.parent.id | Incident ID associated with main container (or non-container) file that was scanned. | keyword | +| netskope.events.dlp.profile | DLP profile name. | keyword | +| netskope.events.dlp.score | DLP rule score for weighted dictionaries. | long | +| netskope.events.dlp.severity | Severity of rule. | keyword | +| netskope.events.dlp.unique_count | Integer value of number of unique matches seen per rule data. Only present if rule is uniquely counted. | long | +| netskope.events.domain | Domain value. This will hold the host header value or SNI or extracted from absolute URI. | keyword | +| netskope.events.domain_shared_with | N/A | long | +| netskope.events.drive.id | N/A | keyword | +| netskope.events.encrypt.failure | Reason of failure while encrypting. | keyword | +| netskope.events.end_time | N/A | keyword | +| netskope.events.enterprise.id | EnterpriseID in case of Slack for Enterprise. | keyword | +| netskope.events.enterprise.name | Enterprise name in case of Slack for Enterprise. | keyword | +| netskope.events.event.type | Anomaly type. | keyword | +| netskope.events.event_type | N/A | keyword | +| netskope.events.exposure | Exposure of a document. | keyword | +| netskope.events.external_collaborator_count | Count of external collaborators on a file/folder. Supported for some apps. | long | +| netskope.events.file.id | Unique identifier of the file. | keyword | +| netskope.events.file.is_password_protected | N/A | keyword | +| netskope.events.file.lang | Language of the file. | keyword | +| netskope.events.from.logs | Shows if the event was generated from the Risk Insights log. | keyword | +| netskope.events.from.object | Initial name of an object that has been renamed, copied or moved. | keyword | +| netskope.events.from.storage | N/A | keyword | +| netskope.events.from.user_category | Type of from_user. | keyword | +| netskope.events.gateway | N/A | keyword | +| netskope.events.graph.id | N/A | keyword | +| netskope.events.http_status | N/A | keyword | +| netskope.events.http_transaction_count | HTTP transaction count. | long | +| netskope.events.iaas_asset_tags | List of tags associated with the asset for which alert is raised. Each tag is a key/value pair. | keyword | +| netskope.events.id | N/A | keyword | +| netskope.events.insertion.timestamp | Insertion timestamp. | long | +| netskope.events.instance.id | Unique ID associated with an organization application instance. | keyword | +| netskope.events.instance.name | Instance name associated with an organization application instance. | keyword | +| netskope.events.instance.type | Instance type. | keyword | +| netskope.events.instance_name | Instance associated with an organization application instance. | keyword | +| netskope.events.internal_collaborator_count | Count of internal collaborators on a file/folder. Supported for some apps. | long | +| netskope.events.ip.protocol | N/A | keyword | +| netskope.events.is_bypass_traffic | Tells if traffic is bypassed by Netskope. | boolean | +| netskope.events.is_malicious | Only exists if some HTTP transaction belonging to the page event resulted in a malsite alert. | boolean | +| netskope.events.item.id | N/A | keyword | +| netskope.events.justification.reason | Justification reason provided by user. For following policies, justification events are raised. User is displayed a notification popup, user enters justification and can select to proceed or block: useralert policy, dlp block policy, block policy with custom template which contains justification text box. | keyword | +| netskope.events.justification.type | Type of justification provided by user when user bypasses the policy block. | keyword | +| netskope.events.last.app | Last application (app in the first/older event). Applies to only proximity anomaly alert. | keyword | +| netskope.events.last.country | Last location (Country). Applies to only proximity anomaly alert. | keyword | +| netskope.events.last.device | Last device name (Device Name in the first/older event). Applies to only proximity anomaly alert. | keyword | +| netskope.events.last.location | Last location (City). Applies to only proximity anomaly alert. | keyword | +| netskope.events.last.region | Applies to only proximity anomaly alert. | keyword | +| netskope.events.last.timestamp | Last timestamp (timestamp in the first/older event). Applies to only proximity anomaly alert. | long | +| netskope.events.latency.max | Max latency for a connection in milliseconds. | long | +| netskope.events.latency.min | Min latency for a connection in milliseconds. | long | +| netskope.events.latency.total | Total latency from proxy to app in milliseconds. | long | +| netskope.events.legal_hold_profile_name | Legal hold profile name. | keyword | +| netskope.events.lh.custodian.name | Custodian name of legal hold profile. | keyword | +| netskope.events.lh.destination.app | Destination appname of legalhold action. | keyword | +| netskope.events.lh.destination.instance | Destination instance of legal hold action. | keyword | +| netskope.events.lh.file_id | File ID of legal hold file. | keyword | +| netskope.events.lh.filename | File name of legal hold file. | keyword | +| netskope.events.lh.filename_original | Original filename of legal hold file. | keyword | +| netskope.events.lh.filepath | File path of legal hold file. | keyword | +| netskope.events.lh.shared | Shared type of legal hold file. | keyword | +| netskope.events.lh.shared_with | User shared with the legal hold file. | keyword | +| netskope.events.lh.version | File version of original file. | keyword | +| netskope.events.list.id | N/A | keyword | +| netskope.events.log_file.name | Log file name for Risk Insights. | keyword | +| netskope.events.login.type | Salesforce login type. | keyword | +| netskope.events.login.url | Salesforce login URL. | flattened | +| netskope.events.malsite_category | Category of malsite [ Phishing / Botnet / Malicous URL, etc. ]. | keyword | +| netskope.events.malware.id | md5 hash of the malware name as provided by the scan engine. | keyword | +| netskope.events.malware.name | Netskope detection name. | keyword | +| netskope.events.malware.profile | tss_profile: profile which user has selected. Data comes from WebUI. Its a json structure. | keyword | +| netskope.events.malware.severity | Malware severity. | keyword | +| netskope.events.malware.type | Malware Type. | keyword | +| netskope.events.managed_app | Whether or not the app in question is managed. | boolean | +| netskope.events.management.id | Management ID. | keyword | +| netskope.events.metric_value | N/A | long | +| netskope.events.modified_at | Timestamp corresponding to the modification time of the entity (file, etc.). | date | +| netskope.events.netskope_pop | N/A | keyword | +| netskope.events.network | N/A | keyword | +| netskope.events.new_value | New value for a given file for salesforce.com. | keyword | +| netskope.events.notify_template | N/A | keyword | +| netskope.events.ns.activity | Maps app activity to Netskope standard activity. | keyword | +| netskope.events.ns.device_uid | Device identifiers on macOS and Windows. | keyword | +| netskope.events.num_sessions | N/A | long | +| netskope.events.numbytes | Total number of bytes that were transmitted for the connection - numbytes = client_bytes + server_bytes. | long | +| netskope.events.obfuscate | N/A | boolean | +| netskope.events.object.count | Displayed when the activity is Delete. Shows the number of objects being deleted. | long | +| netskope.events.object.id | Unique ID associated with an object. | keyword | +| netskope.events.object.name | Name of the object which is being acted on. It could be a filename, folder name, report name, document name, etc. | keyword | +| netskope.events.object.type | Type of the object which is being acted on. Object type could be a file, folder, report, document, message, etc. | keyword | +| netskope.events.old_value | Old value for a given file for salesforce.com. | keyword | +| netskope.events.org | Search for events from a specific organization. Organization name is derived from the user ID. | keyword | +| netskope.events.organization_unit | Org Units for which the event correlates to. This ties to user information extracted from Active Directory using the Directory Importer/AD Connector application. | keyword | +| netskope.events.orig_ty | Event Type of original event. | keyword | +| netskope.events.original_file_path | If the file is moved, then keep original path of the file in this field. | keyword | +| netskope.events.other.categories | N/A | keyword | +| netskope.events.owner | Owner of the file. | keyword | +| netskope.events.page | The URL of the originating page. | keyword | +| netskope.events.page_site | N/A | keyword | +| netskope.events.parent.id | N/A | keyword | +| netskope.events.path_id | Path ID of the file in the application. | long | +| netskope.events.policy.id | The Netskope internal ID for the policy created by an admin. | keyword | +| netskope.events.policy.name | Name of the policy configured by an admin. | keyword | +| netskope.events.profile.emails | List of profile emails per policy. | keyword | +| netskope.events.profile.id | Anomaly profile ID. | keyword | +| netskope.events.publisher_cn | N/A | keyword | +| netskope.events.qar | N/A | keyword | +| netskope.events.quarantine.action.reason | Reason for the action taken for quarantine. | keyword | +| netskope.events.quarantine.admin | Quarantine profile custodian email/name. | keyword | +| netskope.events.quarantine.app | Quarantine app name. | keyword | +| netskope.events.quarantine.app_name | N/A | keyword | +| netskope.events.quarantine.failure | Reason of failure. | keyword | +| netskope.events.quarantine.file.id | File ID of the quarantined file. | keyword | +| netskope.events.quarantine.file.name | File name of the quarantine file. | keyword | +| netskope.events.quarantine.instance | Quarantine instance name. | keyword | +| netskope.events.quarantine.original.file.name | Original file name which got quarantined. | keyword | +| netskope.events.quarantine.original.file.path | Original file path which got quarantined. | keyword | +| netskope.events.quarantine.original.shared | Original file shared user details. | keyword | +| netskope.events.quarantine.original.version | Original version of file which got quarantined. | keyword | +| netskope.events.quarantine.profile.id | Quarantine profile ID. | keyword | +| netskope.events.quarantine.profile.name | Quarantine profile name of policy for quarantine action. | keyword | +| netskope.events.quarantine.shared_with | N/A | keyword | +| netskope.events.referer | Referer URL of the application(with http) that the user visited as provided by the log or data plane traffic. | flattened | +| netskope.events.region | N/A | keyword | +| netskope.events.region.id | Region ID (as provided by the cloud provider). | keyword | +| netskope.events.repo | N/A | keyword | +| netskope.events.request.count | Total number of HTTP requests (equal to number of transaction events for this page event) sent from client to server over one underlying TCP connection. | long | +| netskope.events.request.id | Unique request ID for the event. | keyword | +| netskope.events.response.content.length | N/A | long | +| netskope.events.response.content.type | N/A | keyword | +| netskope.events.response.count | Total number of HTTP responses (equal to number of transaction events for this page event) from server to client. | long | +| netskope.events.retro_scan_name | Retro scan name. | keyword | +| netskope.events.risk_level | Corresponding field to risk_level_id. Name. | keyword | +| netskope.events.risk_level_id | This field is set by both role-based access (RBA) and MLAD. | keyword | +| netskope.events.role | Roles for Box. | keyword | +| netskope.events.run_id | Run ID. | long | +| netskope.events.sa.profile.id | CSA profile ID. | keyword | +| netskope.events.sa.profile.name | CSA profile name. | keyword | +| netskope.events.sa.rule.severity | Rule severity. | keyword | +| netskope.events.scan.time | Time when the scan is done. | long | +| netskope.events.scan.type | Generated during retroactive scan or new ongoing activity. | keyword | +| netskope.events.scopes | List of permissions for google apps. | keyword | +| netskope.events.serial | N/A | keyword | +| netskope.events.server.bytes | Total number of downloaded from server to client. | long | +| netskope.events.server.packets | N/A | long | +| netskope.events.session.duration | N/A | long | +| netskope.events.session.id | Session ID for Dropbox application. | keyword | +| netskope.events.session.packets | N/A | long | +| netskope.events.severity.id | Severity ID used by watchlist and malware alerts. | keyword | +| netskope.events.severity.level | Severity used by watchlist and malware alerts. | keyword | +| netskope.events.severity.type | Severity type used by watchlist and malware alerts | keyword | +| netskope.events.sfwder | N/A | keyword | +| netskope.events.shared.domains | List of domains of users the document is shared with. | keyword | +| netskope.events.shared.is_shared | If the file is shared or not. | boolean | +| netskope.events.shared.type | Shared Type. | keyword | +| netskope.events.shared.with | Array of emails with whom a document is shared with. | keyword | +| netskope.events.site | For traffic_type = CloudApp, site = app and for traffic_type = Web, it will be the second level domain name + top-level domain name. For example, in "www.cnn.com", it is "cnn.com". | keyword | +| netskope.events.slc.geo.location | Longitude and latitude. | geo_point | +| netskope.events.source.geoip_src | Source from where the location of Source IP was derived. | long | +| netskope.events.ssl_decrypt_policy | Applicable to only bypass events. There are 2 ways to create rules for bypass: Bypass due to Exception Configuration, Bypass due to SSL Decrypt Policy.The existing flag bypass_traffic only gives information that a flow has been bypassed, but does not tell exactly which policy was responsible for it. ssl_decrypt_policy field will provide this extra information. In addition, policy field will be also set for every Bypass event. | keyword | +| netskope.events.start_time | N/A | keyword | +| netskope.events.sub_type | Workplace by Facebook post sub category (files, comments, status etc). | keyword | +| netskope.events.supporting_data | N/A | keyword | +| netskope.events.suppression.end_time | When events are suppressed (like collaboration apps), then the suppression end time will be set and only one event will be send with suppression start time and end time and count of occurrence. | long | +| netskope.events.suppression.key | To limit the number of events. Example: Suppress block event for browse. | keyword | +| netskope.events.suppression.start_time | When events are suppressed (like collaboration apps), then the suppression end time will be set and only one event will be send with suppression start time and end time and count of occurrence. | long | +| netskope.events.team | Slack team name. | keyword | +| netskope.events.telemetry_app | Typically SaaS app web sites use web analytics code within the pages to gather analytic data. When a SaaS app action or page is shown, there is subsequent traffic generated to tracking apps such as doubleclick.net, Optimizely, etc. These tracking apps are listed if applicable in the Telemetry App field. | keyword | +| netskope.events.temp_user | N/A | keyword | +| netskope.events.tenant.id | Tenant id. | keyword | +| netskope.events.threat.match_field | Threat match field, either from domain or URL or IP. | keyword | +| netskope.events.threat.source.id | Threat source id: 1 - NetskopeThreatIntel, 2 - Zvelodb. | keyword | +| netskope.events.threshold | Threshold (Count at which the anomaly should trigger). Applicable to Bulk Anomaly types( Bulk Upload/ Download/ Delete) and Failed Login Anomaly type. | long | +| netskope.events.tnetwork_session_id | N/A | keyword | +| netskope.events.to.object | Changed name of an object that has been renamed, copied, or moved. | keyword | +| netskope.events.to.storage | N/A | keyword | +| netskope.events.to.user | Used when a file is moved from user A to user B. Shows the email address of user B. | keyword | +| netskope.events.to.user_category | Type of user to which move is done. | keyword | +| netskope.events.total.collaborator_count | Count of collaborators on a file/folder. Supported for some apps. | long | +| netskope.events.total_packets | N/A | long | +| netskope.events.traffic.type | Type of the traffic: CloudApp or Web. CloudApp indicates CASB and web indicates HTTP traffic. Web traffic is only captured for inline access method. It is currently not captured for Risk Insights. | keyword | +| netskope.events.transaction.id | Unique ID for a given request/response. | keyword | +| netskope.events.tss_mode | Malware scanning mode, specifies whether it's Real-time Protection or API Data Protection. | keyword | +| netskope.events.tunnel.id | Shows the Client installation ID. Only available for the Client steering configuration. | keyword | +| netskope.events.tunnel.type | N/A | keyword | +| netskope.events.tunnel.up_time | N/A | long | +| netskope.events.two_factor_auth | N/A | keyword | +| netskope.events.type | Shows if it is an application event or a connection event. Application events are recorded to track user events inside a cloud app. Connection events shows the actual HTTP connection. | keyword | +| netskope.events.universal_connector | N/A | keyword | +| netskope.events.url | URL of the application that the user visited as provided by the log or data plane traffic | flattened | +| netskope.events.url_to_activity | Populated if the activity from the URL matches certain activities. This field applies to Risk Insights only. | keyword | +| netskope.events.user.category | Type of user in an enterprise - external / internal. | keyword | +| netskope.events.user.generated | Tells whether it is user generated page event. | boolean | +| netskope.events.user.geo.city_name | N/A | keyword | +| netskope.events.user.geo.continent_name | N/A | keyword | +| netskope.events.user.geo.country_iso_code | N/A | keyword | +| netskope.events.user.geo.country_name | N/A | keyword | +| netskope.events.user.geo.location | Longitude and latitude. | geo_point | +| netskope.events.user.geo.region_iso_code | N/A | keyword | +| netskope.events.user.geo.region_name | N/A | keyword | +| netskope.events.user.group | N/A | keyword | +| netskope.events.user.ip | IP address of User. | keyword | +| netskope.events.user.is_aggregated | N/A | boolean | +| netskope.events.violating.user.name | User who caused a vioaltion. Populated for Workplace by Facebook. | keyword | +| netskope.events.violating.user.type | Category of the user who caused a violation. Populated for Workplace by Facebook. | keyword | +| netskope.events.web.url | File preview URL. | flattened | +| netskope.events.web_universal_connector | N/A | keyword | +| netskope.events.workspace.id | Workspace ID in case of Slack for Enterprise. | keyword | +| netskope.events.workspace.name | Workspace name in case of Slack for Enterprise. | keyword | +| netskope.events.zip_password | Zip the malacious file and put pwd to it and send it back to caller. | keyword | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| rule.id | A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. | keyword | +| rule.name | The name of the rule or signature generating the event. | keyword | +| server.bytes | Bytes sent from the server to the client. | long | +| server.packets | Packets sent from the server to the client. | long | +| source.address | Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| source.geo.city_name | City name. | keyword | +| source.geo.continent_name | Name of the continent. | keyword | +| source.geo.country_iso_code | Country ISO code. | keyword | +| source.geo.country_name | Country name. | keyword | +| source.geo.location | Longitude and latitude. | geo_point | +| source.geo.postal_code | Postal code associated with the location. Values appropriate for this field may also be known as a postcode or ZIP code and will vary widely from country to country. | keyword | +| source.geo.region_iso_code | Region ISO code. | keyword | +| source.geo.region_name | Region name. | keyword | +| source.geo.timezone | The time zone of the location, such as IANA time zone name. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| tags | List of keywords used to tag each event. | keyword | +| threat.indicator.file.hash.md5 | MD5 hash. | keyword | +| threat.indicator.file.hash.sha1 | SHA1 hash. | keyword | +| threat.indicator.file.hash.sha256 | SHA256 hash. | keyword | +| user.email | User email address. | keyword | +| user.group.name | Name of the group. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | +| user.roles | Array of user roles at the time of the event. | keyword | +| user_agent.device.name | Name of the device. | keyword | +| user_agent.name | Name of the user agent. | keyword | +| user_agent.original | Unparsed user_agent string. | keyword | +| user_agent.original.text | Multi-field of `user_agent.original`. | match_only_text | +| user_agent.os.full | Operating system name, including the version or code name. | keyword | +| user_agent.os.full.text | Multi-field of `user_agent.os.full`. | match_only_text | +| user_agent.os.name | Operating system name, without the version. | keyword | +| user_agent.os.name.text | Multi-field of `user_agent.os.name`. | match_only_text | +| user_agent.os.version | Operating system version as a raw string. | keyword | +| user_agent.version | Version of the user agent. | keyword | + + +An example event for `events` looks as following: + +```json +{ + "@timestamp": "2021-12-24T00:29:56.000Z", + "agent": { + "ephemeral_id": "3cabd78f-ac92-4719-87ff-e1dd82c3162a", + "id": "52d90929-98ee-4480-9b14-fe07637d0bbe", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.3.0" + }, + "data_stream": { + "dataset": "netskope.events", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.0.0" + }, + "elastic_agent": { + "id": "52d90929-98ee-4480-9b14-fe07637d0bbe", + "snapshot": true, + "version": "8.3.0" + }, + "event": { + "agent_id_status": "verified", + "dataset": "netskope.events", + "ingested": "2022-04-14T09:24:43Z", + "original": "{\"@timestamp\":\"2021-12-24T00:29:56.000Z\",\"event.id\":\"613ee55ec9d868fc47654a73\",\"netskope\":{\"events\":{\"event_type\":\"infrastructure\",\"severity\":{\"level\":\"high\"},\"alarm\":{\"name\":\"No_events_from_device\",\"description\":\"Events from device not received in the last 24 hours\"},\"device\":{\"name\":\"device-1\"},\"metric_value\":43831789,\"serial\":\"FFFFFFFFFFFFFFFF\",\"supporting_data\":\"abc\"}}}" + }, + "event.id": "613ee55ec9d868fc47654a73", + "input": { + "type": "tcp" + }, + "log": { + "source": { + "address": "192.168.224.1:46522" + } + }, + "netskope": { + "events": { + "alarm": { + "description": "Events from device not received in the last 24 hours", + "name": "No_events_from_device" + }, + "device": { + "name": "device-1" + }, + "event_type": "infrastructure", + "metric_value": 43831789, + "serial": "FFFFFFFFFFFFFFFF", + "severity": { + "level": "high" + }, + "supporting_data": "abc" + } + }, + "tags": [ + "forwarded", + "netskope-events" + ] +} +``` diff --git a/packages/netskope/1.0.0/img/netskope-alerts-screenshot.png b/packages/netskope/1.0.0/img/netskope-alerts-screenshot.png new file mode 100755 index 0000000000000000000000000000000000000000..3478a97c3027123588c9a5d9f8265578d78b38df GIT binary patch literal 93629 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�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
    &HATF*73ey~UL$e7-bS^tTQOE8w zoolL{{oT{y0M*`|7jgBI^v6OYm&`H@tL^F${%~BZrK*a;=bYby<8OAGNE|a@9T0t8 zfby-`-8*vLQfyH)G|ZnEeK3Jc-fU5c-#a3;1!~$iRV^@rG08W6%_nXo_?e3~A4GN|m(sm((FDGq_CZJ7k*JcxJ9b=!!r1gML>w`A=KIG3GnfO4WAQ^gDI6-lVbOGpEyk>NPh{clUj(OQHNeFANqND$f_ya)vOtf5wqBc-M2~ zXAfo~N*2me=*6oPHOxM+Nge~_I>6$ul|B({$yC%-nMc);a{@vxlsX}wA}x#Gz&F)z zFUl(QL>Dfdp-^rh$KZhgmeJE|e@!=Yc+`Iiu-&$Y!HPpI|HngVw_BIJlvdmin|uBG zbzhcp*#v$X=aR%SPJXRh;uN)7)gq1RFFa~D+JA8Ok0W*KV$Pm!dZSZl$b9kIJygz) zr$TTpf5ufdcG?(~J*x$O){w|iVKLpjr=GUYn-*+an+K0O6XY6^f0>r|f86>;!M{!t za()?{513Mi(ryE3svb(Uqw=SGhyID86XOnSoMYqF9_p2|A6({^oVe|rJBB}gyc-%B ziIhBvgObCRu0yHnk5k1xws*dI&k)$&c=zIIz31i28f&|42sX_%3?`!ib-X{Ne6o8W zOclI7CMy`yhw4_d^|RIqjYZo(Sm)|Va+s(}*eVb$EcJi0!&gLHY~qb|Osd%mui!tl3adK;6+%$nLW*c2Kt1@1xf?bsL?>1UL45Gts#pIWtA4*abVU zU+FEXOIx#(#B_u&o4F>=Hjc zLeU=?L&^woAYtL%v@pLL1#pv*wnzdEAJQo~lg>K~}$xyCu-I5l7V(qqcr3VXDH z1-J#P#E!6L*YHM7b$ZV32S+f#RW%ejN>UEenfC-G_daIU_Hbp|>p>M?Ch~`J8!Beh zgpJh1X7I5%%p!BV6hvQ5QkUB3MOh6NQ|&yBwnBf&P=}|o9^a8?@T)-g465v$FRJIv zNpVkMiwn!lt+ug*zxhcr$C4}|>$Ouqx2D^R z&;q(f&yVHSpi_7tWl zFcOep$X}?t6|cb!289b}@)czn@nrh%)QYJSL@TZ?yH3~;J#uv|Ilom#-8l0To(Df=4GE-p)zy9u?F)_hL)+PksjSP03ja zcGG3x?yJJT>1jM<<1=2x-a~MDx4dbT#`xB~in*=omhet>EYDv|yOglv|7LCAaaO9l zarl+#WkxccCi6?!kP>}RC_TenX{Uac7m&IENXWsUUB|F^1AH;!&f6ezY4!CNThGX7 z1JF@__YVczq>csVk~Tf<2~-_g3v zqHnEp+QW~+F*(q+^Z(^tFWrnM{1!Mr?|of}&$`B~6h?K`Q5`Q`kx!wznQ27R+MY#b zsKJ5i-=DTbE8bG^ynFGcRuC26nt{~fI}aZ~E3l{SadVkI%T4{wT~hU`mHS<6kV+#> z=VIoS^L3N(xlqta=n8uJ_ho5xe+rtWKBc9l+0sQgiKad8TG$^dQgE3-3^R`04-htS zN#!bk>K{_pBizN2P0nWWJx!GlQ0C8dLz#f;&%;;$lcrO%YV>eDVBj1u4=2%b09_?j7CwXD5RNaE;A!G9>f zA19kzz;{lFf+?xzEc2OGi%TpjlmrFJ-2X1h$UM3BB`2^aEyt;8vy!yxZch8ZbP&Y; z4~Wie!XlCg&iCz^(in{R{bNc;KNj;=da|mgsO^8bR4N>Xve%UHRZiF85F?A;oxAq$ zDPR`%`-C@wxF;W7<3F42JsbmwF*KUcHHdR`>CWe%sLRie+r!^cG0ZFw#f<&Toc))d zbC>A^m8u@Jw4L9i38Fu6aV{ms%VB=;lg+BwBE5LU`w%X z<6>k2dOECPOBD%HKIn*dNYNFBSIX*$P#32U|5oPSpMIW@8kK{&edpoD zB*5F8fD{C0Eo+rw2YOgs)eqgq38vZ!BUZ^sTL24VlY@^|p=itx4pX#e)%^Q-{h1o3l( zQ+tXd8X%XLL!rV2Dji1u7wrbO9+V=&%N)}=7Y`#`9)acli&U-S{)|wDz3g)-9YGr7pg#yPhq@%EIp z{#zInIKt91_U}~YucWMR&<@Z=MR9F%@!st{JZ#QV3Wqx-jAa%vqXht4~>3;FmN!>u6mic zd`85BJR}CzCEVt|5F76(VEcXA8*ELn5l2Tg>)_A|JxwaPd5lS8m>nO@ynp;9sgF1$ zX5|(9sx`S{4z~wJTfaXumyBt2L#Ii{xq@QCCjLhXXCU_th2nSdG(; zty%o!_~(|+mTWLR*fFeWdI5^jy%s5@d}R3>QGMSLm~;62JyU#wddn)q3~S7jbl;y2 zoqfqe%3iuOxWWrBroNvgIX%V?$dRPVZ7{;}76)l7L17+E@9!*p-`q$PO3D;Fftu-` zC-5;aSBp$$h7K;$M`3PN&=(I`@b=VH8s8+ujES@KP6fKpxeGIi@V?;*|JO4nT+hF3b zcarkZr!UPRfmP03b#2{IDkpk20(KcKlKorop^ThXlB`&+>EEA0Zt>&9t}fFtpe`~S z%P3W`>Xa$BeHgH1y}a=bu?9zBeL^TSYi}hipM4JGAvI1*tXHGRV(CqU=t^otRu$tM zvN6T-CAoT6dWqv(#mILtp40(n(FP+g6--JQA1(sTZi*hF>{_d|Gu(*u4UP2AGE<|LH{1ee=MYWlD51z^{vuG#*K#NpJu&j7sp<~2I@3-u>|H6) z{3_9qP6~7WXW$<)^xjN^3XUAi=v+_ulJ9woZ2G?=%oJYZTg;r=1ncUp; zWpAV_o$82Y3!lx|UzIToqhS2K35p!)hIO9MY~P}>pCtyD-vOV320nsv;oTL6hViIa zN*c~wdfty`qvA>`>l~~0COXOd z_#%0 zpeYB{caRW(QR$s^+V!R^VW64{-vI1RhUy-xXhhPYrwCJZDw_1s5tu@*>YUxQCTHRg zQ(j9?oTgnrADxYE+RTr)EIsJ&Rd-Ya2>|DJZ$h#-l2obnK23=A4ZyL4J+tRNvfPQq z1CnUr=B_vCbH*&RH66}a(|`2^(Fd;4Uobzdb*$?Tv~VnV(zohJg=P%dCw}$taFwoT zI?XDD8V;DL12N(z%_B>(zkLoQ4$pz7we~pqD}DW{}Ew z=OGcRMXMUy1d|xBZt_%ZYjIW0Ogtz5VlVQLj08yd`WG}V`=z;P&Hwdd!+4_$QNq1G zSr3HlNTgepw(W5@vjwN~ed6lT`$MJm+lS(q@2F|N7Rsf=NttGW_zp zh<3o9OIjoxVJpoeRqu)|X?^NLUM8Dbp)~?l&}zb{(KvYyAf~R0EWZ7a#IpV~$J`BTJkmzNm*_SG1bF2lI_N>&9i@uaLwz1vaH>+VnIk|QwsPf8 zG+j-%eeZUKi(gDgOtc~V^;rZ5p~GDcu*?5;P@F~a0k9))CiMt-| za<1#Cfx^0(V4kDs;MH;W=B+~#``Vt}72wsGo}l;n3%vn^9$>>E7^)d(<)L9&Ak!%u zMr^xhqo!43heSY?E^Z|CmG(oqfVV>9#rs)o>=^g4a(%bp92$J0FJkBxIWzmu($L+I z7sj*8lvhDDMfYAS<9E%yZCGplVtX;E0Y~OWhejX~t=3LrN#5n3FR#4gH~&bk+6H5E zAwoOkPB4uwWfMBa_18Q6QJCE{I`iRa=3yW6w-QP+M@RMh(}pBcyA6G6)oy!MLm*#; z6=kKhjL{tmd}|QVNYRz4KGef_6PWz@QMD$T%eMzH`vLxLm0APdfbIVfqZO-fe=-#k z!PHB~toLM-a?M#8HpX}!Q^N9d+3H5JOj0`|qlUA}FM0@te@Qp(XBLlS;hR7i0y_|5dS6ti#vfXWIaGaW{Nx@WI%j?Y zmF64X{1?kX49ZlQA$w`_IT4pgMKb(k?WiS3xqO&Of&fC1eHK`J1H5v`m>mvGz;39j z#z;yRqQz&Zs~g*fLOsmQ-45+e*we44i7A~-v)X#@Dfm~Rw;5k2!E20ETBEF zKL$AFYz4W3dXwJOO5B(S#}DiyxcK^h@>56lLknjNqjzT}4)a@VA-ZF(NhX~&`GcZu zUx{36X2FI6tBNAx|Ne-AhXgM5bDS$tGao;!*+gjvXq6ZipQZ}fAFDe)l9i2f@}{G$ zDlH_~sY_T{*~SJHXFo<^yBYW~K18t>`B^#Hb>x^9;<_(EZutTyi<^MpAaJ-m7T~}$ zr7}x$Ku4(E5`J~QMILiPDL-oL@N%D>LAjejP~|5zg1Ws&2KlM%aJM{aB+&Lw zA_^c#6@67{ef~IqH&l7<=xi5AJq5`I(_;SnNIE)hoEjlMBwaqJLZmkoCrJA*45PrI z8LV|`#FVOZtP4h$;Z}xF;X`2}m>Oe}!=o-Za zsm%Ygy$1jyWSZC{Ji*J)6J{p@kw&hE#yEUYqF09N{;(1KC&6hN304;Owh-8B@#gMwbo3NWd3aU77@7FzDjGo zlp4k5RHy&|Px|s|uCFp50g%wyxA#=yX6iXO#_-9^>|ld@IVZBm#z;0Li*``L@q zT&5TA2I|CIp<$jdhc`8NRzb?1{9wA=yl`gZdg8&_?)e0?+`w94Vr1`fzzgKGYVLfm z9BrL5=J0QEb%9VWP$y?*>3Qe?2vBj2`UO~?pfYA&j~kwKD47me4(ZD?uI;AH{pUVk z)wq+9C2xm9ADkUO0=qyxBrr{Jwo=px+(~8o@AwG0g6m68 zmSzYOR1ub#2E?sJRPGC@;x^B}Efoj>yJ1u|yq}YRvY)wmuFL@PwaCW~23#5H-*$k! z#|@7q<-`--Tell6R`CPd!r#GDzOb=?tk>V?GtRz^YJt%E4U^@&mY*mCh^vmMF&C@X zS%a_hxOdF=WlV!Fsj9f?dk!yI`xC3&8)m2?0uDcmRv@M>Z?hrR)F4#@yqtCt0)U>9 zGh3}`;-YQ?h1j!+NYevrrz8>R97UI`f zurqEk?Yviy@jt%=E(>`anPD`_TuBH- z>|jLC9)nl7CVh;8dfwk{u+R(l3Fwj|Vycb6&JbZM{ufx_D5!x^{b08fF=c`cl*ZNb zB%a3w&dc0D2mP<#Wkg_ZZ|C~hp-5F)Z+*PzDg_SUyu4XqOq3mG0YRWWPHVdr7^S;@ z)BKvqB6e_5&KKtpCd<$k>3HZ_r>x0j6(PYTDNbnK`#dstaQYuoAC*GGqZ=@Lv zu1bcAuhSkfCf99U-);k2 zXAy!Zq+EH2AX#BJo9;9}U@$3S!2t%UU=};u#1ywFiTBq8QTC~p{o99W$6$ge%J_?4 zJbsu>s@Q?J3+&*zo-3UVop0a4=`^bosBZKBxBEeAOCR*Y=Da1D#(RaX=qu{^0-Zzj zpKnJp-am20*?q**v*8bLB_;f5~=FbX67nl5LXNO9OXW7Cvd3F z%+LO#g^<*Ps5Z;$ICY85^gv$=*-ap5Q&O563Y}_i+LwUU2-q?+Gpc?t6Fe3#n3~Ir zy$25k3XJutzoiYBIK^yhp$@IO1|0o>$5*wd_)rNpv0U!lONre^PBB$m?eE4u(SE{K z?{_4LJ;_jqZjO6V!YNqKD~3{D{&|UX88zRXz&TZOl-_Z&<`G)vZvgAp_+AwhUsS~B zfmOn;OPHLf^Ho@opozpE7M*bwzg+ico%uAEN)Yzau%j)&7Qg_vPHX+(_;z zUv>ZA8`RSgI|^@hz42Wqes93Lne%*fH)TD-HxubF-in(|tzVl+`SwcGKy~Z#Vx5eX zo?a!kz_G@W@=UVl&%6iIul0*2tM%vDkCzYHit8`{A1#%WK2ik=2z+%8dIh@dwzjJx z>5qa^9UmN)fB`RCt(Y>NZ-3BpGH*UJ+pVZ+@%8O9-kAlH*=}?_daruz&U$OMvXX7o zX4a{XtRWYY$tn}gT2u#}a91jlCRh$ix}m?d?~9%8^neZp?ZH3BSyyXkR-`>PuGxQv zHUh#v>%}2@*`M-1MhTtlmi+!T#huw5C5>|4)W9xg4P|xrG{6$#pZTl%pZ>Ip|Mg=A zHdvcD;90wcq3TvDm#9_wrOBCC|Cql1L@>87A3=Y7)V9yy&tBQC+ZvVZ9z`M_yz8T7 z#kno8G@6scl%3BIIPth))NQLLMyNFt;C&jzBJQ{M?=Kg8iWOp@W98OgF+Ws?LotY4 z-rWF6#i?gO%o)lNUdem`Sk)6CB)!#dWfG4CizNvA^QN$~kIV5SA9unoHe^>Q?ir`~ zK}xlfvv&e^Z1E`dWX58|Wk4D;#n|UBkY3>7`)Mak9Vx8a;#muU5H4=GLxAZ9kCgmi zU!cRbjT(ePZs+0?f-12bcQ~+HEG|M?1K4FINsoe>lSR#~-D(CU`_4nWg(XQ^8 zRIy{74!MX|Ns`CPu737;7w zc0PLZ`_V0v8V$K^A&@JSYlACtSamS5z12~7H;@Mnoi6|6|65g4|Dj9Q?I&rA1|HMbx)y|qh7<12Xf=Djg zHCnUmEJRPcR;t`L2&(So>18=8ak5nY zx}3$4`NAk==Z4^b!)3i{=h6pGGi%x7ztoO4%*zj#c=<_^q7bv(>2^-Sbg*bR=OX}m zCH>&Wp&P$A0uTE$IOI+dI_63XHq}!x8W22 zy3)D}1xFoUFiRxp^-1k%N-B#3`sz675~^KUDJ#E1b{bCEIa6Ha76W_rkg6wnXHK@* zUw*YT@i;u4ZFEVHm3MJLqEn`s^30{U5(1~@s-KV>2MP$lEnB=Wdm~%wQdUSrF3`9Q zt3G8j^4={mIR3 zR9TKF@ktaZsVGvK7$tWcxs=6E_PiQ#QB6B+QtpELMbJXa4{fgf`ljci`nb$?BPHAL zk&16psYJE%NrEApVIu2_PGM|~wrz*#pi`)kL%D_f3VSKWyN}1WG#pikoc{fgjgviA zTRB$gp%Q9$*lp{(!3MgEc%6}rW@(S_O)SYuYD$GEZ@;4AnYN)j6M(_SDg@1-oV-H2gFi*|sMn}f=c3i?){H4&^e z;Z+__vX$D(JB+HPn##OF*&}7`^PC9amN3pY==*IS2Z$VG&a4iVZdO#=jOaNxyXm%_ zN?;AShEGW<9d?#jtZRmThQtl&X5#fsQ?8_wtpFlU9TyqIHj4i?^CM?)wcblzZ9QX$ z<}HDu-YzB##8$0)9c8^Y&Qcsk1%uC~47DVp`p%<6-E9dtpA|&*4`uEMEFKLk^xQLW z$=!}8o%t&2E}W0Wl-3mvH+haM1^UfNa@VjU>AjPHA5pGfd(%2Tbs9CO92>vsPtZ<& zmA3W0a~0IotV+a5S~+|r^k1+X7y*0+5!QrB*j%K`!>!ZWaskY&2Lc`ATukef0JuPV3a0n{=|vLa(pzqnbhIpliptE zAB!0{qkn&frW=GoI9E%c{y>MtZ}Yv1=Pw?rasTy*Ba4%cY-O49b94;4l8wjH{Y;a! zn^tG}4M>j@2si`DtPgqs_-{XsX@sXV(KS?!e2gaMJ-IoqLl zCj+;RAu?trW<^7d4~Q$*MmQ5*8*t{ua={1kJ9gXHIm!WYHgr?Npn7w-D)9sKUD(A7 z%xs*4;qV(#NwJproe5b9Nhy{}*KCPiNIlZ4oL!ht&}gr!b5j|eAfGg$KRU4Ynl9eA z7_ecD|6)_UyJY{WPR=NqO`I+@iOE4dv%cUpzh`oPamab+BEy;i!phR|?PYLA%Dx54EQhl^PPv*Qw&o6bY6Kh-hbrXfXnE45%VKzO(T&rAWW3V;k z>r&7#P^pWRT_y)OVa6RkE(Xs*WT;fKDxrex? zBvtT46w$rv-3>;LYur~&R13f*u3Y8H?qWL-__L!XvT`)HNdRkV{idTASo+XmE-@t~ zxdfVhccA>%9vniCbd)@JTIaPd0R7-Bie}kRt z@iHYuR0O~!nkw&P0o%ofHUtW+38JY_r{ea+^}9bYx2r6fch->+avMcE&wz|^Q(~z*{cKbzgkBJ9Cf?g(@ZNO4J?ws^?t` zkZh;VAcr-!q%cK4d16`D7d{jZ4}goy)7=ZrWpiI?-YK_5n`~$1XKJ~RJ94AfM|cZwW-6q^_1sOePa$~vAg(3C+ zr!vNMrzXy$0?2m}H}df&K5bpV{=g#VO65~{=dvS3tn%6H=}7hQA52iO22t{5frMK; z28Ww*y>{qx^RbSOgMSOb(N*@IocHDa@INktM0+%6(1K&_@4Z~))z>L->e=GY=%((! zC?Ia!)#r=)1GI#g`hhE$z~xy{SLeQKtQH_ft72o=$e{@%M|<$@cqtT-j7%s|=7QR3 zBVpJ|%b-0mt#Inm5d#XGj7Q7|8d&bC|O`@Y}3_m4Y&@MAJ{&#bj)?X{l$JU|srA4m$VuO0+aT5?khz^&>e#KzjD zwhe}c@|{XLy^8bjbpKDL{?~A`b#{YU7*H5kg_~RR332cbx{U;|`p%^JE&nK;oQ^YB z1Ip32PU;<4Z3fC6b^rYA`Pp_oAM& zsoPV?|0-8LUF94EsXTIYR7%P2krOsa^_e3u2L_m%`Rn6)`j=+iY?08HOZ{-FPggUz z_w5>>>eA}SwfdoPFE}i;eLVxK^($6*u4>@OukgL>+2}LX6QG50=^S}nfIk!%!`C@m zX!72Swk>kx9zPRWm&VSsd%g1Ero}q_jyYih+Q$2Die{gx7{FlV|>EqLBCuScU z46*u{ah!|%c_CEaI<)-+P?-DCqdY1inp|zrs24A34&(y+ex_aiRb>Vez6bx83QZOI z!o_u`2%ufK0uq+B2s0sz&OS;N?j@c*@`s87kV+92moqpl;?WJjY)jf`%5h<>jJ*GZ zAY6d57}xOOUkOhjzbcf{met?4{lPXaR3Yuqy_It-R6SglFwnP(;Kf$-KqRF*|4nj# zde!80VwP%93-N^RU~* ztF6_sw!YB!OE>p}Hlu#%)1Q#4DL+&? zFPyq4P12p@|B(g&FM8e>ynESw{p!o(T%VeNO4F|g@YfLlEb0#cd;SOwyYyA6q9WyN zVEUp>W-f`EPzMTp9>u@W;*jaWX zqz-8wENN(bI1n+!QBN2yu|sZdT-OK6&i0noN5A_#$P5DFJ}(GxtzU=#C^SCM>Jr1& z)Ymsj;}4&7rXGK@h^&wY+BL>ng@En>cC2Llq9p>L7H_Jwd{Ze&I)DZ*QkwYqSy-MQ z=Kih{q-bsIm{J@e@hSK)u*iZ5R%aj!NV{`FGTxW8Ltv3eCqdjsFfl5PiY19_YA z!xR=Tx58__6>6rrNvN)VHCT0!$Gfu!Xqi7ysrpaL0$*)34!Er*3IkIO>|ex0;Oq%F zMKHqLnUs!5cgL2F&*+fiKJJ%3DH2haupYhU`fcg)8~HEHha%@Lay|V8!2ETh-%iMF zVvwxEs|5aotMM4On2(27+L)AhvMf+VaN6l#b(hvkkt;PcdJaHL;0$T`jH<(;b>8+8 z%0Q{pl_09CV@Uap2Y9;d++c<+(?-&JqKN zrdY{=cH_rU)rM&;Uc*ZFRqS50x!nX(aleAzUytGUE0MNswk;|yHZE+cuQ#`@cJv>b zvdzr95%=az{l915v9VrApU*K6-||ta1=p2<|HO9A$?51SJP2yg|}JKKZfk2)v^ zVP90;!ZFz&MxNG!;m=$WSoR!HUqyrHr2rOQQPMiLSP^F(^-^(U*n{mg#oM^=%lYPR zOgfcoSp60Zcb(P&uv*^iPegz2WuN=NWnanwmIf@pYua3=Ek$qf{WWQi+uwYm7zMhC zGhJaQHj1NWZ>_Ik{5gbzx|l-b2x7k>@Br7-!T*`tL6JfSJ15rx-{@OtFre;!mWTMC zy3?eB1*1d57XW(xx=3NMkN0idLl@+0e2aE?VBG_$-)1&^R6zp&K3(I_35{QS0ZwhK zV{XiA*p}vgCB#NK|Kw(~;@ue)l&e#sv}xvVzyFjmykEIv!hhyun_v~3smURCvi}A6 z+|@5M<$K*1FsLJviMV0)-Q2=LXv9nanAI)2_518zfzML<+})SV&FtKJ&AnG_OfO*{ zK5x{l+H!R*s^0gjW?%ok-(B58Q&Mn?5k~2;S?-ON%dhtit9&u2?dy|V>k|E4!@F|c zOVf%~mB6Y!89U~9M7q>^#r8n^?}J~al(8E3Kl&HK>x{7~Cudp)nKt+D>xunVA2@xs z5n9Q%B-d8nE(aB&HGKyLWv<`kZTt7g=iIDD<3o=@mM+0|LZ6?R1QhPoXEJ)wzM<=CKVpV`VcJp?i00H4Uuq&EkMG87_yOc4oo0k?)o+g z`)$UJu-mYv>h_tOHykmLDDTVZnu#&CSAjD`Qz9ysP3egqI2!IE%JbW zB>b5(s+O};rci)vVg2s)zBnw%CxIXr>cgDDMvkbYIcy@_xvko_d}3m&#aL@ zfxlOKkQWdC+4jskpD?^R!E)%U`xn+bdFf2qxhmwP&Xc2W!vetZGq#ZDqY_8+srvwn>F@eS%izMPxe z$|cKL<@|n&O(_$e6I+>V(7HEyQ384e`98G@w~vn`{51xh@UD8{L$hJCr^}d4Z~kpV zA;LSeu>}xI?(1aZ0riclN*^QK1mT(0eu`yfPy9wH=ccMkxhimx4eb`9Fclew9&DT*b-*=dQ_W3pcMs?plz}-I$;sZw>_%k2> ziTp{M^?sTc2uGhW3|163U~B9@A=W6DLK(j1Q~!F(CoH~I0}h=glye(_POcvo81uVr z<6UlDe&AyM$#~60++*vI?;0_ABfm#%lfnBMRhWfJ{>fK~wa%c%BPyStF%l?Mm*{3R zmD6ASX97$AefVC+`vJsG_Bde0`?8^I$n+&W<;mR&F(7D#!SCyutQ(K4t?+6N^z}HvBT7r`QFG zg;MAZ&_p?nZULPCwpy4LA1y>t3pZ20U+a4O(7_AiPu^<`3{ON%Z(tnQ?VrdryRm)F zuYy2@9(n8_pkUrm?o5oDX;=TjpzO?GQT`aE@ryc zKJ$j=W;@DoBkyS4#Bi`1d<_mR#OC8xW#;)9u~8RomA6bw?iW zf%5-2onjf#UD_e{I=)XQ?AyZCr?NV7d;?bbjgCytQ+_fpeh(u7Q7*9jC6#OqRlINC zQg{1)=D$95#S$R9d-s6v7Ox!(Df*%9kJv%N$1UGMkEWbP_4~*Oi^?}|ODEBm6O#$Q zPjN7N2XIOo^{Z2`bP{IA6oi9Wk!apzrQchh8?&lKb$rB> zpkJr-k_Uq|syNf{0GciY!rGzGZNkGi)swuxUU=1}x4de7`R3VCv4=MQ+%{GIoBi#h z^2v|Z%WO46m0%m>ZmqtY457e_hyOu-=8C$j`BWwpIQfgo9G4&xFFc zzx({dT)cAB<_7GSUB}jm-+S15z09Yy!c9I6mobX}nya+~$d}(18G=C>C#o=&7#?uw zoTzadF48D4qJ3h{ybf_dO+O|FvnlTor(F(%-qsA@#XDYUKuvzI_lRqyztCe4}9!g z8u^t@{^aY|8DU;hIJBf>2I_j32Oe_1DhWAWfar-aJg2n&*3Z0(&QU7OPW?#6jf|IC zIXi6Lh}g>c;SrI*I%(C=*;jhxWQsHd-q$U(G&qzw6>_No7sYmOz6>6)kOT9*2;mb5 z_e$7*^q5uXAHJsr5UKXV#CrOzc6u4E&xs`T%$gVl-(|kWX?o#CXb4O_wH)aBz^?-r z2ye?Y8lk677xGPeKkrh55eoCOV)&Oq2!<{R1Q~rLg^5Y8)Ixll8M`o^BudJ5^r8Ye| z(&*KjiZ#KfQZ1?q)LZ=J5@SZzCNYvY{FsBp!s{S8PwXw;^Z-y}HiJ5)Z{4+o*&-7U zvrj^u<|6Q|@v1gEAIs>?^JbiFyqJL|$4R9zf`gc&>r=YbqExb=FS0e0GE0MNq8t6* zJ7Q92n@i2ZQYHJDP^S%LE54J-QR_s>Fq50%-Zt;|nZUaluE-wwXZ>}6u`#>_OMG>O zV!gX~xP^o&dmf*QeCSfbF72yZxX}CN)DWT^G`w}M!G$x3PwHKYvKx!ammI>g00P-< zf_oL5tyeQk*NbQUt)i2T7PlaYF{{Fy+oEed0tfkHLEBWfememR^_-= zHE0IbYDCnm+wLSfwi1%5>o=n2u#-P&eR?f>u|zq>m*kyoYp+zW+&yW*a{TOD>Tt|A z>UybeZ?R?|WLSC?hPe`$3a?9iQI}uqiM0rx{=rmNvM$Jb0C@!mCvR?{1Q%yJZE=Jq-R@@9KY}Nc2uhNenSKeEjGu{E^a6}Q0cbjdc-g@*|YCRA6y^O zU)t9F7t8N+T@u6-CgKaze==l2rA|feI0jCUi*!7P6k}?V+qz3-27J=ZZ?p(H3%_{f zC@h#Y>eS~ppRb#PQ<^W~TXgs32NOL|8#?Z&W6&4_lgmUXc||dj+YrLzE&})_ln7CTkd*Y8+ht{t+4%A9DAKO%Q7fcR&D&D2+#EQTTV!3 z!P>hy^fCDg3=KBd+!6uD1c2Dcaa_>2RwQgQIE}4wiNmcFnIGjO3^QTf-B9a+>MX^X zn)t@#<8vZwJT#%mImskJe=#zKQ4q$$(rI7b@WV~u*+e+eR}(phfHZOPhmtbu z9H`m9((O&3%9wEcD9j4x9FgAMGFjl|caEJ~#ypY}7dhv=4{;vT_3^>9^-qT*nSTk@ zMC)ew=)29@Xrdl6aA;Rgl41iCrOn#?LmV;?gK}o(4nB058Y$SwEP~J*+zCv`P88{d z(0{CP^6r8pwx?u)q-=SZL>vh%40-jYRRG(okJ4VN07DgtyIyLPivBx z?GDjv5z0aXBwp}5KXtDvynEkQGsRN_Y3exV=F;$<;_n<)NFjU;iXGUw$Vd0ZIe2u` z#h2}GkOYr-1*iwCG3+0W_05G6LSGEIvpv5tFKR0r-6ikre+NU@Zzn^y6{*8-7Z#syGlEy3=mtS#oU5)% zc@McV4p-}cAl8slzK)ON7;h&d!}1l7s3yPs5pttdZ_jb@9b+#W z3%VR*t^`&!_0R~0nW)b0zJ_XLW4}}qd|{xbs}q*2Ln@DRufdoovF!q;R4P(n`&%E4 zj0Gi4HG)zvx4~$<8k-sstIJv?E*tk4aBb48#w$1PsUT#T=G%R6NG(GEOIO~?hEzA< z7saAVO(8~_q>BtO09(;LeNz-~dD8}daoGRKJLukf_y(6?P^wylKPY174GE-TSi4(A za$kr0E~O!%$;xBSX$u*%lCD4z$O`WyM3}|of|F(!-`AG+9m3nGUJG=*0fN@os%iQs z-q`zbk_e*fM{LF3zIczPZ(K~buf=+W$lP35oUHjKw^=X}yfvh?hz%_7D>yqcaediWOVTg9h`{EUA2FBvtIHQh z8#L46b1`Yk4d^tI`CM`x2<7t}Z(J*s6yM6xZgIT$g!oo&WxrTND-iicU#?+CID*>2 zTBHUvEKacq$=N%3Wh?#*t+RQe`x(5k8WOe6mGWJ^RSg2^W>d=rd|9G>k4!VgV1kmW zH}>xiwk>#0Z89&y!P3+*wkfk~V7g!B)Z}i9{Z9t#>vRWt6&$hh6CI`{nUx|*w6X1L z4{@nz#CGIzd>a!Kl!usj$46kdddfSBhjAvQ#^~Lt!MU%WE0<49*(CBkf&@T!j(qVn zVc!jg(}LDxxU<^?`>EYDm*_xv)d`Zkzj{(eS-@xJulQ1_JgD48Mgyj)inGj}&e*SR zo!5wK{VAEXEjAjnBr^tN<8pSWgJ3pew2Er+z2uRVg0X;R zRQ!z0O79cy=+-^f+Rz0e6`Cwl!+(w77?P-lzaE9?VUw^kT}TFNBh~H0MuTajS)%wQ z8L_#UUAG^UMbeDcQjfP_pH|dRre`hGKvZd?rko;L97edsA3&TZz&Z5f`172`C(Q1T zTH3)YgMk_i@D;tOu{G$PLdY{(=Hxb^XtydBjt)lJ`_sAo;%h4K!jEAL#I$dkG%2)$Z%IK2k42HaY zv$4VEMXU-$S3)Mz=E7jUG$sBFBXmYp4ybA^ieeY4ZID-5>XM>N{ceT)aXtNqAz5@2p zSogX0Bw=J=>-l}zJ9E(#Pw{^J%o!v!BSJb!xYJ&>dOrEX%Y&QE)%owyZThdGg~Odf zP-;v#Vk{WYk!L$67__5OdXZi|c;ye)U1?L>4e*3 z#Mu1V2Z}4NCrwmeclX7nchMdqTFtABzP+Y6e%sF1ZQejcGuX706*#WOjclr5+LTgu zDm~di(YN;iwxjSkZeP27L)DLG4X$D`GR|`E=|5V(cw1Cl!WVulYbAEe>S)EbQH&(F z10jLN0Nt3Cc{U5jQFrHa6#~UYLY6aq5*!RfNLfo9fh{uYSFbYvsbWy{`a9BJ*RRo{ zFyb_N(z}>**4^4s4Hhfg_L!EMn0GF3G8&F`jvXdBA;A zP}}Y2>lkxuB;K87PgXG~%~LL2l!up~6P?)$_Us-9hDuQ1?hm6`CsOUu`D7z|sK4Xg z#kPOyRp!%pO8vJa%&&MJ_5NujlPRf4n^gIENCEiBTnQsjPW}=mm3Oy6da1$iDHB&-PobXmZ^mG7irQFtrZpW z4it8-F|?=Zl(%~0%SK*B^Vah-S6%Ee>4zj~6Jg!x4yM_9I85WdT*RJ<)f4`jH;w+5 zW`E{Gw*aN97UKQW8x^mxfpSFw5FL}KFz46BUiidEdN#5s&R@=?p-q-aw0i3`5`5X+`SqAHW8>t=as5>8rl_8ay}&?K{dbdBmA>ooCaESyD>GX+xiE zJD%zzWn(B>er-K^OWoIfvuvE&uIm7#i66IhH(b}{IWwFPd3*Qu+`)rkW0}c=f#B4= zG2QM$%DR7Iwe}*K1JKaG@vc(3Ju|XkA>+@B-Im}Fd-dD$5v4wbd3GxIE?G&*u%XoT zLEEqA|H>T7mGnJ(-|VrQge|tcJcUyw?td66>gr?vkGsqHN^$?T?UcbC_#L~bD8IY& zqfUyjwCJ0As*(;iI7y=PDO+&eBt|Iw^;ozs4;p-L6J6*F6I$F(*fpBNY#luM@%VS? z``-mvgvHOD9tktj?hEuE1{&jf1_BPkRZx3L!x%#;V*&9HC!ts2`ajt~9_+hP3C%i? zXYOE_f>;$OrGXWcIi%aIsp`CDPcFs4C{zsBd=rc zXt*%oCpIkax-I-oblEbC2>XJ#;t=fz+k2T7pnNyO(Cl2Z@1sBrG0#qzU8Qz)7BeUF z?3<4PJ5u`SP9AdKpBDa8?XqBNb@y&MBB2`&C0f92~yb}3|WL^pJ8e$Two-qpKMs6AEt zjCh4_A_t-06xFD`!78d!09bgUm7Cqtu!Q}NkE*krk9RZnP?i}he!{0R!KSK!PVZ}z zW2&N23CO~lqpOj}cU}cMq;l=S`>zVRbuhx6q)gs<}1V4x+iySzzBS(5&jTQKqhz;zWxr!=TpN^w0 z--B~G{8O1>eaC%G!S3<*_=9X&8xOXqIr;r4PU4lkSa-E?mm6V}=;6{MCsGahG32ln zYn67x{_e){8JXjqCz20w3YuVPxB5LZi2!Z_R6i5RPAX?uzdv!q99y|4lR6O_Vo%7X zLH6Z!G_t%PvHP+R-3k$eRd_lS)YEwm4dQ;u;k%K_2%)JbruSHMAiG@D(D+AIrEuDu zC(Tz(P}=co-^IlAjRPxh7X8HCY4XbL`wsRnHK!O7N7W5qCchbQK5kzXdFp3xEWssj zij$~mlxhcX;b)GC<`6T_3Y#8{D2(r($Gi~!SYn-l>rImta%(}w80Mvaxau!3C9|a) zpMJ<$;&_8*t~6f~Ia4I0tS`7n=G6Hf-XY4bqRvm9^0InPqxTX>R%h)nRzUOxZ1V=8 z(-9MAd9kJ4T4Q6}agHs9QCO8VIvfVS9_*LzN53A9gwPy#k{dT9W$8tyCJ2eCo4|@PjG}BsiC55!x4=}mrF564?acr+1Uq(ywJD{Zv zgEgd_*160=IT!8_02MlvsGeTS26e6Q;pkVD=z)y`MOSOP$tRhAqHhVYkd)Ic#-YOH2iYiW%pZo#{<4kMK$hsyH`JwD;AWszwGfY3M#38_j-*4s#uW_{2g*05 znju=?DhdxyPfFrRenzXzI{9U!iT_(#&7&tA**7cU^M;W$<6XVcPiwR85By2d3!+&> zsB0yNHH}X5!f2Xq>ZJzn@(~F;%Go^TX4BgOA_w>!0w0jWNU8~eIgR_qVXJ;#ilyFo z9doIhde)?CjZImD**^)vJ{6X=nQ7`uPObF6uenGgVmd-tdX&#^-J%{SR;0-+Q`G0k z0UG;gLu<;FbftmxhYK0{4;H%Re@*sBwxUg{iUJyRSDmZYbu1$XP?_>i8lv7C325HU za71dD`iM_KN=|Hl$aJrqbLre36mGbbnK>^~@a~S}aYJ^PqS1TdF)jGwMC|j$4v(bX z59!z3Ve8jLOyiSvO5gN3S-E5;AXq)GJSs6mCiEhZKs;;vZG?#Myz z^BiULNW6qzyq2D0Q%C<=bnghSY|$&f%X=?r`RSQDuz$Kcte+wLddFp>bww6?HWW)f zh1VJ;Y=l6Za}_LT&T{X~MD3`~rbG=5+l?lPb4Sl5QIx>E5i#@EiH^asCrFcym%x{= z@*PK{$%e4>MTVY#z(EbGelp!;yzL)nZ`VvYE_a0weDK1AL}6@pJQIlYi=HAS1MdRN z#aH==vz1jhOkKWJXQ$l6D(kk3C;3M^Ri+KomG3<73(qX`n5OPtzn1Qk`7R-M$M6BE zHJOue199w7PvNB`gFe|i=Dx$aqn&$d3tPWFJ6t$<(h2QxPj%d7YMn+E)+jZp%QRCF z#~s`!jyRl{qIBkSQWgo6ymswKZ+EJ(VK>n<$8hu7x6wS$ zLNwZ|=eCFcj+j<~rWg1wJ-f42vZ94MHs##+%V%+|@3FIn-6=Im2AgsN?!h@aau7Yk zq~sSorRGfK(PkrlBHQ;2anD<(qAcjmq+8Y11LgG8BUoGTgd9#ocV%^s)PHsKLr@6u zR_ObKnxm#@MnsyWJc**i2|QzqC?4-^H)_>|WFUE3ekk%SELNZS<2l~R<_3*_z|w|%jUs6b#rN~0u6pc#^Ha-^2~#sluf&OKCD+w1_25dQg%IVYK2A7tU}q{)Us*_Il2t}0qv5$ zH<)M2&u$ehxI5U*TlL`Y^3n(Jm6y9wHR%tnu2Dg04^b;UpDz{>8C6AUl>TX=obS>l z2IMEGUbtzc^V;H1dpmaE>w_6p*R|n8C`crK#c1tEBZ3=G45VV${_fyQM+Z=cMKrp2 zF>DqScS<_e7Lzt^Rs}8{#b?0{CmeST z?;Uc)o=jF>|=`aJf+D_-KhQTWEvrsf7R`$&X;Y(#z-qFpv+0VLHuU@NIu!6*C z@#*D#d%UrV&fSH+Yo7RVH>0QUnrq2w;8uzEohXOAdz`8H^qNO0PbtD?YgpOW%=|7C zL_86LQ6DQcd%;ir@&>eUVKwyYV~EkZ($klF4I;f!b#u30(+;=8M8wA+3U?EGp2sYe zE|fXfdp!h+dj|qp)s0f{G{7dBlM92vTEtPOP@z40@M?InPd zOFgS<{(hl8f70zzTHX_@W5sGRyBOp8U0nWIs@~CxMb}|Pm5QaO(aIlNEGrl<6?`0> zFVXN<)0xOOV-dwtUY#qd1_7H4kUp8}c5bh*==n^f3 zX{N)sdrej{80ey!)s;UxtppO%la<0CVH^Fo0I=QV-o1*2bD?hn?bJuN?k;X)`rI}P zPFJ{1c*}pQN=&i*{1>U6i4xX9iMK+JS7~HVQq~jwH#ryV_2ZZh*twqJg=hJ5p-7P?#)=DPb#}&OO3XlUg9E*pkIDikG|_AbAao6 z*?j!4qP!{bFQ=%TiVs4ewZ~UgcwA7YxVh6mv{hlHB$@rVYq0B440YKla0iMacvtZ!Y|4(z{ERsq! ze&aWqr@mTeqAm>6g0JvA{C8sn9BGgLF!UQMFeBZn;%^CXH&p(MTypq>=J0E;PXoOU z`5B7;!t+4Ncbk77>HyG0{oZPvFqQrr!-ACi7xMJ$SD+by7QyeIf3JNiH9r{pGN-4a z#|G$O-aQpx5 z`P2}YIQPFbu1tWw;{UEm|G(c6Fk}4xZu|dUkb^sXB3g^n97(I3Dx?oe-MC>SS7Pef z)b(vJzs5(&st>y&pH$LYZ|UbL7VW5#$!E7`m{ z$tSWTa6<^Va6MgEU_hvi_GBs=&6%~iHqv`eqBWYKb5#bT=+qLd-4rk@-9}$e(90Dw z0bt@QPoI`ZHi)`Uo9SooqadF4E5l5k)=+P9@mbLdjNr`WZq)_TF=E*Or}z0G&E91x z2N6hXXo`qohA?aHF^fsToCD-k1DC@#)|Gpbh1yCCcv{#;Z&Sxq;GIT_Nh7|PRNN{g zD_!?iO36!F#}}Bf&I)kBi4&IQ{BdoER^VP?Z~;U{?+n$ zvj}22+Ij}Y*JHS)J0M1z=5!XmmkSzIh-ewQ?LFCysJ2I7H6(~;9tX~f>I3A2(@L4J z3o+sZh`K|i75qj^@S)!FbDdfKg7KFnvgH_a4hF{y>>2Sj_XRG5O|0XbKba}B1`E_z zEdD^;-j9}Zofcb$pgD678sPfHhnMT-3O+aw_-*}zE7~++&8HVu{^V-Lg%e~H za8Cl8{P9(N-11^b&WiZJ0b1R1 zTn>oY+rv^w+7fMI_auYX=p~fT4UUEBHe_yiE%~}#QL}iLnq5OHYUvULRsj2qSLW~8 z%;x&;@oqfA(>!SHg}kRx+OjcBk+G@Tp`+6)Z)t>!606koAx}5HR`AW(5};|Q)J+UPN*NwT zD{Jszo#n zB>cVK2xRJ^Abc^NxZQ`B!W-qc;!BtSdk#=906lt-Mby7E>E)%6vx z*nwZ!SyU5i9eVaP)zUkJJdIg;F(PQVG4qW2g>q)nU zTwZF}*MNPuz?sZquh=PPl*S!rp{tooYZjj+=6pKf$2)*)*Q%0rKUeWP7FKuAV-|U8lz{=75J!t*Tw;x z3?okqDHix$c|qVklWYgwBA;4D^|R(luZLvU0WO%ueEI-sjWm>}C^P>B%-rVX-QH=# z?nHXP0Kq&qohMn&lj|u99JBF_Bo{Q$9)*#+E$7kwATSQb&4oesOmxh8JG zbU>zgybZ)Hj(O=PSok_;!hNLhQ@Tf8VRbl=^3q_W|%`X#qxz0(W0h;?z}9A8G> za)iOwZAf**Jb~k<0IUueY6i{#8uC%4PU;m|~Y@?bN4soPMfjR`Amh z6Lz%8DIaPSSF^MEa=!kzic=S)f-|>Q=kzaWSm64(-si&s?_hn1pcPN}7!vjaJF_@m z=!NlgNRJjGai+!BG|I&(qBX{1i+NGzaPE|P==qm(+cfnd;y6m{?p?RNE|^ZcE(#_a zQX>xiFuArI^ds8F-eY7-jTY)^*X$K^PpfqUN=Ka%B6ElC2L0}yh*fL&barTEcUPsl!~rJeh8?`Il6==*V2lu7cE~vO z2d9A6kHPGpv>gBCQ)6a^O#H3r#SaQTqu4ZhQCa@vsE(04*ku$m8V1K=1I-D=bK7j6 zwlwMz^K`l=-m&FKpTSf;JvaHuovy?#CWNRAcC*<aXdTFGTD}E-T<@TbhlEC`7v~Dxbq-h z;pS|ygILA({fH?H=c!}!V{%Rz#cF6JO+3_Fi$`%N1bqZTVD7uNc|2jw6cCnJ#TqGM z1%40sw;E3H?LUivNV#0kf79yJwXu9_g?;7WSyg|Z%L}@aNn;Pz-pZ(n@kpv&pQ`sr zzGP~dn#gajKds>HMnE4}wsq+>9Hba%v&r8=AxYBQ2SBNOPUXfaPXitepSUewSuhl? zn4PmTvm5ZaNROBBTrfs1+aWegN@TLv$a5%PrrZRkG{mnGotEtq*&o~Cz8Ljlpq0Bg zv~}g6k(JrU2Qe)a^jQz77Z%nYr5Ee0s&EDcGc87UCO0QQ$Ax{HZpf|YgN%M?%ReR` zD&}2W6o>W5U~XhO%YZYzQ@eT~B5!m1L%RlNcN+fS3b0{SO5O+^e(!_DxkYS3aF~hbzd$nPIq~Nep}L@3f4wI zSSIq%e@tY$yvtLr&oyYTQ7z_vEwX{?GO{bj9Qdz$^=PYdWy;uK;~g1v0=dqa0#*-) zANR=z@3#|2+iXtRdGNDnID+AW!90x>&5@<|_JaAlL$NQrlTdQ<<$1et8swa#w7! zCDZ;Jr3D{9Y2V=C^mShb!!#-Ix5Y&lM29ab`d-`jg(OAoY^093YRC>{v!{f&oYuTV z`CAqZodxhDRfSsIm7HaADFtI1!vME1)?dRGjp&D{gsXJ>C0Tx_u(d_;)WeEWKDqsi z`mUu=LZ*>D0RJxI=SKU@Hd(xCSO2tEwoO-h2+%cQqt@$mm!1J0))~N-S|!YVO;dU# zQN>Ex&kvLGUyX5nAQ&>%Sc4B`Yw7yA|6I+}fJ`&1bw!X?pzaJs-*`f1nV|m>KGw)R zNtC-HrSzxMKmESCVl6dNuQ7`Tu%H1|8bA(dmV~3fk8n7KIq%`n+UUJt8NL;!o+M6D z3n-NWd|w6=$m7(85F?ko7jo~*5EtQ9!?JN^pNr?9UF}E6kI5w?m!}%C)!3y4vu;bh z2&XK#4G>>%=qn)Eb$Iae)60_=Ki~z`pHT| zFijcNu=SL-4T`iX+9q4QzLfY|`K zOQ@Tx+LdlSQ3K;c_GjW%z7lZzxp33UCj=Gks-Ki$Z`o}W z$ydpDde|*^`gOI1O?AC=jC-{a^GB?NUV&PRu?TCuC1e@M`UD8rU!O2|=P_@uJl@X& z#J%KjJ1>WIa1u$@DTIvLo5dzEEcU4ecAZc9H-htNmvnI_1M9v0VyoLRgT1g(1MCgE z{xEo!1lg-3Vzt^1*4KTiv!^3nA}dX?e?k&~Cx#C+AHp?ghw(@ow1mpmZ@(4syq za0Yk21f_~0Upme)$T?${E$5-|x%%xznVc<>E6Tg&v$*7~(62)auE>+9POe7<@4~Rx+p1zgUMR@>Qkm z{%6&t+**&GHmxK2SU)@XP}&{yQUei=9XJ@3L~e^G(-41HxDOQ=tAzWxYWQ~Tzz38( zzaEHDleLY<+x zgSYq0B;9>uy+`zQ5eCH1sPbL|RLB(Z?Q!D%UoEZaB5YN%J#9_h{ke8z)kD-^E0~i7 z2-8mXelN&N4p&L344V~QZu{V^zLKa){kjYBez8<$?6BBB)iC-VA{kMMJxA>abXn3R zPT@ThZz$JF>16>GQ@p~~djRHVdjL<(5URp4Gtj$&&6bvV%U z^5t`432VOID0B>J+WL}|n50cjGK#e`rTb0#zupxCaZagmn$D)Q+twACw?C1!^L0uJ z{XR~B1}a30y#LJYv1=jcQM=cj`kl(r!}zocdDk10%*r(I`w{PGg|TUbYIN^0 z^0UQ=%^se=y^j55Ag={xP1 zXN$M7zKX}DwBh-!Zpt55BK4EQMavHy`GUJR_G)IbhOScd-mtu>9?H4n8zm^efhevbUyK44=LkRIU+Lb4tuXR>z4(M*wmrW4J9ct zO6>SvM!#P3q8|O?3z?kksXRGYM(IQ! zhRSofGKyij1$bwr@1jQ59nvK;)wo+JThq^98YXV@X0}_nxTv07y*^6UiC4-$Rq$cz zw#UH!mz4)8Z#E(esw2wNMTJJob=wf-epB^1QTa}NA)&1e)-`k6fnwY$o&c2>1X`z{67yG_HRE5lIz%qMDaRL6r?_Md-?Ymsulkv)pwLP_ z#O^e}5_7u7AxwS7PVQ8_*XN5K_R4U{7#fWpbWBHQ<@@IjIe(^~{Ithrl1pE>%aCj_ zIJ#6wp-5?ih|)M2*lpN;=GFE@hU|w^j;Fi zsHKcfa zVMbX#*sYPFa#WLo>)2iT3wOiZ+dmg8U_Ea%ZF<@$kOvodT{c$?SW{e2@%c5}C1Z5S zfuVgmCS^G=Fx23ikZxl4#Vrg1`I5DelrG8{^X8AjjL#la1`kNXXTE9cNS+$&rGp52 zSA^ySg#u4Sn8p}>MJ%380bLM}&dd(*nUcX6b`8p8nehzKqqWhjnD^;6nTg{+4ElI; z#C%&GOtuvp$*do#-gDHI@=dbH-|(d6fR`a&OSi59edTxTdlCfUP0wre!B523usu6O zy(d4`%vh}s+Sbw|qt@dhe<>{Ibl&toh#l0klk-$ccpsO}S#1ncFpD_Ro>ds0@miRRE!NC%?~4J^?LDz}8jo`KWmQO6j_aRwgT_NugbAT^ ziSAe2xl6@CsYcoNTnzivCMvBm@{~gyk|N=(b~;O9T6q`*1SL4C0Q=K-Os z5#{?P)8T7Z{iiiO3(AEI#>(`4pBs6DnN;B+RaX;E9Gis}3KZ}jtIWQv68d%AI~J{K zez;v@(r77rv^9e`-pee=Q~2O})Hi=;Ok93(y*_y)#K;&9;4K2aOzH(m?xWU z?!Aq6!OVU;ary&0`L&B1B^)JFT+HZK*=^7`0&iHxE`h`fP!~)MOFR;~mgeT^U+tYo z3Hm#JQ%1VnWWPe+ZzLcMcD9XusCjng-O~VsPg2e+AM)qoL*JNSnA}n2y8px6dqy?6 z_3Pd!3N}E+3In3pf_YVX}~~8F5A0*?BVdYg|S~hRI@%<1om6MOCku(#B)E0y}7Mp zO4zGy-2zlzboq&4rjEXKxSJ&dF=Rfci80LJe1$g#h`*U8%`B*jtf)AjQ3^_qtK?bUf=rx%yuBek2yTbauQdq~^-n9LQSV&{WH z2~T|LDN@r_qW^&D?YbDq&Zzds<@Y%*v%^)@^aZi9!VUfI%kF!(Qh2OJwlp3Lv}hco zOrh?!%MY{9j@0{PkN9{#5gIN~%bl4qWW}wUI!l~&0%Hy)6M?*JRR|mZq@zU|c{w9n zy=0XlA)*%etC}t`N#Uu<CLa;z8@3wVR?)Ia9oo5Gg+zk^ zsUQI#h~rJT6SJ7(?X(K3AWlpzp@j2c=5*X-zbCE&9i)qx_Ul>lBm8jE%yhXnUvtx9 zZipDh#JkR19(~h5Fv&HNt(+)WKG56=4Y)1ou_Q>)%6_=iU62*bEOh-tzJi}vz&O)m z6mOsCHAiMlgo~j^Z_})kiKJqY`2*F7`vK};lnvXe%V}mUH1En{+b$jDDF7p8?x1gp z1V#h*c};qbXzIMPncFXl2JgM}!}8J`R&ZIje!sreBv4WvTLyBpY3qj2dHFf8YRk93 zGz*>h$PNQ4@9a-Hu^exeEF0a(N<}Mu^4GRDt6&jG>UmkMw#nf>mSe7R@OGQrzcZ^< zW~WaeinJz+M-g_@3B_Q-Xqjag3u(y^rmNrfGQ$$?W3zod4T+0Aby2NE#*8tRxcO8M zb*x}Wb)n_cd9S$fUAj#Sp?bXB*JeG{x2-hEmaO!!`!=FL1sS!!<~gN;P?NlDYZO(U z>+reFySmBAnB9YX(xpb}%$2itujlT_FRq&gqJA@m34HBFZ%6pGfPp^`1rNke-(S3BvuUTvWD z&-__Mv(xi_vR|ZMK+|-#*Pb+3BF|A456-EOywJn%5}_Oyd=|UARgQlmNo?C{@sjw!~xCq~q6Z+w`RF-eq%w%8|#^YHQ7;o`c6BL_3u&*tW(o?A5RdAmf$ z5S8L?^*B~12bl^fgzhNT@A*aqL!?KJJgZac0)I1^B9pMF)e2&Nt(I&F7^nv3W8N($ z#u~5r%vLu^#48O%^s4t)B4(ZSNL-6oPn#ILSv?zGTdJNr;L)ieHDB(k$UgrtW#;wC>r_|kOM3{qc2|_ZgBpJ> zBUVmhD$QT@qUzl)3zZYYZ4;t9xK*VY9?!Quc3L+l(pgl zpTPXEb2~A#K{OiIQhh!=SO9CiE9oihG~9K>O=M4Y*X03{!Rf+IQs4L^ zRjX@lD*lq&4Wf@Hn0Ep<@}4fGByHGsJw7jUMjeT|BIA1h-37jz`G%smwP3SeG@j9o8(Ks*99KVERTyrPQ9&zypC~&?OH? z4gCaLi*;rBJ`dGZUw9%ZkoD8mYuBz>8@i{gRvTbnV+zzx3ULVeoN<YTJa2;@*5inkFM>5NyAb^uU`Gq3zMe2i(Z7t zZ6l5wfBDmLt}1zdKB8D;;UN>$|Ly|^ANzl9V*gK{%&MQ`moH*#VYzyRiF97Xk;cYG zcKIE+HPV>kigYGbCoGm@p;l|>x}*=ZRdq7@l;n>#kN zbFRzc!^@n<_X8rOjdWK?Z1i+gm1VZ|RZk|Zc?%^^M{vz84z3)q8*MoJA`+chFQ@7e zD^~A!GM7XM0P#v*eNQJv*6%LB56*DQ!skja3uRVRuy=GCvi9w4q>duF1twxY5LQ}x zEF$^rFGOuXy!ZyI9cwJh%8{`tjBO=!yrMl>Rh6}3*wk{XTua3?Q_ZXsZ?N;tI-04> z6|82s7a99ahu9g^koNrrajX~kVozS=S1vFX=dfyv-WZ#I^~xkhE$JWzc(pg6VKhoh zBUJ@KL&*~Eh8G03bz%h$v<@FW%nl8`60vICSyHiE!>1{!SG`7HcT5!CI71a3d%i6A z<1`dqoj(?6Qf0octE8Jz^SJK$CNv~QgHt_*mqp;Cul`m^o@vS0ZXJ$iHuRFXu5P|5 z*L=Toc$SJ^6!4VWKk3+a`evci$lH3Dit!{=Iy05OQKwbz<2tK$(Wr|OVtnWPc3Ulv z*I#mAJ)iouL3WOfusRYX=(ZtsoUYD+2w)4PYgKa@SQI)I&;o;DX9N2yz?0L>SX2^N z^VTT`+K2P;i|~bb)g5>>EbLw39xZ)aGb5@cOC@fBF9P@3oY5pPs2z#5Skw0jeb@f) zkFW0JMS(U+`SCao6~7qdyYn%9xdW};p3sEFF-IwU^bmzqiTCCW(t_Hn(q^`PyV1{D>H?20FSu@#twirQru+ zS9SaeDMb{+^#XCJod3ikt~|O6f>SJvt8NdHPKzq6H#q(DZV$^7Kbt{evPcNwW% zPAbRorwBW)2DhGE@6VC9Z;j%r(9T(XW7!e^RYuvee*wWcer0)>cLRJ=!=t@(!t62z zz>Lbq^f{$@>~K!C8dT{1Xm&G_CgRH1uh$~FAbqb+UhKFX8gFVOPL@uaR7%SxyKBG3 zPtKaMR-S?1@AG?WT*l%9c@kWxkeX4k~+bB{6I|H%Y8)xpQ623a(_XW4wv!#S7 zm-pPB9+`nHYY};3kh)`)cl$nt#h;OPlRXd|?xI0%E>&Q@24QkkG+@IYGHP$z+TLd?sSwVD z)q&YM z(;Ws1O4pwLsNlOKhrxtC^!2S5fQAcNZS@xR^yEB2Zq7ZCkn%d=m$Hn1_1aVrl2vTo zYA$j4!9c=ke`2KY``l9h{PSjzRMyec`yb&D6S~>CS9kFqW@UCM+Ih?GMxhua&l|)Nq|}VKCR*dCvT*zHqHB3&IBJvVf&KN z`1XkkQ=zaL4=3IrUt@>E+)VHuZZ4?bEmevi5`1Yt7925phc9vp)GsIZ7U;L8cI-Pu_CEWN2(SZ1PK_jP z*3c_TSSsS|qi-GiFs-H}bg>1VpL`4w@>EfVN%EdGI+@*bBm%mx zU!>gRC#*Tsk$5wPg~wUJDxD?Ap*H~Q^M_mr}I9KkHB6hx9uv$k&N zxf;bt6`J^3Irav>JPkwmT$oOTMpKAj7-aaE^vt)PoQrEjoXU*fx?^bo9lyzm7;Lsi z()%JeNzaX1_q}5!VW$l~Pe6gAan;RQBi0~IEjrFi#s*a`^>j7b=llBF_Ha(dPa$`! zf_14qK9DJ@4OyLL|&JB}2MO>QC-np<|Zf^V_d# zTcAFxBhBdM?9WyDX;n$ zd@`;3bXlqN*@}Q^HnQj4BH$ZTU+EyPf=yhLskhMLY{Q0(l-2o{>mM@eYTM#??L$c( z0Nivs+7r?RP`lRlxEgK+J zT#ChPj@#4`dw=2M8if}ivc8QnXDe5VtvatS4wr`$(mF#*QE3?X2c^kOa>}FKAPL4&6rv{qVZKnov1c4WBzRY2;N<&ZM2H+@=krSq~F-WfZS&q zYgWJ7cS_EmqGS4neTcY6wR%l{|U z>kZr6p#!Xsp_cV}$tw2a22u8gU%s)U1cTi+HoYjtbByJNnYYX++|+P+(OBGTP5*m` zAXwrJ4p$q>IpV6TZf^aA4$WDadMrNwsHI2vFqqg44ZUCU^~R0C=SlI`F5wb_pc z(p05{a>|(p<%4B)bqBydoC25D_a!lPM$pT9Uu!r8u$S3tdjyGq)rn+KpciQl16-CA z5EN9CM0w3oCj$%8$aB2XR`m*5&px8IZ#%T|rC>`6O*RgEFraguq`< zT$#~1H&$($G54(ZZbOSS7m?pkf4IUCcHu`q_op@etU8I$!9Ic#N9UX5*qchgLG2a;O=b_K6xPy5_8LBR^MRT8y=pjNYF~4+6)h_uME7fs zxXwH^m80dVm;PersVbbk9%KIvEU}&AMNbR3z0_PN|CpONu$NVqAEj1g+8lAK$TQjW zywCD}bKJK<(G^e6s-KO>^0?xv&^31!Qmy(tRyJlvZ`d?ORE-I%q}U#P(s!#>qPg)+ ztwW#=jY-8)+MApMcXH)QREH~@mv3iA!@kG!Xn{?Caa#XMm45$%3s=)}%$oD0&oZk` zRTnr732r7e7H};_)Y@;dXtmH#P3V4|1zox$Y(?`Ko})V5!l5GeJ&z1a=NwRvoF4au zk)~Q5H|BRzg>2AKECRLWOufSX#&dogSx-wmFts{duyFzc@zGqogcBtu?q(@A|8~R2 zF&v@3i8qU&Z5wkYo-g4n2yJl$QaEC-RZAwScEg@pOj6Cr(NHAnobOL7Te?+``C(IQ z^!7a_5g0FEvqbF&M7_#QgQph`Z<7*)O>3MO4Qi(@BJF=+AN?3s=zsr21vXq8pt=Q5 zT$}B0&2xu9=1&u0$kj^Uq`m6RP13y61Puzg0nr0Zh4r=>v(@j;Ng@VKmrg12 z^pqX7e+VRtEI%bg+($BMw!iG{6+TIGA4MF!*_B0c$~1FLPhQ z(~h|as8^y835RIyLWA)sS+B8AIxM2(L*Gr_O@u$hLIw#Yd7Dq3JeiRZ7S?t>I&%y6 zo0NB<&M%P&rGZ?Om6gR-PPxpLAr>CdI(;CjWlO82$<$rWVNR-KVFfU6Fn{pUGdeqy zsKbYOc^l`s+YEv(^#3j2-RIY;EQAi zpZ>0ut=|6mXT}sDX4q}I>{qTr;Mvm;JLNOl-OStdyv1obqwqJ zC^iG=UjV*~Bv!d9w3NhgC-;|EEz3ph%J3kHe0=7YM|uN7jK(b{)a9MMS1*26(KI_< zpkQqq)b~wnoHG$$`TjP_y6Ocmafgi>Vf*KdXg>_Do;T|{^hN9+5e6rDgA%I%ANLSID(uc-0Mi4fvNoR^9O(V)Buc zJNB|5l5qQYM{I;QBbEQ1?pmQ+NE&jFh@p-96*>uiUteE}+TmQKTi6*T***3P;%@jQ z<%Ssb(*5BhBSCA&E4AS6h8l+1bjOa}ayR^~9+*~J?&}^u@zx%s?MAPD_H zqcuSGY>{sOyuhxs!$!ZBB6V2DYPZd*;DpG!2khW{7%8duK2tHGaqRHbDu@JJpWpOU zY~!nwt=puFmIF)DnqX6)5JapIzm=y_7*=tt7O}whG@D5J@>PB#!^JD5I(u+5QpQID zdD3NmIoA2p!ccL-8gRt8hk$8Pr;}HUGdpqq=GCDRo01ADMS4T^eb0Fhr6`FqrKFyf z*s$|_hWeDbO7^U{`&{YGgGm8#_nlG-?{%)WL@v{HwJ%rC3O(kt+Wao2e?BV$pj6j8 zsZDKDM8EK~+ZptfIOT4pvuuAlu&1V}PxrI^jjifnz6|z{Z?Fj%Jo10tN@@I^TiA;7xp2N|+*g zn>2dOpx9EB%)lznQ`oQ_YT25sv^w3+Yax^P7(*U?a58DnZhg*ub^l}7)brx3>Bd*2 z{@aWcc1yWGZ{S5ERpWfA`mF)VGkmh~*!agELHJn&zoQ{+%|V(lQWOGT#HhcnBcXtq z`oLpx%%1g(^x{>YU*B65Gu}dgVsY!x_~*~|&tZX~iQPUxvjNJ^(=+43na$8R{+JRo zG%**md4M*SO*TsE?_{?LUDz0N@seKlE=*64Q@f=~ta~bxR-(P6BOXb>vPN$4g`YYHI?~1W|x=20Le+YO*lj zhp+Y>gU4q^=zT_?5JLr@Cw&VH(=Q~seng1>}+|+NIM;6H!u^nuba;AtF!7)vcYBO{O{-j0{q+_1_rK#)=!!um)FK1kO&F<>_ z>YITat-`lb2j;9f&UI-(TfKCf?YSv6*zg-`Y3qDv$p#hs!{j%Fl4khgA*W2RkaWHo z9mH_^zr?~t{r1H)>x~VnxMDBg0D+#?>GrtJwYK4(*X^L!AZ0b~^Yn<%4um({vBXNY zLXcB1pdZEx&)3B!k*2z=y3$kLfiR1j*XG=r+bK8wEC1B(`!m3K@_@XS#64&J0oy}| zu=kfT&Uq2My=;QmErND#96jk9T?)grBoBdW_-q)nENXNGSFkY7!4GsMxbnsDo{ZP6 z!7$eLQtru4#R-U{X9B+IK6CqAUp}9i?|RD1moMWZ80hBuA`Ty29fDF-$Uu$@yAR*I zyt_da^?JsT;6M&dDR%8+A|E5d?WO_(>Dz13*$H?Nhvm}UZ9EUMFdpxWtCyeY*zH|l zm6&oTNpu~{jJNgboyd2?HaRr^WP^5;nQz!cWi~PPvEP`Duj-7q%Q|SCw8U_+wgG*u z>!kq5*IJJkOLCw9bU^Nm=5vB(k2aA1kV@HBeD^7k)2yZ+1v5a7Re~kJ&>z~cM zw(=Yk4@Domdj=wn^ZR0?SvqUtx;gq_fz3Pnd2++S5c_!^sT&u&%x=+*R*wzF@IG-} zvkeEt!=q~Hfu6j=oQ$jLDH2u+hwV=fU1XA~e|CFNxST**zwIJ9RPA0v7zt;CibmD* zzcP+oon{FavELUZyC0bcO85PdwIZ6t{=x&OU0YWbIcq7}wq%8OQ_uAtQICOYq zZ>IOJ%b{~au;RrwaeL%%&@Tc;8^}zOSE%aT}O? zdy4AynDwV5gy6E=eeLqb673nfQ6Dlxq#M3VsV$mYZNheJ*Ew@vh%Zw<8*jDCrPX1- zqYQm8>tzcD79~4rgHb6OC$4JibwE(H1qrMNDOyN8DDsGX_*~pgkw7K}RT3<0LgWsj z2T;DfXQ1FMy6q=PF3Wi7)@3TtV6Ct(!M0AqH?Uz4LRR#C(mFM|bP1~j=$Q&#zNA59 zK{i_~r)n}!*}P~3|EO2O>&@Bz#t>!MntB^&E&V2s#Y1PKJhU$fK9l?Iy#Eb|i;D1O zkW7eGhZwfInc&(@JkLj8=wxo)%UUYgJgj(vNviKME9KO%c|pM1IV53*3xw*Fhf9BM zKiOF$WOiwZSoY1ib2|6d>X1&O6S&sg3tpN;{65m&PtDt|j7EMACcKFT8@HB%^s|ZZ zmlPtL>h#6GSND6+QzBmFsqm#ig+wtQ-FFuSIDLHw!tT2~6SaE~!=vLrRWnI{dAHv_ z;;@vuMFmYL2tXL3)LCp$s*vsjtEw8?C*+|4EKFCxtX?!Eizc9cX9t*(BX$A9tI9Prkqg~8S9Vs1Vf z0r3cPX>{&9T~qVB^Ssjyj9iu=;(c4B^S}BRhba zO)CAs=H@=^qVSGdNhNN5Yoq3s^@X=5Vm`Hl*{anjAdsTu#(5INXuP3fspRi6b+zw>*jeU%S2nns4uLxL|-Va+!>8O*jmXI7#2cMh= zxv>xhR`jIi#4b+tM9z~J_Z(P|8EoM^Iy?ekUl%v`A}!)P+g7Lj5*t$X#t)V)zWdV2 zz^X?}Jkt=#@tT>-jDE7RQ66R2_Ld_uHd5mWHscis{tKnxZ5-IA9*aHiSFlDHrXD#a zq4`i!dGE9B?d|j7FH4Q@tVA(b^`)s?cN%{B*}WZwV$_bknV`nh>zYer95ZuqvPmNn z7<%zOOcQ%MxTDtG)Qbz5LSLl}t0D=}>4?zSS8@F0&gA*7!$&*B-<_*(j}Fi)G_dJP zZzjOoIhOdWQyH!<{h1a{Lx)eVs|H92f?bLGpxZ*wvB@FFFsryuuR|iKkF}5o1kXSv zlZ+5|m{7hOh+46|C_`mDsZiHV@OUkylN}+>@0@CU25}aMFBGV! zT2A~MeqH9~&5jZKyMlU;=}RELXC$$1iQGxs?x!mxQc$T!rq-XykY8fwZZ@YKcI??pfMD*?wAmH|KV=(?8c!tDJY1V{L|wz zJkm0#tDi(a5)e^5@wv&HENPDm-Yxz<%2AEft0&*#-X`IN?2D0@-RnL(@Y^)z?q;fA zjkCxW60}s~f3_UTBdMgb>WqCbCv6h+o_E6a-;@B$h*|_`FpR45{C_9`fZF^2s3;)j z`W^PQPy0`&+s>EVC4Osc?C=4Y{ci;8Hj1MN8@bPZ-F*mM2Uf4EsNK zo@J%fKrpY3RlR!kO6m0);qMXuOHKnNt)uwv9QSuL(a_H-TRrKvycbescUF93VU&xq z>G$Uu2pl?eD3T3IPx5+8(6s&NFj#4ziBjbzU`)(tWsw`nLusNWOiD?dA$8{~>mbrh z>?(14oDF;R_rOtK1*{HgOskXz1`e?EWL9jO`EUXDBIe$!C1IHFN~D=(OZVn9z|u8$ z_Q}^xjLyyheka0|p)$tSv>a%;t>H3tplIN+Gu^?c^Juk+CQW8=%eS>b5&MC5hM)^c zYw>JI(bn)UQq2C&!fH<2o=G4vqFZd$Zs#15Iujz92WPUJuJNjk5|Ef40B4<+ukwMN zi@`qX`1sGCbBkf5hSj|ntkY{bLXo_B?{!i)_zJ-h#}M4-u_*>?{yo#`Cc3km=73f| z;IbOM6!qv#+A9jMHU(1C? zlQ4kifB{_+eaM{ZCt?V|z$&0SVI$UM_^0{I0^$r}Fh?tUy6lj%5y7QsL@V#((1CfO zZ?RpUVF{}o#t@cOhOgcfMWhQ*a@TcUn_>igZ0_X5S9w9F-QOv6g9_h(s>P8q+>xg- zGXrKF2Zk~Uw;r505A@E18XZ$#cmL!&h_(gV)1H66%5UyL5B9bPco6u-=b9x=7Mgo2 zp9Ht^4_UMKfGKq`qmjBng6Z0wJKx97CWzYoC>@Vz6nK^Q*_24xL}OicMywik`N6TU zyu#S+XXDY5ao8PFW{9ms@j%H>webKJBA@LQ966X!CFeR^?HK62-RHU5GrO4ytx(ql zAxqt1Z?)7w8Tp%*&V!&bs z75h;-lrKoI@}j*P$Ic3Mew*>$&(bb5?Hh9q3BA#~TkM02#Z*}^yXEd_cfL7ODPiup z&FZIgP!HbKn842cUq6CcBLN@*kd41NIGL7c?u=T=H8lz_$ho|VMXO{v1&We<$4oR4R-offj`y2&8( zuxae<*rkDrgCtDp1E||ltfK@p*n7CnrVvmNA8W~DftYj>X_eT3>p&&~C_~s`WZ1Xx zFC=3{`M?R2mohZ){>jP9l1?AMs7srkj2Ct8dsN-9{I1ktbV#+3cH~&1FI?Gj(elxI zIT>Vbd=7zAk3LYKc-acg{sPe@$INmqtq9dYII3Smr~6ygDk3XU_W*=!3~2-aUSU1~j89TG|ufi{O1Lk;1+YB|J+f=r{|Z z3}M)vQT3fEdF%~{*5^_HQwv%yQ|0XIpWn6|xj|7#EYw()CGVW_sw+IjD$!C~zRIyk zp(YdDap^}7m*!p>ZLICun#Z`jDHH-BSnxp+0@ z=xUO>UTB^{NeejrWTdPdmh1TYT>C2Yy6xD4!M4lPE%6I*W3T#Ny~K)z8@&6*Rtm$g z2^7u^(%C}o2u8EH=wxYRzp5<0vJjB3Y)}u9=U8o3=bj&zdOXs3EgnpBZKzJ84vQ3D z@!7$r6eV`1NS?Z(Gf9S*TXQR6qEIwGMaGTO+;B*$%1x=~!>i75rYV#9T>(V#%;cH7 zKPftPV8&}D_4zu&>|2VJ<;Y_)T&me%>If7sRw1wJ7Ozjulq?PwwI`d6s|4)0>l>XD zQw7aGGoDP~b^uou^u_ALwQQ{@PysZY83WV=9CV8lEKE|^s&8?nL_D6$J*|L4L%Y!W zMa>S2fN`zu;r=iAH;wv#C-*b0f|{(?ye3hOl!SzF#S|cY+?GZV3DP$8!mtrJK}$tv zu+zn|;(hnCdc9VUV_SQYfI$^8l%^Jma6`4}nRSGNih-EpQ78qts+4&ataJVYMoPo^ zKb9ub**7mFms;2$lBKa|ltwru1{x-ta1$f|MCnXOGk$FAX|QV$32A{z*#z?!g~!wH zP6hJF+yG4g*8PY22yrUoerXA=L)iU2+No(h+BP9{d9)t6-swe0PtVmn8YDK0#6pGb zIZqJ;3Kv`AZwDYkX+DYE>d&!Y-iEiGLi}poLG_qqKc{gzvX^4Vw(NKCyazU3VVs^sY|J@y{eX27AHna7Zsvv6N-C@$^kb&w)*c2wCkC5 zMFY=LfHjoG8N&~_sGE8ZKR!NGRq^aL(!K-S$7tVQ+OPhyr)T$JK%Jp!KaQdolv_pn z=!)wQcB&td=5wD6a|=chl8^q!r1hgG<1RQ<^uK`xm!;2*A%m1we*NfBG*0Q?DvZgs znwxrRZK&fIU5{fqpL80GX-*1rdv(463BFbLUePW}{}h&!bZokUm}~t#kPA93kgXGk zW{(`nj0QbXt*=gwF}J$kcX4sqO3a{#tmLAVqBz~}Q;&k=0%$bx;Q+&&T|ZS{1dE(2 zcDy9icW)iEq4<{AkwZ;T83CcE42#UOE}zMT-Oo1mO^03t?Mz8NnM89H*5m2;1W})I z&@5sglP2^)q3$45JJ)b%?Bs|yoITZ}@=diUN=6147+~LO8}`%L2S+R*`#BKLQwXUT zRz!=kO~0GGz8<5ZL*h84)S;vv`AWHO8UWQ(`Cq?T&8-<=%6-I2E);O7l>o-#HOf<`Gt;tAr0 zOU<9NtK2!8uGFX}-(+vmX-E{`b*|o>z@Z&kTx=0pK&^2!=>qd4@6!FO1bS2Zu8pKkm#f z^KAKZFte-@s1SMQQPq%^ww-TB8@#28XENGRJhkupGs92Br+`8S(~ShfOHC65 zH`_}IZXL58S%^TI*QM0=0ekf(Eyk0e2v6y2Oo-J9+g`7bRfWEVv&{dXR=koZpuRgL zZ?KM!e3RsH-(j>kM>SQrKksfKB8$eiZ1O!w^_^N^By5E>heT8ShpLin#q<}R3YpUy zTz=LHt8*m10z->f@$Re>0EqH5AoC|$oq#uZ#O^MUS+fkw+9Is$sU{@<*n{^Ufh-VV zBqx7uQA}}88hbA_Z!fQQe?}7XW7q>aCZ)NXTGRQ)*o0j8Ah$~p(Pk4VrmfzPIXwl5zgIF@2HX}y?<$W>n*{_+)5;CQm+ zb-`FQ+>Xn+L8vjg@KIDbr2&l+q#%uuLCwWIfk0&o`MVg2i^0$u~7i?hb=qs!g{JpZjz@xNwt;l_6$3P6)s={6>tD>%szD{} z=!7B4pEBpzWle%+q*(Qo;rO0vs>rlhj=-=>d`1rsdh#8xoY}K+>1X7jSWo;5#^MDt&LH(wNQo)Ea$`|qp9-Cjgso-mGIimG1x<4N&?RQLY(Jw9_-ELA-!Rn||Y#KYSdW*Ev>s1_&6w|yo2*gs74k=Mo6?bp{+ z3m$ZzcM<=G5nho_IXP1NXDHRke_JQ`kN@dE6*K%780+u(K<{wr_qn7`2x>vqNABgSul7;%xn=)$Fz^n6HYFs$}3lq2V_FwPo= zgH-Wn*{sZA*Zr%{(x16?z@Pu0X`Fxm75`Nw_08e9n&4rGvGSF$+J2ao0rs6262GNhCSvqaLAz} z=U;c;UjlGplug})Iuw){5o5?IG0~u%5r;g)F4idqnp*fh&-2^>UyzcD*Z5Y7?>B;Q zRibpHh)R3x?f6Zl(Io*nJ($vb!md}ag&(5w&W5d;@#dq7Ry)A)Z^$UabA3){sK~9t zxE!+x9EZ2sGcx}fGw{z;e43w}ho(r#yI?+mIMOnA?0C*!$*V*F;XfdehuJ?TLFcj7`bUm(x;Xy zqBtBFdhXE4FhzY<*J=DtN+&Dp6o?RIza*5A4SP{ z4Dc^bjXnwJm}P@pp5?xC=RWvb@;-TDeK=21cq^B@cF7rjFjRuSo|?OP8&X($yOXq@ z4DuVDfCqT9QI``xCOM&CRIwONDNT}L+DirNE5(E|83Sgvl)>cFge}6_JSG&ypk~2z zOt&bjbr5r3m7pe$-*i}`ap_Dfo9{eUH?XrF8OW;>Zmq_woTg_M?c89-4m#6t&_jwR z{sjU6V?HDP?=c@VPWG~1*k=#ZEnuglHtckGRSsn8EPKL&ra}0rV z>0r!oigL z-Wo|W2lu|}^3n9>->&|l`6Oq*@Y@z#ieagRZSTJl+rU21G0Pzxn3@Zmxz06s>e|*n zG7^gDxShm-*}-iDN#B{wa7DP;F2Dq|#wlY#3CVng16CX}`;p>WfR;=OaH~(QZs7&p zAb2V#6u}ONaH`*2o*&*`$TvrM_9|HIITA-J&<@x&LC|9d8!Zp=7JTv!xL=XKDFSoa zC{92T@Cn&;1}R2)6~apIe!F0O0J1}E;pxPr(z%6!$$1=E#PMK*{O*lhQGIIYxqhF- z*Xz3y)vR(0`<`aUFRv+>0iZmj?x>tO*4tqpn2z36#n$jz0bz7s4u&@x`DN@Z$Ze5| z{|{&YiYO!M)Xz#emG%b?fDKzy)&Fsv{4ZA16M-477H&I<;se=}x7PVx zV8*f75YS)FFu-|qEwl>Gm%LroMB_W6JD4tkt|Jp6m$i>iK$B*(pkv#!p)zFQ!eAAs z<#z;vCr#a$-fISkB}*9OqA$JlKz3A93-`PfXlJ=izA}7gqi67pAaaJCB=c{f1_9ti z!$Ps^ekz7U_kBFJWB!jIpmu+GZaIQ2QpEm3f&?PjTgK+yRM&Yx+fz~mBgz5A&0%Tb z$fYXWn5!Ca&Za;BsQo$hPr6oR$=j;Qw+y}NdQG}gCAmOXY~)vGhFdW6f*7X?;vhG# zUjFUoxwScv=!->oB*F$K2#T*C`6LK&g}A4Kn_`~s!%C8lVbD1AzlWNHw=Wlc*y6rWTtM% zhYjUh*}+%*>FT_Pj#!oGTPZ;kg>yLc9;=JPXWt-doyQMRg4ngvQ__UqtZZS2-eLI5 zUit{CUw^J^r!u9G`N7@Th|k23OCV_EbVjye`Oz_nHaRF+djHvZ#$KJQr3MXGOEf=u zV=?Yeia?nXE+EXQr(muU4aA8>ECn=yZc{Bz`~6h8GSGm}%IF-tdJ=y=VxbbGF2Gmp z!}$ih6Srd>O7uN}3=&=jhRmdJYoUZ8S0FnQ zdW{9Y>z(<`CGN!lU%yqzedw&o=KjQUdFv)Rs;AIDRp6|%Ej5~1OHmfh`$8E<++POZ z;h*B}$#t#X}?<~wi_VgsjgiRZy4vRR@i(%M(15VCifkUM#C%LNOV^I z9^MI==Kx2ns^&Y}{RHX!%;pA!&TsnNy73Dsxer(a!}>j^bZ@CA@3cQ^o3P|PR0FZL zkvySsFt!WXzxwyFy|#d^!KKF>)|(l!02qGwGYsww@3{Ny{K9CBnd{7{G#>>?eL`qxktlDRSlR#(w$fP zHer>cfPOQmxhcW)5;KJFKd9?D@@_5p2Zx{2rKt)qnR1H%++d3BK=F}($7HN zHejN39NP*HKV7m&DKYZu;G&ohk-+^a;rnF%;~k~G*Anzt&J>}7-bSHX8z0Cf^}L|; zy(E<26LOl%gnj@pz-qMGucN5CK{IQ0H6VsFg*(NQIL4bhkQaBbSNIZfYGerxnHRKL zii2VC@n=?)u?aM<;V}Ofo)>PlQ#*`Q4s{r&w;#IGyt{*AMPcttAeG&y-a?_+e+=xx zl!2Wv70sbyt+mnXpGRX{M*6`_O};O&Klzj`3zVf;E-i3tew;|*RFeg^zX7i)=>gp^ zzsW|D_(00h6Y&Flnp^xr8BM?p>eybtlj2kb(pep(L*F5PLs#8B%fj#k!JS zyKK%Xl(oYarY%g4Mj=x!l>dnz5U@nGC~MN~dlzpBFN!#h$h|wq&+a}aA_61ze9}k= zRTkLvl`$Vx@04_()03VVYI4l{6caj7KsEw!4kOWuhKfBnmhm6Mxm`?PezDV;9FvM7 zsg3VgYePK!qM^bO`!cD#>0e+tZ_#pRN|;=oX|*aiMD>dcGzWaVOj=Ua$=H;Temyq7 zBmKK$|6c}`Bp8dx=Q#?-PobbAV?(XG*Tu?;B6ywxUCy^cI0R>wVTz}kJmT(B{vu^ggHPwsNCg^PY!xCY#S4c(Cd~SZ3 zB1hIQsbx@R`3$;4#^_c*c%~VgZAF+UCuqn}Sp*-Re)0|4sv=#Z)Rp`+h!*C> zPz7&=s|SbjUyB3-IeV$Y$&pW`>ddE4KgPVV8Pz4qOUDX6e)(4y!}0fbucg>wjO3KE ztwWvC#JrLVvXd^+nR?MfAa`$Ftl-%TvG-aL@!^)%#ai~li$Kv=rcqcNDC*2dJt0?& z>rvX2vL1h3&S8V>B<^^>sFGVt-sM8c<)iMVq{ckvcbOyz6RLLu3&dFU62~k~%9 zb$PTp!-1xDI${Q$J^R-c0VCRfCU2*ss#PF*_4j{b{~YoEucr0?ZWR7+8YO5cKluw? zY1cn)To@m7&Hqce`BC%!pi8OyZ3!jba3-FQ4d4XVFq{*nnHpa}uARmj{aAKYeZCYJ z>nQbkgNi=#@B0`2$Pp8$Nc}(GbSHK*>gs>_r2jV;BK%JkjDLM5|5J!ygi<^K5`OLV zz!jKC|2Bidfi5`*Q=$R}UF(kXXiXFe`rW+o9QW-SFCWcONZeoS9cZ=ZN)mOB0N1}L zd&N~)ERIwey$A^4uxJY2xG>TG9x+9^nm~SMEfO$xO1aQbmM8~Z)9D1~$iPEl{b1Fx zY;V9#EhLmgtYSVkHWnBn=6{>~`D@=l}jDJu?2x)AwIb?P8k1s23z)2{Y1%E0O?#)Xs3yubkBY zw*Kn@!mn3%vGkQ!lwoE%YlJ7G-liWaA|0uuz~U)QMF~ z+f@g1ODlNFsAYHs@stmQDVb*>Cls)cNQ_)+LJc-lVq*aGo5B$AQ8HcXWBYaGe4Fgm27v?YKj4MsyK~w(U|Z>R-FDqNWB8!L{2FYSDQ z6E;4;b~V9u88Hakv2)C5u4CZ5%iU&NUC59|93?uu9Fp+W}H z%`ctzu-%~Tf!(t}4v-#*`?vHeK>fYOT(7;k0)1ZvCSHAg_J|X32mVarm(?<{VwVYe_c+5M7A>{ZQa~cgDx!?CN)QxnA&ihJO9-PvA?zU_5T>bCUP}dw(l?jgapY zV8dafeV48S?F7DIl-@Y>%*7-c|9&bF6cS1WDrNk!iN_$hHs_THlLlCD$>1^7HPJ&W zCp+&LNx!q)C(PP5)uZx$+UC8ey{B1MiY}L!dY_?cm>|%k88&T1XtwEL5|%mYIMrEa zfMDG@>^4hRVjplFDY#P^;bBo=aA98M4A&Rx+x76l7O;+DdVxSyUSCC^a4tH0kq#Y> z0Nbr`p%s#QPH5OtmW0KtE;^?!$wj=*KIHJ)Bv%2Zfq?rzbemc{6%072bP$D5Uo@fJ z4c}mEo0}#*GfGq?lvqBIa}7)xDjP-90c}+hxQ#xkN<^d^DjLPh!_?vjuHfc)wFD7j zQb5v;VYJ&-FZlwSkA!{?Wr&I)LK9M$$xNVq8>CkPxwlU{1%QgzdH%jZ&m~9KbkAW4 z)xK>Z1gU!h5sSX^m&00`w+B^CfDJLD;RAk_3z9Rsci-znl!HRU%LWRBuNLQ{G>tBP zE}Rj>qcMqBc67LZR`!sS@i?Hdamhvp%^$~|#hiar3Lv=JXDmlWYZFpN_tUc00>9DY z&{1d0uyNiU&!GhyqvVHeajW$FGY|kSnL=v_5~K}RCIv^Vvgk*q5p1B*4IPBv41GOz zEmJvAqZYIsK#BD32s$|jh~js>CLC=I3UNdGB^*|n;om)}x_2Il4tM<&KevNJ&(Y;2sQma3CQO=qqA zmSSC%PVnTfD2|tK^w%XSH?*yI6{p{^HbykchMD}(sq14YYx1=g%h!ycr{mPi$J2Bo z?@bTx08pp@!X!SLA<>#}($!_2^y7MaHB4iN&0EHNPwI$Gt==!8b(&wIu`hv|3{TGT zu=i4?UxsqRUQRM3a_YjCVtL-2m@j86Bhp3S)W1YX(IptDPPhbLQ)Jq@D|Ge!-QQ$39mqo?tUqV1qhM zhB?E)itSsTcLwEFwSB;p{|68to@Q>PSLxQ_1imO^S<;x=e+N(Hx$yLfsRcON)-+ep zQQze`R7h^Os|o2yLkAfN6Hm**@^_R+g^nCB6o3mB9M>=$5?rLl8y^}804)VF58UAiE z3eqUDrZ`+aIo{N8(Y58q$qf!B6}a#<%;Cy5tA*4a9fCNPeJu)^b2Bpxh?bvpWH~Q6 zjEpDCAw8xT&>MqtF^PN2m+Mhp6aCe`wMJ11&k~l& zOM^ky`YdX25-4VgRo_KYo`O-t-1F{Mknm3+E4wFx9|5bPt<|IS(k!Etu26P?oPaW) zUJE&txFY1?Drp3ZQRP!gEW0TX?K5G{J0SH~iWc*L$km*d?qa7;@3OdlfF53WZiVm^Y;35X1H??!1w4vnw%lb4v{j^hL(;*2Aw={W&?TgBiJM(K0%E>?2@a6v&n@OXKNM&P`Z zHt6-RDF+dwrDy6~^Br<%+O8w46S)C-6;NbmKmsHo1!fy{>GS&{7n&}=UWo45o?6TM zDhIZ$@t<-uA++F-MK}v}g{N3z6Fl| z1vhqcJL`C4q6O?BS$Keo^32wIb7q#r82gd<`4l2ShE zhdnY(iykv6nacZ1P*vM`WGX>>lJUkHjtsh@2#gLH#Hp{JnE5qHJS`C%=WDvK^_XaU zY`?+e+1(WG#*Ot`G5vRzuup+9*CzN96z z%WgSHDER}Qzr{p1J}mz8`A}re^Rax?7QorxUbxx-utbXhRai(!Z8u_Yh4xV}|~T&cIUdeL~iVYsz3wLXliTdVvEq#V!AdigMh0UX*f zEC@Xz`l?%mC5sfP@MZ>Eh(F;d8gl1F9U`ijdE_X%Ss?~Q1i=(bcn1ru>r4Yrql)_L6d#^B ztF3OKgpShbUvS{3V!c*|J6;Wl(*2>^M5FPTwilCO`#qW6ZK&lK6tQRznu>BCTtlbZ zlSbg_122u|Em^*`m#gv_Hl*zgs%35YG{w4T_3)w%bc16LWopdu--AqRjC2JKUJMh} zTeB$QwZDBHz21L67^~qa+p}W^o*1-Q9$NzQB{cMLC*EV>xhmu?gonb2VNbI*?F(^U2mB43r+?VkII zSfQg?o*(c`x1$Pgq7#v4rb||z6=c~i zcE7}uDyvAhwmP{HUbeFFBr{fMH7$~LI7{($)GOVykB%<1a$f|apUi$NKK{#Z{{l&f B6YBr~ literal 0 HcmV?d00001 diff --git a/packages/netskope/1.0.0/img/netskope-logo.svg b/packages/netskope/1.0.0/img/netskope-logo.svg new file mode 100755 index 0000000000..cf1c8bcb3d --- /dev/null +++ b/packages/netskope/1.0.0/img/netskope-logo.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + diff --git a/packages/netskope/1.0.0/kibana/dashboard/netskope-0f68b070-71f8-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/dashboard/netskope-0f68b070-71f8-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..23c328b567 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/dashboard/netskope-0f68b070-71f8-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,152 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"quarantine\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"quarantine\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6fa82f60-f04f-444f-ba2f-00773e1e6108\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"6fa82f60-f04f-444f-ba2f-00773e1e6108\",\"panelRefName\":\"panel_6fa82f60-f04f-444f-ba2f-00773e1e6108\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"4652af1f-2400-4b6c-bc5e-571191e2a14f\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"4652af1f-2400-4b6c-bc5e-571191e2a14f\",\"panelRefName\":\"panel_4652af1f-2400-4b6c-bc5e-571191e2a14f\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"45c067c5-0e47-4988-90f8-fc788f006afd\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"45c067c5-0e47-4988-90f8-fc788f006afd\",\"panelRefName\":\"panel_45c067c5-0e47-4988-90f8-fc788f006afd\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"a9793bf2-d220-4b8c-a5b5-ce31043445f9\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"a9793bf2-d220-4b8c-a5b5-ce31043445f9\",\"panelRefName\":\"panel_a9793bf2-d220-4b8c-a5b5-ce31043445f9\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"feaa25d0-fc21-4688-ad80-aac792a6f5a7\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"feaa25d0-fc21-4688-ad80-aac792a6f5a7\",\"panelRefName\":\"panel_feaa25d0-fc21-4688-ad80-aac792a6f5a7\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"366ab0ac-ca2e-42af-a6c3-ed7af9892b33\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"366ab0ac-ca2e-42af-a6c3-ed7af9892b33\",\"panelRefName\":\"panel_366ab0ac-ca2e-42af-a6c3-ed7af9892b33\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"afe687dc-fbb2-4277-b415-2d63dc660034\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"afe687dc-fbb2-4277-b415-2d63dc660034\",\"panelRefName\":\"panel_afe687dc-fbb2-4277-b415-2d63dc660034\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"84973327-83fa-4d3e-a605-942aa2f8d165\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"84973327-83fa-4d3e-a605-942aa2f8d165\",\"panelRefName\":\"panel_84973327-83fa-4d3e-a605-942aa2f8d165\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"b4492c2d-8d65-4ba1-88ff-477837e47ba7\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"b4492c2d-8d65-4ba1-88ff-477837e47ba7\",\"panelRefName\":\"panel_b4492c2d-8d65-4ba1-88ff-477837e47ba7\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"1ff971d6-add3-4c2e-b392-13c5487ac4ee\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"1ff971d6-add3-4c2e-b392-13c5487ac4ee\",\"panelRefName\":\"panel_1ff971d6-add3-4c2e-b392-13c5487ac4ee\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"1f30c1e5-042e-48ce-99e5-5f1fc9e12d12\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"1f30c1e5-042e-48ce-99e5-5f1fc9e12d12\",\"panelRefName\":\"panel_1f30c1e5-042e-48ce-99e5-5f1fc9e12d12\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"e9392a59-5f4d-405d-8779-6b1400c25493\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"e9392a59-5f4d-405d-8779-6b1400c25493\",\"panelRefName\":\"panel_e9392a59-5f4d-405d-8779-6b1400c25493\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f722efca-df82-46e8-bb4d-8217b1fac3e3\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"f722efca-df82-46e8-bb4d-8217b1fac3e3\",\"panelRefName\":\"panel_f722efca-df82-46e8-bb4d-8217b1fac3e3\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8c4361bf-c0be-44e9-a898-0f2de9b10187\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"8c4361bf-c0be-44e9-a898-0f2de9b10187\",\"panelRefName\":\"panel_8c4361bf-c0be-44e9-a898-0f2de9b10187\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"a65412a1-13cd-40ed-900e-4fc49f388ee7\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"a65412a1-13cd-40ed-900e-4fc49f388ee7\",\"panelRefName\":\"panel_a65412a1-13cd-40ed-900e-4fc49f388ee7\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"eb9e1079-4966-4ae9-abbf-e0df000f17d6\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"eb9e1079-4966-4ae9-abbf-e0df000f17d6\",\"panelRefName\":\"panel_eb9e1079-4966-4ae9-abbf-e0df000f17d6\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"d726178a-8c9a-465c-ac2d-974f77abb85f\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"d726178a-8c9a-465c-ac2d-974f77abb85f\",\"panelRefName\":\"panel_d726178a-8c9a-465c-ac2d-974f77abb85f\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5d065d8d-9b03-4707-9c50-4b655a013932\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"5d065d8d-9b03-4707-9c50-4b655a013932\",\"panelRefName\":\"panel_5d065d8d-9b03-4707-9c50-4b655a013932\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5da4dcb5-1642-48d8-8b08-cc24ad43f53d\",\"w\":24,\"x\":0,\"y\":135},\"panelIndex\":\"5da4dcb5-1642-48d8-8b08-cc24ad43f53d\",\"panelRefName\":\"panel_5da4dcb5-1642-48d8-8b08-cc24ad43f53d\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"65a1d845-2c17-4bd6-8cd8-d8c651d89bd5\",\"w\":24,\"x\":24,\"y\":135},\"panelIndex\":\"65a1d845-2c17-4bd6-8cd8-d8c651d89bd5\",\"panelRefName\":\"panel_65a1d845-2c17-4bd6-8cd8-d8c651d89bd5\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"b2f14091-11cf-492c-bd71-06a8096e4cc2\",\"w\":24,\"x\":0,\"y\":150},\"panelIndex\":\"b2f14091-11cf-492c-bd71-06a8096e4cc2\",\"panelRefName\":\"panel_b2f14091-11cf-492c-bd71-06a8096e4cc2\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"e0331a0a-3091-48e8-8591-31ed4cb1e001\",\"w\":24,\"x\":24,\"y\":150},\"panelIndex\":\"e0331a0a-3091-48e8-8591-31ed4cb1e001\",\"panelRefName\":\"panel_e0331a0a-3091-48e8-8591-31ed4cb1e001\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"99617f89-4bf3-4426-9d51-d486cde5c8a6\",\"w\":24,\"x\":0,\"y\":165},\"panelIndex\":\"99617f89-4bf3-4426-9d51-d486cde5c8a6\",\"panelRefName\":\"panel_99617f89-4bf3-4426-9d51-d486cde5c8a6\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"44f4cc45-f34e-4034-aa95-aab9bae9be7b\",\"w\":24,\"x\":24,\"y\":165},\"panelIndex\":\"44f4cc45-f34e-4034-aa95-aab9bae9be7b\",\"panelRefName\":\"panel_44f4cc45-f34e-4034-aa95-aab9bae9be7b\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f01b8e09-267d-433e-965b-20d3483143a6\",\"w\":24,\"x\":0,\"y\":180},\"panelIndex\":\"f01b8e09-267d-433e-965b-20d3483143a6\",\"panelRefName\":\"panel_f01b8e09-267d-433e-965b-20d3483143a6\",\"type\":\"visualization\",\"version\":\"7.16.2\"}]", + "timeRestore": false, + "title": "[Netskope][Alerts] Quarantine", + "version": 1 + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-0f68b070-71f8-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "netskope-f96d6680-71f7-11ec-8c4b-cb281099ee02", + "name": "6fa82f60-f04f-444f-ba2f-00773e1e6108:panel_6fa82f60-f04f-444f-ba2f-00773e1e6108", + "type": "visualization" + }, + { + "id": "netskope-8c226d50-71f7-11ec-8c4b-cb281099ee02", + "name": "4652af1f-2400-4b6c-bc5e-571191e2a14f:panel_4652af1f-2400-4b6c-bc5e-571191e2a14f", + "type": "visualization" + }, + { + "id": "netskope-bd2879d0-71f7-11ec-8c4b-cb281099ee02", + "name": "45c067c5-0e47-4988-90f8-fc788f006afd:panel_45c067c5-0e47-4988-90f8-fc788f006afd", + "type": "visualization" + }, + { + "id": "netskope-5b54d5f0-71f7-11ec-8c4b-cb281099ee02", + "name": "a9793bf2-d220-4b8c-a5b5-ce31043445f9:panel_a9793bf2-d220-4b8c-a5b5-ce31043445f9", + "type": "visualization" + }, + { + "id": "netskope-5f452920-71da-11ec-8c4b-cb281099ee02", + "name": "feaa25d0-fc21-4688-ad80-aac792a6f5a7:panel_feaa25d0-fc21-4688-ad80-aac792a6f5a7", + "type": "visualization" + }, + { + "id": "netskope-2b81f870-71da-11ec-8c4b-cb281099ee02", + "name": "366ab0ac-ca2e-42af-a6c3-ed7af9892b33:panel_366ab0ac-ca2e-42af-a6c3-ed7af9892b33", + "type": "visualization" + }, + { + "id": "netskope-ca5610d0-71da-11ec-8c4b-cb281099ee02", + "name": "afe687dc-fbb2-4277-b415-2d63dc660034:panel_afe687dc-fbb2-4277-b415-2d63dc660034", + "type": "visualization" + }, + { + "id": "netskope-9b93d9d0-71da-11ec-8c4b-cb281099ee02", + "name": "84973327-83fa-4d3e-a605-942aa2f8d165:panel_84973327-83fa-4d3e-a605-942aa2f8d165", + "type": "visualization" + }, + { + "id": "netskope-7f8d83c0-71db-11ec-8c4b-cb281099ee02", + "name": "b4492c2d-8d65-4ba1-88ff-477837e47ba7:panel_b4492c2d-8d65-4ba1-88ff-477837e47ba7", + "type": "visualization" + }, + { + "id": "netskope-37409a80-71db-11ec-8c4b-cb281099ee02", + "name": "1ff971d6-add3-4c2e-b392-13c5487ac4ee:panel_1ff971d6-add3-4c2e-b392-13c5487ac4ee", + "type": "visualization" + }, + { + "id": "netskope-bc859e60-71dc-11ec-8c4b-cb281099ee02", + "name": "1f30c1e5-042e-48ce-99e5-5f1fc9e12d12:panel_1f30c1e5-042e-48ce-99e5-5f1fc9e12d12", + "type": "visualization" + }, + { + "id": "netskope-4a1cfbc0-71dc-11ec-8c4b-cb281099ee02", + "name": "e9392a59-5f4d-405d-8779-6b1400c25493:panel_e9392a59-5f4d-405d-8779-6b1400c25493", + "type": "visualization" + }, + { + "id": "netskope-55b418a0-71dd-11ec-8c4b-cb281099ee02", + "name": "f722efca-df82-46e8-bb4d-8217b1fac3e3:panel_f722efca-df82-46e8-bb4d-8217b1fac3e3", + "type": "visualization" + }, + { + "id": "netskope-26d9c5c0-71dd-11ec-8c4b-cb281099ee02", + "name": "8c4361bf-c0be-44e9-a898-0f2de9b10187:panel_8c4361bf-c0be-44e9-a898-0f2de9b10187", + "type": "visualization" + }, + { + "id": "netskope-a4745040-71dd-11ec-8c4b-cb281099ee02", + "name": "a65412a1-13cd-40ed-900e-4fc49f388ee7:panel_a65412a1-13cd-40ed-900e-4fc49f388ee7", + "type": "visualization" + }, + { + "id": "netskope-7f41e9e0-71dd-11ec-8c4b-cb281099ee02", + "name": "eb9e1079-4966-4ae9-abbf-e0df000f17d6:panel_eb9e1079-4966-4ae9-abbf-e0df000f17d6", + "type": "visualization" + }, + { + "id": "netskope-8705deb0-71de-11ec-8c4b-cb281099ee02", + "name": "d726178a-8c9a-465c-ac2d-974f77abb85f:panel_d726178a-8c9a-465c-ac2d-974f77abb85f", + "type": "visualization" + }, + { + "id": "netskope-cab84db0-71dd-11ec-8c4b-cb281099ee02", + "name": "5d065d8d-9b03-4707-9c50-4b655a013932:panel_5d065d8d-9b03-4707-9c50-4b655a013932", + "type": "visualization" + }, + { + "id": "netskope-1b3226c0-71df-11ec-8c4b-cb281099ee02", + "name": "5da4dcb5-1642-48d8-8b08-cc24ad43f53d:panel_5da4dcb5-1642-48d8-8b08-cc24ad43f53d", + "type": "visualization" + }, + { + "id": "netskope-f4fb96d0-71de-11ec-8c4b-cb281099ee02", + "name": "65a1d845-2c17-4bd6-8cd8-d8c651d89bd5:panel_65a1d845-2c17-4bd6-8cd8-d8c651d89bd5", + "type": "visualization" + }, + { + "id": "netskope-8efd9840-71e0-11ec-8c4b-cb281099ee02", + "name": "b2f14091-11cf-492c-bd71-06a8096e4cc2:panel_b2f14091-11cf-492c-bd71-06a8096e4cc2", + "type": "visualization" + }, + { + "id": "netskope-7edc5f60-71df-11ec-8c4b-cb281099ee02", + "name": "e0331a0a-3091-48e8-8591-31ed4cb1e001:panel_e0331a0a-3091-48e8-8591-31ed4cb1e001", + "type": "visualization" + }, + { + "id": "netskope-662de6e0-71e0-11ec-8c4b-cb281099ee02", + "name": "99617f89-4bf3-4426-9d51-d486cde5c8a6:panel_99617f89-4bf3-4426-9d51-d486cde5c8a6", + "type": "visualization" + }, + { + "id": "netskope-d1189e60-71df-11ec-8c4b-cb281099ee02", + "name": "44f4cc45-f34e-4034-aa95-aab9bae9be7b:panel_44f4cc45-f34e-4034-aa95-aab9bae9be7b", + "type": "visualization" + }, + { + "id": "netskope-b0b26610-71df-11ec-8c4b-cb281099ee02", + "name": "f01b8e09-267d-433e-965b-20d3483143a6:panel_f01b8e09-267d-433e-965b-20d3483143a6", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/dashboard/netskope-1db9af70-71f4-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/dashboard/netskope-1db9af70-71f4-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..ec910490e0 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/dashboard/netskope-1db9af70-71f4-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,122 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"Security Assessment\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"Security Assessment\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"9ecea79f-aedc-4c49-a78d-113c35d00646\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"9ecea79f-aedc-4c49-a78d-113c35d00646\",\"panelRefName\":\"panel_9ecea79f-aedc-4c49-a78d-113c35d00646\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f7136693-69cc-43e0-b9ad-3b975bbe830a\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"f7136693-69cc-43e0-b9ad-3b975bbe830a\",\"panelRefName\":\"panel_f7136693-69cc-43e0-b9ad-3b975bbe830a\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6a352e9d-2bda-4c4d-a65f-70086fe9e098\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"6a352e9d-2bda-4c4d-a65f-70086fe9e098\",\"panelRefName\":\"panel_6a352e9d-2bda-4c4d-a65f-70086fe9e098\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"48681f61-2ad6-4dac-aafd-895b2c267d93\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"48681f61-2ad6-4dac-aafd-895b2c267d93\",\"panelRefName\":\"panel_48681f61-2ad6-4dac-aafd-895b2c267d93\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"414e518e-6119-4905-9052-0bab7a7e53c2\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"414e518e-6119-4905-9052-0bab7a7e53c2\",\"panelRefName\":\"panel_414e518e-6119-4905-9052-0bab7a7e53c2\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"f52d5fe1-0317-4341-8828-34c8eb20e6c5\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"f52d5fe1-0317-4341-8828-34c8eb20e6c5\",\"panelRefName\":\"panel_f52d5fe1-0317-4341-8828-34c8eb20e6c5\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"dedb010c-aa2b-4849-a123-01d05df8391e\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"dedb010c-aa2b-4849-a123-01d05df8391e\",\"panelRefName\":\"panel_dedb010c-aa2b-4849-a123-01d05df8391e\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"769bdbcd-f96e-41c7-ba73-76bc435f8573\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"769bdbcd-f96e-41c7-ba73-76bc435f8573\",\"panelRefName\":\"panel_769bdbcd-f96e-41c7-ba73-76bc435f8573\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"c15e2f15-51e0-450b-8b65-68ad53160156\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"c15e2f15-51e0-450b-8b65-68ad53160156\",\"panelRefName\":\"panel_c15e2f15-51e0-450b-8b65-68ad53160156\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"75d0c42b-7852-4914-95e7-6d2e92b99bd0\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"75d0c42b-7852-4914-95e7-6d2e92b99bd0\",\"panelRefName\":\"panel_75d0c42b-7852-4914-95e7-6d2e92b99bd0\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"abd95a27-a1f0-4808-88fb-3bb5f770f543\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"abd95a27-a1f0-4808-88fb-3bb5f770f543\",\"panelRefName\":\"panel_abd95a27-a1f0-4808-88fb-3bb5f770f543\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"15c3b9dc-93ee-48ca-a860-fd4f1b768c4c\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"15c3b9dc-93ee-48ca-a860-fd4f1b768c4c\",\"panelRefName\":\"panel_15c3b9dc-93ee-48ca-a860-fd4f1b768c4c\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5fe16d63-f752-4c67-b033-54924d7a631a\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"5fe16d63-f752-4c67-b033-54924d7a631a\",\"panelRefName\":\"panel_5fe16d63-f752-4c67-b033-54924d7a631a\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"87ee17ee-d40e-4a43-b26f-9622bf1bcbad\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"87ee17ee-d40e-4a43-b26f-9622bf1bcbad\",\"panelRefName\":\"panel_87ee17ee-d40e-4a43-b26f-9622bf1bcbad\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"802cd7a9-7704-4a53-b143-1b9a4f75cc2b\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"802cd7a9-7704-4a53-b143-1b9a4f75cc2b\",\"panelRefName\":\"panel_802cd7a9-7704-4a53-b143-1b9a4f75cc2b\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f6e061ee-b7ac-47c8-9915-3fca33a23317\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"f6e061ee-b7ac-47c8-9915-3fca33a23317\",\"panelRefName\":\"panel_f6e061ee-b7ac-47c8-9915-3fca33a23317\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5a0acb1a-ce64-413f-a582-567d7fa79fc0\",\"w\":24,\"x\":0,\"y\":135},\"panelIndex\":\"5a0acb1a-ce64-413f-a582-567d7fa79fc0\",\"panelRefName\":\"panel_5a0acb1a-ce64-413f-a582-567d7fa79fc0\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f9e38ddf-3807-4283-8612-12890da9ddbe\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"f9e38ddf-3807-4283-8612-12890da9ddbe\",\"panelRefName\":\"panel_f9e38ddf-3807-4283-8612-12890da9ddbe\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"4f45dac1-2a01-418a-9174-86fa1d613f5f\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"4f45dac1-2a01-418a-9174-86fa1d613f5f\",\"panelRefName\":\"panel_4f45dac1-2a01-418a-9174-86fa1d613f5f\",\"type\":\"visualization\",\"version\":\"7.16.2\"}]", + "timeRestore": false, + "title": "[Netskope][Alerts] Security Assessment", + "version": 1 + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-1db9af70-71f4-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "netskope-f9097160-71f3-11ec-8c4b-cb281099ee02", + "name": "9ecea79f-aedc-4c49-a78d-113c35d00646:panel_9ecea79f-aedc-4c49-a78d-113c35d00646", + "type": "visualization" + }, + { + "id": "netskope-7d7e2260-71f4-11ec-8c4b-cb281099ee02", + "name": "f7136693-69cc-43e0-b9ad-3b975bbe830a:panel_f7136693-69cc-43e0-b9ad-3b975bbe830a", + "type": "visualization" + }, + { + "id": "netskope-187e0140-71f5-11ec-8c4b-cb281099ee02", + "name": "6a352e9d-2bda-4c4d-a65f-70086fe9e098:panel_6a352e9d-2bda-4c4d-a65f-70086fe9e098", + "type": "visualization" + }, + { + "id": "netskope-9c6d6030-71f6-11ec-8c4b-cb281099ee02", + "name": "48681f61-2ad6-4dac-aafd-895b2c267d93:panel_48681f61-2ad6-4dac-aafd-895b2c267d93", + "type": "visualization" + }, + { + "id": "netskope-5f452920-71da-11ec-8c4b-cb281099ee02", + "name": "414e518e-6119-4905-9052-0bab7a7e53c2:panel_414e518e-6119-4905-9052-0bab7a7e53c2", + "type": "visualization" + }, + { + "id": "netskope-2b81f870-71da-11ec-8c4b-cb281099ee02", + "name": "f52d5fe1-0317-4341-8828-34c8eb20e6c5:panel_f52d5fe1-0317-4341-8828-34c8eb20e6c5", + "type": "visualization" + }, + { + "id": "netskope-ca5610d0-71da-11ec-8c4b-cb281099ee02", + "name": "dedb010c-aa2b-4849-a123-01d05df8391e:panel_dedb010c-aa2b-4849-a123-01d05df8391e", + "type": "visualization" + }, + { + "id": "netskope-9b93d9d0-71da-11ec-8c4b-cb281099ee02", + "name": "769bdbcd-f96e-41c7-ba73-76bc435f8573:panel_769bdbcd-f96e-41c7-ba73-76bc435f8573", + "type": "visualization" + }, + { + "id": "netskope-7f8d83c0-71db-11ec-8c4b-cb281099ee02", + "name": "c15e2f15-51e0-450b-8b65-68ad53160156:panel_c15e2f15-51e0-450b-8b65-68ad53160156", + "type": "visualization" + }, + { + "id": "netskope-37409a80-71db-11ec-8c4b-cb281099ee02", + "name": "75d0c42b-7852-4914-95e7-6d2e92b99bd0:panel_75d0c42b-7852-4914-95e7-6d2e92b99bd0", + "type": "visualization" + }, + { + "id": "netskope-bc859e60-71dc-11ec-8c4b-cb281099ee02", + "name": "abd95a27-a1f0-4808-88fb-3bb5f770f543:panel_abd95a27-a1f0-4808-88fb-3bb5f770f543", + "type": "visualization" + }, + { + "id": "netskope-4a1cfbc0-71dc-11ec-8c4b-cb281099ee02", + "name": "15c3b9dc-93ee-48ca-a860-fd4f1b768c4c:panel_15c3b9dc-93ee-48ca-a860-fd4f1b768c4c", + "type": "visualization" + }, + { + "id": "netskope-55b418a0-71dd-11ec-8c4b-cb281099ee02", + "name": "5fe16d63-f752-4c67-b033-54924d7a631a:panel_5fe16d63-f752-4c67-b033-54924d7a631a", + "type": "visualization" + }, + { + "id": "netskope-cab84db0-71dd-11ec-8c4b-cb281099ee02", + "name": "87ee17ee-d40e-4a43-b26f-9622bf1bcbad:panel_87ee17ee-d40e-4a43-b26f-9622bf1bcbad", + "type": "visualization" + }, + { + "id": "netskope-a4745040-71dd-11ec-8c4b-cb281099ee02", + "name": "802cd7a9-7704-4a53-b143-1b9a4f75cc2b:panel_802cd7a9-7704-4a53-b143-1b9a4f75cc2b", + "type": "visualization" + }, + { + "id": "netskope-f4fb96d0-71de-11ec-8c4b-cb281099ee02", + "name": "f6e061ee-b7ac-47c8-9915-3fca33a23317:panel_f6e061ee-b7ac-47c8-9915-3fca33a23317", + "type": "visualization" + }, + { + "id": "netskope-7f41e9e0-71dd-11ec-8c4b-cb281099ee02", + "name": "5a0acb1a-ce64-413f-a582-567d7fa79fc0:panel_5a0acb1a-ce64-413f-a582-567d7fa79fc0", + "type": "visualization" + }, + { + "id": "netskope-8705deb0-71de-11ec-8c4b-cb281099ee02", + "name": "f9e38ddf-3807-4283-8612-12890da9ddbe:panel_f9e38ddf-3807-4283-8612-12890da9ddbe", + "type": "visualization" + }, + { + "id": "netskope-1b3226c0-71df-11ec-8c4b-cb281099ee02", + "name": "4f45dac1-2a01-418a-9174-86fa1d613f5f:panel_4f45dac1-2a01-418a-9174-86fa1d613f5f", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/dashboard/netskope-388b1e00-72ae-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/dashboard/netskope-388b1e00-72ae-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..1d99e0f070 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/dashboard/netskope-388b1e00-72ae-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,132 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"network\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"network\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"de113850-0514-4327-bf4a-96fd3bff0aa1\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"de113850-0514-4327-bf4a-96fd3bff0aa1\",\"panelRefName\":\"panel_de113850-0514-4327-bf4a-96fd3bff0aa1\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"81c7c9aa-e4bf-4f5f-81a8-8a9b2b329842\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"81c7c9aa-e4bf-4f5f-81a8-8a9b2b329842\",\"panelRefName\":\"panel_81c7c9aa-e4bf-4f5f-81a8-8a9b2b329842\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"1ae18052-f555-4f33-b76c-7f425a337c95\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"1ae18052-f555-4f33-b76c-7f425a337c95\",\"panelRefName\":\"panel_1ae18052-f555-4f33-b76c-7f425a337c95\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"cf91b73d-8723-4207-a9db-2f2eec6dbc83\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"cf91b73d-8723-4207-a9db-2f2eec6dbc83\",\"panelRefName\":\"panel_cf91b73d-8723-4207-a9db-2f2eec6dbc83\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"40a99b00-0503-4360-b2ee-4758402ddbc6\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"40a99b00-0503-4360-b2ee-4758402ddbc6\",\"panelRefName\":\"panel_40a99b00-0503-4360-b2ee-4758402ddbc6\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"c56aec99-3085-448f-b3ce-d68d4d758354\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"c56aec99-3085-448f-b3ce-d68d4d758354\",\"panelRefName\":\"panel_c56aec99-3085-448f-b3ce-d68d4d758354\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"cfbe5876-f02d-42c0-ae50-b85b43223f2d\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"cfbe5876-f02d-42c0-ae50-b85b43223f2d\",\"panelRefName\":\"panel_cfbe5876-f02d-42c0-ae50-b85b43223f2d\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"91fb5be5-9fe1-446c-b5de-0a9844698834\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"91fb5be5-9fe1-446c-b5de-0a9844698834\",\"panelRefName\":\"panel_91fb5be5-9fe1-446c-b5de-0a9844698834\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"e89d1bab-dd1c-4b06-bad0-77f26fb8e217\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"e89d1bab-dd1c-4b06-bad0-77f26fb8e217\",\"panelRefName\":\"panel_e89d1bab-dd1c-4b06-bad0-77f26fb8e217\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"cafd5a6f-d702-4870-b85d-8c5619997cb6\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"cafd5a6f-d702-4870-b85d-8c5619997cb6\",\"panelRefName\":\"panel_cafd5a6f-d702-4870-b85d-8c5619997cb6\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"199442bd-7bb0-4112-ade5-3264743defd1\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"199442bd-7bb0-4112-ade5-3264743defd1\",\"panelRefName\":\"panel_199442bd-7bb0-4112-ade5-3264743defd1\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"90e8a139-5ac8-4a10-a5ed-802d30eca519\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"90e8a139-5ac8-4a10-a5ed-802d30eca519\",\"panelRefName\":\"panel_90e8a139-5ac8-4a10-a5ed-802d30eca519\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3e9a0f3a-f5b1-4cc6-ba7f-645bf6f23339\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"3e9a0f3a-f5b1-4cc6-ba7f-645bf6f23339\",\"panelRefName\":\"panel_3e9a0f3a-f5b1-4cc6-ba7f-645bf6f23339\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"cbe6b18e-b303-4b00-b573-f9856a82e15e\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"cbe6b18e-b303-4b00-b573-f9856a82e15e\",\"panelRefName\":\"panel_cbe6b18e-b303-4b00-b573-f9856a82e15e\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"68eae1da-9479-4de6-a888-790e7bee6449\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"68eae1da-9479-4de6-a888-790e7bee6449\",\"panelRefName\":\"panel_68eae1da-9479-4de6-a888-790e7bee6449\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"8368a6ca-b543-4adc-a9c5-624e74497329\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"8368a6ca-b543-4adc-a9c5-624e74497329\",\"panelRefName\":\"panel_8368a6ca-b543-4adc-a9c5-624e74497329\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"4b05e711-810e-4014-9b25-0bd307954aa0\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"4b05e711-810e-4014-9b25-0bd307954aa0\",\"panelRefName\":\"panel_4b05e711-810e-4014-9b25-0bd307954aa0\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"893dd429-9e30-4fd6-9419-dbe51aafc104\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"893dd429-9e30-4fd6-9419-dbe51aafc104\",\"panelRefName\":\"panel_893dd429-9e30-4fd6-9419-dbe51aafc104\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5c2b0e3e-3fa6-4b04-9950-0a51dd2bc0bb\",\"w\":24,\"x\":0,\"y\":135},\"panelIndex\":\"5c2b0e3e-3fa6-4b04-9950-0a51dd2bc0bb\",\"panelRefName\":\"panel_5c2b0e3e-3fa6-4b04-9950-0a51dd2bc0bb\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"39191fce-eb15-468c-ad46-923e47f84456\",\"w\":24,\"x\":24,\"y\":135},\"panelIndex\":\"39191fce-eb15-468c-ad46-923e47f84456\",\"panelRefName\":\"panel_39191fce-eb15-468c-ad46-923e47f84456\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"aedad988-c987-4390-b904-8ed71a118d4d\",\"w\":24,\"x\":0,\"y\":150},\"panelIndex\":\"aedad988-c987-4390-b904-8ed71a118d4d\",\"panelRefName\":\"panel_aedad988-c987-4390-b904-8ed71a118d4d\",\"type\":\"visualization\",\"version\":\"7.16.2\"}]", + "timeRestore": false, + "title": "[Netskope][Events] Network", + "version": 1 + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-388b1e00-72ae-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "netskope-55144a90-72ab-11ec-8c4b-cb281099ee02", + "name": "de113850-0514-4327-bf4a-96fd3bff0aa1:panel_de113850-0514-4327-bf4a-96fd3bff0aa1", + "type": "visualization" + }, + { + "id": "netskope-7d1142a0-72ab-11ec-8c4b-cb281099ee02", + "name": "81c7c9aa-e4bf-4f5f-81a8-8a9b2b329842:panel_81c7c9aa-e4bf-4f5f-81a8-8a9b2b329842", + "type": "visualization" + }, + { + "id": "netskope-a2047d20-72ab-11ec-8c4b-cb281099ee02", + "name": "1ae18052-f555-4f33-b76c-7f425a337c95:panel_1ae18052-f555-4f33-b76c-7f425a337c95", + "type": "visualization" + }, + { + "id": "netskope-327320f0-72ac-11ec-8c4b-cb281099ee02", + "name": "cf91b73d-8723-4207-a9db-2f2eec6dbc83:panel_cf91b73d-8723-4207-a9db-2f2eec6dbc83", + "type": "visualization" + }, + { + "id": "netskope-2044d2a0-72ae-11ec-8c4b-cb281099ee02", + "name": "40a99b00-0503-4360-b2ee-4758402ddbc6:panel_40a99b00-0503-4360-b2ee-4758402ddbc6", + "type": "visualization" + }, + { + "id": "netskope-5982c0e0-72ae-11ec-8c4b-cb281099ee02", + "name": "c56aec99-3085-448f-b3ce-d68d4d758354:panel_c56aec99-3085-448f-b3ce-d68d4d758354", + "type": "visualization" + }, + { + "id": "netskope-dbdd48a0-72a7-11ec-8c4b-cb281099ee02", + "name": "cfbe5876-f02d-42c0-ae50-b85b43223f2d:panel_cfbe5876-f02d-42c0-ae50-b85b43223f2d", + "type": "visualization" + }, + { + "id": "netskope-40a01500-72db-11ec-8c4b-cb281099ee02", + "name": "91fb5be5-9fe1-446c-b5de-0a9844698834:panel_91fb5be5-9fe1-446c-b5de-0a9844698834", + "type": "visualization" + }, + { + "id": "netskope-464ce970-72b7-11ec-8c4b-cb281099ee02", + "name": "e89d1bab-dd1c-4b06-bad0-77f26fb8e217:panel_e89d1bab-dd1c-4b06-bad0-77f26fb8e217", + "type": "visualization" + }, + { + "id": "netskope-891546c0-72db-11ec-8c4b-cb281099ee02", + "name": "cafd5a6f-d702-4870-b85d-8c5619997cb6:panel_cafd5a6f-d702-4870-b85d-8c5619997cb6", + "type": "visualization" + }, + { + "id": "netskope-06bf2da0-72a7-11ec-8c4b-cb281099ee02", + "name": "199442bd-7bb0-4112-ade5-3264743defd1:panel_199442bd-7bb0-4112-ade5-3264743defd1", + "type": "visualization" + }, + { + "id": "netskope-41932530-72a7-11ec-8c4b-cb281099ee02", + "name": "90e8a139-5ac8-4a10-a5ed-802d30eca519:panel_90e8a139-5ac8-4a10-a5ed-802d30eca519", + "type": "visualization" + }, + { + "id": "netskope-5efbfc00-72a7-11ec-8c4b-cb281099ee02", + "name": "3e9a0f3a-f5b1-4cc6-ba7f-645bf6f23339:panel_3e9a0f3a-f5b1-4cc6-ba7f-645bf6f23339", + "type": "visualization" + }, + { + "id": "netskope-83fa5a10-72a7-11ec-8c4b-cb281099ee02", + "name": "cbe6b18e-b303-4b00-b573-f9856a82e15e:panel_cbe6b18e-b303-4b00-b573-f9856a82e15e", + "type": "visualization" + }, + { + "id": "netskope-357672b0-72a8-11ec-8c4b-cb281099ee02", + "name": "68eae1da-9479-4de6-a888-790e7bee6449:panel_68eae1da-9479-4de6-a888-790e7bee6449", + "type": "visualization" + }, + { + "id": "netskope-d9596770-72a8-11ec-8c4b-cb281099ee02", + "name": "8368a6ca-b543-4adc-a9c5-624e74497329:panel_8368a6ca-b543-4adc-a9c5-624e74497329", + "type": "visualization" + }, + { + "id": "netskope-47132800-72a9-11ec-8c4b-cb281099ee02", + "name": "4b05e711-810e-4014-9b25-0bd307954aa0:panel_4b05e711-810e-4014-9b25-0bd307954aa0", + "type": "visualization" + }, + { + "id": "netskope-93433ee0-72a9-11ec-8c4b-cb281099ee02", + "name": "893dd429-9e30-4fd6-9419-dbe51aafc104:panel_893dd429-9e30-4fd6-9419-dbe51aafc104", + "type": "visualization" + }, + { + "id": "netskope-c1e088c0-72a9-11ec-8c4b-cb281099ee02", + "name": "5c2b0e3e-3fa6-4b04-9950-0a51dd2bc0bb:panel_5c2b0e3e-3fa6-4b04-9950-0a51dd2bc0bb", + "type": "visualization" + }, + { + "id": "netskope-e8cecff0-72a9-11ec-8c4b-cb281099ee02", + "name": "39191fce-eb15-468c-ad46-923e47f84456:panel_39191fce-eb15-468c-ad46-923e47f84456", + "type": "visualization" + }, + { + "id": "netskope-0e9511e0-72aa-11ec-8c4b-cb281099ee02", + "name": "aedad988-c987-4390-b904-8ed71a118d4d:panel_aedad988-c987-4390-b904-8ed71a118d4d", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/dashboard/netskope-4bdc8830-72af-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/dashboard/netskope-4bdc8830-72af-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..d2e6875041 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/dashboard/netskope-4bdc8830-72af-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,47 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"infrastructure\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"infrastructure\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"eef1d418-6eb7-4ca7-963c-376163e018cc\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"eef1d418-6eb7-4ca7-963c-376163e018cc\",\"panelRefName\":\"panel_eef1d418-6eb7-4ca7-963c-376163e018cc\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"b8ce0876-320e-4903-919e-3101df39f199\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"b8ce0876-320e-4903-919e-3101df39f199\",\"panelRefName\":\"panel_b8ce0876-320e-4903-919e-3101df39f199\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"bcd7cd0f-3d14-4165-ad36-411e407c1b3a\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"bcd7cd0f-3d14-4165-ad36-411e407c1b3a\",\"panelRefName\":\"panel_bcd7cd0f-3d14-4165-ad36-411e407c1b3a\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"cb25209c-af4f-46d4-8055-e0165377c186\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"cb25209c-af4f-46d4-8055-e0165377c186\",\"panelRefName\":\"panel_cb25209c-af4f-46d4-8055-e0165377c186\",\"type\":\"visualization\",\"version\":\"7.16.2\"}]", + "timeRestore": false, + "title": "[Netskope][Events] Infrastructure", + "version": 1 + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-4bdc8830-72af-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "netskope-e2e46e60-72ae-11ec-8c4b-cb281099ee02", + "name": "eef1d418-6eb7-4ca7-963c-376163e018cc:panel_eef1d418-6eb7-4ca7-963c-376163e018cc", + "type": "visualization" + }, + { + "id": "netskope-719e0f30-72af-11ec-8c4b-cb281099ee02", + "name": "b8ce0876-320e-4903-919e-3101df39f199:panel_b8ce0876-320e-4903-919e-3101df39f199", + "type": "visualization" + }, + { + "id": "netskope-914898a0-72af-11ec-8c4b-cb281099ee02", + "name": "bcd7cd0f-3d14-4165-ad36-411e407c1b3a:panel_bcd7cd0f-3d14-4165-ad36-411e407c1b3a", + "type": "visualization" + }, + { + "id": "netskope-c01026d0-72af-11ec-8c4b-cb281099ee02", + "name": "cb25209c-af4f-46d4-8055-e0165377c186:panel_cb25209c-af4f-46d4-8055-e0165377c186", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/dashboard/netskope-93c4dce0-72a7-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/dashboard/netskope-93c4dce0-72a7-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..35312a2ab0 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/dashboard/netskope-93c4dce0-72a7-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":5,\"i\":\"26fbf4d7-3b96-4d0a-a206-1c0b6c36a654\",\"w\":48,\"x\":0,\"y\":0},\"panelIndex\":\"26fbf4d7-3b96-4d0a-a206-1c0b6c36a654\",\"panelRefName\":\"panel_26fbf4d7-3b96-4d0a-a206-1c0b6c36a654\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"5a43e517-99d6-425a-b5cb-7ee124b327e7\",\"w\":24,\"x\":0,\"y\":5},\"panelIndex\":\"5a43e517-99d6-425a-b5cb-7ee124b327e7\",\"panelRefName\":\"panel_5a43e517-99d6-425a-b5cb-7ee124b327e7\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"6a0e0f49-951b-47ca-8664-5507bae1d7f4\",\"w\":24,\"x\":24,\"y\":5},\"panelIndex\":\"6a0e0f49-951b-47ca-8664-5507bae1d7f4\",\"panelRefName\":\"panel_6a0e0f49-951b-47ca-8664-5507bae1d7f4\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"067dda5d-b9eb-495c-b663-5bb1eaa164da\",\"w\":24,\"x\":0,\"y\":20},\"panelIndex\":\"067dda5d-b9eb-495c-b663-5bb1eaa164da\",\"panelRefName\":\"panel_067dda5d-b9eb-495c-b663-5bb1eaa164da\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"26a44d07-f0e4-4c58-a209-ebe227dfe682\",\"w\":24,\"x\":24,\"y\":20},\"panelIndex\":\"26a44d07-f0e4-4c58-a209-ebe227dfe682\",\"panelRefName\":\"panel_26a44d07-f0e4-4c58-a209-ebe227dfe682\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"98d0578d-b4f5-46f6-8c5d-db6939548a41\",\"w\":24,\"x\":0,\"y\":35},\"panelIndex\":\"98d0578d-b4f5-46f6-8c5d-db6939548a41\",\"panelRefName\":\"panel_98d0578d-b4f5-46f6-8c5d-db6939548a41\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"1150af83-f4ee-4aa3-8b31-7d5c5dccc716\",\"w\":24,\"x\":24,\"y\":35},\"panelIndex\":\"1150af83-f4ee-4aa3-8b31-7d5c5dccc716\",\"panelRefName\":\"panel_1150af83-f4ee-4aa3-8b31-7d5c5dccc716\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"822a62d6-ed17-4a9c-bcbc-b29b25538156\",\"w\":24,\"x\":0,\"y\":50},\"panelIndex\":\"822a62d6-ed17-4a9c-bcbc-b29b25538156\",\"panelRefName\":\"panel_822a62d6-ed17-4a9c-bcbc-b29b25538156\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5bc67aa4-4d7f-409e-bf28-a5c3a2f5caec\",\"w\":24,\"x\":24,\"y\":50},\"panelIndex\":\"5bc67aa4-4d7f-409e-bf28-a5c3a2f5caec\",\"panelRefName\":\"panel_5bc67aa4-4d7f-409e-bf28-a5c3a2f5caec\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"1773342f-dd53-4c10-9b38-82b4e09a7395\",\"w\":24,\"x\":0,\"y\":65},\"panelIndex\":\"1773342f-dd53-4c10-9b38-82b4e09a7395\",\"panelRefName\":\"panel_1773342f-dd53-4c10-9b38-82b4e09a7395\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"e297318d-0e02-4fc2-a5dd-6b6d57f5e35b\",\"w\":24,\"x\":24,\"y\":65},\"panelIndex\":\"e297318d-0e02-4fc2-a5dd-6b6d57f5e35b\",\"panelRefName\":\"panel_e297318d-0e02-4fc2-a5dd-6b6d57f5e35b\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"d9355657-e78e-4edf-89b0-4f0e0698372e\",\"w\":24,\"x\":0,\"y\":80},\"panelIndex\":\"d9355657-e78e-4edf-89b0-4f0e0698372e\",\"panelRefName\":\"panel_d9355657-e78e-4edf-89b0-4f0e0698372e\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"82495547-fdb7-4c0c-8e55-83246013d66f\",\"w\":24,\"x\":24,\"y\":80},\"panelIndex\":\"82495547-fdb7-4c0c-8e55-83246013d66f\",\"panelRefName\":\"panel_82495547-fdb7-4c0c-8e55-83246013d66f\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"c291aef0-c76c-4c83-ae56-2c2126f817a7\",\"w\":24,\"x\":0,\"y\":95},\"panelIndex\":\"c291aef0-c76c-4c83-ae56-2c2126f817a7\",\"panelRefName\":\"panel_c291aef0-c76c-4c83-ae56-2c2126f817a7\",\"type\":\"visualization\",\"version\":\"7.16.2\"}]", + "timeRestore": false, + "title": "[Netskope] Events Overview", + "version": 1 + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-93c4dce0-72a7-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "netskope-a6e2ecf0-72a6-11ec-8c4b-cb281099ee02", + "name": "26fbf4d7-3b96-4d0a-a206-1c0b6c36a654:panel_26fbf4d7-3b96-4d0a-a206-1c0b6c36a654", + "type": "visualization" + }, + { + "id": "netskope-e15f2790-72a6-11ec-8c4b-cb281099ee02", + "name": "5a43e517-99d6-425a-b5cb-7ee124b327e7:panel_5a43e517-99d6-425a-b5cb-7ee124b327e7", + "type": "visualization" + }, + { + "id": "netskope-06bf2da0-72a7-11ec-8c4b-cb281099ee02", + "name": "6a0e0f49-951b-47ca-8664-5507bae1d7f4:panel_6a0e0f49-951b-47ca-8664-5507bae1d7f4", + "type": "visualization" + }, + { + "id": "netskope-41932530-72a7-11ec-8c4b-cb281099ee02", + "name": "067dda5d-b9eb-495c-b663-5bb1eaa164da:panel_067dda5d-b9eb-495c-b663-5bb1eaa164da", + "type": "visualization" + }, + { + "id": "netskope-5efbfc00-72a7-11ec-8c4b-cb281099ee02", + "name": "26a44d07-f0e4-4c58-a209-ebe227dfe682:panel_26a44d07-f0e4-4c58-a209-ebe227dfe682", + "type": "visualization" + }, + { + "id": "netskope-47132800-72a9-11ec-8c4b-cb281099ee02", + "name": "98d0578d-b4f5-46f6-8c5d-db6939548a41:panel_98d0578d-b4f5-46f6-8c5d-db6939548a41", + "type": "visualization" + }, + { + "id": "netskope-d9596770-72a8-11ec-8c4b-cb281099ee02", + "name": "1150af83-f4ee-4aa3-8b31-7d5c5dccc716:panel_1150af83-f4ee-4aa3-8b31-7d5c5dccc716", + "type": "visualization" + }, + { + "id": "netskope-c1e088c0-72a9-11ec-8c4b-cb281099ee02", + "name": "822a62d6-ed17-4a9c-bcbc-b29b25538156:panel_822a62d6-ed17-4a9c-bcbc-b29b25538156", + "type": "visualization" + }, + { + "id": "netskope-93433ee0-72a9-11ec-8c4b-cb281099ee02", + "name": "5bc67aa4-4d7f-409e-bf28-a5c3a2f5caec:panel_5bc67aa4-4d7f-409e-bf28-a5c3a2f5caec", + "type": "visualization" + }, + { + "id": "netskope-0e9511e0-72aa-11ec-8c4b-cb281099ee02", + "name": "1773342f-dd53-4c10-9b38-82b4e09a7395:panel_1773342f-dd53-4c10-9b38-82b4e09a7395", + "type": "visualization" + }, + { + "id": "netskope-abcc6a30-72aa-11ec-8c4b-cb281099ee02", + "name": "e297318d-0e02-4fc2-a5dd-6b6d57f5e35b:panel_e297318d-0e02-4fc2-a5dd-6b6d57f5e35b", + "type": "visualization" + }, + { + "id": "netskope-357672b0-72a8-11ec-8c4b-cb281099ee02", + "name": "d9355657-e78e-4edf-89b0-4f0e0698372e:panel_d9355657-e78e-4edf-89b0-4f0e0698372e", + "type": "visualization" + }, + { + "id": "netskope-e8cecff0-72a9-11ec-8c4b-cb281099ee02", + "name": "82495547-fdb7-4c0c-8e55-83246013d66f:panel_82495547-fdb7-4c0c-8e55-83246013d66f", + "type": "visualization" + }, + { + "id": "netskope-83fa5a10-72a7-11ec-8c4b-cb281099ee02", + "name": "c291aef0-c76c-4c83-ae56-2c2126f817a7:panel_c291aef0-c76c-4c83-ae56-2c2126f817a7", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/dashboard/netskope-97349920-72b0-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/dashboard/netskope-97349920-72b0-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..84042f8c6d --- /dev/null +++ b/packages/netskope/1.0.0/kibana/dashboard/netskope-97349920-72b0-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,57 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"audit\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"77a59f05-8734-4361-a4ee-f0081a667f90\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"77a59f05-8734-4361-a4ee-f0081a667f90\",\"panelRefName\":\"panel_77a59f05-8734-4361-a4ee-f0081a667f90\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"ba5dff68-0c84-4678-bf9b-a20767da4594\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"ba5dff68-0c84-4678-bf9b-a20767da4594\",\"panelRefName\":\"panel_ba5dff68-0c84-4678-bf9b-a20767da4594\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"04a815f0-2d0c-4189-9382-c4b5c4455bce\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"04a815f0-2d0c-4189-9382-c4b5c4455bce\",\"panelRefName\":\"panel_04a815f0-2d0c-4189-9382-c4b5c4455bce\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"1fb9cef2-f112-4a25-985e-e191d044a824\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"1fb9cef2-f112-4a25-985e-e191d044a824\",\"panelRefName\":\"panel_1fb9cef2-f112-4a25-985e-e191d044a824\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"d6851ddb-5402-419a-b8e2-91e060a5a715\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"d6851ddb-5402-419a-b8e2-91e060a5a715\",\"panelRefName\":\"panel_d6851ddb-5402-419a-b8e2-91e060a5a715\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8c1ee365-4a0c-4b03-858a-26c7d6652699\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"8c1ee365-4a0c-4b03-858a-26c7d6652699\",\"panelRefName\":\"panel_8c1ee365-4a0c-4b03-858a-26c7d6652699\",\"type\":\"visualization\",\"version\":\"7.16.2\"}]", + "timeRestore": false, + "title": "[Netskope][Events] Audit", + "version": 1 + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-97349920-72b0-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "netskope-feb43930-72af-11ec-8c4b-cb281099ee02", + "name": "77a59f05-8734-4361-a4ee-f0081a667f90:panel_77a59f05-8734-4361-a4ee-f0081a667f90", + "type": "visualization" + }, + { + "id": "netskope-24907420-72b0-11ec-8c4b-cb281099ee02", + "name": "ba5dff68-0c84-4678-bf9b-a20767da4594:panel_ba5dff68-0c84-4678-bf9b-a20767da4594", + "type": "visualization" + }, + { + "id": "netskope-8fc2c680-72b0-11ec-8c4b-cb281099ee02", + "name": "04a815f0-2d0c-4189-9382-c4b5c4455bce:panel_04a815f0-2d0c-4189-9382-c4b5c4455bce", + "type": "visualization" + }, + { + "id": "netskope-93433ee0-72a9-11ec-8c4b-cb281099ee02", + "name": "1fb9cef2-f112-4a25-985e-e191d044a824:panel_1fb9cef2-f112-4a25-985e-e191d044a824", + "type": "visualization" + }, + { + "id": "netskope-e8cecff0-72a9-11ec-8c4b-cb281099ee02", + "name": "d6851ddb-5402-419a-b8e2-91e060a5a715:panel_d6851ddb-5402-419a-b8e2-91e060a5a715", + "type": "visualization" + }, + { + "id": "netskope-47132800-72a9-11ec-8c4b-cb281099ee02", + "name": "8c1ee365-4a0c-4b03-858a-26c7d6652699:panel_8c1ee365-4a0c-4b03-858a-26c7d6652699", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/dashboard/netskope-9e55e880-72b5-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/dashboard/netskope-9e55e880-72b5-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..94ccc020a5 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/dashboard/netskope-9e55e880-72b5-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,117 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"application\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"application\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"ab32506e-cd95-4643-94f4-ff3d7f10655b\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"ab32506e-cd95-4643-94f4-ff3d7f10655b\",\"panelRefName\":\"panel_ab32506e-cd95-4643-94f4-ff3d7f10655b\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"f04eaee2-b656-45f0-bf2e-7db096fe5ba5\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"f04eaee2-b656-45f0-bf2e-7db096fe5ba5\",\"panelRefName\":\"panel_f04eaee2-b656-45f0-bf2e-7db096fe5ba5\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"85a443dc-c3dd-4198-8273-b2edbe5254a6\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"85a443dc-c3dd-4198-8273-b2edbe5254a6\",\"panelRefName\":\"panel_85a443dc-c3dd-4198-8273-b2edbe5254a6\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"d8da7946-0d47-405d-b219-b3f4519ee4d9\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"d8da7946-0d47-405d-b219-b3f4519ee4d9\",\"panelRefName\":\"panel_d8da7946-0d47-405d-b219-b3f4519ee4d9\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"516a4ca3-23b4-4d6d-9162-50197cbfe306\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"516a4ca3-23b4-4d6d-9162-50197cbfe306\",\"panelRefName\":\"panel_516a4ca3-23b4-4d6d-9162-50197cbfe306\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"ab75c7fa-d665-4ce4-b2d0-62428fd846da\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"ab75c7fa-d665-4ce4-b2d0-62428fd846da\",\"panelRefName\":\"panel_ab75c7fa-d665-4ce4-b2d0-62428fd846da\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"e6fdc807-d7d7-4c8d-a592-584e42001712\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"e6fdc807-d7d7-4c8d-a592-584e42001712\",\"panelRefName\":\"panel_e6fdc807-d7d7-4c8d-a592-584e42001712\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"fe337472-7a96-402a-b7e5-b8ea37e6328c\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"fe337472-7a96-402a-b7e5-b8ea37e6328c\",\"panelRefName\":\"panel_fe337472-7a96-402a-b7e5-b8ea37e6328c\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"5de4021e-f3ba-4155-83c6-d44937ad4564\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"5de4021e-f3ba-4155-83c6-d44937ad4564\",\"panelRefName\":\"panel_5de4021e-f3ba-4155-83c6-d44937ad4564\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6b88f03d-4441-4081-b031-7af3644a3421\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"6b88f03d-4441-4081-b031-7af3644a3421\",\"panelRefName\":\"panel_6b88f03d-4441-4081-b031-7af3644a3421\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"ebf8e192-7eba-438f-96cc-5e6d80d08fd0\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"ebf8e192-7eba-438f-96cc-5e6d80d08fd0\",\"panelRefName\":\"panel_ebf8e192-7eba-438f-96cc-5e6d80d08fd0\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6a003a65-76ee-43fa-9f63-a8c96c129fd1\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"6a003a65-76ee-43fa-9f63-a8c96c129fd1\",\"panelRefName\":\"panel_6a003a65-76ee-43fa-9f63-a8c96c129fd1\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"942c0bf9-1f9a-4a8a-9f9c-70e32e61d1a4\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"942c0bf9-1f9a-4a8a-9f9c-70e32e61d1a4\",\"panelRefName\":\"panel_942c0bf9-1f9a-4a8a-9f9c-70e32e61d1a4\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"51fc9a00-6109-46eb-9264-cfb81fafbb90\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"51fc9a00-6109-46eb-9264-cfb81fafbb90\",\"panelRefName\":\"panel_51fc9a00-6109-46eb-9264-cfb81fafbb90\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"85ba4c06-11ce-4bfe-ba79-983562383efb\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"85ba4c06-11ce-4bfe-ba79-983562383efb\",\"panelRefName\":\"panel_85ba4c06-11ce-4bfe-ba79-983562383efb\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"2209097a-5361-4924-b89b-30cb69fc1aa9\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"2209097a-5361-4924-b89b-30cb69fc1aa9\",\"panelRefName\":\"panel_2209097a-5361-4924-b89b-30cb69fc1aa9\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"313214f2-83b2-41eb-98f6-d2e061b84267\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"313214f2-83b2-41eb-98f6-d2e061b84267\",\"panelRefName\":\"panel_313214f2-83b2-41eb-98f6-d2e061b84267\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"18e2231e-c783-4353-a799-b41f01154e97\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"18e2231e-c783-4353-a799-b41f01154e97\",\"panelRefName\":\"panel_18e2231e-c783-4353-a799-b41f01154e97\",\"type\":\"visualization\",\"version\":\"7.16.2\"}]", + "timeRestore": false, + "title": "[Netskope][Events] Application", + "version": 1 + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-9e55e880-72b5-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "netskope-a44f4160-72b4-11ec-8c4b-cb281099ee02", + "name": "ab32506e-cd95-4643-94f4-ff3d7f10655b:panel_ab32506e-cd95-4643-94f4-ff3d7f10655b", + "type": "visualization" + }, + { + "id": "netskope-0f05ca90-7456-11ec-8c4b-cb281099ee02", + "name": "f04eaee2-b656-45f0-bf2e-7db096fe5ba5:panel_f04eaee2-b656-45f0-bf2e-7db096fe5ba5", + "type": "visualization" + }, + { + "id": "netskope-5e243140-72b5-11ec-8c4b-cb281099ee02", + "name": "85a443dc-c3dd-4198-8273-b2edbe5254a6:panel_85a443dc-c3dd-4198-8273-b2edbe5254a6", + "type": "visualization" + }, + { + "id": "netskope-c6540e80-72b4-11ec-8c4b-cb281099ee02", + "name": "d8da7946-0d47-405d-b219-b3f4519ee4d9:panel_d8da7946-0d47-405d-b219-b3f4519ee4d9", + "type": "visualization" + }, + { + "id": "netskope-06bf2da0-72a7-11ec-8c4b-cb281099ee02", + "name": "516a4ca3-23b4-4d6d-9162-50197cbfe306:panel_516a4ca3-23b4-4d6d-9162-50197cbfe306", + "type": "visualization" + }, + { + "id": "netskope-917c9230-72b5-11ec-8c4b-cb281099ee02", + "name": "ab75c7fa-d665-4ce4-b2d0-62428fd846da:panel_ab75c7fa-d665-4ce4-b2d0-62428fd846da", + "type": "visualization" + }, + { + "id": "netskope-5efbfc00-72a7-11ec-8c4b-cb281099ee02", + "name": "e6fdc807-d7d7-4c8d-a592-584e42001712:panel_e6fdc807-d7d7-4c8d-a592-584e42001712", + "type": "visualization" + }, + { + "id": "netskope-41932530-72a7-11ec-8c4b-cb281099ee02", + "name": "fe337472-7a96-402a-b7e5-b8ea37e6328c:panel_fe337472-7a96-402a-b7e5-b8ea37e6328c", + "type": "visualization" + }, + { + "id": "netskope-d9596770-72a8-11ec-8c4b-cb281099ee02", + "name": "5de4021e-f3ba-4155-83c6-d44937ad4564:panel_5de4021e-f3ba-4155-83c6-d44937ad4564", + "type": "visualization" + }, + { + "id": "netskope-83fa5a10-72a7-11ec-8c4b-cb281099ee02", + "name": "6b88f03d-4441-4081-b031-7af3644a3421:panel_6b88f03d-4441-4081-b031-7af3644a3421", + "type": "visualization" + }, + { + "id": "netskope-47132800-72a9-11ec-8c4b-cb281099ee02", + "name": "ebf8e192-7eba-438f-96cc-5e6d80d08fd0:panel_ebf8e192-7eba-438f-96cc-5e6d80d08fd0", + "type": "visualization" + }, + { + "id": "netskope-357672b0-72a8-11ec-8c4b-cb281099ee02", + "name": "6a003a65-76ee-43fa-9f63-a8c96c129fd1:panel_6a003a65-76ee-43fa-9f63-a8c96c129fd1", + "type": "visualization" + }, + { + "id": "netskope-93433ee0-72a9-11ec-8c4b-cb281099ee02", + "name": "942c0bf9-1f9a-4a8a-9f9c-70e32e61d1a4:panel_942c0bf9-1f9a-4a8a-9f9c-70e32e61d1a4", + "type": "visualization" + }, + { + "id": "netskope-c1e088c0-72a9-11ec-8c4b-cb281099ee02", + "name": "51fc9a00-6109-46eb-9264-cfb81fafbb90:panel_51fc9a00-6109-46eb-9264-cfb81fafbb90", + "type": "visualization" + }, + { + "id": "netskope-e8cecff0-72a9-11ec-8c4b-cb281099ee02", + "name": "85ba4c06-11ce-4bfe-ba79-983562383efb:panel_85ba4c06-11ce-4bfe-ba79-983562383efb", + "type": "visualization" + }, + { + "id": "netskope-0e9511e0-72aa-11ec-8c4b-cb281099ee02", + "name": "2209097a-5361-4924-b89b-30cb69fc1aa9:panel_2209097a-5361-4924-b89b-30cb69fc1aa9", + "type": "visualization" + }, + { + "id": "netskope-abcc6a30-72aa-11ec-8c4b-cb281099ee02", + "name": "313214f2-83b2-41eb-98f6-d2e061b84267:panel_313214f2-83b2-41eb-98f6-d2e061b84267", + "type": "visualization" + }, + { + "id": "netskope-a3c6c270-745f-11ec-8c4b-cb281099ee02", + "name": "18e2231e-c783-4353-a799-b41f01154e97:panel_18e2231e-c783-4353-a799-b41f01154e97", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/dashboard/netskope-a03670f0-7208-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/dashboard/netskope-a03670f0-7208-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..0c48984958 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/dashboard/netskope-a03670f0-7208-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,182 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"uba\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"uba\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3b340e55-d9eb-4304-a0d3-583150bd54eb\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"3b340e55-d9eb-4304-a0d3-583150bd54eb\",\"panelRefName\":\"panel_3b340e55-d9eb-4304-a0d3-583150bd54eb\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"df123261-3370-4572-b118-09a2654264f2\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"df123261-3370-4572-b118-09a2654264f2\",\"panelRefName\":\"panel_df123261-3370-4572-b118-09a2654264f2\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"649b0d8e-5d17-411d-9117-a63ad74960f1\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"649b0d8e-5d17-411d-9117-a63ad74960f1\",\"panelRefName\":\"panel_649b0d8e-5d17-411d-9117-a63ad74960f1\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"92b99046-01c4-413a-84dd-93ad174171b0\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"92b99046-01c4-413a-84dd-93ad174171b0\",\"panelRefName\":\"panel_92b99046-01c4-413a-84dd-93ad174171b0\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"aa10cc62-fe46-420a-88fc-9df0b78e58c1\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"aa10cc62-fe46-420a-88fc-9df0b78e58c1\",\"panelRefName\":\"panel_aa10cc62-fe46-420a-88fc-9df0b78e58c1\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"3d78958c-581d-4ad4-a768-346a4f234b25\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"3d78958c-581d-4ad4-a768-346a4f234b25\",\"panelRefName\":\"panel_3d78958c-581d-4ad4-a768-346a4f234b25\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"cee9c637-74f0-42bd-8a30-7c8b8cb4ed01\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"cee9c637-74f0-42bd-8a30-7c8b8cb4ed01\",\"panelRefName\":\"panel_cee9c637-74f0-42bd-8a30-7c8b8cb4ed01\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"9422ea18-43fb-4271-9c06-bfb40b9f9c78\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"9422ea18-43fb-4271-9c06-bfb40b9f9c78\",\"panelRefName\":\"panel_9422ea18-43fb-4271-9c06-bfb40b9f9c78\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"e0b7f071-f82f-457c-ad45-de3f45cd9ee8\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"e0b7f071-f82f-457c-ad45-de3f45cd9ee8\",\"panelRefName\":\"panel_e0b7f071-f82f-457c-ad45-de3f45cd9ee8\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"table\":null,\"vis\":{\"params\":{\"colWidth\":[{\"colIndex\":0,\"width\":162},{\"colIndex\":1,\"width\":355.5}]}}},\"gridData\":{\"h\":15,\"i\":\"b205b75e-5675-49ed-90d3-f183e7b80d2f\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"b205b75e-5675-49ed-90d3-f183e7b80d2f\",\"panelRefName\":\"panel_b205b75e-5675-49ed-90d3-f183e7b80d2f\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5513d359-dd47-44a7-856b-fadc0178aa5f\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"5513d359-dd47-44a7-856b-fadc0178aa5f\",\"panelRefName\":\"panel_5513d359-dd47-44a7-856b-fadc0178aa5f\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"ccf70172-a85b-40e1-a616-b3b1e9a6088c\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"ccf70172-a85b-40e1-a616-b3b1e9a6088c\",\"panelRefName\":\"panel_ccf70172-a85b-40e1-a616-b3b1e9a6088c\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"6c932713-9d4b-430a-a799-6d31b45ecacf\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"6c932713-9d4b-430a-a799-6d31b45ecacf\",\"panelRefName\":\"panel_6c932713-9d4b-430a-a799-6d31b45ecacf\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"c483ecaf-49f8-4dc5-b0f0-0e1339a67d22\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"c483ecaf-49f8-4dc5-b0f0-0e1339a67d22\",\"panelRefName\":\"panel_c483ecaf-49f8-4dc5-b0f0-0e1339a67d22\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"90096c7a-a554-4a30-89a3-7d0d63ea804c\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"90096c7a-a554-4a30-89a3-7d0d63ea804c\",\"panelRefName\":\"panel_90096c7a-a554-4a30-89a3-7d0d63ea804c\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"cd490c17-67ea-4bd1-aa9a-88f1a9c139b5\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"cd490c17-67ea-4bd1-aa9a-88f1a9c139b5\",\"panelRefName\":\"panel_cd490c17-67ea-4bd1-aa9a-88f1a9c139b5\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"0b6ca0f2-57a6-4e90-9592-56bb052d4ca7\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"0b6ca0f2-57a6-4e90-9592-56bb052d4ca7\",\"panelRefName\":\"panel_0b6ca0f2-57a6-4e90-9592-56bb052d4ca7\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"650391d6-5467-4b6e-b529-f89b34cacdee\",\"w\":24,\"x\":0,\"y\":135},\"panelIndex\":\"650391d6-5467-4b6e-b529-f89b34cacdee\",\"panelRefName\":\"panel_650391d6-5467-4b6e-b529-f89b34cacdee\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6b8089ba-e257-40d5-847f-516759ce8475\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"6b8089ba-e257-40d5-847f-516759ce8475\",\"panelRefName\":\"panel_6b8089ba-e257-40d5-847f-516759ce8475\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"2d4098eb-54b0-474e-81b5-75fc222cb341\",\"w\":24,\"x\":0,\"y\":150},\"panelIndex\":\"2d4098eb-54b0-474e-81b5-75fc222cb341\",\"panelRefName\":\"panel_2d4098eb-54b0-474e-81b5-75fc222cb341\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"bbc3957b-53a2-47dd-9760-56f8ceb5289d\",\"w\":24,\"x\":24,\"y\":135},\"panelIndex\":\"bbc3957b-53a2-47dd-9760-56f8ceb5289d\",\"panelRefName\":\"panel_bbc3957b-53a2-47dd-9760-56f8ceb5289d\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"37776b9c-bfc6-4c6f-9079-2c0d23fe4a89\",\"w\":24,\"x\":0,\"y\":165},\"panelIndex\":\"37776b9c-bfc6-4c6f-9079-2c0d23fe4a89\",\"panelRefName\":\"panel_37776b9c-bfc6-4c6f-9079-2c0d23fe4a89\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"690c706e-c8bc-4f19-ab9e-9ba64e268647\",\"w\":24,\"x\":24,\"y\":150},\"panelIndex\":\"690c706e-c8bc-4f19-ab9e-9ba64e268647\",\"panelRefName\":\"panel_690c706e-c8bc-4f19-ab9e-9ba64e268647\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3753bbb6-64ab-4b10-8526-232375c9da38\",\"w\":24,\"x\":0,\"y\":180},\"panelIndex\":\"3753bbb6-64ab-4b10-8526-232375c9da38\",\"panelRefName\":\"panel_3753bbb6-64ab-4b10-8526-232375c9da38\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"ebec8d00-4d63-44cd-9970-4882fcf5108f\",\"w\":24,\"x\":24,\"y\":165},\"panelIndex\":\"ebec8d00-4d63-44cd-9970-4882fcf5108f\",\"panelRefName\":\"panel_ebec8d00-4d63-44cd-9970-4882fcf5108f\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"97611e00-8013-43c4-856d-54b0e78313d5\",\"w\":24,\"x\":0,\"y\":195},\"panelIndex\":\"97611e00-8013-43c4-856d-54b0e78313d5\",\"panelRefName\":\"panel_97611e00-8013-43c4-856d-54b0e78313d5\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"32296ddd-d26c-431a-8227-7ee72592cb3e\",\"w\":24,\"x\":24,\"y\":180},\"panelIndex\":\"32296ddd-d26c-431a-8227-7ee72592cb3e\",\"panelRefName\":\"panel_32296ddd-d26c-431a-8227-7ee72592cb3e\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"1394aa3a-d711-4634-9623-5dbaff400068\",\"w\":24,\"x\":0,\"y\":210},\"panelIndex\":\"1394aa3a-d711-4634-9623-5dbaff400068\",\"panelRefName\":\"panel_1394aa3a-d711-4634-9623-5dbaff400068\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"4812c275-ae66-4de9-913e-4ebe6b8a7782\",\"w\":24,\"x\":24,\"y\":195},\"panelIndex\":\"4812c275-ae66-4de9-913e-4ebe6b8a7782\",\"panelRefName\":\"panel_4812c275-ae66-4de9-913e-4ebe6b8a7782\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5a0aad03-2a3b-4dcf-97d0-dc6799f2cccc\",\"w\":24,\"x\":0,\"y\":225},\"panelIndex\":\"5a0aad03-2a3b-4dcf-97d0-dc6799f2cccc\",\"panelRefName\":\"panel_5a0aad03-2a3b-4dcf-97d0-dc6799f2cccc\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"2be4e6e2-c325-4e05-9ed7-bb4534507f5a\",\"w\":24,\"x\":24,\"y\":210},\"panelIndex\":\"2be4e6e2-c325-4e05-9ed7-bb4534507f5a\",\"panelRefName\":\"panel_2be4e6e2-c325-4e05-9ed7-bb4534507f5a\",\"type\":\"visualization\",\"version\":\"7.16.2\"}]", + "timeRestore": false, + "title": "[Netskope][Alerts] UBA", + "version": 1 + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-a03670f0-7208-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "netskope-f1c99420-7207-11ec-8c4b-cb281099ee02", + "name": "3b340e55-d9eb-4304-a0d3-583150bd54eb:panel_3b340e55-d9eb-4304-a0d3-583150bd54eb", + "type": "visualization" + }, + { + "id": "netskope-a8fb1770-720a-11ec-8c4b-cb281099ee02", + "name": "df123261-3370-4572-b118-09a2654264f2:panel_df123261-3370-4572-b118-09a2654264f2", + "type": "visualization" + }, + { + "id": "netskope-304fa1c0-7209-11ec-8c4b-cb281099ee02", + "name": "649b0d8e-5d17-411d-9117-a63ad74960f1:panel_649b0d8e-5d17-411d-9117-a63ad74960f1", + "type": "visualization" + }, + { + "id": "netskope-e9bc9d80-7208-11ec-8c4b-cb281099ee02", + "name": "92b99046-01c4-413a-84dd-93ad174171b0:panel_92b99046-01c4-413a-84dd-93ad174171b0", + "type": "visualization" + }, + { + "id": "netskope-bc70e470-7209-11ec-8c4b-cb281099ee02", + "name": "aa10cc62-fe46-420a-88fc-9df0b78e58c1:panel_aa10cc62-fe46-420a-88fc-9df0b78e58c1", + "type": "visualization" + }, + { + "id": "netskope-7f9d2540-7209-11ec-8c4b-cb281099ee02", + "name": "3d78958c-581d-4ad4-a768-346a4f234b25:panel_3d78958c-581d-4ad4-a768-346a4f234b25", + "type": "visualization" + }, + { + "id": "netskope-648c79d0-720a-11ec-8c4b-cb281099ee02", + "name": "cee9c637-74f0-42bd-8a30-7c8b8cb4ed01:panel_cee9c637-74f0-42bd-8a30-7c8b8cb4ed01", + "type": "visualization" + }, + { + "id": "netskope-03150a40-720b-11ec-8c4b-cb281099ee02", + "name": "9422ea18-43fb-4271-9c06-bfb40b9f9c78:panel_9422ea18-43fb-4271-9c06-bfb40b9f9c78", + "type": "visualization" + }, + { + "id": "netskope-0922ae70-720a-11ec-8c4b-cb281099ee02", + "name": "e0b7f071-f82f-457c-ad45-de3f45cd9ee8:panel_e0b7f071-f82f-457c-ad45-de3f45cd9ee8", + "type": "visualization" + }, + { + "id": "netskope-3ec223c0-720b-11ec-8c4b-cb281099ee02", + "name": "b205b75e-5675-49ed-90d3-f183e7b80d2f:panel_b205b75e-5675-49ed-90d3-f183e7b80d2f", + "type": "visualization" + }, + { + "id": "netskope-301d9fd0-720a-11ec-8c4b-cb281099ee02", + "name": "5513d359-dd47-44a7-856b-fadc0178aa5f:panel_5513d359-dd47-44a7-856b-fadc0178aa5f", + "type": "visualization" + }, + { + "id": "netskope-2b81f870-71da-11ec-8c4b-cb281099ee02", + "name": "ccf70172-a85b-40e1-a616-b3b1e9a6088c:panel_ccf70172-a85b-40e1-a616-b3b1e9a6088c", + "type": "visualization" + }, + { + "id": "netskope-5f452920-71da-11ec-8c4b-cb281099ee02", + "name": "6c932713-9d4b-430a-a799-6d31b45ecacf:panel_6c932713-9d4b-430a-a799-6d31b45ecacf", + "type": "visualization" + }, + { + "id": "netskope-9b93d9d0-71da-11ec-8c4b-cb281099ee02", + "name": "c483ecaf-49f8-4dc5-b0f0-0e1339a67d22:panel_c483ecaf-49f8-4dc5-b0f0-0e1339a67d22", + "type": "visualization" + }, + { + "id": "netskope-ca5610d0-71da-11ec-8c4b-cb281099ee02", + "name": "90096c7a-a554-4a30-89a3-7d0d63ea804c:panel_90096c7a-a554-4a30-89a3-7d0d63ea804c", + "type": "visualization" + }, + { + "id": "netskope-37409a80-71db-11ec-8c4b-cb281099ee02", + "name": "cd490c17-67ea-4bd1-aa9a-88f1a9c139b5:panel_cd490c17-67ea-4bd1-aa9a-88f1a9c139b5", + "type": "visualization" + }, + { + "id": "netskope-7f8d83c0-71db-11ec-8c4b-cb281099ee02", + "name": "0b6ca0f2-57a6-4e90-9592-56bb052d4ca7:panel_0b6ca0f2-57a6-4e90-9592-56bb052d4ca7", + "type": "visualization" + }, + { + "id": "netskope-4a1cfbc0-71dc-11ec-8c4b-cb281099ee02", + "name": "650391d6-5467-4b6e-b529-f89b34cacdee:panel_650391d6-5467-4b6e-b529-f89b34cacdee", + "type": "visualization" + }, + { + "id": "netskope-bc859e60-71dc-11ec-8c4b-cb281099ee02", + "name": "6b8089ba-e257-40d5-847f-516759ce8475:panel_6b8089ba-e257-40d5-847f-516759ce8475", + "type": "visualization" + }, + { + "id": "netskope-26d9c5c0-71dd-11ec-8c4b-cb281099ee02", + "name": "2d4098eb-54b0-474e-81b5-75fc222cb341:panel_2d4098eb-54b0-474e-81b5-75fc222cb341", + "type": "visualization" + }, + { + "id": "netskope-55b418a0-71dd-11ec-8c4b-cb281099ee02", + "name": "bbc3957b-53a2-47dd-9760-56f8ceb5289d:panel_bbc3957b-53a2-47dd-9760-56f8ceb5289d", + "type": "visualization" + }, + { + "id": "netskope-7f41e9e0-71dd-11ec-8c4b-cb281099ee02", + "name": "37776b9c-bfc6-4c6f-9079-2c0d23fe4a89:panel_37776b9c-bfc6-4c6f-9079-2c0d23fe4a89", + "type": "visualization" + }, + { + "id": "netskope-a4745040-71dd-11ec-8c4b-cb281099ee02", + "name": "690c706e-c8bc-4f19-ab9e-9ba64e268647:panel_690c706e-c8bc-4f19-ab9e-9ba64e268647", + "type": "visualization" + }, + { + "id": "netskope-cab84db0-71dd-11ec-8c4b-cb281099ee02", + "name": "3753bbb6-64ab-4b10-8526-232375c9da38:panel_3753bbb6-64ab-4b10-8526-232375c9da38", + "type": "visualization" + }, + { + "id": "netskope-8705deb0-71de-11ec-8c4b-cb281099ee02", + "name": "ebec8d00-4d63-44cd-9970-4882fcf5108f:panel_ebec8d00-4d63-44cd-9970-4882fcf5108f", + "type": "visualization" + }, + { + "id": "netskope-f4fb96d0-71de-11ec-8c4b-cb281099ee02", + "name": "97611e00-8013-43c4-856d-54b0e78313d5:panel_97611e00-8013-43c4-856d-54b0e78313d5", + "type": "visualization" + }, + { + "id": "netskope-1b3226c0-71df-11ec-8c4b-cb281099ee02", + "name": "32296ddd-d26c-431a-8227-7ee72592cb3e:panel_32296ddd-d26c-431a-8227-7ee72592cb3e", + "type": "visualization" + }, + { + "id": "netskope-8efd9840-71e0-11ec-8c4b-cb281099ee02", + "name": "1394aa3a-d711-4634-9623-5dbaff400068:panel_1394aa3a-d711-4634-9623-5dbaff400068", + "type": "visualization" + }, + { + "id": "netskope-d1189e60-71df-11ec-8c4b-cb281099ee02", + "name": "4812c275-ae66-4de9-913e-4ebe6b8a7782:panel_4812c275-ae66-4de9-913e-4ebe6b8a7782", + "type": "visualization" + }, + { + "id": "netskope-662de6e0-71e0-11ec-8c4b-cb281099ee02", + "name": "5a0aad03-2a3b-4dcf-97d0-dc6799f2cccc:panel_5a0aad03-2a3b-4dcf-97d0-dc6799f2cccc", + "type": "visualization" + }, + { + "id": "netskope-b0b26610-71df-11ec-8c4b-cb281099ee02", + "name": "2be4e6e2-c325-4e05-9ed7-bb4534507f5a:panel_2be4e6e2-c325-4e05-9ed7-bb4534507f5a", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/dashboard/netskope-ae3f6d70-71e3-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/dashboard/netskope-ae3f6d70-71e3-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..1ef5de3f2e --- /dev/null +++ b/packages/netskope/1.0.0/kibana/dashboard/netskope-ae3f6d70-71e3-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,137 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"policy\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"policy\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"baaf2231-c596-479b-b0ad-238fc8c7405f\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"baaf2231-c596-479b-b0ad-238fc8c7405f\",\"panelRefName\":\"panel_baaf2231-c596-479b-b0ad-238fc8c7405f\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"4202f297-6899-4b88-8d71-286c85369671\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"4202f297-6899-4b88-8d71-286c85369671\",\"panelRefName\":\"panel_4202f297-6899-4b88-8d71-286c85369671\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"5a6d5d65-1709-4f03-8bfb-f8fc721c932d\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"5a6d5d65-1709-4f03-8bfb-f8fc721c932d\",\"panelRefName\":\"panel_5a6d5d65-1709-4f03-8bfb-f8fc721c932d\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"714f5073-96fc-4838-a2b3-987a3b62bc33\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"714f5073-96fc-4838-a2b3-987a3b62bc33\",\"panelRefName\":\"panel_714f5073-96fc-4838-a2b3-987a3b62bc33\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"323b1896-5cd9-4382-982c-7be72721ae48\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"323b1896-5cd9-4382-982c-7be72721ae48\",\"panelRefName\":\"panel_323b1896-5cd9-4382-982c-7be72721ae48\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"bf72a578-2949-4de8-b4de-5d56b067efd0\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"bf72a578-2949-4de8-b4de-5d56b067efd0\",\"panelRefName\":\"panel_bf72a578-2949-4de8-b4de-5d56b067efd0\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"069358fe-da68-4d45-a0f0-aa7eaa4c1db7\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"069358fe-da68-4d45-a0f0-aa7eaa4c1db7\",\"panelRefName\":\"panel_069358fe-da68-4d45-a0f0-aa7eaa4c1db7\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f4521dff-0b61-4d7c-b86d-8cd3fe341b61\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"f4521dff-0b61-4d7c-b86d-8cd3fe341b61\",\"panelRefName\":\"panel_f4521dff-0b61-4d7c-b86d-8cd3fe341b61\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"ca498f3d-dee7-4ad3-ad0b-92e9719890f6\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"ca498f3d-dee7-4ad3-ad0b-92e9719890f6\",\"panelRefName\":\"panel_ca498f3d-dee7-4ad3-ad0b-92e9719890f6\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f7bb1094-f089-4f2d-98b2-8ad73597a045\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"f7bb1094-f089-4f2d-98b2-8ad73597a045\",\"panelRefName\":\"panel_f7bb1094-f089-4f2d-98b2-8ad73597a045\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"648b3fc0-5826-4478-a8a8-be02ec93b757\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"648b3fc0-5826-4478-a8a8-be02ec93b757\",\"panelRefName\":\"panel_648b3fc0-5826-4478-a8a8-be02ec93b757\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"5ac14a5f-c30a-4e76-8d13-984f21ceb9ba\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"5ac14a5f-c30a-4e76-8d13-984f21ceb9ba\",\"panelRefName\":\"panel_5ac14a5f-c30a-4e76-8d13-984f21ceb9ba\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"365a5a5d-0a5a-4723-935c-346fafc76c55\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"365a5a5d-0a5a-4723-935c-346fafc76c55\",\"panelRefName\":\"panel_365a5a5d-0a5a-4723-935c-346fafc76c55\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8dce8a31-9c43-4a5c-afcd-a0ca9cdda312\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"8dce8a31-9c43-4a5c-afcd-a0ca9cdda312\",\"panelRefName\":\"panel_8dce8a31-9c43-4a5c-afcd-a0ca9cdda312\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6bfbea77-62ee-49f6-a0c4-d38b5894a137\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"6bfbea77-62ee-49f6-a0c4-d38b5894a137\",\"panelRefName\":\"panel_6bfbea77-62ee-49f6-a0c4-d38b5894a137\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"fd2a100e-72d7-4432-8fdf-2b8185964894\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"fd2a100e-72d7-4432-8fdf-2b8185964894\",\"panelRefName\":\"panel_fd2a100e-72d7-4432-8fdf-2b8185964894\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"0a553ef7-103e-495c-9e6d-3e3fe2945fbe\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"0a553ef7-103e-495c-9e6d-3e3fe2945fbe\",\"panelRefName\":\"panel_0a553ef7-103e-495c-9e6d-3e3fe2945fbe\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"d7e9ce08-5c56-4606-a7c9-afc702edee17\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"d7e9ce08-5c56-4606-a7c9-afc702edee17\",\"panelRefName\":\"panel_d7e9ce08-5c56-4606-a7c9-afc702edee17\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"36f7a988-2b45-4ce1-b613-5a97f2708865\",\"w\":24,\"x\":0,\"y\":135},\"panelIndex\":\"36f7a988-2b45-4ce1-b613-5a97f2708865\",\"panelRefName\":\"panel_36f7a988-2b45-4ce1-b613-5a97f2708865\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"cbc5ad63-8ee6-4f93-8502-60ceb118e14e\",\"w\":24,\"x\":24,\"y\":135},\"panelIndex\":\"cbc5ad63-8ee6-4f93-8502-60ceb118e14e\",\"panelRefName\":\"panel_cbc5ad63-8ee6-4f93-8502-60ceb118e14e\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"162ca71c-5ea9-44d1-9667-c48682cd7292\",\"w\":24,\"x\":24,\"y\":150},\"panelIndex\":\"162ca71c-5ea9-44d1-9667-c48682cd7292\",\"panelRefName\":\"panel_162ca71c-5ea9-44d1-9667-c48682cd7292\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"4e858190-599f-4e73-8772-c8a0d3fe103f\",\"w\":24,\"x\":0,\"y\":150},\"panelIndex\":\"4e858190-599f-4e73-8772-c8a0d3fe103f\",\"panelRefName\":\"panel_4e858190-599f-4e73-8772-c8a0d3fe103f\",\"type\":\"visualization\",\"version\":\"7.16.2\"}]", + "timeRestore": false, + "title": "[Netskope][Alerts] Policy", + "version": 1 + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-ae3f6d70-71e3-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "netskope-5def8dc0-71e6-11ec-8c4b-cb281099ee02", + "name": "baaf2231-c596-479b-b0ad-238fc8c7405f:panel_baaf2231-c596-479b-b0ad-238fc8c7405f", + "type": "visualization" + }, + { + "id": "netskope-5f452920-71da-11ec-8c4b-cb281099ee02", + "name": "4202f297-6899-4b88-8d71-286c85369671:panel_4202f297-6899-4b88-8d71-286c85369671", + "type": "visualization" + }, + { + "id": "netskope-2b81f870-71da-11ec-8c4b-cb281099ee02", + "name": "5a6d5d65-1709-4f03-8bfb-f8fc721c932d:panel_5a6d5d65-1709-4f03-8bfb-f8fc721c932d", + "type": "visualization" + }, + { + "id": "netskope-ca5610d0-71da-11ec-8c4b-cb281099ee02", + "name": "714f5073-96fc-4838-a2b3-987a3b62bc33:panel_714f5073-96fc-4838-a2b3-987a3b62bc33", + "type": "visualization" + }, + { + "id": "netskope-9b93d9d0-71da-11ec-8c4b-cb281099ee02", + "name": "323b1896-5cd9-4382-982c-7be72721ae48:panel_323b1896-5cd9-4382-982c-7be72721ae48", + "type": "visualization" + }, + { + "id": "netskope-7f8d83c0-71db-11ec-8c4b-cb281099ee02", + "name": "bf72a578-2949-4de8-b4de-5d56b067efd0:panel_bf72a578-2949-4de8-b4de-5d56b067efd0", + "type": "visualization" + }, + { + "id": "netskope-37409a80-71db-11ec-8c4b-cb281099ee02", + "name": "069358fe-da68-4d45-a0f0-aa7eaa4c1db7:panel_069358fe-da68-4d45-a0f0-aa7eaa4c1db7", + "type": "visualization" + }, + { + "id": "netskope-bc859e60-71dc-11ec-8c4b-cb281099ee02", + "name": "f4521dff-0b61-4d7c-b86d-8cd3fe341b61:panel_f4521dff-0b61-4d7c-b86d-8cd3fe341b61", + "type": "visualization" + }, + { + "id": "netskope-4a1cfbc0-71dc-11ec-8c4b-cb281099ee02", + "name": "ca498f3d-dee7-4ad3-ad0b-92e9719890f6:panel_ca498f3d-dee7-4ad3-ad0b-92e9719890f6", + "type": "visualization" + }, + { + "id": "netskope-55b418a0-71dd-11ec-8c4b-cb281099ee02", + "name": "f7bb1094-f089-4f2d-98b2-8ad73597a045:panel_f7bb1094-f089-4f2d-98b2-8ad73597a045", + "type": "visualization" + }, + { + "id": "netskope-26d9c5c0-71dd-11ec-8c4b-cb281099ee02", + "name": "648b3fc0-5826-4478-a8a8-be02ec93b757:panel_648b3fc0-5826-4478-a8a8-be02ec93b757", + "type": "visualization" + }, + { + "id": "netskope-a4745040-71dd-11ec-8c4b-cb281099ee02", + "name": "5ac14a5f-c30a-4e76-8d13-984f21ceb9ba:panel_5ac14a5f-c30a-4e76-8d13-984f21ceb9ba", + "type": "visualization" + }, + { + "id": "netskope-7f41e9e0-71dd-11ec-8c4b-cb281099ee02", + "name": "365a5a5d-0a5a-4723-935c-346fafc76c55:panel_365a5a5d-0a5a-4723-935c-346fafc76c55", + "type": "visualization" + }, + { + "id": "netskope-8705deb0-71de-11ec-8c4b-cb281099ee02", + "name": "8dce8a31-9c43-4a5c-afcd-a0ca9cdda312:panel_8dce8a31-9c43-4a5c-afcd-a0ca9cdda312", + "type": "visualization" + }, + { + "id": "netskope-cab84db0-71dd-11ec-8c4b-cb281099ee02", + "name": "6bfbea77-62ee-49f6-a0c4-d38b5894a137:panel_6bfbea77-62ee-49f6-a0c4-d38b5894a137", + "type": "visualization" + }, + { + "id": "netskope-1b3226c0-71df-11ec-8c4b-cb281099ee02", + "name": "fd2a100e-72d7-4432-8fdf-2b8185964894:panel_fd2a100e-72d7-4432-8fdf-2b8185964894", + "type": "visualization" + }, + { + "id": "netskope-f4fb96d0-71de-11ec-8c4b-cb281099ee02", + "name": "0a553ef7-103e-495c-9e6d-3e3fe2945fbe:panel_0a553ef7-103e-495c-9e6d-3e3fe2945fbe", + "type": "visualization" + }, + { + "id": "netskope-7edc5f60-71df-11ec-8c4b-cb281099ee02", + "name": "d7e9ce08-5c56-4606-a7c9-afc702edee17:panel_d7e9ce08-5c56-4606-a7c9-afc702edee17", + "type": "visualization" + }, + { + "id": "netskope-662de6e0-71e0-11ec-8c4b-cb281099ee02", + "name": "36f7a988-2b45-4ce1-b613-5a97f2708865:panel_36f7a988-2b45-4ce1-b613-5a97f2708865", + "type": "visualization" + }, + { + "id": "netskope-b0b26610-71df-11ec-8c4b-cb281099ee02", + "name": "cbc5ad63-8ee6-4f93-8502-60ceb118e14e:panel_cbc5ad63-8ee6-4f93-8502-60ceb118e14e", + "type": "visualization" + }, + { + "id": "netskope-d1189e60-71df-11ec-8c4b-cb281099ee02", + "name": "162ca71c-5ea9-44d1-9667-c48682cd7292:panel_162ca71c-5ea9-44d1-9667-c48682cd7292", + "type": "visualization" + }, + { + "id": "netskope-8efd9840-71e0-11ec-8c4b-cb281099ee02", + "name": "4e858190-599f-4e73-8772-c8a0d3fe103f:panel_4e858190-599f-4e73-8772-c8a0d3fe103f", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/dashboard/netskope-e538e5c0-71ea-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/dashboard/netskope-e538e5c0-71ea-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..36550b0059 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/dashboard/netskope-e538e5c0-71ea-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,147 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"DLP\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"DLP\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"729f9e92-d075-4a1a-bcf0-db456d39e724\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"729f9e92-d075-4a1a-bcf0-db456d39e724\",\"panelRefName\":\"panel_729f9e92-d075-4a1a-bcf0-db456d39e724\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"1c47cf4d-6ec1-48fd-9db4-237bbf50dcde\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"1c47cf4d-6ec1-48fd-9db4-237bbf50dcde\",\"panelRefName\":\"panel_1c47cf4d-6ec1-48fd-9db4-237bbf50dcde\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"66cb1e9c-2f52-409e-9c62-0ad6b92cdfcc\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"66cb1e9c-2f52-409e-9c62-0ad6b92cdfcc\",\"panelRefName\":\"panel_66cb1e9c-2f52-409e-9c62-0ad6b92cdfcc\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"e77aa5dc-d13c-47fe-b1a0-9d31fef6f43c\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"e77aa5dc-d13c-47fe-b1a0-9d31fef6f43c\",\"panelRefName\":\"panel_e77aa5dc-d13c-47fe-b1a0-9d31fef6f43c\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"92b187cb-5b44-404e-890b-fa8326868e36\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"92b187cb-5b44-404e-890b-fa8326868e36\",\"panelRefName\":\"panel_92b187cb-5b44-404e-890b-fa8326868e36\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"89cb7e35-d97e-4c2e-9d1c-49bf3825bfe9\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"89cb7e35-d97e-4c2e-9d1c-49bf3825bfe9\",\"panelRefName\":\"panel_89cb7e35-d97e-4c2e-9d1c-49bf3825bfe9\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"23dfb547-1341-4b1a-9011-02f307aed221\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"23dfb547-1341-4b1a-9011-02f307aed221\",\"panelRefName\":\"panel_23dfb547-1341-4b1a-9011-02f307aed221\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"2c03ec65-55cd-4a12-8949-3e4e0bf0fc4b\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"2c03ec65-55cd-4a12-8949-3e4e0bf0fc4b\",\"panelRefName\":\"panel_2c03ec65-55cd-4a12-8949-3e4e0bf0fc4b\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"faced4fb-cc57-4a4e-a51b-5b27fda57ab0\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"faced4fb-cc57-4a4e-a51b-5b27fda57ab0\",\"panelRefName\":\"panel_faced4fb-cc57-4a4e-a51b-5b27fda57ab0\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"a2bf7e9f-4500-4848-b180-0a567d702d6b\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"a2bf7e9f-4500-4848-b180-0a567d702d6b\",\"panelRefName\":\"panel_a2bf7e9f-4500-4848-b180-0a567d702d6b\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"55bda241-c95f-4c9f-ad5b-8a199890b163\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"55bda241-c95f-4c9f-ad5b-8a199890b163\",\"panelRefName\":\"panel_55bda241-c95f-4c9f-ad5b-8a199890b163\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8eee17e1-802f-47f7-b29d-669762b68849\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"8eee17e1-802f-47f7-b29d-669762b68849\",\"panelRefName\":\"panel_8eee17e1-802f-47f7-b29d-669762b68849\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"9175a01c-5781-4771-b5ab-fceaf12bfcc7\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"9175a01c-5781-4771-b5ab-fceaf12bfcc7\",\"panelRefName\":\"panel_9175a01c-5781-4771-b5ab-fceaf12bfcc7\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"decfcd4a-6565-43ab-bccf-0ba7a992fd94\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"decfcd4a-6565-43ab-bccf-0ba7a992fd94\",\"panelRefName\":\"panel_decfcd4a-6565-43ab-bccf-0ba7a992fd94\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"41f74a84-f471-4895-9443-cdf02a955cd8\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"41f74a84-f471-4895-9443-cdf02a955cd8\",\"panelRefName\":\"panel_41f74a84-f471-4895-9443-cdf02a955cd8\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"ce4172c4-1b4c-498a-8ee2-65af0c6a9cd0\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"ce4172c4-1b4c-498a-8ee2-65af0c6a9cd0\",\"panelRefName\":\"panel_ce4172c4-1b4c-498a-8ee2-65af0c6a9cd0\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f3a73b11-012a-4517-9a2f-623494321346\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"f3a73b11-012a-4517-9a2f-623494321346\",\"panelRefName\":\"panel_f3a73b11-012a-4517-9a2f-623494321346\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f43a0df7-6e17-4523-891c-04e65c22ad22\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"f43a0df7-6e17-4523-891c-04e65c22ad22\",\"panelRefName\":\"panel_f43a0df7-6e17-4523-891c-04e65c22ad22\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"774541fd-cefb-422b-ac26-12f4b8528e7e\",\"w\":24,\"x\":0,\"y\":135},\"panelIndex\":\"774541fd-cefb-422b-ac26-12f4b8528e7e\",\"panelRefName\":\"panel_774541fd-cefb-422b-ac26-12f4b8528e7e\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"38569123-9613-46c8-ae0f-10f87bee71ed\",\"w\":24,\"x\":24,\"y\":135},\"panelIndex\":\"38569123-9613-46c8-ae0f-10f87bee71ed\",\"panelRefName\":\"panel_38569123-9613-46c8-ae0f-10f87bee71ed\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"a9d1659e-0caf-416c-8520-f96b7e765fb1\",\"w\":24,\"x\":0,\"y\":150},\"panelIndex\":\"a9d1659e-0caf-416c-8520-f96b7e765fb1\",\"panelRefName\":\"panel_a9d1659e-0caf-416c-8520-f96b7e765fb1\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"1e02ac55-c2e1-4383-a282-129bcf97ef4f\",\"w\":24,\"x\":24,\"y\":150},\"panelIndex\":\"1e02ac55-c2e1-4383-a282-129bcf97ef4f\",\"panelRefName\":\"panel_1e02ac55-c2e1-4383-a282-129bcf97ef4f\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"89576865-7807-4305-abee-1b92248de9fc\",\"w\":24,\"x\":0,\"y\":165},\"panelIndex\":\"89576865-7807-4305-abee-1b92248de9fc\",\"panelRefName\":\"panel_89576865-7807-4305-abee-1b92248de9fc\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"2b3e3a8f-4689-4aad-a5ef-8380200768c0\",\"w\":24,\"x\":24,\"y\":165},\"panelIndex\":\"2b3e3a8f-4689-4aad-a5ef-8380200768c0\",\"panelRefName\":\"panel_2b3e3a8f-4689-4aad-a5ef-8380200768c0\",\"type\":\"visualization\",\"version\":\"7.16.2\"}]", + "timeRestore": false, + "title": "[Netskope][Alerts] DLP", + "version": 1 + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-e538e5c0-71ea-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "netskope-516130e0-71eb-11ec-8c4b-cb281099ee02", + "name": "729f9e92-d075-4a1a-bcf0-db456d39e724:panel_729f9e92-d075-4a1a-bcf0-db456d39e724", + "type": "visualization" + }, + { + "id": "netskope-25b07fa0-71eb-11ec-8c4b-cb281099ee02", + "name": "1c47cf4d-6ec1-48fd-9db4-237bbf50dcde:panel_1c47cf4d-6ec1-48fd-9db4-237bbf50dcde", + "type": "visualization" + }, + { + "id": "netskope-2b81f870-71da-11ec-8c4b-cb281099ee02", + "name": "66cb1e9c-2f52-409e-9c62-0ad6b92cdfcc:panel_66cb1e9c-2f52-409e-9c62-0ad6b92cdfcc", + "type": "visualization" + }, + { + "id": "netskope-5f452920-71da-11ec-8c4b-cb281099ee02", + "name": "e77aa5dc-d13c-47fe-b1a0-9d31fef6f43c:panel_e77aa5dc-d13c-47fe-b1a0-9d31fef6f43c", + "type": "visualization" + }, + { + "id": "netskope-dd1de560-71eb-11ec-8c4b-cb281099ee02", + "name": "92b187cb-5b44-404e-890b-fa8326868e36:panel_92b187cb-5b44-404e-890b-fa8326868e36", + "type": "visualization" + }, + { + "id": "netskope-9b93d9d0-71da-11ec-8c4b-cb281099ee02", + "name": "89cb7e35-d97e-4c2e-9d1c-49bf3825bfe9:panel_89cb7e35-d97e-4c2e-9d1c-49bf3825bfe9", + "type": "visualization" + }, + { + "id": "netskope-ca5610d0-71da-11ec-8c4b-cb281099ee02", + "name": "23dfb547-1341-4b1a-9011-02f307aed221:panel_23dfb547-1341-4b1a-9011-02f307aed221", + "type": "visualization" + }, + { + "id": "netskope-37409a80-71db-11ec-8c4b-cb281099ee02", + "name": "2c03ec65-55cd-4a12-8949-3e4e0bf0fc4b:panel_2c03ec65-55cd-4a12-8949-3e4e0bf0fc4b", + "type": "visualization" + }, + { + "id": "netskope-7f8d83c0-71db-11ec-8c4b-cb281099ee02", + "name": "faced4fb-cc57-4a4e-a51b-5b27fda57ab0:panel_faced4fb-cc57-4a4e-a51b-5b27fda57ab0", + "type": "visualization" + }, + { + "id": "netskope-4a1cfbc0-71dc-11ec-8c4b-cb281099ee02", + "name": "a2bf7e9f-4500-4848-b180-0a567d702d6b:panel_a2bf7e9f-4500-4848-b180-0a567d702d6b", + "type": "visualization" + }, + { + "id": "netskope-bc859e60-71dc-11ec-8c4b-cb281099ee02", + "name": "55bda241-c95f-4c9f-ad5b-8a199890b163:panel_55bda241-c95f-4c9f-ad5b-8a199890b163", + "type": "visualization" + }, + { + "id": "netskope-26d9c5c0-71dd-11ec-8c4b-cb281099ee02", + "name": "8eee17e1-802f-47f7-b29d-669762b68849:panel_8eee17e1-802f-47f7-b29d-669762b68849", + "type": "visualization" + }, + { + "id": "netskope-55b418a0-71dd-11ec-8c4b-cb281099ee02", + "name": "9175a01c-5781-4771-b5ab-fceaf12bfcc7:panel_9175a01c-5781-4771-b5ab-fceaf12bfcc7", + "type": "visualization" + }, + { + "id": "netskope-7f41e9e0-71dd-11ec-8c4b-cb281099ee02", + "name": "decfcd4a-6565-43ab-bccf-0ba7a992fd94:panel_decfcd4a-6565-43ab-bccf-0ba7a992fd94", + "type": "visualization" + }, + { + "id": "netskope-a4745040-71dd-11ec-8c4b-cb281099ee02", + "name": "41f74a84-f471-4895-9443-cdf02a955cd8:panel_41f74a84-f471-4895-9443-cdf02a955cd8", + "type": "visualization" + }, + { + "id": "netskope-cab84db0-71dd-11ec-8c4b-cb281099ee02", + "name": "ce4172c4-1b4c-498a-8ee2-65af0c6a9cd0:panel_ce4172c4-1b4c-498a-8ee2-65af0c6a9cd0", + "type": "visualization" + }, + { + "id": "netskope-8705deb0-71de-11ec-8c4b-cb281099ee02", + "name": "f3a73b11-012a-4517-9a2f-623494321346:panel_f3a73b11-012a-4517-9a2f-623494321346", + "type": "visualization" + }, + { + "id": "netskope-f4fb96d0-71de-11ec-8c4b-cb281099ee02", + "name": "f43a0df7-6e17-4523-891c-04e65c22ad22:panel_f43a0df7-6e17-4523-891c-04e65c22ad22", + "type": "visualization" + }, + { + "id": "netskope-1b3226c0-71df-11ec-8c4b-cb281099ee02", + "name": "774541fd-cefb-422b-ac26-12f4b8528e7e:panel_774541fd-cefb-422b-ac26-12f4b8528e7e", + "type": "visualization" + }, + { + "id": "netskope-7edc5f60-71df-11ec-8c4b-cb281099ee02", + "name": "38569123-9613-46c8-ae0f-10f87bee71ed:panel_38569123-9613-46c8-ae0f-10f87bee71ed", + "type": "visualization" + }, + { + "id": "netskope-662de6e0-71e0-11ec-8c4b-cb281099ee02", + "name": "a9d1659e-0caf-416c-8520-f96b7e765fb1:panel_a9d1659e-0caf-416c-8520-f96b7e765fb1", + "type": "visualization" + }, + { + "id": "netskope-b0b26610-71df-11ec-8c4b-cb281099ee02", + "name": "1e02ac55-c2e1-4383-a282-129bcf97ef4f:panel_1e02ac55-c2e1-4383-a282-129bcf97ef4f", + "type": "visualization" + }, + { + "id": "netskope-8efd9840-71e0-11ec-8c4b-cb281099ee02", + "name": "89576865-7807-4305-abee-1b92248de9fc:panel_89576865-7807-4305-abee-1b92248de9fc", + "type": "visualization" + }, + { + "id": "netskope-d1189e60-71df-11ec-8c4b-cb281099ee02", + "name": "2b3e3a8f-4689-4aad-a5ef-8380200768c0:panel_2b3e3a8f-4689-4aad-a5ef-8380200768c0", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/dashboard/netskope-e6184f90-72b6-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/dashboard/netskope-e6184f90-72b6-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..8f2f13b1cf --- /dev/null +++ b/packages/netskope/1.0.0/kibana/dashboard/netskope-e6184f90-72b6-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,132 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"page\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"page\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"9b39019c-58f4-4613-9109-2865e86acee2\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"9b39019c-58f4-4613-9109-2865e86acee2\",\"panelRefName\":\"panel_9b39019c-58f4-4613-9109-2865e86acee2\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"ad69cae5-30ec-424e-b6b9-44e3d3979273\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"ad69cae5-30ec-424e-b6b9-44e3d3979273\",\"panelRefName\":\"panel_ad69cae5-30ec-424e-b6b9-44e3d3979273\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"8c6f7513-48aa-4457-ab23-7e528bfe1dcd\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"8c6f7513-48aa-4457-ab23-7e528bfe1dcd\",\"panelRefName\":\"panel_8c6f7513-48aa-4457-ab23-7e528bfe1dcd\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"fa6b11ac-3e40-4a52-9596-52d73081690d\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"fa6b11ac-3e40-4a52-9596-52d73081690d\",\"panelRefName\":\"panel_fa6b11ac-3e40-4a52-9596-52d73081690d\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"a1e0af01-0501-4fa8-96ab-b5f8cccd50c3\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"a1e0af01-0501-4fa8-96ab-b5f8cccd50c3\",\"panelRefName\":\"panel_a1e0af01-0501-4fa8-96ab-b5f8cccd50c3\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"ecbf5a0c-05d8-4bdc-9ad6-9f928c7d9745\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"ecbf5a0c-05d8-4bdc-9ad6-9f928c7d9745\",\"panelRefName\":\"panel_ecbf5a0c-05d8-4bdc-9ad6-9f928c7d9745\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"b7a38f86-d6e4-45d5-a490-34a522910597\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"b7a38f86-d6e4-45d5-a490-34a522910597\",\"panelRefName\":\"panel_b7a38f86-d6e4-45d5-a490-34a522910597\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8db6d9a0-afd6-4d8a-9e4c-d85a8b9cccc5\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"8db6d9a0-afd6-4d8a-9e4c-d85a8b9cccc5\",\"panelRefName\":\"panel_8db6d9a0-afd6-4d8a-9e4c-d85a8b9cccc5\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3729697c-99a7-44aa-b08f-956fbdd7fd52\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"3729697c-99a7-44aa-b08f-956fbdd7fd52\",\"panelRefName\":\"panel_3729697c-99a7-44aa-b08f-956fbdd7fd52\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"428a29ce-c3cf-4c1e-8884-28216396972a\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"428a29ce-c3cf-4c1e-8884-28216396972a\",\"panelRefName\":\"panel_428a29ce-c3cf-4c1e-8884-28216396972a\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"8236132e-146b-46b9-80c7-8566b41ac58c\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"8236132e-146b-46b9-80c7-8566b41ac58c\",\"panelRefName\":\"panel_8236132e-146b-46b9-80c7-8566b41ac58c\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"bc8801ce-4f2e-43ee-94f9-7dbed415fa95\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"bc8801ce-4f2e-43ee-94f9-7dbed415fa95\",\"panelRefName\":\"panel_bc8801ce-4f2e-43ee-94f9-7dbed415fa95\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"87729323-edef-43f8-9ec7-b9c3212ba067\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"87729323-edef-43f8-9ec7-b9c3212ba067\",\"panelRefName\":\"panel_87729323-edef-43f8-9ec7-b9c3212ba067\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6ae15ec6-52a8-4037-82f4-0c6d6438a301\",\"w\":24,\"x\":0,\"y\":150},\"panelIndex\":\"6ae15ec6-52a8-4037-82f4-0c6d6438a301\",\"panelRefName\":\"panel_6ae15ec6-52a8-4037-82f4-0c6d6438a301\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"014d7310-feb8-4078-9ff4-4174cf8f0c7a\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"014d7310-feb8-4078-9ff4-4174cf8f0c7a\",\"panelRefName\":\"panel_014d7310-feb8-4078-9ff4-4174cf8f0c7a\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"29065c13-ac1a-49d3-a76e-de75726936ac\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"29065c13-ac1a-49d3-a76e-de75726936ac\",\"panelRefName\":\"panel_29065c13-ac1a-49d3-a76e-de75726936ac\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"49f8d21b-3a7b-4d6e-a478-e815766c292a\",\"w\":24,\"x\":0,\"y\":120},\"panelIndex\":\"49f8d21b-3a7b-4d6e-a478-e815766c292a\",\"panelRefName\":\"panel_49f8d21b-3a7b-4d6e-a478-e815766c292a\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"13b86156-05e3-4be7-98b9-1e4b9833c411\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"13b86156-05e3-4be7-98b9-1e4b9833c411\",\"panelRefName\":\"panel_13b86156-05e3-4be7-98b9-1e4b9833c411\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"fb4d6560-8b66-4ed2-b848-94dcf4d1d8b8\",\"w\":24,\"x\":0,\"y\":135},\"panelIndex\":\"fb4d6560-8b66-4ed2-b848-94dcf4d1d8b8\",\"panelRefName\":\"panel_fb4d6560-8b66-4ed2-b848-94dcf4d1d8b8\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"1aa39804-8029-4770-bc25-e2e94a29e83b\",\"w\":24,\"x\":24,\"y\":120},\"panelIndex\":\"1aa39804-8029-4770-bc25-e2e94a29e83b\",\"panelRefName\":\"panel_1aa39804-8029-4770-bc25-e2e94a29e83b\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"85675e54-cd8f-4ca1-b0a6-e4f2766011e2\",\"w\":24,\"x\":24,\"y\":135},\"panelIndex\":\"85675e54-cd8f-4ca1-b0a6-e4f2766011e2\",\"panelRefName\":\"panel_85675e54-cd8f-4ca1-b0a6-e4f2766011e2\",\"type\":\"visualization\",\"version\":\"7.16.2\"}]", + "timeRestore": false, + "title": "[Netskope][Events] Page", + "version": 1 + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-e6184f90-72b6-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "netskope-914898a0-72af-11ec-8c4b-cb281099ee02", + "name": "9b39019c-58f4-4613-9109-2865e86acee2:panel_9b39019c-58f4-4613-9109-2865e86acee2", + "type": "visualization" + }, + { + "id": "netskope-c01026d0-72af-11ec-8c4b-cb281099ee02", + "name": "ad69cae5-30ec-424e-b6b9-44e3d3979273:panel_ad69cae5-30ec-424e-b6b9-44e3d3979273", + "type": "visualization" + }, + { + "id": "netskope-51bf6fb0-72aa-11ec-8c4b-cb281099ee02", + "name": "8c6f7513-48aa-4457-ab23-7e528bfe1dcd:panel_8c6f7513-48aa-4457-ab23-7e528bfe1dcd", + "type": "visualization" + }, + { + "id": "netskope-0f05ca90-7456-11ec-8c4b-cb281099ee02", + "name": "fa6b11ac-3e40-4a52-9596-52d73081690d:panel_fa6b11ac-3e40-4a52-9596-52d73081690d", + "type": "visualization" + }, + { + "id": "netskope-75f900b0-72b6-11ec-8c4b-cb281099ee02", + "name": "a1e0af01-0501-4fa8-96ab-b5f8cccd50c3:panel_a1e0af01-0501-4fa8-96ab-b5f8cccd50c3", + "type": "visualization" + }, + { + "id": "netskope-528169b0-72b6-11ec-8c4b-cb281099ee02", + "name": "ecbf5a0c-05d8-4bdc-9ad6-9f928c7d9745:panel_ecbf5a0c-05d8-4bdc-9ad6-9f928c7d9745", + "type": "visualization" + }, + { + "id": "netskope-dbcca900-72b6-11ec-8c4b-cb281099ee02", + "name": "b7a38f86-d6e4-45d5-a490-34a522910597:panel_b7a38f86-d6e4-45d5-a490-34a522910597", + "type": "visualization" + }, + { + "id": "netskope-a3e5e650-72b6-11ec-8c4b-cb281099ee02", + "name": "8db6d9a0-afd6-4d8a-9e4c-d85a8b9cccc5:panel_8db6d9a0-afd6-4d8a-9e4c-d85a8b9cccc5", + "type": "visualization" + }, + { + "id": "netskope-40a01500-72db-11ec-8c4b-cb281099ee02", + "name": "3729697c-99a7-44aa-b08f-956fbdd7fd52:panel_3729697c-99a7-44aa-b08f-956fbdd7fd52", + "type": "visualization" + }, + { + "id": "netskope-891546c0-72db-11ec-8c4b-cb281099ee02", + "name": "428a29ce-c3cf-4c1e-8884-28216396972a:panel_428a29ce-c3cf-4c1e-8884-28216396972a", + "type": "visualization" + }, + { + "id": "netskope-06bf2da0-72a7-11ec-8c4b-cb281099ee02", + "name": "8236132e-146b-46b9-80c7-8566b41ac58c:panel_8236132e-146b-46b9-80c7-8566b41ac58c", + "type": "visualization" + }, + { + "id": "netskope-41932530-72a7-11ec-8c4b-cb281099ee02", + "name": "bc8801ce-4f2e-43ee-94f9-7dbed415fa95:panel_bc8801ce-4f2e-43ee-94f9-7dbed415fa95", + "type": "visualization" + }, + { + "id": "netskope-5efbfc00-72a7-11ec-8c4b-cb281099ee02", + "name": "87729323-edef-43f8-9ec7-b9c3212ba067:panel_87729323-edef-43f8-9ec7-b9c3212ba067", + "type": "visualization" + }, + { + "id": "netskope-83fa5a10-72a7-11ec-8c4b-cb281099ee02", + "name": "6ae15ec6-52a8-4037-82f4-0c6d6438a301:panel_6ae15ec6-52a8-4037-82f4-0c6d6438a301", + "type": "visualization" + }, + { + "id": "netskope-d9596770-72a8-11ec-8c4b-cb281099ee02", + "name": "014d7310-feb8-4078-9ff4-4174cf8f0c7a:panel_014d7310-feb8-4078-9ff4-4174cf8f0c7a", + "type": "visualization" + }, + { + "id": "netskope-357672b0-72a8-11ec-8c4b-cb281099ee02", + "name": "29065c13-ac1a-49d3-a76e-de75726936ac:panel_29065c13-ac1a-49d3-a76e-de75726936ac", + "type": "visualization" + }, + { + "id": "netskope-47132800-72a9-11ec-8c4b-cb281099ee02", + "name": "49f8d21b-3a7b-4d6e-a478-e815766c292a:panel_49f8d21b-3a7b-4d6e-a478-e815766c292a", + "type": "visualization" + }, + { + "id": "netskope-c1e088c0-72a9-11ec-8c4b-cb281099ee02", + "name": "13b86156-05e3-4be7-98b9-1e4b9833c411:panel_13b86156-05e3-4be7-98b9-1e4b9833c411", + "type": "visualization" + }, + { + "id": "netskope-93433ee0-72a9-11ec-8c4b-cb281099ee02", + "name": "fb4d6560-8b66-4ed2-b848-94dcf4d1d8b8:panel_fb4d6560-8b66-4ed2-b848-94dcf4d1d8b8", + "type": "visualization" + }, + { + "id": "netskope-0e9511e0-72aa-11ec-8c4b-cb281099ee02", + "name": "1aa39804-8029-4770-bc25-e2e94a29e83b:panel_1aa39804-8029-4770-bc25-e2e94a29e83b", + "type": "visualization" + }, + { + "id": "netskope-abcc6a30-72aa-11ec-8c4b-cb281099ee02", + "name": "85675e54-cd8f-4ca1-b0a6-e4f2766011e2:panel_85675e54-cd8f-4ca1-b0a6-e4f2766011e2", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/dashboard/netskope-f181cba0-71d9-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/dashboard/netskope-f181cba0-71d9-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..f6150287fe --- /dev/null +++ b/packages/netskope/1.0.0/kibana/dashboard/netskope-f181cba0-71d9-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,137 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":5,\"i\":\"7b3d09e3-1987-4202-a3a7-6f0ea3c441d3\",\"w\":48,\"x\":0,\"y\":0},\"panelIndex\":\"7b3d09e3-1987-4202-a3a7-6f0ea3c441d3\",\"panelRefName\":\"panel_7b3d09e3-1987-4202-a3a7-6f0ea3c441d3\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"a6294ee5-eaed-4c98-9e3d-2ddcc1c24649\",\"w\":24,\"x\":0,\"y\":5},\"panelIndex\":\"a6294ee5-eaed-4c98-9e3d-2ddcc1c24649\",\"panelRefName\":\"panel_a6294ee5-eaed-4c98-9e3d-2ddcc1c24649\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"3f9bbd86-5074-4a11-82e0-dd80b2727b63\",\"w\":24,\"x\":24,\"y\":5},\"panelIndex\":\"3f9bbd86-5074-4a11-82e0-dd80b2727b63\",\"panelRefName\":\"panel_3f9bbd86-5074-4a11-82e0-dd80b2727b63\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"758d5f91-4e32-4dba-b9a2-78dd39a2ae33\",\"w\":24,\"x\":0,\"y\":20},\"panelIndex\":\"758d5f91-4e32-4dba-b9a2-78dd39a2ae33\",\"panelRefName\":\"panel_758d5f91-4e32-4dba-b9a2-78dd39a2ae33\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"50a67c99-45bf-4877-a02a-1c2fbabf5a7d\",\"w\":24,\"x\":24,\"y\":20},\"panelIndex\":\"50a67c99-45bf-4877-a02a-1c2fbabf5a7d\",\"panelRefName\":\"panel_50a67c99-45bf-4877-a02a-1c2fbabf5a7d\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"92098d7d-bd52-4b7c-8fc2-c38f0aca5c1a\",\"w\":24,\"x\":0,\"y\":35},\"panelIndex\":\"92098d7d-bd52-4b7c-8fc2-c38f0aca5c1a\",\"panelRefName\":\"panel_92098d7d-bd52-4b7c-8fc2-c38f0aca5c1a\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"e71428cd-6aa7-410e-9401-b00c6661589d\",\"w\":24,\"x\":24,\"y\":35},\"panelIndex\":\"e71428cd-6aa7-410e-9401-b00c6661589d\",\"panelRefName\":\"panel_e71428cd-6aa7-410e-9401-b00c6661589d\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5296e207-4ad5-4936-b802-7a57e9bad6f5\",\"w\":24,\"x\":0,\"y\":50},\"panelIndex\":\"5296e207-4ad5-4936-b802-7a57e9bad6f5\",\"panelRefName\":\"panel_5296e207-4ad5-4936-b802-7a57e9bad6f5\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"e6adbd85-a30a-4210-a05a-0c56c2362657\",\"w\":24,\"x\":24,\"y\":50},\"panelIndex\":\"e6adbd85-a30a-4210-a05a-0c56c2362657\",\"panelRefName\":\"panel_e6adbd85-a30a-4210-a05a-0c56c2362657\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3cbd8e3d-7d76-4ba3-8355-a23cf9465ee2\",\"w\":24,\"x\":0,\"y\":65},\"panelIndex\":\"3cbd8e3d-7d76-4ba3-8355-a23cf9465ee2\",\"panelRefName\":\"panel_3cbd8e3d-7d76-4ba3-8355-a23cf9465ee2\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"a7581748-99c7-4a63-aa09-61a0c039fe4b\",\"w\":24,\"x\":24,\"y\":65},\"panelIndex\":\"a7581748-99c7-4a63-aa09-61a0c039fe4b\",\"panelRefName\":\"panel_a7581748-99c7-4a63-aa09-61a0c039fe4b\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"651622f6-9e33-486b-b996-6fe0a89d3ad9\",\"w\":24,\"x\":0,\"y\":80},\"panelIndex\":\"651622f6-9e33-486b-b996-6fe0a89d3ad9\",\"panelRefName\":\"panel_651622f6-9e33-486b-b996-6fe0a89d3ad9\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"454a5cbd-3538-4448-84fc-b0f83c8a1970\",\"w\":24,\"x\":24,\"y\":80},\"panelIndex\":\"454a5cbd-3538-4448-84fc-b0f83c8a1970\",\"panelRefName\":\"panel_454a5cbd-3538-4448-84fc-b0f83c8a1970\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"bcd9b35e-19ef-42d9-847a-d7518a21b0d9\",\"w\":24,\"x\":0,\"y\":95},\"panelIndex\":\"bcd9b35e-19ef-42d9-847a-d7518a21b0d9\",\"panelRefName\":\"panel_bcd9b35e-19ef-42d9-847a-d7518a21b0d9\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"22dad9c8-4909-4efa-9f59-02a3ca979151\",\"w\":24,\"x\":24,\"y\":95},\"panelIndex\":\"22dad9c8-4909-4efa-9f59-02a3ca979151\",\"panelRefName\":\"panel_22dad9c8-4909-4efa-9f59-02a3ca979151\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8c6ab1fd-e0c5-438b-b0c9-392d90c273b1\",\"w\":24,\"x\":0,\"y\":110},\"panelIndex\":\"8c6ab1fd-e0c5-438b-b0c9-392d90c273b1\",\"panelRefName\":\"panel_8c6ab1fd-e0c5-438b-b0c9-392d90c273b1\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"a5927e76-29f1-4c6b-85e0-ed1dee3de6c9\",\"w\":24,\"x\":24,\"y\":110},\"panelIndex\":\"a5927e76-29f1-4c6b-85e0-ed1dee3de6c9\",\"panelRefName\":\"panel_a5927e76-29f1-4c6b-85e0-ed1dee3de6c9\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"7846948a-db42-497c-b956-ac5d7dd7383d\",\"w\":24,\"x\":0,\"y\":140},\"panelIndex\":\"7846948a-db42-497c-b956-ac5d7dd7383d\",\"panelRefName\":\"panel_7846948a-db42-497c-b956-ac5d7dd7383d\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8cb62986-e557-4d71-8de0-6f88ec7535d8\",\"w\":24,\"x\":24,\"y\":125},\"panelIndex\":\"8cb62986-e557-4d71-8de0-6f88ec7535d8\",\"panelRefName\":\"panel_8cb62986-e557-4d71-8de0-6f88ec7535d8\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"de6f44ab-bef8-4518-bbb0-4afde2144001\",\"w\":24,\"x\":0,\"y\":125},\"panelIndex\":\"de6f44ab-bef8-4518-bbb0-4afde2144001\",\"panelRefName\":\"panel_de6f44ab-bef8-4518-bbb0-4afde2144001\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"b2e8e6c8-d585-49c1-ba49-5a8c4fab5080\",\"w\":24,\"x\":24,\"y\":140},\"panelIndex\":\"b2e8e6c8-d585-49c1-ba49-5a8c4fab5080\",\"panelRefName\":\"panel_b2e8e6c8-d585-49c1-ba49-5a8c4fab5080\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"d1633b77-5ee0-42ed-995f-d5e01cef7d3b\",\"w\":24,\"x\":0,\"y\":155},\"panelIndex\":\"d1633b77-5ee0-42ed-995f-d5e01cef7d3b\",\"panelRefName\":\"panel_d1633b77-5ee0-42ed-995f-d5e01cef7d3b\",\"type\":\"visualization\",\"version\":\"7.16.2\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"17fbf33c-a3be-4e8e-afae-195fb4a37fa8\",\"w\":24,\"x\":24,\"y\":155},\"panelIndex\":\"17fbf33c-a3be-4e8e-afae-195fb4a37fa8\",\"panelRefName\":\"panel_17fbf33c-a3be-4e8e-afae-195fb4a37fa8\",\"type\":\"visualization\",\"version\":\"7.16.2\"}]", + "timeRestore": false, + "title": "[Netskope] Alerts Overview", + "version": 1 + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-f181cba0-71d9-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "dashboard": "7.16.0" + }, + "references": [ + { + "id": "netskope-de309310-71d9-11ec-8c4b-cb281099ee02", + "name": "7b3d09e3-1987-4202-a3a7-6f0ea3c441d3:panel_7b3d09e3-1987-4202-a3a7-6f0ea3c441d3", + "type": "visualization" + }, + { + "id": "netskope-fceec3e0-71dd-11ec-8c4b-cb281099ee02", + "name": "a6294ee5-eaed-4c98-9e3d-2ddcc1c24649:panel_a6294ee5-eaed-4c98-9e3d-2ddcc1c24649", + "type": "visualization" + }, + { + "id": "netskope-5f452920-71da-11ec-8c4b-cb281099ee02", + "name": "3f9bbd86-5074-4a11-82e0-dd80b2727b63:panel_3f9bbd86-5074-4a11-82e0-dd80b2727b63", + "type": "visualization" + }, + { + "id": "netskope-2b81f870-71da-11ec-8c4b-cb281099ee02", + "name": "758d5f91-4e32-4dba-b9a2-78dd39a2ae33:panel_758d5f91-4e32-4dba-b9a2-78dd39a2ae33", + "type": "visualization" + }, + { + "id": "netskope-1b3226c0-71df-11ec-8c4b-cb281099ee02", + "name": "50a67c99-45bf-4877-a02a-1c2fbabf5a7d:panel_50a67c99-45bf-4877-a02a-1c2fbabf5a7d", + "type": "visualization" + }, + { + "id": "netskope-9b93d9d0-71da-11ec-8c4b-cb281099ee02", + "name": "92098d7d-bd52-4b7c-8fc2-c38f0aca5c1a:panel_92098d7d-bd52-4b7c-8fc2-c38f0aca5c1a", + "type": "visualization" + }, + { + "id": "netskope-ca5610d0-71da-11ec-8c4b-cb281099ee02", + "name": "e71428cd-6aa7-410e-9401-b00c6661589d:panel_e71428cd-6aa7-410e-9401-b00c6661589d", + "type": "visualization" + }, + { + "id": "netskope-37409a80-71db-11ec-8c4b-cb281099ee02", + "name": "5296e207-4ad5-4936-b802-7a57e9bad6f5:panel_5296e207-4ad5-4936-b802-7a57e9bad6f5", + "type": "visualization" + }, + { + "id": "netskope-7f8d83c0-71db-11ec-8c4b-cb281099ee02", + "name": "e6adbd85-a30a-4210-a05a-0c56c2362657:panel_e6adbd85-a30a-4210-a05a-0c56c2362657", + "type": "visualization" + }, + { + "id": "netskope-4a1cfbc0-71dc-11ec-8c4b-cb281099ee02", + "name": "3cbd8e3d-7d76-4ba3-8355-a23cf9465ee2:panel_3cbd8e3d-7d76-4ba3-8355-a23cf9465ee2", + "type": "visualization" + }, + { + "id": "netskope-bc859e60-71dc-11ec-8c4b-cb281099ee02", + "name": "a7581748-99c7-4a63-aa09-61a0c039fe4b:panel_a7581748-99c7-4a63-aa09-61a0c039fe4b", + "type": "visualization" + }, + { + "id": "netskope-26d9c5c0-71dd-11ec-8c4b-cb281099ee02", + "name": "651622f6-9e33-486b-b996-6fe0a89d3ad9:panel_651622f6-9e33-486b-b996-6fe0a89d3ad9", + "type": "visualization" + }, + { + "id": "netskope-55b418a0-71dd-11ec-8c4b-cb281099ee02", + "name": "454a5cbd-3538-4448-84fc-b0f83c8a1970:panel_454a5cbd-3538-4448-84fc-b0f83c8a1970", + "type": "visualization" + }, + { + "id": "netskope-7f41e9e0-71dd-11ec-8c4b-cb281099ee02", + "name": "bcd9b35e-19ef-42d9-847a-d7518a21b0d9:panel_bcd9b35e-19ef-42d9-847a-d7518a21b0d9", + "type": "visualization" + }, + { + "id": "netskope-a4745040-71dd-11ec-8c4b-cb281099ee02", + "name": "22dad9c8-4909-4efa-9f59-02a3ca979151:panel_22dad9c8-4909-4efa-9f59-02a3ca979151", + "type": "visualization" + }, + { + "id": "netskope-8705deb0-71de-11ec-8c4b-cb281099ee02", + "name": "8c6ab1fd-e0c5-438b-b0c9-392d90c273b1:panel_8c6ab1fd-e0c5-438b-b0c9-392d90c273b1", + "type": "visualization" + }, + { + "id": "netskope-cab84db0-71dd-11ec-8c4b-cb281099ee02", + "name": "a5927e76-29f1-4c6b-85e0-ed1dee3de6c9:panel_a5927e76-29f1-4c6b-85e0-ed1dee3de6c9", + "type": "visualization" + }, + { + "id": "netskope-662de6e0-71e0-11ec-8c4b-cb281099ee02", + "name": "7846948a-db42-497c-b956-ac5d7dd7383d:panel_7846948a-db42-497c-b956-ac5d7dd7383d", + "type": "visualization" + }, + { + "id": "netskope-f4fb96d0-71de-11ec-8c4b-cb281099ee02", + "name": "8cb62986-e557-4d71-8de0-6f88ec7535d8:panel_8cb62986-e557-4d71-8de0-6f88ec7535d8", + "type": "visualization" + }, + { + "id": "netskope-7edc5f60-71df-11ec-8c4b-cb281099ee02", + "name": "de6f44ab-bef8-4518-bbb0-4afde2144001:panel_de6f44ab-bef8-4518-bbb0-4afde2144001", + "type": "visualization" + }, + { + "id": "netskope-b0b26610-71df-11ec-8c4b-cb281099ee02", + "name": "b2e8e6c8-d585-49c1-ba49-5a8c4fab5080:panel_b2e8e6c8-d585-49c1-ba49-5a8c4fab5080", + "type": "visualization" + }, + { + "id": "netskope-8efd9840-71e0-11ec-8c4b-cb281099ee02", + "name": "d1633b77-5ee0-42ed-995f-d5e01cef7d3b:panel_d1633b77-5ee0-42ed-995f-d5e01cef7d3b", + "type": "visualization" + }, + { + "id": "netskope-d1189e60-71df-11ec-8c4b-cb281099ee02", + "name": "17fbf33c-a3be-4e8e-afae-195fb4a37fa8:panel_17fbf33c-a3be-4e8e-afae-195fb4a37fa8", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-03150a40-720b-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-03150a40-720b-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..e63d8d3ea0 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-03150a40-720b-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"uba\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"uba\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.telemetry.app\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.telemetry.app\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of UBA Alerts by Telemetery App", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Telemetry App\",\"exclude\":\"none\",\"field\":\"netskope.alerts.telemetry.app\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of UBA Alerts by Telemetery App\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-03150a40-720b-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-06bf2da0-72a7-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-06bf2da0-72a7-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..de6a746151 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-06bf2da0-72a7-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.access_method\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.access_method\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by Access Method", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Access Method\",\"field\":\"netskope.events.access_method\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Events by Access Method\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-06bf2da0-72a7-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-0922ae70-720a-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-0922ae70-720a-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..65bda788f2 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-0922ae70-720a-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.type\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.page.site\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.page.site\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Top 10 Page Site", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Page Site\",\"field\":\"netskope.alerts.page.site\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Page Site\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-0922ae70-720a-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-0e9511e0-72aa-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-0e9511e0-72aa-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..82e9f663f4 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-0e9511e0-72aa-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.category.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.category.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by Category", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Category\",\"field\":\"netskope.events.category.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Events by Category\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-0e9511e0-72aa-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-0f05ca90-7456-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-0f05ca90-7456-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..d150083ad3 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-0f05ca90-7456-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"user_agent.os.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"user_agent.os.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by OS", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"OS\",\"field\":\"user_agent.os.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Events by OS\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-0f05ca90-7456-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-187e0140-71f5-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-187e0140-71f5-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..97177729c6 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-187e0140-71f5-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"Security Assessment\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"Security Assessment\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.sa.rule.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.sa.rule.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "title": "[Netskope] Top 10 Security Assessment Rule Name", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Security Assessment Rule Name\",\"field\":\"netskope.alerts.sa.rule.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Security Assessment Rule Name\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-187e0140-71f5-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-1b3226c0-71df-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-1b3226c0-71df-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..155dfcfe37 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-1b3226c0-71df-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.activity.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.activity.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of Alerts by Activity", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Activity\",\"field\":\"netskope.alerts.activity.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Alerts by Activity\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-1b3226c0-71df-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-2044d2a0-72ae-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-2044d2a0-72ae-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..7dcdb32b6d --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-2044d2a0-72ae-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,40 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"network\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"network\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.tunnel.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.tunnel.type\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index\",\"key\":\"netskope.events.tunnel.up_time\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.tunnel.up_time\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Tunnel Uptime Over Time", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"aggregate\":\"concat\",\"customLabel\":\"Tunnel Uptime\",\"field\":\"netskope.events.tunnel.up_time\",\"size\":1,\"sortField\":\"@timestamp\",\"sortOrder\":\"desc\"},\"schema\":\"metric\",\"type\":\"top_hits\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Timestamp\",\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"scaleMetricValues\":false,\"timeRange\":{\"from\":\"now-15y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"used_interval\":\"30d\"},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"4\",\"params\":{\"customLabel\":\"Tunnel Type\",\"field\":\"netskope.events.tunnel.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"_key\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"fittingFunction\":\"linear\",\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"temperature\",\"type\":\"palette\"},\"radiusRatio\":9,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Tunnel Uptime\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Tunnel Uptime\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Tunnel Uptime Over Time\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-2044d2a0-72ae-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-24907420-72b0-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-24907420-72b0-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..06e6a0996b --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-24907420-72b0-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"audit\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.severity.level\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.severity.level\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Severity Level Over Time", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Timestamp\",\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"scaleMetricValues\":false,\"timeRange\":{\"from\":\"now-15y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"used_interval\":\"30d\"},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Severity Level\",\"field\":\"netskope.events.severity.level\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"fittingFunction\":\"linear\",\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":9,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Severity Level Over Time\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-24907420-72b0-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-25b07fa0-71eb-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-25b07fa0-71eb-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..1db1e211f9 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-25b07fa0-71eb-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"DLP\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"DLP\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.dlp.file\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.dlp.file\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Top 10 DLP Files", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"DLP Files\",\"field\":\"netskope.alerts.dlp.file\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 DLP Files\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-25b07fa0-71eb-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-26d9c5c0-71dd-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-26d9c5c0-71dd-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..b076fbb38e --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-26d9c5c0-71dd-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"file.mime_type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"file.mime_type\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Top 10 File Types", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"File Types\",\"field\":\"file.mime_type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 File Types\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-26d9c5c0-71dd-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-2b81f870-71da-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-2b81f870-71da-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..1aeeb1b3e6 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-2b81f870-71da-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.access_method\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.access_method\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of Alerts by Access Method", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Access Method\",\"field\":\"netskope.alerts.access_method\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Alerts by Access Method\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-2b81f870-71da-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-301d9fd0-720a-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-301d9fd0-720a-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..fbf09761cb --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-301d9fd0-720a-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"uba\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"uba\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.policy.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.policy.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Top 10 UBA Policy", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Policy Name\",\"field\":\"netskope.alerts.policy.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 UBA Policy\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-301d9fd0-720a-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-304fa1c0-7209-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-304fa1c0-7209-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..0362694068 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-304fa1c0-7209-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"uba\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"uba\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.managed.app\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.managed.app\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of UBA Alerts by Percentage of Managed Apps", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Managed App\",\"field\":\"netskope.alerts.managed.app\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of UBA Alerts by Percentage of Managed Apps\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-304fa1c0-7209-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-327320f0-72ac-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-327320f0-72ac-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..dd7813210d --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-327320f0-72ac-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"network\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"network\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.tunnel.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.tunnel.type\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Network Events by Tunnel Type", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Tunnel Type\",\"field\":\"netskope.events.tunnel.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Network Events by Tunnel Type\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-327320f0-72ac-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-357672b0-72a8-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-357672b0-72a8-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..55fea541c8 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-357672b0-72a8-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.site\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.site\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top 10 Sites", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Site\",\"field\":\"netskope.events.site\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Sites\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-357672b0-72a8-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-37409a80-71db-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-37409a80-71db-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..3b2074fa94 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-37409a80-71db-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.app.category\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.app.category\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "title": "[Netskope] Distribution of Alerts by App Category", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"App Category\",\"field\":\"netskope.alerts.app.category\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Alerts by App Category\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-37409a80-71db-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-3ec223c0-720b-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-3ec223c0-720b-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..a5bcfcf409 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-3ec223c0-720b-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"uba\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"uba\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.threshold.value\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.threshold.value\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Max Threshold Value per User", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Threshold Value\",\"field\":\"netskope.alerts.threshold.value\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"User\",\"field\":\"user.email\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Max Threshold Value per User\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-3ec223c0-720b-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-40a01500-72db-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-40a01500-72db-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..e233be9f9a --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-40a01500-72db-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,40 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"source.geo.city_name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"source.geo.city_name\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"source.geo.region_name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"source.geo.region_name\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index\",\"key\":\"source.geo.country_iso_code\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"source.geo.country_iso_code\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top 10 Source Location, Source Region, Source Country", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Source Location\",\"field\":\"source.geo.city_name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Source Region\",\"field\":\"source.geo.region_name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"4\",\"params\":{\"customLabel\":\"Source Country\",\"field\":\"source.geo.country_iso_code\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Source Location, Source Region, Source Country\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-40a01500-72db-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-41932530-72a7-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-41932530-72a7-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..75dd366a3f --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-41932530-72a7-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.device.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.device.type\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by Device", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Device\",\"field\":\"netskope.events.device.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Events by Device\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-41932530-72a7-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-464ce970-72b7-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-464ce970-72b7-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..0291951a06 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-464ce970-72b7-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,40 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"network\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"network\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.tunnel.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.tunnel.type\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index\",\"key\":\"netskope.events.tunnel.up_time\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.tunnel.up_time\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Highest Tunnel Uptime for Tunnel Type", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Max Tunnel Uptime\",\"field\":\"netskope.events.tunnel.up_time\"},\"schema\":\"metric\",\"type\":\"max\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Tunnel Type\",\"field\":\"netskope.events.tunnel.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10000},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Highest Tunnel Uptime for Tunnel Type\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-464ce970-72b7-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-47132800-72a9-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-47132800-72a9-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..7636bd384a --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-47132800-72a9-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.ccl\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.ccl\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by Cloud Confidence Level", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Cloud Confidence Level\",\"field\":\"netskope.events.ccl\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Events by Cloud Confidence Level\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-47132800-72a9-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-4a1cfbc0-71dc-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-4a1cfbc0-71dc-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..8308ba4195 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-4a1cfbc0-71dc-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.ccl\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.ccl\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "title": "[Netskope] Trend of Cloud Confidence Level Over Time", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Timestamp\",\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"scaleMetricValues\":false,\"timeRange\":{\"from\":\"now-15y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"used_interval\":\"30d\"},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Cloud Confidence Level\",\"field\":\"netskope.alerts.ccl\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"fittingFunction\":\"linear\",\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":9,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Trend of Cloud Confidence Level Over Time\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-4a1cfbc0-71dc-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-516130e0-71eb-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-516130e0-71eb-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..f08ad9f6bf --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-516130e0-71eb-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"DLP\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"DLP\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.dlp.rule.severity\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.dlp.rule.severity\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of DLP Alerts by DLP Rule Severity", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"DLP Rule Severity\",\"field\":\"netskope.alerts.dlp.rule.severity\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of DLP Alerts by DLP Rule Severity\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-516130e0-71eb-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-51bf6fb0-72aa-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-51bf6fb0-72aa-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..72987c814c --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-51bf6fb0-72aa-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"user_agent.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"user_agent.name\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"user_agent.version\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"user_agent.version\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by Browser, Browser Version", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Browser\",\"field\":\"user_agent.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":2},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"user_agent.version\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":true,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Events by Browser, Browser Version\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-51bf6fb0-72aa-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-528169b0-72b6-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-528169b0-72b6-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..ff92cee1a0 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-528169b0-72b6-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"page\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"page\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.domain\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.domain\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top 10 Domain Accessed by Page Events", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Domain\",\"field\":\"netskope.events.domain\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Domain Accessed by Page Events\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-528169b0-72b6-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-55144a90-72ab-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-55144a90-72ab-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..ece13da665 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-55144a90-72ab-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"network\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"network\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.policy.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.policy.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top 10 Policy used", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Policy Name\",\"field\":\"netskope.events.policy.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Policy used\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-55144a90-72ab-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-55b418a0-71dd-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-55b418a0-71dd-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..ea167e2cc1 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-55b418a0-71dd-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.object.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.object.type\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of Alerts by Object Type", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Object Type\",\"field\":\"netskope.alerts.object.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Alerts by Object Type\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-55b418a0-71dd-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-5982c0e0-72ae-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-5982c0e0-72ae-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..8c2a0beaab --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-5982c0e0-72ae-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"network\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"network\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"event.action\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"event.action\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Network Events by Action", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Action\",\"field\":\"event.action\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Network Events by Action\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-5982c0e0-72ae-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-5b54d5f0-71f7-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-5b54d5f0-71f7-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..08db6fd3dc --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-5b54d5f0-71f7-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"quarantine\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"quarantine\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.policy.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.policy.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Top 10 Policy for Quarantine Alerts", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Policy Name\",\"field\":\"netskope.alerts.policy.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Policy for Quarantine Alerts\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-5b54d5f0-71f7-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-5def8dc0-71e6-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-5def8dc0-71e6-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..5bc1f93605 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-5def8dc0-71e6-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"policy\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"policy\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.alert.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.alert.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "title": "[Netskope] Distribution of Policy Alerts by Alert Name ", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Alert Name\",\"field\":\"netskope.alerts.alert.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Policy Alerts by Alert Name \",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-5def8dc0-71e6-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-5e243140-72b5-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-5e243140-72b5-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..264570500c --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-5e243140-72b5-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,40 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"application\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"application\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.app.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.app.name\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index\",\"key\":\"netskope.events.app.activity\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.app.activity\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top 10 Application Activities by Application", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Application Activities\",\"field\":\"netskope.events.app.activity\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Application\",\"field\":\"netskope.events.app.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Application Activities by Application\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-5e243140-72b5-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-5efbfc00-72a7-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-5efbfc00-72a7-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..c8ee17f5e9 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-5efbfc00-72a7-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.app.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.app.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top 10 Application Activities", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Applications\",\"field\":\"netskope.events.app.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Application Activities\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-5efbfc00-72a7-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-5f452920-71da-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-5f452920-71da-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..585f434e24 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-5f452920-71da-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.acked\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.acked\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "title": "[Netskope] Distribution of Alerts by Acknowledgement", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"filters\":[{\"input\":{\"language\":\"kuery\",\"query\":\"netskope.alerts.acked : false\"},\"label\":\"False\"},{\"input\":{\"language\":\"kuery\",\"query\":\"netskope.alerts.acked : true\"},\"label\":\"True\"}]},\"schema\":\"segment\",\"type\":\"filters\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Alerts by Acknowledgement\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-5f452920-71da-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-648c79d0-720a-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-648c79d0-720a-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..35dd2ab157 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-648c79d0-720a-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"uba\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"uba\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.policy.actions\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.policy.actions\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of UBA Alerts by Policy Action", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Policy Action\",\"field\":\"netskope.alerts.policy.actions\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of UBA Alerts by Policy Action\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-648c79d0-720a-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-662de6e0-71e0-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-662de6e0-71e0-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..a6e659852a --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-662de6e0-71e0-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"source.geo.country_iso_code\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"source.geo.country_iso_code\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Top 10 Source Country", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Source Country\",\"field\":\"source.geo.country_iso_code\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Source Country\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-662de6e0-71e0-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-719e0f30-72af-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-719e0f30-72af-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..b66ef1d6cd --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-719e0f30-72af-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"infrastructure\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"infrastructure\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.device.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.device.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Infrastructure Events by Device Name", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Device Name\",\"field\":\"netskope.events.device.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":8},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Infrastructure Events by Device Name\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-719e0f30-72af-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-75f900b0-72b6-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-75f900b0-72b6-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..a801c22acc --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-75f900b0-72b6-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"page\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"page\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.page\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.page\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top 10 Page Accessed by Page Events", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Page\",\"field\":\"netskope.events.page\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Page Accessed by Page Events\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-75f900b0-72b6-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-7d1142a0-72ab-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-7d1142a0-72ab-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..c50947064c --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-7d1142a0-72ab-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"network\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"network\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.ip.protocol\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.ip.protocol\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Networks Events by IP Protocol", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"IP Protocol\",\"field\":\"netskope.events.ip.protocol\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Networks Events by IP Protocol\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-7d1142a0-72ab-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-7d7e2260-71f4-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-7d7e2260-71f4-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..8bc7685fcb --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-7d7e2260-71f4-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"Security Assessment\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"Security Assessment\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.region.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.region.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of SA Alerts by Region Name", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Region Name\",\"field\":\"netskope.alerts.region.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of SA Alerts by Region Name\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-7d7e2260-71f4-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-7edc5f60-71df-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-7edc5f60-71df-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..d51452f475 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-7edc5f60-71df-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.file.lang\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.file.lang\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of Alerts by File Language ", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"File Language\",\"field\":\"netskope.alerts.file.lang\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Alerts by File Language \",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-7edc5f60-71df-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-7f41e9e0-71dd-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-7f41e9e0-71dd-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..5f68195714 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-7f41e9e0-71dd-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.site\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.site\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Top 10 Site", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Site\",\"field\":\"netskope.alerts.site\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Site\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-7f41e9e0-71dd-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-7f8d83c0-71db-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-7f8d83c0-71db-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..9453bd293f --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-7f8d83c0-71db-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.ccl\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.ccl\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "title": "[Netskope] Distribution of Alerts by Cloud Confidence Level", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Cloud Confidence Level\",\"field\":\"netskope.alerts.ccl\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Alerts by Cloud Confidence Level\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-7f8d83c0-71db-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-7f9d2540-7209-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-7f9d2540-7209-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..65c66d83c7 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-7f9d2540-7209-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"uba\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"uba\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.orig_ty\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.orig_ty\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of UBA Alerts by Event Type of Original Event ", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Event type of Original Event\",\"field\":\"netskope.alerts.orig_ty\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of UBA Alerts by Event Type of Original Event \",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-7f9d2540-7209-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-83fa5a10-72a7-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-83fa5a10-72a7-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..179a06a4ba --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-83fa5a10-72a7-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.access_method\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.access_method\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"user.email\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"user.email\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top Users By Access Method", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Access Method\",\"field\":\"netskope.events.access_method\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"User\",\"field\":\"user.email\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top Users By Access Method\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-83fa5a10-72a7-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-8705deb0-71de-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-8705deb0-71de-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..b21098fd2a --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-8705deb0-71de-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.type\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"user.email\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"user.email\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "title": "[Netskope] Top 10 Alert Type by User ", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Alert Type\",\"field\":\"netskope.alerts.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":11},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"User\",\"field\":\"user.email\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":11},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Alert Type by User \",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-8705deb0-71de-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-891546c0-72db-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-891546c0-72db-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..63cd952080 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-891546c0-72db-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,40 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"destination.geo.country_iso_code\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"destination.geo.country_iso_code\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"destination.geo.region_name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"destination.geo.region_name\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index\",\"key\":\"destination.geo.city_name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"destination.geo.city_name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top 10 Destination Location, Destination Region, Destination Country", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Destination Location\",\"field\":\"destination.geo.city_name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Destination Region\",\"field\":\"destination.geo.region_name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"4\",\"params\":{\"customLabel\":\"Destination Country\",\"field\":\"destination.geo.country_iso_code\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Destination Location, Destination Region, Destination Country\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-891546c0-72db-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-8c226d50-71f7-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-8c226d50-71f7-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..24544002e8 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-8c226d50-71f7-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"quarantine\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"quarantine\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.quarantine.original.shared\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.quarantine.original.shared\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of Quarantine Events by File Shared ", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"File Shared\",\"field\":\"netskope.alerts.quarantine.original.shared\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Quarantine Events by File Shared \",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-8c226d50-71f7-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-8efd9840-71e0-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-8efd9840-71e0-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..26b81c25f7 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-8efd9840-71e0-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"source.geo.city_name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"source.geo.city_name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Top 10 Source Location", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Source Location\",\"field\":\"source.geo.city_name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Source Location\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-8efd9840-71e0-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-8fc2c680-72b0-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-8fc2c680-72b0-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..aa1a3fd85e --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-8fc2c680-72b0-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"audit\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.audit.log.event\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.audit.log.event\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Audit Events by User, Audit Log Event", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"User\",\"field\":\"user.email\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Audit Log Event\",\"field\":\"netskope.events.audit.log.event\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Distribution of Audit Events by User, Audit Log Event\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-8fc2c680-72b0-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-914898a0-72af-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-914898a0-72af-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..0510139e15 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-914898a0-72af-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.severity.level\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.severity.level\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by Severity", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Severity\",\"field\":\"netskope.events.severity.level\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":3},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Events by Severity\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-914898a0-72af-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-917c9230-72b5-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-917c9230-72b5-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..dbdd28303a --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-917c9230-72b5-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"application\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"application\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.object.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.object.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top 10 Objects which is being acted on", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Object\",\"field\":\"netskope.events.object.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Objects which is being acted on\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-917c9230-72b5-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-93433ee0-72a9-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-93433ee0-72a9-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..53cadf2c6b --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-93433ee0-72a9-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.ccl\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.ccl\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Trend of Cloud Confidence Level Over Time for Events", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Timestamp\",\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"scaleMetricValues\":false,\"timeRange\":{\"from\":\"now-15y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"used_interval\":\"30d\"},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Cloud Confidence Level\",\"field\":\"netskope.events.ccl\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"fittingFunction\":\"linear\",\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":9,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Trend of Cloud Confidence Level Over Time for Events\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-93433ee0-72a9-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-9b93d9d0-71da-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-9b93d9d0-71da-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..95533fb16a --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-9b93d9d0-71da-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"user_agent.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"user_agent.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "title": "[Netskope] Distribution of Alerts by Browser", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Browser\",\"field\":\"user_agent.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Alerts by Browser\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-9b93d9d0-71da-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-9c6d6030-71f6-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-9c6d6030-71f6-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..b2644fad90 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-9c6d6030-71f6-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"Security Assessment\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"Security Assessment\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.alert.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.alert.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Top 10 Security Assessment Alert Names", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Alert Name\",\"field\":\"netskope.alerts.alert.name\",\"json\":\"\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Security Assessment Alert Names\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-9c6d6030-71f6-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-a2047d20-72ab-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-a2047d20-72ab-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..6b50b42626 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-a2047d20-72ab-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"network\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"network\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"network.protocol\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"network.protocol\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Networks Events by Protocol", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Protocol\",\"field\":\"network.protocol\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Networks Events by Protocol\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-a2047d20-72ab-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-a3c6c270-745f-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-a3c6c270-745f-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..344a4153b5 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-a3c6c270-745f-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"user_agent.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"user_agent.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Application Events by Browser", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Browser\",\"field\":\"user_agent.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Application Events by Browser\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-a3c6c270-745f-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-a3e5e650-72b6-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-a3e5e650-72b6-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..613ab40309 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-a3e5e650-72b6-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,40 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"page\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"page\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.request.count\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.request.count\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index\",\"key\":\"netskope.events.page\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.page\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top 10 Request Count for Page", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Request Count\",\"field\":\"netskope.events.request.count\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Page\",\"field\":\"netskope.events.page\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Request Count for Page\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-a3e5e650-72b6-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-a44f4160-72b4-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-a44f4160-72b4-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..c7a1d45680 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-a44f4160-72b4-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"application\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"application\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.object.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.object.type\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Application Events by Object Type", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Object Type\",\"field\":\"netskope.events.object.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Application Events by Object Type\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-a44f4160-72b4-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-a4745040-71dd-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-a4745040-71dd-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..3972019d7b --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-a4745040-71dd-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.traffic.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.traffic.type\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of Alerts by Traffic Type", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Traffic Type\",\"field\":\"netskope.alerts.traffic.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Alerts by Traffic Type\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-a4745040-71dd-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-a6e2ecf0-72a6-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-a6e2ecf0-72a6-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..bf2807eacf --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-a6e2ecf0-72a6-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "title": "[Netskope][Events] Select Event Type", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[],\"params\":{\"controls\":[{\"fieldName\":\"netskope.events.event_type\",\"id\":\"1641881851553\",\"indexPatternRefName\":\"control_0_index_pattern\",\"label\":\"Event Type Selection\",\"options\":{\"dynamicOptions\":true,\"multiselect\":true,\"order\":\"desc\",\"size\":5,\"type\":\"terms\"},\"parent\":\"\",\"type\":\"list\"}],\"pinFilters\":false,\"updateFiltersOnChange\":true,\"useTimeFilter\":false},\"title\":\"[Netskope][Events] Select Event Type\",\"type\":\"input_control_vis\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-a6e2ecf0-72a6-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "control_0_index_pattern", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-a8fb1770-720a-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-a8fb1770-720a-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..8dc80cbff7 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-a8fb1770-720a-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"uba\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"uba\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.severity.level\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.severity.level\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of UBA Alerts by Severity", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Severity\",\"field\":\"netskope.alerts.severity.level\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of UBA Alerts by Severity\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-a8fb1770-720a-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-abcc6a30-72aa-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-abcc6a30-72aa-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..bc2e9cf751 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-abcc6a30-72aa-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"source.geo.region_name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"source.geo.region_name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by Source Region", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Source Region\",\"field\":\"source.geo.region_name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":7},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Events by Source Region\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-abcc6a30-72aa-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-b0b26610-71df-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-b0b26610-71df-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..65b9d928d6 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-b0b26610-71df-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"destination.geo.country_iso_code\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"destination.geo.country_iso_code\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Top 10 Destination Country", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Destination Country\",\"field\":\"destination.geo.country_iso_code\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Destination Country\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-b0b26610-71df-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-bc70e470-7209-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-bc70e470-7209-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..e157906e4e --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-bc70e470-7209-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"uba\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"uba\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"user_agent.os.version\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"user_agent.os.version\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of UBA Alerts by OS Version", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"OS Version\",\"field\":\"user_agent.os.version\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of UBA Alerts by OS Version\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-bc70e470-7209-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-bc859e60-71dc-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-bc859e60-71dc-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..054db583b4 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-bc859e60-71dc-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.device.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.device.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "title": "[Netskope] Distribution of Alerts by Device", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Device\",\"field\":\"netskope.alerts.device.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Alerts by Device\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-bc859e60-71dc-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-bd2879d0-71f7-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-bd2879d0-71f7-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..fdc31c9ea6 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-bd2879d0-71f7-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"quarantine\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"quarantine\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.quarantine.app\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.quarantine.app\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "title": "[Netskope] Top 10 Quarantine Applications", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Quarantine Application\",\"field\":\"netskope.alerts.quarantine.app\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"row\":true,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Quarantine Applications\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-bd2879d0-71f7-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-c01026d0-72af-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-c01026d0-72af-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..875f0b687c --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-c01026d0-72af-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.severity.level\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.severity.level\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Severity Over Time", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Timestamp\",\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"scaleMetricValues\":false,\"timeRange\":{\"from\":\"now-15y\",\"to\":\"now\"},\"useNormalizedEsInterval\":true,\"used_interval\":\"30d\"},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Severity\",\"field\":\"netskope.events.severity.level\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":13},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"fittingFunction\":\"linear\",\"grid\":{\"categoryLines\":false},\"labels\":{},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":9,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Severity Over Time\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-c01026d0-72af-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-c1e088c0-72a9-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-c1e088c0-72a9-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..48b1e7a670 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-c1e088c0-72a9-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.app.category\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.app.category\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by App Category", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"App Category\",\"field\":\"netskope.events.app.category\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Events by App Category\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-c1e088c0-72a9-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-c6540e80-72b4-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-c6540e80-72b4-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..44b8effcdb --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-c6540e80-72b4-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"application\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"application\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"user.email\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"user.email\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top 10 Users doing Activities ", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"User\",\"field\":\"user.email\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Users doing Activities \",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-c6540e80-72b4-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-ca5610d0-71da-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-ca5610d0-71da-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..b108b09856 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-ca5610d0-71da-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.app.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.app.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\" \"}}" + }, + "title": "[Netskope] Top 10 Apps", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Applications\",\"field\":\"netskope.alerts.app.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Apps\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-ca5610d0-71da-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-cab84db0-71dd-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-cab84db0-71dd-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..39f63b6634 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-cab84db0-71dd-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.type\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of Alerts by Type", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Type\",\"field\":\"netskope.alerts.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Alerts by Type\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-cab84db0-71dd-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-d1189e60-71df-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-d1189e60-71df-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..ff38d96f8b --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-d1189e60-71df-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"destination.geo.city_name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"destination.geo.city_name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Top 10 Destination Location", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Destination Location\",\"field\":\"destination.geo.city_name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Destination Location\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-d1189e60-71df-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-d9596770-72a8-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-d9596770-72a8-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..cfa47a672b --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-d9596770-72a8-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.traffic.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.traffic.type\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by Traffic Type", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Traffic Type\",\"field\":\"netskope.events.traffic.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Events by Traffic Type\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-d9596770-72a8-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-dbcca900-72b6-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-dbcca900-72b6-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..bbac81c480 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-dbcca900-72b6-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,40 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"page\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"page\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.response.count\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.response.count\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index\",\"key\":\"netskope.events.page\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.page\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Top 10 Response Count for Page", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Response Count\",\"field\":\"netskope.events.response.count\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Page\",\"field\":\"netskope.events.page\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Response Count for Page\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-dbcca900-72b6-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[2].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-dbdd48a0-72a7-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-dbdd48a0-72a7-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..3de7dd6294 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-dbdd48a0-72a7-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"user_agent.os.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"user_agent.os.name\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"user_agent.os.version\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"user_agent.os.version\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by OS, OS Version", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"OS\",\"field\":\"user_agent.os.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"user_agent.os.version\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":true,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Events by OS, OS Version\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-dbdd48a0-72a7-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-dd1de560-71eb-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-dd1de560-71eb-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..eba12a9f4e --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-dd1de560-71eb-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"DLP\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"DLP\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.policy.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.policy.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Top 10 Policy ", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Top 10 DLP Policy\",\"field\":\"netskope.alerts.policy.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"autoFitRowToContent\":false,\"perPage\":10,\"percentageCol\":\"\",\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":false,\"showTotal\":false,\"totalFunc\":\"sum\"},\"title\":\"[Netskope] Top 10 Policy \",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-dd1de560-71eb-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-de309310-71d9-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-de309310-71d9-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..354947d7c5 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-de309310-71d9-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "title": "[Netskope][Alerts] Select Alert Type", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[],\"params\":{\"controls\":[{\"fieldName\":\"netskope.alerts.type\",\"id\":\"1641794009450\",\"indexPatternRefName\":\"control_0_index_pattern\",\"label\":\"Alert Type Selection\",\"options\":{\"dynamicOptions\":true,\"multiselect\":true,\"order\":\"desc\",\"size\":5,\"type\":\"terms\"},\"parent\":\"\",\"type\":\"list\"}],\"pinFilters\":false,\"updateFiltersOnChange\":true,\"useTimeFilter\":false},\"title\":\"[Netskope][Alerts] Select Alert Type\",\"type\":\"input_control_vis\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-de309310-71d9-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "control_0_index_pattern", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-e15f2790-72a6-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-e15f2790-72a6-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..de6dadfd9d --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-e15f2790-72a6-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.event_type\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by Event Type", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Event Type\",\"field\":\"netskope.events.event_type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Events by Event Type\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-e15f2790-72a6-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-e2e46e60-72ae-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-e2e46e60-72ae-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..1dde9bccd5 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-e2e46e60-72ae-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"infrastructure\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"infrastructure\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.alarm.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.alarm.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Infrastructure Events by Alarm Name ", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Alarm Name\",\"field\":\"netskope.events.alarm.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Infrastructure Events by Alarm Name \",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-e2e46e60-72ae-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-e8cecff0-72a9-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-e8cecff0-72a9-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..74969e6a5d --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-e8cecff0-72a9-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.type\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Events by Type", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Type\",\"field\":\"netskope.events.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Events by Type\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-e8cecff0-72a9-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-e9bc9d80-7208-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-e9bc9d80-7208-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..414d3d6f30 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-e9bc9d80-7208-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"uba\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"uba\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.device.classification\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.device.classification\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of UBA Alerts by Device Classification", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Device Classification\",\"field\":\"netskope.alerts.device.classification\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of UBA Alerts by Device Classification\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-e9bc9d80-7208-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-f1c99420-7207-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-f1c99420-7207-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..fc285b9b3f --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-f1c99420-7207-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"uba\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"uba\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.alert.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.alert.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of UBA Alerts by Alert Name", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Alert Name\",\"field\":\"netskope.alerts.alert.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of UBA Alerts by Alert Name\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-f1c99420-7207-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-f4fb96d0-71de-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-f4fb96d0-71de-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..6dbf820574 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-f4fb96d0-71de-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.category.name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.category.name\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of Alerts by Category ", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Category\",\"field\":\"netskope.alerts.category.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"rotate\":0,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false},\"labels\":{\"show\":false},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"radiusRatio\":0,\"seriesParams\":[{\"circlesRadius\":1,\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"lineWidth\":2,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"thresholdLine\":{\"color\":\"#E7664C\",\"show\":false,\"style\":\"full\",\"value\":10,\"width\":1},\"times\":[],\"truncateLegend\":true,\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Netskope] Distribution of Alerts by Category \",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-f4fb96d0-71de-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-f9097160-71f3-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-f9097160-71f3-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..e32e00549f --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-f9097160-71f3-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"Security Assessment\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"Security Assessment\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.sa.rule.severity\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.sa.rule.severity\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of SA Alerts by SA Rule Severity", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"SA Rule Severity\",\"field\":\"netskope.alerts.sa.rule.severity\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of SA Alerts by SA Rule Severity\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-f9097160-71f3-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-f96d6680-71f7-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-f96d6680-71f7-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..5cb3c8d1e5 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-f96d6680-71f7-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"params\":{\"query\":\"quarantine\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.alerts.type\":\"quarantine\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.alerts.quarantine.app\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.quarantine.app\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Total Number of Apps Quarantined", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Quarantined Applications\",\"field\":\"netskope.alerts.quarantine.app\"},\"schema\":\"metric\",\"type\":\"cardinality\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"metric\":{\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"invertColors\":false,\"labels\":{\"show\":true},\"metricColorMode\":\"None\",\"percentageMode\":false,\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":60,\"labelColor\":false,\"subText\":\"\"},\"useRanges\":false},\"type\":\"metric\"},\"title\":\"[Netskope] Total Number of Apps Quarantined\",\"type\":\"metric\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-f96d6680-71f7-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-fceec3e0-71dd-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-fceec3e0-71dd-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..d8d371bba7 --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-fceec3e0-71dd-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.alerts.type\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.alerts.type\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.alerts\\\"\"}}" + }, + "title": "[Netskope] Distribution of Alerts by Alert Type", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Alert Type\",\"field\":\"netskope.alerts.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":11},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Alerts by Alert Type\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-fceec3e0-71dd-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/kibana/visualization/netskope-feb43930-72af-11ec-8c4b-cb281099ee02.json b/packages/netskope/1.0.0/kibana/visualization/netskope-feb43930-72af-11ec-8c4b-cb281099ee02.json new file mode 100755 index 0000000000..9ed3fc8eca --- /dev/null +++ b/packages/netskope/1.0.0/kibana/visualization/netskope-feb43930-72af-11ec-8c4b-cb281099ee02.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"netskope.events.event_type\",\"negate\":false,\"params\":{\"query\":\"audit\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"netskope.events.event_type\":\"audit\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"netskope.events.severity.level\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"},\"query\":{\"exists\":{\"field\":\"netskope.events.severity.level\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"netskope.events\\\" \"}}" + }, + "title": "[Netskope] Distribution of Audit Events by Severity Level", + "uiStateJSON": "{\"vis\":{\"legendOpen\":true}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Severity Level\",\"field\":\"netskope.events.severity.level\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":false,\"isDonut\":false,\"labels\":{\"last_level\":false,\"percentDecimals\":2,\"position\":\"default\",\"show\":true,\"truncate\":100,\"values\":true,\"valuesFormat\":\"percent\"},\"legendPosition\":\"right\",\"maxLegendLines\":1,\"nestedLegend\":false,\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"truncateLegend\":true,\"type\":\"pie\"},\"title\":\"[Netskope] Distribution of Audit Events by Severity Level\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.16.2", + "id": "netskope-feb43930-72af-11ec-8c4b-cb281099ee02", + "migrationVersion": { + "visualization": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/netskope/1.0.0/manifest.yml b/packages/netskope/1.0.0/manifest.yml new file mode 100755 index 0000000000..1bab472bb7 --- /dev/null +++ b/packages/netskope/1.0.0/manifest.yml @@ -0,0 +1,74 @@ +format_version: 1.0.0 +name: netskope +title: "Netskope" +version: 1.0.0 +license: basic +description: Collect logs from Netskope with Elastic Agent. +type: integration +categories: + - security +release: ga +conditions: + kibana.version: ^7.17.0 || ^8.0.0 +screenshots: + - src: /img/netskope-alerts-screenshot.png + title: Netskope Alert logs screenshot + size: 600x600 + type: image/png + - src: /img/netskope-events-screenshot.png + title: Netskope Event logs screenshot + size: 600x600 + type: image/png +icons: + - src: /img/netskope-logo.svg + title: Netskope logo + size: 32x32 + type: image/svg+xml +policy_templates: + - name: netskope + title: Netskope logs + description: Collect Netskope logs + inputs: + - type: tcp + vars: + - name: listen_address + type: text + title: Listen Address + description: The bind address to listen for TCP connections. Set to `0.0.0.0` to bind to all available interfaces. + multi: false + required: true + show_user: true + default: localhost + - name: ssl + type: yaml + title: SSL Configuration + description: i.e. certificate_authorities, supported_protocols, verification_mode etc. + multi: false + required: false + show_user: false + default: | + #certificate_authorities: + # - | + # -----BEGIN CERTIFICATE----- + # MIIDCjCCAfKgAwIBAgITJ706Mu2wJlKckpIvkWxEHvEyijANBgkqhkiG9w0BAQsF + # ADAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwIBcNMTkwNzIyMTkyOTA0WhgPMjExOTA2 + # MjgxOTI5MDRaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEB + # BQADggEPADCCAQoCggEBANce58Y/JykI58iyOXpxGfw0/gMvF0hUQAcUrSMxEO6n + # fZRA49b4OV4SwWmA3395uL2eB2NB8y8qdQ9muXUdPBWE4l9rMZ6gmfu90N5B5uEl + # 94NcfBfYOKi1fJQ9i7WKhTjlRkMCgBkWPkUokvBZFRt8RtF7zI77BSEorHGQCk9t + # /D7BS0GJyfVEhftbWcFEAG3VRcoMhF7kUzYwp+qESoriFRYLeDWv68ZOvG7eoWnP + # PsvZStEVEimjvK5NSESEQa9xWyJOmlOKXhkdymtcUd/nXnx6UTCFgnkgzSdTWV41 + # CI6B6aJ9svCTI2QuoIq2HxX/ix7OvW1huVmcyHVxyUECAwEAAaNTMFEwHQYDVR0O + # BBYEFPwN1OceFGm9v6ux8G+DZ3TUDYxqMB8GA1UdIwQYMBaAFPwN1OceFGm9v6ux + # 8G+DZ3TUDYxqMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAG5D + # 874A4YI7YUwOVsVAdbWtgp1d0zKcPRR+r2OdSbTAV5/gcS3jgBJ3i1BN34JuDVFw + # 3DeJSYT3nxy2Y56lLnxDeF8CUTUtVQx3CuGkRg1ouGAHpO/6OqOhwLLorEmxi7tA + # H2O8mtT0poX5AnOAhzVy7QW0D/k4WaoLyckM5hUa6RtvgvLxOwA0U+VGurCDoctu + # 8F4QOgTAWyh8EZIwaKCliFRSynDpv3JTUwtfZkxo6K6nce1RhCWFAsMvDZL8Dgc0 + # yvgJ38BRsFOtkRuAGSf6ZUwTO8JJRRIFnpUzXflAnGivK9M13D5GEQMmIl6U9Pvk + # sxSmbIUfc2SGJGCJD4I= + # -----END CERTIFICATE----- + title: Collect Netskope logs via TCP input + description: Collecting Netskope logs via TCP input +owner: + github: elastic/security-external-integrations diff --git a/packages/network_traffic/1.1.0/changelog.yml b/packages/network_traffic/1.1.0/changelog.yml new file mode 100755 index 0000000000..9e9d88dd7b --- /dev/null +++ b/packages/network_traffic/1.1.0/changelog.yml @@ -0,0 +1,139 @@ +# newer versions go on top +- version: "1.1.0" + changes: + - description: Add configuration documentation. + type: enhancement + link: https://github.com/elastic/integrations/pull/3371 +- version: "1.0.2" + changes: + - description: Remove invalid value from `event.category` for TLS and Thrift + type: bugfix + link: https://github.com/elastic/integrations/pull/3409 +- version: "1.0.1" + changes: + - description: Remove invalid value from `event.category`. + type: bugfix + link: https://github.com/elastic/integrations/pull/3384 +- version: "1.0.0" + changes: + - description: Release as GA. + type: enhancement + link: https://github.com/elastic/integrations/pull/3355 +- version: "0.10.1" + changes: + - description: Remove invalid value from `event.category` in SIP data set. + type: bugfix + link: https://github.com/elastic/integrations/pull/3343 +- version: "0.10.0" + changes: + - description: Add configuration options for each protocol. + type: enhancement + link: https://github.com/elastic/integrations/pull/3157 +- version: "0.9.0" + changes: + - description: Update to ECS 8.2 + type: enhancement + link: https://github.com/elastic/integrations/pull/2780 +- version: "0.8.2" + changes: + - description: Add missing field mappings to DNS and TLS data streams. + type: bugfix + link: https://github.com/elastic/integrations/pull/3078 +- version: "0.8.1" + changes: + - description: Add documentation for multi-fields + type: enhancement + link: https://github.com/elastic/integrations/pull/2916 +- version: "0.8.0" + changes: + - description: Change release stability to beta. + type: enhancement + link: https://github.com/elastic/integrations/pull/2793 +- version: "0.7.1" + changes: + - description: Fix mapping for tls.detailed.client_certificate_chain. + type: bugfix + link: https://github.com/elastic/integrations/pull/2793 +- version: "0.7.0" + changes: + - description: Add dashboards. Update the Kibana constraint to require 7.17.0 or 8.0.0. + type: enhancement + link: https://github.com/elastic/integrations/pull/2762 +- version: "0.6.3" + changes: + - description: Add license note to README. + type: bugfix + link: https://github.com/elastic/integrations/pull/2809 +- version: "0.6.2" + changes: + - description: Add fields for TLS random data and OCSP status. + type: enhancement + link: https://github.com/elastic/integrations/pull/2703 +- version: "0.6.1" + changes: + - description: Remove unused field metadata. + type: enhancement + link: https://github.com/elastic/integrations/pull/2648 +- version: "0.6.0" + changes: + - description: Update to ECS 8.0 + type: enhancement + link: https://github.com/elastic/integrations/pull/2426 +- version: "0.5.1" + changes: + - description: Fix mapping for tls.detailed.server_certificate_chain + type: bugfix + link: https://github.com/elastic/integrations/pull/2517 +- version: "0.5.0" + changes: + - description: Add 8.0.0 version constraint + type: enhancement + link: https://github.com/elastic/integrations/pull/2224 +- version: "0.4.2" + changes: + - description: Uniform with guidelines + type: enhancement + link: https://github.com/elastic/integrations/pull/2097 +- version: "0.4.1" + changes: + - description: Update Description. + type: enhancement + link: https://github.com/elastic/integrations/pull/1997 + - description: Update Title and Description. + type: enhancement + link: https://github.com/elastic/integrations/pull/1975 +- version: "0.4.0" + changes: + - description: Update to ECS 1.12.0 + type: enhancement + link: https://github.com/elastic/integrations/pull/1669 +- version: "0.3.0" + changes: + - description: Change title to Network Packet Capture. Added timeout/period config to flows data stream. + type: enhancement + link: https://github.com/elastic/integrations/pull/1764 +- version: "0.2.2" + changes: + - description: Requires version 7.14.1 of the stack + type: bugfix + link: https://github.com/elastic/integrations/pull/1541 +- version: "0.2.1" + changes: + - description: Escape special characters in docs + type: enhancement + link: https://github.com/elastic/integrations/pull/1405 +- version: "0.2.0" + changes: + - description: Update documentation to fit mdx spec + type: enhancement + link: https://github.com/elastic/integrations/pull/1401 +- version: "0.1.0" + changes: + - description: Update integration description + type: enhancement + link: https://github.com/elastic/integrations/pull/1364 +- version: "0.0.1" + changes: + - description: initial release + type: enhancement # can be one of: enhancement, bugfix, breaking-change + link: https://github.com/elastic/integrations/pull/21 diff --git a/packages/network_traffic/1.1.0/data_stream/amqp/agent/stream/amqp.yml.hbs b/packages/network_traffic/1.1.0/data_stream/amqp/agent/stream/amqp.yml.hbs new file mode 100755 index 0000000000..22fb1883a0 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/amqp/agent/stream/amqp.yml.hbs @@ -0,0 +1,49 @@ +type: amqp +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if max_body_length}} +max_body_length: {{max_body_length}} +{{/if}} +{{#if parse_headers}} +parse_headers: {{parse_headers}} +{{/if}} +{{#if parse_arguments}} +parse_arguments: {{parse_arguments}} +{{/if}} +{{#if hide_connection_information}} +hide_connection_information: {{hide_connection_information}} +{{/if}} +{{#if send_request}} +send_request: {{send_request}} +{{/if}} +{{#if send_response}} +send_response: {{send_response}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if transaction_timeout}} +transaction_timeout: {{transaction_timeout}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/amqp/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/amqp/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..dd8f95ef44 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/amqp/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing amqp traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/amqp/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/amqp/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/amqp/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/amqp/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/amqp/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/amqp/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/amqp/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/amqp/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/amqp/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/amqp/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/amqp/fields/ecs.yml new file mode 100755 index 0000000000..da1822dec9 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/amqp/fields/ecs.yml @@ -0,0 +1,128 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long diff --git a/packages/network_traffic/1.1.0/data_stream/amqp/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/amqp/fields/protocol.yml new file mode 100755 index 0000000000..4b87cf176c --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/amqp/fields/protocol.yml @@ -0,0 +1,202 @@ +- name: amqp + type: group + fields: + - name: reply-code + type: long + description: > + AMQP reply code to an error, similar to http reply-code + + example: 404 + - name: reply-text + type: keyword + description: > + Text explaining the error. + + - name: class-id + type: long + description: > + Failing method class. + + - name: method-id + type: long + description: > + Failing method ID. + + - name: exchange + type: keyword + description: > + Name of the exchange. + + - name: exchange-type + type: keyword + description: > + Exchange type. + + example: fanout + - name: passive + type: boolean + description: > + If set, do not create exchange/queue. + + - name: durable + type: boolean + description: > + If set, request a durable exchange/queue. + + - name: exclusive + type: boolean + description: > + If set, request an exclusive queue. + + - name: auto-delete + type: boolean + description: > + If set, auto-delete queue when unused. + + - name: no-wait + type: boolean + description: > + If set, the server will not respond to the method. + + - name: consumer-tag + type: keyword + description: > + Identifier for the consumer, valid within the current channel. + + - name: delivery-tag + type: long + description: > + The server-assigned and channel-specific delivery tag. + + - name: message-count + type: long + description: > + The number of messages in the queue, which will be zero for newly-declared queues. + + - name: consumer-count + type: long + description: > + The number of consumers of a queue. + + - name: routing-key + type: keyword + description: > + Message routing key. + + - name: no-ack + type: boolean + description: > + If set, the server does not expect acknowledgements for messages. + + - name: no-local + type: boolean + description: > + If set, the server will not send messages to the connection that published them. + + - name: if-unused + type: boolean + description: > + Delete only if unused. + + - name: if-empty + type: boolean + description: > + Delete only if empty. + + - name: queue + type: keyword + description: > + The queue name identifies the queue within the vhost. + + - name: redelivered + type: boolean + description: > + Indicates that the message has been previously delivered to this or another client. + + - name: multiple + type: boolean + description: > + Acknowledge multiple messages. + + - name: arguments + type: object + description: > + Optional additional arguments passed to some methods. Can be of various types. + + - name: mandatory + type: boolean + description: > + Indicates mandatory routing. + + - name: immediate + type: boolean + description: > + Request immediate delivery. + + - name: content-type + type: keyword + description: > + MIME content type. + + example: text/plain + - name: content-encoding + type: keyword + description: > + MIME content encoding. + + - name: headers + type: object + object_type: keyword + description: > + Message header field table. + + - name: delivery-mode + type: keyword + description: > + Non-persistent (1) or persistent (2). + + - name: priority + type: long + description: > + Message priority, 0 to 9. + + - name: correlation-id + type: keyword + description: > + Application correlation identifier. + + - name: reply-to + type: keyword + description: > + Address to reply to. + + - name: expiration + type: keyword + description: > + Message expiration specification. + + - name: message-id + type: keyword + description: > + Application message identifier. + + - name: timestamp + type: keyword + description: > + Message timestamp. + + - name: type + type: keyword + description: > + Message type name. + + - name: user-id + type: keyword + description: > + Creating user id. + + - name: app-id + type: keyword + description: > + Creating application id. + diff --git a/packages/network_traffic/1.1.0/data_stream/amqp/manifest.yml b/packages/network_traffic/1.1.0/data_stream/amqp/manifest.yml new file mode 100755 index 0000000000..392448511a --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/amqp/manifest.yml @@ -0,0 +1,105 @@ +title: AMQP +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [5672] + - name: max_body_length + type: integer + title: Max Body Length + description: |- + Truncate messages that are published and avoid huge messages being + indexed. + Default: 1000 + show_user: false + multi: false + required: false + - name: parse_headers + type: bool + title: Parse Headers + description: |- + Hide the header fields in header frames. + Default: false + show_user: false + multi: false + required: false + - name: parse_arguments + type: bool + title: Parse Arguments + description: |- + Hide the additional arguments of method frames. + Default: false + show_user: false + multi: false + required: false + - name: hide_connection_information + type: bool + title: Hide Connection Information + description: |- + Hide all methods relative to connection negotiation between server and + client. + Default: true + show_user: false + multi: false + required: false + - name: send_request + type: bool + title: Send Request + description: |- + If this option is enabled, the raw message of the request (`request` field) + is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: send_response + type: bool + title: Send Response + description: |- + If this option is enabled, the raw message of the response (`response` + field) is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: transaction_timeout + type: text + title: Transaction Timeout + description: |- + Transaction timeout. Expired transactions will no longer be correlated to + incoming responses, but sent to Elasticsearch immediately. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: AMQP + description: Capture AMQP Traffic + template_path: amqp.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/amqp/sample_event.json b/packages/network_traffic/1.1.0/data_stream/amqp/sample_event.json new file mode 100755 index 0000000000..9ef02f389f --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/amqp/sample_event.json @@ -0,0 +1,107 @@ +{ + "@timestamp": "2022-03-09T07:37:02.033Z", + "agent": { + "ephemeral_id": "ff9ccf25-9d67-46a5-b661-aa01e3db9b84", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "amqp": { + "auto-delete": false, + "consumer-count": 0, + "durable": false, + "exclusive": false, + "message-count": 0, + "no-wait": false, + "passive": false, + "queue": "hello" + }, + "client": { + "bytes": 25, + "ip": "127.0.0.1", + "port": 34222 + }, + "data_stream": { + "dataset": "network_traffic.amqp", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 26, + "ip": "127.0.0.1", + "port": 5672 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "action": "amqp.queue.declare", + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.amqp", + "duration": 1325900, + "end": "2022-03-09T07:37:02.035Z", + "ingested": "2022-03-09T07:37:03Z", + "kind": "event", + "start": "2022-03-09T07:37:02.033Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "method": "queue.declare", + "network": { + "bytes": 51, + "community_id": "1:i6J4zz0FGnZMYLIy8kabND2W/XE=", + "direction": "ingress", + "protocol": "amqp", + "transport": "tcp", + "type": "ipv4" + }, + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "server": { + "bytes": 26, + "ip": "127.0.0.1", + "port": 5672 + }, + "source": { + "bytes": 25, + "ip": "127.0.0.1", + "port": 34222 + }, + "status": "OK", + "type": "amqp" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/cassandra/agent/stream/cassandra.yml.hbs b/packages/network_traffic/1.1.0/data_stream/cassandra/agent/stream/cassandra.yml.hbs new file mode 100755 index 0000000000..9c4ec167d1 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/cassandra/agent/stream/cassandra.yml.hbs @@ -0,0 +1,49 @@ +type: cassandra +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if send_request}} +send_request: {{send_request}} +{{/if}} +{{#if send_request_header}} +send_request_header: {{send_request_header}} +{{/if}} +{{#if send_response}} +send_response: {{send_response}} +{{/if}} +{{#if send_response_header}} +send_response_header: {{send_response_header}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if compressor}} +compressor: {{compressor}} +{{/if}} +{{#if ignored_ops}} +ignored_ops: +{{#each ignored_ops as |ignored_op|}} + - {{ignored_op}} +{{/each}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/cassandra/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/cassandra/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..2860fd7f9e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/cassandra/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing cassandra traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/cassandra/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/cassandra/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/cassandra/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/cassandra/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/cassandra/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/cassandra/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/cassandra/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/cassandra/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/cassandra/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/cassandra/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/cassandra/fields/ecs.yml new file mode 100755 index 0000000000..45c65d5b8a --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/cassandra/fields/ecs.yml @@ -0,0 +1,123 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long diff --git a/packages/network_traffic/1.1.0/data_stream/cassandra/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/cassandra/fields/protocol.yml new file mode 100755 index 0000000000..58a2f6c12d --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/cassandra/fields/protocol.yml @@ -0,0 +1,283 @@ +- name: cassandra + type: group + description: Information about the Cassandra request and response. + fields: + - name: no_request + type: boolean + description: > + Indicates that there is no request because this is a PUSH message. + + - name: request + type: group + description: Cassandra request. + fields: + - name: headers + type: group + description: Cassandra request headers. + fields: + - name: version + type: keyword + description: The version of the protocol. + - name: flags + type: keyword + description: Flags applying to this frame. + - name: stream + type: keyword + description: A frame has a stream id. If a client sends a request message with the stream id X, it is guaranteed that the stream id of the response to that message will be X. + - name: op + type: keyword + description: An operation type that distinguishes the actual message. + - name: length + type: long + description: A integer representing the length of the body of the frame (a frame is limited to 256MB in length). + - name: query + type: keyword + description: The CQL query which client send to cassandra. + - name: response + type: group + description: Cassandra response. + fields: + - name: headers + type: group + description: Cassandra response headers, the structure is as same as request's header. + fields: + - name: version + type: keyword + description: The version of the protocol. + - name: flags + type: keyword + description: Flags applying to this frame. + - name: stream + type: keyword + description: A frame has a stream id. If a client sends a request message with the stream id X, it is guaranteed that the stream id of the response to that message will be X. + - name: op + type: keyword + description: An operation type that distinguishes the actual message. + - name: length + type: long + description: A integer representing the length of the body of the frame (a frame is limited to 256MB in length). + - name: result + type: group + description: Details about the returned result. + fields: + - name: type + type: keyword + description: Cassandra result type. + - name: rows + type: group + description: Details about the rows. + fields: + - name: num_rows + type: long + description: Representing the number of rows present in this result. + - name: meta + type: group + description: Composed of result metadata. + fields: + - name: keyspace + type: keyword + description: Only present after set Global_tables_spec, the keyspace name. + - name: table + type: keyword + description: Only present after set Global_tables_spec, the table name. + - name: flags + type: keyword + description: Provides information on the formatting of the remaining information. + - name: col_count + type: long + description: Representing the number of columns selected by the query that produced this result. + - name: pkey_columns + type: long + description: Representing the PK columns index and counts. + - name: paging_state + type: keyword + description: The paging_state is a bytes value that should be used in QUERY/EXECUTE to continue paging and retrieve the remainder of the result for this query. + - name: keyspace + type: keyword + description: Indicating the name of the keyspace that has been set. + - name: schema_change + type: group + description: The result to a schema_change message. + fields: + - name: change + type: keyword + description: Representing the type of changed involved. + - name: keyspace + type: keyword + description: This describes which keyspace has changed. + - name: table + type: keyword + description: This describes which table has changed. + - name: object + type: keyword + description: This describes the name of said affected object (either the table, user type, function, or aggregate name). + - name: target + type: keyword + description: Target could be "FUNCTION" or "AGGREGATE", multiple arguments. + - name: name + type: keyword + description: The function/aggregate name. + - name: args + type: keyword + description: One string for each argument type (as CQL type). + - name: prepared + type: group + description: The result to a PREPARE message. + fields: + - name: prepared_id + type: keyword + description: Representing the prepared query ID. + - name: req_meta + type: group + description: This describes the request metadata. + fields: + - name: keyspace + type: keyword + description: Only present after set Global_tables_spec, the keyspace name. + - name: table + type: keyword + description: Only present after set Global_tables_spec, the table name. + - name: flags + type: keyword + description: Provides information on the formatting of the remaining information. + - name: col_count + type: long + description: Representing the number of columns selected by the query that produced this result. + - name: pkey_columns + type: long + description: Representing the PK columns index and counts. + - name: paging_state + type: keyword + description: The paging_state is a bytes value that should be used in QUERY/EXECUTE to continue paging and retrieve the remainder of the result for this query. + - name: resp_meta + type: group + description: This describes the metadata for the result set. + fields: + - name: keyspace + type: keyword + description: Only present after set Global_tables_spec, the keyspace name. + - name: table + type: keyword + description: Only present after set Global_tables_spec, the table name. + - name: flags + type: keyword + description: Provides information on the formatting of the remaining information. + - name: col_count + type: long + description: Representing the number of columns selected by the query that produced this result. + - name: pkey_columns + type: long + description: Representing the PK columns index and counts. + - name: paging_state + type: keyword + description: The paging_state is a bytes value that should be used in QUERY/EXECUTE to continue paging and retrieve the remainder of the result for this query. + - name: supported + type: flattened + description: Indicates which startup options are supported by the server. This message comes as a response to an OPTIONS message. + - name: authentication + type: group + description: Indicates that the server requires authentication, and which authentication mechanism to use. + fields: + - name: class + type: keyword + description: Indicates the full class name of the IAuthenticator in use + - name: warnings + type: keyword + description: The text of the warnings, only occur when Warning flag was set. + - name: event + type: group + description: Event pushed by the server. A client will only receive events for the types it has REGISTERed to. + fields: + - name: type + type: keyword + description: Representing the event type. + - name: change + type: keyword + description: The message corresponding respectively to the type of change followed by the address of the new/removed node. + - name: host + type: keyword + description: Representing the node ip. + - name: port + type: long + description: Representing the node port. + - name: schema_change + type: group + description: The events details related to schema change. + fields: + - name: change + type: keyword + description: Representing the type of changed involved. + - name: keyspace + type: keyword + description: This describes which keyspace has changed. + - name: table + type: keyword + description: This describes which table has changed. + - name: object + type: keyword + description: This describes the name of said affected object (either the table, user type, function, or aggregate name). + - name: target + type: keyword + description: Target could be "FUNCTION" or "AGGREGATE", multiple arguments. + - name: name + type: keyword + description: The function/aggregate name. + - name: args + type: keyword + description: One string for each argument type (as CQL type). + - name: error + type: group + description: Indicates an error processing a request. The body of the message will be an error code followed by a error message. Then, depending on the exception, more content may follow. + fields: + - name: code + type: long + description: The error code of the Cassandra response. + - name: msg + type: keyword + description: The error message of the Cassandra response. + - name: type + type: keyword + description: The error type of the Cassandra response. + - name: details + type: group + description: The details of the error. + fields: + - name: read_consistency + type: keyword + description: Representing the consistency level of the query that triggered the exception. + - name: required + type: long + description: Representing the number of nodes that should be alive to respect consistency level. + - name: alive + type: long + description: Representing the number of replicas that were known to be alive when the request had been processed (since an unavailable exception has been triggered). + - name: received + type: long + description: Representing the number of nodes having acknowledged the request. + - name: blockfor + type: long + description: Representing the number of replicas whose acknowledgement is required to achieve consistency level. + - name: write_type + type: keyword + description: Describe the type of the write that timed out. + - name: data_present + type: boolean + description: It means the replica that was asked for data had responded. + - name: keyspace + type: keyword + description: The keyspace of the failed function. + - name: table + type: keyword + description: The keyspace of the failed function. + - name: stmt_id + type: keyword + description: Representing the unknown ID. + - name: num_failures + type: keyword + description: Representing the number of nodes that experience a failure while executing the request. + - name: function + type: keyword + description: The name of the failed function. + - name: arg_types + type: keyword + description: One string for each argument type (as CQL type) of the failed function. diff --git a/packages/network_traffic/1.1.0/data_stream/cassandra/manifest.yml b/packages/network_traffic/1.1.0/data_stream/cassandra/manifest.yml new file mode 100755 index 0000000000..b05f2d1e4e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/cassandra/manifest.yml @@ -0,0 +1,92 @@ +title: Cassandra +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [9042] + - name: send_request + type: bool + title: Send Request + description: |- + If this option is enabled, the raw message of the request (`cassandra_request` field) + is included in published events. The default is true. + show_user: false + multi: false + required: false + - name: send_request_header + type: bool + title: Send Request Header + description: |- + If this option is enabled, the raw message of the response (`cassandra_request.request_headers` field) + is included in published events. The default is true. enable `send_request` first before enable this option. + show_user: false + multi: false + required: false + - name: send_response + type: bool + title: Send Response + description: |- + If this option is enabled, the raw message of the response (`cassandra_response` field) + is included in published events. The default is true. + show_user: false + multi: false + required: false + - name: send_response_header + type: bool + title: Send Response Header + description: |- + If this option is enabled, the raw message of the response (`cassandra_response.response_headers` field) + is included in published events. The default is true. enable `send_response` first before enable this option. + show_user: false + multi: false + required: false + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: compressor + type: text + title: Compressor + description: |- + Configures the default compression algorithm being used to uncompress compressed frames by name. Currently only `snappy` is can be configured. + By default no compressor is configured. + show_user: false + multi: false + required: false + - name: ignored_ops + type: text + title: Ignored Ops + description: This option indicates which Operator/Operators will be ignored. + show_user: false + multi: true + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: Cassandra + description: Capture Cassandra Traffic + template_path: cassandra.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/cassandra/sample_event.json b/packages/network_traffic/1.1.0/data_stream/cassandra/sample_event.json new file mode 100755 index 0000000000..aa2d587c11 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/cassandra/sample_event.json @@ -0,0 +1,125 @@ +{ + "@timestamp": "2022-03-09T07:43:05.888Z", + "agent": { + "ephemeral_id": "20d6eb94-1319-473d-9e2f-05621a4d2494", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "cassandra": { + "request": { + "headers": { + "flags": "Default", + "length": 98, + "op": "QUERY", + "stream": 49, + "version": "4" + }, + "query": "CREATE TABLE users (\n user_id int PRIMARY KEY,\n fname text,\n lname text\n);" + }, + "response": { + "headers": { + "flags": "Default", + "length": 39, + "op": "RESULT", + "stream": 49, + "version": "4" + }, + "result": { + "schema_change": { + "change": "CREATED", + "keyspace": "mykeyspace", + "object": "users", + "target": "TABLE" + }, + "type": "schemaChanged" + } + } + }, + "client": { + "bytes": 107, + "ip": "127.0.0.1", + "port": 52749 + }, + "data_stream": { + "dataset": "network_traffic.cassandra", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 48, + "ip": "127.0.0.1", + "port": 9042 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.cassandra", + "duration": 131589500, + "end": "2022-03-09T07:43:06.019Z", + "ingested": "2022-03-09T07:43:09Z", + "kind": "event", + "start": "2022-03-09T07:43:05.888Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "network": { + "bytes": 155, + "community_id": "1:bCORHZnGIk6GWYaE3Kn0DOpQCKE=", + "direction": "ingress", + "protocol": "cassandra", + "transport": "tcp", + "type": "ipv4" + }, + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "server": { + "bytes": 48, + "ip": "127.0.0.1", + "port": 9042 + }, + "source": { + "bytes": 107, + "ip": "127.0.0.1", + "port": 52749 + }, + "status": "OK", + "type": "cassandra" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/dhcpv4/agent/stream/dhcpv4.yml.hbs b/packages/network_traffic/1.1.0/data_stream/dhcpv4/agent/stream/dhcpv4.yml.hbs new file mode 100755 index 0000000000..2c56638255 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dhcpv4/agent/stream/dhcpv4.yml.hbs @@ -0,0 +1,28 @@ +type: dhcpv4 +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/dhcpv4/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/dhcpv4/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..a0f2d285e8 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dhcpv4/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,54 @@ +--- +description: Pipeline for processing dhcpv4 traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: dhcpv4.client_mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: dhcpv4.client_mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: dhcpv4.client_mac + ignore_missing: true +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/ecs.yml new file mode 100755 index 0000000000..45c65d5b8a --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/ecs.yml @@ -0,0 +1,123 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long diff --git a/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/protocol.yml new file mode 100755 index 0000000000..0180691a5b --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dhcpv4/fields/protocol.yml @@ -0,0 +1,177 @@ +- name: dhcpv4 + type: group + fields: + - name: transaction_id + type: keyword + description: | + Transaction ID, a random number chosen by the + client, used by the client and server to associate + messages and responses between a client and a + server. + - name: seconds + type: long + description: | + Number of seconds elapsed since client began address acquisition or + renewal process. + - name: flags + type: keyword + description: | + Flags are set by the client to indicate how the DHCP server should + its reply -- either unicast or broadcast. + - name: client_ip + type: ip + description: The current IP address of the client. + - name: assigned_ip + type: ip + description: | + The IP address that the DHCP server is assigning to the client. + This field is also known as "your" IP address. + - name: server_ip + type: ip + description: | + The IP address of the DHCP server that the client should use for the + next step in the bootstrap process. + - name: relay_ip + type: ip + description: | + The relay IP address used by the client to contact the server + (i.e. a DHCP relay server). + - name: client_mac + type: keyword + description: The client's MAC address (layer two). + - name: server_name + type: keyword + description: | + The name of the server sending the message. Optional. Used in + DHCPOFFER or DHCPACK messages. + - name: op_code + type: keyword + example: bootreply + description: | + The message op code (bootrequest or bootreply). + - name: hops + type: long + description: The number of hops the DHCP message went through. + - name: hardware_type + type: keyword + description: | + The type of hardware used for the local network (Ethernet, + LocalTalk, etc). + - name: option + type: group + fields: + - name: message_type + type: keyword + example: ack + description: | + The specific type of DHCP message being sent (e.g. discover, + offer, request, decline, ack, nak, release, inform). + - name: parameter_request_list + type: keyword + description: | + This option is used by a DHCP client to request values for + specified configuration parameters. + - name: requested_ip_address + type: ip + description: | + This option is used in a client request (DHCPDISCOVER) to allow + the client to request that a particular IP address be assigned. + - name: server_identifier + type: ip + description: | + IP address of the individual DHCP server which handled this + message. + - name: broadcast_address + type: ip + description: | + This option specifies the broadcast address in use on the + client's subnet. + - name: max_dhcp_message_size + type: long + description: | + This option specifies the maximum length DHCP message that the + client is willing to accept. + - name: class_identifier + type: keyword + description: | + This option is used by DHCP clients to optionally identify the + vendor type and configuration of a DHCP client. Vendors may + choose to define specific vendor class identifiers to convey + particular configuration or other identification information + about a client. For example, the identifier may encode the + client's hardware configuration. + - name: domain_name + type: keyword + description: | + This option specifies the domain name that client should use + when resolving hostnames via the Domain Name System. + - name: dns_servers + type: ip + description: | + The domain name server option specifies a list of Domain Name + System servers available to the client. + - name: vendor_identifying_options + type: object + description: | + A DHCP client may use this option to unambiguously identify the + vendor that manufactured the hardware on which the client is + running, the software in use, or an industry consortium to which + the vendor belongs. This field is described in RFC 3925. + - name: subnet_mask + type: ip + description: | + The subnet mask that the client should use on the currnet + network. + - name: utc_time_offset_sec + type: long + description: | + The time offset field specifies the offset of the client's + subnet in seconds from Coordinated Universal Time (UTC). + - name: router + type: ip + description: | + The router option specifies a list of IP addresses for routers + on the client's subnet. + - name: time_servers + type: ip + description: | + The time server option specifies a list of RFC 868 time servers + available to the client. + - name: ntp_servers + type: ip + description: | + This option specifies a list of IP addresses indicating NTP + servers available to the client. + - name: hostname + type: keyword + description: | + This option specifies the name of the client. + - name: ip_address_lease_time_sec + type: long + description: | + This option is used in a client request (DHCPDISCOVER or + DHCPREQUEST) to allow the client to request a lease time for the + IP address. In a server reply (DHCPOFFER), a DHCP server uses + this option to specify the lease time it is willing to offer. + - name: message + type: text + description: | + This option is used by a DHCP server to provide an error message + to a DHCP client in a DHCPNAK message in the event of a failure. + A client may use this option in a DHCPDECLINE message to + indicate the why the client declined the offered parameters. + - name: renewal_time_sec + type: long + description: | + This option specifies the time interval from address assignment + until the client transitions to the RENEWING state. + - name: rebinding_time_sec + type: long + description: | + This option specifies the time interval from address assignment + until the client transitions to the REBINDING state. + - name: boot_file_name + type: keyword + description: | + This option is used to identify a bootfile when the 'file' field + in the DHCP header has been used for DHCP options. diff --git a/packages/network_traffic/1.1.0/data_stream/dhcpv4/manifest.yml b/packages/network_traffic/1.1.0/data_stream/dhcpv4/manifest.yml new file mode 100755 index 0000000000..fc09a92781 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dhcpv4/manifest.yml @@ -0,0 +1,40 @@ +title: DHCP +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [67, 68] + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: DHCP + description: Capture DHCP Traffic + template_path: dhcpv4.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/dhcpv4/sample_event.json b/packages/network_traffic/1.1.0/data_stream/dhcpv4/sample_event.json new file mode 100755 index 0000000000..59ab870695 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dhcpv4/sample_event.json @@ -0,0 +1,111 @@ +{ + "@timestamp": "2022-03-09T07:43:52.712Z", + "agent": { + "ephemeral_id": "b98a43ba-d050-42e6-ab2f-2eba352e9cb0", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 272, + "ip": "0.0.0.0", + "port": 68 + }, + "data_stream": { + "dataset": "network_traffic.dhcpv4", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "ip": "255.255.255.255", + "port": 67 + }, + "dhcpv4": { + "client_mac": "00-0B-82-01-FC-42", + "flags": "unicast", + "hardware_type": "Ethernet", + "hops": 0, + "op_code": "bootrequest", + "option": { + "message_type": "discover", + "parameter_request_list": [ + "Subnet Mask", + "Router", + "Domain Name Server", + "NTP Servers" + ], + "requested_ip_address": "0.0.0.0" + }, + "seconds": 0, + "transaction_id": "0x00003d1d" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.dhcpv4", + "ingested": "2022-03-09T07:43:53Z", + "kind": "event", + "start": "2022-03-09T07:43:52.712Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "network": { + "bytes": 272, + "community_id": "1:t9O1j0qj71O4wJM7gnaHtgmfev8=", + "direction": "unknown", + "protocol": "dhcpv4", + "transport": "udp", + "type": "ipv4" + }, + "related": { + "ip": [ + "0.0.0.0", + "255.255.255.255" + ] + }, + "server": { + "ip": "255.255.255.255", + "port": 67 + }, + "source": { + "bytes": 272, + "ip": "0.0.0.0", + "port": 68 + }, + "status": "OK", + "type": "dhcpv4" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/dns/agent/stream/dns.yml.hbs b/packages/network_traffic/1.1.0/data_stream/dns/agent/stream/dns.yml.hbs new file mode 100755 index 0000000000..e68885b2f8 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dns/agent/stream/dns.yml.hbs @@ -0,0 +1,43 @@ +type: dns +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if include_authorities}} +include_authorities: {{include_authorities}} +{{/if}} +{{#if include_additionals}} +include_additionals: {{include_additionals}} +{{/if}} +{{#if send_request}} +send_request: {{send_request}} +{{/if}} +{{#if send_response}} +send_response: {{send_response}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if transaction_timeout}} +transaction_timeout: {{transaction_timeout}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/dns/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/dns/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..70d49c51b6 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dns/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing dhcpv4 traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/dns/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/dns/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dns/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/dns/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/dns/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dns/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/dns/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/dns/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dns/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/dns/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/dns/fields/ecs.yml new file mode 100755 index 0000000000..e2ea6f338f --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dns/fields/ecs.yml @@ -0,0 +1,200 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + An array containing an object for each answer section returned by the server. + The main keys that should be present in these objects are defined by ECS. Records that have more information may contain more keys than what ECS defines. + Not all DNS data sources give all details about DNS answers. At minimum, answer objects must contain the `data` key. If more information is available, map as much of it to ECS as possible, and add any additional fields to the answer objects as custom fields. + name: dns.answers + type: object +- description: The class of DNS data contained in this resource record. + name: dns.answers.class + type: keyword +- description: |- + The data describing the resource. + The meaning of this data depends on the type and class of the resource record. + name: dns.answers.data + type: keyword +- description: |- + The domain name to which this resource record pertains. + If a chain of CNAME is being resolved, each answer's `name` should be the one that corresponds with the answer's `data`. It should not simply be the original `question.name` repeated. + name: dns.answers.name + type: keyword +- description: The time interval in seconds that this resource record may be cached before it should be discarded. Zero values mean that the data should not be cached. + name: dns.answers.ttl + type: long +- description: The type of data contained in this resource record. + name: dns.answers.type + type: keyword +- description: |- + Array of 2 letter DNS header flags. + Expected values are: AA, TC, RD, RA, AD, CD, DO. + name: dns.header_flags + type: keyword +- description: The DNS packet identifier assigned by the program that generated the query. The identifier is copied to the response. + name: dns.id + type: keyword +- description: The DNS operation code that specifies the kind of query in the message. This value is set by the originator of a query and copied into the response. + name: dns.op_code + type: keyword +- description: The class of records being queried. + name: dns.question.class + type: keyword +- description: |- + The name being queried. + If the name field contains non-printable characters (below 32 or above 126), those characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n respectively. + name: dns.question.name + type: keyword +- description: |- + The highest registered domain, stripped of the subdomain. + For example, the registered domain for "foo.example.com" is "example.com". + This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". + name: dns.question.registered_domain + type: keyword +- description: |- + The subdomain is all of the labels under the registered_domain. + If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. + name: dns.question.subdomain + type: keyword +- description: |- + The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com". + This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". + name: dns.question.top_level_domain + type: keyword +- description: The type of record being queried. + name: dns.question.type + type: keyword +- description: |- + Array containing all IPs seen in `answers.data`. + The `answers` array can be difficult to use, because of the variety of data formats it can contain. Extracting all IP addresses seen in there to `dns.resolved_ip` makes it possible to index them as IP addresses, and makes them easier to visualize and query for. + name: dns.resolved_ip + type: ip +- description: The DNS response code. + name: dns.response_code + type: keyword +- description: |- + The type of DNS event captured, query or answer. + If your source of DNS events only gives you DNS queries, you should only create dns events of type `dns.type:query`. + If your source of DNS events gives you answers as well, you should create one event per query (optionally as soon as the query is seen). And a second event containing all query details as well as an array of answers. + name: dns.type + type: keyword +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long diff --git a/packages/network_traffic/1.1.0/data_stream/dns/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/dns/fields/protocol.yml new file mode 100755 index 0000000000..28d506b996 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dns/fields/protocol.yml @@ -0,0 +1,110 @@ +- name: dns + type: group + fields: + - name: flags.authoritative + type: boolean + description: > + A DNS flag specifying that the responding server is an authority for the domain name used in the question. + + - name: flags.recursion_available + type: boolean + description: > + A DNS flag specifying whether recursive query support is available in the name server. + + - name: flags.recursion_desired + type: boolean + description: > + A DNS flag specifying that the client directs the server to pursue a query recursively. Recursive query support is optional. + + - name: flags.authentic_data + type: boolean + description: > + A DNS flag specifying that the recursive server considers the response authentic. + + - name: flags.checking_disabled + type: boolean + description: > + A DNS flag specifying that the client disables the server signature validation of the query. + + - name: flags.truncated_response + type: boolean + description: > + A DNS flag specifying that only the first 512 bytes of the reply were returned. + + - name: question.etld_plus_one + type: keyword + description: The effective top-level domain (eTLD) plus one more label. For example, the eTLD+1 for "foo.bar.golang.org." is "golang.org.". The data for determining the eTLD comes from an embedded copy of the data from http://publicsuffix.org. + example: amazon.co.uk. + - name: answers_count + type: long + description: > + The number of resource records contained in the `dns.answers` field. + + - name: authorities + type: object + description: > + An array containing a dictionary for each authority section from the answer. + + - name: authorities_count + type: long + description: > + The number of resource records contained in the `dns.authorities` field. The `dns.authorities` field may or may not be included depending on the configuration of Packetbeat. + + - name: authorities.name + type: keyword + description: The domain name to which this resource record pertains. + example: example.com. + - name: authorities.type + type: keyword + description: The type of data contained in this resource record. + example: NS + - name: authorities.class + type: keyword + description: The class of DNS data contained in this resource record. + example: IN + - name: additionals + type: object + description: > + An array containing a dictionary for each additional section from the answer. + + - name: additionals_count + type: long + description: > + The number of resource records contained in the `dns.additionals` field. The `dns.additionals` field may or may not be included depending on the configuration of Packetbeat. + + - name: additionals.name + type: keyword + description: The domain name to which this resource record pertains. + example: example.com. + - name: additionals.type + type: keyword + description: The type of data contained in this resource record. + example: NS + - name: additionals.class + type: keyword + description: The class of DNS data contained in this resource record. + example: IN + - name: additionals.ttl + description: > + The time interval in seconds that this resource record may be cached before it should be discarded. Zero values mean that the data should not be cached. + + type: long + - name: additionals.data + type: keyword + description: > + The data describing the resource. The meaning of this data depends on the type and class of the resource record. + + - name: opt.version + type: keyword + description: The EDNS version. + example: "0" + - name: opt.do + type: boolean + description: If set, the transaction uses DNSSEC. + - name: opt.ext_rcode + type: keyword + description: Extended response code field. + example: "BADVERS" + - name: opt.udp_size + type: long + description: Requestor's UDP payload size (in bytes). diff --git a/packages/network_traffic/1.1.0/data_stream/dns/manifest.yml b/packages/network_traffic/1.1.0/data_stream/dns/manifest.yml new file mode 100755 index 0000000000..cc5476bfad --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dns/manifest.yml @@ -0,0 +1,95 @@ +title: DNS +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [53] + - name: include_authorities + type: bool + title: Include Authorities + description: |- + include_authorities controls whether or not the dns.authorities field + (authority resource records) is added to messages. + Default: false + show_user: false + multi: false + required: false + - name: include_additionals + type: bool + title: Include Additionals + description: |- + include_additionals controls whether or not the dns.additionals field + (additional resource records) is added to messages. + Default: false + show_user: false + multi: false + required: false + - name: send_request + type: bool + title: Send Request + description: |- + send_request controls whether or not the stringified DNS + request messages are added to the result. + Nearly all data about the request/response is available in the dns.* + fields, but this can be useful if you need visibility specifically + into the request or the response. + Default: false + show_user: false + multi: false + required: false + - name: send_response + type: bool + title: Send Response + description: |- + send_response controls whether or not the stringified DNS + response messages are added to the result. + Nearly all data about the request/response is available in the dns.* + fields, but this can be useful if you need visibility specifically + into the request or the response. + Default: false + show_user: false + multi: false + required: false + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: transaction_timeout + type: text + title: Transaction Timeout + description: |- + Transaction timeout. Expired transactions will no longer be correlated to + incoming responses, but sent to Elasticsearch immediately. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: DNS + description: Capture DNS Traffic + template_path: dns.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/dns/sample_event.json b/packages/network_traffic/1.1.0/data_stream/dns/sample_event.json new file mode 100755 index 0000000000..476a880555 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/dns/sample_event.json @@ -0,0 +1,158 @@ +{ + "@timestamp": "2022-03-09T07:48:42.751Z", + "agent": { + "ephemeral_id": "1d099984-2551-49e1-9e6a-c1dff964be0f", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 28, + "ip": "192.168.238.68", + "port": 53765 + }, + "data_stream": { + "dataset": "network_traffic.dns", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 167, + "ip": "8.8.8.8", + "port": 53 + }, + "dns": { + "additionals_count": 0, + "answers": [ + { + "class": "IN", + "data": "ns-1183.awsdns-19.org", + "name": "elastic.co", + "ttl": "21599", + "type": "NS" + }, + { + "class": "IN", + "data": "ns-2007.awsdns-58.co.uk", + "name": "elastic.co", + "ttl": "21599", + "type": "NS" + }, + { + "class": "IN", + "data": "ns-66.awsdns-08.com", + "name": "elastic.co", + "ttl": "21599", + "type": "NS" + }, + { + "class": "IN", + "data": "ns-835.awsdns-40.net", + "name": "elastic.co", + "ttl": "21599", + "type": "NS" + } + ], + "answers_count": 4, + "authorities_count": 0, + "flags": { + "authentic_data": false, + "authoritative": false, + "checking_disabled": false, + "recursion_available": true, + "recursion_desired": true, + "truncated_response": false + }, + "header_flags": [ + "RD", + "RA" + ], + "id": 26187, + "op_code": "QUERY", + "question": { + "class": "IN", + "etld_plus_one": "elastic.co", + "name": "elastic.co", + "registered_domain": "elastic.co", + "top_level_domain": "co", + "type": "NS" + }, + "response_code": "NOERROR", + "type": "answer" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.dns", + "duration": 68515700, + "end": "2022-03-09T07:48:42.819Z", + "ingested": "2022-03-09T07:48:43Z", + "kind": "event", + "start": "2022-03-09T07:48:42.751Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "method": "QUERY", + "network": { + "bytes": 195, + "community_id": "1:3P4ruI0bVlqxiTAs0WyBhnF74ek=", + "direction": "unknown", + "protocol": "dns", + "transport": "udp", + "type": "ipv4" + }, + "query": "class IN, type NS, elastic.co", + "related": { + "ip": [ + "192.168.238.68", + "8.8.8.8" + ] + }, + "resource": "elastic.co", + "server": { + "bytes": 167, + "ip": "8.8.8.8", + "port": 53 + }, + "source": { + "bytes": 28, + "ip": "192.168.238.68", + "port": 53765 + }, + "status": "OK", + "type": "dns" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/flow/agent/stream/flow.yml.hbs b/packages/network_traffic/1.1.0/data_stream/flow/agent/stream/flow.yml.hbs new file mode 100755 index 0000000000..8759e465b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/flow/agent/stream/flow.yml.hbs @@ -0,0 +1,15 @@ +type: flow +{{#if timeout}} +flows.timeout: '{{timeout}}' +{{/if}} +{{#if period}} +flows.period: '{{period}}' +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/flow/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/flow/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..8a45c554fd --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/flow/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,27 @@ +--- +description: Pipeline for processing traffic flows +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/flow/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/flow/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/flow/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/flow/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/flow/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/flow/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/flow/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/flow/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/flow/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/flow/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/flow/fields/ecs.yml new file mode 100755 index 0000000000..45c65d5b8a --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/flow/fields/ecs.yml @@ -0,0 +1,123 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long diff --git a/packages/network_traffic/1.1.0/data_stream/flow/manifest.yml b/packages/network_traffic/1.1.0/data_stream/flow/manifest.yml new file mode 100755 index 0000000000..4f455c6f25 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/flow/manifest.yml @@ -0,0 +1,23 @@ +title: Flows +release: beta +type: logs +streams: + - input: packet + title: Flows + description: Track Network Flows + template_path: flow.yml.hbs + vars: + - name: period + type: text + title: Period + required: false + show_user: false + description: Configure the reporting interval. All flows are reported at the very same point in time. Periodical reporting can be disabled by setting the value to -1. If disabled, flows are still reported once being timed out. + default: '10s' + - name: timeout + type: text + title: Flow timeout + description: Timeout configures the lifetime of a flow. If no packets have been received for a flow within the timeout time window, the flow is killed and reported. + required: false + show_user: false + default: '30s' diff --git a/packages/network_traffic/1.1.0/data_stream/http/agent/stream/http.yml.hbs b/packages/network_traffic/1.1.0/data_stream/http/agent/stream/http.yml.hbs new file mode 100755 index 0000000000..4c2aecad10 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/http/agent/stream/http.yml.hbs @@ -0,0 +1,85 @@ +type: http +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if hide_keywords}} +hide_keywords: +{{#each hide_keywords as |hide_keyword|}} + - {{hide_keyword}} +{{/each}} +{{/if}} +{{#if send_headers}} +send_headers: {{send_headers}} +{{/if}} +{{#if send_all_headers}} +send_all_headers: {{send_all_headers}} +{{/if}} +{{#if redact_headers}} +redact_headers: +{{#each redact_headers as |redact_header|}} + - {{redact_header}} +{{/each}} +{{/if}} +{{#if include_body_for}} +include_body_for: +{{#each include_body_for as |include_body_for_elem|}} + - {{include_body_for_elem}} +{{/each}} +{{/if}} +{{#if include_request_body_for}} +include_request_body_for: +{{#each include_request_body_for as |include_request_body_for_elem|}} + - {{include_request_body_for_elem}} +{{/each}} +{{/if}} +{{#if include_response_body_for}} +include_response_body_for: +{{#each include_response_body_for as |include_response_body_for_elem|}} + - {{include_response_body_for_elem}} +{{/each}} +{{/if}} +{{#if decode_body}} +decode_body: {{decode_body}} +{{/if}} +{{#if split_cookie}} +split_cookie: {{split_cookie}} +{{/if}} +{{#if real_ip_header}} +real_ip_header: {{real_ip_header}} +{{/if}} +{{#if send_request}} +send_request: {{send_request}} +{{/if}} +{{#if send_response}} +send_response: {{send_response}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if transaction_timeout}} +transaction_timeout: {{transaction_timeout}} +{{/if}} +{{#if max_message_size}} +max_message_size: {{max_message_size}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/http/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/http/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..e0cbf2bf88 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/http/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing http traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/http/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/http/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/http/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/http/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/http/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/http/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/http/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/http/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/http/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/http/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/http/fields/ecs.yml new file mode 100755 index 0000000000..d003c7093e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/http/fields/ecs.yml @@ -0,0 +1,203 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: |- + The domain name of the destination system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: destination.domain + type: keyword +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: Size in bytes of the request body. + name: http.request.body.bytes + type: long +- description: Total size in bytes of the request (body and headers). + name: http.request.bytes + type: long +- description: |- + HTTP request method. + The value should retain its casing from the original event. For example, `GET`, `get`, and `GeT` are all considered valid values for this field. + name: http.request.method + type: keyword +- description: Referrer for this HTTP request. + name: http.request.referrer + type: keyword +- description: Size in bytes of the response body. + name: http.response.body.bytes + type: long +- description: Total size in bytes of the response (body and headers). + name: http.response.bytes + type: long +- description: HTTP response status code. + name: http.response.status_code + type: long +- description: HTTP version. + name: http.version + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: |- + The domain name of the server system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: server.domain + type: keyword +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long +- description: |- + Domain of the url, such as "www.elastic.co". + In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. + name: url.domain + type: keyword +- description: |- + The field contains the file extension from the original request url, excluding the leading dot. + The file extension is only set if it exists, as not every url has a file extension. + The leading period must not be included. For example, the value must be "png", not ".png". + Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). + name: url.extension + type: keyword +- description: If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. + multi_fields: + - name: text + type: match_only_text + name: url.full + type: wildcard +- description: Path of the request, such as "/search". + name: url.path + type: wildcard +- description: Port of the request, such as 443. + name: url.port + type: long +- description: |- + The query field describes the query string of the request, such as "q=elasticsearch". + The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. + name: url.query + type: keyword +- description: |- + Scheme of the request, such as "https". + Note: The `:` is not part of the scheme. + name: url.scheme + type: keyword +- description: Unparsed user_agent string. + multi_fields: + - name: text + type: match_only_text + name: user_agent.original + type: keyword diff --git a/packages/network_traffic/1.1.0/data_stream/http/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/http/fields/protocol.yml new file mode 100755 index 0000000000..51b73ae344 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/http/fields/protocol.yml @@ -0,0 +1,26 @@ +- name: http + type: group + description: Information about the HTTP request and response. + fields: + - name: request + description: HTTP request + type: group + fields: + - name: headers + type: flattened + description: > + A map containing the captured header fields from the request. Which headers to capture is configurable. If headers with the same header name are present in the message, they will be separated by commas. + + - name: response + description: HTTP response + type: group + fields: + - name: status_phrase + type: keyword + description: The HTTP status phrase. + example: Not Found + - name: headers + type: flattened + description: > + A map containing the captured header fields from the response. Which headers to capture is configurable. If headers with the same header name are present in the message, they will be separated by commas. + diff --git a/packages/network_traffic/1.1.0/data_stream/http/manifest.yml b/packages/network_traffic/1.1.0/data_stream/http/manifest.yml new file mode 100755 index 0000000000..f16188331c --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/http/manifest.yml @@ -0,0 +1,173 @@ +title: HTTP +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [80, 8080, 8000, 5000, 8002] + - name: hide_keywords + type: text + title: Hide Keywords + description: |- + Uncomment the following to hide certain parameters in URL or forms attached + to HTTP requests. The names of the parameters are case insensitive. + The value of the parameters will be replaced with the 'xxxxx' string. + This is generally useful for avoiding storing user passwords or other + sensitive information. + Only query parameters and top level form parameters are replaced. + show_user: false + multi: true + required: false + - name: send_headers + type: bool + title: Send Headers + description: |- + A list of header names to capture and send to Elasticsearch. These headers + are placed under the `headers` dictionary in the resulting JSON. + show_user: false + multi: false + required: false + - name: send_all_headers + type: bool + title: Send All Headers + description: |- + Instead of sending a white list of headers to Elasticsearch, you can send + all headers by setting this option to true. The default is false. + show_user: false + multi: false + required: false + - name: redact_headers + type: text + title: Redact Headers + description: |- + A list of headers to redact if present in the HTTP request. This will keep + the header field present, but will redact it's value to show the headers + presence. + show_user: false + multi: true + required: false + - name: include_body_for + type: text + title: Include Body For + description: |- + The list of content types for which Packetbeat includes the full HTTP + payload. If the request's or response's Content-Type matches any on this + list, the full body will be included under the request or response field. + show_user: false + multi: true + required: false + - name: include_request_body_for + type: text + title: Include Request Body For + description: |- + The list of content types for which Packetbeat includes the full HTTP + request payload. + show_user: false + multi: true + required: false + - name: include_response_body_for + type: text + title: Include Response Body For + description: |- + The list of content types for which Packetbeat includes the full HTTP + response payload. + show_user: false + multi: true + required: false + - name: decode_body + type: bool + title: Decode Body + description: |- + Whether the body of a request must be decoded when a content-encoding + or transfer-encoding has been applied. + show_user: false + multi: false + required: false + - name: split_cookie + type: bool + title: Split Cookie + description: |- + If the Cookie or Set-Cookie headers are sent, this option controls whether + they are split into individual values. + show_user: false + multi: false + required: false + - name: real_ip_header + type: bool + title: Real Ip Header + description: |- + The header field to extract the real IP from. This setting is useful when + you want to capture traffic behind a reverse proxy, but you want to get the + geo-location information. + show_user: false + multi: false + required: false + - name: send_request + type: bool + title: Send Request + description: |- + If this option is enabled, the raw message of the request (`request` field) + is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: send_response + type: bool + title: Send Response + description: |- + If this option is enabled, the raw message of the response (`response` + field) is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: transaction_timeout + type: text + title: Transaction Timeout + description: |- + Transaction timeout. Expired transactions will no longer be correlated to + incoming responses, but sent to Elasticsearch immediately. + show_user: false + multi: false + required: false + - name: max_message_size + type: integer + title: Max Message Size + description: |- + Maximum message size. If an HTTP message is larger than this, it will + be trimmed to this size. Default is 10 MB. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: HTTP + description: Capture HTTP Traffic + template_path: http.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/http/sample_event.json b/packages/network_traffic/1.1.0/data_stream/http/sample_event.json new file mode 100755 index 0000000000..f07301394b --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/http/sample_event.json @@ -0,0 +1,139 @@ +{ + "@timestamp": "2022-03-09T07:54:42.031Z", + "agent": { + "ephemeral_id": "822947c0-15fd-4278-ba0d-2cc64d687bb2", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 211, + "ip": "192.168.238.50", + "port": 64770 + }, + "data_stream": { + "dataset": "network_traffic.http", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 9108, + "domain": "packetbeat.com", + "ip": "107.170.1.22", + "port": 80 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.http", + "duration": 141490400, + "end": "2022-03-09T07:54:42.172Z", + "ingested": "2022-03-09T07:54:43Z", + "kind": "event", + "start": "2022-03-09T07:54:42.031Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "http": { + "request": { + "body": { + "bytes": 55 + }, + "bytes": 211, + "headers": { + "content-length": 55, + "content-type": "application/x-www-form-urlencoded" + }, + "method": "POST" + }, + "response": { + "body": { + "bytes": 8936 + }, + "bytes": 9108, + "headers": { + "content-length": 8936, + "content-type": "text/html; charset=utf-8" + }, + "status_code": 404, + "status_phrase": "not found" + }, + "version": "1.1" + }, + "method": "POST", + "network": { + "bytes": 9319, + "community_id": "1:LREAuuDqOAxXEbzF064U0QX5FBs=", + "direction": "unknown", + "protocol": "http", + "transport": "tcp", + "type": "ipv4" + }, + "query": "POST /register", + "related": { + "hosts": [ + "packetbeat.com" + ], + "ip": [ + "192.168.238.50", + "107.170.1.22" + ] + }, + "server": { + "bytes": 9108, + "domain": "packetbeat.com", + "ip": "107.170.1.22", + "port": 80 + }, + "source": { + "bytes": 211, + "ip": "192.168.238.50", + "port": 64770 + }, + "status": "Error", + "type": "http", + "url": { + "domain": "packetbeat.com", + "full": "http://packetbeat.com/register?address=anklamerstr.14b\u0026telephon=8932784368\u0026user=monica", + "path": "/register", + "query": "address=anklamerstr.14b\u0026telephon=8932784368\u0026user=monica", + "scheme": "http" + }, + "user_agent": { + "original": "curl/7.37.1" + } +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/icmp/agent/stream/icmp.yml.hbs b/packages/network_traffic/1.1.0/data_stream/icmp/agent/stream/icmp.yml.hbs new file mode 100755 index 0000000000..f550ca79fa --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/icmp/agent/stream/icmp.yml.hbs @@ -0,0 +1,22 @@ +type: icmp +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/icmp/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/icmp/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..1ae74a0692 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/icmp/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing icmp traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/icmp/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/icmp/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/icmp/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/icmp/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/icmp/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/icmp/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/icmp/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/icmp/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/icmp/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/icmp/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/icmp/fields/ecs.yml new file mode 100755 index 0000000000..45c65d5b8a --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/icmp/fields/ecs.yml @@ -0,0 +1,123 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long diff --git a/packages/network_traffic/1.1.0/data_stream/icmp/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/icmp/fields/protocol.yml new file mode 100755 index 0000000000..5aef1deaf4 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/icmp/fields/protocol.yml @@ -0,0 +1,27 @@ +- name: icmp + type: group + fields: + - name: version + type: long + description: The version of the ICMP protocol. + possible_values: + - 4 + - 6 + - name: request.message + type: keyword + description: A human readable form of the request. + - name: request.type + type: long + description: The request type. + - name: request.code + type: long + description: The request code. + - name: response.message + type: keyword + description: A human readable form of the response. + - name: response.type + type: long + description: The response type. + - name: response.code + type: long + description: The response code. diff --git a/packages/network_traffic/1.1.0/data_stream/icmp/manifest.yml b/packages/network_traffic/1.1.0/data_stream/icmp/manifest.yml new file mode 100755 index 0000000000..ca911dc8e0 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/icmp/manifest.yml @@ -0,0 +1,30 @@ +title: ICMP +release: beta +type: logs +streams: + - input: packet + title: ICMP + description: Capture ICMP Traffic + template_path: icmp.yml.hbs + vars: + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false diff --git a/packages/network_traffic/1.1.0/data_stream/icmp/sample_event.json b/packages/network_traffic/1.1.0/data_stream/icmp/sample_event.json new file mode 100755 index 0000000000..6dfd5d97d4 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/icmp/sample_event.json @@ -0,0 +1,104 @@ +{ + "@timestamp": "2022-03-09T07:57:32.766Z", + "agent": { + "ephemeral_id": "34e079a4-8dee-40db-a820-2296c225fbbe", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 4, + "ip": "::1" + }, + "data_stream": { + "dataset": "network_traffic.icmp", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 4, + "ip": "::2" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.icmp", + "duration": 13336600, + "end": "2022-03-09T07:57:32.779Z", + "ingested": "2022-03-09T07:57:36Z", + "kind": "event", + "start": "2022-03-09T07:57:32.766Z", + "type": [ + "connection" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "icmp": { + "request": { + "code": 0, + "message": "EchoRequest", + "type": 128 + }, + "response": { + "code": 0, + "message": "EchoReply", + "type": 129 + }, + "version": 6 + }, + "network": { + "bytes": 8, + "community_id": "1:9UpHcZHFAOl8WqZVOs5YRQ5wDGE=", + "direction": "egress", + "transport": "ipv6-icmp", + "type": "ipv6" + }, + "path": "::2", + "related": { + "ip": [ + "::1", + "::2" + ] + }, + "server": { + "bytes": 4, + "ip": "::2" + }, + "source": { + "bytes": 4, + "ip": "::1" + }, + "status": "OK", + "type": "icmp" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/memcached/agent/stream/memcached.yml.hbs b/packages/network_traffic/1.1.0/data_stream/memcached/agent/stream/memcached.yml.hbs new file mode 100755 index 0000000000..136c8ad877 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/memcached/agent/stream/memcached.yml.hbs @@ -0,0 +1,49 @@ +type: memcache +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if parseunknown}} +parseunknown: {{parseunknown}} +{{/if}} +{{#if maxvalues}} +maxvalues: {{maxvalues}} +{{/if}} +{{#if maxbytespervalue}} +maxbytespervalue: {{maxbytespervalue}} +{{/if}} +{{#if udptransactiontimeout}} +udptransactiontimeout: {{udptransactiontimeout}} +{{/if}} +{{#if send_request}} +send_request: {{send_request}} +{{/if}} +{{#if send_response}} +send_response: {{send_response}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if transaction_timeout}} +transaction_timeout: {{transaction_timeout}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/memcached/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/memcached/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..79d3c2cf54 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/memcached/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing memcached traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/memcached/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/memcached/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/memcached/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/memcached/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/memcached/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/memcached/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/memcached/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/memcached/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/memcached/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/memcached/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/memcached/fields/ecs.yml new file mode 100755 index 0000000000..7638afce57 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/memcached/fields/ecs.yml @@ -0,0 +1,136 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. + `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. + Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. + Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. + Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. + name: event.outcome + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long diff --git a/packages/network_traffic/1.1.0/data_stream/memcached/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/memcached/fields/protocol.yml new file mode 100755 index 0000000000..4d1c281dde --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/memcached/fields/protocol.yml @@ -0,0 +1,215 @@ +- name: memcache + type: group + fields: + - name: protocol_type + type: keyword + description: > + The memcache protocol implementation. The value can be "binary" for binary-based, "text" for text-based, or "unknown" for an unknown memcache protocol type. + + - name: request.line + type: keyword + description: > + The raw command line for unknown commands ONLY. + + - name: request.command + type: keyword + description: > + The memcache command being requested in the memcache text protocol. For example "set" or "get". The binary protocol opcodes are translated into memcache text protocol commands. + + - name: response.command + type: keyword + description: > + Either the text based protocol response message type or the name of the originating request if binary protocol is used. + + - name: request.type + type: keyword + description: > + The memcache command classification. This value can be "UNKNOWN", "Load", "Store", "Delete", "Counter", "Info", "SlabCtrl", "LRUCrawler", "Stats", "Success", "Fail", or "Auth". + + - name: response.type + type: keyword + description: > + The memcache command classification. This value can be "UNKNOWN", "Load", "Store", "Delete", "Counter", "Info", "SlabCtrl", "LRUCrawler", "Stats", "Success", "Fail", or "Auth". The text based protocol will employ any of these, whereas the binary based protocol will mirror the request commands only (see `memcache.response.status` for binary protocol). + + - name: response.error_msg + type: keyword + description: > + The optional error message in the memcache response (text based protocol only). + + - name: request.opcode + type: keyword + description: > + The binary protocol message opcode name. + + - name: response.opcode + type: keyword + description: > + The binary protocol message opcode name. + + - name: request.opcode_value + type: long + description: > + The binary protocol message opcode value. + + - name: response.opcode_value + type: long + description: > + The binary protocol message opcode value. + + - name: request.opaque + type: long + description: > + The binary protocol opaque header value used for correlating request with response messages. + + - name: response.opaque + type: long + description: > + The binary protocol opaque header value used for correlating request with response messages. + + - name: request.vbucket + type: long + description: > + The vbucket index sent in the binary message. + + - name: response.status + type: keyword + description: > + The textual representation of the response error code (binary protocol only). + + - name: response.status_code + type: long + description: > + The status code value returned in the response (binary protocol only). + + - name: request.keys + type: array + description: > + The list of keys sent in the store or load commands. + + - name: response.keys + type: array + description: > + The list of keys returned for the load command (if present). + + - name: request.count_values + type: long + description: > + The number of values found in the memcache request message. If the command does not send any data, this field is missing. + + - name: response.count_values + type: long + description: > + The number of values found in the memcache response message. If the command does not send any data, this field is missing. + + - name: request.values + type: array + description: > + The list of base64 encoded values sent with the request (if present). + + - name: response.values + type: array + description: > + The list of base64 encoded values sent with the response (if present). + + - name: request.bytes + type: long + format: bytes + description: > + The byte count of the values being transferred. + + - name: response.bytes + type: long + format: bytes + description: > + The byte count of the values being transferred. + + - name: request.delta + type: long + description: > + The counter increment/decrement delta value. + + - name: request.initial + type: long + description: > + The counter increment/decrement initial value parameter (binary protocol only). + + - name: request.verbosity + type: long + description: > + The value of the memcache "verbosity" command. + + - name: request.raw_args + type: keyword + description: > + The text protocol raw arguments for the "stats ..." and "lru crawl ..." commands. + + - name: request.source_class + type: long + description: > + The source class id in 'slab reassign' command. + + - name: request.dest_class + type: long + description: > + The destination class id in 'slab reassign' command. + + - name: request.automove + type: keyword + description: > + The automove mode in the 'slab automove' command expressed as a string. This value can be "standby"(=0), "slow"(=1), "aggressive"(=2), or the raw value if the value is unknown. + + - name: request.flags + type: long + description: > + The memcache command flags sent in the request (if present). + + - name: response.flags + type: long + description: > + The memcache message flags sent in the response (if present). + + - name: request.exptime + type: long + description: > + The data expiry time in seconds sent with the memcache command (if present). If the value is `< 30` days, the expiry time is relative to "now", or else it is an absolute Unix time in seconds (32-bit). + + - name: request.sleep_us + type: long + description: > + The sleep setting in microseconds for the 'lru_crawler sleep' command. + + - name: response.value + type: long + description: > + The counter value returned by a counter operation. + + - name: request.noreply + type: boolean + description: > + Set to true if noreply was set in the request. The `memcache.response` field will be missing. + + - name: request.quiet + type: boolean + description: > + Set to true if the binary protocol message is to be treated as a quiet message. + + - name: request.cas_unique + type: long + description: > + The CAS (compare-and-swap) identifier if present. + + - name: response.cas_unique + type: long + description: > + The CAS (compare-and-swap) identifier to be used with CAS-based updates (if present). + + - name: response.stats + type: array + description: > + The list of statistic values returned. Each entry is a dictionary with the fields "name" and "value". + + - name: response.version + type: keyword + description: > + The returned memcache version string. + diff --git a/packages/network_traffic/1.1.0/data_stream/memcached/manifest.yml b/packages/network_traffic/1.1.0/data_stream/memcached/manifest.yml new file mode 100755 index 0000000000..9120331b9d --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/memcached/manifest.yml @@ -0,0 +1,116 @@ +title: Memcached +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [11211] + - name: parseunknown + type: bool + title: Parseunknown + description: |- + Uncomment the parseunknown option to force the memcache text protocol parser + to accept unknown commands. + Note: All unknown commands MUST not contain any data parts! + Default: false + show_user: false + multi: false + required: false + - name: maxvalues + type: integer + title: Maxvalues + description: |- + Update the maxvalue option to store the values - base64 encoded - in the + json output. + possible values: + maxvalue: -1 store all values (text based protocol multi-get) + maxvalue: 0 store no values at all + maxvalue: N store up to N values + Default: 0 + show_user: false + multi: false + required: false + - name: maxbytespervalue + type: integer + title: Maxbytespervalue + description: |- + Use maxbytespervalue to limit the number of bytes to be copied per value element. + Note: Values will be base64 encoded, so actual size in json document + will be 4 times maxbytespervalue. + Default: unlimited + show_user: false + multi: false + required: false + - name: udptransactiontimeout + type: integer + title: Udptransactiontimeout + description: |- + UDP transaction timeout in milliseconds. + Note: Quiet messages in UDP binary protocol will get response only in error case. + The memcached analyzer will wait for udptransactiontimeout milliseconds + before publishing quiet messages. Non quiet messages or quiet requests with + error response will not have to wait for the timeout. + Default: 200 + show_user: false + multi: false + required: false + - name: send_request + type: bool + title: Send Request + description: |- + If this option is enabled, the raw message of the request (`request` field) + is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: send_response + type: bool + title: Send Response + description: |- + If this option is enabled, the raw message of the response (`response` + field) is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: transaction_timeout + type: text + title: Transaction Timeout + description: |- + Transaction timeout. Expired transactions will no longer be correlated to + incoming responses, but sent to Elasticsearch immediately. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: Memcached + description: Capture Memcached Traffic + template_path: memcached.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/memcached/sample_event.json b/packages/network_traffic/1.1.0/data_stream/memcached/sample_event.json new file mode 100755 index 0000000000..4b4dc284f8 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/memcached/sample_event.json @@ -0,0 +1,112 @@ +{ + "@timestamp": "2022-03-09T08:09:26.564Z", + "agent": { + "ephemeral_id": "53c3aab1-4c1d-4f33-87a9-1d1d4ce75205", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "ip": "192.168.188.37", + "port": 65195 + }, + "data_stream": { + "dataset": "network_traffic.memcached", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 1064, + "ip": "192.168.188.38", + "port": 11211 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.memcached", + "ingested": "2022-03-09T08:09:37Z", + "kind": "event", + "start": "2022-03-09T08:09:26.564Z", + "type": [ + "connection", + "protocol" + ] + }, + "event.action": "memcache.store", + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "memcache": { + "protocol_type": "binary", + "request": { + "bytes": 1024, + "command": "set", + "count_values": 1, + "exptime": 0, + "flags": 0, + "keys": [ + "test_key" + ], + "opaque": 65536, + "opcode": "SetQ", + "opcode_value": 17, + "quiet": true, + "type": "Store", + "vbucket": 0 + } + }, + "network": { + "bytes": 1064, + "community_id": "1:QMbWqXK5vGDDbp48SEFuFe8Z1lQ=", + "direction": "unknown", + "protocol": "memcache", + "transport": "udp", + "type": "ipv4" + }, + "related": { + "ip": [ + "192.168.188.37", + "192.168.188.38" + ] + }, + "server": { + "bytes": 1064, + "ip": "192.168.188.38", + "port": 11211 + }, + "source": { + "ip": "192.168.188.37", + "port": 65195 + }, + "status": "OK", + "type": "memcache" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/mongodb/agent/stream/mongodb.yml.hbs b/packages/network_traffic/1.1.0/data_stream/mongodb/agent/stream/mongodb.yml.hbs new file mode 100755 index 0000000000..fe92042bcc --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mongodb/agent/stream/mongodb.yml.hbs @@ -0,0 +1,43 @@ +type: mongodb +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if max_docs}} +max_docs: {{max_docs}} +{{/if}} +{{#if max_doc_length}} +max_doc_length: {{max_doc_length}} +{{/if}} +{{#if send_request}} +send_request: {{send_request}} +{{/if}} +{{#if send_response}} +send_response: {{send_response}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if transaction_timeout}} +transaction_timeout: {{transaction_timeout}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/mongodb/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/mongodb/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..53b9f4a0df --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mongodb/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing mongodb traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/mongodb/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/mongodb/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mongodb/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/mongodb/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/mongodb/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mongodb/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/mongodb/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/mongodb/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mongodb/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/mongodb/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/mongodb/fields/ecs.yml new file mode 100755 index 0000000000..45c65d5b8a --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mongodb/fields/ecs.yml @@ -0,0 +1,123 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long diff --git a/packages/network_traffic/1.1.0/data_stream/mongodb/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/mongodb/fields/protocol.yml new file mode 100755 index 0000000000..a84465c61e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mongodb/fields/protocol.yml @@ -0,0 +1,58 @@ +- name: mongodb + type: group + fields: + - name: error + type: keyword + description: > + If the MongoDB request has resulted in an error, this field contains the error message returned by the server. + + - name: fullCollectionName + type: keyword + description: > + The full collection name. The full collection name is the concatenation of the database name with the collection name, using a dot (.) for the concatenation. For example, for the database foo and the collection bar, the full collection name is foo.bar. + + - name: numberToSkip + type: long + description: > + Sets the number of documents to omit - starting from the first document in the resulting dataset - when returning the result of the query. + + - name: numberToReturn + type: long + description: > + The requested maximum number of documents to be returned. + + - name: numberReturned + type: long + description: > + The number of documents in the reply. + + - name: startingFrom + type: keyword + description: > + Where in the cursor this reply is starting. + + - name: query + type: keyword + description: > + A JSON document that represents the query. The query will contain one or more elements, all of which must match for a document to be included in the result set. Possible elements include $query, $orderby, $hint, $explain, and $snapshot. + + - name: returnFieldsSelector + type: keyword + description: > + A JSON document that limits the fields in the returned documents. The returnFieldsSelector contains one or more elements, each of which is the name of a field that should be returned, and the integer value 1. + + - name: selector + type: keyword + description: > + A BSON document that specifies the query for selecting the document to update or delete. + + - name: update + type: keyword + description: > + A BSON document that specifies the update to be performed. For information on specifying updates, see the Update Operations documentation from the MongoDB Manual. + + - name: cursorId + type: keyword + description: > + The cursor identifier returned in the OP_REPLY. This must be the value that was returned from the database. + diff --git a/packages/network_traffic/1.1.0/data_stream/mongodb/manifest.yml b/packages/network_traffic/1.1.0/data_stream/mongodb/manifest.yml new file mode 100755 index 0000000000..0ff11578a2 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mongodb/manifest.yml @@ -0,0 +1,86 @@ +title: MongoDB +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [27017] + - name: max_docs + type: integer + title: Max Docs + description: |- + The maximum number of documents from the response to index in the `response` + field. The default is 10. + show_user: false + multi: false + required: false + - name: max_doc_length + type: integer + title: Max Doc Length + description: |- + The maximum number of characters in a single document indexed in the + `response` field. The default is 5000. You can set this to 0 to index an + unlimited number of characters per document. + show_user: false + multi: false + required: false + - name: send_request + type: bool + title: Send Request + description: |- + If this option is enabled, the raw message of the request (`request` field) + is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: send_response + type: bool + title: Send Response + description: |- + If this option is enabled, the raw message of the response (`response` + field) is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: transaction_timeout + type: text + title: Transaction Timeout + description: |- + Transaction timeout. Expired transactions will no longer be correlated to + incoming responses, but sent to Elasticsearch immediately. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: MongoDB + description: Capture MongoDB Traffic + template_path: mongodb.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/mongodb/sample_event.json b/packages/network_traffic/1.1.0/data_stream/mongodb/sample_event.json new file mode 100755 index 0000000000..4cfd576e4c --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mongodb/sample_event.json @@ -0,0 +1,106 @@ +{ + "@timestamp": "2022-03-09T08:15:48.570Z", + "agent": { + "ephemeral_id": "fafaeb02-c623-46a0-a3e0-72e035bd12ba", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 50, + "ip": "127.0.0.1", + "port": 57203 + }, + "data_stream": { + "dataset": "network_traffic.mongodb", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 514, + "ip": "127.0.0.1", + "port": 27017 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.mongodb", + "duration": 1365900, + "end": "2022-03-09T08:15:48.571Z", + "ingested": "2022-03-09T08:15:49Z", + "kind": "event", + "start": "2022-03-09T08:15:48.570Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "method": "find", + "mongodb": { + "cursorId": 0, + "fullCollectionName": "test.restaurants", + "numberReturned": 1, + "numberToReturn": 1, + "numberToSkip": 0, + "startingFrom": 0 + }, + "network": { + "bytes": 564, + "community_id": "1:mYSTZ4QZBfvJO05Em9TnPwrae6g=", + "direction": "ingress", + "protocol": "mongodb", + "transport": "tcp", + "type": "ipv4" + }, + "query": "test.restaurants.find().limit(1)", + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "resource": "test.restaurants", + "server": { + "bytes": 514, + "ip": "127.0.0.1", + "port": 27017 + }, + "source": { + "bytes": 50, + "ip": "127.0.0.1", + "port": 57203 + }, + "status": "OK", + "type": "mongodb" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/mysql/agent/stream/mysql.yml.hbs b/packages/network_traffic/1.1.0/data_stream/mysql/agent/stream/mysql.yml.hbs new file mode 100755 index 0000000000..85b82a47b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mysql/agent/stream/mysql.yml.hbs @@ -0,0 +1,37 @@ +type: mysql +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if send_request}} +send_request: {{send_request}} +{{/if}} +{{#if send_response}} +send_response: {{send_response}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if transaction_timeout}} +transaction_timeout: {{transaction_timeout}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/mysql/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/mysql/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..23ad4ad9d5 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mysql/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing mysql traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/mysql/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/mysql/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mysql/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/mysql/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/mysql/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mysql/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/mysql/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/mysql/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mysql/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/mysql/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/mysql/fields/ecs.yml new file mode 100755 index 0000000000..45c65d5b8a --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mysql/fields/ecs.yml @@ -0,0 +1,123 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long diff --git a/packages/network_traffic/1.1.0/data_stream/mysql/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/mysql/fields/protocol.yml new file mode 100755 index 0000000000..64675f8d8e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mysql/fields/protocol.yml @@ -0,0 +1,38 @@ +- name: mysql + type: group + fields: + - name: affected_rows + type: long + description: > + If the MySQL command is successful, this field contains the affected number of rows of the last statement. + + - name: insert_id + type: keyword + description: > + If the INSERT query is successful, this field contains the id of the newly inserted row. + + - name: num_fields + type: long + description: > + If the SELECT query is successful, this field is set to the number of fields returned. + + - name: num_rows + type: long + description: > + If the SELECT query is successful, this field is set to the number of rows returned. + + - name: query + type: keyword + description: > + The row mysql query as read from the transaction's request. + + - name: error_code + type: long + description: > + The error code returned by MySQL. + + - name: error_message + type: keyword + description: > + The error info message returned by MySQL. + diff --git a/packages/network_traffic/1.1.0/data_stream/mysql/manifest.yml b/packages/network_traffic/1.1.0/data_stream/mysql/manifest.yml new file mode 100755 index 0000000000..c4655854f0 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mysql/manifest.yml @@ -0,0 +1,67 @@ +title: MySQL +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [3306, 3307] + - name: send_request + type: bool + title: Send Request + description: |- + If this option is enabled, the raw message of the request (`request` field) + is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: send_response + type: bool + title: Send Response + description: |- + If this option is enabled, the raw message of the response (`response` + field) is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: transaction_timeout + type: text + title: Transaction Timeout + description: |- + Transaction timeout. Expired transactions will no longer be correlated to + incoming responses, but sent to Elasticsearch immediately. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: MySQL + description: Capture MySQL Traffic + template_path: mysql.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/mysql/sample_event.json b/packages/network_traffic/1.1.0/data_stream/mysql/sample_event.json new file mode 100755 index 0000000000..2c33116053 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/mysql/sample_event.json @@ -0,0 +1,104 @@ +{ + "@timestamp": "2022-03-09T08:20:44.667Z", + "agent": { + "ephemeral_id": "43167926-7ebd-4acd-8216-daf3664fe286", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 23, + "ip": "127.0.0.1", + "port": 41517 + }, + "data_stream": { + "dataset": "network_traffic.mysql", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 3629, + "ip": "127.0.0.1", + "port": 3306 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.mysql", + "duration": 5532500, + "end": "2022-03-09T08:20:44.673Z", + "ingested": "2022-03-09T08:20:45Z", + "kind": "event", + "start": "2022-03-09T08:20:44.667Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "method": "SELECT", + "mysql": { + "affected_rows": 0, + "insert_id": 0, + "num_fields": 3, + "num_rows": 15 + }, + "network": { + "bytes": 3652, + "community_id": "1:goIcZn7CMIJ6W7Yf8JRV618zzxA=", + "direction": "ingress", + "protocol": "mysql", + "transport": "tcp", + "type": "ipv4" + }, + "path": "test.test", + "query": "select * from test", + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "server": { + "bytes": 3629, + "ip": "127.0.0.1", + "port": 3306 + }, + "source": { + "bytes": 23, + "ip": "127.0.0.1", + "port": 41517 + }, + "status": "OK", + "type": "mysql" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/nfs/agent/stream/nfs.yml.hbs b/packages/network_traffic/1.1.0/data_stream/nfs/agent/stream/nfs.yml.hbs new file mode 100755 index 0000000000..c8349a7bcb --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/nfs/agent/stream/nfs.yml.hbs @@ -0,0 +1,37 @@ +type: nfs +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if send_request}} +send_request: {{send_request}} +{{/if}} +{{#if send_response}} +send_response: {{send_response}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if transaction_timeout}} +transaction_timeout: {{transaction_timeout}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/nfs/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/nfs/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..cd66758ed4 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/nfs/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing nfs traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/nfs/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/nfs/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/nfs/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/nfs/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/nfs/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/nfs/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/nfs/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/nfs/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/nfs/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/nfs/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/nfs/fields/ecs.yml new file mode 100755 index 0000000000..2b26a193f9 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/nfs/fields/ecs.yml @@ -0,0 +1,144 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: |- + The domain name of the client system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: client.domain + type: keyword +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: Unique identifier for the group on the system/platform. + name: group.id + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: |- + The domain name of the source system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: source.domain + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long +- description: Unique identifier of the user. + name: user.id + type: keyword diff --git a/packages/network_traffic/1.1.0/data_stream/nfs/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/nfs/fields/protocol.yml new file mode 100755 index 0000000000..4bcf6fecec --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/nfs/fields/protocol.yml @@ -0,0 +1,48 @@ +- name: nfs + type: group + fields: + - name: version + type: long + description: NFS protocol version number. + - name: minor_version + type: long + description: NFS protocol minor version number. + - name: tag + type: keyword + description: NFS v4 COMPOUND operation tag. + - name: opcode + type: keyword + description: > + NFS operation name, or main operation name, in case of COMPOUND calls. + + - name: status + type: keyword + description: NFS operation reply status. +- name: rpc + type: group + description: ONC RPC specific event fields. + fields: + - name: xid + type: keyword + description: RPC message transaction identifier. + - name: status + type: keyword + description: RPC message reply status. + - name: auth_flavor + type: keyword + description: RPC authentication flavor. + - name: cred.uid + type: long + description: RPC caller's user id, in case of auth-unix. + - name: cred.gid + type: long + description: RPC caller's group id, in case of auth-unix. + - name: cred.gids + type: long + description: RPC caller's secondary group ids, in case of auth-unix. + - name: cred.stamp + type: long + description: Arbitrary ID which the caller machine may generate. + - name: cred.machinename + type: keyword + description: The name of the caller's machine. diff --git a/packages/network_traffic/1.1.0/data_stream/nfs/manifest.yml b/packages/network_traffic/1.1.0/data_stream/nfs/manifest.yml new file mode 100755 index 0000000000..4e5323fa1e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/nfs/manifest.yml @@ -0,0 +1,67 @@ +title: NFS +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [2049] + - name: send_request + type: bool + title: Send Request + description: |- + If this option is enabled, the raw message of the request (`request` field) + is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: send_response + type: bool + title: Send Response + description: |- + If this option is enabled, the raw message of the response (`response` + field) is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: transaction_timeout + type: text + title: Transaction Timeout + description: |- + Transaction timeout. Expired transactions will no longer be correlated to + incoming responses, but sent to Elasticsearch immediately. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: NFS + description: Capture NFS Traffic + template_path: nfs.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/nfs/sample_event.json b/packages/network_traffic/1.1.0/data_stream/nfs/sample_event.json new file mode 100755 index 0000000000..de4b4525e0 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/nfs/sample_event.json @@ -0,0 +1,123 @@ +{ + "@timestamp": "2022-03-09T08:24:00.569Z", + "agent": { + "ephemeral_id": "62904593-11a1-4706-8487-78b14fb72c08", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 208, + "domain": "desycloud03.desy.de", + "ip": "131.169.5.156", + "port": 907 + }, + "data_stream": { + "dataset": "network_traffic.nfs", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 176, + "ip": "131.169.192.35", + "port": 2049 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "action": "nfs.CLOSE", + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.nfs", + "duration": 6573500, + "end": "2022-03-09T08:24:00.575Z", + "ingested": "2022-03-09T08:24:01Z", + "kind": "event", + "start": "2022-03-09T08:24:00.569Z", + "type": [ + "connection", + "protocol" + ] + }, + "group.id": 48, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "host.hostname": "desycloud03.desy.de", + "network": { + "bytes": 384, + "community_id": "1:cd5eLXemAsSPMdXwCbdDUWWud4M=", + "direction": "unknown", + "protocol": "nfsv4", + "transport": "tcp", + "type": "ipv4" + }, + "nfs": { + "minor_version": 1, + "opcode": "CLOSE", + "status": "NFS_OK", + "tag": "", + "version": 4 + }, + "related": { + "ip": [ + "131.169.5.156", + "131.169.192.35" + ] + }, + "rpc": { + "auth_flavor": "unix", + "cred": { + "gid": 48, + "gids": [ + 48 + ], + "machinename": "desycloud03.desy.de", + "stamp": 4308441, + "uid": 48 + }, + "status": "success", + "xid": "c3103fc1" + }, + "server": { + "bytes": 176, + "ip": "131.169.192.35", + "port": 2049 + }, + "source": { + "bytes": 208, + "domain": "desycloud03.desy.de", + "ip": "131.169.5.156", + "port": 907 + }, + "status": "OK", + "type": "nfs", + "user.id": 48 +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/pgsql/agent/stream/pgsql.yml.hbs b/packages/network_traffic/1.1.0/data_stream/pgsql/agent/stream/pgsql.yml.hbs new file mode 100755 index 0000000000..8680c36b1a --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/pgsql/agent/stream/pgsql.yml.hbs @@ -0,0 +1,37 @@ +type: pgsql +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if send_request}} +send_request: {{send_request}} +{{/if}} +{{#if send_response}} +send_response: {{send_response}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if transaction_timeout}} +transaction_timeout: {{transaction_timeout}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/pgsql/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/pgsql/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..7bd75120a7 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/pgsql/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing pgsql traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/pgsql/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/pgsql/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/pgsql/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/pgsql/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/pgsql/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/pgsql/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/pgsql/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/pgsql/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/pgsql/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/pgsql/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/pgsql/fields/ecs.yml new file mode 100755 index 0000000000..45c65d5b8a --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/pgsql/fields/ecs.yml @@ -0,0 +1,123 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long diff --git a/packages/network_traffic/1.1.0/data_stream/pgsql/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/pgsql/fields/protocol.yml new file mode 100755 index 0000000000..4fd03e12cb --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/pgsql/fields/protocol.yml @@ -0,0 +1,26 @@ +- name: pgsql + type: group + fields: + - name: error_code + description: The PostgreSQL error code. + type: keyword + - name: error_message + type: keyword + description: The PostgreSQL error message. + - name: error_severity + type: keyword + description: The PostgreSQL error severity. + possible_values: + - ERROR + - FATAL + - PANIC + - name: num_fields + type: long + description: > + If the SELECT query if successful, this field is set to the number of fields returned. + + - name: num_rows + type: long + description: > + If the SELECT query if successful, this field is set to the number of rows returned. + diff --git a/packages/network_traffic/1.1.0/data_stream/pgsql/manifest.yml b/packages/network_traffic/1.1.0/data_stream/pgsql/manifest.yml new file mode 100755 index 0000000000..eb205cd837 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/pgsql/manifest.yml @@ -0,0 +1,67 @@ +title: PostgreSQL +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [5432] + - name: send_request + type: bool + title: Send Request + description: |- + If this option is enabled, the raw message of the request (`request` field) + is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: send_response + type: bool + title: Send Response + description: |- + If this option is enabled, the raw message of the response (`response` + field) is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: transaction_timeout + type: text + title: Transaction Timeout + description: |- + Transaction timeout. Expired transactions will no longer be correlated to + incoming responses, but sent to Elasticsearch immediately. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: PostgreSQL + description: Capture PostgreSQL Traffic + template_path: pgsql.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/pgsql/sample_event.json b/packages/network_traffic/1.1.0/data_stream/pgsql/sample_event.json new file mode 100755 index 0000000000..462f734f42 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/pgsql/sample_event.json @@ -0,0 +1,101 @@ +{ + "@timestamp": "2022-03-09T08:29:39.675Z", + "agent": { + "ephemeral_id": "1e05998c-1d97-426b-8d9e-f5f92c446612", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 34, + "ip": "127.0.0.1", + "port": 34936 + }, + "data_stream": { + "dataset": "network_traffic.pgsql", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 3186, + "ip": "127.0.0.1", + "port": 5432 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.pgsql", + "duration": 2568100, + "end": "2022-03-09T08:29:39.678Z", + "ingested": "2022-03-09T08:29:40Z", + "kind": "event", + "start": "2022-03-09T08:29:39.675Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "method": "SELECT", + "network": { + "bytes": 3220, + "community_id": "1:WUuTzESSpZnUwZ2tuZKZtNOdHSU=", + "direction": "ingress", + "protocol": "pgsql", + "transport": "tcp", + "type": "ipv4" + }, + "pgsql": { + "num_fields": 3, + "num_rows": 15 + }, + "query": "select * from long_response", + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "server": { + "bytes": 3186, + "ip": "127.0.0.1", + "port": 5432 + }, + "source": { + "bytes": 34, + "ip": "127.0.0.1", + "port": 34936 + }, + "status": "OK", + "type": "pgsql" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/redis/agent/stream/redis.yml.hbs b/packages/network_traffic/1.1.0/data_stream/redis/agent/stream/redis.yml.hbs new file mode 100755 index 0000000000..f357ca3a6d --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/redis/agent/stream/redis.yml.hbs @@ -0,0 +1,43 @@ +type: redis +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if send_request}} +send_request: {{send_request}} +{{/if}} +{{#if send_response}} +send_response: {{send_response}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if transaction_timeout}} +transaction_timeout: {{transaction_timeout}} +{{/if}} +{{#if queue_max_bytes}} +queue_max_bytes: {{queue_max_bytes}} +{{/if}} +{{#if queue_max_messages}} +queue_max_messages: {{queue_max_messages}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/redis/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/redis/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..a2af2349ac --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/redis/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing redis traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/redis/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/redis/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/redis/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/redis/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/redis/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/redis/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/redis/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/redis/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/redis/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/redis/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/redis/fields/ecs.yml new file mode 100755 index 0000000000..7638afce57 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/redis/fields/ecs.yml @@ -0,0 +1,136 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. + `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. + Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. + Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. + Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. + name: event.outcome + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long diff --git a/packages/network_traffic/1.1.0/data_stream/redis/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/redis/fields/protocol.yml new file mode 100755 index 0000000000..4982b2c2d3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/redis/fields/protocol.yml @@ -0,0 +1,13 @@ +- name: redis + type: group + fields: + - name: return_value + type: keyword + description: > + The return value of the Redis command in a human readable format. + + - name: error + type: keyword + description: > + If the Redis command has resulted in an error, this field contains the error message returned by the Redis server. + diff --git a/packages/network_traffic/1.1.0/data_stream/redis/manifest.yml b/packages/network_traffic/1.1.0/data_stream/redis/manifest.yml new file mode 100755 index 0000000000..9fe0ce4e18 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/redis/manifest.yml @@ -0,0 +1,86 @@ +title: Redis +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [6379] + - name: send_request + type: bool + title: Send Request + description: |- + If this option is enabled, the raw message of the request (`request` field) + is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: send_response + type: bool + title: Send Response + description: |- + If this option is enabled, the raw message of the response (`response` + field) is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: transaction_timeout + type: text + title: Transaction Timeout + description: |- + Transaction timeout. Expired transactions will no longer be correlated to + incoming responses, but sent to Elasticsearch immediately. + show_user: false + multi: false + required: false + - name: queue_max_bytes + type: integer + title: Queue Max Bytes + description: |- + Max size for per-session message queue. This places a limit on the memory + that can be used to buffer requests and responses for correlation. + show_user: false + multi: false + required: false + - name: queue_max_messages + type: integer + title: Queue Max Messages + description: |- + Max number of messages for per-session message queue. This limits the number + of requests or responses that can be buffered for correlation. Set a value + large enough to allow for pipelining. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: Redis + description: Capture Redis Traffic + template_path: redis.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/redis/sample_event.json b/packages/network_traffic/1.1.0/data_stream/redis/sample_event.json new file mode 100755 index 0000000000..7ce644c935 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/redis/sample_event.json @@ -0,0 +1,102 @@ +{ + "@timestamp": "2022-03-09T08:30:57.254Z", + "agent": { + "ephemeral_id": "b68277a8-8012-4ada-bbdd-6ce88a51c5ce", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 31, + "ip": "127.0.0.1", + "port": 32810 + }, + "data_stream": { + "dataset": "network_traffic.redis", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 5, + "ip": "127.0.0.1", + "port": 6380 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "action": "redis.set", + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.redis", + "duration": 1421600, + "end": "2022-03-09T08:30:57.256Z", + "ingested": "2022-03-09T08:30:58Z", + "kind": "event", + "start": "2022-03-09T08:30:57.254Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "method": "SET", + "network": { + "bytes": 36, + "community_id": "1:GuHlyWpX6bKkMXy19YkvZSNPTS4=", + "direction": "ingress", + "protocol": "redis", + "transport": "tcp", + "type": "ipv4" + }, + "query": "set key3 me", + "redis": { + "return_value": "OK" + }, + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "resource": "key3", + "server": { + "bytes": 5, + "ip": "127.0.0.1", + "port": 6380 + }, + "source": { + "bytes": 31, + "ip": "127.0.0.1", + "port": 32810 + }, + "status": "OK", + "type": "redis" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/sip/agent/stream/sip.yml.hbs b/packages/network_traffic/1.1.0/data_stream/sip/agent/stream/sip.yml.hbs new file mode 100755 index 0000000000..935ea011ee --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/sip/agent/stream/sip.yml.hbs @@ -0,0 +1,34 @@ +type: sip +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if parse_authorization}} +parse_authorization: {{parse_authorization}} +{{/if}} +{{#if parse_body}} +parse_body: {{parse_body}} +{{/if}} +{{#if keep_original}} +keep_original: {{keep_original}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/sip/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/sip/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..c20207afdd --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/sip/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,39 @@ +--- +description: Pipeline for processing sip traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +# Remove invalid "protocol" term added by packetbeat prior to v7.17.4/8.2.1. +- script: + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "protocol") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/sip/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/sip/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/sip/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/sip/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/sip/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/sip/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/sip/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/sip/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/sip/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/sip/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/sip/fields/ecs.yml new file mode 100755 index 0000000000..c2a147238b --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/sip/fields/ecs.yml @@ -0,0 +1,174 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + The action captured by the event. + This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. + name: event.action + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. + `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. + Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. + Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. + Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. + name: event.outcome + type: keyword +- description: |- + Reason why this event happened, according to the source. + This describes the why of a particular action or outcome captured in the event. Where `event.action` captures the action from the event, `event.reason` describes why that action was taken. For example, a web proxy with an `event.action` which denied the request may also populate `event.reason` with the reason why (e.g. `blocked site`). + name: event.reason + type: keyword +- description: |- + Sequence number of the event. + The sequence number is a value published by some event sources, to make the exact ordering of events unambiguous, regardless of the timestamp precision. + name: event.sequence + type: long +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + When a specific application or service is identified from network connection details (source/dest IPs, ports, certificates, or wire format), this field captures the application's or service's name. + For example, the original event identifies the network connection being from a specific web service in a `https` network connection, like `facebook` or `twitter`. + The field value must be normalized to lowercase for querying. + name: network.application + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. + name: network.iana_number + type: keyword +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword diff --git a/packages/network_traffic/1.1.0/data_stream/sip/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/sip/fields/protocol.yml new file mode 100755 index 0000000000..5b25d9df6d --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/sip/fields/protocol.yml @@ -0,0 +1,231 @@ +- name: sip + type: group + description: Information about SIP traffic. + fields: + - name: code + type: long + description: Response status code. + - name: method + type: keyword + description: Request method. + - name: status + type: keyword + description: Response status phrase. + - name: type + type: keyword + description: Either request or response. + - name: version + type: keyword + description: SIP protocol version. + - name: uri.original + type: keyword + description: The original URI. + multi_fields: + - name: text + type: text + norms: false + - name: uri.scheme + type: keyword + description: The URI scheme. + - name: uri.username + type: keyword + description: The URI user name. + - name: uri.host + type: keyword + description: The URI host. + - name: uri.port + type: long + description: The URI port. + - name: accept + type: keyword + description: Accept header value. + - name: allow + type: keyword + description: Allowed methods. + - name: call_id + type: keyword + description: Call ID. + - name: content_length + type: long + - name: content_type + type: keyword + - name: max_forwards + type: long + - name: supported + type: keyword + description: Supported methods. + - name: user_agent.original + type: keyword + multi_fields: + - name: text + type: text + norms: false + - name: private.uri.original + type: keyword + description: Private original URI. + multi_fields: + - name: text + type: text + norms: false + - name: private.uri.scheme + type: keyword + description: Private URI scheme. + - name: private.uri.username + type: keyword + description: Private URI user name. + - name: private.uri.host + type: keyword + description: Private URI host. + - name: private.uri.port + type: long + description: Private URI port. + - name: cseq.code + type: long + description: Sequence code. + - name: cseq.method + type: keyword + description: Sequence method. + - name: via.original + type: keyword + description: The original Via value. + multi_fields: + - name: text + type: text + norms: false + - name: to.display_info + type: keyword + description: "To display info" + - name: to.uri.original + type: keyword + description: "To original URI" + multi_fields: + - name: text + type: text + norms: false + - name: to.uri.scheme + type: keyword + description: "To URI scheme" + - name: to.uri.username + type: keyword + description: "To URI user name" + - name: to.uri.host + type: keyword + description: "To URI host" + - name: to.uri.port + type: long + description: "To URI port" + - name: to.tag + type: keyword + description: "To tag" + - name: from.display_info + type: keyword + description: "From display info" + - name: from.uri.original + type: keyword + description: "From original URI" + multi_fields: + - name: text + type: text + norms: false + - name: from.uri.scheme + type: keyword + description: "From URI scheme" + - name: from.uri.username + type: keyword + description: "From URI user name" + - name: from.uri.host + type: keyword + description: "From URI host" + - name: from.uri.port + type: long + description: "From URI port" + - name: from.tag + type: keyword + description: "From tag" + - name: contact.display_info + type: keyword + description: "Contact display info" + - name: contact.uri.original + type: keyword + description: "Contact original URI" + multi_fields: + - name: text + type: text + norms: false + - name: contact.uri.scheme + type: keyword + description: "Contat URI scheme" + - name: contact.uri.username + type: keyword + description: "Contact URI user name" + - name: contact.uri.host + type: keyword + description: "Contact URI host" + - name: contact.uri.port + type: long + description: "Contact URI port" + - name: contact.transport + type: keyword + description: "Contact transport" + - name: contact.line + type: keyword + description: "Contact line" + - name: contact.expires + type: keyword + description: "Contact expires" + - name: contact.q + type: keyword + description: "Contact Q" + - name: auth.scheme + type: keyword + description: "Auth scheme" + - name: auth.realm + type: keyword + description: "Auth realm" + - name: auth.uri.original + type: keyword + description: "Auth original URI" + multi_fields: + - name: text + type: text + norms: false + - name: auth.uri.scheme + type: keyword + description: "Auth URI scheme" + - name: auth.uri.host + type: keyword + description: "Auth URI host" + - name: auth.uri.port + type: long + description: "Auth URI port" + - name: sdp.version + type: keyword + description: "SDP version" + - name: sdp.owner.username + type: keyword + description: "SDP owner user name" + - name: sdp.owner.session_id + type: keyword + description: "SDP owner session ID" + - name: sdp.owner.version + type: keyword + description: "SDP owner version" + - name: sdp.owner.ip + type: ip + description: "SDP owner IP" + - name: sdp.session.name + type: keyword + description: "SDP session name" + - name: sdp.connection.info + type: keyword + description: "SDP connection info" + - name: sdp.connection.address + type: keyword + description: "SDP connection address" + - name: sdp.body.original + type: keyword + description: "SDP original body" + multi_fields: + - name: text + type: text + norms: false diff --git a/packages/network_traffic/1.1.0/data_stream/sip/manifest.yml b/packages/network_traffic/1.1.0/data_stream/sip/manifest.yml new file mode 100755 index 0000000000..79dd27ea52 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/sip/manifest.yml @@ -0,0 +1,54 @@ +title: SIP +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [5060] + - name: parse_authorization + type: bool + title: Parse Authorization + description: Parse the authorization headers + show_user: false + multi: false + required: false + - name: parse_body + type: bool + title: Parse Body + description: Parse body contents (only when body is SDP) + show_user: false + multi: false + required: false + - name: keep_original + type: bool + title: Keep Original + description: Preserve original contents in event.original + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: SIP + description: Capture SIP Traffic + template_path: sip.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/sip/sample_event.json b/packages/network_traffic/1.1.0/data_stream/sip/sample_event.json new file mode 100755 index 0000000000..5a36041d5a --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/sip/sample_event.json @@ -0,0 +1,174 @@ +{ + "@timestamp": "2022-05-13T07:10:35.715Z", + "agent": { + "ephemeral_id": "008322ce-0d84-45f0-beaf-153cf4786013", + "id": "a82e5ec9-4d24-4491-8d66-470aa321ddae", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.2.0" + }, + "client": { + "ip": "10.0.2.20", + "port": 5060 + }, + "data_stream": { + "dataset": "network_traffic.sip", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "ip": "10.0.2.15", + "port": 5060 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "a82e5ec9-4d24-4491-8d66-470aa321ddae", + "snapshot": false, + "version": "8.2.0" + }, + "event": { + "action": "sip-invite", + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.sip", + "duration": 0, + "end": "2022-05-13T07:10:35.715Z", + "ingested": "2022-05-13T07:10:39Z", + "kind": "event", + "original": "INVITE sip:test@10.0.2.15:5060 SIP/2.0\r\nVia: SIP/2.0/UDP 10.0.2.20:5060;branch=z9hG4bK-2187-1-0\r\nFrom: \"DVI4/8000\" \u003csip:sipp@10.0.2.20:5060\u003e;tag=1\r\nTo: test \u003csip:test@10.0.2.15:5060\u003e\r\nCall-ID: 1-2187@10.0.2.20\r\nCSeq: 1 INVITE\r\nContact: sip:sipp@10.0.2.20:5060\r\nMax-Forwards: 70\r\nContent-Type: application/sdp\r\nContent-Length: 123\r\n\r\nv=0\r\no=- 42 42 IN IP4 10.0.2.20\r\ns=-\r\nc=IN IP4 10.0.2.20\r\nt=0 0\r\nm=audio 6000 RTP/AVP 5\r\na=rtpmap:5 DVI4/8000\r\na=recvonly\r\n", + "sequence": 1, + "start": "2022-05-13T07:10:35.715Z", + "type": [ + "info" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "ip": [ + "172.31.0.7" + ], + "mac": [ + "02-42-AC-1F-00-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.104-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.4 LTS (Focal Fossa)" + } + }, + "network": { + "application": "sip", + "community_id": "1:xDRQZvk3ErEhBDslXv1c6EKI804=", + "direction": "unknown", + "iana_number": "17", + "protocol": "sip", + "transport": "udp", + "type": "ipv4" + }, + "related": { + "hosts": [ + "10.0.2.15", + "10.0.2.20" + ], + "ip": [ + "10.0.2.20", + "10.0.2.15" + ], + "user": [ + "test", + "sipp" + ] + }, + "server": { + "ip": "10.0.2.15", + "port": 5060 + }, + "sip": { + "call_id": "1-2187@10.0.2.20", + "contact": { + "display_info": "test", + "uri": { + "host": "10.0.2.15", + "original": "sip:test@10.0.2.15:5060", + "port": 5060, + "scheme": "sip", + "username": "test" + } + }, + "content_length": 123, + "content_type": "application/sdp", + "cseq": { + "code": 1, + "method": "INVITE" + }, + "from": { + "display_info": "DVI4/8000", + "tag": "1", + "uri": { + "host": "10.0.2.20", + "original": "sip:sipp@10.0.2.20:5060", + "port": 5060, + "scheme": "sip", + "username": "sipp" + } + }, + "max_forwards": 70, + "method": "INVITE", + "sdp": { + "body": { + "original": "v=0\r\no=- 42 42 IN IP4 10.0.2.20\r\ns=-\r\nc=IN IP4 10.0.2.20\r\nt=0 0\r\nm=audio 6000 RTP/AVP 5\r\na=rtpmap:5 DVI4/8000\r\na=recvonly\r\n" + }, + "connection": { + "address": "10.0.2.20", + "info": "IN IP4 10.0.2.20" + }, + "owner": { + "ip": "10.0.2.20", + "session_id": "42", + "version": "42" + }, + "version": "0" + }, + "to": { + "display_info": "test", + "uri": { + "host": "10.0.2.15", + "original": "sip:test@10.0.2.15:5060", + "port": 5060, + "scheme": "sip", + "username": "test" + } + }, + "type": "request", + "uri": { + "host": "10.0.2.15", + "original": "sip:test@10.0.2.15:5060", + "port": 5060, + "scheme": "sip", + "username": "test" + }, + "version": "2.0", + "via": { + "original": [ + "SIP/2.0/UDP 10.0.2.20:5060;branch=z9hG4bK-2187-1-0" + ] + } + }, + "source": { + "ip": "10.0.2.20", + "port": 5060 + }, + "status": "OK", + "type": "sip" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/thrift/agent/stream/thrift.yml.hbs b/packages/network_traffic/1.1.0/data_stream/thrift/agent/stream/thrift.yml.hbs new file mode 100755 index 0000000000..d6d9604253 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/thrift/agent/stream/thrift.yml.hbs @@ -0,0 +1,64 @@ +type: thrift +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if transport_type}} +transport_type: {{transport_type}} +{{/if}} +{{#if protocol_type}} +protocol_type: {{protocol_type}} +{{/if}} +{{#if idl_files}} +idl_files: +{{#each idl_files as |idl_file|}} + - {{idl_file}} +{{/each}} +{{/if}} +{{#if string_max_size}} +string_max_size: {{string_max_size}} +{{/if}} +{{#if collection_max_size}} +collection_max_size: {{collection_max_size}} +{{/if}} +{{#if capture_reply}} +capture_reply: {{capture_reply}} +{{/if}} +{{#if obfuscate_strings}} +obfuscate_strings: {{obfuscate_strings}} +{{/if}} +{{#if drop_after_n_struct_fields}} +drop_after_n_struct_fields: {{drop_after_n_struct_fields}} +{{/if}} +{{#if send_request}} +send_request: {{send_request}} +{{/if}} +{{#if send_response}} +send_response: {{send_response}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if transaction_timeout}} +transaction_timeout: {{transaction_timeout}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/thrift/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/thrift/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..987bedd730 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/thrift/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,41 @@ +--- +description: Pipeline for processing thrift traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/thrift/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/thrift/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/thrift/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/thrift/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/thrift/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/thrift/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/thrift/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/thrift/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/thrift/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/thrift/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/thrift/fields/ecs.yml new file mode 100755 index 0000000000..45c65d5b8a --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/thrift/fields/ecs.yml @@ -0,0 +1,123 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long diff --git a/packages/network_traffic/1.1.0/data_stream/thrift/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/thrift/fields/protocol.yml new file mode 100755 index 0000000000..dd097f61ee --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/thrift/fields/protocol.yml @@ -0,0 +1,23 @@ +- name: thrift + type: group + fields: + - name: params + type: keyword + description: > + The RPC method call parameters in a human readable format. If the IDL files are available, the parameters use names whenever possible. Otherwise, the IDs from the message are used. + + - name: service + type: keyword + description: > + The name of the Thrift-RPC service as defined in the IDL files. + + - name: return_value + type: keyword + description: > + The value returned by the Thrift-RPC call. This is encoded in a human readable format. + + - name: exceptions + type: keyword + description: > + If the call resulted in exceptions, this field contains the exceptions in a human readable format. + diff --git a/packages/network_traffic/1.1.0/data_stream/thrift/manifest.yml b/packages/network_traffic/1.1.0/data_stream/thrift/manifest.yml new file mode 100755 index 0000000000..29eabbeb19 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/thrift/manifest.yml @@ -0,0 +1,141 @@ +title: Thrift +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [9090] + - name: transport_type + type: text + title: Transport Type + description: |- + The Thrift transport type. Currently this option accepts the values socket + for TSocket, which is the default Thrift transport, and framed for the + TFramed Thrift transport. The default is socket. + show_user: false + multi: false + required: false + - name: protocol_type + type: text + title: Protocol Type + description: |- + The Thrift protocol type. Currently the only accepted value is binary for + the TBinary protocol, which is the default Thrift protocol. + show_user: false + multi: false + required: false + - name: idl_files + type: text + title: Idl Files + description: |- + The Thrift interface description language (IDL) files for the service that + Packetbeat is monitoring. Providing the IDL enables Packetbeat to include + parameter and exception names. + show_user: false + multi: true + required: false + - name: string_max_size + type: integer + title: String Max Size + description: |- + The maximum length for strings in parameters or return values. If a string + is longer than this value, the string is automatically truncated to this + length. + show_user: false + multi: false + required: false + - name: collection_max_size + type: integer + title: Collection Max Size + description: The maximum number of elements in a Thrift list, set, map, or structure. + show_user: false + multi: false + required: false + - name: capture_reply + type: bool + title: Capture Reply + description: |- + If this option is set to false, Packetbeat decodes the method name from the + reply and simply skips the rest of the response message. + show_user: false + multi: false + required: false + - name: obfuscate_strings + type: bool + title: Obfuscate Strings + description: |- + If this option is set to true, Packetbeat replaces all strings found in + method parameters, return codes, or exception structures with the "*" + string. + show_user: false + multi: false + required: false + - name: drop_after_n_struct_fields + type: integer + title: Drop After N Struct Fields + description: |- + The maximum number of fields that a structure can have before Packetbeat + ignores the whole transaction. + show_user: false + multi: false + required: false + - name: send_request + type: bool + title: Send Request + description: |- + If this option is enabled, the raw message of the request (`request` field) + is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: send_response + type: bool + title: Send Response + description: |- + If this option is enabled, the raw message of the response (`response` + field) is sent to Elasticsearch. The default is false. + show_user: false + multi: false + required: false + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: transaction_timeout + type: text + title: Transaction Timeout + description: |- + Transaction timeout. Expired transactions will no longer be correlated to + incoming responses, but sent to Elasticsearch immediately. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: Thrift + description: Capture Thrift Traffic + template_path: thrift.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/thrift/sample_event.json b/packages/network_traffic/1.1.0/data_stream/thrift/sample_event.json new file mode 100755 index 0000000000..523e6958a6 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/thrift/sample_event.json @@ -0,0 +1,102 @@ +{ + "@timestamp": "2022-05-23T10:59:35.668Z", + "agent": { + "ephemeral_id": "016dcea4-c82a-4499-9069-e4e0ff6d04ff", + "id": "0488c467-eaa0-4733-a81a-326734926bc2", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.2.0" + }, + "client": { + "bytes": 25, + "ip": "127.0.0.1", + "port": 50919 + }, + "data_stream": { + "dataset": "network_traffic.thrift", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 25, + "ip": "127.0.0.1", + "port": 9090 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0488c467-eaa0-4733-a81a-326734926bc2", + "snapshot": false, + "version": "8.2.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.thrift", + "duration": 1275700, + "end": "2022-05-23T10:59:35.669Z", + "ingested": "2022-05-23T10:59:36Z", + "kind": "event", + "start": "2022-05-23T10:59:35.668Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.224.7" + ], + "mac": [ + "02-42-C0-A8-E0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.104-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.4 LTS (Focal Fossa)" + } + }, + "method": "testByte", + "network": { + "bytes": 50, + "community_id": "1:fs+HuhTN3hqKiWHtoK/DsQ0ni5Y=", + "direction": "ingress", + "protocol": "thrift", + "transport": "tcp", + "type": "ipv4" + }, + "path": "", + "query": "testByte(1: 63)", + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "server": { + "bytes": 25, + "ip": "127.0.0.1", + "port": 9090 + }, + "source": { + "bytes": 25, + "ip": "127.0.0.1", + "port": 50919 + }, + "status": "OK", + "thrift": { + "params": "(1: 63)", + "return_value": "63" + }, + "type": "thrift" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/data_stream/tls/agent/stream/tls.yml.hbs b/packages/network_traffic/1.1.0/data_stream/tls/agent/stream/tls.yml.hbs new file mode 100755 index 0000000000..877a553bfd --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/tls/agent/stream/tls.yml.hbs @@ -0,0 +1,40 @@ +type: tls +{{#if port}} +ports: +{{#each port as |p|}} + - {{p}} +{{/each}} +{{/if}} +{{#if fingerprints}} +fingerprints: +{{#each fingerprints as |fingerprint|}} + - {{fingerprint}} +{{/each}} +{{/if}} +{{#if send_certificates}} +send_certificates: {{send_certificates}} +{{/if}} +{{#if include_raw_certificates}} +include_raw_certificates: {{include_raw_certificates}} +{{/if}} +{{#if keep_null}} +keep_null: {{keep_null}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} +{{#if tags}} +tags: +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{/if}} +{{#if interface}} +interface: +{{#if (contains ".pcap" interface)}} + file: {{interface}} +{{else}} + device: {{interface}} +{{/if}} +{{/if}} diff --git a/packages/network_traffic/1.1.0/data_stream/tls/elasticsearch/ingest_pipeline/default.yml b/packages/network_traffic/1.1.0/data_stream/tls/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..bd7f3b2b61 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/tls/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,70 @@ +--- +description: Pipeline for processing tls traffic +processors: +- set: + field: ecs.version + value: 8.2.0 +## +# Set host.mac to dash separated upper case value +# as per ECS recommendation +## +- gsub: + field: host.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- gsub: + field: host.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: host.mac + ignore_missing: true + +## +# Make tls.{client,server}.x509.version_number a string as per ECS. +## +- convert: + field: tls.client.x509.version_number + type: string + ignore_missing: true +- convert: + field: tls.server.x509.version_number + type: string + ignore_missing: true + +## +# This handles legacy TLS fields from Packetbeat 7.17. +## +- remove: + description: Remove legacy fields from Packetbeat 7.17 that are duplicated. + field: + - tls.client.x509.issuer.province # Duplicated as tls.client.x509.issuer.state_or_province. + - tls.client.x509.subject.province # Duplicated as tls.client.x509.subject.state_or_province. + - tls.client.x509.version # Duplicated as tls.client.x509.version_number. + - tls.detailed.client_certificate # Duplicated as tls.client.x509. + - tls.detailed.server_certificate # Duplicated as tls.server.x509. + - tls.server.x509.issuer.province # Duplicated as tls.server.x509.issuer.state_or_province. + - tls.server.x509.subject.province # Duplicated as tls.server.x509.subject.state_or_province. + - tls.server.x509.version # Duplicated as tls.server.x509.version_number. + ignore_missing: true + +- script: + description: Remove invalid "network_traffic" term added by packetbeat prior to v8. + # This string-based comparison is valid while versions are below v10.x. + if: 'ctx.agent?.version == null || ctx.agent.version.compareTo("8.") < 0' + lang: painless + source: > + if (ctx.event?.category != null) { + for (int i=ctx.event.category.length-1; i>=0; i--) { + if (ctx.event.category[i] == "network_traffic") { + ctx.event.category.remove(i); + } + } + } + +on_failure: +- set: + field: error.message + value: "{{ _ingest.on_failure_message }}" diff --git a/packages/network_traffic/1.1.0/data_stream/tls/fields/agent.yml b/packages/network_traffic/1.1.0/data_stream/tls/fields/agent.yml new file mode 100755 index 0000000000..a55e9f71b3 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/tls/fields/agent.yml @@ -0,0 +1,196 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/network_traffic/1.1.0/data_stream/tls/fields/base.yml b/packages/network_traffic/1.1.0/data_stream/tls/fields/base.yml new file mode 100755 index 0000000000..0d1791ffed --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/tls/fields/base.yml @@ -0,0 +1,12 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: "@timestamp" + type: date + description: Event timestamp. diff --git a/packages/network_traffic/1.1.0/data_stream/tls/fields/beats.yml b/packages/network_traffic/1.1.0/data_stream/tls/fields/beats.yml new file mode 100755 index 0000000000..d23ddc749e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/tls/fields/beats.yml @@ -0,0 +1,110 @@ +- name: request + type: text + description: > + For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: response + type: text + description: > + For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. + +- name: query + type: keyword + description: > + The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. + +- name: params + type: text + description: > + The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. + +- name: status + type: keyword + description: > + The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. + +- name: method + type: keyword + description: > + The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). + +- name: resource + type: keyword + description: > + The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. + +- name: path + type: keyword + description: > + The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. + +- name: flow.final + type: boolean + description: > + Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. + +- name: flow.id + type: keyword + description: > + Internal flow ID based on connection meta data and address. + +- name: flow.vlan + type: long + description: > + VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. + +- name: type + description: > + The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. + + type: keyword +- name: server.process.name + type: keyword + description: > + The name of the process that served the transaction. + +- name: server.process.args + type: keyword + description: > + The command-line of the process that served the transaction. + +- name: server.process.executable + type: keyword + description: > + Absolute path to the server process executable. + +- name: server.process.working_directory + type: keyword + description: > + The working directory of the server process. + +- name: server.process.start + type: date + description: > + The time the server process started. + +- name: client.process.name + type: keyword + description: > + The name of the process that initiated the transaction. + +- name: client.process.args + type: keyword + description: > + The command-line of the process that initiated the transaction. + +- name: client.process.executable + type: keyword + description: > + Absolute path to the client process executable. + +- name: client.process.working_directory + type: keyword + description: > + The working directory of the client process. + +- name: client.process.start + type: date + description: > + The time the client process started. + diff --git a/packages/network_traffic/1.1.0/data_stream/tls/fields/ecs.yml b/packages/network_traffic/1.1.0/data_stream/tls/fields/ecs.yml new file mode 100755 index 0000000000..49c713858d --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/tls/fields/ecs.yml @@ -0,0 +1,368 @@ +- description: Bytes sent from the client to the server. + name: client.bytes + type: long +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: Port of the client. + name: client.port + type: long +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: |- + The domain name of the destination system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: destination.domain + type: keyword +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Duration of the event in nanoseconds. + If event.start and event.end are known this value should be the difference between the end and start time. + name: event.duration + type: long +- description: event.end contains the date when the event ended or when the activity was last observed. + name: event.end + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Host IP address when the source IP address is the proxy. + name: network.forwarded_ip + type: ip +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Bytes sent from the server to the client. + name: server.bytes + type: long +- description: |- + The domain name of the server system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: server.domain + type: keyword +- description: IP address of the server (IPv4 or IPv6). + name: server.ip + type: ip +- description: Port of the server. + name: server.port + type: long +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long +- description: String indicating the cipher used during the current connection. + name: tls.cipher + type: keyword +- description: PEM-encoded stand-alone certificate offered by the client. This is usually mutually-exclusive of `client.certificate_chain` since this value also exists in that list. + name: tls.client.certificate + type: keyword +- description: Array of PEM-encoded certificates that make up the certificate chain offered by the client. This is usually mutually-exclusive of `client.certificate` since that value should be the first certificate in the chain. + name: tls.client.certificate_chain + type: keyword +- description: Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash. + name: tls.client.hash.md5 + type: keyword +- description: Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash. + name: tls.client.hash.sha1 + type: keyword +- description: Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash. + name: tls.client.hash.sha256 + type: keyword +- description: Distinguished name of subject of the issuer of the x.509 certificate presented by the client. + name: tls.client.issuer + type: keyword +- description: A hash that identifies clients based on how they perform an SSL/TLS handshake. + name: tls.client.ja3 + type: keyword +- description: Date/Time indicating when client certificate is no longer considered valid. + name: tls.client.not_after + type: date +- description: Date/Time indicating when client certificate is first considered valid. + name: tls.client.not_before + type: date +- description: Also called an SNI, this tells the server which hostname to which the client is attempting to connect to. When this value is available, it should get copied to `destination.domain`. + name: tls.client.server_name + type: keyword +- description: Distinguished name of subject of the x.509 certificate presented by the client. + name: tls.client.subject + type: keyword +- description: Array of ciphers offered by the client during the client hello. + name: tls.client.supported_ciphers + type: keyword +- description: List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. + name: tls.client.x509.alternative_names + type: keyword +- description: List of common name (CN) of issuing certificate authority. + name: tls.client.x509.issuer.common_name + type: keyword +- description: List of country (C) codes + name: tls.client.x509.issuer.country + type: keyword +- description: Distinguished name (DN) of issuing certificate authority. + name: tls.client.x509.issuer.distinguished_name + type: keyword +- description: List of locality names (L) + name: tls.client.x509.issuer.locality + type: keyword +- description: List of organizations (O) of issuing certificate authority. + name: tls.client.x509.issuer.organization + type: keyword +- description: List of organizational units (OU) of issuing certificate authority. + name: tls.client.x509.issuer.organizational_unit + type: keyword +- description: List of state or province names (ST, S, or P) + name: tls.client.x509.issuer.state_or_province + type: keyword +- description: Time at which the certificate is no longer considered valid. + name: tls.client.x509.not_after + type: date +- description: Time at which the certificate is first considered valid. + name: tls.client.x509.not_before + type: date +- description: Algorithm used to generate the public key. + name: tls.client.x509.public_key_algorithm + type: keyword +- description: The curve used by the elliptic curve public key algorithm. This is algorithm specific. + name: tls.client.x509.public_key_curve + type: keyword +- description: Exponent used to derive the public key. This is algorithm specific. + doc_values: false + index: false + name: tls.client.x509.public_key_exponent + type: long +- description: The size of the public key space in bits. + name: tls.client.x509.public_key_size + type: long +- description: Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. + name: tls.client.x509.serial_number + type: keyword +- description: Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353. + name: tls.client.x509.signature_algorithm + type: keyword +- description: List of common names (CN) of subject. + name: tls.client.x509.subject.common_name + type: keyword +- description: List of country (C) code + name: tls.client.x509.subject.country + type: keyword +- description: Distinguished name (DN) of the certificate subject entity. + name: tls.client.x509.subject.distinguished_name + type: keyword +- description: List of locality names (L) + name: tls.client.x509.subject.locality + type: keyword +- description: List of organizations (O) of subject. + name: tls.client.x509.subject.organization + type: keyword +- description: List of organizational units (OU) of subject. + name: tls.client.x509.subject.organizational_unit + type: keyword +- description: List of state or province names (ST, S, or P) + name: tls.client.x509.subject.state_or_province + type: keyword +- description: Version of x509 format. + name: tls.client.x509.version_number + type: keyword +- description: String indicating the curve used for the given cipher, when applicable. + name: tls.curve + type: keyword +- description: Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel. + name: tls.established + type: boolean +- description: String indicating the protocol being tunneled. Per the values in the IANA registry (https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids), this string should be lower case. + name: tls.next_protocol + type: keyword +- description: Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation. + name: tls.resumed + type: boolean +- description: PEM-encoded stand-alone certificate offered by the server. This is usually mutually-exclusive of `server.certificate_chain` since this value also exists in that list. + name: tls.server.certificate + type: keyword +- description: Array of PEM-encoded certificates that make up the certificate chain offered by the server. This is usually mutually-exclusive of `server.certificate` since that value should be the first certificate in the chain. + name: tls.server.certificate_chain + type: keyword +- description: Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash. + name: tls.server.hash.md5 + type: keyword +- description: Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash. + name: tls.server.hash.sha1 + type: keyword +- description: Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash. + name: tls.server.hash.sha256 + type: keyword +- description: Subject of the issuer of the x.509 certificate presented by the server. + name: tls.server.issuer + type: keyword +- description: A hash that identifies servers based on how they perform an SSL/TLS handshake. + name: tls.server.ja3s + type: keyword +- description: Timestamp indicating when server certificate is no longer considered valid. + name: tls.server.not_after + type: date +- description: Timestamp indicating when server certificate is first considered valid. + name: tls.server.not_before + type: date +- description: Subject of the x.509 certificate presented by the server. + name: tls.server.subject + type: keyword +- description: List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. + name: tls.server.x509.alternative_names + type: keyword +- description: List of common name (CN) of issuing certificate authority. + name: tls.server.x509.issuer.common_name + type: keyword +- description: List of country (C) codes + name: tls.server.x509.issuer.country + type: keyword +- description: Distinguished name (DN) of issuing certificate authority. + name: tls.server.x509.issuer.distinguished_name + type: keyword +- description: List of locality names (L) + name: tls.server.x509.issuer.locality + type: keyword +- description: List of organizations (O) of issuing certificate authority. + name: tls.server.x509.issuer.organization + type: keyword +- description: List of organizational units (OU) of issuing certificate authority. + name: tls.server.x509.issuer.organizational_unit + type: keyword +- description: List of state or province names (ST, S, or P) + name: tls.server.x509.issuer.state_or_province + type: keyword +- description: Time at which the certificate is no longer considered valid. + name: tls.server.x509.not_after + type: date +- description: Time at which the certificate is first considered valid. + name: tls.server.x509.not_before + type: date +- description: Algorithm used to generate the public key. + name: tls.server.x509.public_key_algorithm + type: keyword +- description: The curve used by the elliptic curve public key algorithm. This is algorithm specific. + name: tls.server.x509.public_key_curve + type: keyword +- description: Exponent used to derive the public key. This is algorithm specific. + doc_values: false + index: false + name: tls.server.x509.public_key_exponent + type: long +- description: The size of the public key space in bits. + name: tls.server.x509.public_key_size + type: long +- description: Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. + name: tls.server.x509.serial_number + type: keyword +- description: Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353. + name: tls.server.x509.signature_algorithm + type: keyword +- description: List of common names (CN) of subject. + name: tls.server.x509.subject.common_name + type: keyword +- description: List of country (C) code + name: tls.server.x509.subject.country + type: keyword +- description: Distinguished name (DN) of the certificate subject entity. + name: tls.server.x509.subject.distinguished_name + type: keyword +- description: List of locality names (L) + name: tls.server.x509.subject.locality + type: keyword +- description: List of organizations (O) of subject. + name: tls.server.x509.subject.organization + type: keyword +- description: List of organizational units (OU) of subject. + name: tls.server.x509.subject.organizational_unit + type: keyword +- description: List of state or province names (ST, S, or P) + name: tls.server.x509.subject.state_or_province + type: keyword +- description: Version of x509 format. + name: tls.server.x509.version_number + type: keyword +- description: Numeric part of the version parsed from the original string. + name: tls.version + type: keyword +- description: Normalized lowercase protocol name parsed from original string. + name: tls.version_protocol + type: keyword diff --git a/packages/network_traffic/1.1.0/data_stream/tls/fields/protocol.yml b/packages/network_traffic/1.1.0/data_stream/tls/fields/protocol.yml new file mode 100755 index 0000000000..d8264468d4 --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/tls/fields/protocol.yml @@ -0,0 +1,173 @@ +- name: tls + type: group + fields: + - name: detailed + type: group + fields: + - name: version + type: keyword + description: > + The version of the TLS protocol used. + + example: "TLS 1.3" + - name: resumption_method + type: keyword + description: > + If the session has been resumed, the underlying method used. One of "id" for TLS session ID or "ticket" for TLS ticket extension. + + - name: client_certificate_requested + type: boolean + description: > + Whether the server has requested the client to authenticate itself using a client certificate. + + - name: ocsp_response + type: keyword + description: > + The result of an OCSP request. + + - name: client_hello + type: group + fields: + - name: version + type: keyword + description: > + The version of the TLS protocol by which the client wishes to communicate during this session. + + - name: random + type: keyword + description: > + Random data used by the TLS protocol to generate the encryption key. + + - name: session_id + type: keyword + description: > + Unique number to identify the session for the corresponding connection with the client. + + - name: supported_compression_methods + type: keyword + description: > + The list of compression methods the client supports. See https://www.iana.org/assignments/comp-meth-ids/comp-meth-ids.xhtml + + - name: extensions + type: group + description: The hello extensions provided by the client. + fields: + - name: server_name_indication + type: keyword + description: List of hostnames + - name: application_layer_protocol_negotiation + type: keyword + description: > + List of application-layer protocols the client is willing to use. + + - name: session_ticket + type: keyword + description: > + Length of the session ticket, if provided, or an empty string to advertise support for tickets. + + - name: supported_versions + type: keyword + description: > + List of TLS versions that the client is willing to use. + + - name: supported_groups + type: keyword + description: > + List of Elliptic Curve Cryptography (ECC) curve groups supported by the client. + + - name: signature_algorithms + type: keyword + description: > + List of signature algorithms that may be use in digital signatures. + + - name: ec_points_formats + type: keyword + description: > + List of Elliptic Curve (EC) point formats. Indicates the set of point formats that the client can parse. + + - name: status_request + type: group + description: Status request made to the server. + fields: + - name: type + type: keyword + description: The type of the status request. Always "ocsp" if present. + - name: responder_id_list_length + type: short + description: The length of the list of trusted responders. + - name: request_extensions + type: short + description: The number of certificate extensions for the request. + - name: _unparsed_ + type: keyword + description: > + List of extensions that were left unparsed by Packetbeat. + + - name: server_hello + type: group + fields: + - name: version + type: keyword + description: > + The version of the TLS protocol that is used for this session. It is the highest version supported by the server not exceeding the version requested in the client hello. + + - name: random + type: keyword + description: > + Random data used by the TLS protocol to generate the encryption key. + + - name: selected_compression_method + type: keyword + description: > + The compression method selected by the server from the list provided in the client hello. + + - name: session_id + type: keyword + description: > + Unique number to identify the session for the corresponding connection with the client. + + - name: extensions + type: group + description: The hello extensions provided by the server. + fields: + - name: application_layer_protocol_negotiation + type: keyword + description: Negotiated application layer protocol + - name: session_ticket + type: keyword + description: > + Used to announce that a session ticket will be provided by the server. Always an empty string. + + - name: supported_versions + type: keyword + description: > + Negotiated TLS version to be used. + + - name: ec_points_formats + type: keyword + description: > + List of Elliptic Curve (EC) point formats. Indicates the set of point formats that the server can parse. + + - name: status_request + type: group + description: Status request made to the server. + fields: + - name: response + type: boolean + description: Whether a certificate status request response was made. + - name: _unparsed_ + type: keyword + description: > + List of extensions that were left unparsed by Packetbeat. + + - name: server_certificate_chain + type: array + description: Chain of trust for the server certificate. + - name: client_certificate_chain + type: array + description: Chain of trust for the client certificate. + - name: alert_types + type: keyword + description: > + An array containing the TLS alert type for every alert received. + diff --git a/packages/network_traffic/1.1.0/data_stream/tls/manifest.yml b/packages/network_traffic/1.1.0/data_stream/tls/manifest.yml new file mode 100755 index 0000000000..d2b8f403da --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/tls/manifest.yml @@ -0,0 +1,67 @@ +title: TLS +release: beta +type: logs +streams: + - input: packet + vars: + - name: port + # currently the Kibana UI doesn't support multi inputs + # that are numeric, you get "Error: r.toLowerCase is not a function" + # so map this as text + type: text + multi: true + title: Ports + required: true + show_user: true + default: [443, 993, 995, 5223, 8443, 8883, 9243] + - name: fingerprints + type: text + title: Fingerprints + description: |- + List of hash algorithms to use to calculate certificates' fingerprints. + Valid values are `sha1`, `sha256` and `md5`. + show_user: false + multi: true + required: false + - name: send_certificates + type: bool + title: Send Certificates + description: |- + If this option is enabled, the client and server certificates and + certificate chains are sent to Elasticsearch. The default is true. + show_user: false + multi: false + required: false + - name: include_raw_certificates + type: bool + title: Include Raw Certificates + description: |- + If this option is enabled, the raw certificates will be stored + in PEM format under the `raw` key. The default is false. + show_user: false + multi: false + required: false + - name: keep_null + type: bool + title: Keep Null + description: Set to true to publish fields with null values in events. + show_user: false + multi: false + required: false + - name: processors + type: yaml + title: Processors + description: Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + show_user: false + multi: false + required: false + - name: tags + type: text + title: Tags + description: Tags to include in the published event. + show_user: false + multi: true + required: false + title: TLS + description: Capture TLS Traffic + template_path: tls.yml.hbs diff --git a/packages/network_traffic/1.1.0/data_stream/tls/sample_event.json b/packages/network_traffic/1.1.0/data_stream/tls/sample_event.json new file mode 100755 index 0000000000..6c9779651e --- /dev/null +++ b/packages/network_traffic/1.1.0/data_stream/tls/sample_event.json @@ -0,0 +1,302 @@ +{ + "@timestamp": "2022-05-23T11:01:14.376Z", + "agent": { + "ephemeral_id": "d7d5fdf6-998d-488e-bfb7-176a86d6860d", + "id": "0488c467-eaa0-4733-a81a-326734926bc2", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.2.0" + }, + "client": { + "ip": "192.168.1.35", + "port": 59455 + }, + "data_stream": { + "dataset": "network_traffic.tls", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "domain": "example.net", + "ip": "93.184.216.34", + "port": 443 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0488c467-eaa0-4733-a81a-326734926bc2", + "snapshot": false, + "version": "8.2.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.tls", + "duration": 365887700, + "end": "2022-05-23T11:01:14.741Z", + "ingested": "2022-05-23T11:01:17Z", + "kind": "event", + "start": "2022-05-23T11:01:14.376Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.224.7" + ], + "mac": [ + "02-42-C0-A8-E0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.104-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.4 LTS (Focal Fossa)" + } + }, + "network": { + "community_id": "1:fx1jENdlg6r3LIvBRG3wEboWbPY=", + "direction": "unknown", + "protocol": "tls", + "transport": "tcp", + "type": "ipv4" + }, + "related": { + "ip": [ + "192.168.1.35", + "93.184.216.34" + ] + }, + "server": { + "domain": "example.net", + "ip": "93.184.216.34", + "port": 443 + }, + "source": { + "ip": "192.168.1.35", + "port": 59455 + }, + "status": "OK", + "tls": { + "cipher": "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "client": { + "ja3": "e6573e91e6eb777c0933c5b8f97f10cd", + "server_name": "example.net", + "supported_ciphers": [ + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384", + "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384", + "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", + "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256", + "TLS_DHE_RSA_WITH_AES_256_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", + "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256", + "(unknown:0xff85)", + "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256", + "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA", + "TLS_GOSTR341001_WITH_28147_CNT_IMIT", + "TLS_RSA_WITH_AES_256_GCM_SHA384", + "TLS_RSA_WITH_AES_256_CBC_SHA256", + "TLS_RSA_WITH_AES_256_CBC_SHA", + "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256", + "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", + "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256", + "TLS_DHE_RSA_WITH_AES_128_CBC_SHA", + "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256", + "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA", + "TLS_RSA_WITH_AES_128_GCM_SHA256", + "TLS_RSA_WITH_AES_128_CBC_SHA256", + "TLS_RSA_WITH_AES_128_CBC_SHA", + "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256", + "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA", + "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA", + "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" + ] + }, + "detailed": { + "client_certificate_requested": false, + "client_hello": { + "extensions": { + "application_layer_protocol_negotiation": [ + "h2", + "http/1.1" + ], + "ec_points_formats": [ + "uncompressed" + ], + "server_name_indication": [ + "example.net" + ], + "signature_algorithms": [ + "rsa_pkcs1_sha512", + "ecdsa_secp521r1_sha512", + "(unknown:0xefef)", + "rsa_pkcs1_sha384", + "ecdsa_secp384r1_sha384", + "rsa_pkcs1_sha256", + "ecdsa_secp256r1_sha256", + "(unknown:0xeeee)", + "(unknown:0xeded)", + "(unknown:0x0301)", + "(unknown:0x0303)", + "rsa_pkcs1_sha1", + "ecdsa_sha1" + ], + "supported_groups": [ + "x25519", + "secp256r1", + "secp384r1" + ] + }, + "random": "d7c809b4ac3a60b62f53c9d9366ca89a703d25491ff2a246a89f32f945f7b42b", + "supported_compression_methods": [ + "NULL" + ], + "version": "3.3" + }, + "server_certificate_chain": [ + { + "issuer": { + "common_name": "DigiCert Global Root CA", + "country": "US", + "distinguished_name": "CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US", + "organization": "DigiCert Inc", + "organizational_unit": "www.digicert.com" + }, + "not_after": "2023-03-08T12:00:00.000Z", + "not_before": "2013-03-08T12:00:00.000Z", + "public_key_algorithm": "RSA", + "public_key_size": 2048, + "serial_number": "2646203786665923649276728595390119057", + "signature_algorithm": "SHA256-RSA", + "subject": { + "common_name": "DigiCert SHA2 Secure Server CA", + "country": "US", + "distinguished_name": "CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US", + "organization": "DigiCert Inc" + }, + "version_number": 3 + }, + { + "issuer": { + "common_name": "DigiCert Global Root CA", + "country": "US", + "distinguished_name": "CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US", + "organization": "DigiCert Inc", + "organizational_unit": "www.digicert.com" + }, + "not_after": "2031-11-10T00:00:00.000Z", + "not_before": "2006-11-10T00:00:00.000Z", + "public_key_algorithm": "RSA", + "public_key_size": 2048, + "serial_number": "10944719598952040374951832963794454346", + "signature_algorithm": "SHA1-RSA", + "subject": { + "common_name": "DigiCert Global Root CA", + "country": "US", + "distinguished_name": "CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US", + "organization": "DigiCert Inc", + "organizational_unit": "www.digicert.com" + }, + "version_number": 3 + } + ], + "server_hello": { + "extensions": { + "_unparsed_": [ + "renegotiation_info", + "server_name_indication" + ], + "application_layer_protocol_negotiation": [ + "h2" + ], + "ec_points_formats": [ + "uncompressed", + "ansiX962_compressed_prime", + "ansiX962_compressed_char2" + ] + }, + "random": "d1fd553a5a270f08e09eda6690fb3c8f9884e9a9fe7949e9444f574e47524401", + "selected_compression_method": "NULL", + "session_id": "23bb2aed5d215e1228220b0a51d7aa220785e9e4b83b4f430229117971e9913f", + "version": "3.3" + }, + "version": "TLS 1.2" + }, + "established": true, + "next_protocol": "h2", + "resumed": false, + "server": { + "hash": { + "sha1": "7BB698386970363D2919CC5772846984FFD4A889" + }, + "issuer": "CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US", + "not_after": "2020-12-02T12:00:00.000Z", + "not_before": "2018-11-28T00:00:00.000Z", + "subject": "CN=www.example.org,OU=Technology,O=Internet Corporation for Assigned Names and Numbers,L=Los Angeles,ST=California,C=US", + "x509": { + "alternative_names": [ + "www.example.org", + "example.com", + "example.edu", + "example.net", + "example.org", + "www.example.com", + "www.example.edu", + "www.example.net" + ], + "issuer": { + "common_name": "DigiCert SHA2 Secure Server CA", + "country": "US", + "distinguished_name": "CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US", + "organization": "DigiCert Inc" + }, + "not_after": "2020-12-02T12:00:00.000Z", + "not_before": "2018-11-28T00:00:00.000Z", + "public_key_algorithm": "RSA", + "public_key_size": 2048, + "serial_number": "21020869104500376438182461249190639870", + "signature_algorithm": "SHA256-RSA", + "subject": { + "common_name": "www.example.org", + "country": "US", + "distinguished_name": "CN=www.example.org,OU=Technology,O=Internet Corporation for Assigned Names and Numbers,L=Los Angeles,ST=California,C=US", + "locality": "Los Angeles", + "organization": "Internet Corporation for Assigned Names and Numbers", + "organizational_unit": "Technology", + "state_or_province": "California" + }, + "version_number": "3" + } + }, + "version": "1.2", + "version_protocol": "tls" + }, + "type": "tls" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/docs/README.md b/packages/network_traffic/1.1.0/docs/README.md new file mode 100755 index 0000000000..f446dfef90 --- /dev/null +++ b/packages/network_traffic/1.1.0/docs/README.md @@ -0,0 +1,4713 @@ +# Network Packet Capture Integration + +This integration sniffs network packets on a host and dissects +known protocols. + +Monitoring your network traffic is critical to gaining observability and +securing your environment — ensuring high levels of performance and security. +The Network Packet Capture integration captures the network traffic between +your application servers, decodes common application layer protocols and +records the interesting fields for each transaction. + +## Supported Protocols + +Currently, Network Packet Capture supports the following protocols: + +- ICMP (v4 and v6) +- DHCP (v4) +- DNS +- HTTP +- AMQP 0.9.1 +- Cassandra +- Mysql +- PostgreSQL +- Redis +- Thrift-RPC +- MongoDB +- Memcache +- NFS +- TLS +- SIP/SDP (beta) + +### Common protocol options + +The following options are available for all protocols: + +#### `enabled` + +The enabled setting is a boolean setting to enable or disable protocols +without having to comment out configuration sections. If set to false, +the protocol is disabled. + +The default value is true. + +#### `ports` + +Exception: For ICMP the option `enabled` has to be used instead. + +The ports where Network Packet Capture will look to capture traffic for specific +protocols. Network Packet Capture installs a +[BPF](https://en.wikipedia.org/wiki/Berkeley_Packet_Filter) filter based +on the ports specified in this section. If a packet doesn’t match the +filter, very little CPU is required to discard the packet. Network Packet Capture +also uses the ports specified here to determine which parser to use for +each packet. + +#### `send_request` + +If this option is enabled, the raw message of the request (`request` +field) is sent to Elasticsearch. The default is false. This option is +useful when you want to index the whole request. Note that for HTTP, the +body is not included by default, only the HTTP headers. + +#### `send_response` + +If this option is enabled, the raw message of the response (`response` +field) is sent to Elasticsearch. The default is false. This option is +useful when you want to index the whole response. Note that for HTTP, +the body is not included by default, only the HTTP headers. + +#### `transaction_timeout` + +The per protocol transaction timeout. Expired transactions will no +longer be correlated to incoming responses, but sent to Elasticsearch +immediately. + +#### `tags` + +A list of tags that will be sent with the transaction event. This +setting is optional. + +#### `processors` + +A list of processors to apply to the data generated by the protocol. + +#### `keep_null` + +If this option is set to true, fields with `null` values will be +published in the output document. By default, `keep_null` is set to +`false`. + + +## Network Flows + +Overall flow information about the network connections on a +host. + +You can configure Network Packet Capture to collect and report statistics +on network flows. A *flow* is a group of packets sent over the same time +period that share common properties, such as the same source and destination +address and protocol. You can use this feature to analyze network +traffic over specific protocols on your network. + +For each flow, Network Packet Capture reports the number of packets and the +total number of bytes sent from the source to the destination. Each flow event +also contains information about the source and destination hosts, such +as their IP address. For bi-directional flows, Network Packet Capture reports +statistics for the reverse flow. + +Network Packet Capture collects and reports statistics up to and including the +transport layer. + +**Configuration options** + +You can specify the following options for capturing flows. + +#### `enabled` + +Enables flows support if set to true. Set to false to disable network +flows support without having to delete or comment out the flows section. +The default value is true. + +#### `timeout` + +Timeout configures the lifetime of a flow. If no packets have been +received for a flow within the timeout time window, the flow is killed +and reported. The default value is 30s. + +#### `period` + +Configure the reporting interval. All flows are reported at the very +same point in time. Periodical reporting can be disabled by setting the +value to -1. If disabled, flows are still reported once being timed out. +The default value is 10s. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +## Protocols + +### AMQP + +**Configuration options** + +Also see [Common protocol options](#common-protocol-options). + +#### `max_body_length` + +The maximum size in bytes of the message displayed in the request or +response fields. Messages that are bigger than the specified size are +truncated. Use this option to avoid publishing huge messages when +[`send_request`](#send-request-option) or +[`send_response`](#send-response-option) is enabled. The default is +1000 bytes. + +#### `parse_headers` + +If set to true, Network Packet Capture parses the additional arguments specified in +the headers field of a message. Those arguments are key-value pairs that +specify information such as the content type of the message or the +message priority. The default is true. + +#### `parse_arguments` + +If set to true, Network Packet Capture parses the additional arguments specified in +AMQP methods. Those arguments are key-value pairs specified by the user +and can be of any length. The default is true. + +#### `hide_connection_information` + +If set to false, the connection layer methods of the protocol are also +displayed, such as the opening and closing of connections and channels +by clients, or the quality of service negotiation. The default is true. + +Fields published for AMQP packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| amqp.app-id | Creating application id. | keyword | +| amqp.arguments | Optional additional arguments passed to some methods. Can be of various types. | object | +| amqp.auto-delete | If set, auto-delete queue when unused. | boolean | +| amqp.class-id | Failing method class. | long | +| amqp.consumer-count | The number of consumers of a queue. | long | +| amqp.consumer-tag | Identifier for the consumer, valid within the current channel. | keyword | +| amqp.content-encoding | MIME content encoding. | keyword | +| amqp.content-type | MIME content type. | keyword | +| amqp.correlation-id | Application correlation identifier. | keyword | +| amqp.delivery-mode | Non-persistent (1) or persistent (2). | keyword | +| amqp.delivery-tag | The server-assigned and channel-specific delivery tag. | long | +| amqp.durable | If set, request a durable exchange/queue. | boolean | +| amqp.exchange | Name of the exchange. | keyword | +| amqp.exchange-type | Exchange type. | keyword | +| amqp.exclusive | If set, request an exclusive queue. | boolean | +| amqp.expiration | Message expiration specification. | keyword | +| amqp.headers | Message header field table. | object | +| amqp.if-empty | Delete only if empty. | boolean | +| amqp.if-unused | Delete only if unused. | boolean | +| amqp.immediate | Request immediate delivery. | boolean | +| amqp.mandatory | Indicates mandatory routing. | boolean | +| amqp.message-count | The number of messages in the queue, which will be zero for newly-declared queues. | long | +| amqp.message-id | Application message identifier. | keyword | +| amqp.method-id | Failing method ID. | long | +| amqp.multiple | Acknowledge multiple messages. | boolean | +| amqp.no-ack | If set, the server does not expect acknowledgements for messages. | boolean | +| amqp.no-local | If set, the server will not send messages to the connection that published them. | boolean | +| amqp.no-wait | If set, the server will not respond to the method. | boolean | +| amqp.passive | If set, do not create exchange/queue. | boolean | +| amqp.priority | Message priority, 0 to 9. | long | +| amqp.queue | The queue name identifies the queue within the vhost. | keyword | +| amqp.redelivered | Indicates that the message has been previously delivered to this or another client. | boolean | +| amqp.reply-code | AMQP reply code to an error, similar to http reply-code | long | +| amqp.reply-text | Text explaining the error. | keyword | +| amqp.reply-to | Address to reply to. | keyword | +| amqp.routing-key | Message routing key. | keyword | +| amqp.timestamp | Message timestamp. | keyword | +| amqp.type | Message type name. | keyword | +| amqp.user-id | Creating user id. | keyword | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +An example event for `amqp` looks as following: + +```json +{ + "@timestamp": "2022-03-09T07:37:02.033Z", + "agent": { + "ephemeral_id": "ff9ccf25-9d67-46a5-b661-aa01e3db9b84", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "amqp": { + "auto-delete": false, + "consumer-count": 0, + "durable": false, + "exclusive": false, + "message-count": 0, + "no-wait": false, + "passive": false, + "queue": "hello" + }, + "client": { + "bytes": 25, + "ip": "127.0.0.1", + "port": 34222 + }, + "data_stream": { + "dataset": "network_traffic.amqp", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 26, + "ip": "127.0.0.1", + "port": 5672 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "action": "amqp.queue.declare", + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.amqp", + "duration": 1325900, + "end": "2022-03-09T07:37:02.035Z", + "ingested": "2022-03-09T07:37:03Z", + "kind": "event", + "start": "2022-03-09T07:37:02.033Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "method": "queue.declare", + "network": { + "bytes": 51, + "community_id": "1:i6J4zz0FGnZMYLIy8kabND2W/XE=", + "direction": "ingress", + "protocol": "amqp", + "transport": "tcp", + "type": "ipv4" + }, + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "server": { + "bytes": 26, + "ip": "127.0.0.1", + "port": 5672 + }, + "source": { + "bytes": 25, + "ip": "127.0.0.1", + "port": 34222 + }, + "status": "OK", + "type": "amqp" +} +``` + +### Cassandra + +**Configuration options** + +Also see [Common protocol options](#common-protocol-options). + +#### `send_request_header` + +If this option is enabled, the raw message of the response +(`cassandra_request.request_headers` field) is sent to Elasticsearch. +The default is true. Enable `send_request` first before enabling this +option. + +#### `send_response_header` + +If this option is enabled, the raw message of the response +(`cassandra_response.response_headers` field) is included in published +events. The default is true. enable `send_response` first before enable +this option. + +#### `ignored_ops` + +This option indicates which Operator/Operators captured will be ignored. +currently support: `ERROR` ,`STARTUP` ,`READY` ,`AUTHENTICATE` +,`OPTIONS` ,`SUPPORTED` , `QUERY` ,`RESULT` ,`PREPARE` ,`EXECUTE` +,`REGISTER` ,`EVENT` , `BATCH` ,`AUTH_CHALLENGE`,`AUTH_RESPONSE` +,`AUTH_SUCCESS` . + +#### `compressor` + +Configures the default compression algorithm being used to uncompress +compressed frames by name. Currently only `snappy` is can be configured. +By default no compressor is configured. + +Fields published for Apache Cassandra packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cassandra.no_request | Indicates that there is no request because this is a PUSH message. | boolean | +| cassandra.request.headers.flags | Flags applying to this frame. | keyword | +| cassandra.request.headers.length | A integer representing the length of the body of the frame (a frame is limited to 256MB in length). | long | +| cassandra.request.headers.op | An operation type that distinguishes the actual message. | keyword | +| cassandra.request.headers.stream | A frame has a stream id. If a client sends a request message with the stream id X, it is guaranteed that the stream id of the response to that message will be X. | keyword | +| cassandra.request.headers.version | The version of the protocol. | keyword | +| cassandra.request.query | The CQL query which client send to cassandra. | keyword | +| cassandra.response.authentication.class | Indicates the full class name of the IAuthenticator in use | keyword | +| cassandra.response.error.code | The error code of the Cassandra response. | long | +| cassandra.response.error.details.alive | Representing the number of replicas that were known to be alive when the request had been processed (since an unavailable exception has been triggered). | long | +| cassandra.response.error.details.arg_types | One string for each argument type (as CQL type) of the failed function. | keyword | +| cassandra.response.error.details.blockfor | Representing the number of replicas whose acknowledgement is required to achieve consistency level. | long | +| cassandra.response.error.details.data_present | It means the replica that was asked for data had responded. | boolean | +| cassandra.response.error.details.function | The name of the failed function. | keyword | +| cassandra.response.error.details.keyspace | The keyspace of the failed function. | keyword | +| cassandra.response.error.details.num_failures | Representing the number of nodes that experience a failure while executing the request. | keyword | +| cassandra.response.error.details.read_consistency | Representing the consistency level of the query that triggered the exception. | keyword | +| cassandra.response.error.details.received | Representing the number of nodes having acknowledged the request. | long | +| cassandra.response.error.details.required | Representing the number of nodes that should be alive to respect consistency level. | long | +| cassandra.response.error.details.stmt_id | Representing the unknown ID. | keyword | +| cassandra.response.error.details.table | The keyspace of the failed function. | keyword | +| cassandra.response.error.details.write_type | Describe the type of the write that timed out. | keyword | +| cassandra.response.error.msg | The error message of the Cassandra response. | keyword | +| cassandra.response.error.type | The error type of the Cassandra response. | keyword | +| cassandra.response.event.change | The message corresponding respectively to the type of change followed by the address of the new/removed node. | keyword | +| cassandra.response.event.host | Representing the node ip. | keyword | +| cassandra.response.event.port | Representing the node port. | long | +| cassandra.response.event.schema_change.args | One string for each argument type (as CQL type). | keyword | +| cassandra.response.event.schema_change.change | Representing the type of changed involved. | keyword | +| cassandra.response.event.schema_change.keyspace | This describes which keyspace has changed. | keyword | +| cassandra.response.event.schema_change.name | The function/aggregate name. | keyword | +| cassandra.response.event.schema_change.object | This describes the name of said affected object (either the table, user type, function, or aggregate name). | keyword | +| cassandra.response.event.schema_change.table | This describes which table has changed. | keyword | +| cassandra.response.event.schema_change.target | Target could be "FUNCTION" or "AGGREGATE", multiple arguments. | keyword | +| cassandra.response.event.type | Representing the event type. | keyword | +| cassandra.response.headers.flags | Flags applying to this frame. | keyword | +| cassandra.response.headers.length | A integer representing the length of the body of the frame (a frame is limited to 256MB in length). | long | +| cassandra.response.headers.op | An operation type that distinguishes the actual message. | keyword | +| cassandra.response.headers.stream | A frame has a stream id. If a client sends a request message with the stream id X, it is guaranteed that the stream id of the response to that message will be X. | keyword | +| cassandra.response.headers.version | The version of the protocol. | keyword | +| cassandra.response.result.keyspace | Indicating the name of the keyspace that has been set. | keyword | +| cassandra.response.result.prepared.prepared_id | Representing the prepared query ID. | keyword | +| cassandra.response.result.prepared.req_meta.col_count | Representing the number of columns selected by the query that produced this result. | long | +| cassandra.response.result.prepared.req_meta.flags | Provides information on the formatting of the remaining information. | keyword | +| cassandra.response.result.prepared.req_meta.keyspace | Only present after set Global_tables_spec, the keyspace name. | keyword | +| cassandra.response.result.prepared.req_meta.paging_state | The paging_state is a bytes value that should be used in QUERY/EXECUTE to continue paging and retrieve the remainder of the result for this query. | keyword | +| cassandra.response.result.prepared.req_meta.pkey_columns | Representing the PK columns index and counts. | long | +| cassandra.response.result.prepared.req_meta.table | Only present after set Global_tables_spec, the table name. | keyword | +| cassandra.response.result.prepared.resp_meta.col_count | Representing the number of columns selected by the query that produced this result. | long | +| cassandra.response.result.prepared.resp_meta.flags | Provides information on the formatting of the remaining information. | keyword | +| cassandra.response.result.prepared.resp_meta.keyspace | Only present after set Global_tables_spec, the keyspace name. | keyword | +| cassandra.response.result.prepared.resp_meta.paging_state | The paging_state is a bytes value that should be used in QUERY/EXECUTE to continue paging and retrieve the remainder of the result for this query. | keyword | +| cassandra.response.result.prepared.resp_meta.pkey_columns | Representing the PK columns index and counts. | long | +| cassandra.response.result.prepared.resp_meta.table | Only present after set Global_tables_spec, the table name. | keyword | +| cassandra.response.result.rows.meta.col_count | Representing the number of columns selected by the query that produced this result. | long | +| cassandra.response.result.rows.meta.flags | Provides information on the formatting of the remaining information. | keyword | +| cassandra.response.result.rows.meta.keyspace | Only present after set Global_tables_spec, the keyspace name. | keyword | +| cassandra.response.result.rows.meta.paging_state | The paging_state is a bytes value that should be used in QUERY/EXECUTE to continue paging and retrieve the remainder of the result for this query. | keyword | +| cassandra.response.result.rows.meta.pkey_columns | Representing the PK columns index and counts. | long | +| cassandra.response.result.rows.meta.table | Only present after set Global_tables_spec, the table name. | keyword | +| cassandra.response.result.rows.num_rows | Representing the number of rows present in this result. | long | +| cassandra.response.result.schema_change.args | One string for each argument type (as CQL type). | keyword | +| cassandra.response.result.schema_change.change | Representing the type of changed involved. | keyword | +| cassandra.response.result.schema_change.keyspace | This describes which keyspace has changed. | keyword | +| cassandra.response.result.schema_change.name | The function/aggregate name. | keyword | +| cassandra.response.result.schema_change.object | This describes the name of said affected object (either the table, user type, function, or aggregate name). | keyword | +| cassandra.response.result.schema_change.table | This describes which table has changed. | keyword | +| cassandra.response.result.schema_change.target | Target could be "FUNCTION" or "AGGREGATE", multiple arguments. | keyword | +| cassandra.response.result.type | Cassandra result type. | keyword | +| cassandra.response.supported | Indicates which startup options are supported by the server. This message comes as a response to an OPTIONS message. | flattened | +| cassandra.response.warnings | The text of the warnings, only occur when Warning flag was set. | keyword | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +An example event for `cassandra` looks as following: + +```json +{ + "@timestamp": "2022-03-09T07:43:05.888Z", + "agent": { + "ephemeral_id": "20d6eb94-1319-473d-9e2f-05621a4d2494", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "cassandra": { + "request": { + "headers": { + "flags": "Default", + "length": 98, + "op": "QUERY", + "stream": 49, + "version": "4" + }, + "query": "CREATE TABLE users (\n user_id int PRIMARY KEY,\n fname text,\n lname text\n);" + }, + "response": { + "headers": { + "flags": "Default", + "length": 39, + "op": "RESULT", + "stream": 49, + "version": "4" + }, + "result": { + "schema_change": { + "change": "CREATED", + "keyspace": "mykeyspace", + "object": "users", + "target": "TABLE" + }, + "type": "schemaChanged" + } + } + }, + "client": { + "bytes": 107, + "ip": "127.0.0.1", + "port": 52749 + }, + "data_stream": { + "dataset": "network_traffic.cassandra", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 48, + "ip": "127.0.0.1", + "port": 9042 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.cassandra", + "duration": 131589500, + "end": "2022-03-09T07:43:06.019Z", + "ingested": "2022-03-09T07:43:09Z", + "kind": "event", + "start": "2022-03-09T07:43:05.888Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "network": { + "bytes": 155, + "community_id": "1:bCORHZnGIk6GWYaE3Kn0DOpQCKE=", + "direction": "ingress", + "protocol": "cassandra", + "transport": "tcp", + "type": "ipv4" + }, + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "server": { + "bytes": 48, + "ip": "127.0.0.1", + "port": 9042 + }, + "source": { + "bytes": 107, + "ip": "127.0.0.1", + "port": 52749 + }, + "status": "OK", + "type": "cassandra" +} +``` + +### DHCP + +**Configuration options** + +See [Common protocol options](#common-protocol-options). + +Fields published for DHCPv4 packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| dhcpv4.assigned_ip | The IP address that the DHCP server is assigning to the client. This field is also known as "your" IP address. | ip | +| dhcpv4.client_ip | The current IP address of the client. | ip | +| dhcpv4.client_mac | The client's MAC address (layer two). | keyword | +| dhcpv4.flags | Flags are set by the client to indicate how the DHCP server should its reply -- either unicast or broadcast. | keyword | +| dhcpv4.hardware_type | The type of hardware used for the local network (Ethernet, LocalTalk, etc). | keyword | +| dhcpv4.hops | The number of hops the DHCP message went through. | long | +| dhcpv4.op_code | The message op code (bootrequest or bootreply). | keyword | +| dhcpv4.option.boot_file_name | This option is used to identify a bootfile when the 'file' field in the DHCP header has been used for DHCP options. | keyword | +| dhcpv4.option.broadcast_address | This option specifies the broadcast address in use on the client's subnet. | ip | +| dhcpv4.option.class_identifier | This option is used by DHCP clients to optionally identify the vendor type and configuration of a DHCP client. Vendors may choose to define specific vendor class identifiers to convey particular configuration or other identification information about a client. For example, the identifier may encode the client's hardware configuration. | keyword | +| dhcpv4.option.dns_servers | The domain name server option specifies a list of Domain Name System servers available to the client. | ip | +| dhcpv4.option.domain_name | This option specifies the domain name that client should use when resolving hostnames via the Domain Name System. | keyword | +| dhcpv4.option.hostname | This option specifies the name of the client. | keyword | +| dhcpv4.option.ip_address_lease_time_sec | This option is used in a client request (DHCPDISCOVER or DHCPREQUEST) to allow the client to request a lease time for the IP address. In a server reply (DHCPOFFER), a DHCP server uses this option to specify the lease time it is willing to offer. | long | +| dhcpv4.option.max_dhcp_message_size | This option specifies the maximum length DHCP message that the client is willing to accept. | long | +| dhcpv4.option.message | This option is used by a DHCP server to provide an error message to a DHCP client in a DHCPNAK message in the event of a failure. A client may use this option in a DHCPDECLINE message to indicate the why the client declined the offered parameters. | text | +| dhcpv4.option.message_type | The specific type of DHCP message being sent (e.g. discover, offer, request, decline, ack, nak, release, inform). | keyword | +| dhcpv4.option.ntp_servers | This option specifies a list of IP addresses indicating NTP servers available to the client. | ip | +| dhcpv4.option.parameter_request_list | This option is used by a DHCP client to request values for specified configuration parameters. | keyword | +| dhcpv4.option.rebinding_time_sec | This option specifies the time interval from address assignment until the client transitions to the REBINDING state. | long | +| dhcpv4.option.renewal_time_sec | This option specifies the time interval from address assignment until the client transitions to the RENEWING state. | long | +| dhcpv4.option.requested_ip_address | This option is used in a client request (DHCPDISCOVER) to allow the client to request that a particular IP address be assigned. | ip | +| dhcpv4.option.router | The router option specifies a list of IP addresses for routers on the client's subnet. | ip | +| dhcpv4.option.server_identifier | IP address of the individual DHCP server which handled this message. | ip | +| dhcpv4.option.subnet_mask | The subnet mask that the client should use on the currnet network. | ip | +| dhcpv4.option.time_servers | The time server option specifies a list of RFC 868 time servers available to the client. | ip | +| dhcpv4.option.utc_time_offset_sec | The time offset field specifies the offset of the client's subnet in seconds from Coordinated Universal Time (UTC). | long | +| dhcpv4.option.vendor_identifying_options | A DHCP client may use this option to unambiguously identify the vendor that manufactured the hardware on which the client is running, the software in use, or an industry consortium to which the vendor belongs. This field is described in RFC 3925. | object | +| dhcpv4.relay_ip | The relay IP address used by the client to contact the server (i.e. a DHCP relay server). | ip | +| dhcpv4.seconds | Number of seconds elapsed since client began address acquisition or renewal process. | long | +| dhcpv4.server_ip | The IP address of the DHCP server that the client should use for the next step in the bootstrap process. | ip | +| dhcpv4.server_name | The name of the server sending the message. Optional. Used in DHCPOFFER or DHCPACK messages. | keyword | +| dhcpv4.transaction_id | Transaction ID, a random number chosen by the client, used by the client and server to associate messages and responses between a client and a server. | keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +An example event for `dhcpv4` looks as following: + +```json +{ + "@timestamp": "2022-03-09T07:43:52.712Z", + "agent": { + "ephemeral_id": "b98a43ba-d050-42e6-ab2f-2eba352e9cb0", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 272, + "ip": "0.0.0.0", + "port": 68 + }, + "data_stream": { + "dataset": "network_traffic.dhcpv4", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "ip": "255.255.255.255", + "port": 67 + }, + "dhcpv4": { + "client_mac": "00-0B-82-01-FC-42", + "flags": "unicast", + "hardware_type": "Ethernet", + "hops": 0, + "op_code": "bootrequest", + "option": { + "message_type": "discover", + "parameter_request_list": [ + "Subnet Mask", + "Router", + "Domain Name Server", + "NTP Servers" + ], + "requested_ip_address": "0.0.0.0" + }, + "seconds": 0, + "transaction_id": "0x00003d1d" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.dhcpv4", + "ingested": "2022-03-09T07:43:53Z", + "kind": "event", + "start": "2022-03-09T07:43:52.712Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "network": { + "bytes": 272, + "community_id": "1:t9O1j0qj71O4wJM7gnaHtgmfev8=", + "direction": "unknown", + "protocol": "dhcpv4", + "transport": "udp", + "type": "ipv4" + }, + "related": { + "ip": [ + "0.0.0.0", + "255.255.255.255" + ] + }, + "server": { + "ip": "255.255.255.255", + "port": 67 + }, + "source": { + "bytes": 272, + "ip": "0.0.0.0", + "port": 68 + }, + "status": "OK", + "type": "dhcpv4" +} +``` + +### DNS + +The DNS protocol supports processing DNS messages on TCP and UDP. + +**Configuration options** + +Also see [Common protocol options](#common-protocol-options). + +#### `include_authorities` + +If this option is enabled, dns.authority fields (authority resource +records) are added to DNS events. The default is false. + +#### `include_additionals` + +If this option is enabled, dns.additionals fields (additional resource +records) are added to DNS events. The default is false. + +Fields published for DNS packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| dns.additionals | An array containing a dictionary for each additional section from the answer. | object | +| dns.additionals.class | The class of DNS data contained in this resource record. | keyword | +| dns.additionals.data | The data describing the resource. The meaning of this data depends on the type and class of the resource record. | keyword | +| dns.additionals.name | The domain name to which this resource record pertains. | keyword | +| dns.additionals.ttl | The time interval in seconds that this resource record may be cached before it should be discarded. Zero values mean that the data should not be cached. | long | +| dns.additionals.type | The type of data contained in this resource record. | keyword | +| dns.additionals_count | The number of resource records contained in the `dns.additionals` field. The `dns.additionals` field may or may not be included depending on the configuration of Packetbeat. | long | +| dns.answers | An array containing an object for each answer section returned by the server. The main keys that should be present in these objects are defined by ECS. Records that have more information may contain more keys than what ECS defines. Not all DNS data sources give all details about DNS answers. At minimum, answer objects must contain the `data` key. If more information is available, map as much of it to ECS as possible, and add any additional fields to the answer objects as custom fields. | object | +| dns.answers.class | The class of DNS data contained in this resource record. | keyword | +| dns.answers.data | The data describing the resource. The meaning of this data depends on the type and class of the resource record. | keyword | +| dns.answers.name | The domain name to which this resource record pertains. If a chain of CNAME is being resolved, each answer's `name` should be the one that corresponds with the answer's `data`. It should not simply be the original `question.name` repeated. | keyword | +| dns.answers.ttl | The time interval in seconds that this resource record may be cached before it should be discarded. Zero values mean that the data should not be cached. | long | +| dns.answers.type | The type of data contained in this resource record. | keyword | +| dns.answers_count | The number of resource records contained in the `dns.answers` field. | long | +| dns.authorities | An array containing a dictionary for each authority section from the answer. | object | +| dns.authorities.class | The class of DNS data contained in this resource record. | keyword | +| dns.authorities.name | The domain name to which this resource record pertains. | keyword | +| dns.authorities.type | The type of data contained in this resource record. | keyword | +| dns.authorities_count | The number of resource records contained in the `dns.authorities` field. The `dns.authorities` field may or may not be included depending on the configuration of Packetbeat. | long | +| dns.flags.authentic_data | A DNS flag specifying that the recursive server considers the response authentic. | boolean | +| dns.flags.authoritative | A DNS flag specifying that the responding server is an authority for the domain name used in the question. | boolean | +| dns.flags.checking_disabled | A DNS flag specifying that the client disables the server signature validation of the query. | boolean | +| dns.flags.recursion_available | A DNS flag specifying whether recursive query support is available in the name server. | boolean | +| dns.flags.recursion_desired | A DNS flag specifying that the client directs the server to pursue a query recursively. Recursive query support is optional. | boolean | +| dns.flags.truncated_response | A DNS flag specifying that only the first 512 bytes of the reply were returned. | boolean | +| dns.header_flags | Array of 2 letter DNS header flags. Expected values are: AA, TC, RD, RA, AD, CD, DO. | keyword | +| dns.id | The DNS packet identifier assigned by the program that generated the query. The identifier is copied to the response. | keyword | +| dns.op_code | The DNS operation code that specifies the kind of query in the message. This value is set by the originator of a query and copied into the response. | keyword | +| dns.opt.do | If set, the transaction uses DNSSEC. | boolean | +| dns.opt.ext_rcode | Extended response code field. | keyword | +| dns.opt.udp_size | Requestor's UDP payload size (in bytes). | long | +| dns.opt.version | The EDNS version. | keyword | +| dns.question.class | The class of records being queried. | keyword | +| dns.question.etld_plus_one | The effective top-level domain (eTLD) plus one more label. For example, the eTLD+1 for "foo.bar.golang.org." is "golang.org.". The data for determining the eTLD comes from an embedded copy of the data from http://publicsuffix.org. | keyword | +| dns.question.name | The name being queried. If the name field contains non-printable characters (below 32 or above 126), those characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n respectively. | keyword | +| dns.question.registered_domain | The highest registered domain, stripped of the subdomain. For example, the registered domain for "foo.example.com" is "example.com". This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last two labels will not work well for TLDs such as "co.uk". | keyword | +| dns.question.subdomain | The subdomain is all of the labels under the registered_domain. If the domain has multiple levels of subdomain, such as "sub2.sub1.example.com", the subdomain field should contain "sub2.sub1", with no trailing period. | keyword | +| dns.question.top_level_domain | The effective top level domain (eTLD), also known as the domain suffix, is the last part of the domain name. For example, the top level domain for example.com is "com". This value can be determined precisely with a list like the public suffix list (http://publicsuffix.org). Trying to approximate this by simply taking the last label will not work well for effective TLDs such as "co.uk". | keyword | +| dns.question.type | The type of record being queried. | keyword | +| dns.resolved_ip | Array containing all IPs seen in `answers.data`. The `answers` array can be difficult to use, because of the variety of data formats it can contain. Extracting all IP addresses seen in there to `dns.resolved_ip` makes it possible to index them as IP addresses, and makes them easier to visualize and query for. | ip | +| dns.response_code | The DNS response code. | keyword | +| dns.type | The type of DNS event captured, query or answer. If your source of DNS events only gives you DNS queries, you should only create dns events of type `dns.type:query`. If your source of DNS events gives you answers as well, you should create one event per query (optionally as soon as the query is seen). And a second event containing all query details as well as an array of answers. | keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +An example event for `dns` looks as following: + +```json +{ + "@timestamp": "2022-03-09T07:48:42.751Z", + "agent": { + "ephemeral_id": "1d099984-2551-49e1-9e6a-c1dff964be0f", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 28, + "ip": "192.168.238.68", + "port": 53765 + }, + "data_stream": { + "dataset": "network_traffic.dns", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 167, + "ip": "8.8.8.8", + "port": 53 + }, + "dns": { + "additionals_count": 0, + "answers": [ + { + "class": "IN", + "data": "ns-1183.awsdns-19.org", + "name": "elastic.co", + "ttl": "21599", + "type": "NS" + }, + { + "class": "IN", + "data": "ns-2007.awsdns-58.co.uk", + "name": "elastic.co", + "ttl": "21599", + "type": "NS" + }, + { + "class": "IN", + "data": "ns-66.awsdns-08.com", + "name": "elastic.co", + "ttl": "21599", + "type": "NS" + }, + { + "class": "IN", + "data": "ns-835.awsdns-40.net", + "name": "elastic.co", + "ttl": "21599", + "type": "NS" + } + ], + "answers_count": 4, + "authorities_count": 0, + "flags": { + "authentic_data": false, + "authoritative": false, + "checking_disabled": false, + "recursion_available": true, + "recursion_desired": true, + "truncated_response": false + }, + "header_flags": [ + "RD", + "RA" + ], + "id": 26187, + "op_code": "QUERY", + "question": { + "class": "IN", + "etld_plus_one": "elastic.co", + "name": "elastic.co", + "registered_domain": "elastic.co", + "top_level_domain": "co", + "type": "NS" + }, + "response_code": "NOERROR", + "type": "answer" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.dns", + "duration": 68515700, + "end": "2022-03-09T07:48:42.819Z", + "ingested": "2022-03-09T07:48:43Z", + "kind": "event", + "start": "2022-03-09T07:48:42.751Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "method": "QUERY", + "network": { + "bytes": 195, + "community_id": "1:3P4ruI0bVlqxiTAs0WyBhnF74ek=", + "direction": "unknown", + "protocol": "dns", + "transport": "udp", + "type": "ipv4" + }, + "query": "class IN, type NS, elastic.co", + "related": { + "ip": [ + "192.168.238.68", + "8.8.8.8" + ] + }, + "resource": "elastic.co", + "server": { + "bytes": 167, + "ip": "8.8.8.8", + "port": 53 + }, + "source": { + "bytes": 28, + "ip": "192.168.238.68", + "port": 53765 + }, + "status": "OK", + "type": "dns" +} +``` + +### HTTP + +**Configuration options** + +Also see [Common protocol options](#common-protocol-options). + +#### `hide_keywords` + +A list of query parameters that Network Packet Capture will automatically censor in +the transactions that it saves. The values associated with these +parameters are replaced by `'xxxxx'`. By default, no changes are made to +the HTTP messages. + +Network Packet Capture has this option because, unlike SQL traffic, which typically +only contains the hashes of the passwords, HTTP traffic may contain +sensitive data. To reduce security risks, you can configure this option +to avoid sending the contents of certain HTTP POST parameters. + +This option replaces query parameters from GET requests and top-level +parameters from POST requests. If sensitive data is encoded inside a +parameter that you don’t specify here, Network Packet Capture cannot censor it. +Also, note that if you configure Network Packet Capture to save the raw request and +response fields (see the [`send_request`](#send-request-option) and +the [`send_response`](#send-response-option) options), sensitive data +may be present in those fields. + +#### `redact_authorization` + +When this option is enabled, Network Packet Capture obscures the value of +`Authorization` and `Proxy-Authorization` HTTP headers, and censors +those strings in the response. + +You should set this option to true for transactions that use Basic +Authentication because they may contain the base64 unencrypted username +and password. + +#### `send_headers` + +A list of header names to capture and send to Elasticsearch. These +headers are placed under the `headers` dictionary in the resulting JSON. + +#### `send_all_headers` + +Instead of sending a white list of headers to Elasticsearch, you can +send all headers by setting this option to true. The default is false. + +#### `redact_headers` + +A list of headers to redact if present in the HTTP request. This will +keep the header field present, but will redact it’s value to show the +header’s presence. + +#### `include_body_for` + +The list of content types for which Network Packet Capture exports the full HTTP +payload. The HTTP body is available under `http.request.body.content` +and `http.response.body.content` for these Content-Types. + +In addition, if [`send_response`](#send-response-option) option is +enabled, then the HTTP body is exported together with the HTTP headers +under `response` and if [`send_request`](#send-request-option) +enabled, then `request` contains the entire HTTP message including the +body. + +In the following example, the HTML attachments of the HTTP responses are +exported under the `response` field and under +`http.request.body.content` or `http.response.body.content`: + + Network Packet Capture.protocols: + - type: http + ports: [80, 8080] + send_response: true + include_body_for: ["text/html"] + +#### `decode_body` + +A boolean flag that controls decoding of HTTP payload. It interprets the +`Content-Encoding` and `Transfer-Encoding` headers and uncompresses the +entity body. Supported encodings are `gzip` and `deflate`. This option +is only applicable in the cases where the HTTP payload is exported, that +is, when one of the `include_*_body_for` options is specified or a POST +request contains url-encoded parameters. + +#### `split_cookie` + +If the `Cookie` or `Set-Cookie` headers are sent, this option controls +whether they are split into individual values. For example, with this +option set, an HTTP response might result in the following JSON: + + "response": { + "code": 200, + "headers": { + "connection": "close", + "content-language": "en", + "content-type": "text/html; charset=utf-8", + "date": "Fri, 21 Nov 2014 17:07:34 GMT", + "server": "gunicorn/19.1.1", + "set-cookie": { + "csrftoken": "S9ZuJF8mvIMT5CL4T1Xqn32wkA6ZSeyf", + "expires": "Fri, 20-Nov-2015 17:07:34 GMT", + "max-age": "31449600", + "path": "/" + }, + "vary": "Cookie, Accept-Language" + }, + "status_phrase": "OK" + } + +- Note that `set-cookie` is a map containing the cookie names as keys. + +The default is false. + +#### `real_ip_header` + +The header field to extract the real IP from. This setting is useful +when you want to capture traffic behind a reverse proxy, but you want to +get the geo-location information. If this header is present and contains +a valid IP addresses, the information is used for the +`network.forwarded_ip` field. + +#### `max_message_size` + +If an individual HTTP message is larger than this setting (in bytes), it +will be trimmed to this size. Unless this value is very small +(<1.5K), Network Packet Capture is able to still correctly follow the transaction +and create an event for it. The default is 10485760 (10 MB). + +Fields published for HTTP packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.domain | The domain name of the destination system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| http.request.body.bytes | Size in bytes of the request body. | long | +| http.request.bytes | Total size in bytes of the request (body and headers). | long | +| http.request.headers | A map containing the captured header fields from the request. Which headers to capture is configurable. If headers with the same header name are present in the message, they will be separated by commas. | flattened | +| http.request.method | HTTP request method. The value should retain its casing from the original event. For example, `GET`, `get`, and `GeT` are all considered valid values for this field. | keyword | +| http.request.referrer | Referrer for this HTTP request. | keyword | +| http.response.body.bytes | Size in bytes of the response body. | long | +| http.response.bytes | Total size in bytes of the response (body and headers). | long | +| http.response.headers | A map containing the captured header fields from the response. Which headers to capture is configurable. If headers with the same header name are present in the message, they will be separated by commas. | flattened | +| http.response.status_code | HTTP response status code. | long | +| http.response.status_phrase | The HTTP status phrase. | keyword | +| http.version | HTTP version. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.domain | The domain name of the server system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | +| url.domain | Domain of the url, such as "www.elastic.co". In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. | keyword | +| url.extension | The field contains the file extension from the original request url, excluding the leading dot. The file extension is only set if it exists, as not every url has a file extension. The leading period must not be included. For example, the value must be "png", not ".png". Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). | keyword | +| url.full | If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. | wildcard | +| url.full.text | Multi-field of `url.full`. | match_only_text | +| url.path | Path of the request, such as "/search". | wildcard | +| url.port | Port of the request, such as 443. | long | +| url.query | The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. | keyword | +| url.scheme | Scheme of the request, such as "https". Note: The `:` is not part of the scheme. | keyword | +| user_agent.original | Unparsed user_agent string. | keyword | +| user_agent.original.text | Multi-field of `user_agent.original`. | match_only_text | + + +An example event for `http` looks as following: + +```json +{ + "@timestamp": "2022-03-09T07:54:42.031Z", + "agent": { + "ephemeral_id": "822947c0-15fd-4278-ba0d-2cc64d687bb2", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 211, + "ip": "192.168.238.50", + "port": 64770 + }, + "data_stream": { + "dataset": "network_traffic.http", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 9108, + "domain": "packetbeat.com", + "ip": "107.170.1.22", + "port": 80 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.http", + "duration": 141490400, + "end": "2022-03-09T07:54:42.172Z", + "ingested": "2022-03-09T07:54:43Z", + "kind": "event", + "start": "2022-03-09T07:54:42.031Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "http": { + "request": { + "body": { + "bytes": 55 + }, + "bytes": 211, + "headers": { + "content-length": 55, + "content-type": "application/x-www-form-urlencoded" + }, + "method": "POST" + }, + "response": { + "body": { + "bytes": 8936 + }, + "bytes": 9108, + "headers": { + "content-length": 8936, + "content-type": "text/html; charset=utf-8" + }, + "status_code": 404, + "status_phrase": "not found" + }, + "version": "1.1" + }, + "method": "POST", + "network": { + "bytes": 9319, + "community_id": "1:LREAuuDqOAxXEbzF064U0QX5FBs=", + "direction": "unknown", + "protocol": "http", + "transport": "tcp", + "type": "ipv4" + }, + "query": "POST /register", + "related": { + "hosts": [ + "packetbeat.com" + ], + "ip": [ + "192.168.238.50", + "107.170.1.22" + ] + }, + "server": { + "bytes": 9108, + "domain": "packetbeat.com", + "ip": "107.170.1.22", + "port": 80 + }, + "source": { + "bytes": 211, + "ip": "192.168.238.50", + "port": 64770 + }, + "status": "Error", + "type": "http", + "url": { + "domain": "packetbeat.com", + "full": "http://packetbeat.com/register?address=anklamerstr.14b\u0026telephon=8932784368\u0026user=monica", + "path": "/register", + "query": "address=anklamerstr.14b\u0026telephon=8932784368\u0026user=monica", + "scheme": "http" + }, + "user_agent": { + "original": "curl/7.37.1" + } +} +``` + +### ICMP + +**Configuration options** + +Also see [Common protocol options](#common-protocol-options). + +**`enabled`** + +The ICMP protocol can be enabled/disabled via this option. The default +is true. + +If enabled Network Packet Capture will generate the following BPF filter: +`"icmp or icmp6"`. +Fields published for ICMP packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| icmp.request.code | The request code. | long | +| icmp.request.message | A human readable form of the request. | keyword | +| icmp.request.type | The request type. | long | +| icmp.response.code | The response code. | long | +| icmp.response.message | A human readable form of the response. | keyword | +| icmp.response.type | The response type. | long | +| icmp.version | The version of the ICMP protocol. | long | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +An example event for `icmp` looks as following: + +```json +{ + "@timestamp": "2022-03-09T07:57:32.766Z", + "agent": { + "ephemeral_id": "34e079a4-8dee-40db-a820-2296c225fbbe", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 4, + "ip": "::1" + }, + "data_stream": { + "dataset": "network_traffic.icmp", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 4, + "ip": "::2" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.icmp", + "duration": 13336600, + "end": "2022-03-09T07:57:32.779Z", + "ingested": "2022-03-09T07:57:36Z", + "kind": "event", + "start": "2022-03-09T07:57:32.766Z", + "type": [ + "connection" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "icmp": { + "request": { + "code": 0, + "message": "EchoRequest", + "type": 128 + }, + "response": { + "code": 0, + "message": "EchoReply", + "type": 129 + }, + "version": 6 + }, + "network": { + "bytes": 8, + "community_id": "1:9UpHcZHFAOl8WqZVOs5YRQ5wDGE=", + "direction": "egress", + "transport": "ipv6-icmp", + "type": "ipv6" + }, + "path": "::2", + "related": { + "ip": [ + "::1", + "::2" + ] + }, + "server": { + "bytes": 4, + "ip": "::2" + }, + "source": { + "bytes": 4, + "ip": "::1" + }, + "status": "OK", + "type": "icmp" +} +``` + +### Memcached + +**Configuration options** + +Also see [Common protocol options](#common-protocol-options). + +#### `parseunknown` + +When this option is enabled, it forces the memcache text protocol parser +to accept unknown commands. + +The unknown commands MUST NOT contain a data part. + +#### `maxvalues` + +The maximum number of values to store in the message (multi-get). All +values will be base64 encoded. + +The possible settings for this option are: + +- `maxvalue: -1`, which stores all values (text based protocol multi-get) +- `maxvalue: 0`, which stores no values (default) +- `maxvalue: N`, which stores up to N values + +#### `maxbytespervalue` + +The maximum number of bytes to be copied for each value element. + +Values will be base64 encoded, so the actual size in the JSON document +will be 4 times the value that you specify for `maxbytespervalue`. + +#### `udptransactiontimeout` + +The transaction timeout in milliseconds. The defaults is 10000 +milliseconds. + +Quiet messages in UDP binary protocol get responses only if there is an +error. The memcache protocol analyzer will wait for the number of +milliseconds specified by `udptransactiontimeout` before publishing +quiet messages. Non-quiet messages or quiet requests with an error +response are published immediately. + +Fields published for Memcached packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.outcome | This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| memcache.protocol_type | The memcache protocol implementation. The value can be "binary" for binary-based, "text" for text-based, or "unknown" for an unknown memcache protocol type. | keyword | +| memcache.request.automove | The automove mode in the 'slab automove' command expressed as a string. This value can be "standby"(=0), "slow"(=1), "aggressive"(=2), or the raw value if the value is unknown. | keyword | +| memcache.request.bytes | The byte count of the values being transferred. | long | +| memcache.request.cas_unique | The CAS (compare-and-swap) identifier if present. | long | +| memcache.request.command | The memcache command being requested in the memcache text protocol. For example "set" or "get". The binary protocol opcodes are translated into memcache text protocol commands. | keyword | +| memcache.request.count_values | The number of values found in the memcache request message. If the command does not send any data, this field is missing. | long | +| memcache.request.delta | The counter increment/decrement delta value. | long | +| memcache.request.dest_class | The destination class id in 'slab reassign' command. | long | +| memcache.request.exptime | The data expiry time in seconds sent with the memcache command (if present). If the value is `\< 30` days, the expiry time is relative to "now", or else it is an absolute Unix time in seconds (32-bit). | long | +| memcache.request.flags | The memcache command flags sent in the request (if present). | long | +| memcache.request.initial | The counter increment/decrement initial value parameter (binary protocol only). | long | +| memcache.request.keys | The list of keys sent in the store or load commands. | array | +| memcache.request.line | The raw command line for unknown commands ONLY. | keyword | +| memcache.request.noreply | Set to true if noreply was set in the request. The `memcache.response` field will be missing. | boolean | +| memcache.request.opaque | The binary protocol opaque header value used for correlating request with response messages. | long | +| memcache.request.opcode | The binary protocol message opcode name. | keyword | +| memcache.request.opcode_value | The binary protocol message opcode value. | long | +| memcache.request.quiet | Set to true if the binary protocol message is to be treated as a quiet message. | boolean | +| memcache.request.raw_args | The text protocol raw arguments for the "stats ..." and "lru crawl ..." commands. | keyword | +| memcache.request.sleep_us | The sleep setting in microseconds for the 'lru_crawler sleep' command. | long | +| memcache.request.source_class | The source class id in 'slab reassign' command. | long | +| memcache.request.type | The memcache command classification. This value can be "UNKNOWN", "Load", "Store", "Delete", "Counter", "Info", "SlabCtrl", "LRUCrawler", "Stats", "Success", "Fail", or "Auth". | keyword | +| memcache.request.values | The list of base64 encoded values sent with the request (if present). | array | +| memcache.request.vbucket | The vbucket index sent in the binary message. | long | +| memcache.request.verbosity | The value of the memcache "verbosity" command. | long | +| memcache.response.bytes | The byte count of the values being transferred. | long | +| memcache.response.cas_unique | The CAS (compare-and-swap) identifier to be used with CAS-based updates (if present). | long | +| memcache.response.command | Either the text based protocol response message type or the name of the originating request if binary protocol is used. | keyword | +| memcache.response.count_values | The number of values found in the memcache response message. If the command does not send any data, this field is missing. | long | +| memcache.response.error_msg | The optional error message in the memcache response (text based protocol only). | keyword | +| memcache.response.flags | The memcache message flags sent in the response (if present). | long | +| memcache.response.keys | The list of keys returned for the load command (if present). | array | +| memcache.response.opaque | The binary protocol opaque header value used for correlating request with response messages. | long | +| memcache.response.opcode | The binary protocol message opcode name. | keyword | +| memcache.response.opcode_value | The binary protocol message opcode value. | long | +| memcache.response.stats | The list of statistic values returned. Each entry is a dictionary with the fields "name" and "value". | array | +| memcache.response.status | The textual representation of the response error code (binary protocol only). | keyword | +| memcache.response.status_code | The status code value returned in the response (binary protocol only). | long | +| memcache.response.type | The memcache command classification. This value can be "UNKNOWN", "Load", "Store", "Delete", "Counter", "Info", "SlabCtrl", "LRUCrawler", "Stats", "Success", "Fail", or "Auth". The text based protocol will employ any of these, whereas the binary based protocol will mirror the request commands only (see `memcache.response.status` for binary protocol). | keyword | +| memcache.response.value | The counter value returned by a counter operation. | long | +| memcache.response.values | The list of base64 encoded values sent with the response (if present). | array | +| memcache.response.version | The returned memcache version string. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +An example event for `memcached` looks as following: + +```json +{ + "@timestamp": "2022-03-09T08:09:26.564Z", + "agent": { + "ephemeral_id": "53c3aab1-4c1d-4f33-87a9-1d1d4ce75205", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "ip": "192.168.188.37", + "port": 65195 + }, + "data_stream": { + "dataset": "network_traffic.memcached", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 1064, + "ip": "192.168.188.38", + "port": 11211 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.memcached", + "ingested": "2022-03-09T08:09:37Z", + "kind": "event", + "start": "2022-03-09T08:09:26.564Z", + "type": [ + "connection", + "protocol" + ] + }, + "event.action": "memcache.store", + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "memcache": { + "protocol_type": "binary", + "request": { + "bytes": 1024, + "command": "set", + "count_values": 1, + "exptime": 0, + "flags": 0, + "keys": [ + "test_key" + ], + "opaque": 65536, + "opcode": "SetQ", + "opcode_value": 17, + "quiet": true, + "type": "Store", + "vbucket": 0 + } + }, + "network": { + "bytes": 1064, + "community_id": "1:QMbWqXK5vGDDbp48SEFuFe8Z1lQ=", + "direction": "unknown", + "protocol": "memcache", + "transport": "udp", + "type": "ipv4" + }, + "related": { + "ip": [ + "192.168.188.37", + "192.168.188.38" + ] + }, + "server": { + "bytes": 1064, + "ip": "192.168.188.38", + "port": 11211 + }, + "source": { + "ip": "192.168.188.37", + "port": 65195 + }, + "status": "OK", + "type": "memcache" +} +``` + +### MongoDB + +**Configuration options** + +The `max_docs` and `max_doc_length` settings are useful for limiting the +amount of data Network Packet Capture indexes in the `response` fields. + +Also see [Common protocol options](#common-protocol-options). + +#### `max_docs` + +The maximum number of documents from the response to index in the +`response` field. The default is 10. You can set this to 0 to index an +unlimited number of documents. + +Network Packet Capture adds a `[...]` line at the end to signify that there were +additional documents that weren’t saved because of this setting. + +#### `max_doc_length` + +The maximum number of characters in a single document indexed in the +`response` field. The default is 5000. You can set this to 0 to index an +unlimited number of characters per document. + +If the document is trimmed because of this setting, Network Packet Capture adds the +string `...` at the end of the document. + +Note that limiting documents in this way means that they are no longer +correctly formatted JSON objects. + +Fields published for MongoDB packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| mongodb.cursorId | The cursor identifier returned in the OP_REPLY. This must be the value that was returned from the database. | keyword | +| mongodb.error | If the MongoDB request has resulted in an error, this field contains the error message returned by the server. | keyword | +| mongodb.fullCollectionName | The full collection name. The full collection name is the concatenation of the database name with the collection name, using a dot (.) for the concatenation. For example, for the database foo and the collection bar, the full collection name is foo.bar. | keyword | +| mongodb.numberReturned | The number of documents in the reply. | long | +| mongodb.numberToReturn | The requested maximum number of documents to be returned. | long | +| mongodb.numberToSkip | Sets the number of documents to omit - starting from the first document in the resulting dataset - when returning the result of the query. | long | +| mongodb.query | A JSON document that represents the query. The query will contain one or more elements, all of which must match for a document to be included in the result set. Possible elements include $query, $orderby, $hint, $explain, and $snapshot. | keyword | +| mongodb.returnFieldsSelector | A JSON document that limits the fields in the returned documents. The returnFieldsSelector contains one or more elements, each of which is the name of a field that should be returned, and the integer value 1. | keyword | +| mongodb.selector | A BSON document that specifies the query for selecting the document to update or delete. | keyword | +| mongodb.startingFrom | Where in the cursor this reply is starting. | keyword | +| mongodb.update | A BSON document that specifies the update to be performed. For information on specifying updates, see the Update Operations documentation from the MongoDB Manual. | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +An example event for `mongodb` looks as following: + +```json +{ + "@timestamp": "2022-03-09T08:15:48.570Z", + "agent": { + "ephemeral_id": "fafaeb02-c623-46a0-a3e0-72e035bd12ba", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 50, + "ip": "127.0.0.1", + "port": 57203 + }, + "data_stream": { + "dataset": "network_traffic.mongodb", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 514, + "ip": "127.0.0.1", + "port": 27017 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.mongodb", + "duration": 1365900, + "end": "2022-03-09T08:15:48.571Z", + "ingested": "2022-03-09T08:15:49Z", + "kind": "event", + "start": "2022-03-09T08:15:48.570Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "method": "find", + "mongodb": { + "cursorId": 0, + "fullCollectionName": "test.restaurants", + "numberReturned": 1, + "numberToReturn": 1, + "numberToSkip": 0, + "startingFrom": 0 + }, + "network": { + "bytes": 564, + "community_id": "1:mYSTZ4QZBfvJO05Em9TnPwrae6g=", + "direction": "ingress", + "protocol": "mongodb", + "transport": "tcp", + "type": "ipv4" + }, + "query": "test.restaurants.find().limit(1)", + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "resource": "test.restaurants", + "server": { + "bytes": 514, + "ip": "127.0.0.1", + "port": 27017 + }, + "source": { + "bytes": 50, + "ip": "127.0.0.1", + "port": 57203 + }, + "status": "OK", + "type": "mongodb" +} +``` + +### MySQL + +**Configuration options** + +Also see [Common protocol options](#common-protocol-options). + +#### `max_rows` + +The maximum number of rows from the SQL message to publish to +Elasticsearch. The default is 10 rows. + +#### `max_row_length` + +The maximum length in bytes of a row from the SQL message to publish to +Elasticsearch. The default is 1024 bytes. + +### `statement_timeout` + +The duration for which prepared statements are cached after their last +use. Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h". The +default is `1h`. + +Fields published for MySQL packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| mysql.affected_rows | If the MySQL command is successful, this field contains the affected number of rows of the last statement. | long | +| mysql.error_code | The error code returned by MySQL. | long | +| mysql.error_message | The error info message returned by MySQL. | keyword | +| mysql.insert_id | If the INSERT query is successful, this field contains the id of the newly inserted row. | keyword | +| mysql.num_fields | If the SELECT query is successful, this field is set to the number of fields returned. | long | +| mysql.num_rows | If the SELECT query is successful, this field is set to the number of rows returned. | long | +| mysql.query | The row mysql query as read from the transaction's request. | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +An example event for `mysql` looks as following: + +```json +{ + "@timestamp": "2022-03-09T08:20:44.667Z", + "agent": { + "ephemeral_id": "43167926-7ebd-4acd-8216-daf3664fe286", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 23, + "ip": "127.0.0.1", + "port": 41517 + }, + "data_stream": { + "dataset": "network_traffic.mysql", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 3629, + "ip": "127.0.0.1", + "port": 3306 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.mysql", + "duration": 5532500, + "end": "2022-03-09T08:20:44.673Z", + "ingested": "2022-03-09T08:20:45Z", + "kind": "event", + "start": "2022-03-09T08:20:44.667Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "method": "SELECT", + "mysql": { + "affected_rows": 0, + "insert_id": 0, + "num_fields": 3, + "num_rows": 15 + }, + "network": { + "bytes": 3652, + "community_id": "1:goIcZn7CMIJ6W7Yf8JRV618zzxA=", + "direction": "ingress", + "protocol": "mysql", + "transport": "tcp", + "type": "ipv4" + }, + "path": "test.test", + "query": "select * from test", + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "server": { + "bytes": 3629, + "ip": "127.0.0.1", + "port": 3306 + }, + "source": { + "bytes": 23, + "ip": "127.0.0.1", + "port": 41517 + }, + "status": "OK", + "type": "mysql" +} +``` + +### NFS + +**Configuration options** + +See [Common protocol options](#common-protocol-options). + +Fields published for NFS packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.domain | The domain name of the client system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| group.id | Unique identifier for the group on the system/platform. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| nfs.minor_version | NFS protocol minor version number. | long | +| nfs.opcode | NFS operation name, or main operation name, in case of COMPOUND calls. | keyword | +| nfs.status | NFS operation reply status. | keyword | +| nfs.tag | NFS v4 COMPOUND operation tag. | keyword | +| nfs.version | NFS protocol version number. | long | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| rpc.auth_flavor | RPC authentication flavor. | keyword | +| rpc.cred.gid | RPC caller's group id, in case of auth-unix. | long | +| rpc.cred.gids | RPC caller's secondary group ids, in case of auth-unix. | long | +| rpc.cred.machinename | The name of the caller's machine. | keyword | +| rpc.cred.stamp | Arbitrary ID which the caller machine may generate. | long | +| rpc.cred.uid | RPC caller's user id, in case of auth-unix. | long | +| rpc.status | RPC message reply status. | keyword | +| rpc.xid | RPC message transaction identifier. | keyword | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.domain | The domain name of the source system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | +| user.id | Unique identifier of the user. | keyword | + + +An example event for `nfs` looks as following: + +```json +{ + "@timestamp": "2022-03-09T08:24:00.569Z", + "agent": { + "ephemeral_id": "62904593-11a1-4706-8487-78b14fb72c08", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 208, + "domain": "desycloud03.desy.de", + "ip": "131.169.5.156", + "port": 907 + }, + "data_stream": { + "dataset": "network_traffic.nfs", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 176, + "ip": "131.169.192.35", + "port": 2049 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "action": "nfs.CLOSE", + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.nfs", + "duration": 6573500, + "end": "2022-03-09T08:24:00.575Z", + "ingested": "2022-03-09T08:24:01Z", + "kind": "event", + "start": "2022-03-09T08:24:00.569Z", + "type": [ + "connection", + "protocol" + ] + }, + "group.id": 48, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "host.hostname": "desycloud03.desy.de", + "network": { + "bytes": 384, + "community_id": "1:cd5eLXemAsSPMdXwCbdDUWWud4M=", + "direction": "unknown", + "protocol": "nfsv4", + "transport": "tcp", + "type": "ipv4" + }, + "nfs": { + "minor_version": 1, + "opcode": "CLOSE", + "status": "NFS_OK", + "tag": "", + "version": 4 + }, + "related": { + "ip": [ + "131.169.5.156", + "131.169.192.35" + ] + }, + "rpc": { + "auth_flavor": "unix", + "cred": { + "gid": 48, + "gids": [ + 48 + ], + "machinename": "desycloud03.desy.de", + "stamp": 4308441, + "uid": 48 + }, + "status": "success", + "xid": "c3103fc1" + }, + "server": { + "bytes": 176, + "ip": "131.169.192.35", + "port": 2049 + }, + "source": { + "bytes": 208, + "domain": "desycloud03.desy.de", + "ip": "131.169.5.156", + "port": 907 + }, + "status": "OK", + "type": "nfs", + "user.id": 48 +} +``` + +### PostgreSQL + +**Configuration options** + +Also see [Common protocol options](#common-protocol-options). + +#### `max_rows` + +The maximum number of rows from the SQL message to publish to +Elasticsearch. The default is 10 rows. + +#### `max_row_length` + +The maximum length in bytes of a row from the SQL message to publish to +Elasticsearch. The default is 1024 bytes. + +Fields published for PostgreSQL packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| pgsql.error_code | The PostgreSQL error code. | keyword | +| pgsql.error_message | The PostgreSQL error message. | keyword | +| pgsql.error_severity | The PostgreSQL error severity. | keyword | +| pgsql.num_fields | If the SELECT query if successful, this field is set to the number of fields returned. | long | +| pgsql.num_rows | If the SELECT query if successful, this field is set to the number of rows returned. | long | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +An example event for `pgsql` looks as following: + +```json +{ + "@timestamp": "2022-03-09T08:29:39.675Z", + "agent": { + "ephemeral_id": "1e05998c-1d97-426b-8d9e-f5f92c446612", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 34, + "ip": "127.0.0.1", + "port": 34936 + }, + "data_stream": { + "dataset": "network_traffic.pgsql", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 3186, + "ip": "127.0.0.1", + "port": 5432 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.pgsql", + "duration": 2568100, + "end": "2022-03-09T08:29:39.678Z", + "ingested": "2022-03-09T08:29:40Z", + "kind": "event", + "start": "2022-03-09T08:29:39.675Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "method": "SELECT", + "network": { + "bytes": 3220, + "community_id": "1:WUuTzESSpZnUwZ2tuZKZtNOdHSU=", + "direction": "ingress", + "protocol": "pgsql", + "transport": "tcp", + "type": "ipv4" + }, + "pgsql": { + "num_fields": 3, + "num_rows": 15 + }, + "query": "select * from long_response", + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "server": { + "bytes": 3186, + "ip": "127.0.0.1", + "port": 5432 + }, + "source": { + "bytes": 34, + "ip": "127.0.0.1", + "port": 34936 + }, + "status": "OK", + "type": "pgsql" +} +``` + +### Redis + +**Configuration options** + +Also see [Common protocol options](#common-protocol-options). + +#### `queue_max_bytes` and `queue_max_messages` + +store requests in memory until a response is received. These settings +impose a limit on the number of bytes (`queue_max_bytes`) and number of +requests (`queue_max_messages`) that can be stored. These limits are +per-connection. The default is to queue up to 1MB or 20.000 requests per +connection, which allows to use request pipelining while at the same +time limiting the amount of memory consumed by replication sessions. + +Fields published for Redis packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.outcome | This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| redis.error | If the Redis command has resulted in an error, this field contains the error message returned by the Redis server. | keyword | +| redis.return_value | The return value of the Redis command in a human readable format. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +An example event for `redis` looks as following: + +```json +{ + "@timestamp": "2022-03-09T08:30:57.254Z", + "agent": { + "ephemeral_id": "b68277a8-8012-4ada-bbdd-6ce88a51c5ce", + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.0.0" + }, + "client": { + "bytes": 31, + "ip": "127.0.0.1", + "port": 32810 + }, + "data_stream": { + "dataset": "network_traffic.redis", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 5, + "ip": "127.0.0.1", + "port": 6380 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "f789afb0-558d-48bd-b448-0fc838efd730", + "snapshot": false, + "version": "8.0.0" + }, + "event": { + "action": "redis.set", + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.redis", + "duration": 1421600, + "end": "2022-03-09T08:30:57.256Z", + "ingested": "2022-03-09T08:30:58Z", + "kind": "event", + "start": "2022-03-09T08:30:57.254Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": true, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.176.7" + ], + "mac": [ + "02-42-C0-A8-B0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.47-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.3 LTS (Focal Fossa)" + } + }, + "method": "SET", + "network": { + "bytes": 36, + "community_id": "1:GuHlyWpX6bKkMXy19YkvZSNPTS4=", + "direction": "ingress", + "protocol": "redis", + "transport": "tcp", + "type": "ipv4" + }, + "query": "set key3 me", + "redis": { + "return_value": "OK" + }, + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "resource": "key3", + "server": { + "bytes": 5, + "ip": "127.0.0.1", + "port": 6380 + }, + "source": { + "bytes": 31, + "ip": "127.0.0.1", + "port": 32810 + }, + "status": "OK", + "type": "redis" +} +``` + +### SIP + +**Configuration options** + +Also see [Common protocol options](#common-protocol-options). + +#### `parse_authorization` + +If set to true Network Packet Capture will parse the authorization headers +and include them in events. The default is true. + +#### `parse_body` + +If set to true, Network Packet Capture parses the SIP body when the body +contains Session Description Protocol data. The default is true. + +Fields published for SIP packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.action | The action captured by the event. This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.outcome | This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. | keyword | +| event.reason | Reason why this event happened, according to the source. This describes the why of a particular action or outcome captured in the event. Where `event.action` captures the action from the event, `event.reason` describes why that action was taken. For example, a web proxy with an `event.action` which denied the request may also populate `event.reason` with the reason why (e.g. `blocked site`). | keyword | +| event.sequence | Sequence number of the event. The sequence number is a value published by some event sources, to make the exact ordering of events unambiguous, regardless of the timestamp precision. | long | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.application | When a specific application or service is identified from network connection details (source/dest IPs, ports, certificates, or wire format), this field captures the application's or service's name. For example, the original event identifies the network connection being from a specific web service in a `https` network connection, like `facebook` or `twitter`. The field value must be normalized to lowercase for querying. | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.iana_number | IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. | keyword | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| sip.accept | Accept header value. | keyword | +| sip.allow | Allowed methods. | keyword | +| sip.auth.realm | Auth realm | keyword | +| sip.auth.scheme | Auth scheme | keyword | +| sip.auth.uri.host | Auth URI host | keyword | +| sip.auth.uri.original | Auth original URI | keyword | +| sip.auth.uri.original.text | Multi-field of `sip.auth.uri.original`. | text | +| sip.auth.uri.port | Auth URI port | long | +| sip.auth.uri.scheme | Auth URI scheme | keyword | +| sip.call_id | Call ID. | keyword | +| sip.code | Response status code. | long | +| sip.contact.display_info | Contact display info | keyword | +| sip.contact.expires | Contact expires | keyword | +| sip.contact.line | Contact line | keyword | +| sip.contact.q | Contact Q | keyword | +| sip.contact.transport | Contact transport | keyword | +| sip.contact.uri.host | Contact URI host | keyword | +| sip.contact.uri.original | Contact original URI | keyword | +| sip.contact.uri.original.text | Multi-field of `sip.contact.uri.original`. | text | +| sip.contact.uri.port | Contact URI port | long | +| sip.contact.uri.scheme | Contat URI scheme | keyword | +| sip.contact.uri.username | Contact URI user name | keyword | +| sip.content_length | | long | +| sip.content_type | | keyword | +| sip.cseq.code | Sequence code. | long | +| sip.cseq.method | Sequence method. | keyword | +| sip.from.display_info | From display info | keyword | +| sip.from.tag | From tag | keyword | +| sip.from.uri.host | From URI host | keyword | +| sip.from.uri.original | From original URI | keyword | +| sip.from.uri.original.text | Multi-field of `sip.from.uri.original`. | text | +| sip.from.uri.port | From URI port | long | +| sip.from.uri.scheme | From URI scheme | keyword | +| sip.from.uri.username | From URI user name | keyword | +| sip.max_forwards | | long | +| sip.method | Request method. | keyword | +| sip.private.uri.host | Private URI host. | keyword | +| sip.private.uri.original | Private original URI. | keyword | +| sip.private.uri.original.text | Multi-field of `sip.private.uri.original`. | text | +| sip.private.uri.port | Private URI port. | long | +| sip.private.uri.scheme | Private URI scheme. | keyword | +| sip.private.uri.username | Private URI user name. | keyword | +| sip.sdp.body.original | SDP original body | keyword | +| sip.sdp.body.original.text | Multi-field of `sip.sdp.body.original`. | text | +| sip.sdp.connection.address | SDP connection address | keyword | +| sip.sdp.connection.info | SDP connection info | keyword | +| sip.sdp.owner.ip | SDP owner IP | ip | +| sip.sdp.owner.session_id | SDP owner session ID | keyword | +| sip.sdp.owner.username | SDP owner user name | keyword | +| sip.sdp.owner.version | SDP owner version | keyword | +| sip.sdp.session.name | SDP session name | keyword | +| sip.sdp.version | SDP version | keyword | +| sip.status | Response status phrase. | keyword | +| sip.supported | Supported methods. | keyword | +| sip.to.display_info | To display info | keyword | +| sip.to.tag | To tag | keyword | +| sip.to.uri.host | To URI host | keyword | +| sip.to.uri.original | To original URI | keyword | +| sip.to.uri.original.text | Multi-field of `sip.to.uri.original`. | text | +| sip.to.uri.port | To URI port | long | +| sip.to.uri.scheme | To URI scheme | keyword | +| sip.to.uri.username | To URI user name | keyword | +| sip.type | Either request or response. | keyword | +| sip.uri.host | The URI host. | keyword | +| sip.uri.original | The original URI. | keyword | +| sip.uri.original.text | Multi-field of `sip.uri.original`. | text | +| sip.uri.port | The URI port. | long | +| sip.uri.scheme | The URI scheme. | keyword | +| sip.uri.username | The URI user name. | keyword | +| sip.user_agent.original | | keyword | +| sip.user_agent.original.text | Multi-field of `sip.user_agent.original`. | text | +| sip.version | SIP protocol version. | keyword | +| sip.via.original | The original Via value. | keyword | +| sip.via.original.text | Multi-field of `sip.via.original`. | text | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | + + +An example event for `sip` looks as following: + +```json +{ + "@timestamp": "2022-05-13T07:10:35.715Z", + "agent": { + "ephemeral_id": "008322ce-0d84-45f0-beaf-153cf4786013", + "id": "a82e5ec9-4d24-4491-8d66-470aa321ddae", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.2.0" + }, + "client": { + "ip": "10.0.2.20", + "port": 5060 + }, + "data_stream": { + "dataset": "network_traffic.sip", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "ip": "10.0.2.15", + "port": 5060 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "a82e5ec9-4d24-4491-8d66-470aa321ddae", + "snapshot": false, + "version": "8.2.0" + }, + "event": { + "action": "sip-invite", + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.sip", + "duration": 0, + "end": "2022-05-13T07:10:35.715Z", + "ingested": "2022-05-13T07:10:39Z", + "kind": "event", + "original": "INVITE sip:test@10.0.2.15:5060 SIP/2.0\r\nVia: SIP/2.0/UDP 10.0.2.20:5060;branch=z9hG4bK-2187-1-0\r\nFrom: \"DVI4/8000\" \u003csip:sipp@10.0.2.20:5060\u003e;tag=1\r\nTo: test \u003csip:test@10.0.2.15:5060\u003e\r\nCall-ID: 1-2187@10.0.2.20\r\nCSeq: 1 INVITE\r\nContact: sip:sipp@10.0.2.20:5060\r\nMax-Forwards: 70\r\nContent-Type: application/sdp\r\nContent-Length: 123\r\n\r\nv=0\r\no=- 42 42 IN IP4 10.0.2.20\r\ns=-\r\nc=IN IP4 10.0.2.20\r\nt=0 0\r\nm=audio 6000 RTP/AVP 5\r\na=rtpmap:5 DVI4/8000\r\na=recvonly\r\n", + "sequence": 1, + "start": "2022-05-13T07:10:35.715Z", + "type": [ + "info" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "ip": [ + "172.31.0.7" + ], + "mac": [ + "02-42-AC-1F-00-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.104-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.4 LTS (Focal Fossa)" + } + }, + "network": { + "application": "sip", + "community_id": "1:xDRQZvk3ErEhBDslXv1c6EKI804=", + "direction": "unknown", + "iana_number": "17", + "protocol": "sip", + "transport": "udp", + "type": "ipv4" + }, + "related": { + "hosts": [ + "10.0.2.15", + "10.0.2.20" + ], + "ip": [ + "10.0.2.20", + "10.0.2.15" + ], + "user": [ + "test", + "sipp" + ] + }, + "server": { + "ip": "10.0.2.15", + "port": 5060 + }, + "sip": { + "call_id": "1-2187@10.0.2.20", + "contact": { + "display_info": "test", + "uri": { + "host": "10.0.2.15", + "original": "sip:test@10.0.2.15:5060", + "port": 5060, + "scheme": "sip", + "username": "test" + } + }, + "content_length": 123, + "content_type": "application/sdp", + "cseq": { + "code": 1, + "method": "INVITE" + }, + "from": { + "display_info": "DVI4/8000", + "tag": "1", + "uri": { + "host": "10.0.2.20", + "original": "sip:sipp@10.0.2.20:5060", + "port": 5060, + "scheme": "sip", + "username": "sipp" + } + }, + "max_forwards": 70, + "method": "INVITE", + "sdp": { + "body": { + "original": "v=0\r\no=- 42 42 IN IP4 10.0.2.20\r\ns=-\r\nc=IN IP4 10.0.2.20\r\nt=0 0\r\nm=audio 6000 RTP/AVP 5\r\na=rtpmap:5 DVI4/8000\r\na=recvonly\r\n" + }, + "connection": { + "address": "10.0.2.20", + "info": "IN IP4 10.0.2.20" + }, + "owner": { + "ip": "10.0.2.20", + "session_id": "42", + "version": "42" + }, + "version": "0" + }, + "to": { + "display_info": "test", + "uri": { + "host": "10.0.2.15", + "original": "sip:test@10.0.2.15:5060", + "port": 5060, + "scheme": "sip", + "username": "test" + } + }, + "type": "request", + "uri": { + "host": "10.0.2.15", + "original": "sip:test@10.0.2.15:5060", + "port": 5060, + "scheme": "sip", + "username": "test" + }, + "version": "2.0", + "via": { + "original": [ + "SIP/2.0/UDP 10.0.2.20:5060;branch=z9hG4bK-2187-1-0" + ] + } + }, + "source": { + "ip": "10.0.2.20", + "port": 5060 + }, + "status": "OK", + "type": "sip" +} +``` + +### Thrift + +[Apache Thrift](https://thrift.apache.org/) is a communication protocol +and RPC framework initially created at Facebook. It is sometimes used in +[microservices](http://martinfowler.com/articles/microservices.html) +architectures because it provides better performance when compared to +the more obvious HTTP/RESTful API choice, while still supporting a wide +range of programming languages and frameworks. + +Network Packet Capture works based on a copy of the traffic, which means that you +get performance management features without having to modify your +services in any way and without any latency overhead. Network Packet Capture +captures the transactions from the network and indexes them in +Elasticsearch so that they can be analyzed and searched. + +Network Packet Capture indexes the method, parameters, return value, and exceptions +of each Thrift-RPC call. You can search by and create statistics based +on any of these fields. Network Packet Capture automatically fills in the `status` +column with either `OK` or `Error`, so it’s easy to find the problematic +RPC calls. A transaction is put into the `Error` state if it returned an +exception. + +Network Packet Capture also indexes the `event.duration` field so you can get +performance analytics and find the slow RPC calls. + +Thrift supports multiple [transport and protocol +types](http://en.wikipedia.org/wiki/Apache_Thrift). Currently Network Packet Capture +supports the default `TSocket` transport as well as the `TFramed` +transport. From the protocol point of view, Network Packet Capture currently +supports only the default `TBinary` protocol. + +Network Packet Capture also has several configuration options that allow you to get +the right balance between visibility, disk usage, and data protection. +You can, for example, choose to obfuscate all strings or to store the +requests but not the responses, while still capturing the response time +for each of the RPC calls. You can also choose to limit the size of +strings and lists to a given number of elements, so you can fine tune +how much data you want to have stored in Elasticsearch. + +The Thrift protocol has several specific configuration options. + +Providing the Thrift IDL files to Network Packet Capture is optional. The binary +Thrift messages include the called method name and enough structural +information to decode the messages without needing the IDL files. +However, if you provide the IDL files, Network Packet Capture can also resolve the +service name, arguments, and exception names. + +**Configuration options** + +Also see [Common protocol options](#common-protocol-options). + +#### `transport_type` + +The Thrift transport type. Currently this option accepts the values +`socket` for TSocket, which is the default Thrift transport, and +`framed` for the TFramed Thrift transport. The default is `socket`. + +#### `protocol_type` + +The Thrift protocol type. Currently the only accepted value is `binary` +for the TBinary protocol, which is the default Thrift protocol. + +#### `idl_files` + +The Thrift interface description language (IDL) files for the service +that Network Packet Capture is monitoring. Providing the IDL files is optional, +because the Thrift messages contain enough information to decode them +without having the IDL files. However, providing the IDL enables +Network Packet Capture to include parameter and exception names. + +#### `string_max_size` + +The maximum length for strings in parameters or return values. If a +string is longer than this value, the string is automatically truncated +to this length. Network Packet Capture adds dots at the end of the string to mark +that it was truncated. The default is 200. + +#### `collection_max_size` + +The maximum number of elements in a Thrift list, set, map, or structure. +If a collection has more elements than this value, Network Packet Capture captures +only the specified number of elements. Network Packet Capture adds a fictive last +element `...` to the end of the collection to mark that it was +truncated. The default is 15. + +#### `capture_reply` + +If this option is set to false, Network Packet Capture decodes the method name from +the reply and simply skips the rest of the response message. This +setting can be useful for performance, disk usage, or data retention +reasons. The default is true. + +#### `obfuscate_strings` + +If this option is set to true, Network Packet Capture replaces all strings found in +method parameters, return codes, or exception structures with the `"*"` +string. + +#### `drop_after_n_struct_fields` + +The maximum number of fields that a structure can have before Network Packet Capture +ignores the whole transaction. This is a memory protection mechanism (so +that Network Packet Capture’s memory doesn’t grow indefinitely), so you would +typically set this to a relatively high value. The default is 500. + +Fields published for Thrift packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| thrift.exceptions | If the call resulted in exceptions, this field contains the exceptions in a human readable format. | keyword | +| thrift.params | The RPC method call parameters in a human readable format. If the IDL files are available, the parameters use names whenever possible. Otherwise, the IDs from the message are used. | keyword | +| thrift.return_value | The value returned by the Thrift-RPC call. This is encoded in a human readable format. | keyword | +| thrift.service | The name of the Thrift-RPC service as defined in the IDL files. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +An example event for `thrift` looks as following: + +```json +{ + "@timestamp": "2022-05-23T10:59:35.668Z", + "agent": { + "ephemeral_id": "016dcea4-c82a-4499-9069-e4e0ff6d04ff", + "id": "0488c467-eaa0-4733-a81a-326734926bc2", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.2.0" + }, + "client": { + "bytes": 25, + "ip": "127.0.0.1", + "port": 50919 + }, + "data_stream": { + "dataset": "network_traffic.thrift", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "bytes": 25, + "ip": "127.0.0.1", + "port": 9090 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0488c467-eaa0-4733-a81a-326734926bc2", + "snapshot": false, + "version": "8.2.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.thrift", + "duration": 1275700, + "end": "2022-05-23T10:59:35.669Z", + "ingested": "2022-05-23T10:59:36Z", + "kind": "event", + "start": "2022-05-23T10:59:35.668Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.224.7" + ], + "mac": [ + "02-42-C0-A8-E0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.104-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.4 LTS (Focal Fossa)" + } + }, + "method": "testByte", + "network": { + "bytes": 50, + "community_id": "1:fs+HuhTN3hqKiWHtoK/DsQ0ni5Y=", + "direction": "ingress", + "protocol": "thrift", + "transport": "tcp", + "type": "ipv4" + }, + "path": "", + "query": "testByte(1: 63)", + "related": { + "ip": [ + "127.0.0.1" + ] + }, + "server": { + "bytes": 25, + "ip": "127.0.0.1", + "port": 9090 + }, + "source": { + "bytes": 25, + "ip": "127.0.0.1", + "port": 50919 + }, + "status": "OK", + "thrift": { + "params": "(1: 63)", + "return_value": "63" + }, + "type": "thrift" +} +``` + +### TLS + +TLS is a cryptographic protocol that provides secure communications on +top of an existing application protocol, like HTTP or MySQL. + +Network Packet Capture intercepts the initial handshake in a TLS connection and +extracts useful information that helps operators diagnose problems and +strengthen the security of their network and systems. It does not +decrypt any information from the encapsulated protocol, nor does it +reveal any sensitive information such as cryptographic keys. TLS +versions 1.0 to 1.3 are supported. + +It works by intercepting the client and server "hello" messages, which +contain the negotiated parameters for the connection such as +cryptographic ciphers and protocol versions. It can also intercept TLS +alerts, which are sent by one of the parties to signal a problem with +the negotiation, such as an expired certificate or a cryptographic +error. + +Detailed information that is not defined in ECS is added under the +`tls.detailed` key. The [`include_detailed_fields`](#include_detailed_fields) configuration flag +is used to control whether this information is exported. + +The fields under `tls.detailed.client_hello` contain the algorithms and +extensions supported by the client, as well as the maximum TLS version +it supports. + +Fields under `tls.detailed.server_hello` contain the final settings for +the TLS session: The selected cipher, compression method, TLS version to +use and other extensions such as application layer protocol negotiation +(ALPN). + +**Configuration options** + +The `send_certificates` and `include_detailed_fields` settings are +useful for limiting the amount of data Network Packet Capture indexes, as multiple +certificates are usually exchanged in a single transaction, and those +can take a considerable amount of storage. + +Also see [Common protocol options](#common-protocol-options). + +#### `send_certificates` + +This setting causes information about the certificates presented by the +client and server to be included in the detailed fields. The server’s +certificate is indexed under `tls.detailed.server_certificate` and its +certification chain under `tls.detailed.server_certificate_chain`. For +the client, the `client_certificate` and `client_certificate_chain` +fields are used. The default is true. + +#### `include_raw_certificates` + +You can set `include_raw_certificates` to include the raw certificate +chains encoded in PEM format, under the `tls.server.certificate_chain` +and `tls.client.certificate_chain` fields. The default is false. + +#### `include_detailed_fields` + +Controls whether the [https://www.elastic.co/guide/en/beats/packetbeat/current/exported-fields-tls_detailed.html](#exported-fields-tls_detailed) are added to exported documents. When +set to false, only [ECS TLS](https://www.elastic.co/guide/en/ecs/8.2/ecs-tls.html) fields are included. +exported are included. The default is `true`. + +#### `fingerprints` + +Defines a list of hash algorithms to calculate the certificate’s +fingerprints. Valid values are `sha1`, `sha256` and `md5`. + +The default is to output SHA-1 fingerprints. + +Fields published for TLS packets. + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| client.bytes | Bytes sent from the client to the server. | long | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.port | Port of the client. | long | +| client.process.args | The command-line of the process that initiated the transaction. | keyword | +| client.process.executable | Absolute path to the client process executable. | keyword | +| client.process.name | The name of the process that initiated the transaction. | keyword | +| client.process.start | The time the client process started. | date | +| client.process.working_directory | The working directory of the client process. | keyword | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.domain | The domain name of the destination system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.duration | Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. | long | +| event.end | event.end contains the date when the event ended or when the activity was last observed. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| flow.final | Indicates if event is last event in flow. If final is false, the event reports an intermediate flow state only. | boolean | +| flow.id | Internal flow ID based on connection meta data and address. | keyword | +| flow.vlan | VLAN identifier from the 802.1q frame. In case of a multi-tagged frame this field will be an array with the outer tag's VLAN identifier listed first. | long | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| method | The command/verb/method of the transaction. For HTTP, this is the method name (GET, POST, PUT, and so on), for SQL this is the verb (SELECT, UPDATE, DELETE, and so on). | keyword | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.forwarded_ip | Host IP address when the source IP address is the proxy. | ip | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| params | The request parameters. For HTTP, these are the POST or GET parameters. For Thrift-RPC, these are the parameters from the request. | text | +| path | The path the transaction refers to. For HTTP, this is the URL. For SQL databases, this is the table name. For key-value stores, this is the key. | keyword | +| query | The query in a human readable format. For HTTP, it will typically be something like `GET /users/_search?name=test`. For MySQL, it is something like `SELECT id from users where name=test`. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| request | For text protocols, this is the request as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| resource | The logical resource that this transaction refers to. For HTTP, this is the URL path up to the last slash (/). For example, if the URL is `/users/1`, the resource is `/users`. For databases, the resource is typically the table name. The field is not filled for all transaction types. | keyword | +| response | For text protocols, this is the response as seen on the wire (application layer only). For binary protocols this is our representation of the request. | text | +| server.bytes | Bytes sent from the server to the client. | long | +| server.domain | The domain name of the server system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| server.ip | IP address of the server (IPv4 or IPv6). | ip | +| server.port | Port of the server. | long | +| server.process.args | The command-line of the process that served the transaction. | keyword | +| server.process.executable | Absolute path to the server process executable. | keyword | +| server.process.name | The name of the process that served the transaction. | keyword | +| server.process.start | The time the server process started. | date | +| server.process.working_directory | The working directory of the server process. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| status | The high level status of the transaction. The way to compute this value depends on the protocol, but the result has a meaning independent of the protocol. | keyword | +| tls.cipher | String indicating the cipher used during the current connection. | keyword | +| tls.client.certificate | PEM-encoded stand-alone certificate offered by the client. This is usually mutually-exclusive of `client.certificate_chain` since this value also exists in that list. | keyword | +| tls.client.certificate_chain | Array of PEM-encoded certificates that make up the certificate chain offered by the client. This is usually mutually-exclusive of `client.certificate` since that value should be the first certificate in the chain. | keyword | +| tls.client.hash.md5 | Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash. | keyword | +| tls.client.hash.sha1 | Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash. | keyword | +| tls.client.hash.sha256 | Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the client. For consistency with other hash values, this value should be formatted as an uppercase hash. | keyword | +| tls.client.issuer | Distinguished name of subject of the issuer of the x.509 certificate presented by the client. | keyword | +| tls.client.ja3 | A hash that identifies clients based on how they perform an SSL/TLS handshake. | keyword | +| tls.client.not_after | Date/Time indicating when client certificate is no longer considered valid. | date | +| tls.client.not_before | Date/Time indicating when client certificate is first considered valid. | date | +| tls.client.server_name | Also called an SNI, this tells the server which hostname to which the client is attempting to connect to. When this value is available, it should get copied to `destination.domain`. | keyword | +| tls.client.subject | Distinguished name of subject of the x.509 certificate presented by the client. | keyword | +| tls.client.supported_ciphers | Array of ciphers offered by the client during the client hello. | keyword | +| tls.client.x509.alternative_names | List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. | keyword | +| tls.client.x509.issuer.common_name | List of common name (CN) of issuing certificate authority. | keyword | +| tls.client.x509.issuer.country | List of country (C) codes | keyword | +| tls.client.x509.issuer.distinguished_name | Distinguished name (DN) of issuing certificate authority. | keyword | +| tls.client.x509.issuer.locality | List of locality names (L) | keyword | +| tls.client.x509.issuer.organization | List of organizations (O) of issuing certificate authority. | keyword | +| tls.client.x509.issuer.organizational_unit | List of organizational units (OU) of issuing certificate authority. | keyword | +| tls.client.x509.issuer.state_or_province | List of state or province names (ST, S, or P) | keyword | +| tls.client.x509.not_after | Time at which the certificate is no longer considered valid. | date | +| tls.client.x509.not_before | Time at which the certificate is first considered valid. | date | +| tls.client.x509.public_key_algorithm | Algorithm used to generate the public key. | keyword | +| tls.client.x509.public_key_curve | The curve used by the elliptic curve public key algorithm. This is algorithm specific. | keyword | +| tls.client.x509.public_key_exponent | Exponent used to derive the public key. This is algorithm specific. | long | +| tls.client.x509.public_key_size | The size of the public key space in bits. | long | +| tls.client.x509.serial_number | Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. | keyword | +| tls.client.x509.signature_algorithm | Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353. | keyword | +| tls.client.x509.subject.common_name | List of common names (CN) of subject. | keyword | +| tls.client.x509.subject.country | List of country (C) code | keyword | +| tls.client.x509.subject.distinguished_name | Distinguished name (DN) of the certificate subject entity. | keyword | +| tls.client.x509.subject.locality | List of locality names (L) | keyword | +| tls.client.x509.subject.organization | List of organizations (O) of subject. | keyword | +| tls.client.x509.subject.organizational_unit | List of organizational units (OU) of subject. | keyword | +| tls.client.x509.subject.state_or_province | List of state or province names (ST, S, or P) | keyword | +| tls.client.x509.version_number | Version of x509 format. | keyword | +| tls.curve | String indicating the curve used for the given cipher, when applicable. | keyword | +| tls.detailed.alert_types | An array containing the TLS alert type for every alert received. | keyword | +| tls.detailed.client_certificate_chain | Chain of trust for the client certificate. | array | +| tls.detailed.client_certificate_requested | Whether the server has requested the client to authenticate itself using a client certificate. | boolean | +| tls.detailed.client_hello.extensions._unparsed_ | List of extensions that were left unparsed by Packetbeat. | keyword | +| tls.detailed.client_hello.extensions.application_layer_protocol_negotiation | List of application-layer protocols the client is willing to use. | keyword | +| tls.detailed.client_hello.extensions.ec_points_formats | List of Elliptic Curve (EC) point formats. Indicates the set of point formats that the client can parse. | keyword | +| tls.detailed.client_hello.extensions.server_name_indication | List of hostnames | keyword | +| tls.detailed.client_hello.extensions.session_ticket | Length of the session ticket, if provided, or an empty string to advertise support for tickets. | keyword | +| tls.detailed.client_hello.extensions.signature_algorithms | List of signature algorithms that may be use in digital signatures. | keyword | +| tls.detailed.client_hello.extensions.status_request.request_extensions | The number of certificate extensions for the request. | short | +| tls.detailed.client_hello.extensions.status_request.responder_id_list_length | The length of the list of trusted responders. | short | +| tls.detailed.client_hello.extensions.status_request.type | The type of the status request. Always "ocsp" if present. | keyword | +| tls.detailed.client_hello.extensions.supported_groups | List of Elliptic Curve Cryptography (ECC) curve groups supported by the client. | keyword | +| tls.detailed.client_hello.extensions.supported_versions | List of TLS versions that the client is willing to use. | keyword | +| tls.detailed.client_hello.random | Random data used by the TLS protocol to generate the encryption key. | keyword | +| tls.detailed.client_hello.session_id | Unique number to identify the session for the corresponding connection with the client. | keyword | +| tls.detailed.client_hello.supported_compression_methods | The list of compression methods the client supports. See https://www.iana.org/assignments/comp-meth-ids/comp-meth-ids.xhtml | keyword | +| tls.detailed.client_hello.version | The version of the TLS protocol by which the client wishes to communicate during this session. | keyword | +| tls.detailed.ocsp_response | The result of an OCSP request. | keyword | +| tls.detailed.resumption_method | If the session has been resumed, the underlying method used. One of "id" for TLS session ID or "ticket" for TLS ticket extension. | keyword | +| tls.detailed.server_certificate_chain | Chain of trust for the server certificate. | array | +| tls.detailed.server_hello.extensions._unparsed_ | List of extensions that were left unparsed by Packetbeat. | keyword | +| tls.detailed.server_hello.extensions.application_layer_protocol_negotiation | Negotiated application layer protocol | keyword | +| tls.detailed.server_hello.extensions.ec_points_formats | List of Elliptic Curve (EC) point formats. Indicates the set of point formats that the server can parse. | keyword | +| tls.detailed.server_hello.extensions.session_ticket | Used to announce that a session ticket will be provided by the server. Always an empty string. | keyword | +| tls.detailed.server_hello.extensions.status_request.response | Whether a certificate status request response was made. | boolean | +| tls.detailed.server_hello.extensions.supported_versions | Negotiated TLS version to be used. | keyword | +| tls.detailed.server_hello.random | Random data used by the TLS protocol to generate the encryption key. | keyword | +| tls.detailed.server_hello.selected_compression_method | The compression method selected by the server from the list provided in the client hello. | keyword | +| tls.detailed.server_hello.session_id | Unique number to identify the session for the corresponding connection with the client. | keyword | +| tls.detailed.server_hello.version | The version of the TLS protocol that is used for this session. It is the highest version supported by the server not exceeding the version requested in the client hello. | keyword | +| tls.detailed.version | The version of the TLS protocol used. | keyword | +| tls.established | Boolean flag indicating if the TLS negotiation was successful and transitioned to an encrypted tunnel. | boolean | +| tls.next_protocol | String indicating the protocol being tunneled. Per the values in the IANA registry (https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids), this string should be lower case. | keyword | +| tls.resumed | Boolean flag indicating if this TLS connection was resumed from an existing TLS negotiation. | boolean | +| tls.server.certificate | PEM-encoded stand-alone certificate offered by the server. This is usually mutually-exclusive of `server.certificate_chain` since this value also exists in that list. | keyword | +| tls.server.certificate_chain | Array of PEM-encoded certificates that make up the certificate chain offered by the server. This is usually mutually-exclusive of `server.certificate` since that value should be the first certificate in the chain. | keyword | +| tls.server.hash.md5 | Certificate fingerprint using the MD5 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash. | keyword | +| tls.server.hash.sha1 | Certificate fingerprint using the SHA1 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash. | keyword | +| tls.server.hash.sha256 | Certificate fingerprint using the SHA256 digest of DER-encoded version of certificate offered by the server. For consistency with other hash values, this value should be formatted as an uppercase hash. | keyword | +| tls.server.issuer | Subject of the issuer of the x.509 certificate presented by the server. | keyword | +| tls.server.ja3s | A hash that identifies servers based on how they perform an SSL/TLS handshake. | keyword | +| tls.server.not_after | Timestamp indicating when server certificate is no longer considered valid. | date | +| tls.server.not_before | Timestamp indicating when server certificate is first considered valid. | date | +| tls.server.subject | Subject of the x.509 certificate presented by the server. | keyword | +| tls.server.x509.alternative_names | List of subject alternative names (SAN). Name types vary by certificate authority and certificate type but commonly contain IP addresses, DNS names (and wildcards), and email addresses. | keyword | +| tls.server.x509.issuer.common_name | List of common name (CN) of issuing certificate authority. | keyword | +| tls.server.x509.issuer.country | List of country (C) codes | keyword | +| tls.server.x509.issuer.distinguished_name | Distinguished name (DN) of issuing certificate authority. | keyword | +| tls.server.x509.issuer.locality | List of locality names (L) | keyword | +| tls.server.x509.issuer.organization | List of organizations (O) of issuing certificate authority. | keyword | +| tls.server.x509.issuer.organizational_unit | List of organizational units (OU) of issuing certificate authority. | keyword | +| tls.server.x509.issuer.state_or_province | List of state or province names (ST, S, or P) | keyword | +| tls.server.x509.not_after | Time at which the certificate is no longer considered valid. | date | +| tls.server.x509.not_before | Time at which the certificate is first considered valid. | date | +| tls.server.x509.public_key_algorithm | Algorithm used to generate the public key. | keyword | +| tls.server.x509.public_key_curve | The curve used by the elliptic curve public key algorithm. This is algorithm specific. | keyword | +| tls.server.x509.public_key_exponent | Exponent used to derive the public key. This is algorithm specific. | long | +| tls.server.x509.public_key_size | The size of the public key space in bits. | long | +| tls.server.x509.serial_number | Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. | keyword | +| tls.server.x509.signature_algorithm | Identifier for certificate signature algorithm. We recommend using names found in Go Lang Crypto library. See https://github.com/golang/go/blob/go1.14/src/crypto/x509/x509.go#L337-L353. | keyword | +| tls.server.x509.subject.common_name | List of common names (CN) of subject. | keyword | +| tls.server.x509.subject.country | List of country (C) code | keyword | +| tls.server.x509.subject.distinguished_name | Distinguished name (DN) of the certificate subject entity. | keyword | +| tls.server.x509.subject.locality | List of locality names (L) | keyword | +| tls.server.x509.subject.organization | List of organizations (O) of subject. | keyword | +| tls.server.x509.subject.organizational_unit | List of organizational units (OU) of subject. | keyword | +| tls.server.x509.subject.state_or_province | List of state or province names (ST, S, or P) | keyword | +| tls.server.x509.version_number | Version of x509 format. | keyword | +| tls.version | Numeric part of the version parsed from the original string. | keyword | +| tls.version_protocol | Normalized lowercase protocol name parsed from original string. | keyword | +| type | The type of the transaction (for example, HTTP, MySQL, Redis, or RUM) or "flow" in case of flows. | keyword | + + +An example event for `tls` looks as following: + +```json +{ + "@timestamp": "2022-05-23T11:01:14.376Z", + "agent": { + "ephemeral_id": "d7d5fdf6-998d-488e-bfb7-176a86d6860d", + "id": "0488c467-eaa0-4733-a81a-326734926bc2", + "name": "docker-fleet-agent", + "type": "packetbeat", + "version": "8.2.0" + }, + "client": { + "ip": "192.168.1.35", + "port": 59455 + }, + "data_stream": { + "dataset": "network_traffic.tls", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "domain": "example.net", + "ip": "93.184.216.34", + "port": 443 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0488c467-eaa0-4733-a81a-326734926bc2", + "snapshot": false, + "version": "8.2.0" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "network" + ], + "dataset": "network_traffic.tls", + "duration": 365887700, + "end": "2022-05-23T11:01:14.741Z", + "ingested": "2022-05-23T11:01:17Z", + "kind": "event", + "start": "2022-05-23T11:01:14.376Z", + "type": [ + "connection", + "protocol" + ] + }, + "host": { + "architecture": "x86_64", + "containerized": false, + "hostname": "docker-fleet-agent", + "ip": [ + "192.168.224.7" + ], + "mac": [ + "02-42-C0-A8-E0-07" + ], + "name": "docker-fleet-agent", + "os": { + "codename": "focal", + "family": "debian", + "kernel": "5.10.104-linuxkit", + "name": "Ubuntu", + "platform": "ubuntu", + "type": "linux", + "version": "20.04.4 LTS (Focal Fossa)" + } + }, + "network": { + "community_id": "1:fx1jENdlg6r3LIvBRG3wEboWbPY=", + "direction": "unknown", + "protocol": "tls", + "transport": "tcp", + "type": "ipv4" + }, + "related": { + "ip": [ + "192.168.1.35", + "93.184.216.34" + ] + }, + "server": { + "domain": "example.net", + "ip": "93.184.216.34", + "port": 443 + }, + "source": { + "ip": "192.168.1.35", + "port": 59455 + }, + "status": "OK", + "tls": { + "cipher": "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "client": { + "ja3": "e6573e91e6eb777c0933c5b8f97f10cd", + "server_name": "example.net", + "supported_ciphers": [ + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384", + "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384", + "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", + "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256", + "TLS_DHE_RSA_WITH_AES_256_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", + "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", + "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256", + "(unknown:0xff85)", + "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256", + "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA", + "TLS_GOSTR341001_WITH_28147_CNT_IMIT", + "TLS_RSA_WITH_AES_256_GCM_SHA384", + "TLS_RSA_WITH_AES_256_CBC_SHA256", + "TLS_RSA_WITH_AES_256_CBC_SHA", + "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256", + "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", + "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", + "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256", + "TLS_DHE_RSA_WITH_AES_128_CBC_SHA", + "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256", + "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA", + "TLS_RSA_WITH_AES_128_GCM_SHA256", + "TLS_RSA_WITH_AES_128_CBC_SHA256", + "TLS_RSA_WITH_AES_128_CBC_SHA", + "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256", + "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA", + "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA", + "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" + ] + }, + "detailed": { + "client_certificate_requested": false, + "client_hello": { + "extensions": { + "application_layer_protocol_negotiation": [ + "h2", + "http/1.1" + ], + "ec_points_formats": [ + "uncompressed" + ], + "server_name_indication": [ + "example.net" + ], + "signature_algorithms": [ + "rsa_pkcs1_sha512", + "ecdsa_secp521r1_sha512", + "(unknown:0xefef)", + "rsa_pkcs1_sha384", + "ecdsa_secp384r1_sha384", + "rsa_pkcs1_sha256", + "ecdsa_secp256r1_sha256", + "(unknown:0xeeee)", + "(unknown:0xeded)", + "(unknown:0x0301)", + "(unknown:0x0303)", + "rsa_pkcs1_sha1", + "ecdsa_sha1" + ], + "supported_groups": [ + "x25519", + "secp256r1", + "secp384r1" + ] + }, + "random": "d7c809b4ac3a60b62f53c9d9366ca89a703d25491ff2a246a89f32f945f7b42b", + "supported_compression_methods": [ + "NULL" + ], + "version": "3.3" + }, + "server_certificate_chain": [ + { + "issuer": { + "common_name": "DigiCert Global Root CA", + "country": "US", + "distinguished_name": "CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US", + "organization": "DigiCert Inc", + "organizational_unit": "www.digicert.com" + }, + "not_after": "2023-03-08T12:00:00.000Z", + "not_before": "2013-03-08T12:00:00.000Z", + "public_key_algorithm": "RSA", + "public_key_size": 2048, + "serial_number": "2646203786665923649276728595390119057", + "signature_algorithm": "SHA256-RSA", + "subject": { + "common_name": "DigiCert SHA2 Secure Server CA", + "country": "US", + "distinguished_name": "CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US", + "organization": "DigiCert Inc" + }, + "version_number": 3 + }, + { + "issuer": { + "common_name": "DigiCert Global Root CA", + "country": "US", + "distinguished_name": "CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US", + "organization": "DigiCert Inc", + "organizational_unit": "www.digicert.com" + }, + "not_after": "2031-11-10T00:00:00.000Z", + "not_before": "2006-11-10T00:00:00.000Z", + "public_key_algorithm": "RSA", + "public_key_size": 2048, + "serial_number": "10944719598952040374951832963794454346", + "signature_algorithm": "SHA1-RSA", + "subject": { + "common_name": "DigiCert Global Root CA", + "country": "US", + "distinguished_name": "CN=DigiCert Global Root CA,OU=www.digicert.com,O=DigiCert Inc,C=US", + "organization": "DigiCert Inc", + "organizational_unit": "www.digicert.com" + }, + "version_number": 3 + } + ], + "server_hello": { + "extensions": { + "_unparsed_": [ + "renegotiation_info", + "server_name_indication" + ], + "application_layer_protocol_negotiation": [ + "h2" + ], + "ec_points_formats": [ + "uncompressed", + "ansiX962_compressed_prime", + "ansiX962_compressed_char2" + ] + }, + "random": "d1fd553a5a270f08e09eda6690fb3c8f9884e9a9fe7949e9444f574e47524401", + "selected_compression_method": "NULL", + "session_id": "23bb2aed5d215e1228220b0a51d7aa220785e9e4b83b4f430229117971e9913f", + "version": "3.3" + }, + "version": "TLS 1.2" + }, + "established": true, + "next_protocol": "h2", + "resumed": false, + "server": { + "hash": { + "sha1": "7BB698386970363D2919CC5772846984FFD4A889" + }, + "issuer": "CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US", + "not_after": "2020-12-02T12:00:00.000Z", + "not_before": "2018-11-28T00:00:00.000Z", + "subject": "CN=www.example.org,OU=Technology,O=Internet Corporation for Assigned Names and Numbers,L=Los Angeles,ST=California,C=US", + "x509": { + "alternative_names": [ + "www.example.org", + "example.com", + "example.edu", + "example.net", + "example.org", + "www.example.com", + "www.example.edu", + "www.example.net" + ], + "issuer": { + "common_name": "DigiCert SHA2 Secure Server CA", + "country": "US", + "distinguished_name": "CN=DigiCert SHA2 Secure Server CA,O=DigiCert Inc,C=US", + "organization": "DigiCert Inc" + }, + "not_after": "2020-12-02T12:00:00.000Z", + "not_before": "2018-11-28T00:00:00.000Z", + "public_key_algorithm": "RSA", + "public_key_size": 2048, + "serial_number": "21020869104500376438182461249190639870", + "signature_algorithm": "SHA256-RSA", + "subject": { + "common_name": "www.example.org", + "country": "US", + "distinguished_name": "CN=www.example.org,OU=Technology,O=Internet Corporation for Assigned Names and Numbers,L=Los Angeles,ST=California,C=US", + "locality": "Los Angeles", + "organization": "Internet Corporation for Assigned Names and Numbers", + "organizational_unit": "Technology", + "state_or_province": "California" + }, + "version_number": "3" + } + }, + "version": "1.2", + "version_protocol": "tls" + }, + "type": "tls" +} +``` + +## Licensing for Windows Systems + +The Network Packet Capture Integration incorporates a bundled Npcap installation on Windows hosts. The installation is provided under an [OEM license](https://npcap.com/oem/redist.html) from Insecure.Com LLC ("The Nmap Project"). \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-65120940-1454-11e9-9de0-f98d1808db8e.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-65120940-1454-11e9-9de0-f98d1808db8e.json new file mode 100755 index 0000000000..16f534dd5e --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-65120940-1454-11e9-9de0-f98d1808db8e.json @@ -0,0 +1,57 @@ +{ + "attributes": { + "description": "Overview of DNS request and response metrics.", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"1\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"panelRefName\":\"panel_0\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"2\",\"panelRefName\":\"panel_1\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3\",\"w\":13,\"x\":0,\"y\":15},\"panelIndex\":\"3\",\"panelRefName\":\"panel_2\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"5\",\"panelRefName\":\"panel_3\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"6\",\"panelRefName\":\"panel_4\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"7\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"7\",\"panelRefName\":\"panel_5\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8\",\"w\":11,\"x\":13,\"y\":15},\"panelIndex\":\"8\",\"panelRefName\":\"panel_6\",\"version\":\"7.0.0-SNAPSHOT\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] DNS Overview", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-65120940-1454-11e9-9de0-f98d1808db8e", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-dns-query-summary", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "network_traffic-dns-request-status-over-time", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "network_traffic-dns-question-types", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "network_traffic-dns-top-10-questions", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "network_traffic-dns-response-codes", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "network_traffic-735d25c0-1459-11e9-9de0-f98d1808db8e", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "network_traffic-bacb6ed0-1459-11e9-9de0-f98d1808db8e", + "name": "panel_6", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-a7b35890-8baa-11e8-9676-ef67484126fb.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-a7b35890-8baa-11e8-9676-ef67484126fb.json new file mode 100755 index 0000000000..7562508a09 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-a7b35890-8baa-11e8-9676-ef67484126fb.json @@ -0,0 +1,57 @@ +{ + "attributes": { + "description": "DHCPv4 Overview", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}" + }, + "optionsJSON": "{\"darkTheme\":false,\"hidePanelTitles\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":9,\"i\":\"1\",\"w\":48,\"x\":0,\"y\":7},\"panelIndex\":\"1\",\"panelRefName\":\"panel_1\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":7,\"i\":\"2\",\"w\":8,\"x\":0,\"y\":0},\"panelIndex\":\"2\",\"panelRefName\":\"panel_2\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":7,\"i\":\"3\",\"w\":11,\"x\":37,\"y\":0},\"panelIndex\":\"3\",\"panelRefName\":\"panel_3\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":14,\"i\":\"5\",\"w\":48,\"x\":0,\"y\":16},\"panelIndex\":\"5\",\"panelRefName\":\"panel_5\",\"type\":\"search\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":7,\"i\":\"6\",\"w\":8,\"x\":8,\"y\":0},\"panelIndex\":\"6\",\"panelRefName\":\"panel_6\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":7,\"i\":\"7\",\"w\":8,\"x\":16,\"y\":0},\"panelIndex\":\"7\",\"panelRefName\":\"panel_7\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":7,\"i\":\"8\",\"w\":13,\"x\":24,\"y\":0},\"panelIndex\":\"8\",\"panelRefName\":\"panel_8\",\"type\":\"visualization\",\"version\":\"7.3.0\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] DHCPv4", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-a7b35890-8baa-11e8-9676-ef67484126fb", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-8460fcd0-8baa-11e8-9676-ef67484126fb", + "name": "1:panel_1", + "type": "visualization" + }, + { + "id": "network_traffic-4ad9db20-8bab-11e8-9676-ef67484126fb", + "name": "2:panel_2", + "type": "visualization" + }, + { + "id": "network_traffic-418dfbe0-8bac-11e8-9676-ef67484126fb", + "name": "3:panel_3", + "type": "visualization" + }, + { + "id": "network_traffic-b8992150-8ba8-11e8-9676-ef67484126fb", + "name": "5:panel_5", + "type": "search" + }, + { + "id": "network_traffic-d0120dc0-8bac-11e8-9676-ef67484126fb", + "name": "6:panel_6", + "type": "visualization" + }, + { + "id": "network_traffic-11d33ea0-8bad-11e8-9676-ef67484126fb", + "name": "7:panel_7", + "type": "visualization" + }, + { + "id": "network_traffic-f43a8f20-8bb5-11e8-9676-ef67484126fb", + "name": "8:panel_8", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-cassandra.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-cassandra.json new file mode 100755 index 0000000000..489417c609 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-cassandra.json @@ -0,0 +1,77 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}" + }, + "optionsJSON": "{\"darkTheme\":false}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":8,\"i\":\"3\",\"w\":12,\"x\":36,\"y\":8},\"panelIndex\":\"3\",\"panelRefName\":\"panel_3\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":8,\"i\":\"4\",\"w\":12,\"x\":24,\"y\":8},\"panelIndex\":\"4\",\"panelRefName\":\"panel_4\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":8,\"i\":\"9\",\"w\":48,\"x\":0,\"y\":16},\"panelIndex\":\"9\",\"panelRefName\":\"panel_9\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":8,\"i\":\"10\",\"w\":36,\"x\":12,\"y\":0},\"panelIndex\":\"10\",\"panelRefName\":\"panel_10\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":8,\"i\":\"11\",\"w\":12,\"x\":12,\"y\":8},\"panelIndex\":\"11\",\"panelRefName\":\"panel_11\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":8,\"i\":\"15\",\"w\":48,\"x\":0,\"y\":24},\"panelIndex\":\"15\",\"panelRefName\":\"panel_15\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":8,\"i\":\"16\",\"w\":48,\"x\":0,\"y\":32},\"panelIndex\":\"16\",\"panelRefName\":\"panel_16\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":12,\"i\":\"17\",\"w\":24,\"x\":0,\"y\":40},\"panelIndex\":\"17\",\"panelRefName\":\"panel_17\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":12,\"i\":\"18\",\"w\":24,\"x\":24,\"y\":40},\"panelIndex\":\"18\",\"panelRefName\":\"panel_18\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":16,\"i\":\"19\",\"w\":12,\"x\":0,\"y\":0},\"panelIndex\":\"19\",\"panelRefName\":\"panel_19\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"columns\":[\"cassandra.request.query\",\"cassandra.response.result.rows.meta.keyspace\",\"cassandra.response.result.rows.meta.table\",\"cassandra.response.result.rows.num_rows\"],\"enhancements\":{},\"sort\":[\"@timestamp\",\"desc\"]},\"gridData\":{\"h\":12,\"i\":\"20\",\"w\":48,\"x\":0,\"y\":52},\"panelIndex\":\"20\",\"panelRefName\":\"panel_20\",\"type\":\"search\",\"version\":\"7.3.0\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] Cassandra", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-cassandra", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-cassandra-responsekeyspace", + "name": "3:panel_3", + "type": "visualization" + }, + { + "id": "network_traffic-cassandra-responsetype", + "name": "4:panel_4", + "type": "visualization" + }, + { + "id": "network_traffic-cassandra-responsetime", + "name": "9:panel_9", + "type": "visualization" + }, + { + "id": "network_traffic-cassandra-requestcount", + "name": "10:panel_10", + "type": "visualization" + }, + { + "id": "network_traffic-cassandra-ops", + "name": "11:panel_11", + "type": "visualization" + }, + { + "id": "network_traffic-cassandra-requestcountstackbytype", + "name": "15:panel_15", + "type": "visualization" + }, + { + "id": "network_traffic-cassandra-responsecountstackbytype", + "name": "16:panel_16", + "type": "visualization" + }, + { + "id": "network_traffic-cassandra-requestcountbytype", + "name": "17:panel_17", + "type": "visualization" + }, + { + "id": "network_traffic-cassandra-responsecountbytype", + "name": "18:panel_18", + "type": "visualization" + }, + { + "id": "network_traffic-navigation", + "name": "19:panel_19", + "type": "visualization" + }, + { + "id": "network_traffic-cassandra-queryview", + "name": "20:panel_20", + "type": "search" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-dashboard.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-dashboard.json new file mode 100755 index 0000000000..c1dee3dfea --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-dashboard.json @@ -0,0 +1,77 @@ +{ + "attributes": { + "description": "Network Packet Capture overview dashboard.", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}" + }, + "optionsJSON": "{\"darkTheme\":false}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":10,\"i\":\"1\",\"w\":12,\"x\":12,\"y\":20},\"panelIndex\":\"1\",\"panelRefName\":\"panel_1\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":10,\"i\":\"2\",\"w\":12,\"x\":36,\"y\":20},\"panelIndex\":\"2\",\"panelRefName\":\"panel_2\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"5\",\"panelRefName\":\"panel_5\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"6\",\"panelRefName\":\"panel_6\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"7\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"7\",\"panelRefName\":\"panel_7\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"8\",\"panelRefName\":\"panel_8\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"10\",\"w\":48,\"x\":0,\"y\":30},\"panelIndex\":\"10\",\"panelRefName\":\"panel_10\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"11\",\"w\":12,\"x\":0,\"y\":0},\"panelIndex\":\"11\",\"panelRefName\":\"panel_11\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":10,\"i\":\"12\",\"w\":12,\"x\":0,\"y\":20},\"panelIndex\":\"12\",\"panelRefName\":\"panel_12\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":10,\"i\":\"13\",\"w\":12,\"x\":24,\"y\":20},\"panelIndex\":\"13\",\"panelRefName\":\"panel_13\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"layerListJSON\":\"[{\\\"sourceDescriptor\\\":{\\\"type\\\":\\\"EMS_TMS\\\",\\\"isAutoSelect\\\":true},\\\"id\\\":\\\"3f5bc195-da9d-4ec8-a68f-896db321a54b\\\",\\\"label\\\":null,\\\"minZoom\\\":0,\\\"maxZoom\\\":24,\\\"alpha\\\":1,\\\"visible\\\":true,\\\"style\\\":{\\\"type\\\":\\\"TILE\\\"},\\\"includeInFitToBounds\\\":true,\\\"type\\\":\\\"VECTOR_TILE\\\"},{\\\"alpha\\\":0.75,\\\"id\\\":\\\"9638dc3f-f85a-4e68-8e14-25654df43f8e\\\",\\\"includeInFitToBounds\\\":true,\\\"joins\\\":[],\\\"label\\\":\\\"[Network Packet Capture] Client IP Locations (requires GeoIP enrichment)\\\",\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"sourceDescriptor\\\":{\\\"applyForceRefresh\\\":true,\\\"applyGlobalQuery\\\":true,\\\"applyGlobalTime\\\":true,\\\"geoField\\\":\\\"client.geo.location\\\",\\\"id\\\":\\\"220c104b-34a8-4aa7-a3d6-7b56ad4d3b9e\\\",\\\"indexPatternId\\\":\\\"logs-*\\\",\\\"metrics\\\":[{\\\"type\\\":\\\"count\\\"}],\\\"requestType\\\":\\\"point\\\",\\\"resolution\\\":\\\"MOST_FINE\\\",\\\"type\\\":\\\"ES_GEO_GRID\\\"},\\\"style\\\":{\\\"isTimeAware\\\":true,\\\"properties\\\":{\\\"fillColor\\\":{\\\"options\\\":{\\\"color\\\":\\\"Yellow to Red\\\",\\\"colorCategory\\\":\\\"palette_0\\\",\\\"field\\\":{\\\"name\\\":\\\"doc_count\\\",\\\"origin\\\":\\\"source\\\"},\\\"fieldMetaOptions\\\":{\\\"isEnabled\\\":false,\\\"sigma\\\":3},\\\"type\\\":\\\"ORDINAL\\\"},\\\"type\\\":\\\"DYNAMIC\\\"},\\\"icon\\\":{\\\"options\\\":{\\\"value\\\":\\\"marker\\\"},\\\"type\\\":\\\"STATIC\\\"},\\\"iconOrientation\\\":{\\\"options\\\":{\\\"orientation\\\":0},\\\"type\\\":\\\"STATIC\\\"},\\\"iconSize\\\":{\\\"options\\\":{\\\"field\\\":{\\\"name\\\":\\\"doc_count\\\",\\\"origin\\\":\\\"source\\\"},\\\"fieldMetaOptions\\\":{\\\"isEnabled\\\":false,\\\"sigma\\\":3},\\\"maxSize\\\":18,\\\"minSize\\\":7},\\\"type\\\":\\\"DYNAMIC\\\"},\\\"labelBorderColor\\\":{\\\"options\\\":{\\\"color\\\":\\\"#FFFFFF\\\"},\\\"type\\\":\\\"STATIC\\\"},\\\"labelBorderSize\\\":{\\\"options\\\":{\\\"size\\\":\\\"SMALL\\\"}},\\\"labelColor\\\":{\\\"options\\\":{\\\"color\\\":\\\"#000000\\\"},\\\"type\\\":\\\"STATIC\\\"},\\\"labelSize\\\":{\\\"options\\\":{\\\"size\\\":14},\\\"type\\\":\\\"STATIC\\\"},\\\"labelText\\\":{\\\"options\\\":{\\\"value\\\":\\\"\\\"},\\\"type\\\":\\\"STATIC\\\"},\\\"lineColor\\\":{\\\"options\\\":{\\\"color\\\":\\\"#3d3d3d\\\"},\\\"type\\\":\\\"STATIC\\\"},\\\"lineWidth\\\":{\\\"options\\\":{\\\"size\\\":1},\\\"type\\\":\\\"STATIC\\\"},\\\"symbolizeAs\\\":{\\\"options\\\":{\\\"value\\\":\\\"circle\\\"}}},\\\"type\\\":\\\"VECTOR\\\"},\\\"type\\\":\\\"VECTOR\\\",\\\"visible\\\":true}]\",\"mapStateJSON\":\"{\\\"zoom\\\":2.4,\\\"center\\\":{\\\"lon\\\":0,\\\"lat\\\":19.94277},\\\"timeFilters\\\":{\\\"from\\\":\\\"now-15h\\\",\\\"to\\\":\\\"now\\\"},\\\"refreshConfig\\\":{\\\"isPaused\\\":true,\\\"interval\\\":0},\\\"query\\\":{\\\"language\\\":\\\"kuery\\\",\\\"query\\\":\\\"agent.type:packetbeat\\\"},\\\"filters\\\":[],\\\"settings\\\":{\\\"autoFitToDataBounds\\\":false,\\\"backgroundColor\\\":\\\"#ffffff\\\",\\\"disableInteractive\\\":false,\\\"disableTooltipControl\\\":false,\\\"hideToolbarOverlay\\\":false,\\\"hideLayerControl\\\":false,\\\"hideViewControl\\\":false,\\\"initialLocation\\\":\\\"LAST_SAVED_LOCATION\\\",\\\"fixedLocation\\\":{\\\"lat\\\":0,\\\"lon\\\":0,\\\"zoom\\\":2},\\\"browserLocation\\\":{\\\"zoom\\\":2},\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"showScaleControl\\\":false,\\\"showSpatialFilters\\\":true,\\\"showTimesliderToggleButton\\\":true,\\\"spatialFiltersAlpa\\\":0.3,\\\"spatialFiltersFillColor\\\":\\\"#DA8B45\\\",\\\"spatialFiltersLineColor\\\":\\\"#DA8B45\\\"}}\",\"references\":[],\"title\":\"[Network Packet Capture] Map 2\",\"uiStateJSON\":\"{\\\"isLayerTOCOpen\\\":true,\\\"openTOCDetails\\\":[]}\"},\"enhancements\":{},\"hiddenLayers\":[],\"isLayerTOCOpen\":true,\"mapBuffer\":{\"maxLat\":40.9799,\"maxLon\":90,\"minLat\":0,\"minLon\":-90},\"mapCenter\":{\"lat\":19.94277,\"lon\":0,\"zoom\":2.4},\"openTOCDetails\":[]},\"gridData\":{\"h\":20,\"i\":\"92e797bb-1975-4320-9d19-9b7f11e9e538\",\"w\":36,\"x\":12,\"y\":0},\"panelIndex\":\"92e797bb-1975-4320-9d19-9b7f11e9e538\",\"title\":\"[Network Packet Capture] Client IP Locations (requires GeoIP enrichment)\",\"type\":\"map\",\"version\":\"7.17.0\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] Overview", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-dashboard", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-web-transactions", + "name": "1:panel_1", + "type": "visualization" + }, + { + "id": "network_traffic-db-transactions", + "name": "2:panel_2", + "type": "visualization" + }, + { + "id": "network_traffic-response-times-percentiles", + "name": "5:panel_5", + "type": "visualization" + }, + { + "id": "network_traffic-errors-count-over-time", + "name": "6:panel_6", + "type": "visualization" + }, + { + "id": "network_traffic-errors-vs-successful-transactions", + "name": "7:panel_7", + "type": "visualization" + }, + { + "id": "network_traffic-latency-histogram", + "name": "8:panel_8", + "type": "visualization" + }, + { + "id": "network_traffic-response-times-repartition", + "name": "10:panel_10", + "type": "visualization" + }, + { + "id": "network_traffic-navigation", + "name": "11:panel_11", + "type": "visualization" + }, + { + "id": "network_traffic-e3f09730-1b80-11e9-83df-75eebb35951e", + "name": "12:panel_12", + "type": "visualization" + }, + { + "id": "network_traffic-059fe5e0-d2dd-11e7-9914-4982455b3063", + "name": "13:panel_13", + "type": "visualization" + }, + { + "id": "logs-*", + "name": "92e797bb-1975-4320-9d19-9b7f11e9e538:layer_1_source_index_pattern", + "type": "index-pattern" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-dns-unique-domains.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-dns-unique-domains.json new file mode 100755 index 0000000000..d6f50f2545 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-dns-unique-domains.json @@ -0,0 +1,42 @@ +{ + "attributes": { + "description": "Detecting tunneling over DNS.", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"NOT dns.question.type:PTR\"},\"version\":true}" + }, + "optionsJSON": "{\"darkTheme\":false}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{},\"spy\":{\"mode\":{\"fill\":false,\"name\":null}},\"vis\":{\"colors\":{\"Count\":\"#1F78C1\",\"Unique Subdomain Count\":\"#EF843C\",\"Unique count of dns.question.name\":\"#E0752D\"},\"legendOpen\":false}},\"gridData\":{\"h\":20,\"i\":\"1\",\"w\":48,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"panelRefName\":\"panel_0\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"gridData\":{\"h\":20,\"i\":\"2\",\"w\":24,\"x\":0,\"y\":35},\"panelIndex\":\"2\",\"panelRefName\":\"panel_1\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":48,\"x\":0,\"y\":20},\"panelIndex\":\"4\",\"panelRefName\":\"panel_2\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"gridData\":{\"h\":20,\"i\":\"5\",\"w\":24,\"x\":24,\"y\":35},\"panelIndex\":\"5\",\"panelRefName\":\"panel_3\",\"version\":\"7.0.0-SNAPSHOT\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] DNS Tunneling", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-dns-unique-domains", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-unique-fqdns-per-etld-1", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "network_traffic-unique-fqdns-per-etld-1-table", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "network_traffic-bytes-transferred-per-domain", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "network_traffic-dc743240-1665-11e7-a6de-cbac1a3d0a7d", + "name": "panel_3", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-flows.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-flows.json new file mode 100755 index 0000000000..13b51d1106 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-flows.json @@ -0,0 +1,47 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}" + }, + "optionsJSON": "{\"darkTheme\":false}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":35,\"i\":\"1\",\"w\":24,\"x\":0,\"y\":25},\"panelIndex\":\"1\",\"panelRefName\":\"panel_0\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"2\",\"w\":12,\"x\":0,\"y\":0},\"panelIndex\":\"2\",\"panelRefName\":\"panel_1\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":25,\"i\":\"3\",\"w\":36,\"x\":12,\"y\":0},\"panelIndex\":\"3\",\"panelRefName\":\"panel_2\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":35,\"i\":\"4\",\"w\":24,\"x\":24,\"y\":25},\"panelIndex\":\"4\",\"panelRefName\":\"panel_3\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"gridData\":{\"h\":35,\"i\":\"5\",\"w\":48,\"x\":0,\"y\":60},\"panelIndex\":\"5\",\"panelRefName\":\"panel_4\",\"version\":\"7.0.0-SNAPSHOT\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] Network Flows", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-flows", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-top-hosts-creating-traffic", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "network_traffic-navigation", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "network_traffic-connections-over-time", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "network_traffic-top-hosts-receiving-traffic", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "network_traffic-network-traffic-between-your-hosts", + "name": "panel_4", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-http.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-http.json new file mode 100755 index 0000000000..0699eb175a --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-http.json @@ -0,0 +1,57 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}" + }, + "optionsJSON": "{\"darkTheme\":false}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"1\",\"w\":36,\"x\":12,\"y\":0},\"panelIndex\":\"1\",\"panelRefName\":\"panel_0\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"2\",\"w\":24,\"x\":0,\"y\":35},\"panelIndex\":\"2\",\"panelRefName\":\"panel_1\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3\",\"w\":24,\"x\":24,\"y\":35},\"panelIndex\":\"3\",\"panelRefName\":\"panel_2\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"4\",\"w\":12,\"x\":0,\"y\":0},\"panelIndex\":\"4\",\"panelRefName\":\"panel_3\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":12,\"x\":0,\"y\":20},\"panelIndex\":\"5\",\"panelRefName\":\"panel_4\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6\",\"w\":36,\"x\":12,\"y\":20},\"panelIndex\":\"6\",\"panelRefName\":\"panel_5\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"gridData\":{\"h\":25,\"i\":\"7\",\"w\":48,\"x\":0,\"y\":50},\"panelIndex\":\"7\",\"panelRefName\":\"panel_6\",\"version\":\"7.0.0-SNAPSHOT\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] HTTP", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-http", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-web-transactions", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "network_traffic-http-error-codes", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "network_traffic-http-error-codes-evolution", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "network_traffic-navigation", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "network_traffic-total-number-of-http-transactions", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "network_traffic-http-codes-for-the-top-queries", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "network_traffic-top-10-http-requests", + "name": "panel_6", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-mongodb-performance.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-mongodb-performance.json new file mode 100755 index 0000000000..76b41ed6ac --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-mongodb-performance.json @@ -0,0 +1,62 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}" + }, + "optionsJSON": "{\"darkTheme\":false}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"1\",\"w\":12,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"panelRefName\":\"panel_0\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"2\",\"w\":20,\"x\":12,\"y\":0},\"panelIndex\":\"2\",\"panelRefName\":\"panel_1\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"3\",\"w\":16,\"x\":32,\"y\":0},\"panelIndex\":\"3\",\"panelRefName\":\"panel_2\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":16,\"x\":0,\"y\":20},\"panelIndex\":\"4\",\"panelRefName\":\"panel_3\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":16,\"x\":16,\"y\":20},\"panelIndex\":\"5\",\"panelRefName\":\"panel_4\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":25,\"i\":\"6\",\"w\":32,\"x\":0,\"y\":35},\"panelIndex\":\"6\",\"panelRefName\":\"panel_5\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"gridData\":{\"h\":25,\"i\":\"7\",\"w\":16,\"x\":32,\"y\":35},\"panelIndex\":\"7\",\"panelRefName\":\"panel_6\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8\",\"w\":16,\"x\":32,\"y\":20},\"panelIndex\":\"8\",\"panelRefName\":\"panel_7\",\"version\":\"7.0.0-SNAPSHOT\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] MongoDB", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mongodb-performance", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-navigation", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "network_traffic-mongodb-errors", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "network_traffic-mongodb-commands", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "network_traffic-mongodb-errors-per-collection", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "network_traffic-mongodb-in-slash-out-throughput", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "network_traffic-mongodb-response-times-by-collection", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "network_traffic-top-slowest-mongodb-queries", + "name": "panel_6", + "type": "visualization" + }, + { + "id": "network_traffic-number-of-mongodb-transactions-with-writeconcern-w-equal-0", + "name": "panel_7", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-mysql-performance.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-mysql-performance.json new file mode 100755 index 0000000000..6e51b19d93 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-mysql-performance.json @@ -0,0 +1,62 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}" + }, + "optionsJSON": "{\"darkTheme\":false}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"1\",\"w\":20,\"x\":12,\"y\":0},\"panelIndex\":\"1\",\"panelRefName\":\"panel_0\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"2\",\"w\":16,\"x\":32,\"y\":0},\"panelIndex\":\"2\",\"panelRefName\":\"panel_1\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"3\",\"w\":12,\"x\":0,\"y\":0},\"panelIndex\":\"3\",\"panelRefName\":\"panel_2\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":24,\"x\":24,\"y\":35},\"panelIndex\":\"4\",\"panelRefName\":\"panel_3\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"gridData\":{\"h\":30,\"i\":\"5\",\"w\":24,\"x\":0,\"y\":50},\"panelIndex\":\"5\",\"panelRefName\":\"panel_4\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"gridData\":{\"h\":30,\"i\":\"6\",\"w\":24,\"x\":24,\"y\":50},\"panelIndex\":\"6\",\"panelRefName\":\"panel_5\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"7\",\"w\":48,\"x\":0,\"y\":20},\"panelIndex\":\"7\",\"panelRefName\":\"panel_6\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"8\",\"w\":24,\"x\":0,\"y\":35},\"panelIndex\":\"8\",\"panelRefName\":\"panel_7\",\"version\":\"7.0.0-SNAPSHOT\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] MySQL performance", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mysql-performance", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mysql-errors", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "network_traffic-mysql-methods", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "network_traffic-navigation", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "network_traffic-mysql-throughput", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "network_traffic-most-frequent-mysql-queries", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "network_traffic-slowest-mysql-queries", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "network_traffic-mysql-response-times-percentiles", + "name": "panel_6", + "type": "visualization" + }, + { + "id": "network_traffic-mysql-reads-vs-writes", + "name": "panel_7", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-nfs.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-nfs.json new file mode 100755 index 0000000000..2b9bfc8b82 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-nfs.json @@ -0,0 +1,67 @@ +{ + "attributes": { + "description": "NFSv3 and NFSv4 transactions over TCP.", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}" + }, + "optionsJSON": "{\"darkTheme\":false}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":25,\"i\":\"1\",\"w\":16,\"x\":16,\"y\":0},\"panelIndex\":\"1\",\"panelRefName\":\"panel_0\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"3\",\"w\":24,\"x\":0,\"y\":55},\"panelIndex\":\"3\",\"panelRefName\":\"panel_1\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"spy\":{\"mode\":{\"fill\":false,\"name\":null}},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":10,\"i\":\"4\",\"w\":16,\"x\":32,\"y\":0},\"panelIndex\":\"4\",\"panelRefName\":\"panel_2\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":16,\"x\":32,\"y\":10},\"panelIndex\":\"5\",\"panelRefName\":\"panel_3\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":false}},\"gridData\":{\"h\":15,\"i\":\"6\",\"w\":24,\"x\":24,\"y\":25},\"panelIndex\":\"6\",\"panelRefName\":\"panel_4\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"7\",\"w\":24,\"x\":24,\"y\":40},\"panelIndex\":\"7\",\"panelRefName\":\"panel_5\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"gridData\":{\"h\":20,\"i\":\"8\",\"w\":24,\"x\":24,\"y\":55},\"panelIndex\":\"8\",\"panelRefName\":\"panel_6\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"legendOpen\":true}},\"gridData\":{\"h\":30,\"i\":\"9\",\"w\":24,\"x\":0,\"y\":25},\"panelIndex\":\"9\",\"panelRefName\":\"panel_7\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":25,\"i\":\"10\",\"w\":16,\"x\":0,\"y\":0},\"panelIndex\":\"10\",\"panelRefName\":\"panel_8\",\"version\":\"7.0.0-SNAPSHOT\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] NFS", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-nfs", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-nfs-clients-pie-chart", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "network_traffic-nfs-operations-area-chart", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "network_traffic-nfs-top-group-pie-chart", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "network_traffic-nfs-top-users-pie-chart", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "network_traffic-nfs-response-times", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "network_traffic-nfs-errors", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "network_traffic-nfs-operation-table", + "name": "panel_6", + "type": "visualization" + }, + { + "id": "network_traffic-nfs-bytes-in-slash-out", + "name": "panel_7", + "type": "visualization" + }, + { + "id": "network_traffic-navigation", + "name": "panel_8", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-pgsql-performance.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-pgsql-performance.json new file mode 100755 index 0000000000..462ad7a8be --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-pgsql-performance.json @@ -0,0 +1,62 @@ +{ + "attributes": { + "description": "Postgres database query performance.", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}" + }, + "optionsJSON": "{\"darkTheme\":false}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"1\",\"w\":12,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"panelRefName\":\"panel_0\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"2\",\"w\":20,\"x\":12,\"y\":0},\"panelIndex\":\"2\",\"panelRefName\":\"panel_1\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":20,\"i\":\"3\",\"w\":16,\"x\":32,\"y\":0},\"panelIndex\":\"3\",\"panelRefName\":\"panel_2\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"4\",\"w\":48,\"x\":0,\"y\":20},\"panelIndex\":\"4\",\"panelRefName\":\"panel_3\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5\",\"w\":24,\"x\":24,\"y\":35},\"panelIndex\":\"5\",\"panelRefName\":\"panel_4\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6\",\"w\":24,\"x\":0,\"y\":35},\"panelIndex\":\"6\",\"panelRefName\":\"panel_5\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"gridData\":{\"h\":30,\"i\":\"7\",\"w\":24,\"x\":0,\"y\":50},\"panelIndex\":\"7\",\"panelRefName\":\"panel_6\",\"version\":\"7.0.0-SNAPSHOT\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"gridData\":{\"h\":30,\"i\":\"8\",\"w\":24,\"x\":24,\"y\":50},\"panelIndex\":\"8\",\"panelRefName\":\"panel_7\",\"version\":\"7.0.0-SNAPSHOT\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] PgSQL performance", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-pgsql-performance", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-navigation", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "network_traffic-pgsql-errors", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "network_traffic-pgsql-methods", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "network_traffic-pgsql-response-times-percentiles", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "network_traffic-pgsql-throughput", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "network_traffic-pgsql-reads-vs-writes", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "network_traffic-most-frequent-pgsql-queries", + "name": "panel_6", + "type": "visualization" + }, + { + "id": "network_traffic-slowest-pgsql-queries", + "name": "panel_7", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-thrift-performance.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-thrift-performance.json new file mode 100755 index 0000000000..fe50a1efbd --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-thrift-performance.json @@ -0,0 +1,57 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}" + }, + "optionsJSON": "{\"darkTheme\":false}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":16,\"i\":\"1\",\"w\":12,\"x\":0,\"y\":0},\"panelIndex\":\"1\",\"panelRefName\":\"panel_1\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":16,\"i\":\"2\",\"w\":20,\"x\":12,\"y\":0},\"panelIndex\":\"2\",\"panelRefName\":\"panel_2\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":16,\"i\":\"3\",\"w\":16,\"x\":32,\"y\":0},\"panelIndex\":\"3\",\"panelRefName\":\"panel_3\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}},\"gridData\":{\"h\":12,\"i\":\"4\",\"w\":24,\"x\":0,\"y\":16},\"panelIndex\":\"4\",\"panelRefName\":\"panel_4\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"5\",\"w\":24,\"x\":24,\"y\":16},\"panelIndex\":\"5\",\"panelRefName\":\"panel_5\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":16,\"i\":\"6\",\"w\":24,\"x\":0,\"y\":28},\"panelIndex\":\"6\",\"panelRefName\":\"panel_6\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":16,\"i\":\"7\",\"w\":24,\"x\":24,\"y\":28},\"panelIndex\":\"7\",\"panelRefName\":\"panel_7\",\"type\":\"visualization\",\"version\":\"7.3.0\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] Thrift performance", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-thrift-performance", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-navigation", + "name": "1:panel_1", + "type": "visualization" + }, + { + "id": "network_traffic-thrift-requests-per-minute", + "name": "2:panel_2", + "type": "visualization" + }, + { + "id": "network_traffic-thrift-rpc-errors", + "name": "3:panel_3", + "type": "visualization" + }, + { + "id": "network_traffic-slowest-thrift-rpc-methods", + "name": "4:panel_4", + "type": "visualization" + }, + { + "id": "network_traffic-thrift-response-times-percentiles", + "name": "5:panel_5", + "type": "visualization" + }, + { + "id": "network_traffic-top-thrift-rpc-methods", + "name": "6:panel_6", + "type": "visualization" + }, + { + "id": "network_traffic-top-thrift-rpc-calls-with-errors", + "name": "7:panel_7", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-tls-sessions.json b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-tls-sessions.json new file mode 100755 index 0000000000..876601f994 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/dashboard/network_traffic-tls-sessions.json @@ -0,0 +1,87 @@ +{ + "attributes": { + "description": "[Network Packet Capture] TLS Sessions", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"version\":true}" + }, + "optionsJSON": "{\"darkTheme\":false,\"useMargins\":false}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":16,\"i\":\"4\",\"w\":12,\"x\":0,\"y\":0},\"panelIndex\":\"4\",\"panelRefName\":\"panel_4\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":16,\"i\":\"8\",\"w\":36,\"x\":12,\"y\":0},\"panelIndex\":\"8\",\"panelRefName\":\"panel_8\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"9\",\"w\":12,\"x\":12,\"y\":28},\"panelIndex\":\"9\",\"panelRefName\":\"panel_9\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"10\",\"w\":12,\"x\":0,\"y\":16},\"panelIndex\":\"10\",\"panelRefName\":\"panel_10\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"11\",\"w\":48,\"x\":0,\"y\":40},\"panelIndex\":\"11\",\"panelRefName\":\"panel_11\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"12\",\"w\":12,\"x\":24,\"y\":28},\"panelIndex\":\"12\",\"panelRefName\":\"panel_12\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"13\",\"w\":12,\"x\":36,\"y\":28},\"panelIndex\":\"13\",\"panelRefName\":\"panel_13\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"14\",\"w\":12,\"x\":0,\"y\":28},\"panelIndex\":\"14\",\"panelRefName\":\"panel_14\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"15\",\"w\":24,\"x\":0,\"y\":52},\"panelIndex\":\"15\",\"panelRefName\":\"panel_15\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"16\",\"w\":24,\"x\":0,\"y\":64},\"panelIndex\":\"16\",\"panelRefName\":\"panel_16\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"17\",\"w\":24,\"x\":24,\"y\":52},\"panelIndex\":\"17\",\"panelRefName\":\"panel_17\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"18\",\"w\":24,\"x\":24,\"y\":64},\"panelIndex\":\"18\",\"panelRefName\":\"panel_18\",\"type\":\"visualization\",\"version\":\"7.3.0\"},{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"19\",\"w\":36,\"x\":12,\"y\":16},\"panelIndex\":\"19\",\"panelRefName\":\"panel_19\",\"type\":\"visualization\",\"version\":\"7.3.0\"}]", + "timeRestore": false, + "title": "[Network Packet Capture] TLS Sessions", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-tls-sessions", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-navigation", + "name": "4:panel_4", + "type": "visualization" + }, + { + "id": "network_traffic-059fe5e0-d2dd-11e7-9914-4982455b3063", + "name": "8:panel_8", + "type": "visualization" + }, + { + "id": "network_traffic-c14377a0-d353-11e7-9914-4982455b3063", + "name": "9:panel_9", + "type": "visualization" + }, + { + "id": "network_traffic-061de380-d361-11e7-9914-4982455b3063", + "name": "10:panel_10", + "type": "visualization" + }, + { + "id": "network_traffic-a28d09d0-d361-11e7-9914-4982455b3063", + "name": "11:panel_11", + "type": "visualization" + }, + { + "id": "network_traffic-0af0b790-d37d-11e7-9914-4982455b3063", + "name": "12:panel_12", + "type": "visualization" + }, + { + "id": "network_traffic-ae6e33c0-d37d-11e7-9914-4982455b3063", + "name": "13:panel_13", + "type": "visualization" + }, + { + "id": "network_traffic-2c467370-d392-11e7-8fa0-232aa9259081", + "name": "14:panel_14", + "type": "visualization" + }, + { + "id": "network_traffic-0958a910-d396-11e7-8fa0-232aa9259081", + "name": "15:panel_15", + "type": "visualization" + }, + { + "id": "network_traffic-86743f90-d396-11e7-8fa0-232aa9259081", + "name": "16:panel_16", + "type": "visualization" + }, + { + "id": "network_traffic-463d2bf0-d3a8-11e7-9081-ab2af08e9961", + "name": "17:panel_17", + "type": "visualization" + }, + { + "id": "network_traffic-ad2a8b50-d49d-11e7-996f-bd7c1ca4591b", + "name": "18:panel_18", + "type": "visualization" + }, + { + "id": "network_traffic-d2e15950-d560-11e7-9fff-7b1ebf397ba9", + "name": "19:panel_19", + "type": "visualization" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-651fd6d0-88d0-11e7-ad9c-db80de0bf8d3.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-651fd6d0-88d0-11e7-ad9c-db80de0bf8d3.json new file mode 100755 index 0000000000..afb21d2457 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-651fd6d0-88d0-11e7-ad9c-db80de0bf8d3.json @@ -0,0 +1,38 @@ +{ + "attributes": { + "columns": [ + "_source" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"status\",\"negate\":true,\"params\":{\"query\":\"OK\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"OK\"},\"query\":{\"match\":{\"status\":{\"query\":\"OK\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.mongodb\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] MongoDB errors", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-651fd6d0-88d0-11e7-ad9c-db80de0bf8d3", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-6b1b1360-d49d-11e7-996f-bd7c1ca4591b.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-6b1b1360-d49d-11e7-996f-bd7c1ca4591b.json new file mode 100755 index 0000000000..67be55b24a --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-6b1b1360-d49d-11e7-996f-bd7c1ca4591b.json @@ -0,0 +1,38 @@ +{ + "attributes": { + "columns": [ + "_source" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"exists\":{\"field\":\"tls.client.ja3\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"tls.client.ja3\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"}}],\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.tls\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] TLS Fingerprint", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-6b1b1360-d49d-11e7-996f-bd7c1ca4591b", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-71908f00-88ca-11e7-ad9c-db80de0bf8d3.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-71908f00-88ca-11e7-ad9c-db80de0bf8d3.json new file mode 100755 index 0000000000..6d16385a7d --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-71908f00-88ca-11e7-ad9c-db80de0bf8d3.json @@ -0,0 +1,38 @@ +{ + "attributes": { + "columns": [ + "_source" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"network.protocol\",\"negate\":false,\"params\":{\"query\":\"http\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"http\"},\"query\":{\"match\":{\"network.protocol\":{\"query\":\"http\",\"type\":\"phrase\"}}}}],\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.http\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] HTTP Transactions Search", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-71908f00-88ca-11e7-ad9c-db80de0bf8d3", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-8e2af860-d520-11e7-9fff-7b1ebf397ba9.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-8e2af860-d520-11e7-9fff-7b1ebf397ba9.json new file mode 100755 index 0000000000..438de0c09a --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-8e2af860-d520-11e7-9fff-7b1ebf397ba9.json @@ -0,0 +1,43 @@ +{ + "attributes": { + "columns": [ + "_source" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"exists\":{\"field\":\"tls.established\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"tls.established\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"}},{\"$state\":{\"store\":\"appState\"},\"exists\":{\"field\":\"event.duration\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"event.duration\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"}}],\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.tls\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] TLS Handshake Latency", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-8e2af860-d520-11e7-9fff-7b1ebf397ba9", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-8f0ff590-d37d-11e7-9914-4982455b3063.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-8f0ff590-d37d-11e7-9914-4982455b3063.json new file mode 100755 index 0000000000..b2320634bf --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-8f0ff590-d37d-11e7-9914-4982455b3063.json @@ -0,0 +1,38 @@ +{ + "attributes": { + "columns": [ + "_source" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"exists\":{\"field\":\"tls.server.x509.public_key_size\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"tls.server.x509.public_key_size\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"}}],\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.tls\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] Server Public Key Size", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-8f0ff590-d37d-11e7-9914-4982455b3063", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-94908e80-d2d8-11e7-9914-4982455b3063.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-94908e80-d2d8-11e7-9914-4982455b3063.json new file mode 100755 index 0000000000..7851d8f875 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-94908e80-d2d8-11e7-9914-4982455b3063.json @@ -0,0 +1,38 @@ +{ + "attributes": { + "columns": [ + "_source" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"exists\":{\"field\":\"tls.client.server_name\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"tls.client.server_name\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"}}],\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.tls\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] TLS Server Name Indication", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-94908e80-d2d8-11e7-9914-4982455b3063", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-b8992150-8ba8-11e8-9676-ef67484126fb.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-b8992150-8ba8-11e8-9676-ef67484126fb.json new file mode 100755 index 0000000000..44b4e814c2 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-b8992150-8ba8-11e8-9676-ef67484126fb.json @@ -0,0 +1,40 @@ +{ + "attributes": { + "columns": [ + "dhcpv4.transaction_id", + "dhcpv4.op_code", + "dhcpv4.option.message_type", + "source.ip", + "destination.ip", + "dhcpv4.client_mac", + "dhcpv4.option.hostname", + "dhcpv4.option.class_identifier" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.dhcpv4\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] DHCPv4", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-b8992150-8ba8-11e8-9676-ef67484126fb", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-bf3d23b0-d37c-11e7-9914-4982455b3063.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-bf3d23b0-d37c-11e7-9914-4982455b3063.json new file mode 100755 index 0000000000..48114ab869 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-bf3d23b0-d37c-11e7-9914-4982455b3063.json @@ -0,0 +1,38 @@ +{ + "attributes": { + "columns": [ + "_source" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"exists\":{\"field\":\"tls.detailed.version\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"tls.detailed.version\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"}}],\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.tls\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] TLS Version", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-bf3d23b0-d37c-11e7-9914-4982455b3063", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-cassandra-queryview.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-cassandra-queryview.json new file mode 100755 index 0000000000..4da4785f32 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-cassandra-queryview.json @@ -0,0 +1,46 @@ +{ + "attributes": { + "columns": [ + "cassandra.request.query", + "cassandra.response.result.rows.meta.keyspace", + "cassandra.response.result.rows.meta.table", + "cassandra.response.result.rows.num_rows" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"cassandra.request.headers.op\",\"negate\":false,\"params\":{\"query\":\"QUERY\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"QUERY\"},\"query\":{\"match\":{\"cassandra.request.headers.op\":{\"query\":\"QUERY\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"cassandra.response.headers.op\",\"negate\":true,\"params\":{\"query\":\"ERROR\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"ERROR\"},\"query\":{\"match\":{\"cassandra.response.headers.op\":{\"query\":\"ERROR\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.cassandra\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] Cassandra Query Search", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-cassandra-queryview", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17.json new file mode 100755 index 0000000000..e042ed47b0 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17.json @@ -0,0 +1,41 @@ +{ + "attributes": { + "columns": [ + "server.ip", + "destination.ip", + "dns.question.name", + "status" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"network.protocol\",\"negate\":false,\"params\":{\"query\":\"dns\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"dns\"},\"query\":{\"match\":{\"network.protocol\":{\"query\":\"dns\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.dns\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] DNS Protocol", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e.json new file mode 100755 index 0000000000..adda40afe3 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e.json @@ -0,0 +1,33 @@ +{ + "attributes": { + "columns": [ + "_source" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.cassandra\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] Cassandra Search", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-ffc3c0b0-d2d7-11e7-9914-4982455b3063.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-ffc3c0b0-d2d7-11e7-9914-4982455b3063.json new file mode 100755 index 0000000000..54ccb16243 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-ffc3c0b0-d2d7-11e7-9914-4982455b3063.json @@ -0,0 +1,38 @@ +{ + "attributes": { + "columns": [ + "_source" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"exists\":{\"field\":\"tls.established\"},\"meta\":{\"alias\":\"TLS sessions\",\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"tls.established\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"}}],\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.tls\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] TLS Sessions", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-ffc3c0b0-d2d7-11e7-9914-4982455b3063", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-flows-search.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-flows-search.json new file mode 100755 index 0000000000..94bf5f31c0 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-flows-search.json @@ -0,0 +1,41 @@ +{ + "attributes": { + "columns": [ + "type", + "event.start", + "event.end", + "source.ip", + "source.port", + "destination.ip", + "destination.port", + "source.bytes", + "destination.bytes" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.flow\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] Flows Search", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-flows-search", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-mongodb-transactions-with-write-concern-0.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-mongodb-transactions-with-write-concern-0.json new file mode 100755 index 0000000000..f3f1e907c0 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-mongodb-transactions-with-write-concern-0.json @@ -0,0 +1,38 @@ +{ + "attributes": { + "columns": [ + "method", + "type", + "path", + "event.duration", + "status", + "query" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"]},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.mongodb and request: \\\"writeConcern w 0\\\"\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] MongoDB transactions with write concern 0", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mongodb-transactions-with-write-concern-0", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-mongodb-transactions.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-mongodb-transactions.json new file mode 100755 index 0000000000..71fb0f7d06 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-mongodb-transactions.json @@ -0,0 +1,38 @@ +{ + "attributes": { + "columns": [ + "method", + "type", + "path", + "event.duration", + "status", + "query" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"]},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.mongodb\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] MongoDB Transaction Search", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mongodb-transactions", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-mysql-errors.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-mysql-errors.json new file mode 100755 index 0000000000..e6696d3dfe --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-mysql-errors.json @@ -0,0 +1,42 @@ +{ + "attributes": { + "columns": [ + "method", + "type", + "path", + "event.duration", + "status" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"status\",\"negate\":true,\"params\":{\"query\":\"OK\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"OK\"},\"query\":{\"match\":{\"status\":{\"query\":\"OK\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"]},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.mysql\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] MySQL Errors Search", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mysql-errors", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-mysql-transactions.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-mysql-transactions.json new file mode 100755 index 0000000000..035e4af69f --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-mysql-transactions.json @@ -0,0 +1,37 @@ +{ + "attributes": { + "columns": [ + "method", + "type", + "path", + "event.duration", + "status" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"]},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.mysql\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] MySQL Transactions", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mysql-transactions", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-nfs-errors-search.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-nfs-errors-search.json new file mode 100755 index 0000000000..234a135c17 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-nfs-errors-search.json @@ -0,0 +1,43 @@ +{ + "attributes": { + "columns": [ + "_source" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"nfs.status\",\"negate\":true,\"params\":{\"query\":\"NFSERR_NOENT\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"NFSERR_NOENT\"},\"query\":{\"match\":{\"nfs.status\":{\"query\":\"NFSERR_NOENT\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"nfs.status\",\"negate\":true,\"params\":{\"query\":\"NFS_OK\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"NFS_OK\"},\"query\":{\"match\":{\"nfs.status\":{\"query\":\"NFS_OK\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.nfs\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] NFS Error Search", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-nfs-errors-search", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-nfs.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-nfs.json new file mode 100755 index 0000000000..637ab8785a --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-nfs.json @@ -0,0 +1,33 @@ +{ + "attributes": { + "columns": [ + "_source" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.nfs\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] NFS Search", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-nfs", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-pgsql-errors.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-pgsql-errors.json new file mode 100755 index 0000000000..e1e696c06b --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-pgsql-errors.json @@ -0,0 +1,42 @@ +{ + "attributes": { + "columns": [ + "method", + "type", + "path", + "event.duration", + "status" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"status\",\"negate\":true,\"params\":{\"query\":\"OK\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"OK\"},\"query\":{\"match\":{\"status\":{\"query\":\"OK\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"]},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.pgsql\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] PgSQL Errors Search", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-pgsql-errors", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-pgsql-transactions.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-pgsql-transactions.json new file mode 100755 index 0000000000..4cf83e438b --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-pgsql-transactions.json @@ -0,0 +1,37 @@ +{ + "attributes": { + "columns": [ + "method", + "type", + "path", + "event.duration", + "status" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"]},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.pgsql\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] PgSQL Transactions", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-pgsql-transactions", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-search.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-search.json new file mode 100755 index 0000000000..b8dcde28ff --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-search.json @@ -0,0 +1,46 @@ +{ + "attributes": { + "columns": [ + "client.ip", + "client.port", + "server.ip", + "server.port", + "data_stream.dataset", + "query", + "method", + "event.duration", + "status" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"data_stream.dataset\",\"negate\":true,\"params\":{\"query\":\"network_traffic.flow\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"network_traffic.flow\"},\"query\":{\"match\":{\"data_stream.dataset\":{\"query\":\"network_traffic.flow\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"agent.type:packetbeat\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] Search", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-search", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-thrift-errors.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-thrift-errors.json new file mode 100755 index 0000000000..4ada45ff68 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-thrift-errors.json @@ -0,0 +1,42 @@ +{ + "attributes": { + "columns": [ + "method", + "type", + "path", + "event.duration", + "status" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"status\",\"negate\":true,\"params\":{\"query\":\"OK\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"OK\"},\"query\":{\"match\":{\"status\":{\"query\":\"OK\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"]},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.thrift\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] Thrift Errors", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-thrift-errors", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-thrift-transactions.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-thrift-transactions.json new file mode 100755 index 0000000000..d561697995 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-thrift-transactions.json @@ -0,0 +1,37 @@ +{ + "attributes": { + "columns": [ + "method", + "type", + "path", + "event.duration", + "status" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"]},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.thrift\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] Thrift Transactions Search", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-thrift-transactions", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/search/network_traffic-transactions-errors.json b/packages/network_traffic/1.1.0/kibana/search/network_traffic-transactions-errors.json new file mode 100755 index 0000000000..26f67d32a2 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/search/network_traffic-transactions-errors.json @@ -0,0 +1,51 @@ +{ + "attributes": { + "columns": [ + "client.ip", + "client.port", + "server.ip", + "server.port", + "data_stream.dataset", + "query", + "method", + "event.duration", + "status" + ], + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"data_stream.dataset\",\"negate\":true,\"params\":{\"query\":\"network_traffic.flow\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"network_traffic.flow\"},\"query\":{\"match\":{\"data_stream.dataset\":{\"query\":\"network_traffic.flow\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"status\",\"negate\":true,\"params\":{\"query\":\"OK\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"OK\"},\"query\":{\"match\":{\"status\":{\"query\":\"OK\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"highlightAll\":true,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"agent.type:packetbeat\"},\"version\":true}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "[Network Packet Capture] Transactions Errors Search", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-transactions-errors", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-059fe5e0-d2dd-11e7-9914-4982455b3063.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-059fe5e0-d2dd-11e7-9914-4982455b3063.json new file mode 100755 index 0000000000..72cce261f0 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-059fe5e0-d2dd-11e7-9914-4982455b3063.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] TLS Sessions", + "uiStateJSON": "{\"vis\":{\"colors\":{\"false\":\"#E24D42\",\"true\":\"#7EB26D\"},\"legendOpen\":false}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Sessions per minute\",\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Handshake completed\",\"field\":\"tls.established\",\"json\":\"\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"},\"valueAxis\":\"ValueAxis-1\"},\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"times\":[],\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Network Packet Capture] TLS Sessions\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-059fe5e0-d2dd-11e7-9914-4982455b3063", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-ffc3c0b0-d2d7-11e7-9914-4982455b3063", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-061de380-d361-11e7-9914-4982455b3063.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-061de380-d361-11e7-9914-4982455b3063.json new file mode 100755 index 0000000000..428c808c1b --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-061de380-d361-11e7-9914-4982455b3063.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"exists\":{\"field\":\"tls.established\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"tls.established\",\"negate\":false,\"type\":\"exists\",\"value\":\"exists\"}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.tls\"}}" + }, + "title": "[Network Packet Capture] Total Number of TLS Sessions", + "uiStateJSON": "{\"P-5\":{\"vis\":{\"defaultColors\":{\"0 - 100\":\"rgb(0,104,55)\"}}},\"P-7\":{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"metric\":{\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"invertColors\":false,\"labels\":{\"show\":true},\"metricColorMode\":\"None\",\"percentageMode\":false,\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":60,\"labelColor\":false,\"subText\":\"\"},\"useRanges\":false},\"type\":\"metric\"},\"title\":\"[Network Packet Capture] Total Number of TLS Sessions\",\"type\":\"metric\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-061de380-d361-11e7-9914-4982455b3063", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-0958a910-d396-11e7-8fa0-232aa9259081.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-0958a910-d396-11e7-8fa0-232aa9259081.json new file mode 100755 index 0000000000..3d5fc5d68c --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-0958a910-d396-11e7-8fa0-232aa9259081.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] TLS Server Certificates", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"4\",\"params\":{\"customLabel\":\"Subject Common Name\",\"field\":\"tls.server.x509.subject.common_name\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Organization\",\"field\":\"tls.server.x509.subject.organization\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] TLS Server Certificates\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-0958a910-d396-11e7-8fa0-232aa9259081", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-ffc3c0b0-d2d7-11e7-9914-4982455b3063", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-0af0b790-d37d-11e7-9914-4982455b3063.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-0af0b790-d37d-11e7-9914-4982455b3063.json new file mode 100755 index 0000000000..a9a6b6d585 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-0af0b790-d37d-11e7-9914-4982455b3063.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] TLS Versions", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"TLS version\",\"field\":\"tls.detailed.version\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"type\":\"pie\"},\"title\":\"[Network Packet Capture] TLS Versions\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-0af0b790-d37d-11e7-9914-4982455b3063", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-bf3d23b0-d37c-11e7-9914-4982455b3063", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-11d33ea0-8bad-11e8-9676-ef67484126fb.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-11d33ea0-8bad-11e8-9676-ef67484126fb.json new file mode 100755 index 0000000000..5c709d21ab --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-11d33ea0-8bad-11e8-9676-ef67484126fb.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DHCPv4 Client Count", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Unique MACs\",\"field\":\"dhcpv4.client_mac\"},\"schema\":\"metric\",\"type\":\"cardinality\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"metric\":{\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"invertColors\":false,\"labels\":{\"show\":true},\"metricColorMode\":\"None\",\"percentageMode\":false,\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":60,\"labelColor\":false,\"subText\":\"\"},\"useRanges\":false},\"type\":\"metric\"},\"title\":\"[Network Packet Capture] DHCPv4 Client Count\",\"type\":\"metric\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-11d33ea0-8bad-11e8-9676-ef67484126fb", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-b8992150-8ba8-11e8-9676-ef67484126fb", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-2c467370-d392-11e7-8fa0-232aa9259081.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-2c467370-d392-11e7-8fa0-232aa9259081.json new file mode 100755 index 0000000000..238ff5fe1b --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-2c467370-d392-11e7-8fa0-232aa9259081.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] TLS Session Resume", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"exclude\":\"\",\"field\":\"tls.detailed.resumption_method\",\"json\":\"{\\n\\\"missing\\\": \\\"none\\\"\\n}\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":true,\"labels\":{\"last_level\":true,\"show\":false,\"truncate\":100,\"values\":true},\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"type\":\"pie\"},\"title\":\"[Network Packet Capture] TLS Session Resume\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-2c467370-d392-11e7-8fa0-232aa9259081", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-ffc3c0b0-d2d7-11e7-9914-4982455b3063", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-418dfbe0-8bac-11e8-9676-ef67484126fb.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-418dfbe0-8bac-11e8-9676-ef67484126fb.json new file mode 100755 index 0000000000..28758eb761 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-418dfbe0-8bac-11e8-9676-ef67484126fb.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DHCPv4 Message Types", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Op Code\",\"field\":\"dhcpv4.op_code\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Message Type\",\"field\":\"dhcpv4.option.message_type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":true,\"labels\":{\"last_level\":true,\"show\":false,\"truncate\":100,\"values\":true},\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"type\":\"pie\"},\"title\":\"[Network Packet Capture] DHCPv4 Message Types\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-418dfbe0-8bac-11e8-9676-ef67484126fb", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-b8992150-8ba8-11e8-9676-ef67484126fb", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-463d2bf0-d3a8-11e7-9081-ab2af08e9961.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-463d2bf0-d3a8-11e7-9081-ab2af08e9961.json new file mode 100755 index 0000000000..dfd0b9c2df --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-463d2bf0-d3a8-11e7-9081-ab2af08e9961.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] TLS Cipher", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Cipher\",\"field\":\"tls.cipher\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] TLS Cipher\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-463d2bf0-d3a8-11e7-9081-ab2af08e9961", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-ffc3c0b0-d2d7-11e7-9914-4982455b3063", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-4ad9db20-8bab-11e8-9676-ef67484126fb.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-4ad9db20-8bab-11e8-9676-ef67484126fb.json new file mode 100755 index 0000000000..69216a897d --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-4ad9db20-8bab-11e8-9676-ef67484126fb.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"dhcpv4.option.message_type:nak OR dhcpv4.option.message_type:decline\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DHCPv4 NAK and Decline Count", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"metric\":{\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"invertColors\":false,\"labels\":{\"show\":true},\"metricColorMode\":\"None\",\"percentageMode\":false,\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":57,\"labelColor\":false,\"subText\":\"\"},\"useRanges\":false},\"type\":\"metric\"},\"title\":\"[Network Packet Capture] DHCPv4 NAK and Decline Count\",\"type\":\"metric\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-4ad9db20-8bab-11e8-9676-ef67484126fb", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-b8992150-8ba8-11e8-9676-ef67484126fb", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-735d25c0-1459-11e9-9de0-f98d1808db8e.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-735d25c0-1459-11e9-9de0-f98d1808db8e.json new file mode 100755 index 0000000000..e347b89b8e --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-735d25c0-1459-11e9-9de0-f98d1808db8e.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DNS Min/Max/Avg Response Time Histogram", + "uiStateJSON": "{\"vis\":{\"colors\":{\"Avg Response Time (ns)\":\"#629E51\",\"Max Response Time (ns)\":\"#E24D42\",\"Min Response Time (ns)\":\"#70DBED\"}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"4\",\"params\":{\"customLabel\":\"Min Response Time (ns)\",\"field\":\"event.duration\"},\"schema\":\"metric\",\"type\":\"min\"},{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Avg Response Time (ns)\",\"field\":\"event.duration\"},\"schema\":\"metric\",\"type\":\"avg\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Max Response Time (ns)\",\"field\":\"event.duration\"},\"schema\":\"metric\",\"type\":\"max\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"seriesParams\":[{\"data\":{\"id\":\"4\",\"label\":\"Min Response Time (ns)\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"},{\"data\":{\"id\":\"1\",\"label\":\"Avg Response Time (ns)\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"},{\"data\":{\"id\":\"3\",\"label\":\"Max Response Time (ns)\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Average event.duration\"},\"type\":\"value\"}]},\"title\":\"[Network Packet Capture] DNS Min/Max/Avg Response Time Histogram\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-735d25c0-1459-11e9-9de0-f98d1808db8e", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-8460fcd0-8baa-11e8-9676-ef67484126fb.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-8460fcd0-8baa-11e8-9676-ef67484126fb.json new file mode 100755 index 0000000000..27390bc2a6 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-8460fcd0-8baa-11e8-9676-ef67484126fb.json @@ -0,0 +1,19 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.dhcpv4\"}}" + }, + "title": "[Network Packet Capture] DHCPv4 Message Types over Time", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[],\"params\":{\"axis_formatter\":\"number\",\"axis_position\":\"left\",\"background_color_rules\":[{\"id\":\"c2cf4410-8ba8-11e8-ae15-bdcba81344e6\"}],\"drop_last_bucket\":1,\"filter\":{\"language\":\"lucene\",\"query\":\"type:dhcpv4\"},\"id\":\"61ca57f0-469d-11e7-af02-69e470af7417\",\"ignore_global_filter\":0,\"index_pattern\":\"logs-*\",\"interval\":\"auto\",\"series\":[{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"#68BC00\",\"fill\":0.5,\"filter\":{\"language\":\"lucene\",\"query\":\"NOT dhcpv4.option.message_type:nak NOT dhcpv4.option.message_type:decline\"},\"formatter\":\"number\",\"id\":\"8abe6eb0-8ba9-11e8-ae15-bdcba81344e6\",\"label\":\"Response\",\"line_width\":1,\"metrics\":[{\"id\":\"8abe6eb1-8ba9-11e8-ae15-bdcba81344e6\",\"type\":\"count\"}],\"point_size\":1,\"seperate_axis\":0,\"split_color_mode\":\"gradient\",\"split_mode\":\"terms\",\"stacked\":\"none\",\"terms_field\":\"dhcpv4.option.message_type\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(244,78,59,1)\",\"fill\":0.5,\"filter\":{\"language\":\"lucene\",\"query\":\"dhcpv4.option.message_type:nak\"},\"formatter\":\"number\",\"id\":\"ae5610d0-8ba9-11e8-ae15-bdcba81344e6\",\"label\":\"nak\",\"line_width\":\"4\",\"metrics\":[{\"id\":\"ae5610d1-8ba9-11e8-ae15-bdcba81344e6\",\"type\":\"count\"}],\"point_size\":\"3\",\"seperate_axis\":0,\"series_drop_last_bucket\":0,\"split_color_mode\":\"gradient\",\"split_mode\":\"everything\",\"stacked\":\"none\"},{\"axis_position\":\"right\",\"chart_type\":\"line\",\"color\":\"rgba(244,78,59,1)\",\"fill\":0.5,\"filter\":{\"language\":\"lucene\",\"query\":\"dhcpv4.option.message_type:decline\"},\"formatter\":\"number\",\"id\":\"cf7ba180-8ba9-11e8-ae15-bdcba81344e6\",\"label\":\"decline\",\"line_width\":\"4\",\"metrics\":[{\"id\":\"cf7ba181-8ba9-11e8-ae15-bdcba81344e6\",\"type\":\"count\"}],\"point_size\":\"3\",\"seperate_axis\":0,\"series_drop_last_bucket\":0,\"split_color_mode\":\"gradient\",\"split_mode\":\"everything\",\"stacked\":\"none\"}],\"show_grid\":1,\"show_legend\":1,\"time_field\":\"@timestamp\",\"type\":\"timeseries\",\"use_kibana_indexes\":false},\"title\":\"[Network Packet Capture] DHCPv4 Message Types over Time\",\"type\":\"metrics\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-8460fcd0-8baa-11e8-9676-ef67484126fb", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-86743f90-d396-11e7-8fa0-232aa9259081.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-86743f90-d396-11e7-8fa0-232aa9259081.json new file mode 100755 index 0000000000..23e4ad24db --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-86743f90-d396-11e7-8fa0-232aa9259081.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] TLS Client Certificates", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Subject Common Name\",\"field\":\"tls.client.x509.subject.common_name\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Signature Algorithm\",\"field\":\"tls.client.x509.signature_algorithm\",\"json\":\"{ \\\"missing\\\": \\\"N/A\\\" }\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] TLS Client Certificates\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-86743f90-d396-11e7-8fa0-232aa9259081", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-ffc3c0b0-d2d7-11e7-9914-4982455b3063", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-a28d09d0-d361-11e7-9914-4982455b3063.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-a28d09d0-d361-11e7-9914-4982455b3063.json new file mode 100755 index 0000000000..e100d4e38f --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-a28d09d0-d361-11e7-9914-4982455b3063.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] TLS Server Name Indication", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Server Name Indication\",\"field\":\"tls.client.server_name\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"hideLabel\":false,\"maxFontSize\":64,\"minFontSize\":14,\"orientation\":\"single\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\"},\"title\":\"[Network Packet Capture] TLS Server Name Indication\",\"type\":\"tagcloud\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-a28d09d0-d361-11e7-9914-4982455b3063", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-94908e80-d2d8-11e7-9914-4982455b3063", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-ad2a8b50-d49d-11e7-996f-bd7c1ca4591b.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-ad2a8b50-d49d-11e7-996f-bd7c1ca4591b.json new file mode 100755 index 0000000000..204f509a93 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-ad2a8b50-d49d-11e7-996f-bd7c1ca4591b.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] TLS Fingerprint", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"JA3 Fingerprint\",\"field\":\"tls.client.ja3\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] TLS Fingerprint\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-ad2a8b50-d49d-11e7-996f-bd7c1ca4591b", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-6b1b1360-d49d-11e7-996f-bd7c1ca4591b", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-ae6e33c0-d37d-11e7-9914-4982455b3063.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-ae6e33c0-d37d-11e7-9914-4982455b3063.json new file mode 100755 index 0000000000..c8ca05e364 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-ae6e33c0-d37d-11e7-9914-4982455b3063.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] TLS Server Public Key Size", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Public Key Size\",\"field\":\"tls.server.x509.public_key_size\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"type\":\"pie\"},\"title\":\"[Network Packet Capture] Server Public Key Size\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-ae6e33c0-d37d-11e7-9914-4982455b3063", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-8f0ff590-d37d-11e7-9914-4982455b3063", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-bacb6ed0-1459-11e9-9de0-f98d1808db8e.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-bacb6ed0-1459-11e9-9de0-f98d1808db8e.json new file mode 100755 index 0000000000..7d805b99d1 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-bacb6ed0-1459-11e9-9de0-f98d1808db8e.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DNS Client and Servers Pie Chart", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Server\",\"field\":\"destination.ip\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Client\",\"field\":\"source.ip\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":true,\"labels\":{\"last_level\":true,\"show\":false,\"truncate\":100,\"values\":true},\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"type\":\"pie\"},\"title\":\"[Network Packet Capture] DNS Client and Servers Pie Chart\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-bacb6ed0-1459-11e9-9de0-f98d1808db8e", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-bytes-transferred-per-domain.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-bytes-transferred-per-domain.json new file mode 100755 index 0000000000..6b89c0127d --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-bytes-transferred-per-domain.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Bytes Transferred per Domain", + "uiStateJSON": "{\"vis\":{\"colors\":{\"Bytes In\":\"#F2C96D\",\"Bytes Out\":\"#629E51\",\"Count\":\"#1F78C1\",\"Unique count of dns.question.name\":\"#E0752D\"}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Bytes Out\",\"field\":\"destination.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Domains\",\"field\":\"dns.question.etld_plus_one\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":20},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Bytes In\",\"field\":\"source.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":true,\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"grouped\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Bytes Out\"},\"mode\":\"normal\",\"show\":\"true\",\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"},{\"data\":{\"id\":\"3\",\"label\":\"Bytes In\"},\"mode\":\"normal\",\"show\":true,\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":true,\"mode\":\"grouped\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Bytes Transferred per Domain\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-bytes-transferred-per-domain", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-c14377a0-d353-11e7-9914-4982455b3063.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-c14377a0-d353-11e7-9914-4982455b3063.json new file mode 100755 index 0000000000..1b5f21f993 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-c14377a0-d353-11e7-9914-4982455b3063.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"query\",\"negate\":false,\"type\":\"custom\",\"value\":\"{\\\"exists\\\":{\\\"field\\\":\\\"tls\\\"}}\"},\"query\":{\"exists\":{\"field\":\"tls\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.tls\"}}" + }, + "title": "[Network Packet Capture] TLS Alerts", + "uiStateJSON": "{\"vis\":{\"colors\":{\"None\":\"#7EB26D\",\"handshake_failure\":\"#E24D42\"}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"tls.detailed.alert_types\",\"include\":\".*\",\"json\":\"{\\\"missing\\\": \\\"None\\\"}\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"type\":\"pie\"},\"title\":\"[Network Packet Capture] TLS Alerts\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-c14377a0-d353-11e7-9914-4982455b3063", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-ops.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-ops.json new file mode 100755 index 0000000000..fcdb742965 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-ops.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Cassandra Ops", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"cassandra.request.headers.op\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"cassandra.response.headers.op\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"shareYAxis\":true},\"title\":\"[Network Packet Capture] Cassandra Ops\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-cassandra-ops", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-requestcount.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-requestcount.json new file mode 100755 index 0000000000..ac31b1fa2f --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-requestcount.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Cassandra RequestCount", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"legendPosition\":\"right\",\"radiusRatio\":9,\"scale\":\"square root\",\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":true,\"times\":[],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Cassandra RequestCount\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-cassandra-requestcount", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-requestcountbytype.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-requestcountbytype.json new file mode 100755 index 0000000000..be3352be29 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-requestcountbytype.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Cassandra RequestCountByType", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"cassandra.request.headers.op\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":10},\"schema\":\"group\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"4\",\"params\":{},\"schema\":\"radius\",\"type\":\"count\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"drawLinesBetweenPoints\":false,\"interpolate\":\"linear\",\"legendPosition\":\"right\",\"radiusRatio\":\"13\",\"scale\":\"log\",\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":true,\"times\":[],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Cassandra RequestCountByType\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-cassandra-requestcountbytype", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-requestcountstackbytype.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-requestcountstackbytype.json new file mode 100755 index 0000000000..9e1ebf6056 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-requestcountstackbytype.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Cassandra RequestCountStackByType", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"cassandra.request.headers.op\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"scale\":\"linear\",\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Cassandra RequestCountStackByType\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-cassandra-requestcountstackbytype", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsecountbytype.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsecountbytype.json new file mode 100755 index 0000000000..17a71a0e30 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsecountbytype.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Cassandra ResponseCountByType", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"id\":\"2\",\"params\":{\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"id\":\"3\",\"params\":{\"field\":\"cassandra.response.headers.op\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":10},\"schema\":\"group\",\"type\":\"terms\"},{\"id\":\"4\",\"params\":{},\"schema\":\"radius\",\"type\":\"count\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"drawLinesBetweenPoints\":false,\"interpolate\":\"linear\",\"radiusRatio\":\"15\",\"scale\":\"log\",\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":true,\"times\":[],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Cassandra: ResponseCountByType\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-cassandra-responsecountbytype", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsecountstackbytype.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsecountstackbytype.json new file mode 100755 index 0000000000..ee9d47e2f6 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsecountstackbytype.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Cassandra ResponseCountStackByType", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"cassandra.response.headers.op\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"scale\":\"linear\",\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Cassandra ResponseCountStackByType\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-cassandra-responsecountstackbytype", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsekeyspace.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsekeyspace.json new file mode 100755 index 0000000000..2f203d6dd9 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsekeyspace.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Cassandra ResponseKeyspace", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"cassandra.response.result.rows.meta.keyspace\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"cassandra.response.result.rows.meta.table\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"shareYAxis\":true},\"title\":\"[Network Packet Capture] Cassandra ResponseKeyspace\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-cassandra-responsekeyspace", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsetime.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsetime.json new file mode 100755 index 0000000000..152ebf53ef --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsetime.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Cassandra ResponseTime", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"event.duration\",\"percents\":[5,25,50,75,95]},\"schema\":\"metric\",\"type\":\"percentiles\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"drawLinesBetweenPoints\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"radiusRatio\":9,\"scale\":\"square root\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Percentiles of event.duration\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"normal\",\"radiusRatio\":9,\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":true,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"square root\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Percentiles of event.duration\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Cassandra ResponseTime\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-cassandra-responsetime", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsetype.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsetype.json new file mode 100755 index 0000000000..85c2b4d398 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-cassandra-responsetype.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Cassandra ResponseType", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"cassandra.response.result.type\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":false,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"shareYAxis\":true},\"title\":\"[Network Packet Capture] Cassandra ResponseType\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-cassandra-responsetype", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-eaa83e60-190b-11e9-be0d-adde5066235e", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-connections-over-time.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-connections-over-time.json new file mode 100755 index 0000000000..97d4affdf5 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-connections-over-time.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Connections over time", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Unique Flows\",\"field\":\"flow.id\"},\"schema\":\"metric\",\"type\":\"cardinality\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Unique Flows\"},\"interpolate\":\"cardinal\",\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":true,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Connections over time\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-connections-over-time", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-flows-search", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-d0120dc0-8bac-11e8-9676-ef67484126fb.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-d0120dc0-8bac-11e8-9676-ef67484126fb.json new file mode 100755 index 0000000000..d8cedfb7c3 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-d0120dc0-8bac-11e8-9676-ef67484126fb.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DHCPv4 Transaction Count", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Unique Transactions\",\"field\":\"dhcpv4.transaction_id\"},\"schema\":\"metric\",\"type\":\"cardinality\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"metric\":{\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"invertColors\":false,\"labels\":{\"show\":true},\"metricColorMode\":\"None\",\"percentageMode\":false,\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":60,\"labelColor\":false,\"subText\":\"\"},\"useRanges\":false},\"type\":\"metric\"},\"title\":\"[Network Packet Capture] DHCPv4 Transaction Count\",\"type\":\"metric\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-d0120dc0-8bac-11e8-9676-ef67484126fb", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-b8992150-8ba8-11e8-9676-ef67484126fb", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-d2e15950-d560-11e7-9fff-7b1ebf397ba9.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-d2e15950-d560-11e7-9fff-7b1ebf397ba9.json new file mode 100755 index 0000000000..856211710f --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-d2e15950-d560-11e7-9fff-7b1ebf397ba9.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"event.duration\",\"negate\":false,\"params\":{\"gte\":0,\"lt\":1000000000},\"type\":\"range\",\"value\":\"0 to 1,000,000,000\"},\"range\":{\"event.duration\":{\"gte\":0,\"lt\":1000000000}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] TLS Handshake Latency", + "uiStateJSON": "{\"vis\":{\"legendOpen\":false}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Handshake Latency (ns)\",\"extended_bounds\":{},\"field\":\"event.duration\",\"interval\":2000000},\"schema\":\"segment\",\"type\":\"histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Network Packet Capture] TLS Handshake Latency\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-d2e15950-d560-11e7-9fff-7b1ebf397ba9", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-8e2af860-d520-11e7-9fff-7b1ebf397ba9", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-db-transactions.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-db-transactions.json new file mode 100755 index 0000000000..475882f60d --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-db-transactions.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"event.type\",\"negate\":true,\"params\":{\"query\":\"flow\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"flow\"},\"query\":{\"match\":{\"event.type\":{\"query\":\"flow\",\"type\":\"phrase\"}}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"agent.type:packetbeat\"}}" + }, + "title": "[Network Packet Capture] Transaction Types", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"event.dataset\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Transaction Types\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-db-transactions", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dc743240-1665-11e7-a6de-cbac1a3d0a7d.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dc743240-1665-11e7-a6de-cbac1a3d0a7d.json new file mode 100755 index 0000000000..333052a373 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dc743240-1665-11e7-a6de-cbac1a3d0a7d.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.dns\"}}" + }, + "title": "[Network Packet Capture] Top Domains by Data Volume", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Bytes In\",\"field\":\"source.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"ETLD+1\",\"field\":\"dns.question.etld_plus_one\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"3\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":20},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Bytes Out\",\"field\":\"destination.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"}],\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] Top Domains by Data Volume\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-dc743240-1665-11e7-a6de-cbac1a3d0a7d", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-query-summary.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-query-summary.json new file mode 100755 index 0000000000..1898c984d8 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-query-summary.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DNS Query Summary", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Client Bytes\",\"field\":\"source.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Server Bytes\",\"field\":\"destination.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"4\",\"params\":{\"customLabel\":\"Avg Response Time (ns)\",\"field\":\"event.duration\"},\"schema\":\"metric\",\"type\":\"avg\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"fontSize\":\"17\",\"handleNoResults\":true,\"metric\":{\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"invertColors\":false,\"labels\":{\"show\":true},\"metricColorMode\":\"None\",\"percentageMode\":false,\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":28,\"labelColor\":false,\"subText\":\"\"},\"useRanges\":false},\"type\":\"metric\"},\"title\":\"[Network Packet Capture] DNS Query Summary\",\"type\":\"metric\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-dns-query-summary", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-question-types.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-question-types.json new file mode 100755 index 0000000000..b2a975b430 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-question-types.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DNS Question Types", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"dns.question.type\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":false,\"labels\":{\"last_level\":true,\"show\":false,\"truncate\":100,\"values\":true},\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"shareYAxis\":true,\"type\":\"pie\"},\"title\":\"[Network Packet Capture] DNS Question Types\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-dns-question-types", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-request-status-over-time.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-request-status-over-time.json new file mode 100755 index 0000000000..53c1b991c8 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-request-status-over-time.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DNS Request Status Over Time", + "uiStateJSON": "{\"vis\":{\"colors\":{\"Error\":\"#890F02\",\"OK\":\"#0A50A1\"}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"status\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"interpolate\":\"cardinal\",\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":false,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] DNS Request Status Over Time\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-dns-request-status-over-time", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-response-codes.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-response-codes.json new file mode 100755 index 0000000000..b9edd3cab4 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-response-codes.json @@ -0,0 +1,31 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DNS Response Codes", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Response Code\",\"field\":\"dns.response_code\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] DNS Response Codes\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-dns-response-codes", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-top-10-questions.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-top-10-questions.json new file mode 100755 index 0000000000..d86db94a8d --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-dns-top-10-questions.json @@ -0,0 +1,36 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"status\",\"negate\":false,\"params\":{\"query\":\"OK\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"OK\"},\"query\":{\"match\":{\"status\":{\"query\":\"OK\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"fragment_size\":2147483647,\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"],\"require_field_match\":false},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DNS Top 10 Questions", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Question\",\"field\":\"dns.question.name\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":30},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] DNS Top 10 Questions\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-dns-top-10-questions", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-e3f09730-1b80-11e9-83df-75eebb35951e.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-e3f09730-1b80-11e9-83df-75eebb35951e.json new file mode 100755 index 0000000000..b89d822540 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-e3f09730-1b80-11e9-83df-75eebb35951e.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DNS Transactions", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Avg Response Time\",\"field\":\"event.duration\"},\"schema\":\"metric\",\"type\":\"avg\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Avg Response Time\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"},{\"data\":{\"id\":\"3\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"lineWidth\":3.5,\"mode\":\"stacked\",\"show\":true,\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-2\"}],\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Avg Response Time\"},\"type\":\"value\"},{\"id\":\"ValueAxis-2\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"RightAxis-1\",\"position\":\"right\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Network Packet Capture] DNS Transactions\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-e3f09730-1b80-11e9-83df-75eebb35951e", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-errors-count-over-time.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-errors-count-over-time.json new file mode 100755 index 0000000000..5582bc6c67 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-errors-count-over-time.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Errors count over time", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"id\":\"2\",\"params\":{\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"30s\",\"min_doc_count\":1},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"id\":\"3\",\"params\":{\"field\":\"type\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"mode\":\"stacked\",\"scale\":\"linear\",\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"yAxis\":{}},\"title\":\"[Network Packet Capture] New Visualization\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-errors-count-over-time", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-transactions-errors", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-errors-vs-successful-transactions.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-errors-vs-successful-transactions.json new file mode 100755 index 0000000000..c3ac23f5a7 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-errors-vs-successful-transactions.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Errors vs successful transactions", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"status\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"percentage\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"percentage\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Errors vs successful transactions\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-errors-vs-successful-transactions", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-search", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-f43a8f20-8bb5-11e8-9676-ef67484126fb.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-f43a8f20-8bb5-11e8-9676-ef67484126fb.json new file mode 100755 index 0000000000..c0d680e520 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-f43a8f20-8bb5-11e8-9676-ef67484126fb.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] DHCPv4 Data Transfer", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Requests\",\"field\":\"client.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Responses\",\"field\":\"server.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"metric\":{\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"invertColors\":false,\"labels\":{\"show\":true},\"metricColorMode\":\"None\",\"percentageMode\":false,\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":24,\"labelColor\":false,\"subText\":\"\"},\"useRanges\":false},\"type\":\"metric\"},\"title\":\"[Network Packet Capture] DHCPv4 Data Transfer\",\"type\":\"metric\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-f43a8f20-8bb5-11e8-9676-ef67484126fb", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-b8992150-8ba8-11e8-9676-ef67484126fb", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-http-codes-for-the-top-queries.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-http-codes-for-the-top-queries.json new file mode 100755 index 0000000000..d8885cd43f --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-http-codes-for-the-top-queries.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] HTTP status codes for the top queries", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"HTTP Query\",\"field\":\"query\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"split\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"HTTP Status Code\",\"field\":\"http.response.status_code\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":false,\"labels\":{\"last_level\":true,\"show\":false,\"truncate\":100,\"values\":true},\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"row\":false,\"shareYAxis\":true,\"type\":\"pie\"},\"title\":\"[Network Packet Capture] HTTP status codes for the top queries\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-http-codes-for-the-top-queries", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-71908f00-88ca-11e7-ad9c-db80de0bf8d3", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-http-error-codes-evolution.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-http-error-codes-evolution.json new file mode 100755 index 0000000000..479733a2af --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-http-error-codes-evolution.json @@ -0,0 +1,35 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"network.protocol\",\"negate\":false,\"params\":{\"query\":\"http\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"http\"},\"query\":{\"match\":{\"network.protocol\":{\"query\":\"http\",\"type\":\"phrase\"}}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\",\"key\":\"http.response.status_code\",\"negate\":true,\"params\":{\"gte\":200,\"lt\":299},\"type\":\"range\",\"value\":\"200 to 299\"},\"range\":{\"http.response.status_code\":{\"gte\":200,\"lte\":299}}}],\"highlight\":{\"fields\":{\"*\":{}},\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"]},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.http\"}}" + }, + "title": "[Network Packet Capture] HTTP error codes evolution", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"HTTP Status Code\",\"field\":\"http.response.status_code\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"drawLinesBetweenPoints\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"mode\":\"normal\",\"radiusRatio\":9,\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":false,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] HTTP error codes evolution\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-http-error-codes-evolution", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-http-error-codes.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-http-error-codes.json new file mode 100755 index 0000000000..1cb90080fc --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-http-error-codes.json @@ -0,0 +1,30 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"type\",\"negate\":false,\"params\":{\"query\":\"http\",\"type\":\"phrase\"},\"type\":\"phrase\",\"value\":\"http\"},\"query\":{\"match\":{\"network.protocol\":{\"query\":\"http\",\"type\":\"phrase\"}}}}],\"highlight\":{\"fields\":{\"*\":{}},\"post_tags\":[\"@/kibana-highlighted-field@\"],\"pre_tags\":[\"@kibana-highlighted-field@\"]},\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset:network_traffic.http and http.response.status_code \\u003e= 300\"}}" + }, + "title": "[Network Packet Capture] HTTP error codes", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"type\"},\"schema\":\"metric\",\"type\":\"cardinality\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"HTTP Status Code\",\"field\":\"http.response.status_code\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":false,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Unique count of type\"},\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] HTTP error codes\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-http-error-codes", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-latency-histogram.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-latency-histogram.json new file mode 100755 index 0000000000..34aa0f3d11 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-latency-histogram.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Latency Histogram", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"extended_bounds\":{},\"field\":\"event.duration\",\"interval\":10000000},\"schema\":\"segment\",\"type\":\"histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"interpolate\":\"cardinal\",\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":true,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Latency Histogram\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-latency-histogram", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-search", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-commands.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-commands.json new file mode 100755 index 0000000000..87474df326 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-commands.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] MongoDB Commands", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"method\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"silhouette\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"interpolate\":\"cardinal\",\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":true,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"silhouette\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] MongoDB Commands\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mongodb-commands", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mongodb-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-errors-per-collection.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-errors-per-collection.json new file mode 100755 index 0000000000..ea23f3560f --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-errors-per-collection.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] MongoDB errors per collection", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"resource\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"drawLinesBetweenPoints\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"mode\":\"normal\",\"radiusRatio\":9,\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":false,\"spyPerPage\":10,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] MongoDB errors per collection\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mongodb-errors-per-collection", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-651fd6d0-88d0-11e7-ad9c-db80de0bf8d3", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-errors.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-errors.json new file mode 100755 index 0000000000..183ec66ef3 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-errors.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] MongoDB errors", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"resource\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":3},\"schema\":\"split\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"4\",\"params\":{\"field\":\"method\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"drawLinesBetweenPoints\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"radiusRatio\":9,\"row\":true,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"mode\":\"normal\",\"radiusRatio\":9,\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":false,\"spyPerPage\":10,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] MongoDB errors\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mongodb-errors", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-651fd6d0-88d0-11e7-ad9c-db80de0bf8d3", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-in-slash-out-throughput.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-in-slash-out-throughput.json new file mode 100755 index 0000000000..74b8a6fd64 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-in-slash-out-throughput.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] MongoDB in/out throughput", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"source.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"4\",\"params\":{\"field\":\"destination.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"drawLinesBetweenPoints\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Sum of source.bytes\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"mode\":\"normal\",\"radiusRatio\":9,\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"},{\"data\":{\"id\":\"4\",\"label\":\"Sum of destination.bytes\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":false,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] MongoDB in/out throughput\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mongodb-in-slash-out-throughput", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mongodb-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-response-times-by-collection.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-response-times-by-collection.json new file mode 100755 index 0000000000..0346b7b1cd --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mongodb-response-times-by-collection.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] MongoDB response times by collection", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"event.duration\",\"percents\":[99]},\"schema\":\"metric\",\"type\":\"percentiles\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"resource\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"_key\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"4\",\"params\":{},\"schema\":\"radius\",\"type\":\"count\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"drawLinesBetweenPoints\":false,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"radiusRatio\":\"9\",\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Percentiles of event.duration\"},\"drawLinesBetweenPoints\":false,\"interpolate\":\"linear\",\"mode\":\"normal\",\"radiusRatio\":\"9\",\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":false,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Percentiles of event.duration\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] MongoDB response times by collection\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mongodb-response-times-by-collection", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mongodb-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-most-frequent-mysql-queries.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-most-frequent-mysql-queries.json new file mode 100755 index 0000000000..08c27fcecf --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-most-frequent-mysql-queries.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Most frequent MySQL queries", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"id\":\"2\",\"params\":{\"field\":\"query\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"listeners\":{},\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true},\"title\":\"[Network Packet Capture] Most frequent MySQL queries\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-most-frequent-mysql-queries", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mysql-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-most-frequent-pgsql-queries.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-most-frequent-pgsql-queries.json new file mode 100755 index 0000000000..6ddc08eafb --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-most-frequent-pgsql-queries.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Most frequent PgSQL queries", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"query\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] Most frequent PgSQL queries\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-most-frequent-pgsql-queries", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-pgsql-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-errors.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-errors.json new file mode 100755 index 0000000000..25ded66860 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-errors.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] MySQL Errors", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":false,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"interpolate\":\"linear\",\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":false,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] MySQL Errors\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mysql-errors", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mysql-errors", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-methods.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-methods.json new file mode 100755 index 0000000000..34e609f25b --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-methods.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] MySQL Methods", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"method\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":20},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"wiggle\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"interpolate\":\"linear\",\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":false,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"wiggle\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] MySQL Methods\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mysql-methods", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mysql-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-reads-vs-writes.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-reads-vs-writes.json new file mode 100755 index 0000000000..4fece54090 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-reads-vs-writes.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] MySQL Reads vs Writes", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"filters\":[{\"input\":{\"language\":\"lucene\",\"query\":\"method: SELECT\"}},{\"input\":{\"language\":\"lucene\",\"query\":\"method: INSERT OR method: UPDATE OR method: DELETE\"}}]},\"schema\":\"group\",\"type\":\"filters\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"@timestamp per 30 seconds\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":false,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] MySQL Reads vs Writes\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mysql-reads-vs-writes", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mysql-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-response-times-percentiles.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-response-times-percentiles.json new file mode 100755 index 0000000000..add1156167 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-response-times-percentiles.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Mysql response times percentiles", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"event.duration\",\"percents\":[75,99,99.5]},\"schema\":\"metric\",\"type\":\"percentiles\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Percentiles of event.duration\"},\"mode\":\"normal\",\"show\":\"true\",\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"shareYAxis\":true,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Percentiles of event.duration\"},\"type\":\"value\"}]},\"title\":\"[Network Packet Capture] Mysql response times percentiles\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mysql-response-times-percentiles", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mysql-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-throughput.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-throughput.json new file mode 100755 index 0000000000..fd67a3b714 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-mysql-throughput.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] MySQL throughput", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"destination.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"source.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"4\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Sum of destination.bytes\"},\"mode\":\"normal\",\"show\":\"true\",\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"},{\"data\":{\"id\":\"3\",\"label\":\"Sum of source.bytes\"},\"mode\":\"normal\",\"show\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"shareYAxis\":true,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Network Packet Capture] MySQL throughput\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-mysql-throughput", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mysql-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-navigation.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-navigation.json new file mode 100755 index 0000000000..958a4a7a7c --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-navigation.json @@ -0,0 +1,19 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "title": "[Network Packet Capture] Navigation", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[],\"params\":{\"fontSize\":10,\"markdown\":\"### Network Packet Capture:\\n\\n[Overview](#/dashboard/network_traffic-dashboard)\\n\\n[Network Flows](#/dashboard/network_traffic-flows)\\n\\n[DNS Overview](#/dashboard/network_traffic-65120940-1454-11e9-9de0-f98d1808db8e) | [Tunneling](#/dashboard/network_traffic-dns-unique-domains)\\n\\n[DHCPv4 Transactions](#/dashboard/network_traffic-a7b35890-8baa-11e8-9676-ef67484126fb)\\n\\n[TLS Overview](#/dashboard/network_traffic-tls-sessions)\\n\\n[HTTP transactions](#/dashboard/network_traffic-http)\\n\\nDatabases: [MySQL](#/dashboard/network_traffic-mysql-performance) | [PostgreSQL](#/dashboard/network_traffic-pgsql-performance) | [MongoDB](#/dashboard/network_traffic-mongodb-performance) | [Cassandra](#/dashboard/network_traffic-cassandra)\\n\\nRPC: [Thrift](#/dashboard/network_traffic-thrift-performance)\\n\\nStorage: [NFS](#/dashboard/network_traffic-nfs)\",\"openLinksInNewTab\":false},\"title\":\"[Network Packet Capture] Navigation\",\"type\":\"markdown\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-navigation", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-network-traffic-between-your-hosts.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-network-traffic-between-your-hosts.json new file mode 100755 index 0000000000..292355bbdf --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-network-traffic-between-your-hosts.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Traffic Between Hosts", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Source Bytes\",\"field\":\"source.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Destination Bytes\",\"field\":\"destination.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Source IP\",\"field\":\"source.ip\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"4\",\"params\":{\"customLabel\":\"Destination IP\",\"field\":\"destination.ip\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] Traffic Between Hosts\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-network-traffic-between-your-hosts", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-flows-search", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-bytes-in-slash-out.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-bytes-in-slash-out.json new file mode 100755 index 0000000000..8b550d78cf --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-bytes-in-slash-out.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] NFS Request / Response Sizes", + "uiStateJSON": "{\"vis\":{\"colors\":{\"Sum of rpc.reply_size\":\"#7EB26D\"}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Request Size\",\"field\":\"source.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Response Size\",\"field\":\"destination.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"drawLinesBetweenPoints\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Request Size\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"mode\":\"normal\",\"radiusRatio\":9,\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"},{\"data\":{\"id\":\"2\",\"label\":\"Response Size\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"mode\":\"normal\",\"show\":true,\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":false,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] NFS Request / Response Sizes\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-nfs-bytes-in-slash-out", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-nfs", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-clients-pie-chart.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-clients-pie-chart.json new file mode 100755 index 0000000000..4272f7571e --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-clients-pie-chart.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] NFS clients pie chart", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"rpc.cred.machinename\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":16},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":true,\"labels\":{\"last_level\":true,\"show\":false,\"truncate\":100,\"values\":true},\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"shareYAxis\":true,\"type\":\"pie\"},\"title\":\"[Network Packet Capture] NFS clients pie chart\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-nfs-clients-pie-chart", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-nfs", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-errors.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-errors.json new file mode 100755 index 0000000000..f407f4153d --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-errors.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] NFS errors", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"nfs.status\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":12},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"interpolate\":\"linear\",\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":false,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] NFS errors\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-nfs-errors", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-nfs-errors-search", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-operation-table.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-operation-table.json new file mode 100755 index 0000000000..56e28320c1 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-operation-table.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] NFS operation table", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Avg Response Time\",\"field\":\"event.duration\"},\"schema\":\"metric\",\"type\":\"avg\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Opcode\",\"field\":\"nfs.opcode\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":16},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"}],\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] NFS operation table\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-nfs-operation-table", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-nfs", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-operations-area-chart.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-operations-area-chart.json new file mode 100755 index 0000000000..56cb538f8f --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-operations-area-chart.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] NFS operations area chart", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"id\":\"2\",\"params\":{\"field\":\"nfs.opcode\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":16},\"schema\":\"group\",\"type\":\"terms\"},{\"id\":\"3\",\"params\":{\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"interpolate\":\"linear\",\"mode\":\"stacked\",\"scale\":\"linear\",\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":true,\"times\":[],\"yAxis\":{}},\"title\":\"[Network Packet Capture] NFS operations area chart\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-nfs-operations-area-chart", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-nfs", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-response-times.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-response-times.json new file mode 100755 index 0000000000..2ffaacd816 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-response-times.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] NFS response times", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"event.duration\",\"percents\":[50]},\"schema\":\"metric\",\"type\":\"median\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":true,\"detailedTooltip\":true,\"drawLinesBetweenPoints\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"radiusRatio\":\"9\",\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Median event.duration\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"normal\",\"radiusRatio\":\"9\",\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":true,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":true,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Median event.duration\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] NFS response times\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-nfs-response-times", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-nfs", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-top-group-pie-chart.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-top-group-pie-chart.json new file mode 100755 index 0000000000..c1b2816c13 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-top-group-pie-chart.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] NFS top group pie chart", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"rpc.cred.gid\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":16},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":false,\"labels\":{\"last_level\":true,\"show\":false,\"truncate\":100,\"values\":true},\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"shareYAxis\":true,\"type\":\"pie\"},\"title\":\"[Network Packet Capture] NFS top group pie chart\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-nfs-top-group-pie-chart", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-nfs", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-top-users-pie-chart.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-top-users-pie-chart.json new file mode 100755 index 0000000000..543bfe7058 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-nfs-top-users-pie-chart.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] NFS top users pie chart", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"rpc.cred.uid\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":16},\"schema\":\"segment\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTooltip\":true,\"distinctColors\":true,\"isDonut\":false,\"labels\":{\"last_level\":true,\"show\":false,\"truncate\":100,\"values\":true},\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"shareYAxis\":true,\"type\":\"pie\"},\"title\":\"[Network Packet Capture] NFS top users pie chart\",\"type\":\"pie\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-nfs-top-users-pie-chart", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-nfs", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-number-of-mongodb-transactions-with-writeconcern-w-equal-0.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-number-of-mongodb-transactions-with-writeconcern-w-equal-0.json new file mode 100755 index 0000000000..770c776e13 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-number-of-mongodb-transactions-with-writeconcern-w-equal-0.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Number of MongoDB transactions with writeConcern w=0", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{},\"schema\":\"radius\",\"type\":\"count\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"drawLinesBetweenPoints\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"mode\":\"normal\",\"radiusRatio\":9,\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":false,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Number of MongoDB transactions with writeConcern w=0\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-number-of-mongodb-transactions-with-writeconcern-w-equal-0", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mongodb-transactions-with-write-concern-0", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-errors.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-errors.json new file mode 100755 index 0000000000..88a19443ff --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-errors.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] PgSQL Errors", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":false,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"interpolate\":\"linear\",\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":false,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] PgSQL Errors\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-pgsql-errors", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-pgsql-errors", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-methods.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-methods.json new file mode 100755 index 0000000000..e49215022c --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-methods.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] PgSQL Methods", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"method\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"wiggle\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"interpolate\":\"linear\",\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":false,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"wiggle\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] PgSQL Methods\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-pgsql-methods", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-pgsql-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-reads-vs-writes.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-reads-vs-writes.json new file mode 100755 index 0000000000..60be8776dd --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-reads-vs-writes.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] PgSQL Reads vs Writes", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"filters\":[{\"input\":{\"language\":\"lucene\",\"query\":\"method: SELECT\"}},{\"input\":{\"language\":\"lucene\",\"query\":\"method: INSERT OR method: UPDATE OR method: DELETE\"}}]},\"schema\":\"group\",\"type\":\"filters\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"@timestamp per 30 seconds\"},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"linear\",\"mode\":\"stacked\",\"show\":\"true\",\"showCircles\":true,\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":false,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"mode\":\"normal\",\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] PgSQL Reads vs Writes\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-pgsql-reads-vs-writes", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-pgsql-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-response-times-percentiles.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-response-times-percentiles.json new file mode 100755 index 0000000000..66eb8b3b8b --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-response-times-percentiles.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] PgSQL response times percentiles", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"event.duration\",\"percents\":[75,99,99.5]},\"schema\":\"metric\",\"type\":\"percentiles\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Percentiles of event.duration\"},\"mode\":\"normal\",\"show\":\"true\",\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"shareYAxis\":true,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Percentiles of event.duration\"},\"type\":\"value\"}]},\"title\":\"[Network Packet Capture] PgSQL response times percentiles\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-pgsql-response-times-percentiles", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-pgsql-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-throughput.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-throughput.json new file mode 100755 index 0000000000..aba4ebafd0 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-pgsql-throughput.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] PgSQL Throughput", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"destination.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"source.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Sum of destination.bytes\"},\"mode\":\"normal\",\"show\":\"true\",\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"},{\"data\":{\"id\":\"2\",\"label\":\"Sum of source.bytes\"},\"mode\":\"normal\",\"show\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"shareYAxis\":true,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}]},\"title\":\"[Network Packet Capture] PgSQL Throughput\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-pgsql-throughput", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-pgsql-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-response-times-percentiles.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-response-times-percentiles.json new file mode 100755 index 0000000000..f43cfc0233 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-response-times-percentiles.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Response times percentiles", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"event.duration\",\"percents\":[75,95,99]},\"schema\":\"metric\",\"type\":\"percentiles\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"drawLinesBetweenPoints\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"radiusRatio\":9,\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Percentiles of event.duration\"},\"drawLinesBetweenPoints\":true,\"interpolate\":\"cardinal\",\"mode\":\"normal\",\"radiusRatio\":9,\"show\":\"true\",\"showCircles\":true,\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"showCircles\":true,\"smoothLines\":true,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Percentiles of event.duration\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Response times percentiles\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-response-times-percentiles", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-search", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-response-times-repartition.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-response-times-repartition.json new file mode 100755 index 0000000000..2271bdb9a7 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-response-times-repartition.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Response times repartition", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"extended_bounds\":{},\"field\":\"event.duration\",\"interval\":10000000},\"schema\":\"group\",\"type\":\"histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Response times repartition\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-response-times-repartition", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-search", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-slowest-mysql-queries.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-slowest-mysql-queries.json new file mode 100755 index 0000000000..9194c62aaa --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-slowest-mysql-queries.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Slowest MySQL queries", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Avg Response Time\",\"field\":\"event.duration\"},\"schema\":\"metric\",\"type\":\"avg\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"query\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] Slowest MySQL queries\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-slowest-mysql-queries", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mysql-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-slowest-pgsql-queries.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-slowest-pgsql-queries.json new file mode 100755 index 0000000000..ce2d661459 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-slowest-pgsql-queries.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Slowest PgSQL Queries", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Average Response Time (ns)\",\"field\":\"event.duration\"},\"schema\":\"metric\",\"type\":\"avg\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"query\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] Slowest PgSQL Queries\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-slowest-pgsql-queries", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-pgsql-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-slowest-thrift-rpc-methods.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-slowest-thrift-rpc-methods.json new file mode 100755 index 0000000000..777f4d7abe --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-slowest-thrift-rpc-methods.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Slowest Thrift RPC methods", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"event.duration\"},\"schema\":\"metric\",\"type\":\"avg\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"method\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] Slowest Thrift RPC methods\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-slowest-thrift-rpc-methods", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-thrift-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-thrift-requests-per-minute.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-thrift-requests-per-minute.json new file mode 100755 index 0000000000..e9dee7461a --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-thrift-requests-per-minute.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Thrift requests per minute", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"id\":\"2\",\"params\":{\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"m\",\"min_doc_count\":1},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"listeners\":{},\"params\":{\"addLegend\":false,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"mode\":\"stacked\",\"scale\":\"linear\",\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Thrift requests per minute\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-thrift-requests-per-minute", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-thrift-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-thrift-response-times-percentiles.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-thrift-response-times-percentiles.json new file mode 100755 index 0000000000..835ee06280 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-thrift-response-times-percentiles.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Thrift response times percentiles", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"event.duration\",\"percents\":[75,99,99.5]},\"schema\":\"metric\",\"type\":\"percentiles\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Percentiles of event.duration\"},\"mode\":\"normal\",\"show\":\"true\",\"type\":\"line\",\"valueAxis\":\"ValueAxis-1\"}],\"shareYAxis\":true,\"times\":[],\"type\":\"line\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Percentiles of event.duration\"},\"type\":\"value\"}]},\"title\":\"[Network Packet Capture] Thrift response times percentiles\",\"type\":\"line\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-thrift-response-times-percentiles", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-thrift-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-thrift-rpc-errors.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-thrift-rpc-errors.json new file mode 100755 index 0000000000..37e3e901fc --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-thrift-rpc-errors.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Thrift RPC Errors", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"id\":\"2\",\"params\":{\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"listeners\":{},\"params\":{\"addLegend\":false,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"interpolate\":\"linear\",\"mode\":\"stacked\",\"scale\":\"linear\",\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":false,\"times\":[],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Thrift RPC Errors\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-thrift-rpc-errors", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-thrift-errors", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-10-http-requests.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-10-http-requests.json new file mode 100755 index 0000000000..bb5c71dbfe --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-10-http-requests.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Top 10 HTTP requests", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"field\":\"url.full\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] Top 10 HTTP requests\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-top-10-http-requests", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-71908f00-88ca-11e7-ad9c-db80de0bf8d3", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-hosts-creating-traffic.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-hosts-creating-traffic.json new file mode 100755 index 0000000000..842f9f29ec --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-hosts-creating-traffic.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Top Hosts Creating Traffic", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Source Bytes\",\"field\":\"source.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Source IP\",\"field\":\"source.ip\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Source Bytes\"},\"interpolate\":\"cardinal\",\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":true,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Top Hosts Creating Traffic\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-top-hosts-creating-traffic", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-flows-search", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-hosts-receiving-traffic.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-hosts-receiving-traffic.json new file mode 100755 index 0000000000..34f9d74be2 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-hosts-receiving-traffic.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Top Hosts Receiving Traffic", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Destination Bytes\",\"field\":\"destination.bytes\"},\"schema\":\"metric\",\"type\":\"sum\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Destination IP\",\"field\":\"destination.ip\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":5},\"schema\":\"group\",\"type\":\"terms\"}],\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"fittingFunction\":\"zero\",\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"interpolate\":\"linear\",\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Destination Bytes\"},\"interpolate\":\"cardinal\",\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"area\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"smoothLines\":true,\"times\":[],\"type\":\"area\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Top Hosts Receiving Traffic\",\"type\":\"area\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-top-hosts-receiving-traffic", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-flows-search", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-slowest-mongodb-queries.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-slowest-mongodb-queries.json new file mode 100755 index 0000000000..e39b39b7f9 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-slowest-mongodb-queries.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Top slowest MongoDB queries", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"field\":\"event.duration\",\"percents\":[99]},\"schema\":\"metric\",\"type\":\"percentiles\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"field\":\"query\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"_key\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"bucket\",\"type\":\"terms\"}],\"params\":{\"perPage\":10,\"showMetricsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] Top slowest MongoDB queries\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-top-slowest-mongodb-queries", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-mongodb-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-thrift-rpc-calls-with-errors.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-thrift-rpc-calls-with-errors.json new file mode 100755 index 0000000000..3f7aee4851 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-thrift-rpc-calls-with-errors.json @@ -0,0 +1,25 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Top Thrift-RPC calls with errors", + "version": 1, + "visState": "{\"aggs\":[{\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"id\":\"2\",\"params\":{\"field\":\"method\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"listeners\":{},\"params\":{\"addLegend\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"mode\":\"stacked\",\"shareYAxis\":true},\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-top-thrift-rpc-calls-with-errors", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-thrift-errors", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-thrift-rpc-methods.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-thrift-rpc-methods.json new file mode 100755 index 0000000000..8add979f7b --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-top-thrift-rpc-methods.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Top Thrift-RPC methods ", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"id\":\"2\",\"params\":{\"field\":\"method\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":5},\"schema\":\"segment\",\"type\":\"terms\"}],\"listeners\":{},\"params\":{\"addLegend\":false,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":false,\"mode\":\"stacked\",\"scale\":\"linear\",\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Top Thrift-RPC methods\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-top-thrift-rpc-methods", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-thrift-transactions", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-total-number-of-http-transactions.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-total-number-of-http-transactions.json new file mode 100755 index 0000000000..77e8f9b41a --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-total-number-of-http-transactions.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Total number of HTTP transactions", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"}],\"params\":{\"addLegend\":false,\"addTooltip\":true,\"fontSize\":\"37\",\"handleNoResults\":true,\"metric\":{\"colorSchema\":\"Green to Red\",\"colorsRange\":[{\"from\":0,\"to\":10000}],\"invertColors\":false,\"labels\":{\"show\":true},\"metricColorMode\":\"None\",\"percentageMode\":false,\"style\":{\"bgColor\":false,\"bgFill\":\"#000\",\"fontSize\":60,\"labelColor\":false,\"subText\":\"\"},\"useRanges\":false},\"type\":\"metric\"},\"title\":\"[Network Packet Capture] Total number of HTTP transactions\",\"type\":\"metric\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-total-number-of-http-transactions", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-71908f00-88ca-11e7-ad9c-db80de0bf8d3", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-unique-fqdns-per-etld-1-table.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-unique-fqdns-per-etld-1-table.json new file mode 100755 index 0000000000..93a9d62de2 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-unique-fqdns-per-etld-1-table.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Unique FQDNs per eTLD+1 Table", + "uiStateJSON": "{\"vis\":{\"params\":{\"sort\":{\"columnIndex\":null,\"direction\":null}}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"\"},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"ETLD+1\",\"field\":\"dns.question.etld_plus_one\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":20},\"schema\":\"bucket\",\"type\":\"terms\"},{\"enabled\":true,\"id\":\"3\",\"params\":{\"customLabel\":\"Unique Domains\",\"field\":\"dns.question.name\"},\"schema\":\"metric\",\"type\":\"cardinality\"}],\"listeners\":{},\"params\":{\"perPage\":10,\"showMeticsAtAllLevels\":false,\"showPartialRows\":false,\"showToolbar\":true,\"showTotal\":false,\"sort\":{\"columnIndex\":null,\"direction\":null},\"totalFunc\":\"sum\"},\"title\":\"[Network Packet Capture] Unique FQDNs per eTLD+1 Table\",\"type\":\"table\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-unique-fqdns-per-etld-1-table", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-unique-fqdns-per-etld-1.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-unique-fqdns-per-etld-1.json new file mode 100755 index 0000000000..e94d78a938 --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-unique-fqdns-per-etld-1.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[]}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] Unique FQDNs per eTLD+1", + "uiStateJSON": "{\"vis\":{\"colors\":{\"Count\":\"#1F78C1\",\"Unique count of dns.question.name\":\"#E0752D\"}}}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Unique Subdomain Count\",\"field\":\"dns.question.name\"},\"schema\":\"metric\",\"type\":\"cardinality\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Domains\",\"field\":\"dns.question.etld_plus_one\",\"order\":\"desc\",\"orderBy\":\"1\",\"size\":20},\"schema\":\"segment\",\"type\":\"terms\"}],\"listeners\":{},\"params\":{\"addLegend\":true,\"addTimeMarker\":false,\"addTooltip\":true,\"defaultYExtents\":true,\"legendPosition\":\"right\",\"mode\":\"grouped\",\"scale\":\"linear\",\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"yAxis\":{}},\"title\":\"[Network Packet Capture] Unique FQDNs per eTLD+1\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-unique-fqdns-per-etld-1", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-d19e8485-7df5-47ce-8009-9dc3c42bcf17", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-web-transactions.json b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-web-transactions.json new file mode 100755 index 0000000000..354ec98cef --- /dev/null +++ b/packages/network_traffic/1.1.0/kibana/visualization/network_traffic-web-transactions.json @@ -0,0 +1,26 @@ +{ + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "savedSearchRefName": "search_0", + "title": "[Network Packet Capture] HTTP Transactions", + "uiStateJSON": "{}", + "version": 1, + "visState": "{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{},\"schema\":\"metric\",\"type\":\"count\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"drop_partials\":false,\"extended_bounds\":{},\"field\":\"@timestamp\",\"interval\":\"auto\",\"min_doc_count\":1,\"useNormalizedEsInterval\":true},\"schema\":\"segment\",\"type\":\"date_histogram\"}],\"params\":{\"addLegend\":false,\"addTimeMarker\":false,\"addTooltip\":true,\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"labels\":{\"filter\":true,\"show\":true,\"truncate\":100},\"position\":\"bottom\",\"scale\":{\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{},\"type\":\"category\"}],\"defaultYExtents\":false,\"detailedTooltip\":true,\"grid\":{\"categoryLines\":false,\"style\":{\"color\":\"#eee\"}},\"isVislibVis\":true,\"legendPosition\":\"right\",\"mode\":\"stacked\",\"palette\":{\"name\":\"kibana_palette\",\"type\":\"palette\"},\"scale\":\"linear\",\"seriesParams\":[{\"data\":{\"id\":\"1\",\"label\":\"Count\"},\"mode\":\"stacked\",\"show\":\"true\",\"type\":\"histogram\",\"valueAxis\":\"ValueAxis-1\"}],\"setYExtents\":false,\"shareYAxis\":true,\"times\":[],\"type\":\"histogram\",\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"labels\":{\"filter\":false,\"rotate\":0,\"show\":true,\"truncate\":100},\"name\":\"LeftAxis-1\",\"position\":\"left\",\"scale\":{\"defaultYExtents\":false,\"mode\":\"normal\",\"setYExtents\":false,\"type\":\"linear\"},\"show\":true,\"style\":{},\"title\":{\"text\":\"Count\"},\"type\":\"value\"}],\"yAxis\":{}},\"title\":\"[Network Packet Capture] HTTP Transactions\",\"type\":\"histogram\"}" + }, + "coreMigrationVersion": "7.17.0", + "id": "network_traffic-web-transactions", + "migrationVersion": { + "visualization": "7.17.0" + }, + "references": [ + { + "id": "network_traffic-71908f00-88ca-11e7-ad9c-db80de0bf8d3", + "name": "search_0", + "type": "search" + } + ], + "type": "visualization" +} \ No newline at end of file diff --git a/packages/network_traffic/1.1.0/manifest.yml b/packages/network_traffic/1.1.0/manifest.yml new file mode 100755 index 0000000000..b7131f66f3 --- /dev/null +++ b/packages/network_traffic/1.1.0/manifest.yml @@ -0,0 +1,28 @@ +format_version: 1.0.0 +name: network_traffic +title: Network Packet Capture +version: 1.1.0 +license: basic +description: Capture and analyze network traffic from a host with Elastic Agent. +type: integration +categories: + - web +release: ga +conditions: + kibana.version: ^7.17.0 || ^8.0.0 +policy_templates: + - name: network + title: Network Packet Capture + description: Capture network traffic + inputs: + - type: packet + title: Capture network traffic + description: Collecting network traffic + vars: + - name: interface + type: text + title: Interface + required: false + show_user: false +owner: + github: elastic/security-external-integrations diff --git a/packages/proofpoint_tap/0.1.0/changelog.yml b/packages/proofpoint_tap/0.1.0/changelog.yml new file mode 100755 index 0000000000..fb37f7f3f1 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/changelog.yml @@ -0,0 +1,6 @@ +# newer versions go on top +- version: 0.1.0 + changes: + - description: Initial draft of the package. + type: enhancement + link: https://github.com/elastic/integrations/pull/3201 diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/agent/stream/httpjson.yml.hbs b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..c6e6cfa7ec --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/agent/stream/httpjson.yml.hbs @@ -0,0 +1,44 @@ +config_version: 2 +interval: {{interval}} +{{#if proxy_url }} +request.proxy_url: {{proxy_url}} +{{/if}} +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} +request.method: GET +request.url: {{url}}/v2/siem/clicks/blocked +auth.basic.user: {{principal}} +auth.basic.password: {{secret}} +request.transforms: + - set: + target: url.params.format + value: json + - set: + target: url.params.interval + value: '[[if (le (formatDate ((parseDate .cursor.last_received_time "RFC3339").Add (parseDuration "1h"))) (formatDate (now)))]][[formatDate (parseDate .cursor.last_received_time "RFC3339")]]/[[formatDate ((parseDate .cursor.last_received_time "RFC3339").Add (parseDuration "1h"))]][[else]][[formatDate (parseDate .cursor.last_received_time "RFC3339")]]/[[formatDate now]][[end]]' + default: '[[formatDate (now (parseDuration "-{{initial_interval}}"))]]/[[formatDate ((now (parseDuration "-{{initial_interval}}")).Add (parseDuration "1h"))]]' +response.pagination: + - set: + target: url.params.interval + value: '[[if (le (formatDate ((parseDate .last_response.body.queryEndTime "RFC3339").Add (parseDuration "1h"))) (formatDate (now)))]][[formatDate (parseDate .last_response.body.queryEndTime "RFC3339")]]/[[formatDate ((parseDate .last_response.body.queryEndTime "RFC3339").Add (parseDuration "1h"))]][[else]][[.last_response.terminate_pagination]][[end]]' + fail_on_template_error: true +cursor: + last_received_time: + value: '[[.last_response.body.queryEndTime]]' +response.split: + target: body.clicksBlocked +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/elasticsearch/ingest_pipeline/default.yml b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..4647d994c3 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,168 @@ +--- +description: Pipeline for parsing Proofpoint TAP blocked clicks logs. +processors: + - set: + field: ecs.version + value: '8.2.0' + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - fingerprint: + fields: + - json.GUID + - json.clickTime + - json.threatTime + target_field: _id + ignore_missing: true + - append: + field: event.category + value: email + ignore_failure: true + - append: + field: event.type + value: denied + ignore_failure: true + - set: + field: event.kind + value: event + - rename: + field: json.sender + target_field: email.from.address + ignore_missing: true + - rename: + field: json.messageID + target_field: email.message_id + ignore_missing: true + - rename: + field: json.recipient + target_field: email.to.address + ignore_missing: true + - date: + field: json.clickTime + target_field: '@timestamp' + ignore_failure: true + formats: + - ISO8601 + - rename: + field: json.id + target_field: event.id + ignore_missing: true + - append: + field: related.ip + value: '{{{json.senderIP}}}' + if: ctx.json?.senderIP != null && ctx.json?.senderIP != '' + allow_duplicates: false + ignore_failure: true + - append: + field: related.ip + value: '{{{json.clickIP}}}' + if: ctx.json?.clickIP != null && ctx.json?.clickIP != '' + allow_duplicates: false + ignore_failure: true + - convert: + field: json.clickIP + target_field: destination.ip + type: ip + ignore_failure: true + - geoip: + field: destination.ip + target_field: destination.geo + ignore_missing: true + - geoip: + database_file: GeoLite2-ASN.mmdb + field: destination.ip + target_field: destination.as + properties: + - asn + - organization_name + ignore_missing: true + - rename: + field: destination.as.asn + target_field: destination.as.number + ignore_missing: true + - rename: + field: destination.as.organization_name + target_field: destination.as.organization.name + ignore_missing: true + - convert: + field: json.senderIP + target_field: source.ip + type: ip + ignore_failure: true + - date: + field: json.threatTime + target_field: proofpoint_tap.clicks_blocked.threat.time + ignore_failure: true + formats: + - ISO8601 + - uri_parts: + field: json.url + keep_original: false + ignore_failure: true + - urldecode: + field: json.url + target_field: url.full + ignore_missing: true + - user_agent: + field: json.userAgent + target_field: user_agent + ignore_missing: true + ignore_failure: true + - rename: + field: json.campaignId + target_field: proofpoint_tap.clicks_blocked.campaign_id + ignore_missing: true + - rename: + field: json.classification + target_field: proofpoint_tap.clicks_blocked.classification + ignore_missing: true + - rename: + field: json.GUID + target_field: proofpoint_tap.guid + ignore_missing: true + - rename: + field: json.threatID + target_field: proofpoint_tap.clicks_blocked.threat.id + ignore_missing: true + - rename: + field: json.threatStatus + target_field: proofpoint_tap.clicks_blocked.threat.status + ignore_missing: true + - rename: + field: json.threatURL + target_field: proofpoint_tap.clicks_blocked.threat.url + ignore_missing: true + - remove: + field: event.original + if: ctx.tags == null || !(ctx.tags.contains('preserve_original_event')) + ignore_failure: true + ignore_missing: true + - remove: + field: json + ignore_missing: true + - script: + description: Drops null/empty values recursively. + lang: painless + source: | + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); +on_failure: +- set: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/agent.yml b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/agent.yml new file mode 100755 index 0000000000..73e076a93b --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/agent.yml @@ -0,0 +1,186 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization ID used to identify different entities in a multi-tenant environment. Examples: AWS account ID, Google Cloud ORG ID, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container ID. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host ID. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host IP addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/base-fields.yml b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/base-fields.yml new file mode 100755 index 0000000000..cdbe703dbe --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module. + value: proofpoint_tap +- name: event.dataset + type: constant_keyword + description: Event dataset. + value: proofpoint_tap.clicks_blocked diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/ecs.yml b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/ecs.yml new file mode 100755 index 0000000000..6ebb943263 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/ecs.yml @@ -0,0 +1,176 @@ +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: destination.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: destination.as.organization.name + type: keyword +- description: City name. + name: destination.geo.city_name + type: keyword +- description: Name of the continent. + name: destination.geo.continent_name + type: keyword +- description: Country ISO code. + name: destination.geo.country_iso_code + type: keyword +- description: Country name. + name: destination.geo.country_name + type: keyword +- description: Longitude and latitude. + name: destination.geo.location + type: geo_point +- description: Region ISO code. + name: destination.geo.region_iso_code + type: keyword +- description: Region name. + name: destination.geo.region_name + type: keyword +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: The email address of the sender, typically from the RFC 5322 `From:` header field. + name: email.from.address + type: keyword +- description: Identifier from the RFC 5322 `Message-ID:` email header that refers to a particular email message. + name: email.message_id + type: wildcard +- description: The email address of recipient + name: email.to.address + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + event.created contains the date/time when the event was first read by an agent, or by your pipeline. + This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. + In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. + In case the two timestamps are identical, @timestamp should be used. + name: event.created + type: date +- description: Unique ID to describe the event. + name: event.id + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Domain of the url, such as "www.elastic.co". + In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. + name: url.domain + type: keyword +- description: |- + The field contains the file extension from the original request url, excluding the leading dot. + The file extension is only set if it exists, as not every url has a file extension. + The leading period must not be included. For example, the value must be "png", not ".png". + Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). + name: url.extension + type: keyword +- description: |- + Portion of the url after the `#`, such as "top". + The `#` is not part of the fragment. + name: url.fragment + type: keyword +- description: If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. + multi_fields: + - name: text + type: match_only_text + name: url.full + type: wildcard +- description: |- + Unmodified original url as seen in the event source. + Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. + This field is meant to represent the URL as it was observed, complete or not. + multi_fields: + - name: text + type: match_only_text + name: url.original + type: wildcard +- description: Password of the request. + name: url.password + type: keyword +- description: Path of the request, such as "/search". + name: url.path + type: wildcard +- description: Port of the request, such as 443. + name: url.port + type: long +- description: |- + The query field describes the query string of the request, such as "q=elasticsearch". + The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. + name: url.query + type: keyword +- description: |- + Scheme of the request, such as "https". + Note: The `:` is not part of the scheme. + name: url.scheme + type: keyword +- description: Username of the request. + name: url.username + type: keyword +- description: Name of the device. + name: user_agent.device.name + type: keyword +- description: Name of the user agent. + name: user_agent.name + type: keyword +- description: Unparsed user_agent string. + multi_fields: + - name: text + type: match_only_text + name: user_agent.original + type: keyword +- description: Operating system name, including the version or code name. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.full + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.name + type: keyword +- description: Operating system version as a raw string. + name: user_agent.os.version + type: keyword +- description: Version of the user agent. + name: user_agent.version + type: keyword diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/fields.yml b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/fields.yml new file mode 100755 index 0000000000..7e52d6873d --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/fields/fields.yml @@ -0,0 +1,33 @@ +- name: proofpoint_tap + type: group + fields: + - name: clicks_blocked + type: group + fields: + - name: campaign_id + type: keyword + description: An identifier for the campaign of which the threat is a member, if available at the time of the query. Threats can be linked to campaigns even after these events are retrieved. + - name: classification + type: keyword + description: The threat category of the malicious URL. + - name: sender_ip + type: ip + description: The IP address of the sender. + - name: threat + type: group + fields: + - name: id + type: keyword + description: The unique identifier associated with this threat. It can be used to query the forensics and campaign endpoints. + - name: status + type: keyword + description: The current state of the threat. + - name: time + type: date + description: Proofpoint identified the URL as a threat at this time. + - name: url + type: keyword + description: A link to the entry on the TAP Dashboard for the particular threat. + - name: guid + type: keyword + description: The ID of the message within PPS. It can be used to identify the message in PPS and is guaranteed to be unique. diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/manifest.yml b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/manifest.yml new file mode 100755 index 0000000000..3a343b9f5e --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/manifest.yml @@ -0,0 +1,50 @@ +title: Clicks Blocked +type: logs +streams: + - input: httpjson + template_path: httpjson.yml.hbs + title: Proofpoint_TAP Clicks Blocked logs + description: Collect Proofpoint TAP Clicks Blocked logs via API. + vars: + - name: interval + type: text + title: Interval + description: Interval to fetch data from Proofpoint TAP API (The interval should be at least 1m). + multi: false + required: true + show_user: true + default: 1h + - name: initial_interval + type: text + title: Initial Interval + description: How far back to pull the tap data from the Proofpoint TAP API (The initial interval should be a maximum of 7 days). + default: 24h + multi: false + required: true + show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - proofpoint_tap-clicks_blocked + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/sample_event.json b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/sample_event.json new file mode 100755 index 0000000000..881c2f01a8 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_blocked/sample_event.json @@ -0,0 +1,119 @@ +{ + "@timestamp": "2022-03-30T10:11:12.000Z", + "agent": { + "ephemeral_id": "cd4a05a0-d8d5-4b88-b709-b525da6dd43e", + "hostname": "docker-fleet-agent", + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "data_stream": { + "dataset": "proofpoint_tap.clicks_blocked", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.112" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "snapshot": false, + "version": "7.17.0" + }, + "email": { + "from": { + "address": "abc123@example.com" + }, + "message_id": "12345678912345.12345.mail@example.com", + "to": { + "address": "9c52aa64228824247c48df69b066e5a7@example.com" + } + }, + "event": { + "agent_id_status": "verified", + "category": [ + "email" + ], + "created": "2022-05-09T09:38:11.168Z", + "dataset": "proofpoint_tap.clicks_blocked", + "id": "a5c9f8bb-1234-1234-1234-dx9xxx2xx9xxx", + "ingested": "2022-05-09T09:38:14Z", + "kind": "event", + "original": "{\"GUID\":\"ZcxxxxVxyxFxyxLxxxDxVxx4xxxxx\",\"campaignId\":\"46x01x8x-x899-404x-xxx9-111xx393d1x7\",\"classification\":\"malware\",\"clickIP\":\"89.160.20.112\",\"clickTime\":\"2022-03-30T10:11:12.000Z\",\"id\":\"a5c9f8bb-1234-1234-1234-dx9xxx2xx9xxx\",\"messageID\":\"12345678912345.12345.mail@example.com\",\"recipient\":\"9c52aa64228824247c48df69b066e5a7@example.com\",\"sender\":\"abc123@example.com\",\"senderIP\":\"81.2.69.143\",\"threatID\":\"502b7xxxx0x5x1x3xb6xcxexbxxxxxxxcxxexc6xbxxxxxxdx7fxcx6x9xxxx9xdxxxxxxxx5f\",\"threatStatus\":\"active\",\"threatTime\":\"2022-03-21T14:40:31.000Z\",\"threatURL\":\"https://threatinsight.proofpoint.com/a2abc123-1234-1234-1234-babcded1234/threat/email/502xxxxxxxxxcebxxxxxxxxxxa04277xxxxx5dxc6xxxxxxxxx5f\",\"url\":\"https://www.example.com/abcdabcd123?query=0\",\"userAgent\":\"Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/199.0.427504638 Mobile/15E148 Safari/604.1\"}", + "type": [ + "denied" + ] + }, + "input": { + "type": "httpjson" + }, + "proofpoint_tap": { + "clicks_blocked": { + "campaign_id": "46x01x8x-x899-404x-xxx9-111xx393d1x7", + "classification": "malware", + "threat": { + "id": "502b7xxxx0x5x1x3xb6xcxexbxxxxxxxcxxexc6xbxxxxxxdx7fxcx6x9xxxx9xdxxxxxxxx5f", + "status": "active", + "time": "2022-03-21T14:40:31.000Z", + "url": "https://threatinsight.proofpoint.com/a2abc123-1234-1234-1234-babcded1234/threat/email/502xxxxxxxxxcebxxxxxxxxxxa04277xxxxx5dxc6xxxxxxxxx5f" + } + }, + "guid": "ZcxxxxVxyxFxyxLxxxDxVxx4xxxxx" + }, + "related": { + "ip": [ + "81.2.69.143", + "89.160.20.112" + ] + }, + "source": { + "ip": "81.2.69.143" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "proofpoint_tap-clicks_blocked" + ], + "url": { + "domain": "www.example.com", + "full": "https://www.example.com/abcdabcd123?query=0", + "path": "/abcdabcd123", + "query": "query=0", + "scheme": "https" + }, + "user_agent": { + "device": { + "name": "iPhone" + }, + "name": "Google", + "original": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/199.0.427504638 Mobile/15E148 Safari/604.1", + "os": { + "full": "iOS 14.6", + "name": "iOS", + "version": "14.6" + }, + "version": "199.0.427504638" + } +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/agent/stream/httpjson.yml.hbs b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..c846a15843 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/agent/stream/httpjson.yml.hbs @@ -0,0 +1,44 @@ +config_version: 2 +interval: {{interval}} +{{#if proxy_url }} +request.proxy_url: {{proxy_url}} +{{/if}} +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} +request.method: GET +request.url: {{url}}/v2/siem/clicks/permitted +auth.basic.user: {{principal}} +auth.basic.password: {{secret}} +request.transforms: + - set: + target: url.params.format + value: json + - set: + target: url.params.interval + value: '[[if (le (formatDate ((parseDate .cursor.last_received_time "RFC3339").Add (parseDuration "1h"))) (formatDate (now)))]][[formatDate (parseDate .cursor.last_received_time "RFC3339")]]/[[formatDate ((parseDate .cursor.last_received_time "RFC3339").Add (parseDuration "1h"))]][[else]][[formatDate (parseDate .cursor.last_received_time "RFC3339")]]/[[formatDate now]][[end]]' + default: '[[formatDate (now (parseDuration "-{{initial_interval}}"))]]/[[formatDate ((now (parseDuration "-{{initial_interval}}")).Add (parseDuration "1h"))]]' +response.pagination: + - set: + target: url.params.interval + value: '[[if (le (formatDate ((parseDate .last_response.body.queryEndTime "RFC3339").Add (parseDuration "1h"))) (formatDate (now)))]][[formatDate (parseDate .last_response.body.queryEndTime "RFC3339")]]/[[formatDate ((parseDate .last_response.body.queryEndTime "RFC3339").Add (parseDuration "1h"))]][[else]][[.last_response.terminate_pagination]][[end]]' + fail_on_template_error: true +cursor: + last_received_time: + value: '[[.last_response.body.queryEndTime]]' +response.split: + target: body.clicksPermitted +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/elasticsearch/ingest_pipeline/default.yml b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..378558c4f9 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,168 @@ +--- +description: Pipeline for parsing Proofpoint TAP permitted clicks logs. +processors: + - set: + field: ecs.version + value: '8.2.0' + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - fingerprint: + fields: + - json.GUID + - json.clickTime + - json.threatTime + target_field: _id + ignore_missing: true + - append: + field: event.category + value: email + ignore_failure: true + - append: + field: event.type + value: allowed + ignore_failure: true + - set: + field: event.kind + value: event + - rename: + field: json.sender + target_field: email.from.address + ignore_missing: true + - rename: + field: json.messageID + target_field: email.message_id + ignore_missing: true + - rename: + field: json.recipient + target_field: email.to.address + ignore_missing: true + - date: + field: json.clickTime + target_field: '@timestamp' + ignore_failure: true + formats: + - ISO8601 + - rename: + field: json.id + target_field: event.id + ignore_missing: true + - append: + field: related.ip + value: '{{{json.senderIP}}}' + if: ctx.json?.senderIP != null && ctx.json?.senderIP != '' + allow_duplicates: false + ignore_failure: true + - append: + field: related.ip + value: '{{{json.clickIP}}}' + if: ctx.json?.clickIP != null && ctx.json?.clickIP != '' + allow_duplicates: false + ignore_failure: true + - convert: + field: json.clickIP + target_field: destination.ip + type: ip + ignore_failure: true + - geoip: + field: destination.ip + target_field: destination.geo + ignore_missing: true + - geoip: + database_file: GeoLite2-ASN.mmdb + field: destination.ip + target_field: destination.as + properties: + - asn + - organization_name + ignore_missing: true + - rename: + field: destination.as.asn + target_field: destination.as.number + ignore_missing: true + - rename: + field: destination.as.organization_name + target_field: destination.as.organization.name + ignore_missing: true + - convert: + field: json.senderIP + target_field: source.ip + type: ip + ignore_failure: true + - date: + field: json.threatTime + target_field: proofpoint_tap.clicks_permitted.threat.time + ignore_failure: true + formats: + - ISO8601 + - uri_parts: + field: json.url + keep_original: false + ignore_failure: true + - urldecode: + field: json.url + target_field: url.full + ignore_missing: true + - user_agent: + field: json.userAgent + target_field: user_agent + ignore_missing: true + ignore_failure: true + - rename: + field: json.campaignId + target_field: proofpoint_tap.clicks_permitted.campaign_id + ignore_missing: true + - rename: + field: json.classification + target_field: proofpoint_tap.clicks_permitted.classification + ignore_missing: true + - rename: + field: json.GUID + target_field: proofpoint_tap.guid + ignore_missing: true + - rename: + field: json.threatID + target_field: proofpoint_tap.clicks_permitted.threat.id + ignore_missing: true + - rename: + field: json.threatStatus + target_field: proofpoint_tap.clicks_permitted.threat.status + ignore_missing: true + - rename: + field: json.threatURL + target_field: proofpoint_tap.clicks_permitted.threat.url + ignore_missing: true + - remove: + field: event.original + if: ctx.tags == null || !(ctx.tags.contains('preserve_original_event')) + ignore_failure: true + ignore_missing: true + - remove: + field: json + ignore_missing: true + - script: + description: Drops null/empty values recursively. + lang: painless + source: | + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); +on_failure: +- set: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/agent.yml b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/agent.yml new file mode 100755 index 0000000000..73e076a93b --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/agent.yml @@ -0,0 +1,186 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization ID used to identify different entities in a multi-tenant environment. Examples: AWS account ID, Google Cloud ORG ID, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container ID. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host ID. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host IP addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/base-fields.yml b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/base-fields.yml new file mode 100755 index 0000000000..a4e7350729 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module. + value: proofpoint_tap +- name: event.dataset + type: constant_keyword + description: Event dataset. + value: proofpoint_tap.clicks_permitted diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/ecs.yml b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/ecs.yml new file mode 100755 index 0000000000..6ebb943263 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/ecs.yml @@ -0,0 +1,176 @@ +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: destination.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: destination.as.organization.name + type: keyword +- description: City name. + name: destination.geo.city_name + type: keyword +- description: Name of the continent. + name: destination.geo.continent_name + type: keyword +- description: Country ISO code. + name: destination.geo.country_iso_code + type: keyword +- description: Country name. + name: destination.geo.country_name + type: keyword +- description: Longitude and latitude. + name: destination.geo.location + type: geo_point +- description: Region ISO code. + name: destination.geo.region_iso_code + type: keyword +- description: Region name. + name: destination.geo.region_name + type: keyword +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: The email address of the sender, typically from the RFC 5322 `From:` header field. + name: email.from.address + type: keyword +- description: Identifier from the RFC 5322 `Message-ID:` email header that refers to a particular email message. + name: email.message_id + type: wildcard +- description: The email address of recipient + name: email.to.address + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + event.created contains the date/time when the event was first read by an agent, or by your pipeline. + This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. + In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. + In case the two timestamps are identical, @timestamp should be used. + name: event.created + type: date +- description: Unique ID to describe the event. + name: event.id + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Domain of the url, such as "www.elastic.co". + In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. + name: url.domain + type: keyword +- description: |- + The field contains the file extension from the original request url, excluding the leading dot. + The file extension is only set if it exists, as not every url has a file extension. + The leading period must not be included. For example, the value must be "png", not ".png". + Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). + name: url.extension + type: keyword +- description: |- + Portion of the url after the `#`, such as "top". + The `#` is not part of the fragment. + name: url.fragment + type: keyword +- description: If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. + multi_fields: + - name: text + type: match_only_text + name: url.full + type: wildcard +- description: |- + Unmodified original url as seen in the event source. + Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. + This field is meant to represent the URL as it was observed, complete or not. + multi_fields: + - name: text + type: match_only_text + name: url.original + type: wildcard +- description: Password of the request. + name: url.password + type: keyword +- description: Path of the request, such as "/search". + name: url.path + type: wildcard +- description: Port of the request, such as 443. + name: url.port + type: long +- description: |- + The query field describes the query string of the request, such as "q=elasticsearch". + The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. + name: url.query + type: keyword +- description: |- + Scheme of the request, such as "https". + Note: The `:` is not part of the scheme. + name: url.scheme + type: keyword +- description: Username of the request. + name: url.username + type: keyword +- description: Name of the device. + name: user_agent.device.name + type: keyword +- description: Name of the user agent. + name: user_agent.name + type: keyword +- description: Unparsed user_agent string. + multi_fields: + - name: text + type: match_only_text + name: user_agent.original + type: keyword +- description: Operating system name, including the version or code name. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.full + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.name + type: keyword +- description: Operating system version as a raw string. + name: user_agent.os.version + type: keyword +- description: Version of the user agent. + name: user_agent.version + type: keyword diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/fields.yml b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/fields.yml new file mode 100755 index 0000000000..87b27059db --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/fields/fields.yml @@ -0,0 +1,33 @@ +- name: proofpoint_tap + type: group + fields: + - name: clicks_permitted + type: group + fields: + - name: campaign_id + type: keyword + description: An identifier for the campaign of which the threat is a member, if available at the time of the query. Threats can be linked to campaigns even after these events are retrieved. + - name: classification + type: keyword + description: The threat category of the malicious URL. + - name: sender_ip + type: ip + description: The IP address of the sender. + - name: threat + type: group + fields: + - name: id + type: keyword + description: The unique identifier associated with this threat. It can be used to query the forensics and campaign endpoints. + - name: status + type: keyword + description: The current state of the threat. + - name: time + type: date + description: Proofpoint identified the URL as a threat at this time. + - name: url + type: keyword + description: A link to the entry on the TAP Dashboard for the particular threat. + - name: guid + type: keyword + description: The ID of the message within PPS. It can be used to identify the message in PPS and is guaranteed to be unique. diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/manifest.yml b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/manifest.yml new file mode 100755 index 0000000000..1327aecdc5 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/manifest.yml @@ -0,0 +1,50 @@ +title: Clicks Permitted +type: logs +streams: + - input: httpjson + template_path: httpjson.yml.hbs + title: Proofpoint_TAP Clicks Permitted logs + description: Collect Proofpoint TAP Clicks Permitted logs via API. + vars: + - name: interval + type: text + title: Interval + description: Interval to fetch data from Proofpoint TAP API (The interval should be at least 1m). + multi: false + required: true + show_user: true + default: 1h + - name: initial_interval + type: text + title: Initial Interval + description: How far back to pull the tap data from the Proofpoint TAP API (The initial interval should be a maximum of 7 days). + default: 24h + multi: false + required: true + show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - proofpoint_tap-clicks_permitted + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/sample_event.json b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/sample_event.json new file mode 100755 index 0000000000..16e7c809f8 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/clicks_permitted/sample_event.json @@ -0,0 +1,119 @@ +{ + "@timestamp": "2022-03-21T20:39:37.000Z", + "agent": { + "ephemeral_id": "85f7f8f1-c9f4-4d3f-bd2f-c6f4e6c31526", + "hostname": "docker-fleet-agent", + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "data_stream": { + "dataset": "proofpoint_tap.clicks_permitted", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.112" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "snapshot": false, + "version": "7.17.0" + }, + "email": { + "from": { + "address": "abc123@example.com" + }, + "message_id": "12345678912345.12345.mail@example.com", + "to": { + "address": "abc@example.com" + } + }, + "event": { + "agent_id_status": "verified", + "category": [ + "email" + ], + "created": "2022-05-09T09:39:34.061Z", + "dataset": "proofpoint_tap.clicks_permitted", + "id": "de7eef56-1234-1234-1234-5xxfx7xxxdxxxx", + "ingested": "2022-05-09T09:39:37Z", + "kind": "event", + "original": "{\"GUID\":\"cTxxxxxxzx7xxxxxxxxxx8x4xwxx\",\"campaignId\":\"46x01x8x-x899-404x-xxx9-111xx393d1x7\",\"classification\":\"phish\",\"clickIP\":\"89.160.20.112\",\"clickTime\":\"2022-03-21T20:39:37.000Z\",\"id\":\"de7eef56-1234-1234-1234-5xxfx7xxxdxxxx\",\"messageID\":\"12345678912345.12345.mail@example.com\",\"recipient\":\"abc@example.com\",\"sender\":\"abc123@example.com\",\"senderIP\":\"81.2.69.143\",\"threatID\":\"92c17aaxxxxxxxxxx07xx7xxxx9xexcx3x3xxxxxx8xx3xxxx\",\"threatStatus\":\"active\",\"threatTime\":\"2022-03-30T10:05:57.000Z\",\"threatURL\":\"https://threatinsight.proofpoint.com/a2abc123-1234-1234-1234-babcded1234/threat/email/92c17aaxxxxxxxxxx07xx7xxxx9xexcx3x3xxxxxx8xx3xxxx\",\"url\":\"https://example.com/collab/?id=x4x3x6xsx1xxxx8xEdxexnxxxaxX\",\"userAgent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.46\"}", + "type": [ + "allowed" + ] + }, + "input": { + "type": "httpjson" + }, + "proofpoint_tap": { + "clicks_permitted": { + "campaign_id": "46x01x8x-x899-404x-xxx9-111xx393d1x7", + "classification": "phish", + "threat": { + "id": "92c17aaxxxxxxxxxx07xx7xxxx9xexcx3x3xxxxxx8xx3xxxx", + "status": "active", + "time": "2022-03-30T10:05:57.000Z", + "url": "https://threatinsight.proofpoint.com/a2abc123-1234-1234-1234-babcded1234/threat/email/92c17aaxxxxxxxxxx07xx7xxxx9xexcx3x3xxxxxx8xx3xxxx" + } + }, + "guid": "cTxxxxxxzx7xxxxxxxxxx8x4xwxx" + }, + "related": { + "ip": [ + "81.2.69.143", + "89.160.20.112" + ] + }, + "source": { + "ip": "81.2.69.143" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "proofpoint_tap-clicks_permitted" + ], + "url": { + "domain": "example.com", + "full": "https://example.com/collab/?id=x4x3x6xsx1xxxx8xEdxexnxxxaxX", + "path": "/collab/", + "query": "id=x4x3x6xsx1xxxx8xEdxexnxxxaxX", + "scheme": "https" + }, + "user_agent": { + "device": { + "name": "Other" + }, + "name": "Edge", + "original": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.46", + "os": { + "full": "Windows 10", + "name": "Windows", + "version": "10" + }, + "version": "99.0.1150.46" + } +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/agent/stream/httpjson.yml.hbs b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..2c5d71539c --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/agent/stream/httpjson.yml.hbs @@ -0,0 +1,44 @@ +config_version: 2 +interval: {{interval}} +{{#if proxy_url }} +request.proxy_url: {{proxy_url}} +{{/if}} +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} +request.method: GET +request.url: {{url}}/v2/siem/messages/blocked +auth.basic.user: {{principal}} +auth.basic.password: {{secret}} +request.transforms: + - set: + target: url.params.format + value: json + - set: + target: url.params.interval + value: '[[if (le (formatDate ((parseDate .cursor.last_received_time "RFC3339").Add (parseDuration "1h"))) (formatDate (now)))]][[formatDate (parseDate .cursor.last_received_time "RFC3339")]]/[[formatDate ((parseDate .cursor.last_received_time "RFC3339").Add (parseDuration "1h"))]][[else]][[formatDate (parseDate .cursor.last_received_time "RFC3339")]]/[[formatDate now]][[end]]' + default: '[[formatDate (now (parseDuration "-{{initial_interval}}"))]]/[[formatDate ((now (parseDuration "-{{initial_interval}}")).Add (parseDuration "1h"))]]' +response.pagination: + - set: + target: url.params.interval + value: '[[if (le (formatDate ((parseDate .last_response.body.queryEndTime "RFC3339").Add (parseDuration "1h"))) (formatDate (now)))]][[formatDate (parseDate .last_response.body.queryEndTime "RFC3339")]]/[[formatDate ((parseDate .last_response.body.queryEndTime "RFC3339").Add (parseDuration "1h"))]][[else]][[.last_response.terminate_pagination]][[end]]' + fail_on_template_error: true +cursor: + last_received_time: + value: '[[.last_response.body.queryEndTime]]' +response.split: + target: body.messagesBlocked +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/elasticsearch/ingest_pipeline/default.yml b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..73da7207a7 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,443 @@ +--- +description: Pipeline for parsing Proofpoint TAP blocked message logs. +processors: + - set: + field: ecs.version + value: '8.2.0' + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - fingerprint: + fields: + - json.GUID + - json.messageTime + target_field: _id + ignore_missing: true + - append: + field: event.category + value: email + ignore_failure: true + - append: + field: event.type + value: denied + ignore_failure: true + - set: + field: event.kind + value: event + - convert: + field: json.senderIP + target_field: source.ip + type: ip + ignore_failure: true + - append: + field: related.ip + value: '{{{source.ip}}}' + if: ctx.source?.ip != null && ctx.source?.ip != '' + allow_duplicates: false + ignore_failure: true + - geoip: + field: source.ip + target_field: source.geo + ignore_missing: true + if: ctx.source?.ip != null && ctx.source?.ip != '' + - geoip: + database_file: GeoLite2-ASN.mmdb + field: source.ip + target_field: source.as + properties: + - asn + - organization_name + ignore_missing: true + if: ctx.source?.ip != null && ctx.source?.ip != '' + - rename: + field: source.as.asn + target_field: source.as.number + ignore_missing: true + - rename: + field: source.as.organization_name + target_field: source.as.organization.name + ignore_missing: true + - foreach: + field: json.messageParts + processor: + append: + field: related.hash + value: '{{{_ingest._value.md5}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + if: ctx.json?.messageParts != null && ctx.json?.messageParts instanceof List + - foreach: + field: json.messageParts + processor: + append: + field: related.hash + value: '{{{_ingest._value.sha256}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + if: ctx.json?.messageParts != null && ctx.json?.messageParts instanceof List + - rename: + field: json.ccAddresses + target_field: email.cc.address + ignore_missing: true + - date: + field: json.messageTime + target_field: email.delivery_timestamp + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.fromAddress + target_field: email.from.address + ignore_missing: true + - rename: + field: json.messageID + target_field: email.message_id + ignore_missing: true + - gsub: + field: email.message_id + pattern: '<|>' + replacement: '' + ignore_missing: true + - rename: + field: json.replyToAddress + target_field: email.reply_to.address + ignore_missing: true + - rename: + field: json.sender + target_field: email.sender.address + ignore_missing: true + - rename: + field: json.subject + target_field: email.subject + ignore_missing: true + - set: + field: email.to.address + copy_from: json.toAddresses + ignore_failure: true + - foreach: + field: json.recipient + processor: + append: + field: email.to.address + value: '{{{_ingest._value}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + if: ctx.json?.recipient != null && ctx.json?.recipient instanceof List + - rename: + field: json.xmailer + target_field: email.x_mailer + ignore_missing: true + - rename: + field: json.id + target_field: event.id + ignore_missing: true + - set: + field: email.attachments + copy_from: json.messageParts + ignore_failure: true + - foreach: + field: email.attachments + processor: + remove: + field: + - _ingest._value.disposition + - _ingest._value.oContentType + - _ingest._value.sandboxStatus + ignore_missing: true + ignore_failure: true + if: ctx.email?.attachments != null && ctx.email?.attachments instanceof List + - foreach: + field: email.attachments + processor: + rename: + field: _ingest._value.contentType + target_field: _ingest._value.file.mime_type + ignore_missing: true + ignore_failure: true + if: ctx.email?.attachments != null && ctx.email?.attachments instanceof List + - foreach: + field: email.attachments + processor: + rename: + field: _ingest._value.md5 + target_field: _ingest._value.file.hash.md5 + ignore_missing: true + ignore_failure: true + if: ctx.email?.attachments != null && ctx.email?.attachments instanceof List + - foreach: + field: email.attachments + processor: + rename: + field: _ingest._value.sha256 + target_field: _ingest._value.file.hash.sha256 + ignore_missing: true + ignore_failure: true + if: ctx.email?.attachments != null && ctx.email?.attachments instanceof List + - foreach: + field: email.attachments + processor: + rename: + field: _ingest._value.filename + target_field: _ingest._value.file.name + ignore_missing: true + ignore_failure: true + if: ctx.email?.attachments != null && ctx.email?.attachments instanceof List + - script: + description: Adding hash in related.hash from artifact field. + lang: painless + ignore_failure: true + source: | + if (ctx.json?.threatsInfoMap instanceof List) { + for (artifact in ctx.json?.threatsInfoMap) { + def flag = true; + def str = artifact.threat.toLowerCase(); + if (str?.length() == 64) { + for (int i = 0; i < str.length(); i++) { + def ch = str.charAt(i); + if ((ch < (char)'0' || ch > (char)'9') && (ch < (char)'a' || ch > (char)'f')) { + flag = false; + break; + } + } + if (flag && !ctx["related"]["hash"].contains(str)) { + ctx["related"]["hash"].add(str); + } + } + } + } + - rename: + field: json.toAddresses + target_field: proofpoint_tap.message_blocked.to_addresses + ignore_missing: true + - rename: + field: json.recipient + target_field: proofpoint_tap.message_blocked.recipient + ignore_missing: true + - rename: + field: json.cluster + target_field: proofpoint_tap.message_blocked.cluster + ignore_missing: true + - convert: + field: json.completelyRewritten + target_field: proofpoint_tap.message_blocked.completely_rewritten + type: string + ignore_failure: true + - rename: + field: json.GUID + target_field: proofpoint_tap.guid + ignore_missing: true + - rename: + field: json.headerCC + target_field: proofpoint_tap.message_blocked.header.cc + ignore_missing: true + - rename: + field: json.headerFrom + target_field: proofpoint_tap.message_blocked.header.from + ignore_missing: true + - gsub: + field: proofpoint_tap.message_blocked.header.from + pattern: '<|>' + replacement: '' + ignore_missing: true + - rename: + field: json.headerReplyTo + target_field: proofpoint_tap.message_blocked.header.replyto + ignore_missing: true + - rename: + field: json.headerTo + target_field: proofpoint_tap.message_blocked.header.to + ignore_missing: true + - convert: + field: json.impostorScore + target_field: proofpoint_tap.message_blocked.impostor_score + type: double + ignore_failure: true + - convert: + field: json.malwareScore + target_field: proofpoint_tap.message_blocked.malware_score + type: long + ignore_failure: true + - rename: + field: json.messageParts + target_field: proofpoint_tap.message_blocked.message_parts + ignore_missing: true + - foreach: + field: proofpoint_tap.message_blocked.message_parts + processor: + remove: + field: + - _ingest._value.contentType + - _ingest._value.filename + - _ingest._value.md5 + - _ingest._value.sha256 + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_blocked?.message_parts != null && ctx.proofpoint_tap?.message_blocked?.message_parts instanceof List + - foreach: + field: proofpoint_tap.message_blocked.message_parts + processor: + rename: + field: _ingest._value.oContentType + target_field: _ingest._value.o_content_type + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_blocked?.message_parts != null && ctx.proofpoint_tap?.message_blocked?.message_parts instanceof List + - foreach: + field: proofpoint_tap.message_blocked.message_parts + processor: + rename: + field: _ingest._value.sandboxStatus + target_field: _ingest._value.sandbox_status + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_blocked?.message_parts != null && ctx.proofpoint_tap?.message_blocked?.message_parts instanceof List + - convert: + field: json.messageSize + target_field: proofpoint_tap.message_blocked.message_size + type: long + ignore_failure: true + - rename: + field: json.modulesRun + target_field: proofpoint_tap.message_blocked.modules_run + ignore_missing: true + - convert: + field: json.phishScore + target_field: proofpoint_tap.message_blocked.phish_score + type: long + ignore_failure: true + - rename: + field: json.policyRoutes + target_field: proofpoint_tap.message_blocked.policy_routes + ignore_missing: true + - rename: + field: json.QID + target_field: proofpoint_tap.message_blocked.qid + ignore_missing: true + - rename: + field: json.quarantineFolder + target_field: proofpoint_tap.message_blocked.quarantine.folder + ignore_missing: true + - rename: + field: json.quarantineRule + target_field: proofpoint_tap.message_blocked.quarantine.rule + ignore_missing: true + - convert: + field: json.spamScore + target_field: proofpoint_tap.message_blocked.spam_score + type: long + ignore_failure: true + - rename: + field: json.threatsInfoMap + target_field: proofpoint_tap.message_blocked.threat_info_map + ignore_missing: true + - foreach: + field: proofpoint_tap.message_blocked.threat_info_map + processor: + rename: + field: _ingest._value.campaignId + target_field: _ingest._value.campaign_id + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_blocked?.threat_info_map != null && ctx.proofpoint_tap?.message_blocked?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_blocked.threat_info_map + processor: + rename: + field: _ingest._value.threat + target_field: _ingest._value.threat.artifact + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_blocked?.threat_info_map != null && ctx.proofpoint_tap?.message_blocked?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_blocked.threat_info_map + processor: + rename: + field: _ingest._value.threatID + target_field: _ingest._value.threat.id + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_blocked?.threat_info_map != null && ctx.proofpoint_tap?.message_blocked?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_blocked.threat_info_map + processor: + rename: + field: _ingest._value.threatStatus + target_field: _ingest._value.threat.status + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_blocked?.threat_info_map != null && ctx.proofpoint_tap?.message_blocked?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_blocked.threat_info_map + processor: + date: + field: _ingest._value.threatTime + target_field: _ingest._value.threat.time + ignore_failure: true + formats: + - ISO8601 + ignore_failure: true + if: ctx.proofpoint_tap?.message_blocked?.threat_info_map != null && ctx.proofpoint_tap?.message_blocked?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_blocked.threat_info_map + processor: + remove: + field: _ingest._value.threatTime + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_blocked?.threat_info_map != null && ctx.proofpoint_tap?.message_blocked?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_blocked.threat_info_map + processor: + rename: + field: _ingest._value.threatType + target_field: _ingest._value.threat.type + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_blocked?.threat_info_map != null && ctx.proofpoint_tap?.message_blocked?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_blocked.threat_info_map + processor: + rename: + field: _ingest._value.threatUrl + target_field: _ingest._value.threat.url + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_blocked?.threat_info_map != null && ctx.proofpoint_tap?.message_blocked?.threat_info_map instanceof List + - remove: + field: event.original + if: ctx.tags == null || !(ctx.tags.contains('preserve_original_event')) + ignore_failure: true + ignore_missing: true + - remove: + field: + - json + ignore_missing: true + - script: + description: Drops null/empty values recursively. + lang: painless + source: | + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); +on_failure: + - set: + field: error.message + value: '{{{_ingest.on_failure_message}}}' diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/agent.yml b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/agent.yml new file mode 100755 index 0000000000..73e076a93b --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/agent.yml @@ -0,0 +1,186 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization ID used to identify different entities in a multi-tenant environment. Examples: AWS account ID, Google Cloud ORG ID, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container ID. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host ID. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host IP addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/base-fields.yml b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/base-fields.yml new file mode 100755 index 0000000000..989ed7305d --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module. + value: proofpoint_tap +- name: event.dataset + type: constant_keyword + description: Event dataset. + value: proofpoint_tap.message_blocked diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/ecs.yml b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/ecs.yml new file mode 100755 index 0000000000..4eaf034b1f --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/ecs.yml @@ -0,0 +1,129 @@ +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: A list of objects describing the attachment files sent along with an email message. + name: email.attachments + type: nested +- description: MD5 hash. + name: email.attachments.file.hash.md5 + type: keyword +- description: SHA256 hash. + name: email.attachments.file.hash.sha256 + type: keyword +- description: Name of the attachment file including the file extension. + name: email.attachments.file.name + type: keyword +- description: The email address of CC recipient + name: email.cc.address + type: keyword +- description: |- + Information about how the message is to be displayed. + Typically a MIME type. + name: email.content_type + type: keyword +- description: The date and time when the email message was received by the service or client. + name: email.delivery_timestamp + type: date +- description: The email address of the sender, typically from the RFC 5322 `From:` header field. + name: email.from.address + type: keyword +- description: Identifier from the RFC 5322 `Message-ID:` email header that refers to a particular email message. + name: email.message_id + type: wildcard +- description: The address that replies should be delivered to based on the value in the RFC 5322 `Reply-To:` header. + name: email.reply_to.address + type: keyword +- description: Per RFC 5322, specifies the address responsible for the actual transmission of the message. + name: email.sender.address + type: keyword +- description: A brief summary of the topic of the message. + multi_fields: + - name: text + type: match_only_text + name: email.subject + type: keyword +- description: The email address of recipient + name: email.to.address + type: keyword +- description: The name of the application that was used to draft and send the original email message. + name: email.x_mailer + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + event.created contains the date/time when the event was first read by an agent, or by your pipeline. + This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. + In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. + In case the two timestamps are identical, @timestamp should be used. + name: event.created + type: date +- description: Unique ID to describe the event. + name: event.id + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). + name: related.hash + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: source.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: source.as.organization.name + type: keyword +- description: City name. + name: source.geo.city_name + type: keyword +- description: Name of the continent. + name: source.geo.continent_name + type: keyword +- description: Country ISO code. + name: source.geo.country_iso_code + type: keyword +- description: Country name. + name: source.geo.country_name + type: keyword +- description: Longitude and latitude. + name: source.geo.location + type: geo_point +- description: Region ISO code. + name: source.geo.region_iso_code + type: keyword +- description: Region name. + name: source.geo.region_name + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: List of keywords used to tag each event. + name: tags + type: keyword diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/fields.yml b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/fields.yml new file mode 100755 index 0000000000..7067b9eb50 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/fields/fields.yml @@ -0,0 +1,110 @@ +- name: proofpoint_tap + type: group + fields: + - name: guid + type: keyword + description: The ID of the message within PPS. It can be used to identify the message in PPS and is guaranteed to be unique. + - name: message_blocked + type: group + fields: + - name: cluster + type: keyword + description: The name of the PPS cluster which processed the message. + - name: completely_rewritten + type: keyword + description: The rewrite status of the message. If value is 'true', all instances of URL threats within the message were successfully rewritten. If the value is 'false', at least one instance of the a threat URL was not rewritten. If the value is 'na', the message did not contain any URL-based threats. + - name: header + type: group + fields: + - name: cc + type: keyword + - name: from + type: keyword + description: 'The full content of the From: header, including any friendly name.' + - name: replyto + type: keyword + description: 'If present, the full content of the Reply-To: header, including any friendly names.' + - name: to + type: keyword + - name: impostor_score + type: double + description: The impostor score of the message. Higher scores indicate higher certainty. + - name: malware_score + type: long + description: The malware score of the message. Higher scores indicate higher certainty. + - name: message_parts + type: group + fields: + - name: disposition + type: keyword + description: If the value is "inline," the messagePart is a message body. If the value is "attached," the messagePart is an attachment. + - name: o_content_type + type: keyword + description: The declared Content-Type of the messagePart. + - name: sandbox_status + type: keyword + description: The verdict returned by the sandbox during the scanning process. If the value is "unsupported", the messagePart is not supported by Attachment Defense and was not scanned. If the value is "clean", the sandbox returned a clean verdict. If the value is "threat", the sandbox returned a malicious verdict. If the value is "prefilter", the messagePart contained no active content, and was therefore not sent to the sandboxing service. If the value is "uploaded," the message was uploaded by PPS to the sandboxing service, but did not yet have a verdict at the time the message was processed. If the value is "inprogress," the attachment had been uploaded and was awaiting scanning at the time the message was processed. If the verdict is "uploaddisabled," the attachment was eligible for scanning, but was not uploaded because of PPS policy. + - name: message_size + type: long + description: The size in bytes of the message, including headers and attachments. + - name: modules_run + type: keyword + description: The list of PPS modules which processed the message. + - name: phish_score + type: long + description: The phish score of the message. Higher scores indicate higher certainty. + - name: policy_routes + type: keyword + description: The policy routes that the message matched during processing by PPS. + - name: qid + type: keyword + description: The queue ID of the message within PPS. It can be used to identify the message in PPS and is not unique. + - name: quarantine + type: group + fields: + - name: folder + type: keyword + description: The name of the folder which contains the quarantined message. This appears only for messagesBlocked. + - name: rule + type: keyword + description: The name of the rule which quarantined the message. This appears only for messagesBlocked events. + - name: recipient + type: keyword + description: An array containing the email addresses of the SMTP (envelope) recipients. + - name: spam_score + type: long + description: The spam score of the message. Higher scores indicate higher certainty. + - name: threat_info_map + type: group + description: An array of structures which contain details about detected threats within the message. There may be more than one threat per message. + fields: + - name: campaign_id + type: keyword + description: An identifier for the campaign of which the threat is a member, if available at the time of the query. Threats can be linked to campaigns even after these events are retrieved. + - name: classification + type: keyword + description: The category of threat found in the message. + - name: threat + type: group + fields: + - name: artifact + type: keyword + description: The artifact which was condemned by Proofpoint. The malicious URL, hash of the attachment threat, or email address of the impostor sender. + - name: id + type: keyword + description: The unique identifier associated with this threat. It can be used to query the forensics and campaign endpoints. + - name: status + type: keyword + description: The current state of the threat. + - name: time + type: date + description: Proofpoint assigned the threatStatus at this time. + - name: type + type: keyword + description: Whether the threat was an attachment, URL, or message type. + - name: url + type: keyword + description: A link to the entry about the threat on the TAP Dashboard. + - name: to_addresses + type: keyword + description: 'A list of email addresses contained within the To: header, excluding friendly names.' diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/manifest.yml b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/manifest.yml new file mode 100755 index 0000000000..99403109dc --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/manifest.yml @@ -0,0 +1,50 @@ +title: Message Blocked +type: logs +streams: + - input: httpjson + template_path: httpjson.yml.hbs + title: Proofpoint_TAP Message Blocked logs + description: Collect Proofpoint TAP Message Blocked logs via API. + vars: + - name: interval + type: text + title: Interval + description: Interval to fetch data from Proofpoint TAP API (The interval should be at least 1m). + multi: false + required: true + show_user: true + default: 1h + - name: initial_interval + type: text + title: Initial Interval + description: How far back to pull the tap data from the Proofpoint TAP API (The initial interval should be a maximum of 7 days). + default: 24h + multi: false + required: true + show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - proofpoint_tap-message_blocked + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/sample_event.json b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/sample_event.json new file mode 100755 index 0000000000..377c23317d --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_blocked/sample_event.json @@ -0,0 +1,190 @@ +{ + "@timestamp": "2022-05-09T09:41:02.164Z", + "agent": { + "ephemeral_id": "dfa889d8-af83-426a-b8dc-483740f73385", + "hostname": "docker-fleet-agent", + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "data_stream": { + "dataset": "proofpoint_tap.message_blocked", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "snapshot": false, + "version": "7.17.0" + }, + "email": { + "attachments": [ + { + "file": { + "hash": { + "md5": "b10a8db164e0754105b7a99be72e3fe5", + "sha256": "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e" + }, + "mime_type": "text/plain", + "name": "text.txt" + } + }, + { + "file": { + "hash": { + "md5": "b10a8db164e0754105b7a99be72e3fe5", + "sha256": "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e" + }, + "mime_type": "application/pdf", + "name": "text.pdf" + } + } + ], + "cc": { + "address": [ + "abc@example.com" + ] + }, + "delivery_timestamp": "2021-11-25T09:10:00.050Z", + "from": { + "address": "abc@example.com" + }, + "message_id": "12345678912345.12345.mail@example.com", + "sender": { + "address": "x99x7x5580193x6x51x597xx2x0210@example.com" + }, + "subject": "Please find a totally safe invoice attached.", + "to": { + "address": [ + "example.abc@example.com", + "hey.hello@example.com" + ] + }, + "x_mailer": "Spambot v2.5" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "email" + ], + "created": "2022-05-09T09:41:02.164Z", + "dataset": "proofpoint_tap.message_blocked", + "ingested": "2022-05-09T09:41:05Z", + "kind": "event", + "original": "{\"GUID\":\"x11xxxx1-12f9-111x-x12x-1x1x123456xx\",\"QID\":\"x2XXxXXX111111\",\"ccAddresses\":[\"abc@example.com\"],\"clusterId\":\"pharmtech_hosted\",\"completelyRewritten\":\"true\",\"fromAddress\":\"abc@example.com\",\"headerCC\":\"\\\"Example Abc\\\" \\u003cabc@example.com\\u003e\",\"headerFrom\":\"\\\"A. Bc\\\" \\u003cabc@example.com\\u003e\",\"headerReplyTo\":null,\"headerTo\":\"\\\"Aa Bb\\\" \\u003caa.bb@example.com\\u003e; \\\"Hey Hello\\\" \\u003chey.hello@example.com\\u003e\",\"impostorScore\":0,\"malwareScore\":100,\"messageID\":\"12345678912345.12345.mail@example.com\",\"messageParts\":[{\"contentType\":\"text/plain\",\"disposition\":\"inline\",\"filename\":\"text.txt\",\"md5\":\"b10a8db164e0754105b7a99be72e3fe5\",\"oContentType\":\"text/plain\",\"sandboxStatus\":\"unsupported\",\"sha256\":\"a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e\"},{\"contentType\":\"application/pdf\",\"disposition\":\"attached\",\"filename\":\"text.pdf\",\"md5\":\"b10a8db164e0754105b7a99be72e3fe5\",\"oContentType\":\"application/pdf\",\"sandboxStatus\":\"threat\",\"sha256\":\"a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e\"}],\"messageTime\":\"2021-11-25T09:10:00.050Z\",\"modulesRun\":[\"pdr\",\"sandbox\",\"spam\",\"urldefense\"],\"phishScore\":46,\"policyRoutes\":[\"default_inbound\",\"executives\"],\"quarantineFolder\":\"Attachment Defense\",\"quarantineRule\":\"module.sandbox.threat\",\"recipient\":[\"example.abc@example.com\",\"hey.hello@example.com\"],\"replyToAddress\":null,\"sender\":\"x99x7x5580193x6x51x597xx2x0210@example.com\",\"senderIP\":\"175.16.199.1\",\"spamScore\":4,\"subject\":\"Please find a totally safe invoice attached.\",\"threatsInfoMap\":[{\"campaignId\":\"46x01x8x-x899-404x-xxx9-111xx393d1x7\",\"classification\":\"MALWARE\",\"threat\":\"a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e\",\"threatId\":\"2xxx740f143fc1aa4c1cd0146d334x5593b1428x6x062b2c406e5efe8xxx95xx\",\"threatStatus\":\"active\",\"threatTime\":\"2021-11-25T09:10:00.050Z\",\"threatType\":\"ATTACHMENT\",\"threatUrl\":\"https://www.example.com/?name=john\"},{\"campaignId\":\"46x01x8x-x899-404x-xxx9-111xx393d1x7\",\"classification\":\"MALWARE\",\"threat\":\"example.com\",\"threatId\":\"3xx97xx852c66a7xx761450xxxxxx9f4ffab74715b591294f78b5e37a76481xx\",\"threatTime\":\"2021-07-20T05:00:00.050Z\",\"threatType\":\"URL\",\"threatUrl\":\"https://www.example.com/?name=john\"}],\"toAddresses\":[\"example.abc@example.com\",\"hey.hello@example.com\"],\"xmailer\":\"Spambot v2.5\"}", + "type": [ + "denied" + ] + }, + "input": { + "type": "httpjson" + }, + "proofpoint_tap": { + "guid": "x11xxxx1-12f9-111x-x12x-1x1x123456xx", + "message_blocked": { + "completely_rewritten": "true", + "header": { + "cc": "\"Example Abc\" \u003cabc@example.com\u003e", + "from": "\"A. Bc\" abc@example.com", + "to": "\"Aa Bb\" \u003caa.bb@example.com\u003e; \"Hey Hello\" \u003chey.hello@example.com\u003e" + }, + "impostor_score": 0, + "malware_score": 100, + "message_parts": [ + { + "disposition": "inline", + "o_content_type": "text/plain", + "sandbox_status": "unsupported" + }, + { + "disposition": "attached", + "o_content_type": "application/pdf", + "sandbox_status": "threat" + } + ], + "modules_run": [ + "pdr", + "sandbox", + "spam", + "urldefense" + ], + "phish_score": 46, + "policy_routes": [ + "default_inbound", + "executives" + ], + "qid": "x2XXxXXX111111", + "quarantine": { + "folder": "Attachment Defense", + "rule": "module.sandbox.threat" + }, + "recipient": [ + "example.abc@example.com", + "hey.hello@example.com" + ], + "spam_score": 4, + "threat_info_map": [ + { + "campaign_id": "46x01x8x-x899-404x-xxx9-111xx393d1x7", + "classification": "MALWARE", + "threat": { + "artifact": "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e", + "status": "active", + "time": "2021-11-25T09:10:00.050Z", + "type": "ATTACHMENT", + "url": "https://www.example.com/?name=john" + }, + "threatId": "2xxx740f143fc1aa4c1cd0146d334x5593b1428x6x062b2c406e5efe8xxx95xx" + }, + { + "campaign_id": "46x01x8x-x899-404x-xxx9-111xx393d1x7", + "classification": "MALWARE", + "threat": { + "artifact": "example.com", + "time": "2021-07-20T05:00:00.050Z", + "type": "URL", + "url": "https://www.example.com/?name=john" + }, + "threatId": "3xx97xx852c66a7xx761450xxxxxx9f4ffab74715b591294f78b5e37a76481xx" + } + ], + "to_addresses": [ + "example.abc@example.com", + "hey.hello@example.com" + ] + } + }, + "related": { + "hash": [ + "b10a8db164e0754105b7a99be72e3fe5", + "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e" + ], + "ip": [ + "175.16.199.1" + ] + }, + "source": { + "geo": { + "city_name": "Changchun", + "continent_name": "Asia", + "country_iso_code": "CN", + "country_name": "China", + "location": { + "lat": 43.88, + "lon": 125.3228 + }, + "region_iso_code": "CN-22", + "region_name": "Jilin Sheng" + }, + "ip": "175.16.199.1" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "proofpoint_tap-message_blocked" + ] +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/agent/stream/httpjson.yml.hbs b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..4222c42aa6 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/agent/stream/httpjson.yml.hbs @@ -0,0 +1,44 @@ +config_version: 2 +interval: {{interval}} +{{#if proxy_url }} +request.proxy_url: {{proxy_url}} +{{/if}} +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} +request.method: GET +request.url: {{url}}/v2/siem/messages/delivered +auth.basic.user: {{principal}} +auth.basic.password: {{secret}} +request.transforms: + - set: + target: url.params.format + value: json + - set: + target: url.params.interval + value: '[[if (le (formatDate ((parseDate .cursor.last_received_time "RFC3339").Add (parseDuration "1h"))) (formatDate (now)))]][[formatDate (parseDate .cursor.last_received_time "RFC3339")]]/[[formatDate ((parseDate .cursor.last_received_time "RFC3339").Add (parseDuration "1h"))]][[else]][[formatDate (parseDate .cursor.last_received_time "RFC3339")]]/[[formatDate now]][[end]]' + default: '[[formatDate (now (parseDuration "-{{initial_interval}}"))]]/[[formatDate ((now (parseDuration "-{{initial_interval}}")).Add (parseDuration "1h"))]]' +response.pagination: + - set: + target: url.params.interval + value: '[[if (le (formatDate ((parseDate .last_response.body.queryEndTime "RFC3339").Add (parseDuration "1h"))) (formatDate (now)))]][[formatDate (parseDate .last_response.body.queryEndTime "RFC3339")]]/[[formatDate ((parseDate .last_response.body.queryEndTime "RFC3339").Add (parseDuration "1h"))]][[else]][[.last_response.terminate_pagination]][[end]]' + fail_on_template_error: true +cursor: + last_received_time: + value: '[[.last_response.body.queryEndTime]]' +response.split: + target: body.messagesDelivered +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/elasticsearch/ingest_pipeline/default.yml b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..139b593dfc --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,435 @@ +--- +description: Pipeline for parsing Proofpoint TAP delivered message logs. +processors: + - set: + field: ecs.version + value: '8.2.0' + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - fingerprint: + fields: + - json.GUID + - json.messageTime + target_field: _id + ignore_missing: true + - append: + field: event.category + value: email + ignore_failure: true + - append: + field: event.type + value: info + ignore_failure: true + - set: + field: event.kind + value: event + - convert: + field: json.senderIP + target_field: source.ip + type: ip + ignore_failure: true + - append: + field: related.ip + value: '{{{source.ip}}}' + if: ctx.source?.ip != null && ctx.source?.ip != '' + allow_duplicates: false + ignore_failure: true + - geoip: + field: source.ip + target_field: source.geo + ignore_missing: true + if: ctx.source?.ip != null && ctx.source?.ip != '' + - geoip: + database_file: GeoLite2-ASN.mmdb + field: source.ip + target_field: source.as + properties: + - asn + - organization_name + ignore_missing: true + if: ctx.source?.ip != null && ctx.source?.ip != '' + - rename: + field: source.as.asn + target_field: source.as.number + ignore_missing: true + - rename: + field: source.as.organization_name + target_field: source.as.organization.name + ignore_missing: true + - foreach: + field: json.messageParts + processor: + append: + field: related.hash + value: '{{{_ingest._value.md5}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + if: ctx.json?.messageParts != null && ctx.json?.messageParts instanceof List + - foreach: + field: json.messageParts + processor: + append: + field: related.hash + value: '{{{_ingest._value.sha256}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + if: ctx.json?.messageParts != null && ctx.json?.messageParts instanceof List + - rename: + field: json.ccAddresses + target_field: email.cc.address + ignore_missing: true + - date: + field: json.messageTime + target_field: email.delivery_timestamp + ignore_failure: true + formats: + - ISO8601 + - rename: + field: json.fromAddress + target_field: email.from.address + ignore_missing: true + - rename: + field: json.messageID + target_field: email.message_id + ignore_missing: true + - gsub: + field: email.message_id + pattern: '<|>' + replacement: '' + ignore_missing: true + - rename: + field: json.replyToAddress + target_field: email.reply_to.address + ignore_missing: true + - rename: + field: json.sender + target_field: email.sender.address + ignore_missing: true + - rename: + field: json.subject + target_field: email.subject + ignore_missing: true + - set: + field: email.to.address + copy_from: json.toAddresses + ignore_failure: true + - foreach: + field: json.recipient + processor: + append: + field: email.to.address + value: '{{{_ingest._value}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + if: ctx.json?.recipient != null && ctx.json?.recipient instanceof List + - rename: + field: json.xmailer + target_field: email.x_mailer + ignore_missing: true + - rename: + field: json.id + target_field: event.id + ignore_missing: true + - set: + field: email.attachments + copy_from: json.messageParts + ignore_failure: true + - foreach: + field: email.attachments + processor: + remove: + field: + - _ingest._value.disposition + - _ingest._value.oContentType + - _ingest._value.sandboxStatus + ignore_missing: true + ignore_failure: true + if: ctx.email?.attachments != null && ctx.email?.attachments instanceof List + - foreach: + field: email.attachments + processor: + rename: + field: _ingest._value.contentType + target_field: _ingest._value.file.mime_type + ignore_missing: true + ignore_failure: true + if: ctx.email?.attachments != null && ctx.email?.attachments instanceof List + - foreach: + field: email.attachments + processor: + rename: + field: _ingest._value.md5 + target_field: _ingest._value.file.hash.md5 + ignore_missing: true + ignore_failure: true + if: ctx.email?.attachments != null && ctx.email?.attachments instanceof List + - foreach: + field: email.attachments + processor: + rename: + field: _ingest._value.sha256 + target_field: _ingest._value.file.hash.sha256 + ignore_missing: true + ignore_failure: true + if: ctx.email?.attachments != null && ctx.email?.attachments instanceof List + - foreach: + field: email.attachments + processor: + rename: + field: _ingest._value.filename + target_field: _ingest._value.file.name + ignore_missing: true + ignore_failure: true + if: ctx.email?.attachments != null && ctx.email?.attachments instanceof List + - script: + description: Adding hash in related.hash from artifact field. + lang: painless + ignore_failure: true + source: | + if (ctx.json?.threatsInfoMap instanceof List) { + for (artifact in ctx.json?.threatsInfoMap) { + def flag = true; + def str = artifact.threat.toLowerCase(); + if (str?.length() == 64) { + for (int i = 0; i < str.length(); i++) { + def ch = str.charAt(i); + if ((ch < (char)'0' || ch > (char)'9') && (ch < (char)'a' || ch > (char)'f')) { + flag = false; + break; + } + } + if (flag && !ctx["related"]["hash"].contains(str)) { + ctx["related"]["hash"].add(str); + } + } + } + } + - rename: + field: json.toAddresses + target_field: proofpoint_tap.message_delivered.to_addresses + ignore_missing: true + - rename: + field: json.recipient + target_field: proofpoint_tap.message_delivered.recipient + ignore_missing: true + - rename: + field: json.cluster + target_field: proofpoint_tap.message_delivered.cluster + ignore_missing: true + - convert: + field: json.completelyRewritten + target_field: proofpoint_tap.message_delivered.completely_rewritten + type: string + ignore_failure: true + - rename: + field: json.GUID + target_field: proofpoint_tap.guid + ignore_missing: true + - rename: + field: json.headerFrom + target_field: proofpoint_tap.message_delivered.header.from + ignore_missing: true + - gsub: + field: proofpoint_tap.message_delivered.header.from + pattern: '<|>' + replacement: '' + ignore_missing: true + - rename: + field: json.headerReplyTo + target_field: proofpoint_tap.message_delivered.header.replyto + ignore_missing: true + - convert: + field: json.impostorScore + target_field: proofpoint_tap.message_delivered.impostor_score + type: double + ignore_failure: true + - convert: + field: json.malwareScore + target_field: proofpoint_tap.message_delivered.malware_score + type: long + ignore_failure: true + - rename: + field: json.messageParts + target_field: proofpoint_tap.message_delivered.message_parts + ignore_missing: true + - foreach: + field: proofpoint_tap.message_delivered.message_parts + processor: + remove: + field: + - _ingest._value.contentType + - _ingest._value.filename + - _ingest._value.md5 + - _ingest._value.sha256 + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_delivered?.message_parts != null && ctx.proofpoint_tap?.message_delivered?.message_parts instanceof List + - foreach: + field: proofpoint_tap.message_delivered.message_parts + processor: + rename: + field: _ingest._value.oContentType + target_field: _ingest._value.o_content_type + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_delivered?.message_parts != null && ctx.proofpoint_tap?.message_delivered?.message_parts instanceof List + - foreach: + field: proofpoint_tap.message_delivered.message_parts + processor: + rename: + field: _ingest._value.sandboxStatus + target_field: _ingest._value.sandbox_status + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_delivered?.message_parts != null && ctx.proofpoint_tap?.message_delivered?.message_parts instanceof List + - convert: + field: json.messageSize + target_field: proofpoint_tap.message_delivered.message_size + type: long + ignore_failure: true + - rename: + field: json.modulesRun + target_field: proofpoint_tap.message_delivered.modules_run + ignore_missing: true + - convert: + field: json.phishScore + target_field: proofpoint_tap.message_delivered.phish_score + type: long + ignore_failure: true + - rename: + field: json.policyRoutes + target_field: proofpoint_tap.message_delivered.policy_routes + ignore_missing: true + - rename: + field: json.QID + target_field: proofpoint_tap.message_delivered.qid + ignore_missing: true + - rename: + field: json.quarantineFolder + target_field: proofpoint_tap.message_delivered.quarantine.folder + ignore_missing: true + - rename: + field: json.quarantineRule + target_field: proofpoint_tap.message_delivered.quarantine.rule + ignore_missing: true + - convert: + field: json.spamScore + target_field: proofpoint_tap.message_delivered.spam_score + type: long + ignore_failure: true + - rename: + field: json.threatsInfoMap + target_field: proofpoint_tap.message_delivered.threat_info_map + ignore_missing: true + - foreach: + field: proofpoint_tap.message_delivered.threat_info_map + processor: + rename: + field: _ingest._value.campaignId + target_field: _ingest._value.campaign_id + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_delivered?.threat_info_map != null && ctx.proofpoint_tap?.message_delivered?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_delivered.threat_info_map + processor: + rename: + field: _ingest._value.threat + target_field: _ingest._value.threat.artifact + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_delivered?.threat_info_map != null && ctx.proofpoint_tap?.message_delivered?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_delivered.threat_info_map + processor: + rename: + field: _ingest._value.threatID + target_field: _ingest._value.threat.id + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_delivered?.threat_info_map != null && ctx.proofpoint_tap?.message_delivered?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_delivered.threat_info_map + processor: + rename: + field: _ingest._value.threatStatus + target_field: _ingest._value.threat.status + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_delivered?.threat_info_map != null && ctx.proofpoint_tap?.message_delivered?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_delivered.threat_info_map + processor: + date: + field: _ingest._value.threatTime + target_field: _ingest._value.threat.time + ignore_failure: true + formats: + - ISO8601 + ignore_failure: true + if: ctx.proofpoint_tap?.message_delivered?.threat_info_map != null && ctx.proofpoint_tap?.message_delivered?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_delivered.threat_info_map + processor: + remove: + field: _ingest._value.threatTime + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_delivered?.threat_info_map != null && ctx.proofpoint_tap?.message_delivered?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_delivered.threat_info_map + processor: + rename: + field: _ingest._value.threatType + target_field: _ingest._value.threat.type + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_delivered?.threat_info_map != null && ctx.proofpoint_tap?.message_delivered?.threat_info_map instanceof List + - foreach: + field: proofpoint_tap.message_delivered.threat_info_map + processor: + rename: + field: _ingest._value.threatUrl + target_field: _ingest._value.threat.url + ignore_missing: true + ignore_failure: true + if: ctx.proofpoint_tap?.message_delivered?.threat_info_map != null && ctx.proofpoint_tap?.message_delivered?.threat_info_map instanceof List + - remove: + field: event.original + if: ctx.tags == null || !(ctx.tags.contains('preserve_original_event')) + ignore_failure: true + ignore_missing: true + - remove: + field: + - json + ignore_missing: true + - script: + description: Drops null/empty values recursively. + lang: painless + source: | + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); +on_failure: + - set: + field: error.message + value: '{{{_ingest.on_failure_message}}}' diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/agent.yml b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/agent.yml new file mode 100755 index 0000000000..73e076a93b --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/agent.yml @@ -0,0 +1,186 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization ID used to identify different entities in a multi-tenant environment. Examples: AWS account ID, Google Cloud ORG ID, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container ID. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host ID. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host IP addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/base-fields.yml b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/base-fields.yml new file mode 100755 index 0000000000..cc51aafdf8 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module. + value: proofpoint_tap +- name: event.dataset + type: constant_keyword + description: Event dataset. + value: proofpoint_tap.message_delivered diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/ecs.yml b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/ecs.yml new file mode 100755 index 0000000000..4eaf034b1f --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/ecs.yml @@ -0,0 +1,129 @@ +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: A list of objects describing the attachment files sent along with an email message. + name: email.attachments + type: nested +- description: MD5 hash. + name: email.attachments.file.hash.md5 + type: keyword +- description: SHA256 hash. + name: email.attachments.file.hash.sha256 + type: keyword +- description: Name of the attachment file including the file extension. + name: email.attachments.file.name + type: keyword +- description: The email address of CC recipient + name: email.cc.address + type: keyword +- description: |- + Information about how the message is to be displayed. + Typically a MIME type. + name: email.content_type + type: keyword +- description: The date and time when the email message was received by the service or client. + name: email.delivery_timestamp + type: date +- description: The email address of the sender, typically from the RFC 5322 `From:` header field. + name: email.from.address + type: keyword +- description: Identifier from the RFC 5322 `Message-ID:` email header that refers to a particular email message. + name: email.message_id + type: wildcard +- description: The address that replies should be delivered to based on the value in the RFC 5322 `Reply-To:` header. + name: email.reply_to.address + type: keyword +- description: Per RFC 5322, specifies the address responsible for the actual transmission of the message. + name: email.sender.address + type: keyword +- description: A brief summary of the topic of the message. + multi_fields: + - name: text + type: match_only_text + name: email.subject + type: keyword +- description: The email address of recipient + name: email.to.address + type: keyword +- description: The name of the application that was used to draft and send the original email message. + name: email.x_mailer + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + event.created contains the date/time when the event was first read by an agent, or by your pipeline. + This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. + In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. + In case the two timestamps are identical, @timestamp should be used. + name: event.created + type: date +- description: Unique ID to describe the event. + name: event.id + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). + name: related.hash + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: source.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: source.as.organization.name + type: keyword +- description: City name. + name: source.geo.city_name + type: keyword +- description: Name of the continent. + name: source.geo.continent_name + type: keyword +- description: Country ISO code. + name: source.geo.country_iso_code + type: keyword +- description: Country name. + name: source.geo.country_name + type: keyword +- description: Longitude and latitude. + name: source.geo.location + type: geo_point +- description: Region ISO code. + name: source.geo.region_iso_code + type: keyword +- description: Region name. + name: source.geo.region_name + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: List of keywords used to tag each event. + name: tags + type: keyword diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/fields.yml b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/fields.yml new file mode 100755 index 0000000000..7b8ee5ae00 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/fields/fields.yml @@ -0,0 +1,106 @@ +- name: proofpoint_tap + type: group + fields: + - name: guid + type: keyword + description: The ID of the message within PPS. It can be used to identify the message in PPS and is guaranteed to be unique. + - name: message_delivered + type: group + fields: + - name: cluster + type: keyword + description: The name of the PPS cluster which processed the message. + - name: completely_rewritten + type: keyword + description: The rewrite status of the message. If value is 'true', all instances of URL threats within the message were successfully rewritten. If the value is 'false', at least one instance of the a threat URL was not rewritten. If the value is 'na', the message did not contain any URL-based threats. + - name: header + type: group + fields: + - name: from + type: keyword + description: 'The full content of the From: header, including any friendly name.' + - name: replyto + type: keyword + description: 'If present, the full content of the Reply-To: header, including any friendly names.' + - name: impostor_score + type: double + description: The impostor score of the message. Higher scores indicate higher certainty. + - name: malware_score + type: long + description: The malware score of the message. Higher scores indicate higher certainty. + - name: message_parts + type: group + fields: + - name: disposition + type: keyword + description: If the value is "inline," the messagePart is a message body. If the value is "attached," the messagePart is an attachment. + - name: o_content_type + type: keyword + description: The declared Content-Type of the messagePart. + - name: sandbox_status + type: keyword + description: The verdict returned by the sandbox during the scanning process. If the value is "unsupported", the messagePart is not supported by Attachment Defense and was not scanned. If the value is "clean", the sandbox returned a clean verdict. If the value is "threat", the sandbox returned a malicious verdict. If the value is "prefilter", the messagePart contained no active content, and was therefore not sent to the sandboxing service. If the value is "uploaded," the message was uploaded by PPS to the sandboxing service, but did not yet have a verdict at the time the message was processed. If the value is "inprogress," the attachment had been uploaded and was awaiting scanning at the time the message was processed. If the verdict is "uploaddisabled," the attachment was eligible for scanning, but was not uploaded because of PPS policy. + - name: message_size + type: long + description: The size in bytes of the message, including headers and attachments. + - name: modules_run + type: keyword + description: The list of PPS modules which processed the message. + - name: phish_score + type: long + description: The phish score of the message. Higher scores indicate higher certainty. + - name: policy_routes + type: keyword + description: The policy routes that the message matched during processing by PPS. + - name: qid + type: keyword + description: The queue ID of the message within PPS. It can be used to identify the message in PPS and is not unique. + - name: quarantine + type: group + fields: + - name: folder + type: keyword + description: The name of the folder which contains the quarantined message. This appears only for messagesBlocked. + - name: rule + type: keyword + description: The name of the rule which quarantined the message. This appears only for messagesBlocked events. + - name: recipient + type: keyword + description: An array containing the email addresses of the SMTP (envelope) recipients. + - name: spam_score + type: long + description: The spam score of the message. Higher scores indicate higher certainty. + - name: threat_info_map + type: group + description: An array of structures which contain details about detected threats within the message. There may be more than one threat per message. + fields: + - name: campaign_id + type: keyword + description: An identifier for the campaign of which the threat is a member, if available at the time of the query. Threats can be linked to campaigns even after these events are retrieved. + - name: classification + type: keyword + description: The category of threat found in the message. + - name: threat + type: group + fields: + - name: artifact + type: keyword + description: The artifact which was condemned by Proofpoint. The malicious URL, hash of the attachment threat, or email address of the impostor sender. + - name: id + type: keyword + description: The unique identifier associated with this threat. It can be used to query the forensics and campaign endpoints. + - name: status + type: keyword + description: The current state of the threat. + - name: time + type: date + description: Proofpoint assigned the threatStatus at this time. + - name: type + type: keyword + description: Whether the threat was an attachment, URL, or message type. + - name: url + type: keyword + description: A link to the entry about the threat on the TAP Dashboard. + - name: to_addresses + type: keyword + description: 'A list of email addresses contained within the To: header, excluding friendly names.' diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/manifest.yml b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/manifest.yml new file mode 100755 index 0000000000..e82e189b75 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/manifest.yml @@ -0,0 +1,50 @@ +title: Message Delivered +type: logs +streams: + - input: httpjson + template_path: httpjson.yml.hbs + title: Proofpoint_TAP Message Delivered logs + description: Collect Proofpoint TAP Message Delivered logs via API. + vars: + - name: interval + type: text + title: Interval + description: Interval to fetch data from Proofpoint TAP API (The interval should be at least 1m). + multi: false + required: true + show_user: true + default: 1h + - name: initial_interval + type: text + title: Initial Interval + description: How far back to pull the tap data from the Proofpoint TAP API (The initial interval should be a maximum of 7 days). + default: 24h + multi: false + required: true + show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - proofpoint_tap-message_delivered + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/sample_event.json b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/sample_event.json new file mode 100755 index 0000000000..60229edc5b --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/data_stream/message_delivered/sample_event.json @@ -0,0 +1,120 @@ +{ + "@timestamp": "2022-05-09T09:42:31.705Z", + "agent": { + "ephemeral_id": "59bb449e-3552-4dfb-a4a4-a6928d75b8fa", + "hostname": "docker-fleet-agent", + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "data_stream": { + "dataset": "proofpoint_tap.message_delivered", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "snapshot": false, + "version": "7.17.0" + }, + "email": { + "delivery_timestamp": "2022-01-01T00:00:00.000Z", + "to": { + "address": [ + "fxxxxhxsxxvxbcx2xx5xxx6x3xx26@example.com" + ] + } + }, + "event": { + "agent_id_status": "verified", + "category": [ + "email" + ], + "created": "2022-05-09T09:42:31.705Z", + "dataset": "proofpoint_tap.message_delivered", + "id": "2hsvbU-i8abc123-12345-xxxxx12", + "ingested": "2022-05-09T09:42:35Z", + "kind": "event", + "original": "{\"GUID\":\"NxxxsxvxbxUxixcx2xxxxx5x6xWxBxOxxxxxjxx\",\"QID\":null,\"ccAddresses\":null,\"cluster\":\"pharmtech_hosted\",\"completelyRewritten\":true,\"fromAddress\":null,\"headerFrom\":null,\"headerReplyTo\":null,\"id\":\"2hsvbU-i8abc123-12345-xxxxx12\",\"impostorScore\":0,\"malwareScore\":0,\"messageID\":\"\",\"messageParts\":null,\"messageSize\":0,\"messageTime\":\"2022-01-01T00:00:00.000Z\",\"modulesRun\":null,\"phishScore\":0,\"policyRoutes\":null,\"quarantineFolder\":null,\"quarantineRule\":null,\"recipient\":[\"fxxxxhxsxxvxbcx2xx5xxx6x3xx26@example.com\"],\"replyToAddress\":null,\"sender\":\"\",\"senderIP\":\"89.160.20.112\",\"spamScore\":0,\"subject\":null,\"threatsInfoMap\":[{\"campaignID\":null,\"classification\":\"spam\",\"threat\":\"http://zbcd123456x0.example.com\",\"threatID\":\"b7exxxxxxxx0d10xxxxxxe2xxxxxxxxxxxx81cxxxxxx034ac9cxxxxxxxxxxxxb\",\"threatStatus\":\"active\",\"threatTime\":\"2021-11-25T13:02:58.640Z\",\"threatType\":\"url\",\"threatUrl\":\"https://threatinsight.proofpoint.com/aaabcdef-1234-b1abcdefghe/threat/email/b7exxxxxxxx0d10xxxxxxe2xxxxxxxxxxxx81cxxxxxx034ac9cxxxxxxxxxxxxb\"},{\"campaignID\":null,\"classification\":\"phish\",\"threat\":\"http://zbcd123456x0.example.com\",\"threatID\":\"aaabcdefg123456f009971a9c193abcdefg123456bf5abcdefg1234566\",\"threatStatus\":\"active\",\"threatTime\":\"2021-07-19T10:28:15.100Z\",\"threatType\":\"url\",\"threatUrl\":\"https://threatinsight.proofpoint.com/aaabcdef-1234-b1abcdefghe/threat/email/b7exxxxxxxx0d10xxxxxxe2xxxxxxxxxxxx81cxxxxxx034ac9cxxxxxxxxxxxxb\"}],\"toAddresses\":null,\"xmailer\":null}", + "type": [ + "info" + ] + }, + "input": { + "type": "httpjson" + }, + "proofpoint_tap": { + "guid": "NxxxsxvxbxUxixcx2xxxxx5x6xWxBxOxxxxxjxx", + "message_delivered": { + "cluster": "pharmtech_hosted", + "completely_rewritten": "true", + "impostor_score": 0, + "malware_score": 0, + "message_size": 0, + "phish_score": 0, + "recipient": [ + "fxxxxhxsxxvxbcx2xx5xxx6x3xx26@example.com" + ], + "spam_score": 0, + "threat_info_map": [ + { + "classification": "spam", + "threat": { + "artifact": "http://zbcd123456x0.example.com", + "id": "b7exxxxxxxx0d10xxxxxxe2xxxxxxxxxxxx81cxxxxxx034ac9cxxxxxxxxxxxxb", + "status": "active", + "time": "2021-11-25T13:02:58.640Z", + "type": "url", + "url": "https://threatinsight.proofpoint.com/aaabcdef-1234-b1abcdefghe/threat/email/b7exxxxxxxx0d10xxxxxxe2xxxxxxxxxxxx81cxxxxxx034ac9cxxxxxxxxxxxxb" + } + }, + { + "classification": "phish", + "threat": { + "artifact": "http://zbcd123456x0.example.com", + "id": "aaabcdefg123456f009971a9c193abcdefg123456bf5abcdefg1234566", + "status": "active", + "time": "2021-07-19T10:28:15.100Z", + "type": "url", + "url": "https://threatinsight.proofpoint.com/aaabcdef-1234-b1abcdefghe/threat/email/b7exxxxxxxx0d10xxxxxxe2xxxxxxxxxxxx81cxxxxxx034ac9cxxxxxxxxxxxxb" + } + } + ] + } + }, + "related": { + "ip": [ + "89.160.20.112" + ] + }, + "source": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.112" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "proofpoint_tap-message_delivered" + ] +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/docs/README.md b/packages/proofpoint_tap/0.1.0/docs/README.md new file mode 100755 index 0000000000..4499fb5f31 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/docs/README.md @@ -0,0 +1,1020 @@ +# Proofpoint TAP + +The Proofpoint TAP integration collects and parses data from the Proofpoint TAP REST APIs. + +## Compatibility + +This module has been tested against `SIEM API v2`. + +## Configurations + +The service principal and secret are used to authenticate to the SIEM API. To generate TAP Service Credentials please follow the following steps. +1. Log in to the [_TAP dashboard_](https://threatinsight.proofpoint.com). +2. Navigate to **Settings > Connected Applications**. +3. Click **Create New Credential**. +4. Name the new credential set and click **Generate**. +5. Copy the **Service Principal** and **Secret** and save them for later use. +For the more information on generating TAP credentials please follow the steps mentioned in the link [_Generate TAP Service Credentials_](https://ptr-docs.proofpoint.com/ptr-guides/integrations-files/ptr-tap/#generate-tap-service-credentials). + + +## Logs + +### Clicks Blocked + +This is the `clicks_blocked` dataset. + +An example event for `clicks_blocked` looks as following: + +```json +{ + "@timestamp": "2022-03-30T10:11:12.000Z", + "agent": { + "ephemeral_id": "cd4a05a0-d8d5-4b88-b709-b525da6dd43e", + "hostname": "docker-fleet-agent", + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "data_stream": { + "dataset": "proofpoint_tap.clicks_blocked", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.112" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "snapshot": false, + "version": "7.17.0" + }, + "email": { + "from": { + "address": "abc123@example.com" + }, + "message_id": "12345678912345.12345.mail@example.com", + "to": { + "address": "9c52aa64228824247c48df69b066e5a7@example.com" + } + }, + "event": { + "agent_id_status": "verified", + "category": [ + "email" + ], + "created": "2022-05-09T09:38:11.168Z", + "dataset": "proofpoint_tap.clicks_blocked", + "id": "a5c9f8bb-1234-1234-1234-dx9xxx2xx9xxx", + "ingested": "2022-05-09T09:38:14Z", + "kind": "event", + "original": "{\"GUID\":\"ZcxxxxVxyxFxyxLxxxDxVxx4xxxxx\",\"campaignId\":\"46x01x8x-x899-404x-xxx9-111xx393d1x7\",\"classification\":\"malware\",\"clickIP\":\"89.160.20.112\",\"clickTime\":\"2022-03-30T10:11:12.000Z\",\"id\":\"a5c9f8bb-1234-1234-1234-dx9xxx2xx9xxx\",\"messageID\":\"12345678912345.12345.mail@example.com\",\"recipient\":\"9c52aa64228824247c48df69b066e5a7@example.com\",\"sender\":\"abc123@example.com\",\"senderIP\":\"81.2.69.143\",\"threatID\":\"502b7xxxx0x5x1x3xb6xcxexbxxxxxxxcxxexc6xbxxxxxxdx7fxcx6x9xxxx9xdxxxxxxxx5f\",\"threatStatus\":\"active\",\"threatTime\":\"2022-03-21T14:40:31.000Z\",\"threatURL\":\"https://threatinsight.proofpoint.com/a2abc123-1234-1234-1234-babcded1234/threat/email/502xxxxxxxxxcebxxxxxxxxxxa04277xxxxx5dxc6xxxxxxxxx5f\",\"url\":\"https://www.example.com/abcdabcd123?query=0\",\"userAgent\":\"Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/199.0.427504638 Mobile/15E148 Safari/604.1\"}", + "type": [ + "denied" + ] + }, + "input": { + "type": "httpjson" + }, + "proofpoint_tap": { + "clicks_blocked": { + "campaign_id": "46x01x8x-x899-404x-xxx9-111xx393d1x7", + "classification": "malware", + "threat": { + "id": "502b7xxxx0x5x1x3xb6xcxexbxxxxxxxcxxexc6xbxxxxxxdx7fxcx6x9xxxx9xdxxxxxxxx5f", + "status": "active", + "time": "2022-03-21T14:40:31.000Z", + "url": "https://threatinsight.proofpoint.com/a2abc123-1234-1234-1234-babcded1234/threat/email/502xxxxxxxxxcebxxxxxxxxxxa04277xxxxx5dxc6xxxxxxxxx5f" + } + }, + "guid": "ZcxxxxVxyxFxyxLxxxDxVxx4xxxxx" + }, + "related": { + "ip": [ + "81.2.69.143", + "89.160.20.112" + ] + }, + "source": { + "ip": "81.2.69.143" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "proofpoint_tap-clicks_blocked" + ], + "url": { + "domain": "www.example.com", + "full": "https://www.example.com/abcdabcd123?query=0", + "path": "/abcdabcd123", + "query": "query=0", + "scheme": "https" + }, + "user_agent": { + "device": { + "name": "iPhone" + }, + "name": "Google", + "original": "Mozilla/5.0 (iPhone; CPU iPhone OS 14_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) GSA/199.0.427504638 Mobile/15E148 Safari/604.1", + "os": { + "full": "iOS 14.6", + "name": "iOS", + "version": "14.6" + }, + "version": "199.0.427504638" + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.account.id | The cloud account or organization ID used to identify different entities in a multi-tenant environment. Examples: AWS account ID, Google Cloud ORG ID, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container ID. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| destination.as.organization.name | Organization name. | keyword | +| destination.as.organization.name.text | Multi-field of `destination.as.organization.name`. | match_only_text | +| destination.geo.city_name | City name. | keyword | +| destination.geo.continent_name | Name of the continent. | keyword | +| destination.geo.country_iso_code | Country ISO code. | keyword | +| destination.geo.country_name | Country name. | keyword | +| destination.geo.location | Longitude and latitude. | geo_point | +| destination.geo.region_iso_code | Region ISO code. | keyword | +| destination.geo.region_name | Region name. | keyword | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| email.from.address | The email address of the sender, typically from the RFC 5322 `From:` header field. | keyword | +| email.message_id | Identifier from the RFC 5322 `Message-ID:` email header that refers to a particular email message. | wildcard | +| email.to.address | The email address of recipient | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.dataset | Event dataset. | constant_keyword | +| event.id | Unique ID to describe the event. | keyword | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module. | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host ID. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host IP addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| proofpoint_tap.clicks_blocked.campaign_id | An identifier for the campaign of which the threat is a member, if available at the time of the query. Threats can be linked to campaigns even after these events are retrieved. | keyword | +| proofpoint_tap.clicks_blocked.classification | The threat category of the malicious URL. | keyword | +| proofpoint_tap.clicks_blocked.sender_ip | The IP address of the sender. | ip | +| proofpoint_tap.clicks_blocked.threat.id | The unique identifier associated with this threat. It can be used to query the forensics and campaign endpoints. | keyword | +| proofpoint_tap.clicks_blocked.threat.status | The current state of the threat. | keyword | +| proofpoint_tap.clicks_blocked.threat.time | Proofpoint identified the URL as a threat at this time. | date | +| proofpoint_tap.clicks_blocked.threat.url | A link to the entry on the TAP Dashboard for the particular threat. | keyword | +| proofpoint_tap.guid | The ID of the message within PPS. It can be used to identify the message in PPS and is guaranteed to be unique. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| tags | List of keywords used to tag each event. | keyword | +| url.domain | Domain of the url, such as "www.elastic.co". In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. | keyword | +| url.extension | The field contains the file extension from the original request url, excluding the leading dot. The file extension is only set if it exists, as not every url has a file extension. The leading period must not be included. For example, the value must be "png", not ".png". Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). | keyword | +| url.fragment | Portion of the url after the `#`, such as "top". The `#` is not part of the fragment. | keyword | +| url.full | If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. | wildcard | +| url.full.text | Multi-field of `url.full`. | match_only_text | +| url.original | Unmodified original url as seen in the event source. Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. This field is meant to represent the URL as it was observed, complete or not. | wildcard | +| url.original.text | Multi-field of `url.original`. | match_only_text | +| url.password | Password of the request. | keyword | +| url.path | Path of the request, such as "/search". | wildcard | +| url.port | Port of the request, such as 443. | long | +| url.query | The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. | keyword | +| url.scheme | Scheme of the request, such as "https". Note: The `:` is not part of the scheme. | keyword | +| url.username | Username of the request. | keyword | +| user_agent.device.name | Name of the device. | keyword | +| user_agent.name | Name of the user agent. | keyword | +| user_agent.original | Unparsed user_agent string. | keyword | +| user_agent.original.text | Multi-field of `user_agent.original`. | match_only_text | +| user_agent.os.full | Operating system name, including the version or code name. | keyword | +| user_agent.os.full.text | Multi-field of `user_agent.os.full`. | match_only_text | +| user_agent.os.name | Operating system name, without the version. | keyword | +| user_agent.os.name.text | Multi-field of `user_agent.os.name`. | match_only_text | +| user_agent.os.version | Operating system version as a raw string. | keyword | +| user_agent.version | Version of the user agent. | keyword | + + +### Clicks Permitted + +This is the `clicks_permitted` dataset. + +An example event for `clicks_permitted` looks as following: + +```json +{ + "@timestamp": "2022-03-21T20:39:37.000Z", + "agent": { + "ephemeral_id": "85f7f8f1-c9f4-4d3f-bd2f-c6f4e6c31526", + "hostname": "docker-fleet-agent", + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "data_stream": { + "dataset": "proofpoint_tap.clicks_permitted", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.112" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "snapshot": false, + "version": "7.17.0" + }, + "email": { + "from": { + "address": "abc123@example.com" + }, + "message_id": "12345678912345.12345.mail@example.com", + "to": { + "address": "abc@example.com" + } + }, + "event": { + "agent_id_status": "verified", + "category": [ + "email" + ], + "created": "2022-05-09T09:39:34.061Z", + "dataset": "proofpoint_tap.clicks_permitted", + "id": "de7eef56-1234-1234-1234-5xxfx7xxxdxxxx", + "ingested": "2022-05-09T09:39:37Z", + "kind": "event", + "original": "{\"GUID\":\"cTxxxxxxzx7xxxxxxxxxx8x4xwxx\",\"campaignId\":\"46x01x8x-x899-404x-xxx9-111xx393d1x7\",\"classification\":\"phish\",\"clickIP\":\"89.160.20.112\",\"clickTime\":\"2022-03-21T20:39:37.000Z\",\"id\":\"de7eef56-1234-1234-1234-5xxfx7xxxdxxxx\",\"messageID\":\"12345678912345.12345.mail@example.com\",\"recipient\":\"abc@example.com\",\"sender\":\"abc123@example.com\",\"senderIP\":\"81.2.69.143\",\"threatID\":\"92c17aaxxxxxxxxxx07xx7xxxx9xexcx3x3xxxxxx8xx3xxxx\",\"threatStatus\":\"active\",\"threatTime\":\"2022-03-30T10:05:57.000Z\",\"threatURL\":\"https://threatinsight.proofpoint.com/a2abc123-1234-1234-1234-babcded1234/threat/email/92c17aaxxxxxxxxxx07xx7xxxx9xexcx3x3xxxxxx8xx3xxxx\",\"url\":\"https://example.com/collab/?id=x4x3x6xsx1xxxx8xEdxexnxxxaxX\",\"userAgent\":\"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.46\"}", + "type": [ + "allowed" + ] + }, + "input": { + "type": "httpjson" + }, + "proofpoint_tap": { + "clicks_permitted": { + "campaign_id": "46x01x8x-x899-404x-xxx9-111xx393d1x7", + "classification": "phish", + "threat": { + "id": "92c17aaxxxxxxxxxx07xx7xxxx9xexcx3x3xxxxxx8xx3xxxx", + "status": "active", + "time": "2022-03-30T10:05:57.000Z", + "url": "https://threatinsight.proofpoint.com/a2abc123-1234-1234-1234-babcded1234/threat/email/92c17aaxxxxxxxxxx07xx7xxxx9xexcx3x3xxxxxx8xx3xxxx" + } + }, + "guid": "cTxxxxxxzx7xxxxxxxxxx8x4xwxx" + }, + "related": { + "ip": [ + "81.2.69.143", + "89.160.20.112" + ] + }, + "source": { + "ip": "81.2.69.143" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "proofpoint_tap-clicks_permitted" + ], + "url": { + "domain": "example.com", + "full": "https://example.com/collab/?id=x4x3x6xsx1xxxx8xEdxexnxxxaxX", + "path": "/collab/", + "query": "id=x4x3x6xsx1xxxx8xEdxexnxxxaxX", + "scheme": "https" + }, + "user_agent": { + "device": { + "name": "Other" + }, + "name": "Edge", + "original": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Edg/99.0.1150.46", + "os": { + "full": "Windows 10", + "name": "Windows", + "version": "10" + }, + "version": "99.0.1150.46" + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.account.id | The cloud account or organization ID used to identify different entities in a multi-tenant environment. Examples: AWS account ID, Google Cloud ORG ID, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container ID. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| destination.as.organization.name | Organization name. | keyword | +| destination.as.organization.name.text | Multi-field of `destination.as.organization.name`. | match_only_text | +| destination.geo.city_name | City name. | keyword | +| destination.geo.continent_name | Name of the continent. | keyword | +| destination.geo.country_iso_code | Country ISO code. | keyword | +| destination.geo.country_name | Country name. | keyword | +| destination.geo.location | Longitude and latitude. | geo_point | +| destination.geo.region_iso_code | Region ISO code. | keyword | +| destination.geo.region_name | Region name. | keyword | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| email.from.address | The email address of the sender, typically from the RFC 5322 `From:` header field. | keyword | +| email.message_id | Identifier from the RFC 5322 `Message-ID:` email header that refers to a particular email message. | wildcard | +| email.to.address | The email address of recipient | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.dataset | Event dataset. | constant_keyword | +| event.id | Unique ID to describe the event. | keyword | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module. | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host ID. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host IP addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| proofpoint_tap.clicks_permitted.campaign_id | An identifier for the campaign of which the threat is a member, if available at the time of the query. Threats can be linked to campaigns even after these events are retrieved. | keyword | +| proofpoint_tap.clicks_permitted.classification | The threat category of the malicious URL. | keyword | +| proofpoint_tap.clicks_permitted.sender_ip | The IP address of the sender. | ip | +| proofpoint_tap.clicks_permitted.threat.id | The unique identifier associated with this threat. It can be used to query the forensics and campaign endpoints. | keyword | +| proofpoint_tap.clicks_permitted.threat.status | The current state of the threat. | keyword | +| proofpoint_tap.clicks_permitted.threat.time | Proofpoint identified the URL as a threat at this time. | date | +| proofpoint_tap.clicks_permitted.threat.url | A link to the entry on the TAP Dashboard for the particular threat. | keyword | +| proofpoint_tap.guid | The ID of the message within PPS. It can be used to identify the message in PPS and is guaranteed to be unique. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| tags | List of keywords used to tag each event. | keyword | +| url.domain | Domain of the url, such as "www.elastic.co". In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. | keyword | +| url.extension | The field contains the file extension from the original request url, excluding the leading dot. The file extension is only set if it exists, as not every url has a file extension. The leading period must not be included. For example, the value must be "png", not ".png". Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). | keyword | +| url.fragment | Portion of the url after the `#`, such as "top". The `#` is not part of the fragment. | keyword | +| url.full | If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. | wildcard | +| url.full.text | Multi-field of `url.full`. | match_only_text | +| url.original | Unmodified original url as seen in the event source. Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. This field is meant to represent the URL as it was observed, complete or not. | wildcard | +| url.original.text | Multi-field of `url.original`. | match_only_text | +| url.password | Password of the request. | keyword | +| url.path | Path of the request, such as "/search". | wildcard | +| url.port | Port of the request, such as 443. | long | +| url.query | The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. | keyword | +| url.scheme | Scheme of the request, such as "https". Note: The `:` is not part of the scheme. | keyword | +| url.username | Username of the request. | keyword | +| user_agent.device.name | Name of the device. | keyword | +| user_agent.name | Name of the user agent. | keyword | +| user_agent.original | Unparsed user_agent string. | keyword | +| user_agent.original.text | Multi-field of `user_agent.original`. | match_only_text | +| user_agent.os.full | Operating system name, including the version or code name. | keyword | +| user_agent.os.full.text | Multi-field of `user_agent.os.full`. | match_only_text | +| user_agent.os.name | Operating system name, without the version. | keyword | +| user_agent.os.name.text | Multi-field of `user_agent.os.name`. | match_only_text | +| user_agent.os.version | Operating system version as a raw string. | keyword | +| user_agent.version | Version of the user agent. | keyword | + + +### Message Blocked + +This is the `message_blocked` dataset. + +An example event for `message_blocked` looks as following: + +```json +{ + "@timestamp": "2022-05-09T09:41:02.164Z", + "agent": { + "ephemeral_id": "dfa889d8-af83-426a-b8dc-483740f73385", + "hostname": "docker-fleet-agent", + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "data_stream": { + "dataset": "proofpoint_tap.message_blocked", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "snapshot": false, + "version": "7.17.0" + }, + "email": { + "attachments": [ + { + "file": { + "hash": { + "md5": "b10a8db164e0754105b7a99be72e3fe5", + "sha256": "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e" + }, + "mime_type": "text/plain", + "name": "text.txt" + } + }, + { + "file": { + "hash": { + "md5": "b10a8db164e0754105b7a99be72e3fe5", + "sha256": "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e" + }, + "mime_type": "application/pdf", + "name": "text.pdf" + } + } + ], + "cc": { + "address": [ + "abc@example.com" + ] + }, + "delivery_timestamp": "2021-11-25T09:10:00.050Z", + "from": { + "address": "abc@example.com" + }, + "message_id": "12345678912345.12345.mail@example.com", + "sender": { + "address": "x99x7x5580193x6x51x597xx2x0210@example.com" + }, + "subject": "Please find a totally safe invoice attached.", + "to": { + "address": [ + "example.abc@example.com", + "hey.hello@example.com" + ] + }, + "x_mailer": "Spambot v2.5" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "email" + ], + "created": "2022-05-09T09:41:02.164Z", + "dataset": "proofpoint_tap.message_blocked", + "ingested": "2022-05-09T09:41:05Z", + "kind": "event", + "original": "{\"GUID\":\"x11xxxx1-12f9-111x-x12x-1x1x123456xx\",\"QID\":\"x2XXxXXX111111\",\"ccAddresses\":[\"abc@example.com\"],\"clusterId\":\"pharmtech_hosted\",\"completelyRewritten\":\"true\",\"fromAddress\":\"abc@example.com\",\"headerCC\":\"\\\"Example Abc\\\" \\u003cabc@example.com\\u003e\",\"headerFrom\":\"\\\"A. Bc\\\" \\u003cabc@example.com\\u003e\",\"headerReplyTo\":null,\"headerTo\":\"\\\"Aa Bb\\\" \\u003caa.bb@example.com\\u003e; \\\"Hey Hello\\\" \\u003chey.hello@example.com\\u003e\",\"impostorScore\":0,\"malwareScore\":100,\"messageID\":\"12345678912345.12345.mail@example.com\",\"messageParts\":[{\"contentType\":\"text/plain\",\"disposition\":\"inline\",\"filename\":\"text.txt\",\"md5\":\"b10a8db164e0754105b7a99be72e3fe5\",\"oContentType\":\"text/plain\",\"sandboxStatus\":\"unsupported\",\"sha256\":\"a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e\"},{\"contentType\":\"application/pdf\",\"disposition\":\"attached\",\"filename\":\"text.pdf\",\"md5\":\"b10a8db164e0754105b7a99be72e3fe5\",\"oContentType\":\"application/pdf\",\"sandboxStatus\":\"threat\",\"sha256\":\"a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e\"}],\"messageTime\":\"2021-11-25T09:10:00.050Z\",\"modulesRun\":[\"pdr\",\"sandbox\",\"spam\",\"urldefense\"],\"phishScore\":46,\"policyRoutes\":[\"default_inbound\",\"executives\"],\"quarantineFolder\":\"Attachment Defense\",\"quarantineRule\":\"module.sandbox.threat\",\"recipient\":[\"example.abc@example.com\",\"hey.hello@example.com\"],\"replyToAddress\":null,\"sender\":\"x99x7x5580193x6x51x597xx2x0210@example.com\",\"senderIP\":\"175.16.199.1\",\"spamScore\":4,\"subject\":\"Please find a totally safe invoice attached.\",\"threatsInfoMap\":[{\"campaignId\":\"46x01x8x-x899-404x-xxx9-111xx393d1x7\",\"classification\":\"MALWARE\",\"threat\":\"a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e\",\"threatId\":\"2xxx740f143fc1aa4c1cd0146d334x5593b1428x6x062b2c406e5efe8xxx95xx\",\"threatStatus\":\"active\",\"threatTime\":\"2021-11-25T09:10:00.050Z\",\"threatType\":\"ATTACHMENT\",\"threatUrl\":\"https://www.example.com/?name=john\"},{\"campaignId\":\"46x01x8x-x899-404x-xxx9-111xx393d1x7\",\"classification\":\"MALWARE\",\"threat\":\"example.com\",\"threatId\":\"3xx97xx852c66a7xx761450xxxxxx9f4ffab74715b591294f78b5e37a76481xx\",\"threatTime\":\"2021-07-20T05:00:00.050Z\",\"threatType\":\"URL\",\"threatUrl\":\"https://www.example.com/?name=john\"}],\"toAddresses\":[\"example.abc@example.com\",\"hey.hello@example.com\"],\"xmailer\":\"Spambot v2.5\"}", + "type": [ + "denied" + ] + }, + "input": { + "type": "httpjson" + }, + "proofpoint_tap": { + "guid": "x11xxxx1-12f9-111x-x12x-1x1x123456xx", + "message_blocked": { + "completely_rewritten": "true", + "header": { + "cc": "\"Example Abc\" \u003cabc@example.com\u003e", + "from": "\"A. Bc\" abc@example.com", + "to": "\"Aa Bb\" \u003caa.bb@example.com\u003e; \"Hey Hello\" \u003chey.hello@example.com\u003e" + }, + "impostor_score": 0, + "malware_score": 100, + "message_parts": [ + { + "disposition": "inline", + "o_content_type": "text/plain", + "sandbox_status": "unsupported" + }, + { + "disposition": "attached", + "o_content_type": "application/pdf", + "sandbox_status": "threat" + } + ], + "modules_run": [ + "pdr", + "sandbox", + "spam", + "urldefense" + ], + "phish_score": 46, + "policy_routes": [ + "default_inbound", + "executives" + ], + "qid": "x2XXxXXX111111", + "quarantine": { + "folder": "Attachment Defense", + "rule": "module.sandbox.threat" + }, + "recipient": [ + "example.abc@example.com", + "hey.hello@example.com" + ], + "spam_score": 4, + "threat_info_map": [ + { + "campaign_id": "46x01x8x-x899-404x-xxx9-111xx393d1x7", + "classification": "MALWARE", + "threat": { + "artifact": "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e", + "status": "active", + "time": "2021-11-25T09:10:00.050Z", + "type": "ATTACHMENT", + "url": "https://www.example.com/?name=john" + }, + "threatId": "2xxx740f143fc1aa4c1cd0146d334x5593b1428x6x062b2c406e5efe8xxx95xx" + }, + { + "campaign_id": "46x01x8x-x899-404x-xxx9-111xx393d1x7", + "classification": "MALWARE", + "threat": { + "artifact": "example.com", + "time": "2021-07-20T05:00:00.050Z", + "type": "URL", + "url": "https://www.example.com/?name=john" + }, + "threatId": "3xx97xx852c66a7xx761450xxxxxx9f4ffab74715b591294f78b5e37a76481xx" + } + ], + "to_addresses": [ + "example.abc@example.com", + "hey.hello@example.com" + ] + } + }, + "related": { + "hash": [ + "b10a8db164e0754105b7a99be72e3fe5", + "a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e" + ], + "ip": [ + "175.16.199.1" + ] + }, + "source": { + "geo": { + "city_name": "Changchun", + "continent_name": "Asia", + "country_iso_code": "CN", + "country_name": "China", + "location": { + "lat": 43.88, + "lon": 125.3228 + }, + "region_iso_code": "CN-22", + "region_name": "Jilin Sheng" + }, + "ip": "175.16.199.1" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "proofpoint_tap-message_blocked" + ] +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.account.id | The cloud account or organization ID used to identify different entities in a multi-tenant environment. Examples: AWS account ID, Google Cloud ORG ID, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container ID. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| email.attachments | A list of objects describing the attachment files sent along with an email message. | nested | +| email.attachments.file.hash.md5 | MD5 hash. | keyword | +| email.attachments.file.hash.sha256 | SHA256 hash. | keyword | +| email.attachments.file.name | Name of the attachment file including the file extension. | keyword | +| email.cc.address | The email address of CC recipient | keyword | +| email.content_type | Information about how the message is to be displayed. Typically a MIME type. | keyword | +| email.delivery_timestamp | The date and time when the email message was received by the service or client. | date | +| email.from.address | The email address of the sender, typically from the RFC 5322 `From:` header field. | keyword | +| email.message_id | Identifier from the RFC 5322 `Message-ID:` email header that refers to a particular email message. | wildcard | +| email.reply_to.address | The address that replies should be delivered to based on the value in the RFC 5322 `Reply-To:` header. | keyword | +| email.sender.address | Per RFC 5322, specifies the address responsible for the actual transmission of the message. | keyword | +| email.subject | A brief summary of the topic of the message. | keyword | +| email.subject.text | Multi-field of `email.subject`. | match_only_text | +| email.to.address | The email address of recipient | keyword | +| email.x_mailer | The name of the application that was used to draft and send the original email message. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.dataset | Event dataset. | constant_keyword | +| event.id | Unique ID to describe the event. | keyword | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module. | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host ID. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host IP addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| proofpoint_tap.guid | The ID of the message within PPS. It can be used to identify the message in PPS and is guaranteed to be unique. | keyword | +| proofpoint_tap.message_blocked.cluster | The name of the PPS cluster which processed the message. | keyword | +| proofpoint_tap.message_blocked.completely_rewritten | The rewrite status of the message. If value is 'true', all instances of URL threats within the message were successfully rewritten. If the value is 'false', at least one instance of the a threat URL was not rewritten. If the value is 'na', the message did not contain any URL-based threats. | keyword | +| proofpoint_tap.message_blocked.header.cc | | keyword | +| proofpoint_tap.message_blocked.header.from | The full content of the From: header, including any friendly name. | keyword | +| proofpoint_tap.message_blocked.header.replyto | If present, the full content of the Reply-To: header, including any friendly names. | keyword | +| proofpoint_tap.message_blocked.header.to | | keyword | +| proofpoint_tap.message_blocked.impostor_score | The impostor score of the message. Higher scores indicate higher certainty. | double | +| proofpoint_tap.message_blocked.malware_score | The malware score of the message. Higher scores indicate higher certainty. | long | +| proofpoint_tap.message_blocked.message_parts.disposition | If the value is "inline," the messagePart is a message body. If the value is "attached," the messagePart is an attachment. | keyword | +| proofpoint_tap.message_blocked.message_parts.o_content_type | The declared Content-Type of the messagePart. | keyword | +| proofpoint_tap.message_blocked.message_parts.sandbox_status | The verdict returned by the sandbox during the scanning process. If the value is "unsupported", the messagePart is not supported by Attachment Defense and was not scanned. If the value is "clean", the sandbox returned a clean verdict. If the value is "threat", the sandbox returned a malicious verdict. If the value is "prefilter", the messagePart contained no active content, and was therefore not sent to the sandboxing service. If the value is "uploaded," the message was uploaded by PPS to the sandboxing service, but did not yet have a verdict at the time the message was processed. If the value is "inprogress," the attachment had been uploaded and was awaiting scanning at the time the message was processed. If the verdict is "uploaddisabled," the attachment was eligible for scanning, but was not uploaded because of PPS policy. | keyword | +| proofpoint_tap.message_blocked.message_size | The size in bytes of the message, including headers and attachments. | long | +| proofpoint_tap.message_blocked.modules_run | The list of PPS modules which processed the message. | keyword | +| proofpoint_tap.message_blocked.phish_score | The phish score of the message. Higher scores indicate higher certainty. | long | +| proofpoint_tap.message_blocked.policy_routes | The policy routes that the message matched during processing by PPS. | keyword | +| proofpoint_tap.message_blocked.qid | The queue ID of the message within PPS. It can be used to identify the message in PPS and is not unique. | keyword | +| proofpoint_tap.message_blocked.quarantine.folder | The name of the folder which contains the quarantined message. This appears only for messagesBlocked. | keyword | +| proofpoint_tap.message_blocked.quarantine.rule | The name of the rule which quarantined the message. This appears only for messagesBlocked events. | keyword | +| proofpoint_tap.message_blocked.recipient | An array containing the email addresses of the SMTP (envelope) recipients. | keyword | +| proofpoint_tap.message_blocked.spam_score | The spam score of the message. Higher scores indicate higher certainty. | long | +| proofpoint_tap.message_blocked.threat_info_map.campaign_id | An identifier for the campaign of which the threat is a member, if available at the time of the query. Threats can be linked to campaigns even after these events are retrieved. | keyword | +| proofpoint_tap.message_blocked.threat_info_map.classification | The category of threat found in the message. | keyword | +| proofpoint_tap.message_blocked.threat_info_map.threat.artifact | The artifact which was condemned by Proofpoint. The malicious URL, hash of the attachment threat, or email address of the impostor sender. | keyword | +| proofpoint_tap.message_blocked.threat_info_map.threat.id | The unique identifier associated with this threat. It can be used to query the forensics and campaign endpoints. | keyword | +| proofpoint_tap.message_blocked.threat_info_map.threat.status | The current state of the threat. | keyword | +| proofpoint_tap.message_blocked.threat_info_map.threat.time | Proofpoint assigned the threatStatus at this time. | date | +| proofpoint_tap.message_blocked.threat_info_map.threat.type | Whether the threat was an attachment, URL, or message type. | keyword | +| proofpoint_tap.message_blocked.threat_info_map.threat.url | A link to the entry about the threat on the TAP Dashboard. | keyword | +| proofpoint_tap.message_blocked.to_addresses | A list of email addresses contained within the To: header, excluding friendly names. | keyword | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| source.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| source.as.organization.name | Organization name. | keyword | +| source.as.organization.name.text | Multi-field of `source.as.organization.name`. | match_only_text | +| source.geo.city_name | City name. | keyword | +| source.geo.continent_name | Name of the continent. | keyword | +| source.geo.country_iso_code | Country ISO code. | keyword | +| source.geo.country_name | Country name. | keyword | +| source.geo.location | Longitude and latitude. | geo_point | +| source.geo.region_iso_code | Region ISO code. | keyword | +| source.geo.region_name | Region name. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| tags | List of keywords used to tag each event. | keyword | + + +### Message Delivered + +This is the `message_delivered` dataset. + +An example event for `message_delivered` looks as following: + +```json +{ + "@timestamp": "2022-05-09T09:42:31.705Z", + "agent": { + "ephemeral_id": "59bb449e-3552-4dfb-a4a4-a6928d75b8fa", + "hostname": "docker-fleet-agent", + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "7.17.0" + }, + "data_stream": { + "dataset": "proofpoint_tap.message_delivered", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "3dc09e3a-0004-444b-a301-8c632b17172b", + "snapshot": false, + "version": "7.17.0" + }, + "email": { + "delivery_timestamp": "2022-01-01T00:00:00.000Z", + "to": { + "address": [ + "fxxxxhxsxxvxbcx2xx5xxx6x3xx26@example.com" + ] + } + }, + "event": { + "agent_id_status": "verified", + "category": [ + "email" + ], + "created": "2022-05-09T09:42:31.705Z", + "dataset": "proofpoint_tap.message_delivered", + "id": "2hsvbU-i8abc123-12345-xxxxx12", + "ingested": "2022-05-09T09:42:35Z", + "kind": "event", + "original": "{\"GUID\":\"NxxxsxvxbxUxixcx2xxxxx5x6xWxBxOxxxxxjxx\",\"QID\":null,\"ccAddresses\":null,\"cluster\":\"pharmtech_hosted\",\"completelyRewritten\":true,\"fromAddress\":null,\"headerFrom\":null,\"headerReplyTo\":null,\"id\":\"2hsvbU-i8abc123-12345-xxxxx12\",\"impostorScore\":0,\"malwareScore\":0,\"messageID\":\"\",\"messageParts\":null,\"messageSize\":0,\"messageTime\":\"2022-01-01T00:00:00.000Z\",\"modulesRun\":null,\"phishScore\":0,\"policyRoutes\":null,\"quarantineFolder\":null,\"quarantineRule\":null,\"recipient\":[\"fxxxxhxsxxvxbcx2xx5xxx6x3xx26@example.com\"],\"replyToAddress\":null,\"sender\":\"\",\"senderIP\":\"89.160.20.112\",\"spamScore\":0,\"subject\":null,\"threatsInfoMap\":[{\"campaignID\":null,\"classification\":\"spam\",\"threat\":\"http://zbcd123456x0.example.com\",\"threatID\":\"b7exxxxxxxx0d10xxxxxxe2xxxxxxxxxxxx81cxxxxxx034ac9cxxxxxxxxxxxxb\",\"threatStatus\":\"active\",\"threatTime\":\"2021-11-25T13:02:58.640Z\",\"threatType\":\"url\",\"threatUrl\":\"https://threatinsight.proofpoint.com/aaabcdef-1234-b1abcdefghe/threat/email/b7exxxxxxxx0d10xxxxxxe2xxxxxxxxxxxx81cxxxxxx034ac9cxxxxxxxxxxxxb\"},{\"campaignID\":null,\"classification\":\"phish\",\"threat\":\"http://zbcd123456x0.example.com\",\"threatID\":\"aaabcdefg123456f009971a9c193abcdefg123456bf5abcdefg1234566\",\"threatStatus\":\"active\",\"threatTime\":\"2021-07-19T10:28:15.100Z\",\"threatType\":\"url\",\"threatUrl\":\"https://threatinsight.proofpoint.com/aaabcdef-1234-b1abcdefghe/threat/email/b7exxxxxxxx0d10xxxxxxe2xxxxxxxxxxxx81cxxxxxx034ac9cxxxxxxxxxxxxb\"}],\"toAddresses\":null,\"xmailer\":null}", + "type": [ + "info" + ] + }, + "input": { + "type": "httpjson" + }, + "proofpoint_tap": { + "guid": "NxxxsxvxbxUxixcx2xxxxx5x6xWxBxOxxxxxjxx", + "message_delivered": { + "cluster": "pharmtech_hosted", + "completely_rewritten": "true", + "impostor_score": 0, + "malware_score": 0, + "message_size": 0, + "phish_score": 0, + "recipient": [ + "fxxxxhxsxxvxbcx2xx5xxx6x3xx26@example.com" + ], + "spam_score": 0, + "threat_info_map": [ + { + "classification": "spam", + "threat": { + "artifact": "http://zbcd123456x0.example.com", + "id": "b7exxxxxxxx0d10xxxxxxe2xxxxxxxxxxxx81cxxxxxx034ac9cxxxxxxxxxxxxb", + "status": "active", + "time": "2021-11-25T13:02:58.640Z", + "type": "url", + "url": "https://threatinsight.proofpoint.com/aaabcdef-1234-b1abcdefghe/threat/email/b7exxxxxxxx0d10xxxxxxe2xxxxxxxxxxxx81cxxxxxx034ac9cxxxxxxxxxxxxb" + } + }, + { + "classification": "phish", + "threat": { + "artifact": "http://zbcd123456x0.example.com", + "id": "aaabcdefg123456f009971a9c193abcdefg123456bf5abcdefg1234566", + "status": "active", + "time": "2021-07-19T10:28:15.100Z", + "type": "url", + "url": "https://threatinsight.proofpoint.com/aaabcdef-1234-b1abcdefghe/threat/email/b7exxxxxxxx0d10xxxxxxe2xxxxxxxxxxxx81cxxxxxx034ac9cxxxxxxxxxxxxb" + } + } + ] + } + }, + "related": { + "ip": [ + "89.160.20.112" + ] + }, + "source": { + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.112" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "proofpoint_tap-message_delivered" + ] +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.account.id | The cloud account or organization ID used to identify different entities in a multi-tenant environment. Examples: AWS account ID, Google Cloud ORG ID, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container ID. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| email.attachments | A list of objects describing the attachment files sent along with an email message. | nested | +| email.attachments.file.hash.md5 | MD5 hash. | keyword | +| email.attachments.file.hash.sha256 | SHA256 hash. | keyword | +| email.attachments.file.name | Name of the attachment file including the file extension. | keyword | +| email.cc.address | The email address of CC recipient | keyword | +| email.content_type | Information about how the message is to be displayed. Typically a MIME type. | keyword | +| email.delivery_timestamp | The date and time when the email message was received by the service or client. | date | +| email.from.address | The email address of the sender, typically from the RFC 5322 `From:` header field. | keyword | +| email.message_id | Identifier from the RFC 5322 `Message-ID:` email header that refers to a particular email message. | wildcard | +| email.reply_to.address | The address that replies should be delivered to based on the value in the RFC 5322 `Reply-To:` header. | keyword | +| email.sender.address | Per RFC 5322, specifies the address responsible for the actual transmission of the message. | keyword | +| email.subject | A brief summary of the topic of the message. | keyword | +| email.subject.text | Multi-field of `email.subject`. | match_only_text | +| email.to.address | The email address of recipient | keyword | +| email.x_mailer | The name of the application that was used to draft and send the original email message. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.dataset | Event dataset. | constant_keyword | +| event.id | Unique ID to describe the event. | keyword | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module. | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host ID. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host IP addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| proofpoint_tap.guid | The ID of the message within PPS. It can be used to identify the message in PPS and is guaranteed to be unique. | keyword | +| proofpoint_tap.message_delivered.cluster | The name of the PPS cluster which processed the message. | keyword | +| proofpoint_tap.message_delivered.completely_rewritten | The rewrite status of the message. If value is 'true', all instances of URL threats within the message were successfully rewritten. If the value is 'false', at least one instance of the a threat URL was not rewritten. If the value is 'na', the message did not contain any URL-based threats. | keyword | +| proofpoint_tap.message_delivered.header.from | The full content of the From: header, including any friendly name. | keyword | +| proofpoint_tap.message_delivered.header.replyto | If present, the full content of the Reply-To: header, including any friendly names. | keyword | +| proofpoint_tap.message_delivered.impostor_score | The impostor score of the message. Higher scores indicate higher certainty. | double | +| proofpoint_tap.message_delivered.malware_score | The malware score of the message. Higher scores indicate higher certainty. | long | +| proofpoint_tap.message_delivered.message_parts.disposition | If the value is "inline," the messagePart is a message body. If the value is "attached," the messagePart is an attachment. | keyword | +| proofpoint_tap.message_delivered.message_parts.o_content_type | The declared Content-Type of the messagePart. | keyword | +| proofpoint_tap.message_delivered.message_parts.sandbox_status | The verdict returned by the sandbox during the scanning process. If the value is "unsupported", the messagePart is not supported by Attachment Defense and was not scanned. If the value is "clean", the sandbox returned a clean verdict. If the value is "threat", the sandbox returned a malicious verdict. If the value is "prefilter", the messagePart contained no active content, and was therefore not sent to the sandboxing service. If the value is "uploaded," the message was uploaded by PPS to the sandboxing service, but did not yet have a verdict at the time the message was processed. If the value is "inprogress," the attachment had been uploaded and was awaiting scanning at the time the message was processed. If the verdict is "uploaddisabled," the attachment was eligible for scanning, but was not uploaded because of PPS policy. | keyword | +| proofpoint_tap.message_delivered.message_size | The size in bytes of the message, including headers and attachments. | long | +| proofpoint_tap.message_delivered.modules_run | The list of PPS modules which processed the message. | keyword | +| proofpoint_tap.message_delivered.phish_score | The phish score of the message. Higher scores indicate higher certainty. | long | +| proofpoint_tap.message_delivered.policy_routes | The policy routes that the message matched during processing by PPS. | keyword | +| proofpoint_tap.message_delivered.qid | The queue ID of the message within PPS. It can be used to identify the message in PPS and is not unique. | keyword | +| proofpoint_tap.message_delivered.quarantine.folder | The name of the folder which contains the quarantined message. This appears only for messagesBlocked. | keyword | +| proofpoint_tap.message_delivered.quarantine.rule | The name of the rule which quarantined the message. This appears only for messagesBlocked events. | keyword | +| proofpoint_tap.message_delivered.recipient | An array containing the email addresses of the SMTP (envelope) recipients. | keyword | +| proofpoint_tap.message_delivered.spam_score | The spam score of the message. Higher scores indicate higher certainty. | long | +| proofpoint_tap.message_delivered.threat_info_map.campaign_id | An identifier for the campaign of which the threat is a member, if available at the time of the query. Threats can be linked to campaigns even after these events are retrieved. | keyword | +| proofpoint_tap.message_delivered.threat_info_map.classification | The category of threat found in the message. | keyword | +| proofpoint_tap.message_delivered.threat_info_map.threat.artifact | The artifact which was condemned by Proofpoint. The malicious URL, hash of the attachment threat, or email address of the impostor sender. | keyword | +| proofpoint_tap.message_delivered.threat_info_map.threat.id | The unique identifier associated with this threat. It can be used to query the forensics and campaign endpoints. | keyword | +| proofpoint_tap.message_delivered.threat_info_map.threat.status | The current state of the threat. | keyword | +| proofpoint_tap.message_delivered.threat_info_map.threat.time | Proofpoint assigned the threatStatus at this time. | date | +| proofpoint_tap.message_delivered.threat_info_map.threat.type | Whether the threat was an attachment, URL, or message type. | keyword | +| proofpoint_tap.message_delivered.threat_info_map.threat.url | A link to the entry about the threat on the TAP Dashboard. | keyword | +| proofpoint_tap.message_delivered.to_addresses | A list of email addresses contained within the To: header, excluding friendly names. | keyword | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| source.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| source.as.organization.name | Organization name. | keyword | +| source.as.organization.name.text | Multi-field of `source.as.organization.name`. | match_only_text | +| source.geo.city_name | City name. | keyword | +| source.geo.continent_name | Name of the continent. | keyword | +| source.geo.country_iso_code | Country ISO code. | keyword | +| source.geo.country_name | Country name. | keyword | +| source.geo.location | Longitude and latitude. | geo_point | +| source.geo.region_iso_code | Region ISO code. | keyword | +| source.geo.region_name | Region name. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| tags | List of keywords used to tag each event. | keyword | + diff --git a/packages/proofpoint_tap/0.1.0/img/proofpoint_tap-logo.svg b/packages/proofpoint_tap/0.1.0/img/proofpoint_tap-logo.svg new file mode 100755 index 0000000000..9a147bc479 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/img/proofpoint_tap-logo.svg @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/proofpoint_tap/0.1.0/img/proofpoint_tap-screenshot.png b/packages/proofpoint_tap/0.1.0/img/proofpoint_tap-screenshot.png new file mode 100755 index 0000000000000000000000000000000000000000..d707ccb1c0693428b6af897d84f64ee215370a75 GIT binary patch literal 137037 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
    IdyopUWuFgOCXX&6h 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

    g=X+Rb{lCSr~D(>1@MIp;o`?c(sBSP8x=|gEu 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¾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 literal 0 HcmV?d00001 diff --git a/packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-3ad578f0-b5a6-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-3ad578f0-b5a6-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..07ee296840 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-3ad578f0-b5a6-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,98 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.clicks_blocked\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":21,\"i\":\"aa104adb-fbc4-4019-9fda-9f1ca4886d64\",\"w\":48,\"x\":0,\"y\":67},\"panelIndex\":\"aa104adb-fbc4-4019-9fda-9f1ca4886d64\",\"panelRefName\":\"panel_aa104adb-fbc4-4019-9fda-9f1ca4886d64\",\"type\":\"search\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-4ff0e011-970a-4b60-9158-962f4e89fbbe\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"4ff0e011-970a-4b60-9158-962f4e89fbbe\":{\"columnOrder\":[\"dc762ac8-6645-45a7-ba44-b3fbd0309338\"],\"columns\":{\"dc762ac8-6645-45a7-ba44-b3fbd0309338\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Total Clicks\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"accessor\":\"dc762ac8-6645-45a7-ba44-b3fbd0309338\",\"layerId\":\"4ff0e011-970a-4b60-9158-962f4e89fbbe\",\"layerType\":\"data\"}},\"title\":\"Count of Clicks [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"39f0263c-ab86-416a-8048-83d13edbdbab\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"39f0263c-ab86-416a-8048-83d13edbdbab\",\"title\":\"Count of Clicks [Logs Proofpoint TAP]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-09466534-a461-4fbb-850b-fba8df6b7c37\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"09466534-a461-4fbb-850b-fba8df6b7c37\":{\"columnOrder\":[\"caef084e-7dca-43d6-8538-a2806796463e\",\"8c76f7ef-0d3f-4558-8835-17fa53443a49\",\"8c76f7ef-0d3f-4558-8835-17fa53443a49X0\"],\"columns\":{\"8c76f7ef-0d3f-4558-8835-17fa53443a49\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"formula\",\"params\":{\"formula\":\"count()\",\"isFormulaBroken\":false},\"references\":[\"8c76f7ef-0d3f-4558-8835-17fa53443a49X0\"],\"scale\":\"ratio\"},\"8c76f7ef-0d3f-4558-8835-17fa53443a49X0\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Part of count()\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"caef084e-7dca-43d6-8538-a2806796463e\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Classification\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"fallback\":true,\"type\":\"alphabetical\"},\"orderDirection\":\"asc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.clicks_blocked.classification\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.clicks_blocked\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"caef084e-7dca-43d6-8538-a2806796463e\"],\"layerId\":\"09466534-a461-4fbb-850b-fba8df6b7c37\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"8c76f7ef-0d3f-4558-8835-17fa53443a49\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Blocked Clicks by Classification [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"d6f150e5-a82f-453c-867a-3c0f40ba826b\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"d6f150e5-a82f-453c-867a-3c0f40ba826b\",\"title\":\"Distribution of Blocked Clicks by Classification [Logs Proofpoint TAP]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-062ab937-584b-4266-b89a-e0965350fd15\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"062ab937-584b-4266-b89a-e0965350fd15\":{\"columnOrder\":[\"b4231a92-a121-4d7b-8975-7deb595868c2\",\"e4a9c4a7-4e05-4669-8842-47a87900ad7c\"],\"columns\":{\"b4231a92-a121-4d7b-8975-7deb595868c2\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"URL\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"e4a9c4a7-4e05-4669-8842-47a87900ad7c\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"url.full\"},\"e4a9c4a7-4e05-4669-8842-47a87900ad7c\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"b4231a92-a121-4d7b-8975-7deb595868c2\",\"isTransposed\":false},{\"columnId\":\"e4a9c4a7-4e05-4669-8842-47a87900ad7c\",\"isTransposed\":false}],\"layerId\":\"062ab937-584b-4266-b89a-e0965350fd15\",\"layerType\":\"data\"}},\"title\":\"Top 10 Malicious URL [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"b921de2f-edd5-4539-bb51-c94c5ddf4541\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"b921de2f-edd5-4539-bb51-c94c5ddf4541\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-ec2f7bac-2077-4709-9d52-3ae3c0a582de\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"ec2f7bac-2077-4709-9d52-3ae3c0a582de\":{\"columnOrder\":[\"394062e2-3219-4ff0-b930-7dceb79cb5cd\",\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\"],\"columns\":{\"394062e2-3219-4ff0-b930-7dceb79cb5cd\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Recipient\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"email.to.address\"},\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"394062e2-3219-4ff0-b930-7dceb79cb5cd\",\"isTransposed\":false},{\"columnId\":\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\",\"isTransposed\":false}],\"layerId\":\"ec2f7bac-2077-4709-9d52-3ae3c0a582de\",\"layerType\":\"data\"}},\"title\":\"Top 10 Recipient [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"4240bdb9-8306-43fe-8b7a-815e70e28fec\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"4240bdb9-8306-43fe-8b7a-815e70e28fec\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-f7d425df-4f7d-4e18-993d-b8a10cdffe22\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"f7d425df-4f7d-4e18-993d-b8a10cdffe22\":{\"columnOrder\":[\"967f19a8-3944-4a64-a05f-037bcf1f238c\",\"ea922d0b-14cf-4625-b038-71d6a627f340\"],\"columns\":{\"967f19a8-3944-4a64-a05f-037bcf1f238c\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Threat Status\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ea922d0b-14cf-4625-b038-71d6a627f340\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.clicks_blocked.threat.status\"},\"ea922d0b-14cf-4625-b038-71d6a627f340\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.clicks_blocked\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"967f19a8-3944-4a64-a05f-037bcf1f238c\"],\"layerId\":\"f7d425df-4f7d-4e18-993d-b8a10cdffe22\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"ea922d0b-14cf-4625-b038-71d6a627f340\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Blocked Clicks by Threat Status [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"37d32a2d-1d55-4da8-a1f0-4d5ad81c0f89\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"37d32a2d-1d55-4da8-a1f0-4d5ad81c0f89\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-4080ef48-91f4-4339-a059-fa6a9d0fcce8\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"4080ef48-91f4-4339-a059-fa6a9d0fcce8\":{\"columnOrder\":[\"2f67b930-a92f-41ef-96cd-5d9cc5de8d8d\",\"366f6367-65c3-4e65-8c28-f41b1ef719cf\"],\"columns\":{\"2f67b930-a92f-41ef-96cd-5d9cc5de8d8d\":{\"customLabel\":true,\"dataType\":\"ip\",\"isBucketed\":true,\"label\":\"IP\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"366f6367-65c3-4e65-8c28-f41b1ef719cf\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"destination.ip\"},\"366f6367-65c3-4e65-8c28-f41b1ef719cf\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"2f67b930-a92f-41ef-96cd-5d9cc5de8d8d\",\"isTransposed\":false},{\"columnId\":\"366f6367-65c3-4e65-8c28-f41b1ef719cf\",\"isTransposed\":false}],\"layerId\":\"4080ef48-91f4-4339-a059-fa6a9d0fcce8\",\"layerType\":\"data\"}},\"title\":\"Top 10 Click IP [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3afffe1a-ab24-4a60-bb83-1973840a6b89\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"3afffe1a-ab24-4a60-bb83-1973840a6b89\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"layerListJSON\":\"[{\\\"alpha\\\":1,\\\"id\\\":\\\"1d744b4f-b6df-4195-bfea-8e64340b7da1\\\",\\\"includeInFitToBounds\\\":true,\\\"label\\\":null,\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"sourceDescriptor\\\":{\\\"isAutoSelect\\\":true,\\\"type\\\":\\\"EMS_TMS\\\"},\\\"style\\\":{\\\"type\\\":\\\"TILE\\\"},\\\"type\\\":\\\"VECTOR_TILE\\\",\\\"visible\\\":true},{\\\"alpha\\\":0.75,\\\"id\\\":\\\"48984da5-6c09-4c75-86d5-b9c1791d120d\\\",\\\"includeInFitToBounds\\\":true,\\\"label\\\":\\\"Clicks\\\",\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"sourceDescriptor\\\":{\\\"applyForceRefresh\\\":true,\\\"applyGlobalQuery\\\":true,\\\"applyGlobalTime\\\":true,\\\"geoField\\\":\\\"destination.geo.location\\\",\\\"id\\\":\\\"35e48033-3f9a-4228-98be-980fff6c70a1\\\",\\\"metrics\\\":[{\\\"label\\\":\\\"Count\\\",\\\"type\\\":\\\"count\\\"}],\\\"requestType\\\":\\\"heatmap\\\",\\\"resolution\\\":\\\"COARSE\\\",\\\"type\\\":\\\"ES_GEO_GRID\\\",\\\"indexPatternId\\\":\\\"logs-*\\\"},\\\"style\\\":{\\\"colorRampName\\\":\\\"theclassic\\\",\\\"type\\\":\\\"HEATMAP\\\"},\\\"type\\\":\\\"HEATMAP\\\",\\\"visible\\\":true}]\",\"mapStateJSON\":\"{\\\"center\\\":{\\\"lat\\\":19.94277,\\\"lon\\\":0},\\\"filters\\\":[],\\\"query\\\":{\\\"language\\\":\\\"kuery\\\",\\\"query\\\":\\\"\\\"},\\\"refreshConfig\\\":{\\\"interval\\\":0,\\\"isPaused\\\":true},\\\"settings\\\":{\\\"autoFitToDataBounds\\\":false,\\\"backgroundColor\\\":\\\"#ffffff\\\",\\\"browserLocation\\\":{\\\"zoom\\\":2},\\\"disableInteractive\\\":false,\\\"disableTooltipControl\\\":false,\\\"fixedLocation\\\":{\\\"lat\\\":0,\\\"lon\\\":0,\\\"zoom\\\":2},\\\"hideLayerControl\\\":false,\\\"hideToolbarOverlay\\\":false,\\\"hideViewControl\\\":false,\\\"initialLocation\\\":\\\"LAST_SAVED_LOCATION\\\",\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"showScaleControl\\\":false,\\\"showSpatialFilters\\\":true,\\\"showTimesliderToggleButton\\\":true,\\\"spatialFiltersAlpa\\\":0.3,\\\"spatialFiltersFillColor\\\":\\\"#DA8B45\\\",\\\"spatialFiltersLineColor\\\":\\\"#DA8B45\\\"},\\\"timeFilters\\\":{\\\"from\\\":\\\"now-1y/d\\\",\\\"to\\\":\\\"now\\\"},\\\"zoom\\\":1.14}\",\"references\":[{\"id\":\"logs-*\",\"name\":\"layer_1_source_index_pattern\",\"type\":\"index-pattern\"}],\"title\":\"Clicks on URL by Region [Logs Proofpoint TAP]\",\"uiStateJSON\":\"{\\\"isLayerTOCOpen\\\":true,\\\"openTOCDetails\\\":[]}\"},\"enhancements\":{},\"hiddenLayers\":[],\"isLayerTOCOpen\":true,\"mapBuffer\":{\"maxLat\":85.05113,\"maxLon\":270,\"minLat\":-66.51326,\"minLon\":-270},\"mapCenter\":{\"lat\":51.78838,\"lon\":18.18583,\"zoom\":1.14},\"openTOCDetails\":[]},\"gridData\":{\"h\":22,\"i\":\"2e6e0f5d-6968-46c7-9ccf-d0324b2e467f\",\"w\":48,\"x\":0,\"y\":45},\"panelIndex\":\"2e6e0f5d-6968-46c7-9ccf-d0324b2e467f\",\"type\":\"map\",\"version\":\"7.17.0\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-24h/h", + "timeRestore": true, + "timeTo": "now", + "title": "[Logs Proofpoint TAP] Blocked Clicks", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-3ad578f0-b5a6-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "proofpoint_tap-717803c0-b130-11ec-8e58-3fc548a48fe4", + "name": "aa104adb-fbc4-4019-9fda-9f1ca4886d64:panel_aa104adb-fbc4-4019-9fda-9f1ca4886d64", + "type": "search" + }, + { + "id": "logs-*", + "name": "39f0263c-ab86-416a-8048-83d13edbdbab:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "39f0263c-ab86-416a-8048-83d13edbdbab:indexpattern-datasource-layer-4ff0e011-970a-4b60-9158-962f4e89fbbe", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d6f150e5-a82f-453c-867a-3c0f40ba826b:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d6f150e5-a82f-453c-867a-3c0f40ba826b:indexpattern-datasource-layer-09466534-a461-4fbb-850b-fba8df6b7c37", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b921de2f-edd5-4539-bb51-c94c5ddf4541:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b921de2f-edd5-4539-bb51-c94c5ddf4541:indexpattern-datasource-layer-062ab937-584b-4266-b89a-e0965350fd15", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "4240bdb9-8306-43fe-8b7a-815e70e28fec:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "4240bdb9-8306-43fe-8b7a-815e70e28fec:indexpattern-datasource-layer-ec2f7bac-2077-4709-9d52-3ae3c0a582de", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "37d32a2d-1d55-4da8-a1f0-4d5ad81c0f89:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "37d32a2d-1d55-4da8-a1f0-4d5ad81c0f89:indexpattern-datasource-layer-f7d425df-4f7d-4e18-993d-b8a10cdffe22", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3afffe1a-ab24-4a60-bb83-1973840a6b89:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3afffe1a-ab24-4a60-bb83-1973840a6b89:indexpattern-datasource-layer-4080ef48-91f4-4339-a059-fa6a9d0fcce8", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "2e6e0f5d-6968-46c7-9ccf-d0324b2e467f:layer_1_source_index_pattern", + "type": "index-pattern" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-770903b0-b5aa-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-770903b0-b5aa-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..370accc59d --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-770903b0-b5aa-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,98 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.clicks_permitted\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":22,\"i\":\"7fe02808-920c-4356-a052-d449b2e57ed5\",\"w\":48,\"x\":0,\"y\":66},\"panelIndex\":\"7fe02808-920c-4356-a052-d449b2e57ed5\",\"panelRefName\":\"panel_7fe02808-920c-4356-a052-d449b2e57ed5\",\"type\":\"search\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-4ff0e011-970a-4b60-9158-962f4e89fbbe\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"4ff0e011-970a-4b60-9158-962f4e89fbbe\":{\"columnOrder\":[\"dc762ac8-6645-45a7-ba44-b3fbd0309338\"],\"columns\":{\"dc762ac8-6645-45a7-ba44-b3fbd0309338\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Total Clicks\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"accessor\":\"dc762ac8-6645-45a7-ba44-b3fbd0309338\",\"layerId\":\"4ff0e011-970a-4b60-9158-962f4e89fbbe\",\"layerType\":\"data\"}},\"title\":\"Count of Clicks [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"2d93f439-bff8-4e48-b469-fca11e18ba81\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"2d93f439-bff8-4e48-b469-fca11e18ba81\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-1c93261b-da1f-4d85-aaaf-3457bdcc6ff4\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"1c93261b-da1f-4d85-aaaf-3457bdcc6ff4\":{\"columnOrder\":[\"f13e79eb-00ed-4e68-98b5-b5c927055fec\",\"0466e119-38e8-4d0a-a48f-9b2e7a89d213\"],\"columns\":{\"0466e119-38e8-4d0a-a48f-9b2e7a89d213\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"f13e79eb-00ed-4e68-98b5-b5c927055fec\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Classification\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"0466e119-38e8-4d0a-a48f-9b2e7a89d213\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.clicks_permitted.classification\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.clicks_permitted\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"f13e79eb-00ed-4e68-98b5-b5c927055fec\"],\"layerId\":\"1c93261b-da1f-4d85-aaaf-3457bdcc6ff4\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"0466e119-38e8-4d0a-a48f-9b2e7a89d213\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Permitted Clicks by Classification [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"05a16b7a-9e32-4398-b547-b44ba5dd1572\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"05a16b7a-9e32-4398-b547-b44ba5dd1572\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-c4191f86-9c54-4a06-a3dd-842b3ef7c241\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"c4191f86-9c54-4a06-a3dd-842b3ef7c241\":{\"columnOrder\":[\"a3e04efb-2f37-464b-a6f2-23c0e19d790d\",\"40a5f8c4-9eb3-4dcf-8520-acdb820944df\"],\"columns\":{\"40a5f8c4-9eb3-4dcf-8520-acdb820944df\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"a3e04efb-2f37-464b-a6f2-23c0e19d790d\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Threat Status\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"40a5f8c4-9eb3-4dcf-8520-acdb820944df\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.clicks_permitted.threat.status\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.clicks_permitted\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"a3e04efb-2f37-464b-a6f2-23c0e19d790d\"],\"layerId\":\"c4191f86-9c54-4a06-a3dd-842b3ef7c241\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"40a5f8c4-9eb3-4dcf-8520-acdb820944df\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Permitted Clicks by Threat Status [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"771e46d7-ce5c-4c0d-81b2-841e283abf2c\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"771e46d7-ce5c-4c0d-81b2-841e283abf2c\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-062ab937-584b-4266-b89a-e0965350fd15\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"062ab937-584b-4266-b89a-e0965350fd15\":{\"columnOrder\":[\"b4231a92-a121-4d7b-8975-7deb595868c2\",\"e4a9c4a7-4e05-4669-8842-47a87900ad7c\"],\"columns\":{\"b4231a92-a121-4d7b-8975-7deb595868c2\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"URL\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"e4a9c4a7-4e05-4669-8842-47a87900ad7c\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"url.full\"},\"e4a9c4a7-4e05-4669-8842-47a87900ad7c\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"b4231a92-a121-4d7b-8975-7deb595868c2\",\"isTransposed\":false},{\"columnId\":\"e4a9c4a7-4e05-4669-8842-47a87900ad7c\",\"isTransposed\":false}],\"layerId\":\"062ab937-584b-4266-b89a-e0965350fd15\",\"layerType\":\"data\"}},\"title\":\"Top 10 Malicious URL [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"08dc3a8e-380f-4998-b83f-2791b6b8a4a5\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"08dc3a8e-380f-4998-b83f-2791b6b8a4a5\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-ec2f7bac-2077-4709-9d52-3ae3c0a582de\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"ec2f7bac-2077-4709-9d52-3ae3c0a582de\":{\"columnOrder\":[\"394062e2-3219-4ff0-b930-7dceb79cb5cd\",\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\"],\"columns\":{\"394062e2-3219-4ff0-b930-7dceb79cb5cd\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Recipient\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"email.to.address\"},\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"394062e2-3219-4ff0-b930-7dceb79cb5cd\",\"isTransposed\":false},{\"columnId\":\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\",\"isTransposed\":false}],\"layerId\":\"ec2f7bac-2077-4709-9d52-3ae3c0a582de\",\"layerType\":\"data\"}},\"title\":\"Top 10 Recipient [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"85ab74a3-eb94-47f2-9592-6654f540d9d5\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"85ab74a3-eb94-47f2-9592-6654f540d9d5\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-4080ef48-91f4-4339-a059-fa6a9d0fcce8\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"4080ef48-91f4-4339-a059-fa6a9d0fcce8\":{\"columnOrder\":[\"2f67b930-a92f-41ef-96cd-5d9cc5de8d8d\",\"366f6367-65c3-4e65-8c28-f41b1ef719cf\"],\"columns\":{\"2f67b930-a92f-41ef-96cd-5d9cc5de8d8d\":{\"customLabel\":true,\"dataType\":\"ip\",\"isBucketed\":true,\"label\":\"IP\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"366f6367-65c3-4e65-8c28-f41b1ef719cf\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"destination.ip\"},\"366f6367-65c3-4e65-8c28-f41b1ef719cf\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"2f67b930-a92f-41ef-96cd-5d9cc5de8d8d\",\"isTransposed\":false},{\"columnId\":\"366f6367-65c3-4e65-8c28-f41b1ef719cf\",\"isTransposed\":false}],\"layerId\":\"4080ef48-91f4-4339-a059-fa6a9d0fcce8\",\"layerType\":\"data\"}},\"title\":\"Top 10 Click IP [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"bae14c77-2488-49e8-87e1-f60be58b1ad9\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"bae14c77-2488-49e8-87e1-f60be58b1ad9\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"layerListJSON\":\"[{\\\"alpha\\\":1,\\\"id\\\":\\\"1d744b4f-b6df-4195-bfea-8e64340b7da1\\\",\\\"includeInFitToBounds\\\":true,\\\"label\\\":null,\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"sourceDescriptor\\\":{\\\"isAutoSelect\\\":true,\\\"type\\\":\\\"EMS_TMS\\\"},\\\"style\\\":{\\\"type\\\":\\\"TILE\\\"},\\\"type\\\":\\\"VECTOR_TILE\\\",\\\"visible\\\":true},{\\\"alpha\\\":0.75,\\\"id\\\":\\\"48984da5-6c09-4c75-86d5-b9c1791d120d\\\",\\\"includeInFitToBounds\\\":true,\\\"label\\\":\\\"Clicks\\\",\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"sourceDescriptor\\\":{\\\"applyForceRefresh\\\":true,\\\"applyGlobalQuery\\\":true,\\\"applyGlobalTime\\\":true,\\\"geoField\\\":\\\"destination.geo.location\\\",\\\"id\\\":\\\"35e48033-3f9a-4228-98be-980fff6c70a1\\\",\\\"metrics\\\":[{\\\"label\\\":\\\"Count\\\",\\\"type\\\":\\\"count\\\"}],\\\"requestType\\\":\\\"heatmap\\\",\\\"resolution\\\":\\\"COARSE\\\",\\\"type\\\":\\\"ES_GEO_GRID\\\",\\\"indexPatternId\\\":\\\"logs-*\\\"},\\\"style\\\":{\\\"colorRampName\\\":\\\"theclassic\\\",\\\"type\\\":\\\"HEATMAP\\\"},\\\"type\\\":\\\"HEATMAP\\\",\\\"visible\\\":true}]\",\"mapStateJSON\":\"{\\\"center\\\":{\\\"lat\\\":19.94277,\\\"lon\\\":0},\\\"filters\\\":[],\\\"query\\\":{\\\"language\\\":\\\"kuery\\\",\\\"query\\\":\\\"\\\"},\\\"refreshConfig\\\":{\\\"interval\\\":0,\\\"isPaused\\\":true},\\\"settings\\\":{\\\"autoFitToDataBounds\\\":false,\\\"backgroundColor\\\":\\\"#ffffff\\\",\\\"browserLocation\\\":{\\\"zoom\\\":2},\\\"disableInteractive\\\":false,\\\"disableTooltipControl\\\":false,\\\"fixedLocation\\\":{\\\"lat\\\":0,\\\"lon\\\":0,\\\"zoom\\\":2},\\\"hideLayerControl\\\":false,\\\"hideToolbarOverlay\\\":false,\\\"hideViewControl\\\":false,\\\"initialLocation\\\":\\\"LAST_SAVED_LOCATION\\\",\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"showScaleControl\\\":false,\\\"showSpatialFilters\\\":true,\\\"showTimesliderToggleButton\\\":true,\\\"spatialFiltersAlpa\\\":0.3,\\\"spatialFiltersFillColor\\\":\\\"#DA8B45\\\",\\\"spatialFiltersLineColor\\\":\\\"#DA8B45\\\"},\\\"timeFilters\\\":{\\\"from\\\":\\\"now-1y/d\\\",\\\"to\\\":\\\"now\\\"},\\\"zoom\\\":1.14}\",\"references\":[{\"id\":\"logs-*\",\"name\":\"layer_1_source_index_pattern\",\"type\":\"index-pattern\"}],\"title\":\"Clicks on URL by Region [Logs Proofpoint TAP]\",\"uiStateJSON\":\"{\\\"isLayerTOCOpen\\\":true,\\\"openTOCDetails\\\":[]}\"},\"enhancements\":{},\"hiddenLayers\":[],\"isLayerTOCOpen\":true,\"mapBuffer\":{\"maxLat\":66.51326,\"maxLon\":180,\"minLat\":-66.51326,\"minLon\":-180},\"mapCenter\":{\"lat\":19.94277,\"lon\":0,\"zoom\":1.14},\"openTOCDetails\":[]},\"gridData\":{\"h\":21,\"i\":\"b4c89de9-9f07-4261-8fd5-554b89dbb714\",\"w\":48,\"x\":0,\"y\":45},\"panelIndex\":\"b4c89de9-9f07-4261-8fd5-554b89dbb714\",\"type\":\"map\",\"version\":\"7.17.0\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-24h/h", + "timeRestore": true, + "timeTo": "now", + "title": "[Logs Proofpoint TAP] Permitted Clicks", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-770903b0-b5aa-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "proofpoint_tap-717803c0-b130-11ec-8e58-3fc548a48fe4", + "name": "7fe02808-920c-4356-a052-d449b2e57ed5:panel_7fe02808-920c-4356-a052-d449b2e57ed5", + "type": "search" + }, + { + "id": "logs-*", + "name": "2d93f439-bff8-4e48-b469-fca11e18ba81:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "2d93f439-bff8-4e48-b469-fca11e18ba81:indexpattern-datasource-layer-4ff0e011-970a-4b60-9158-962f4e89fbbe", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "05a16b7a-9e32-4398-b547-b44ba5dd1572:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "05a16b7a-9e32-4398-b547-b44ba5dd1572:indexpattern-datasource-layer-1c93261b-da1f-4d85-aaaf-3457bdcc6ff4", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "771e46d7-ce5c-4c0d-81b2-841e283abf2c:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "771e46d7-ce5c-4c0d-81b2-841e283abf2c:indexpattern-datasource-layer-c4191f86-9c54-4a06-a3dd-842b3ef7c241", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "08dc3a8e-380f-4998-b83f-2791b6b8a4a5:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "08dc3a8e-380f-4998-b83f-2791b6b8a4a5:indexpattern-datasource-layer-062ab937-584b-4266-b89a-e0965350fd15", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "85ab74a3-eb94-47f2-9592-6654f540d9d5:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "85ab74a3-eb94-47f2-9592-6654f540d9d5:indexpattern-datasource-layer-ec2f7bac-2077-4709-9d52-3ae3c0a582de", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "bae14c77-2488-49e8-87e1-f60be58b1ad9:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "bae14c77-2488-49e8-87e1-f60be58b1ad9:indexpattern-datasource-layer-4080ef48-91f4-4339-a059-fa6a9d0fcce8", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b4c89de9-9f07-4261-8fd5-554b89dbb714:layer_1_source_index_pattern", + "type": "index-pattern" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-9899aae0-b5ad-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-9899aae0-b5ad-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..0f242ce67d --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-9899aae0-b5ad-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,158 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_blocked\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":21,\"i\":\"e5247373-1ae6-403b-89b5-93281d642883\",\"w\":48,\"x\":0,\"y\":111},\"panelIndex\":\"e5247373-1ae6-403b-89b5-93281d642883\",\"panelRefName\":\"panel_e5247373-1ae6-403b-89b5-93281d642883\",\"type\":\"search\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-66e9770d-b676-49a0-b502-b3cf64aae59d\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"66e9770d-b676-49a0-b502-b3cf64aae59d\":{\"columnOrder\":[\"7afa9eab-9e68-42c1-a5f8-7891197560e2\"],\"columns\":{\"7afa9eab-9e68-42c1-a5f8-7891197560e2\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Total Messages\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"accessor\":\"7afa9eab-9e68-42c1-a5f8-7891197560e2\",\"layerId\":\"66e9770d-b676-49a0-b502-b3cf64aae59d\",\"layerType\":\"data\"}},\"title\":\"Count of Messages [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"2cfc095d-92da-4512-bf45-21f3a7508129\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"2cfc095d-92da-4512-bf45-21f3a7508129\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-e7630b81-f809-4d49-b269-1788bdbdf649\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"e7630b81-f809-4d49-b269-1788bdbdf649\":{\"columnOrder\":[\"8a033b2f-c808-4ae0-b593-862e401fd4d0\",\"ba6e6c21-db26-4ce1-9608-ebc8562ee460\"],\"columns\":{\"8a033b2f-c808-4ae0-b593-862e401fd4d0\":{\"customLabel\":true,\"dataType\":\"ip\",\"isBucketed\":true,\"label\":\"IP\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ba6e6c21-db26-4ce1-9608-ebc8562ee460\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"source.ip\"},\"ba6e6c21-db26-4ce1-9608-ebc8562ee460\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"8a033b2f-c808-4ae0-b593-862e401fd4d0\",\"isTransposed\":false},{\"columnId\":\"ba6e6c21-db26-4ce1-9608-ebc8562ee460\",\"isTransposed\":false}],\"layerId\":\"e7630b81-f809-4d49-b269-1788bdbdf649\",\"layerType\":\"data\"}},\"title\":\"Top 10 Sender IP [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"efdb9e8c-8541-401c-acc6-767c1a637db4\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"efdb9e8c-8541-401c-acc6-767c1a637db4\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-402e61cc-9dba-466f-9269-27b48dd2e4a1\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"402e61cc-9dba-466f-9269-27b48dd2e4a1\":{\"columnOrder\":[\"d1076744-9ca0-4908-a16f-ef349e2cd32a\",\"9b3ba2ba-191d-4e9b-bf2c-ebaf2c43e241\"],\"columns\":{\"9b3ba2ba-191d-4e9b-bf2c-ebaf2c43e241\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"d1076744-9ca0-4908-a16f-ef349e2cd32a\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Disposition\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"9b3ba2ba-191d-4e9b-bf2c-ebaf2c43e241\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_blocked.message_parts.disposition\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_blocked\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"d1076744-9ca0-4908-a16f-ef349e2cd32a\"],\"layerId\":\"402e61cc-9dba-466f-9269-27b48dd2e4a1\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"9b3ba2ba-191d-4e9b-bf2c-ebaf2c43e241\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Blocked Messages by Disposition [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"637266a0-908f-40ee-aa10-55569e7cbd29\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"637266a0-908f-40ee-aa10-55569e7cbd29\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-a0987be1-b682-412e-8d46-a4ad00e985c1\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"a0987be1-b682-412e-8d46-a4ad00e985c1\":{\"columnOrder\":[\"74697bb2-b72f-4b6e-b651-06f50ef31467\",\"87ce1993-56c0-4458-9cb1-ae12af5a629a\"],\"columns\":{\"74697bb2-b72f-4b6e-b651-06f50ef31467\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Rewritten URL\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"87ce1993-56c0-4458-9cb1-ae12af5a629a\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_blocked.completely_rewritten\"},\"87ce1993-56c0-4458-9cb1-ae12af5a629a\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_blocked\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"74697bb2-b72f-4b6e-b651-06f50ef31467\"],\"layerId\":\"a0987be1-b682-412e-8d46-a4ad00e985c1\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"87ce1993-56c0-4458-9cb1-ae12af5a629a\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Blocked Messages by Rewritten URL [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3e565fd9-f29d-41b5-a084-7393d29028d9\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"3e565fd9-f29d-41b5-a084-7393d29028d9\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-ec2f7bac-2077-4709-9d52-3ae3c0a582de\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"ec2f7bac-2077-4709-9d52-3ae3c0a582de\":{\"columnOrder\":[\"394062e2-3219-4ff0-b930-7dceb79cb5cd\",\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\"],\"columns\":{\"394062e2-3219-4ff0-b930-7dceb79cb5cd\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Recipient\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"email.to.address\"},\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"394062e2-3219-4ff0-b930-7dceb79cb5cd\",\"isTransposed\":false},{\"columnId\":\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\",\"isTransposed\":false}],\"layerId\":\"ec2f7bac-2077-4709-9d52-3ae3c0a582de\",\"layerType\":\"data\"}},\"title\":\"Top 10 Recipient [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"2371e369-c82c-4443-bbf5-9d2b119fb9e9\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"2371e369-c82c-4443-bbf5-9d2b119fb9e9\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-e327fec5-d799-4b3f-acfc-32c1ecaac682\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"e327fec5-d799-4b3f-acfc-32c1ecaac682\":{\"columnOrder\":[\"f096fb9b-5208-4f47-b5a5-0ad3de754fda\",\"8b4a490d-a36c-4a6a-86b0-7dea7d28c2c8\"],\"columns\":{\"8b4a490d-a36c-4a6a-86b0-7dea7d28c2c8\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"f096fb9b-5208-4f47-b5a5-0ad3de754fda\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Classification\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"8b4a490d-a36c-4a6a-86b0-7dea7d28c2c8\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_blocked.threat_info_map.classification\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_blocked\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"f096fb9b-5208-4f47-b5a5-0ad3de754fda\"],\"layerId\":\"e327fec5-d799-4b3f-acfc-32c1ecaac682\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"8b4a490d-a36c-4a6a-86b0-7dea7d28c2c8\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Blocked Messages by Threat Classification [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"a3d367ee-91bb-421d-b6fc-27daabd46a54\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"a3d367ee-91bb-421d-b6fc-27daabd46a54\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-f2e404cb-ffef-4218-a7d7-20a1972f7fe5\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"f2e404cb-ffef-4218-a7d7-20a1972f7fe5\":{\"columnOrder\":[\"86527e47-1073-45bd-8f35-657f4d277b62\",\"f40e0576-52c6-4c09-8b8e-446699fed30e\"],\"columns\":{\"86527e47-1073-45bd-8f35-657f4d277b62\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Threat Status\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"f40e0576-52c6-4c09-8b8e-446699fed30e\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_blocked.threat_info_map.threat.status\"},\"f40e0576-52c6-4c09-8b8e-446699fed30e\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_blocked\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"86527e47-1073-45bd-8f35-657f4d277b62\"],\"layerId\":\"f2e404cb-ffef-4218-a7d7-20a1972f7fe5\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"f40e0576-52c6-4c09-8b8e-446699fed30e\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Blocked Messages by Threat Status [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3a258b28-29d4-4719-a65e-db1153b954fc\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"3a258b28-29d4-4719-a65e-db1153b954fc\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-01c9ddee-f668-4ee5-8bb6-98e74d2e1439\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"01c9ddee-f668-4ee5-8bb6-98e74d2e1439\":{\"columnOrder\":[\"7d6f8989-f0ce-4a9c-b24e-42c9ad42431d\",\"47666138-8fdd-4735-9a26-d5586276afe9\"],\"columns\":{\"47666138-8fdd-4735-9a26-d5586276afe9\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"7d6f8989-f0ce-4a9c-b24e-42c9ad42431d\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Sandbox Status\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"47666138-8fdd-4735-9a26-d5586276afe9\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_blocked.message_parts.sandbox_status\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_blocked\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"7d6f8989-f0ce-4a9c-b24e-42c9ad42431d\"],\"layerId\":\"01c9ddee-f668-4ee5-8bb6-98e74d2e1439\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"47666138-8fdd-4735-9a26-d5586276afe9\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Blocked Messages by Sandbox Status [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"850608eb-ca33-452f-a129-c4719224c52f\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"850608eb-ca33-452f-a129-c4719224c52f\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-b71a1c6d-1b9f-4b5f-ad26-7de6a5601691\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"b71a1c6d-1b9f-4b5f-ad26-7de6a5601691\":{\"columnOrder\":[\"73dab922-14a4-4c5c-a297-9873a91dad59\",\"b12333e5-b88d-4a3e-96bb-467efc2745b5\"],\"columns\":{\"73dab922-14a4-4c5c-a297-9873a91dad59\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Threat Type\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"b12333e5-b88d-4a3e-96bb-467efc2745b5\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_blocked.threat_info_map.threat.type\"},\"b12333e5-b88d-4a3e-96bb-467efc2745b5\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_blocked\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"73dab922-14a4-4c5c-a297-9873a91dad59\"],\"layerId\":\"b71a1c6d-1b9f-4b5f-ad26-7de6a5601691\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"b12333e5-b88d-4a3e-96bb-467efc2745b5\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Blocked Messages by Threat Type [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"c9517aa1-8122-434d-b93d-719030617688\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"c9517aa1-8122-434d-b93d-719030617688\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-657c0ea2-d756-4c8e-8638-4a2cf8a00bad\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"657c0ea2-d756-4c8e-8638-4a2cf8a00bad\":{\"columnOrder\":[\"4507c7f7-7878-40d4-905f-50360a596573\",\"d7959ce0-0861-4dd4-bdb3-42d8578ebd2f\"],\"columns\":{\"4507c7f7-7878-40d4-905f-50360a596573\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Email Mailer\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"d7959ce0-0861-4dd4-bdb3-42d8578ebd2f\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"email.x_mailer\"},\"d7959ce0-0861-4dd4-bdb3-42d8578ebd2f\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"d7959ce0-0861-4dd4-bdb3-42d8578ebd2f\"],\"layerId\":\"657c0ea2-d756-4c8e-8638-4a2cf8a00bad\",\"layerType\":\"data\",\"seriesType\":\"bar\",\"xAccessor\":\"4507c7f7-7878-40d4-905f-50360a596573\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Messages by Email X_Mailer [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6b458dd4-988b-44d1-bd30-1bfadd99712b\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"6b458dd4-988b-44d1-bd30-1bfadd99712b\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-8bc257b1-f278-4281-b618-12892df43c90\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"8bc257b1-f278-4281-b618-12892df43c90\":{\"columnOrder\":[\"bd52eba0-e079-4b31-b053-d6d8e519b21d\",\"a9cf6093-c996-4557-8819-3d2b273e62b0\"],\"columns\":{\"a9cf6093-c996-4557-8819-3d2b273e62b0\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"bd52eba0-e079-4b31-b053-d6d8e519b21d\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Quarantine Folder\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"a9cf6093-c996-4557-8819-3d2b273e62b0\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_blocked.quarantine.folder\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_blocked\\\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"a9cf6093-c996-4557-8819-3d2b273e62b0\"],\"layerId\":\"8bc257b1-f278-4281-b618-12892df43c90\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar\",\"showGridlines\":false,\"xAccessor\":\"bd52eba0-e079-4b31-b053-d6d8e519b21d\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Blocked Messages by Quarantine Folder [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"91bf4cc9-d875-476b-afa9-353e6a6115d2\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"91bf4cc9-d875-476b-afa9-353e6a6115d2\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-4b31f83f-2fc1-4509-8a5b-0c80eea8c627\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"4b31f83f-2fc1-4509-8a5b-0c80eea8c627\":{\"columnOrder\":[\"aec564b0-2091-4304-8a29-d839f9aec0aa\",\"efe56213-9c9c-4215-91cd-907114802d3a\"],\"columns\":{\"aec564b0-2091-4304-8a29-d839f9aec0aa\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Quarantine Rule\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"efe56213-9c9c-4215-91cd-907114802d3a\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_blocked.quarantine.rule\"},\"efe56213-9c9c-4215-91cd-907114802d3a\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_blocked\\\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"efe56213-9c9c-4215-91cd-907114802d3a\"],\"layerId\":\"4b31f83f-2fc1-4509-8a5b-0c80eea8c627\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar\",\"showGridlines\":false,\"xAccessor\":\"aec564b0-2091-4304-8a29-d839f9aec0aa\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Blocked Messages by Quarantine Rule [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f8ff2974-b1e9-4a81-a5af-8f5d6d13abce\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"f8ff2974-b1e9-4a81-a5af-8f5d6d13abce\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"layerListJSON\":\"[{\\\"alpha\\\":1,\\\"id\\\":\\\"c6a42104-e390-4c56-8ef8-5bd774773e72\\\",\\\"includeInFitToBounds\\\":true,\\\"label\\\":null,\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"sourceDescriptor\\\":{\\\"isAutoSelect\\\":true,\\\"type\\\":\\\"EMS_TMS\\\"},\\\"style\\\":{\\\"type\\\":\\\"TILE\\\"},\\\"type\\\":\\\"VECTOR_TILE\\\",\\\"visible\\\":true},{\\\"alpha\\\":0.75,\\\"id\\\":\\\"f8e2c82c-56b8-425d-a79d-ab24baf35f89\\\",\\\"includeInFitToBounds\\\":true,\\\"label\\\":\\\"Sender\\\",\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"sourceDescriptor\\\":{\\\"applyForceRefresh\\\":true,\\\"applyGlobalQuery\\\":true,\\\"applyGlobalTime\\\":true,\\\"geoField\\\":\\\"source.geo.location\\\",\\\"id\\\":\\\"ce99667c-f3a0-4d3c-b0d0-6e6ba88f1a9e\\\",\\\"metrics\\\":[{\\\"label\\\":\\\"Count\\\",\\\"type\\\":\\\"count\\\"}],\\\"requestType\\\":\\\"heatmap\\\",\\\"resolution\\\":\\\"COARSE\\\",\\\"type\\\":\\\"ES_GEO_GRID\\\",\\\"indexPatternId\\\":\\\"logs-*\\\"},\\\"style\\\":{\\\"colorRampName\\\":\\\"theclassic\\\",\\\"type\\\":\\\"HEATMAP\\\"},\\\"type\\\":\\\"HEATMAP\\\",\\\"visible\\\":true}]\",\"mapStateJSON\":\"{\\\"center\\\":{\\\"lat\\\":33.09876,\\\"lon\\\":73.8871},\\\"filters\\\":[],\\\"query\\\":{\\\"language\\\":\\\"kuery\\\",\\\"query\\\":\\\"\\\"},\\\"refreshConfig\\\":{\\\"interval\\\":0,\\\"isPaused\\\":true},\\\"settings\\\":{\\\"autoFitToDataBounds\\\":false,\\\"backgroundColor\\\":\\\"#ffffff\\\",\\\"browserLocation\\\":{\\\"zoom\\\":2},\\\"disableInteractive\\\":false,\\\"disableTooltipControl\\\":false,\\\"fixedLocation\\\":{\\\"lat\\\":0,\\\"lon\\\":0,\\\"zoom\\\":2},\\\"hideLayerControl\\\":false,\\\"hideToolbarOverlay\\\":false,\\\"hideViewControl\\\":false,\\\"initialLocation\\\":\\\"LAST_SAVED_LOCATION\\\",\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"showScaleControl\\\":false,\\\"showSpatialFilters\\\":true,\\\"showTimesliderToggleButton\\\":true,\\\"spatialFiltersAlpa\\\":0.3,\\\"spatialFiltersFillColor\\\":\\\"#DA8B45\\\",\\\"spatialFiltersLineColor\\\":\\\"#DA8B45\\\"},\\\"timeFilters\\\":{\\\"from\\\":\\\"now-1y/d\\\",\\\"to\\\":\\\"now\\\"},\\\"zoom\\\":1.91}\",\"references\":[{\"id\":\"logs-*\",\"name\":\"layer_1_source_index_pattern\",\"type\":\"index-pattern\"}],\"title\":\"Sender of Messages by Region [Logs Proofpoint TAP]\",\"uiStateJSON\":\"{\\\"isLayerTOCOpen\\\":true,\\\"openTOCDetails\\\":[]}\"},\"enhancements\":{},\"hiddenLayers\":[],\"isLayerTOCOpen\":true,\"mapBuffer\":{\"maxLat\":89.78601,\"maxLon\":720,\"minLat\":-89.78601,\"minLon\":-540},\"mapCenter\":{\"lat\":0,\"lon\":96.98463,\"zoom\":0.12},\"openTOCDetails\":[]},\"gridData\":{\"h\":21,\"i\":\"d40b322b-8b5a-4614-9a7f-f6bf33ba8e7e\",\"w\":48,\"x\":0,\"y\":90},\"panelIndex\":\"d40b322b-8b5a-4614-9a7f-f6bf33ba8e7e\",\"type\":\"map\",\"version\":\"7.17.0\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-24h/h", + "timeRestore": true, + "timeTo": "now", + "title": "[Logs Proofpoint TAP] Blocked Messages", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-9899aae0-b5ad-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "proofpoint_tap-00dd5660-af9b-11ec-bf43-c372803d141d", + "name": "e5247373-1ae6-403b-89b5-93281d642883:panel_e5247373-1ae6-403b-89b5-93281d642883", + "type": "search" + }, + { + "id": "logs-*", + "name": "2cfc095d-92da-4512-bf45-21f3a7508129:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "2cfc095d-92da-4512-bf45-21f3a7508129:indexpattern-datasource-layer-66e9770d-b676-49a0-b502-b3cf64aae59d", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "efdb9e8c-8541-401c-acc6-767c1a637db4:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "efdb9e8c-8541-401c-acc6-767c1a637db4:indexpattern-datasource-layer-e7630b81-f809-4d49-b269-1788bdbdf649", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "637266a0-908f-40ee-aa10-55569e7cbd29:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "637266a0-908f-40ee-aa10-55569e7cbd29:indexpattern-datasource-layer-402e61cc-9dba-466f-9269-27b48dd2e4a1", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3e565fd9-f29d-41b5-a084-7393d29028d9:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3e565fd9-f29d-41b5-a084-7393d29028d9:indexpattern-datasource-layer-a0987be1-b682-412e-8d46-a4ad00e985c1", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "2371e369-c82c-4443-bbf5-9d2b119fb9e9:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "2371e369-c82c-4443-bbf5-9d2b119fb9e9:indexpattern-datasource-layer-ec2f7bac-2077-4709-9d52-3ae3c0a582de", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "a3d367ee-91bb-421d-b6fc-27daabd46a54:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "a3d367ee-91bb-421d-b6fc-27daabd46a54:indexpattern-datasource-layer-e327fec5-d799-4b3f-acfc-32c1ecaac682", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3a258b28-29d4-4719-a65e-db1153b954fc:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3a258b28-29d4-4719-a65e-db1153b954fc:indexpattern-datasource-layer-f2e404cb-ffef-4218-a7d7-20a1972f7fe5", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "850608eb-ca33-452f-a129-c4719224c52f:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "850608eb-ca33-452f-a129-c4719224c52f:indexpattern-datasource-layer-01c9ddee-f668-4ee5-8bb6-98e74d2e1439", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c9517aa1-8122-434d-b93d-719030617688:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c9517aa1-8122-434d-b93d-719030617688:indexpattern-datasource-layer-b71a1c6d-1b9f-4b5f-ad26-7de6a5601691", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "6b458dd4-988b-44d1-bd30-1bfadd99712b:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "6b458dd4-988b-44d1-bd30-1bfadd99712b:indexpattern-datasource-layer-657c0ea2-d756-4c8e-8638-4a2cf8a00bad", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "91bf4cc9-d875-476b-afa9-353e6a6115d2:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "91bf4cc9-d875-476b-afa9-353e6a6115d2:indexpattern-datasource-layer-8bc257b1-f278-4281-b618-12892df43c90", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "f8ff2974-b1e9-4a81-a5af-8f5d6d13abce:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "f8ff2974-b1e9-4a81-a5af-8f5d6d13abce:indexpattern-datasource-layer-4b31f83f-2fc1-4509-8a5b-0c80eea8c627", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d40b322b-8b5a-4614-9a7f-f6bf33ba8e7e:layer_1_source_index_pattern", + "type": "index-pattern" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-ee5bc100-b5c8-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-ee5bc100-b5c8-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..6fbbba0559 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/dashboard/proofpoint_tap-ee5bc100-b5c8-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,138 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_delivered\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":21,\"i\":\"a0cc1e4c-3327-478b-94ec-519ebf9582ab\",\"w\":48,\"x\":0,\"y\":96},\"panelIndex\":\"a0cc1e4c-3327-478b-94ec-519ebf9582ab\",\"panelRefName\":\"panel_a0cc1e4c-3327-478b-94ec-519ebf9582ab\",\"type\":\"search\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-66e9770d-b676-49a0-b502-b3cf64aae59d\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"66e9770d-b676-49a0-b502-b3cf64aae59d\":{\"columnOrder\":[\"7afa9eab-9e68-42c1-a5f8-7891197560e2\"],\"columns\":{\"7afa9eab-9e68-42c1-a5f8-7891197560e2\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Total Messages\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"accessor\":\"7afa9eab-9e68-42c1-a5f8-7891197560e2\",\"layerId\":\"66e9770d-b676-49a0-b502-b3cf64aae59d\",\"layerType\":\"data\"}},\"title\":\"Count of Messages [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"057e2ef6-0316-4896-ab34-8aafca79b009\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"057e2ef6-0316-4896-ab34-8aafca79b009\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-e7630b81-f809-4d49-b269-1788bdbdf649\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"e7630b81-f809-4d49-b269-1788bdbdf649\":{\"columnOrder\":[\"8a033b2f-c808-4ae0-b593-862e401fd4d0\",\"ba6e6c21-db26-4ce1-9608-ebc8562ee460\"],\"columns\":{\"8a033b2f-c808-4ae0-b593-862e401fd4d0\":{\"customLabel\":true,\"dataType\":\"ip\",\"isBucketed\":true,\"label\":\"IP\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ba6e6c21-db26-4ce1-9608-ebc8562ee460\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"source.ip\"},\"ba6e6c21-db26-4ce1-9608-ebc8562ee460\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"8a033b2f-c808-4ae0-b593-862e401fd4d0\",\"isTransposed\":false},{\"columnId\":\"ba6e6c21-db26-4ce1-9608-ebc8562ee460\",\"isTransposed\":false}],\"layerId\":\"e7630b81-f809-4d49-b269-1788bdbdf649\",\"layerType\":\"data\"}},\"title\":\"Top 10 Sender IP [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"e54a8fb5-eee6-409a-8065-91a4e7b3ac4f\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"e54a8fb5-eee6-409a-8065-91a4e7b3ac4f\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-410012cf-d8df-4277-ac28-305ea82a09a3\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"410012cf-d8df-4277-ac28-305ea82a09a3\":{\"columnOrder\":[\"05e673b3-ec58-44eb-ad0b-c88a43e44a8a\",\"68cf8e68-186a-40c7-a199-0463ca8741d8\"],\"columns\":{\"05e673b3-ec58-44eb-ad0b-c88a43e44a8a\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Rewritten URL\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"68cf8e68-186a-40c7-a199-0463ca8741d8\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_delivered.completely_rewritten\"},\"68cf8e68-186a-40c7-a199-0463ca8741d8\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_delivered\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"05e673b3-ec58-44eb-ad0b-c88a43e44a8a\"],\"layerId\":\"410012cf-d8df-4277-ac28-305ea82a09a3\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"68cf8e68-186a-40c7-a199-0463ca8741d8\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Delivered Messages by Rewritten URL [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f5b71bf4-d93b-4383-aee3-0fba04633f7e\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"f5b71bf4-d93b-4383-aee3-0fba04633f7e\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-b0d8b2b8-81ef-4c98-bad2-20e10a9d4006\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"b0d8b2b8-81ef-4c98-bad2-20e10a9d4006\":{\"columnOrder\":[\"02195bc5-0e17-4c5d-bf4c-5bcf165cd993\",\"22bcb44a-ba59-4c78-a069-277e45c5d6ef\"],\"columns\":{\"02195bc5-0e17-4c5d-bf4c-5bcf165cd993\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Disposition\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"22bcb44a-ba59-4c78-a069-277e45c5d6ef\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_delivered.message_parts.disposition\"},\"22bcb44a-ba59-4c78-a069-277e45c5d6ef\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_delivered\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"02195bc5-0e17-4c5d-bf4c-5bcf165cd993\"],\"layerId\":\"b0d8b2b8-81ef-4c98-bad2-20e10a9d4006\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"22bcb44a-ba59-4c78-a069-277e45c5d6ef\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Delivered Messages by Disposition [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"ddaa2940-7c3a-4d0c-8fad-a87d3d92725a\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"ddaa2940-7c3a-4d0c-8fad-a87d3d92725a\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-ec2f7bac-2077-4709-9d52-3ae3c0a582de\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"ec2f7bac-2077-4709-9d52-3ae3c0a582de\":{\"columnOrder\":[\"394062e2-3219-4ff0-b930-7dceb79cb5cd\",\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\"],\"columns\":{\"394062e2-3219-4ff0-b930-7dceb79cb5cd\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Recipient\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"email.to.address\"},\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"394062e2-3219-4ff0-b930-7dceb79cb5cd\",\"isTransposed\":false},{\"columnId\":\"8c5a8f23-a89c-459e-8fdb-07844dc1c19f\",\"isTransposed\":false}],\"layerId\":\"ec2f7bac-2077-4709-9d52-3ae3c0a582de\",\"layerType\":\"data\"}},\"title\":\"Top 10 Recipient [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"3dc5d286-d7b8-4a47-bd70-7699375f31de\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"3dc5d286-d7b8-4a47-bd70-7699375f31de\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-5b8645f9-f56a-44ea-b567-dad4d9da2824\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"5b8645f9-f56a-44ea-b567-dad4d9da2824\":{\"columnOrder\":[\"bc4689d4-0411-44f9-add5-ffa0705584dc\",\"612fda22-416a-4171-8854-f9cb30a4ae05\"],\"columns\":{\"612fda22-416a-4171-8854-f9cb30a4ae05\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"bc4689d4-0411-44f9-add5-ffa0705584dc\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Classification\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"612fda22-416a-4171-8854-f9cb30a4ae05\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_delivered.threat_info_map.classification\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_delivered\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"bc4689d4-0411-44f9-add5-ffa0705584dc\"],\"layerId\":\"5b8645f9-f56a-44ea-b567-dad4d9da2824\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"612fda22-416a-4171-8854-f9cb30a4ae05\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Delivered Messages by Threat Classification [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"080a6554-cbad-4aa0-b8a6-d82de9dab805\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"080a6554-cbad-4aa0-b8a6-d82de9dab805\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-17b04f1e-6124-4c6c-9464-e29a98d97bcf\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"17b04f1e-6124-4c6c-9464-e29a98d97bcf\":{\"columnOrder\":[\"20a072f6-3895-45a1-a585-875852453a05\",\"a4ba65e4-6bb1-401e-9a55-f90e5f5a32f0\"],\"columns\":{\"20a072f6-3895-45a1-a585-875852453a05\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Threat Status\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"a4ba65e4-6bb1-401e-9a55-f90e5f5a32f0\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_delivered.threat_info_map.threat.status\"},\"a4ba65e4-6bb1-401e-9a55-f90e5f5a32f0\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_delivered\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"20a072f6-3895-45a1-a585-875852453a05\"],\"layerId\":\"17b04f1e-6124-4c6c-9464-e29a98d97bcf\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"a4ba65e4-6bb1-401e-9a55-f90e5f5a32f0\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Delivered Messages by Threat Status [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"ec9ba9eb-371c-430a-afc5-f6edf039bd91\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"ec9ba9eb-371c-430a-afc5-f6edf039bd91\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-590e841c-2ef7-4ace-b981-4bb9d3160054\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"590e841c-2ef7-4ace-b981-4bb9d3160054\":{\"columnOrder\":[\"7066eb8e-8f19-4826-adbb-7550c8ea2636\",\"1bc5c276-8229-422d-bb16-a63859e6f34c\"],\"columns\":{\"1bc5c276-8229-422d-bb16-a63859e6f34c\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"7066eb8e-8f19-4826-adbb-7550c8ea2636\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Sandbox Status\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"1bc5c276-8229-422d-bb16-a63859e6f34c\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_delivered.message_parts.sandbox_status\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_delivered\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"7066eb8e-8f19-4826-adbb-7550c8ea2636\"],\"layerId\":\"590e841c-2ef7-4ace-b981-4bb9d3160054\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"1bc5c276-8229-422d-bb16-a63859e6f34c\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Delivered Messages by Sandbox Status [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"c1acfbb3-c3ca-436d-b54e-47f288677136\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"c1acfbb3-c3ca-436d-b54e-47f288677136\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-ecc13edd-9962-402c-b12e-180cccc46f08\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"ecc13edd-9962-402c-b12e-180cccc46f08\":{\"columnOrder\":[\"21d701b1-4d50-4480-94e0-bfd2616489f5\",\"0bc203c5-ff36-4db6-ad1a-441828203815\"],\"columns\":{\"0bc203c5-ff36-4db6-ad1a-441828203815\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"21d701b1-4d50-4480-94e0-bfd2616489f5\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Threat Type\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"0bc203c5-ff36-4db6-ad1a-441828203815\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"proofpoint_tap.message_delivered.threat_info_map.threat.type\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"proofpoint_tap.message_delivered\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"21d701b1-4d50-4480-94e0-bfd2616489f5\"],\"layerId\":\"ecc13edd-9962-402c-b12e-180cccc46f08\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"0bc203c5-ff36-4db6-ad1a-441828203815\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Delivered Messages by Threat Type [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f1256b4b-8872-4d25-82cd-5a7004108d91\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"f1256b4b-8872-4d25-82cd-5a7004108d91\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-657c0ea2-d756-4c8e-8638-4a2cf8a00bad\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"657c0ea2-d756-4c8e-8638-4a2cf8a00bad\":{\"columnOrder\":[\"4507c7f7-7878-40d4-905f-50360a596573\",\"d7959ce0-0861-4dd4-bdb3-42d8578ebd2f\"],\"columns\":{\"4507c7f7-7878-40d4-905f-50360a596573\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Email Mailer\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"d7959ce0-0861-4dd4-bdb3-42d8578ebd2f\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"email.x_mailer\"},\"d7959ce0-0861-4dd4-bdb3-42d8578ebd2f\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"d7959ce0-0861-4dd4-bdb3-42d8578ebd2f\"],\"layerId\":\"657c0ea2-d756-4c8e-8638-4a2cf8a00bad\",\"layerType\":\"data\",\"seriesType\":\"bar\",\"xAccessor\":\"4507c7f7-7878-40d4-905f-50360a596573\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Messages by Email X_Mailer [Logs Proofpoint TAP]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f721f663-e2fd-44c9-88bc-639bff7bc700\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"f721f663-e2fd-44c9-88bc-639bff7bc700\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"layerListJSON\":\"[{\\\"alpha\\\":1,\\\"id\\\":\\\"c6a42104-e390-4c56-8ef8-5bd774773e72\\\",\\\"includeInFitToBounds\\\":true,\\\"label\\\":null,\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"sourceDescriptor\\\":{\\\"isAutoSelect\\\":true,\\\"type\\\":\\\"EMS_TMS\\\"},\\\"style\\\":{\\\"type\\\":\\\"TILE\\\"},\\\"type\\\":\\\"VECTOR_TILE\\\",\\\"visible\\\":true},{\\\"alpha\\\":0.75,\\\"id\\\":\\\"f8e2c82c-56b8-425d-a79d-ab24baf35f89\\\",\\\"includeInFitToBounds\\\":true,\\\"label\\\":\\\"Sender\\\",\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"sourceDescriptor\\\":{\\\"applyForceRefresh\\\":true,\\\"applyGlobalQuery\\\":true,\\\"applyGlobalTime\\\":true,\\\"geoField\\\":\\\"source.geo.location\\\",\\\"id\\\":\\\"ce99667c-f3a0-4d3c-b0d0-6e6ba88f1a9e\\\",\\\"metrics\\\":[{\\\"label\\\":\\\"Count\\\",\\\"type\\\":\\\"count\\\"}],\\\"requestType\\\":\\\"heatmap\\\",\\\"resolution\\\":\\\"COARSE\\\",\\\"type\\\":\\\"ES_GEO_GRID\\\",\\\"indexPatternId\\\":\\\"logs-*\\\"},\\\"style\\\":{\\\"colorRampName\\\":\\\"theclassic\\\",\\\"type\\\":\\\"HEATMAP\\\"},\\\"type\\\":\\\"HEATMAP\\\",\\\"visible\\\":true}]\",\"mapStateJSON\":\"{\\\"center\\\":{\\\"lat\\\":33.09876,\\\"lon\\\":73.8871},\\\"filters\\\":[],\\\"query\\\":{\\\"language\\\":\\\"kuery\\\",\\\"query\\\":\\\"\\\"},\\\"refreshConfig\\\":{\\\"interval\\\":0,\\\"isPaused\\\":true},\\\"settings\\\":{\\\"autoFitToDataBounds\\\":false,\\\"backgroundColor\\\":\\\"#ffffff\\\",\\\"browserLocation\\\":{\\\"zoom\\\":2},\\\"disableInteractive\\\":false,\\\"disableTooltipControl\\\":false,\\\"fixedLocation\\\":{\\\"lat\\\":0,\\\"lon\\\":0,\\\"zoom\\\":2},\\\"hideLayerControl\\\":false,\\\"hideToolbarOverlay\\\":false,\\\"hideViewControl\\\":false,\\\"initialLocation\\\":\\\"LAST_SAVED_LOCATION\\\",\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"showScaleControl\\\":false,\\\"showSpatialFilters\\\":true,\\\"showTimesliderToggleButton\\\":true,\\\"spatialFiltersAlpa\\\":0.3,\\\"spatialFiltersFillColor\\\":\\\"#DA8B45\\\",\\\"spatialFiltersLineColor\\\":\\\"#DA8B45\\\"},\\\"timeFilters\\\":{\\\"from\\\":\\\"now-1y/d\\\",\\\"to\\\":\\\"now\\\"},\\\"zoom\\\":1.91}\",\"references\":[{\"id\":\"logs-*\",\"name\":\"layer_1_source_index_pattern\",\"type\":\"index-pattern\"}],\"title\":\"Sender of Messages by Region [Logs Proofpoint TAP]\",\"uiStateJSON\":\"{\\\"isLayerTOCOpen\\\":true,\\\"openTOCDetails\\\":[]}\"},\"enhancements\":{},\"hiddenLayers\":[],\"isLayerTOCOpen\":true,\"mapBuffer\":{\"maxLat\":66.51326,\"maxLon\":180,\"minLat\":-66.51326,\"minLon\":0},\"mapCenter\":{\"lat\":33.09876,\"lon\":73.8871,\"zoom\":1.91},\"openTOCDetails\":[]},\"gridData\":{\"h\":21,\"i\":\"de4c11a4-6831-4ad4-92b6-7dc434430690\",\"w\":48,\"x\":0,\"y\":75},\"panelIndex\":\"de4c11a4-6831-4ad4-92b6-7dc434430690\",\"type\":\"map\",\"version\":\"7.17.0\"}]", + "refreshInterval": { + "pause": true, + "value": 0 + }, + "timeFrom": "now-24h/h", + "timeRestore": true, + "timeTo": "now", + "title": "[Logs Proofpoint TAP] Delivered Messages", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-ee5bc100-b5c8-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "proofpoint_tap-00dd5660-af9b-11ec-bf43-c372803d141d", + "name": "a0cc1e4c-3327-478b-94ec-519ebf9582ab:panel_a0cc1e4c-3327-478b-94ec-519ebf9582ab", + "type": "search" + }, + { + "id": "logs-*", + "name": "057e2ef6-0316-4896-ab34-8aafca79b009:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "057e2ef6-0316-4896-ab34-8aafca79b009:indexpattern-datasource-layer-66e9770d-b676-49a0-b502-b3cf64aae59d", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e54a8fb5-eee6-409a-8065-91a4e7b3ac4f:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e54a8fb5-eee6-409a-8065-91a4e7b3ac4f:indexpattern-datasource-layer-e7630b81-f809-4d49-b269-1788bdbdf649", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "f5b71bf4-d93b-4383-aee3-0fba04633f7e:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "f5b71bf4-d93b-4383-aee3-0fba04633f7e:indexpattern-datasource-layer-410012cf-d8df-4277-ac28-305ea82a09a3", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "ddaa2940-7c3a-4d0c-8fad-a87d3d92725a:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "ddaa2940-7c3a-4d0c-8fad-a87d3d92725a:indexpattern-datasource-layer-b0d8b2b8-81ef-4c98-bad2-20e10a9d4006", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3dc5d286-d7b8-4a47-bd70-7699375f31de:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3dc5d286-d7b8-4a47-bd70-7699375f31de:indexpattern-datasource-layer-ec2f7bac-2077-4709-9d52-3ae3c0a582de", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "080a6554-cbad-4aa0-b8a6-d82de9dab805:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "080a6554-cbad-4aa0-b8a6-d82de9dab805:indexpattern-datasource-layer-5b8645f9-f56a-44ea-b567-dad4d9da2824", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "ec9ba9eb-371c-430a-afc5-f6edf039bd91:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "ec9ba9eb-371c-430a-afc5-f6edf039bd91:indexpattern-datasource-layer-17b04f1e-6124-4c6c-9464-e29a98d97bcf", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c1acfbb3-c3ca-436d-b54e-47f288677136:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c1acfbb3-c3ca-436d-b54e-47f288677136:indexpattern-datasource-layer-590e841c-2ef7-4ace-b981-4bb9d3160054", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "f1256b4b-8872-4d25-82cd-5a7004108d91:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "f1256b4b-8872-4d25-82cd-5a7004108d91:indexpattern-datasource-layer-ecc13edd-9962-402c-b12e-180cccc46f08", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "f721f663-e2fd-44c9-88bc-639bff7bc700:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "f721f663-e2fd-44c9-88bc-639bff7bc700:indexpattern-datasource-layer-657c0ea2-d756-4c8e-8638-4a2cf8a00bad", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "de4c11a4-6831-4ad4-92b6-7dc434430690:layer_1_source_index_pattern", + "type": "index-pattern" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-22c1fd60-b5a6-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-22c1fd60-b5a6-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..0f2025d8a3 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-22c1fd60-b5a6-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,60 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "4ff0e011-970a-4b60-9158-962f4e89fbbe": { + "columnOrder": [ + "dc762ac8-6645-45a7-ba44-b3fbd0309338" + ], + "columns": { + "dc762ac8-6645-45a7-ba44-b3fbd0309338": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Total Clicks", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "accessor": "dc762ac8-6645-45a7-ba44-b3fbd0309338", + "layerId": "4ff0e011-970a-4b60-9158-962f4e89fbbe", + "layerType": "data" + } + }, + "title": "Count of Clicks [Logs Proofpoint TAP]", + "visualizationType": "lnsMetric" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-22c1fd60-b5a6-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-4ff0e011-970a-4b60-9158-962f4e89fbbe", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-2e596430-b5ae-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-2e596430-b5ae-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..9ff144aee8 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-2e596430-b5ae-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,89 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "e7630b81-f809-4d49-b269-1788bdbdf649": { + "columnOrder": [ + "8a033b2f-c808-4ae0-b593-862e401fd4d0", + "ba6e6c21-db26-4ce1-9608-ebc8562ee460" + ], + "columns": { + "8a033b2f-c808-4ae0-b593-862e401fd4d0": { + "customLabel": true, + "dataType": "ip", + "isBucketed": true, + "label": "IP", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "ba6e6c21-db26-4ce1-9608-ebc8562ee460", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": false, + "size": 10 + }, + "scale": "ordinal", + "sourceField": "source.ip" + }, + "ba6e6c21-db26-4ce1-9608-ebc8562ee460": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "8a033b2f-c808-4ae0-b593-862e401fd4d0", + "isTransposed": false + }, + { + "columnId": "ba6e6c21-db26-4ce1-9608-ebc8562ee460", + "isTransposed": false + } + ], + "layerId": "e7630b81-f809-4d49-b269-1788bdbdf649", + "layerType": "data" + } + }, + "title": "Top 10 Sender IP [Logs Proofpoint TAP]", + "visualizationType": "lnsDatatable" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-2e596430-b5ae-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-e7630b81-f809-4d49-b269-1788bdbdf649", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-31d88f20-b5ca-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-31d88f20-b5ca-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..ea814f0572 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-31d88f20-b5ca-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "17b04f1e-6124-4c6c-9464-e29a98d97bcf": { + "columnOrder": [ + "20a072f6-3895-45a1-a585-875852453a05", + "a4ba65e4-6bb1-401e-9a55-f90e5f5a32f0" + ], + "columns": { + "20a072f6-3895-45a1-a585-875852453a05": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Threat Status", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "a4ba65e4-6bb1-401e-9a55-f90e5f5a32f0", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_delivered.threat_info_map.threat.status" + }, + "a4ba65e4-6bb1-401e-9a55-f90e5f5a32f0": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_delivered\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "20a072f6-3895-45a1-a585-875852453a05" + ], + "layerId": "17b04f1e-6124-4c6c-9464-e29a98d97bcf", + "layerType": "data", + "legendDisplay": "default", + "metric": "a4ba65e4-6bb1-401e-9a55-f90e5f5a32f0", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Delivered Messages by Threat Status [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-31d88f20-b5ca-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-17b04f1e-6124-4c6c-9464-e29a98d97bcf", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-32f38a20-b5cc-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-32f38a20-b5cc-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..a4e657b967 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-32f38a20-b5cc-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,89 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "4080ef48-91f4-4339-a059-fa6a9d0fcce8": { + "columnOrder": [ + "2f67b930-a92f-41ef-96cd-5d9cc5de8d8d", + "366f6367-65c3-4e65-8c28-f41b1ef719cf" + ], + "columns": { + "2f67b930-a92f-41ef-96cd-5d9cc5de8d8d": { + "customLabel": true, + "dataType": "ip", + "isBucketed": true, + "label": "IP", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "366f6367-65c3-4e65-8c28-f41b1ef719cf", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": false, + "size": 10 + }, + "scale": "ordinal", + "sourceField": "destination.ip" + }, + "366f6367-65c3-4e65-8c28-f41b1ef719cf": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "2f67b930-a92f-41ef-96cd-5d9cc5de8d8d", + "isTransposed": false + }, + { + "columnId": "366f6367-65c3-4e65-8c28-f41b1ef719cf", + "isTransposed": false + } + ], + "layerId": "4080ef48-91f4-4339-a059-fa6a9d0fcce8", + "layerType": "data" + } + }, + "title": "Top 10 Click IP [Logs Proofpoint TAP]", + "visualizationType": "lnsDatatable" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-32f38a20-b5cc-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-4080ef48-91f4-4339-a059-fa6a9d0fcce8", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-3872f3b0-b5ad-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-3872f3b0-b5ad-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..1fb9462f4d --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-3872f3b0-b5ad-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,60 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "66e9770d-b676-49a0-b502-b3cf64aae59d": { + "columnOrder": [ + "7afa9eab-9e68-42c1-a5f8-7891197560e2" + ], + "columns": { + "7afa9eab-9e68-42c1-a5f8-7891197560e2": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Total Messages", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "accessor": "7afa9eab-9e68-42c1-a5f8-7891197560e2", + "layerId": "66e9770d-b676-49a0-b502-b3cf64aae59d", + "layerType": "data" + } + }, + "title": "Count of Messages [Logs Proofpoint TAP]", + "visualizationType": "lnsMetric" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-3872f3b0-b5ad-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-66e9770d-b676-49a0-b502-b3cf64aae59d", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-3d9cb8d0-b5b2-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-3d9cb8d0-b5b2-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..b418416124 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-3d9cb8d0-b5b2-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,103 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "8bc257b1-f278-4281-b618-12892df43c90": { + "columnOrder": [ + "bd52eba0-e079-4b31-b053-d6d8e519b21d", + "a9cf6093-c996-4557-8819-3d2b273e62b0" + ], + "columns": { + "a9cf6093-c996-4557-8819-3d2b273e62b0": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + }, + "bd52eba0-e079-4b31-b053-d6d8e519b21d": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Quarantine Folder", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "a9cf6093-c996-4557-8819-3d2b273e62b0", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 10 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_blocked.quarantine.folder" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_blocked\"" + }, + "visualization": { + "layers": [ + { + "accessors": [ + "a9cf6093-c996-4557-8819-3d2b273e62b0" + ], + "layerId": "8bc257b1-f278-4281-b618-12892df43c90", + "layerType": "data", + "position": "top", + "seriesType": "bar", + "showGridlines": false, + "xAccessor": "bd52eba0-e079-4b31-b053-d6d8e519b21d" + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "bar", + "title": "Empty XY chart", + "valueLabels": "hide", + "yLeftExtent": { + "mode": "full" + }, + "yRightExtent": { + "mode": "full" + } + } + }, + "title": "Distribution of Blocked Messages by Quarantine Folder [Logs Proofpoint TAP]", + "visualizationType": "lnsXY" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-3d9cb8d0-b5b2-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-8bc257b1-f278-4281-b618-12892df43c90", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-4363e9b0-b5a7-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-4363e9b0-b5a7-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..f1cd9a906c --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-4363e9b0-b5a7-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,108 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "09466534-a461-4fbb-850b-fba8df6b7c37": { + "columnOrder": [ + "caef084e-7dca-43d6-8538-a2806796463e", + "8c76f7ef-0d3f-4558-8835-17fa53443a49", + "8c76f7ef-0d3f-4558-8835-17fa53443a49X0" + ], + "columns": { + "8c76f7ef-0d3f-4558-8835-17fa53443a49": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "formula", + "params": { + "formula": "count()", + "isFormulaBroken": false + }, + "references": [ + "8c76f7ef-0d3f-4558-8835-17fa53443a49X0" + ], + "scale": "ratio" + }, + "8c76f7ef-0d3f-4558-8835-17fa53443a49X0": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Part of count()", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + }, + "caef084e-7dca-43d6-8538-a2806796463e": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Classification", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "fallback": true, + "type": "alphabetical" + }, + "orderDirection": "asc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.clicks_blocked.classification" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.clicks_blocked\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "caef084e-7dca-43d6-8538-a2806796463e" + ], + "layerId": "09466534-a461-4fbb-850b-fba8df6b7c37", + "layerType": "data", + "legendDisplay": "default", + "metric": "8c76f7ef-0d3f-4558-8835-17fa53443a49", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Blocked Clicks by Classification [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-4363e9b0-b5a7-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-09466534-a461-4fbb-850b-fba8df6b7c37", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-458b3ce0-b5af-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-458b3ce0-b5af-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..7146fe2aed --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-458b3ce0-b5af-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "402e61cc-9dba-466f-9269-27b48dd2e4a1": { + "columnOrder": [ + "d1076744-9ca0-4908-a16f-ef349e2cd32a", + "9b3ba2ba-191d-4e9b-bf2c-ebaf2c43e241" + ], + "columns": { + "9b3ba2ba-191d-4e9b-bf2c-ebaf2c43e241": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + }, + "d1076744-9ca0-4908-a16f-ef349e2cd32a": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Disposition", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "9b3ba2ba-191d-4e9b-bf2c-ebaf2c43e241", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_blocked.message_parts.disposition" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_blocked\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "d1076744-9ca0-4908-a16f-ef349e2cd32a" + ], + "layerId": "402e61cc-9dba-466f-9269-27b48dd2e4a1", + "layerType": "data", + "legendDisplay": "default", + "metric": "9b3ba2ba-191d-4e9b-bf2c-ebaf2c43e241", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Blocked Messages by Disposition [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-458b3ce0-b5af-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-402e61cc-9dba-466f-9269-27b48dd2e4a1", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-47aeba50-b5c9-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-47aeba50-b5c9-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..2959bdf251 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-47aeba50-b5c9-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "b0d8b2b8-81ef-4c98-bad2-20e10a9d4006": { + "columnOrder": [ + "02195bc5-0e17-4c5d-bf4c-5bcf165cd993", + "22bcb44a-ba59-4c78-a069-277e45c5d6ef" + ], + "columns": { + "02195bc5-0e17-4c5d-bf4c-5bcf165cd993": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Disposition", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "22bcb44a-ba59-4c78-a069-277e45c5d6ef", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_delivered.message_parts.disposition" + }, + "22bcb44a-ba59-4c78-a069-277e45c5d6ef": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_delivered\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "02195bc5-0e17-4c5d-bf4c-5bcf165cd993" + ], + "layerId": "b0d8b2b8-81ef-4c98-bad2-20e10a9d4006", + "layerType": "data", + "legendDisplay": "default", + "metric": "22bcb44a-ba59-4c78-a069-277e45c5d6ef", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Delivered Messages by Disposition [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-47aeba50-b5c9-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-b0d8b2b8-81ef-4c98-bad2-20e10a9d4006", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-4b9175c0-b5a8-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-4b9175c0-b5a8-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..6559cea675 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-4b9175c0-b5a8-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,89 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "ec2f7bac-2077-4709-9d52-3ae3c0a582de": { + "columnOrder": [ + "394062e2-3219-4ff0-b930-7dceb79cb5cd", + "8c5a8f23-a89c-459e-8fdb-07844dc1c19f" + ], + "columns": { + "394062e2-3219-4ff0-b930-7dceb79cb5cd": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Recipient", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "8c5a8f23-a89c-459e-8fdb-07844dc1c19f", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": false, + "size": 10 + }, + "scale": "ordinal", + "sourceField": "email.to.address" + }, + "8c5a8f23-a89c-459e-8fdb-07844dc1c19f": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "394062e2-3219-4ff0-b930-7dceb79cb5cd", + "isTransposed": false + }, + { + "columnId": "8c5a8f23-a89c-459e-8fdb-07844dc1c19f", + "isTransposed": false + } + ], + "layerId": "ec2f7bac-2077-4709-9d52-3ae3c0a582de", + "layerType": "data" + } + }, + "title": "Top 10 Recipient [Logs Proofpoint TAP]", + "visualizationType": "lnsDatatable" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-4b9175c0-b5a8-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-ec2f7bac-2077-4709-9d52-3ae3c0a582de", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-5820b4a0-b5b1-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-5820b4a0-b5b1-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..a8d881f6f2 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-5820b4a0-b5b1-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "01c9ddee-f668-4ee5-8bb6-98e74d2e1439": { + "columnOrder": [ + "7d6f8989-f0ce-4a9c-b24e-42c9ad42431d", + "47666138-8fdd-4735-9a26-d5586276afe9" + ], + "columns": { + "47666138-8fdd-4735-9a26-d5586276afe9": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + }, + "7d6f8989-f0ce-4a9c-b24e-42c9ad42431d": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Sandbox Status", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "47666138-8fdd-4735-9a26-d5586276afe9", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_blocked.message_parts.sandbox_status" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_blocked\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "7d6f8989-f0ce-4a9c-b24e-42c9ad42431d" + ], + "layerId": "01c9ddee-f668-4ee5-8bb6-98e74d2e1439", + "layerType": "data", + "legendDisplay": "default", + "metric": "47666138-8fdd-4735-9a26-d5586276afe9", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Blocked Messages by Sandbox Status [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-5820b4a0-b5b1-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-01c9ddee-f668-4ee5-8bb6-98e74d2e1439", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-72f5f2d0-b5b2-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-72f5f2d0-b5b2-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..b6b7806761 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-72f5f2d0-b5b2-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,123 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "4b31f83f-2fc1-4509-8a5b-0c80eea8c627": { + "columnOrder": [ + "aec564b0-2091-4304-8a29-d839f9aec0aa", + "efe56213-9c9c-4215-91cd-907114802d3a" + ], + "columns": { + "aec564b0-2091-4304-8a29-d839f9aec0aa": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Quarantine Rule", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "efe56213-9c9c-4215-91cd-907114802d3a", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 10 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_blocked.quarantine.rule" + }, + "efe56213-9c9c-4215-91cd-907114802d3a": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_blocked\"" + }, + "visualization": { + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "fittingFunction": "None", + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "layers": [ + { + "accessors": [ + "efe56213-9c9c-4215-91cd-907114802d3a" + ], + "layerId": "4b31f83f-2fc1-4509-8a5b-0c80eea8c627", + "layerType": "data", + "position": "top", + "seriesType": "bar", + "showGridlines": false, + "xAccessor": "aec564b0-2091-4304-8a29-d839f9aec0aa" + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "bar", + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "valueLabels": "hide", + "yLeftExtent": { + "mode": "full" + }, + "yRightExtent": { + "mode": "full" + } + } + }, + "title": "Distribution of Blocked Messages by Quarantine Rule [Logs Proofpoint TAP]", + "visualizationType": "lnsXY" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-72f5f2d0-b5b2-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-4b31f83f-2fc1-4509-8a5b-0c80eea8c627", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-80dd97f0-b5ca-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-80dd97f0-b5ca-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..c44707ee39 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-80dd97f0-b5ca-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "590e841c-2ef7-4ace-b981-4bb9d3160054": { + "columnOrder": [ + "7066eb8e-8f19-4826-adbb-7550c8ea2636", + "1bc5c276-8229-422d-bb16-a63859e6f34c" + ], + "columns": { + "1bc5c276-8229-422d-bb16-a63859e6f34c": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + }, + "7066eb8e-8f19-4826-adbb-7550c8ea2636": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Sandbox Status", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "1bc5c276-8229-422d-bb16-a63859e6f34c", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_delivered.message_parts.sandbox_status" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_delivered\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "7066eb8e-8f19-4826-adbb-7550c8ea2636" + ], + "layerId": "590e841c-2ef7-4ace-b981-4bb9d3160054", + "layerType": "data", + "legendDisplay": "default", + "metric": "1bc5c276-8229-422d-bb16-a63859e6f34c", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Delivered Messages by Sandbox Status [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-80dd97f0-b5ca-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-590e841c-2ef7-4ace-b981-4bb9d3160054", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-89f9d420-b5a7-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-89f9d420-b5a7-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..64a8ebea53 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-89f9d420-b5a7-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "f7d425df-4f7d-4e18-993d-b8a10cdffe22": { + "columnOrder": [ + "967f19a8-3944-4a64-a05f-037bcf1f238c", + "ea922d0b-14cf-4625-b038-71d6a627f340" + ], + "columns": { + "967f19a8-3944-4a64-a05f-037bcf1f238c": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Threat Status", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "ea922d0b-14cf-4625-b038-71d6a627f340", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.clicks_blocked.threat.status" + }, + "ea922d0b-14cf-4625-b038-71d6a627f340": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.clicks_blocked\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "967f19a8-3944-4a64-a05f-037bcf1f238c" + ], + "layerId": "f7d425df-4f7d-4e18-993d-b8a10cdffe22", + "layerType": "data", + "legendDisplay": "default", + "metric": "ea922d0b-14cf-4625-b038-71d6a627f340", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Blocked Clicks by Threat Status [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-89f9d420-b5a7-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-f7d425df-4f7d-4e18-993d-b8a10cdffe22", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-a0565740-b5af-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-a0565740-b5af-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..a751663f75 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-a0565740-b5af-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "a0987be1-b682-412e-8d46-a4ad00e985c1": { + "columnOrder": [ + "74697bb2-b72f-4b6e-b651-06f50ef31467", + "87ce1993-56c0-4458-9cb1-ae12af5a629a" + ], + "columns": { + "74697bb2-b72f-4b6e-b651-06f50ef31467": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Rewritten URL", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "87ce1993-56c0-4458-9cb1-ae12af5a629a", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_blocked.completely_rewritten" + }, + "87ce1993-56c0-4458-9cb1-ae12af5a629a": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_blocked\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "74697bb2-b72f-4b6e-b651-06f50ef31467" + ], + "layerId": "a0987be1-b682-412e-8d46-a4ad00e985c1", + "layerType": "data", + "legendDisplay": "default", + "metric": "87ce1993-56c0-4458-9cb1-ae12af5a629a", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Blocked Messages by Rewritten URL [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-a0565740-b5af-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-a0987be1-b682-412e-8d46-a4ad00e985c1", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-a1aed070-b5b1-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-a1aed070-b5b1-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..1ee34ed790 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-a1aed070-b5b1-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "b71a1c6d-1b9f-4b5f-ad26-7de6a5601691": { + "columnOrder": [ + "73dab922-14a4-4c5c-a297-9873a91dad59", + "b12333e5-b88d-4a3e-96bb-467efc2745b5" + ], + "columns": { + "73dab922-14a4-4c5c-a297-9873a91dad59": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Threat Type", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "b12333e5-b88d-4a3e-96bb-467efc2745b5", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_blocked.threat_info_map.threat.type" + }, + "b12333e5-b88d-4a3e-96bb-467efc2745b5": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_blocked\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "73dab922-14a4-4c5c-a297-9873a91dad59" + ], + "layerId": "b71a1c6d-1b9f-4b5f-ad26-7de6a5601691", + "layerType": "data", + "legendDisplay": "default", + "metric": "b12333e5-b88d-4a3e-96bb-467efc2745b5", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Blocked Messages by Threat Type [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-a1aed070-b5b1-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-b71a1c6d-1b9f-4b5f-ad26-7de6a5601691", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-b2134d80-b5aa-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-b2134d80-b5aa-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..d36afe3d9c --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-b2134d80-b5aa-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "1c93261b-da1f-4d85-aaaf-3457bdcc6ff4": { + "columnOrder": [ + "f13e79eb-00ed-4e68-98b5-b5c927055fec", + "0466e119-38e8-4d0a-a48f-9b2e7a89d213" + ], + "columns": { + "0466e119-38e8-4d0a-a48f-9b2e7a89d213": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + }, + "f13e79eb-00ed-4e68-98b5-b5c927055fec": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Classification", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "0466e119-38e8-4d0a-a48f-9b2e7a89d213", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.clicks_permitted.classification" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.clicks_permitted\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "f13e79eb-00ed-4e68-98b5-b5c927055fec" + ], + "layerId": "1c93261b-da1f-4d85-aaaf-3457bdcc6ff4", + "layerType": "data", + "legendDisplay": "default", + "metric": "0466e119-38e8-4d0a-a48f-9b2e7a89d213", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Permitted Clicks by Classification [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-b2134d80-b5aa-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-1c93261b-da1f-4d85-aaaf-3457bdcc6ff4", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-bb5e8d80-b5ca-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-bb5e8d80-b5ca-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..0f67deea68 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-bb5e8d80-b5ca-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "ecc13edd-9962-402c-b12e-180cccc46f08": { + "columnOrder": [ + "21d701b1-4d50-4480-94e0-bfd2616489f5", + "0bc203c5-ff36-4db6-ad1a-441828203815" + ], + "columns": { + "0bc203c5-ff36-4db6-ad1a-441828203815": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + }, + "21d701b1-4d50-4480-94e0-bfd2616489f5": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Threat Type", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "0bc203c5-ff36-4db6-ad1a-441828203815", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_delivered.threat_info_map.threat.type" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_delivered\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "21d701b1-4d50-4480-94e0-bfd2616489f5" + ], + "layerId": "ecc13edd-9962-402c-b12e-180cccc46f08", + "layerType": "data", + "legendDisplay": "default", + "metric": "0bc203c5-ff36-4db6-ad1a-441828203815", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Delivered Messages by Threat Type [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-bb5e8d80-b5ca-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-ecc13edd-9962-402c-b12e-180cccc46f08", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-d3107d90-b5c9-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-d3107d90-b5c9-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..f7ce515a06 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-d3107d90-b5c9-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "5b8645f9-f56a-44ea-b567-dad4d9da2824": { + "columnOrder": [ + "bc4689d4-0411-44f9-add5-ffa0705584dc", + "612fda22-416a-4171-8854-f9cb30a4ae05" + ], + "columns": { + "612fda22-416a-4171-8854-f9cb30a4ae05": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + }, + "bc4689d4-0411-44f9-add5-ffa0705584dc": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Classification", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "612fda22-416a-4171-8854-f9cb30a4ae05", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_delivered.threat_info_map.classification" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_delivered\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "bc4689d4-0411-44f9-add5-ffa0705584dc" + ], + "layerId": "5b8645f9-f56a-44ea-b567-dad4d9da2824", + "layerType": "data", + "legendDisplay": "default", + "metric": "612fda22-416a-4171-8854-f9cb30a4ae05", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Delivered Messages by Threat Classification [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-d3107d90-b5c9-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-5b8645f9-f56a-44ea-b567-dad4d9da2824", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-d3560780-b5c8-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-d3560780-b5c8-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..6660eaa4fe --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-d3560780-b5c8-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "410012cf-d8df-4277-ac28-305ea82a09a3": { + "columnOrder": [ + "05e673b3-ec58-44eb-ad0b-c88a43e44a8a", + "68cf8e68-186a-40c7-a199-0463ca8741d8" + ], + "columns": { + "05e673b3-ec58-44eb-ad0b-c88a43e44a8a": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Rewritten URL", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "68cf8e68-186a-40c7-a199-0463ca8741d8", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_delivered.completely_rewritten" + }, + "68cf8e68-186a-40c7-a199-0463ca8741d8": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_delivered\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "05e673b3-ec58-44eb-ad0b-c88a43e44a8a" + ], + "layerId": "410012cf-d8df-4277-ac28-305ea82a09a3", + "layerType": "data", + "legendDisplay": "default", + "metric": "68cf8e68-186a-40c7-a199-0463ca8741d8", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Delivered Messages by Rewritten URL [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-d3560780-b5c8-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-410012cf-d8df-4277-ac28-305ea82a09a3", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-dc148bf0-b5a8-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-dc148bf0-b5a8-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..0a16c6c33b --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-dc148bf0-b5a8-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,89 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "062ab937-584b-4266-b89a-e0965350fd15": { + "columnOrder": [ + "b4231a92-a121-4d7b-8975-7deb595868c2", + "e4a9c4a7-4e05-4669-8842-47a87900ad7c" + ], + "columns": { + "b4231a92-a121-4d7b-8975-7deb595868c2": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "URL", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "e4a9c4a7-4e05-4669-8842-47a87900ad7c", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": false, + "size": 10 + }, + "scale": "ordinal", + "sourceField": "url.full" + }, + "e4a9c4a7-4e05-4669-8842-47a87900ad7c": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "columns": [ + { + "columnId": "b4231a92-a121-4d7b-8975-7deb595868c2", + "isTransposed": false + }, + { + "columnId": "e4a9c4a7-4e05-4669-8842-47a87900ad7c", + "isTransposed": false + } + ], + "layerId": "062ab937-584b-4266-b89a-e0965350fd15", + "layerType": "data" + } + }, + "title": "Top 10 Malicious URL [Logs Proofpoint TAP]", + "visualizationType": "lnsDatatable" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-dc148bf0-b5a8-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-062ab937-584b-4266-b89a-e0965350fd15", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-e3c98870-b5b0-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-e3c98870-b5b0-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..d771fbe8c0 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-e3c98870-b5b0-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "f2e404cb-ffef-4218-a7d7-20a1972f7fe5": { + "columnOrder": [ + "86527e47-1073-45bd-8f35-657f4d277b62", + "f40e0576-52c6-4c09-8b8e-446699fed30e" + ], + "columns": { + "86527e47-1073-45bd-8f35-657f4d277b62": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Threat Status", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "f40e0576-52c6-4c09-8b8e-446699fed30e", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_blocked.threat_info_map.threat.status" + }, + "f40e0576-52c6-4c09-8b8e-446699fed30e": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_blocked\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "86527e47-1073-45bd-8f35-657f4d277b62" + ], + "layerId": "f2e404cb-ffef-4218-a7d7-20a1972f7fe5", + "layerType": "data", + "legendDisplay": "default", + "metric": "f40e0576-52c6-4c09-8b8e-446699fed30e", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Blocked Messages by Threat Status [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-e3c98870-b5b0-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-f2e404cb-ffef-4218-a7d7-20a1972f7fe5", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-e741c9d0-b5b1-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-e741c9d0-b5b1-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..0261506f72 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-e741c9d0-b5b1-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,121 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "657c0ea2-d756-4c8e-8638-4a2cf8a00bad": { + "columnOrder": [ + "4507c7f7-7878-40d4-905f-50360a596573", + "d7959ce0-0861-4dd4-bdb3-42d8578ebd2f" + ], + "columns": { + "4507c7f7-7878-40d4-905f-50360a596573": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Email Mailer", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "d7959ce0-0861-4dd4-bdb3-42d8578ebd2f", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 10 + }, + "scale": "ordinal", + "sourceField": "email.x_mailer" + }, + "d7959ce0-0861-4dd4-bdb3-42d8578ebd2f": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "" + }, + "visualization": { + "axisTitlesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "fittingFunction": "None", + "gridlinesVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "labelsOrientation": { + "x": 0, + "yLeft": 0, + "yRight": 0 + }, + "layers": [ + { + "accessors": [ + "d7959ce0-0861-4dd4-bdb3-42d8578ebd2f" + ], + "layerId": "657c0ea2-d756-4c8e-8638-4a2cf8a00bad", + "layerType": "data", + "seriesType": "bar", + "xAccessor": "4507c7f7-7878-40d4-905f-50360a596573" + } + ], + "legend": { + "isVisible": true, + "position": "right" + }, + "preferredSeriesType": "bar", + "tickLabelsVisibilitySettings": { + "x": true, + "yLeft": true, + "yRight": true + }, + "valueLabels": "hide", + "yLeftExtent": { + "mode": "full" + }, + "yRightExtent": { + "mode": "full" + } + } + }, + "title": "Distribution of Messages by Email X_Mailer [Logs Proofpoint TAP]", + "visualizationType": "lnsXY" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-e741c9d0-b5b1-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-657c0ea2-d756-4c8e-8638-4a2cf8a00bad", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-eff98e20-b5aa-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-eff98e20-b5aa-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..9b59636ba2 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-eff98e20-b5aa-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "c4191f86-9c54-4a06-a3dd-842b3ef7c241": { + "columnOrder": [ + "a3e04efb-2f37-464b-a6f2-23c0e19d790d", + "40a5f8c4-9eb3-4dcf-8520-acdb820944df" + ], + "columns": { + "40a5f8c4-9eb3-4dcf-8520-acdb820944df": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + }, + "a3e04efb-2f37-464b-a6f2-23c0e19d790d": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Threat Status", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "40a5f8c4-9eb3-4dcf-8520-acdb820944df", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.clicks_permitted.threat.status" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.clicks_permitted\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "a3e04efb-2f37-464b-a6f2-23c0e19d790d" + ], + "layerId": "c4191f86-9c54-4a06-a3dd-842b3ef7c241", + "layerType": "data", + "legendDisplay": "default", + "metric": "40a5f8c4-9eb3-4dcf-8520-acdb820944df", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Permitted Clicks by Threat Status [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-eff98e20-b5aa-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-c4191f86-9c54-4a06-a3dd-842b3ef7c241", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-fb0adc60-b5af-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-fb0adc60-b5af-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..ed61751782 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/lens/proofpoint_tap-fb0adc60-b5af-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,92 @@ +{ + "attributes": { + "description": "", + "state": { + "datasourceStates": { + "indexpattern": { + "layers": { + "e327fec5-d799-4b3f-acfc-32c1ecaac682": { + "columnOrder": [ + "f096fb9b-5208-4f47-b5a5-0ad3de754fda", + "8b4a490d-a36c-4a6a-86b0-7dea7d28c2c8" + ], + "columns": { + "8b4a490d-a36c-4a6a-86b0-7dea7d28c2c8": { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Count", + "operationType": "count", + "scale": "ratio", + "sourceField": "Records" + }, + "f096fb9b-5208-4f47-b5a5-0ad3de754fda": { + "customLabel": true, + "dataType": "string", + "isBucketed": true, + "label": "Classification", + "operationType": "terms", + "params": { + "missingBucket": false, + "orderBy": { + "columnId": "8b4a490d-a36c-4a6a-86b0-7dea7d28c2c8", + "type": "column" + }, + "orderDirection": "desc", + "otherBucket": true, + "size": 5 + }, + "scale": "ordinal", + "sourceField": "proofpoint_tap.message_blocked.threat_info_map.classification" + } + }, + "incompleteColumns": {} + } + } + } + }, + "filters": [], + "query": { + "language": "kuery", + "query": "data_stream.dataset : \"proofpoint_tap.message_blocked\"" + }, + "visualization": { + "layers": [ + { + "categoryDisplay": "default", + "groups": [ + "f096fb9b-5208-4f47-b5a5-0ad3de754fda" + ], + "layerId": "e327fec5-d799-4b3f-acfc-32c1ecaac682", + "layerType": "data", + "legendDisplay": "default", + "metric": "8b4a490d-a36c-4a6a-86b0-7dea7d28c2c8", + "nestedLegend": false, + "numberDisplay": "percent" + } + ], + "shape": "pie" + } + }, + "title": "Distribution of Blocked Messages by Threat Classification [Logs Proofpoint TAP]", + "visualizationType": "lnsPie" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-fb0adc60-b5af-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "lens": "7.16.0" + }, + "references": [ + { + "id": "logs-*", + "name": "indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "indexpattern-datasource-layer-e327fec5-d799-4b3f-acfc-32c1ecaac682", + "type": "index-pattern" + } + ], + "type": "lens" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/map/proofpoint_tap-31abbc50-b5d6-11ec-a9d0-e94ed15a14b9.json b/packages/proofpoint_tap/0.1.0/kibana/map/proofpoint_tap-31abbc50-b5d6-11ec-a9d0-e94ed15a14b9.json new file mode 100755 index 0000000000..08fc3fa636 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/map/proofpoint_tap-31abbc50-b5d6-11ec-a9d0-e94ed15a14b9.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "description": "", + "layerListJSON": "[{\"alpha\":1,\"id\":\"c6a42104-e390-4c56-8ef8-5bd774773e72\",\"includeInFitToBounds\":true,\"label\":null,\"maxZoom\":24,\"minZoom\":0,\"sourceDescriptor\":{\"isAutoSelect\":true,\"type\":\"EMS_TMS\"},\"style\":{\"type\":\"TILE\"},\"type\":\"VECTOR_TILE\",\"visible\":true},{\"alpha\":0.75,\"id\":\"f8e2c82c-56b8-425d-a79d-ab24baf35f89\",\"includeInFitToBounds\":true,\"label\":\"Sender\",\"maxZoom\":24,\"minZoom\":0,\"sourceDescriptor\":{\"applyForceRefresh\":true,\"applyGlobalQuery\":true,\"applyGlobalTime\":true,\"geoField\":\"source.geo.location\",\"id\":\"ce99667c-f3a0-4d3c-b0d0-6e6ba88f1a9e\",\"indexPatternRefName\":\"layer_1_source_index_pattern\",\"metrics\":[{\"label\":\"Count\",\"type\":\"count\"}],\"requestType\":\"heatmap\",\"resolution\":\"COARSE\",\"type\":\"ES_GEO_GRID\"},\"style\":{\"colorRampName\":\"theclassic\",\"type\":\"HEATMAP\"},\"type\":\"HEATMAP\",\"visible\":true}]", + "mapStateJSON": "{\"center\":{\"lat\":33.09876,\"lon\":73.8871},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"refreshConfig\":{\"interval\":0,\"isPaused\":true},\"settings\":{\"autoFitToDataBounds\":false,\"backgroundColor\":\"#ffffff\",\"browserLocation\":{\"zoom\":2},\"disableInteractive\":false,\"disableTooltipControl\":false,\"fixedLocation\":{\"lat\":0,\"lon\":0,\"zoom\":2},\"hideLayerControl\":false,\"hideToolbarOverlay\":false,\"hideViewControl\":false,\"initialLocation\":\"LAST_SAVED_LOCATION\",\"maxZoom\":24,\"minZoom\":0,\"showScaleControl\":false,\"showSpatialFilters\":true,\"showTimesliderToggleButton\":true,\"spatialFiltersAlpa\":0.3,\"spatialFiltersFillColor\":\"#DA8B45\",\"spatialFiltersLineColor\":\"#DA8B45\"},\"timeFilters\":{\"from\":\"now-1y/d\",\"to\":\"now\"},\"zoom\":1.91}", + "title": "Sender of Messages by Region [Logs Proofpoint TAP]", + "uiStateJSON": "{\"isLayerTOCOpen\":true,\"openTOCDetails\":[]}" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-31abbc50-b5d6-11ec-a9d0-e94ed15a14b9", + "migrationVersion": { + "map": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "layer_1_source_index_pattern", + "type": "index-pattern" + } + ], + "type": "map" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/map/proofpoint_tap-40a91cd0-c197-11ec-aabc-2f1ab05698f9.json b/packages/proofpoint_tap/0.1.0/kibana/map/proofpoint_tap-40a91cd0-c197-11ec-aabc-2f1ab05698f9.json new file mode 100755 index 0000000000..766158e48e --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/map/proofpoint_tap-40a91cd0-c197-11ec-aabc-2f1ab05698f9.json @@ -0,0 +1,22 @@ +{ + "attributes": { + "description": "", + "layerListJSON": "[{\"alpha\":1,\"id\":\"1d744b4f-b6df-4195-bfea-8e64340b7da1\",\"includeInFitToBounds\":true,\"label\":null,\"maxZoom\":24,\"minZoom\":0,\"sourceDescriptor\":{\"isAutoSelect\":true,\"type\":\"EMS_TMS\"},\"style\":{\"type\":\"TILE\"},\"type\":\"VECTOR_TILE\",\"visible\":true},{\"alpha\":0.75,\"id\":\"48984da5-6c09-4c75-86d5-b9c1791d120d\",\"includeInFitToBounds\":true,\"label\":\"Clicks\",\"maxZoom\":24,\"minZoom\":0,\"sourceDescriptor\":{\"applyForceRefresh\":true,\"applyGlobalQuery\":true,\"applyGlobalTime\":true,\"geoField\":\"destination.geo.location\",\"id\":\"35e48033-3f9a-4228-98be-980fff6c70a1\",\"indexPatternRefName\":\"layer_1_source_index_pattern\",\"metrics\":[{\"label\":\"Count\",\"type\":\"count\"}],\"requestType\":\"heatmap\",\"resolution\":\"COARSE\",\"type\":\"ES_GEO_GRID\"},\"style\":{\"colorRampName\":\"theclassic\",\"type\":\"HEATMAP\"},\"type\":\"HEATMAP\",\"visible\":true}]", + "mapStateJSON": "{\"center\":{\"lat\":19.94277,\"lon\":0},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"refreshConfig\":{\"interval\":0,\"isPaused\":true},\"settings\":{\"autoFitToDataBounds\":false,\"backgroundColor\":\"#ffffff\",\"browserLocation\":{\"zoom\":2},\"disableInteractive\":false,\"disableTooltipControl\":false,\"fixedLocation\":{\"lat\":0,\"lon\":0,\"zoom\":2},\"hideLayerControl\":false,\"hideToolbarOverlay\":false,\"hideViewControl\":false,\"initialLocation\":\"LAST_SAVED_LOCATION\",\"maxZoom\":24,\"minZoom\":0,\"showScaleControl\":false,\"showSpatialFilters\":true,\"showTimesliderToggleButton\":true,\"spatialFiltersAlpa\":0.3,\"spatialFiltersFillColor\":\"#DA8B45\",\"spatialFiltersLineColor\":\"#DA8B45\"},\"timeFilters\":{\"from\":\"now-1y/d\",\"to\":\"now\"},\"zoom\":1.14}", + "title": "Clicks on URL by Region [Logs Proofpoint TAP]", + "uiStateJSON": "{\"isLayerTOCOpen\":true,\"openTOCDetails\":[]}" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-40a91cd0-c197-11ec-aabc-2f1ab05698f9", + "migrationVersion": { + "map": "7.14.0" + }, + "references": [ + { + "id": "logs-*", + "name": "layer_1_source_index_pattern", + "type": "index-pattern" + } + ], + "type": "map" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/search/proofpoint_tap-00dd5660-af9b-11ec-bf43-c372803d141d.json b/packages/proofpoint_tap/0.1.0/kibana/search/proofpoint_tap-00dd5660-af9b-11ec-bf43-c372803d141d.json new file mode 100755 index 0000000000..7ab5f27bd4 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/search/proofpoint_tap-00dd5660-af9b-11ec-bf43-c372803d141d.json @@ -0,0 +1,37 @@ +{ + "attributes": { + "columns": [ + "email.message_id", + "email.sender.address", + "email.to.address", + "email.subject", + "source.ip" + ], + "description": "", + "grid": {}, + "hideChart": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "Messages Essential Details [Logs Proofpoint TAP]" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-00dd5660-af9b-11ec-bf43-c372803d141d", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/kibana/search/proofpoint_tap-717803c0-b130-11ec-8e58-3fc548a48fe4.json b/packages/proofpoint_tap/0.1.0/kibana/search/proofpoint_tap-717803c0-b130-11ec-8e58-3fc548a48fe4.json new file mode 100755 index 0000000000..ada0cb93cf --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/kibana/search/proofpoint_tap-717803c0-b130-11ec-8e58-3fc548a48fe4.json @@ -0,0 +1,36 @@ +{ + "attributes": { + "columns": [ + "event.created", + "email.message_id", + "email.from.address", + "email.to.address" + ], + "description": "", + "grid": {}, + "hideChart": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "Clicks Essential Details [Logs Proofpoint TAP]" + }, + "coreMigrationVersion": "7.17.0", + "id": "proofpoint_tap-717803c0-b130-11ec-8e58-3fc548a48fe4", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/proofpoint_tap/0.1.0/manifest.yml b/packages/proofpoint_tap/0.1.0/manifest.yml new file mode 100755 index 0000000000..69c83c7db5 --- /dev/null +++ b/packages/proofpoint_tap/0.1.0/manifest.yml @@ -0,0 +1,84 @@ +format_version: 1.0.0 +name: proofpoint_tap +title: Proofpoint TAP +version: 0.1.0 +license: basic +description: Collect logs from Proofpoint TAP with Elastic Agent. +type: integration +categories: + - security +release: beta +conditions: + kibana.version: ^7.17.0 || ^8.0.0 +screenshots: + - src: /img/proofpoint_tap-screenshot.png + title: Proofpoint TAP blocked clicks dashboard screenshot + size: 600x600 + type: image/png +icons: + - src: /img/proofpoint_tap-logo.svg + title: Proofpoint TAP logo + size: 32x32 + type: image/svg+xml +policy_templates: + - name: Proofpoint TAP + title: Proofpoint_TAP logs + description: Collect proofpoint_tap logs. + inputs: + - type: httpjson + title: Collect Proofpoint TAP logs via API + description: Collecting Proofpoint TAP logs via API. + vars: + - name: url + type: text + title: URL + description: Proofpoint TAP URL. Find URL in the console dashboard at the beginning of the web address. + required: true + - name: principal + type: text + title: Principal + description: Principal for the Basic Authentication. + required: true + - name: secret + type: password + title: Secret Key + description: Secret Key for the Basic Authentication. + required: true + - name: proxy_url + type: text + title: Proxy URL + multi: false + required: false + show_user: false + description: URL to proxy connections in the form of http[s]://:@:. Please ensure your username and password are in URL encoded format. + - name: ssl + type: yaml + title: SSL Configuration + description: i.e. certificate_authorities, supported_protocols, verification_mode etc. + multi: false + required: false + show_user: false + default: | + #certificate_authorities: + # - | + # -----BEGIN CERTIFICATE----- + # MIIDCjCCAfKgAwIBAgITJ706Mu2wJlKckpIvkWxEHvEyijANBgkqhkiG9w0BAQsF + # ADAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwIBcNMTkwNzIyMTkyOTA0WhgPMjExOTA2 + # MjgxOTI5MDRaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEB + # BQADggEPADCCAQoCggEBANce58Y/JykI58iyOXpxGfw0/gMvF0hUQAcUrSMxEO6n + # fZRA49b4OV4SwWmA3395uL2eB2NB8y8qdQ9muXUdPBWE4l9rMZ6gmfu90N5B5uEl + # 94NcfBfYOKi1fJQ9i7WKhTjlRkMCgBkWPkUokvBZFRt8RtF7zI77BSEorHGQCk9t + # /D7BS0GJyfVEhftbWcFEAG3VRcoMhF7kUzYwp+qESoriFRYLeDWv68ZOvG7eoWnP + # PsvZStEVEimjvK5NSESEQa9xWyJOmlOKXhkdymtcUd/nXnx6UTCFgnkgzSdTWV41 + # CI6B6aJ9svCTI2QuoIq2HxX/ix7OvW1huVmcyHVxyUECAwEAAaNTMFEwHQYDVR0O + # BBYEFPwN1OceFGm9v6ux8G+DZ3TUDYxqMB8GA1UdIwQYMBaAFPwN1OceFGm9v6ux + # 8G+DZ3TUDYxqMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAG5D + # 874A4YI7YUwOVsVAdbWtgp1d0zKcPRR+r2OdSbTAV5/gcS3jgBJ3i1BN34JuDVFw + # 3DeJSYT3nxy2Y56lLnxDeF8CUTUtVQx3CuGkRg1ouGAHpO/6OqOhwLLorEmxi7tA + # H2O8mtT0poX5AnOAhzVy7QW0D/k4WaoLyckM5hUa6RtvgvLxOwA0U+VGurCDoctu + # 8F4QOgTAWyh8EZIwaKCliFRSynDpv3JTUwtfZkxo6K6nce1RhCWFAsMvDZL8Dgc0 + # yvgJ38BRsFOtkRuAGSf6ZUwTO8JJRRIFnpUzXflAnGivK9M13D5GEQMmIl6U9Pvk + # sxSmbIUfc2SGJGCJD4I= + # -----END CERTIFICATE----- +owner: + github: elastic/security-external-integrations diff --git a/packages/pulse_connect_secure/1.0.0/changelog.yml b/packages/pulse_connect_secure/1.0.0/changelog.yml new file mode 100755 index 0000000000..08294e1f18 --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/changelog.yml @@ -0,0 +1,36 @@ +# newer versions go on top +- version: "1.0.0" + changes: + - description: Make GA + type: enhancement + link: https://github.com/elastic/integrations/pull/3428 +- version: "0.3.0" + changes: + - description: Update to ECS 8.2 + type: enhancement + link: https://github.com/elastic/integrations/pull/2780 +- version: "0.2.1" + changes: + - description: Add documentation for multi-fields + type: enhancement + link: https://github.com/elastic/integrations/pull/2916 +- version: "0.2.0" + changes: + - description: Add support for parsing syslog priority values + type: enhancement + link: https://github.com/elastic/integrations/pull/2552 +- version: "0.1.0" + changes: + - description: Update to ECS 8.0 + type: enhancement + link: https://github.com/elastic/integrations/pull/2434 +- version: "0.0.2" + changes: + - description: Regenerate test files using the new GeoIP database + type: bugfix + link: https://github.com/elastic/integrations/pull/2339 +- version: "0.0.1" + changes: + - description: initial release + type: enhancement # can be one of: enhancement, bugfix, breaking-change + link: https://github.com/elastic/integrations/pull/1998 diff --git a/packages/pulse_connect_secure/1.0.0/data_stream/log/agent/stream/tcp.yml.hbs b/packages/pulse_connect_secure/1.0.0/data_stream/log/agent/stream/tcp.yml.hbs new file mode 100755 index 0000000000..7dd7052361 --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/data_stream/log/agent/stream/tcp.yml.hbs @@ -0,0 +1,18 @@ +host: "{{syslog_host}}:{{syslog_port}}" +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if ssl}} +ssl: {{ssl}} +{{/if}} +{{#if processors}} +processors: +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/pulse_connect_secure/1.0.0/data_stream/log/agent/stream/udp.yml.hbs b/packages/pulse_connect_secure/1.0.0/data_stream/log/agent/stream/udp.yml.hbs new file mode 100755 index 0000000000..dfe707f6ab --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/data_stream/log/agent/stream/udp.yml.hbs @@ -0,0 +1,15 @@ +host: "{{syslog_host}}:{{syslog_port}}" +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/pulse_connect_secure/1.0.0/data_stream/log/elasticsearch/ingest_pipeline/default.yml b/packages/pulse_connect_secure/1.0.0/data_stream/log/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..57cbefc730 --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/data_stream/log/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,134 @@ +--- +description: Pipeline for parsing Pulse Connect Secure logs +processors: + - set: + field: ecs.version + value: '8.2.0' + - rename: + field: message + target_field: event.original + - set: + field: observer.vendor + value: Pulse Secure + - set: + field: observer.product + value: Pulse Secure Connect + - set: + field: observer.type + value: vpn + - grok: + field: event.original + patterns: + - '^(<%{NONNEGINT:log.syslog.priority:long}>%{NUMBER}?|%{SYSLOGTIMESTAMP} %{SYSLOGHOST:host.hostname} %{INT}) %{TIMESTAMP_ISO8601:_tmp.timestamp} %{IP:observer.ip} PulseSecure: - - - %{DATE2} - %{SYSLOGHOST:observer.name} - \[%{IPORHOST:client.address}\] %{USERNAME:user.name}?\(%{DATA:pulse_secure.realm}?\)\[%{DATA:pulse_secure.role}\] - %{GREEDYDATA:message}' + pattern_definitions: + TIMESTAMP_ISO8601: '%{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE:event.timezone}?' + DATE2: '%{YEAR}-%{MONTHNUM}-%{MONTHDAY} %{HOUR}:?%{MINUTE}(?::?%{SECOND})?' + - date: + field: _tmp.timestamp + target_field: '@timestamp' + timezone: "{{ event.timezone }}" + formats: + - ISO8601 + if: ctx.event?.timezone != null + - date: + field: _tmp.timestamp + target_field: '@timestamp' + formats: + - ISO8601 + if: ctx.event?.timezone == null + - set: + field: event.created + copy_from: '@timestamp' + - convert: + field: client.address + target_field: client.ip + type: ip + ignore_missing: true + - set: + field: event.kind + value: event + - set: + field: event.category + value: network + - grok: + field: message + patterns: + - 'Agent login %{WORD:_tmp.outcome} for %{DATA}%{SESSION} from %{IP} with %{GREEDYDATA:user_agent.original}.' + - 'VPN Tunneling: Session %{WORD:_tmp.type} for user %{SESSION} with %{NOTSPACE:network.type} address %{IP:client.nat.ip}(, hostname %{HOSTNAME:host.name})?' + - "Session %{WORD} from user agent '%{GREEDYDATA:user_agent.original}' %{SESSION}." + - 'Login %{WORD:_tmp.outcome}( %{GREEDYDATA})?. Reason: %{GREEDYDATA:event.reason}' + - '^Primary authentication %{WORD_tmp.outcome}' + - '%{SESSION}' + pattern_definitions: + SESSION: \(session:%{SPACE}?%{NOTSPACE:pulse_secure.session.id}\) + ignore_failure: true + - lowercase: + field: network.type + ignore_missing: true + - user_agent: + field: user_agent.original + ignore_failure: true + ignore_missing: true + - set: + field: event.outcome + value: failure + if: 'ctx._tmp?.outcome != null && ["failed"].contains(ctx._tmp?.outcome)' + - set: + field: event.outcome + value: success + if: 'ctx._tmp?.outcome != null && ["successful", "succeeded"].contains(ctx._tmp?.outcome)' + - append: + field: event.type + value: + - connection + - session + - start + if: ctx._tmp?.type != null && ctx._tmp?.type == "started" + - append: + field: event.type + value: + - connection + - session + - end + if: ctx._tmp?.type != null && ctx._tmp?.type == "ended" + # IP Geolocation Lookup + - geoip: + field: client.ip + target_field: client.geo + ignore_missing: true + # IP Autonomous System (AS) Lookup + - geoip: + database_file: GeoLite2-ASN.mmdb + field: client.ip + target_field: client.as + properties: + - asn + - organization_name + ignore_missing: true + - rename: + field: client.as.asn + target_field: client.as.number + ignore_missing: true + - rename: + field: client.as.organization_name + target_field: client.as.organization.name + ignore_missing: true + - set: + field: source + copy_from: client + + + + - remove: + field: + - _tmp + ignore_missing: true + - remove: + field: event.original + if: "ctx.tags == null || !(ctx.tags.contains('preserve_original_event'))" + ignore_failure: true + ignore_missing: true +on_failure: + - set: + field: error.message + value: '{{ _ingest.on_failure_message }}' diff --git a/packages/pulse_connect_secure/1.0.0/data_stream/log/fields/agent.yml b/packages/pulse_connect_secure/1.0.0/data_stream/log/fields/agent.yml new file mode 100755 index 0000000000..79a7a39864 --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/data_stream/log/fields/agent.yml @@ -0,0 +1,180 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: "Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on." + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: "The cloud account or organization id used to identify different entities in a multi-tenant environment.\nExamples: AWS account id, Google Cloud ORG Id, or other unique identifier." + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: "Container fields are used for meta information about the specific container that is the source of information.\nThese fields help correlate data based containers from any runtime." + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: "A host is defined as a general computing instance.\nECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes." + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: "Name of the domain of which the host is a member.\nFor example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider." + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: "Hostname of the host.\nIt normally contains what the `hostname` command returns on the host machine." + - name: id + level: core + type: keyword + ignore_above: 1024 + description: "Unique host id.\nAs hostname is not always unique, use values that are meaningful in your environment.\nExample: The current usage of `beat.name`." + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: "Name of the host.\nIt can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use." + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: "Type of host.\nFor Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment." + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + diff --git a/packages/pulse_connect_secure/1.0.0/data_stream/log/fields/base-fields.yml b/packages/pulse_connect_secure/1.0.0/data_stream/log/fields/base-fields.yml new file mode 100755 index 0000000000..6ced01af01 --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/data_stream/log/fields/base-fields.yml @@ -0,0 +1,29 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: event.module + type: constant_keyword + description: Event module + value: pulse_connect_secure +- name: event.dataset + type: constant_keyword + description: Event dataset + value: pulse_connect_secure.log +- name: log.source.address + description: Source address from which the log event was read / sent from. + type: keyword +- name: log.flags + description: Flags for the log file. + type: keyword +- name: log.offset + type: long + description: Log offset +- name: input.type + type: keyword + description: Input type diff --git a/packages/pulse_connect_secure/1.0.0/data_stream/log/fields/ecs.yml b/packages/pulse_connect_secure/1.0.0/data_stream/log/fields/ecs.yml new file mode 100755 index 0000000000..c3692c7bef --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/data_stream/log/fields/ecs.yml @@ -0,0 +1,202 @@ +- description: |- + Date/time when the event originated. + This is the date/time extracted from the event, typically representing when the event was generated by the source. + If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. + Required field for all events. + name: '@timestamp' + type: date +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. + `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. + Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. + Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. + Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. + name: event.outcome + type: keyword +- description: |- + Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: client.address + type: keyword +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: client.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: client.as.organization.name + type: keyword +- description: Region ISO code. + name: client.geo.region_iso_code + type: keyword +- description: Region name. + name: client.geo.region_name + type: keyword +- description: City name. + name: client.geo.city_name + type: keyword +- description: Name of the continent. + name: client.geo.continent_name + type: keyword +- description: Country ISO code. + name: client.geo.country_iso_code + type: keyword +- description: Country name. + name: client.geo.country_name + type: keyword +- description: Longitude and latitude. + level: core + name: client.geo.location + type: geo_point +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: source.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: source.as.organization.name + type: keyword +- description: Name of the continent. + name: source.geo.continent_name + type: keyword +- description: Country ISO code. + name: source.geo.country_iso_code + type: keyword +- description: Region ISO code. + name: source.geo.region_iso_code + type: keyword +- description: Region name. + name: source.geo.region_name + type: keyword +- description: City name. + name: source.geo.city_name + type: keyword +- description: Country name. + name: source.geo.country_name + type: keyword +- description: Longitude and latitude. + level: core + name: source.geo.location + type: geo_point +- description: IP address of the client (IPv4 or IPv6). + name: client.ip + type: ip +- description: |- + Translated IP of source based NAT sessions (e.g. internal client to internet). + Typically connections traversing load balancers, firewalls, or routers. + name: client.nat.ip + type: ip +- description: |- + Syslog numeric priority of the event, if available. + According to RFCs 5424 and 3164, the priority is 8 * facility + severity. This number is therefore expected to contain a value between 0 and 191. + name: log.syslog.priority + type: long +- description: |- + For log events the message field contains the log message, optimized for viewing in a log viewer. + For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. + If multiple messages exist, they can be combined into one message. + name: message + type: match_only_text +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. + name: network.type + type: keyword +- description: IP addresses of the observer. + name: observer.ip + type: ip +- description: |- + Custom name of the observer. + This is a name that can be given to an observer. This can be helpful for example if multiple firewalls of the same model are used in an organization. + If no custom name is needed, the field can be left empty. + name: observer.name + type: keyword +- description: The product name of the observer. + name: observer.product + type: keyword +- description: |- + The type of the observer the data is coming from. + There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. + name: observer.type + type: keyword +- description: Vendor name of the observer. + name: observer.vendor + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword +- description: Name of the device. + name: user_agent.device.name + type: keyword +- description: Name of the user agent. + name: user_agent.name + type: keyword +- description: Unparsed user_agent string. + multi_fields: + - name: text + type: match_only_text + name: user_agent.original + type: keyword +- description: Operating system name, including the version or code name. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.full + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: user_agent.os.name + type: keyword +- description: Operating system version as a raw string. + name: user_agent.os.version + type: keyword +- description: |- + Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: source.address + type: keyword +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: source.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: source.as.organization.name + type: keyword +- description: Name of the continent. + name: source.geo.continent_name + type: keyword +- description: Country ISO code. + name: source.geo.country_iso_code + type: keyword +- description: Country name. + name: source.geo.country_name + type: keyword +- description: Longitude and latitude. + level: core + name: source.geo.location + type: geo_point +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: |- + Translated ip of source based NAT sessions (e.g. internal client to internet) + Typically connections traversing load balancers, firewalls, or routers. + name: source.nat.ip + type: ip diff --git a/packages/pulse_connect_secure/1.0.0/data_stream/log/fields/fields.yml b/packages/pulse_connect_secure/1.0.0/data_stream/log/fields/fields.yml new file mode 100755 index 0000000000..865977f758 --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/data_stream/log/fields/fields.yml @@ -0,0 +1,14 @@ +- name: pulse_secure.session.id + type: keyword + description: > + test + +- name: pulse_secure.realm + type: keyword + description: > + test + +- name: pulse_secure.role + type: keyword + description: >- + test diff --git a/packages/pulse_connect_secure/1.0.0/data_stream/log/manifest.yml b/packages/pulse_connect_secure/1.0.0/data_stream/log/manifest.yml new file mode 100755 index 0000000000..d6c7538634 --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/data_stream/log/manifest.yml @@ -0,0 +1,100 @@ +type: logs +title: Pulse Connect Secure +streams: + - input: udp + vars: + - name: syslog_host + type: text + title: Syslog Host + multi: false + required: true + show_user: true + default: localhost + - name: syslog_port + type: text + title: Syslog Port + multi: false + required: true + show_user: true + default: 9514 + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - pulse_connect_secure-log + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original` + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + + template_path: udp.yml.hbs + title: Pulse Connect Secure logs (udp) + description: Collect Pulse Connect Secure logs using udp input + - input: tcp + vars: + - name: syslog_host + type: text + title: Syslog Host + multi: false + required: true + show_user: true + default: localhost + - name: syslog_port + type: text + title: Syslog Port + multi: false + required: true + show_user: true + default: 9514 + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - pulse_connect_secure-log + - name: ssl + type: yaml + title: TLS configuration + multi: false + required: false + show_user: true + description: Options for enabling TLS mode. See the [documentation](https://www.elastic.co/guide/en/beats/filebeat/current/configuration-ssl.html) for a list of all options. + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original` + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + + template_path: tcp.yml.hbs + title: Pulse Connect Secure logs (tcp) + description: Collect Pulse Connect Secure logs using tcp input diff --git a/packages/pulse_connect_secure/1.0.0/data_stream/log/sample_event.json b/packages/pulse_connect_secure/1.0.0/data_stream/log/sample_event.json new file mode 100755 index 0000000000..507cf48f59 --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/data_stream/log/sample_event.json @@ -0,0 +1,124 @@ +{ + "@timestamp": "2021-10-19T09:10:35.000+02:00", + "agent": { + "ephemeral_id": "48b94170-8de9-42a4-8608-50484a347a6a", + "id": "584f3aea-648c-4e58-aba4-32b8f88d4396", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.0.0-beta1" + }, + "client": { + "address": "89.160.20.156", + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.156" + }, + "data_stream": { + "dataset": "pulse_connect_secure.log", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "584f3aea-648c-4e58-aba4-32b8f88d4396", + "snapshot": false, + "version": "8.0.0-beta1" + }, + "event": { + "agent_id_status": "verified", + "category": "network", + "created": "2021-10-19T09:10:35.000+02:00", + "dataset": "pulse_connect_secure.log", + "ingested": "2022-02-03T09:39:02Z", + "kind": "event", + "original": "Oct 19 09:10:35 pcs-node1 1 2021-10-19T09:10:35+02:00 10.5.2.3 PulseSecure: - - - 2021-10-19 09:10:35 - pcs-node1 - [89.160.20.156] user.name(REALM)[REALM_ROLES] - Agent login succeeded for user.name/REALM (session:sid74fa8e00ca601280318287f67dfaee7cc6da40db0be6ac75) from 89.160.20.156 with Pulse-Secure/9.1.13.11723 (Windows 10) Pulse/9.1.13.11723.\n", + "outcome": "success", + "timezone": "+02:00" + }, + "host": { + "hostname": "pcs-node1" + }, + "input": { + "type": "udp" + }, + "log": { + "source": { + "address": "172.19.0.7:51695" + } + }, + "message": "Agent login succeeded for user.name/REALM (session:sid74fa8e00ca601280318287f67dfaee7cc6da40db0be6ac75) from 89.160.20.156 with Pulse-Secure/9.1.13.11723 (Windows 10) Pulse/9.1.13.11723.", + "observer": { + "ip": "10.5.2.3", + "name": "pcs-node1", + "product": "Pulse Secure Connect", + "type": "vpn", + "vendor": "Pulse Secure" + }, + "pulse_secure": { + "realm": "REALM", + "role": "REALM_ROLES", + "session": { + "id": "sid74fa8e00ca601280318287f67dfaee7cc6da40db0be6ac75" + } + }, + "source": { + "address": "89.160.20.156", + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.156" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "pulse_connect_secure-log" + ], + "user": { + "name": "user.name" + }, + "user_agent": { + "device": { + "name": "Other" + }, + "name": "Other", + "original": "Pulse-Secure/9.1.13.11723 (Windows 10) Pulse/9.1.13.11723", + "os": { + "full": "Windows 10", + "name": "Windows", + "version": "10" + } + } +} \ No newline at end of file diff --git a/packages/pulse_connect_secure/1.0.0/docs/README.md b/packages/pulse_connect_secure/1.0.0/docs/README.md new file mode 100755 index 0000000000..be731bdde2 --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/docs/README.md @@ -0,0 +1,231 @@ +# Pulse Connect Secure Integration + +This integration is for [Pulse Connect Secure](https://www.pulsesecure.net/products/remote-access-overview/). + +## Log + +An example event for `log` looks as following: + +```json +{ + "@timestamp": "2021-10-19T09:10:35.000+02:00", + "agent": { + "ephemeral_id": "48b94170-8de9-42a4-8608-50484a347a6a", + "id": "584f3aea-648c-4e58-aba4-32b8f88d4396", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.0.0-beta1" + }, + "client": { + "address": "89.160.20.156", + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.156" + }, + "data_stream": { + "dataset": "pulse_connect_secure.log", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "584f3aea-648c-4e58-aba4-32b8f88d4396", + "snapshot": false, + "version": "8.0.0-beta1" + }, + "event": { + "agent_id_status": "verified", + "category": "network", + "created": "2021-10-19T09:10:35.000+02:00", + "dataset": "pulse_connect_secure.log", + "ingested": "2022-02-03T09:39:02Z", + "kind": "event", + "original": "Oct 19 09:10:35 pcs-node1 1 2021-10-19T09:10:35+02:00 10.5.2.3 PulseSecure: - - - 2021-10-19 09:10:35 - pcs-node1 - [89.160.20.156] user.name(REALM)[REALM_ROLES] - Agent login succeeded for user.name/REALM (session:sid74fa8e00ca601280318287f67dfaee7cc6da40db0be6ac75) from 89.160.20.156 with Pulse-Secure/9.1.13.11723 (Windows 10) Pulse/9.1.13.11723.\n", + "outcome": "success", + "timezone": "+02:00" + }, + "host": { + "hostname": "pcs-node1" + }, + "input": { + "type": "udp" + }, + "log": { + "source": { + "address": "172.19.0.7:51695" + } + }, + "message": "Agent login succeeded for user.name/REALM (session:sid74fa8e00ca601280318287f67dfaee7cc6da40db0be6ac75) from 89.160.20.156 with Pulse-Secure/9.1.13.11723 (Windows 10) Pulse/9.1.13.11723.", + "observer": { + "ip": "10.5.2.3", + "name": "pcs-node1", + "product": "Pulse Secure Connect", + "type": "vpn", + "vendor": "Pulse Secure" + }, + "pulse_secure": { + "realm": "REALM", + "role": "REALM_ROLES", + "session": { + "id": "sid74fa8e00ca601280318287f67dfaee7cc6da40db0be6ac75" + } + }, + "source": { + "address": "89.160.20.156", + "as": { + "number": 29518, + "organization": { + "name": "Bredband2 AB" + } + }, + "geo": { + "city_name": "Linköping", + "continent_name": "Europe", + "country_iso_code": "SE", + "country_name": "Sweden", + "location": { + "lat": 58.4167, + "lon": 15.6167 + }, + "region_iso_code": "SE-E", + "region_name": "Östergötland County" + }, + "ip": "89.160.20.156" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "pulse_connect_secure-log" + ], + "user": { + "name": "user.name" + }, + "user_agent": { + "device": { + "name": "Other" + }, + "name": "Other", + "original": "Pulse-Secure/9.1.13.11723 (Windows 10) Pulse/9.1.13.11723", + "os": { + "full": "Windows 10", + "name": "Windows", + "version": "10" + } + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Date/time when the event originated. This is the date/time extracted from the event, typically representing when the event was generated by the source. If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. | date | +| client.address | Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| client.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| client.as.organization.name | Organization name. | keyword | +| client.as.organization.name.text | Multi-field of `client.as.organization.name`. | match_only_text | +| client.geo.city_name | City name. | keyword | +| client.geo.continent_name | Name of the continent. | keyword | +| client.geo.country_iso_code | Country ISO code. | keyword | +| client.geo.country_name | Country name. | keyword | +| client.geo.location | Longitude and latitude. | geo_point | +| client.geo.region_iso_code | Region ISO code. | keyword | +| client.geo.region_name | Region name. | keyword | +| client.ip | IP address of the client (IPv4 or IPv6). | ip | +| client.nat.ip | Translated IP of source based NAT sessions (e.g. internal client to internet). Typically connections traversing load balancers, firewalls, or routers. | ip | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.dataset | Event dataset | constant_keyword | +| event.module | Event module | constant_keyword | +| event.outcome | This is one of four ECS Categorization Fields, and indicates the lowest level in the ECS category hierarchy. `event.outcome` simply denotes whether the event represents a success or a failure from the perspective of the entity that produced the event. Note that when a single transaction is described in multiple events, each event may populate different values of `event.outcome`, according to their perspective. Also note that in the case of a compound event (a single event that contains multiple logical events), this field should be populated with the value that best captures the overall success or failure from the perspective of the event producer. Further note that not all events will have an associated outcome. For example, this field is generally not populated for metric events, events with `event.type:info`, or any events for which an outcome does not make logical sense. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.flags | Flags for the log file. | keyword | +| log.offset | Log offset | long | +| log.source.address | Source address from which the log event was read / sent from. | keyword | +| log.syslog.priority | Syslog numeric priority of the event, if available. According to RFCs 5424 and 3164, the priority is 8 \* facility + severity. This number is therefore expected to contain a value between 0 and 191. | long | +| message | For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message. | match_only_text | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. | keyword | +| observer.ip | IP addresses of the observer. | ip | +| observer.name | Custom name of the observer. This is a name that can be given to an observer. This can be helpful for example if multiple firewalls of the same model are used in an organization. If no custom name is needed, the field can be left empty. | keyword | +| observer.product | The product name of the observer. | keyword | +| observer.type | The type of the observer the data is coming from. There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. | keyword | +| observer.vendor | Vendor name of the observer. | keyword | +| pulse_secure.realm | test | keyword | +| pulse_secure.role | test | keyword | +| pulse_secure.session.id | test | keyword | +| source.address | Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| source.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| source.as.organization.name | Organization name. | keyword | +| source.as.organization.name.text | Multi-field of `source.as.organization.name`. | match_only_text | +| source.geo.city_name | City name. | keyword | +| source.geo.continent_name | Name of the continent. | keyword | +| source.geo.country_iso_code | Country ISO code. | keyword | +| source.geo.country_name | Country name. | keyword | +| source.geo.location | Longitude and latitude. | geo_point | +| source.geo.region_iso_code | Region ISO code. | keyword | +| source.geo.region_name | Region name. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.nat.ip | Translated ip of source based NAT sessions (e.g. internal client to internet) Typically connections traversing load balancers, firewalls, or routers. | ip | +| tags | List of keywords used to tag each event. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | +| user_agent.device.name | Name of the device. | keyword | +| user_agent.name | Name of the user agent. | keyword | +| user_agent.original | Unparsed user_agent string. | keyword | +| user_agent.original.text | Multi-field of `user_agent.original`. | match_only_text | +| user_agent.os.full | Operating system name, including the version or code name. | keyword | +| user_agent.os.full.text | Multi-field of `user_agent.os.full`. | match_only_text | +| user_agent.os.name | Operating system name, without the version. | keyword | +| user_agent.os.name.text | Multi-field of `user_agent.os.name`. | match_only_text | +| user_agent.os.version | Operating system version as a raw string. | keyword | + diff --git a/packages/pulse_connect_secure/1.0.0/img/pulse_connect_secure.svg b/packages/pulse_connect_secure/1.0.0/img/pulse_connect_secure.svg new file mode 100755 index 0000000000..be2244431b --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/img/pulse_connect_secure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/pulse_connect_secure/1.0.0/manifest.yml b/packages/pulse_connect_secure/1.0.0/manifest.yml new file mode 100755 index 0000000000..221ee6509d --- /dev/null +++ b/packages/pulse_connect_secure/1.0.0/manifest.yml @@ -0,0 +1,29 @@ +name: pulse_connect_secure +title: Pulse Connect Secure +version: 1.0.0 +release: ga +description: Collect logs from Pulse Connect Secure with Elastic Agent. +type: integration +icons: + - src: /img/pulse_connect_secure.svg + title: pulse_connect_secure + size: 300x70 + type: image/svg+xml +format_version: 1.0.0 +license: basic +categories: [network, security] +conditions: + kibana.version: "^7.16.0 || ^8.0.0" +policy_templates: + - name: pulse_connect_secure + title: Pulse Connect Secure logs + description: Collect logs from Pulse Connect Secure instances + inputs: + - type: udp + title: "Collect Pulse Connect Secure logs (input: udp)" + description: "Collecting logs from Pulse Connect Secure instances (input: udp)" + - type: tcp + title: "Collect Pulse Connect Secure logs (input: tcp)" + description: "Collecting logs from Pulse Connect Secure instances (input: tcp)" +owner: + github: elastic/security-external-integrations diff --git a/packages/sentinel_one/0.1.0/changelog.yml b/packages/sentinel_one/0.1.0/changelog.yml new file mode 100755 index 0000000000..d293eb7aeb --- /dev/null +++ b/packages/sentinel_one/0.1.0/changelog.yml @@ -0,0 +1,6 @@ +# newer versions go on top +- version: "0.1.0" + changes: + - description: Initial Release + type: enhancement + link: https://github.com/elastic/integrations/pull/3232 diff --git a/packages/sentinel_one/0.1.0/data_stream/activity/agent/stream/httpjson.yml.hbs b/packages/sentinel_one/0.1.0/data_stream/activity/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..ce51b9aa5e --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/activity/agent/stream/httpjson.yml.hbs @@ -0,0 +1,51 @@ +config_version: 2 +interval: {{interval}} +{{#if proxy_url }} +request.proxy_url: {{proxy_url}} +{{/if}} +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} +request.method: GET +request.url: {{url}}/web/api/v2.1/activities +request.transforms: + - set: + target: header.Authorization + value: 'ApiToken {{api_token}}' + - set: + target: url.params.limit + value: '100' + - set: + target: url.params.sortBy + value: 'createdAt' + - set: + target: url.params.sortOrder + value: 'asc' + - set: + target: url.params.createdAt__gte + value: '[[formatDate (parseDate .cursor.last_create_at)]]' + default: '[[formatDate (now (parseDuration "-{{initial_interval}}"))]]' +response.pagination: + - set: + target: url.params.cursor + value: '[[if (ne .last_response.body.pagination.nextCursor nil)]][[.last_response.body.pagination.nextCursor]][[else]][[.last_response.terminate_pagination]][[end]]' + fail_on_template_error: true +cursor: + last_create_at: + value: '[[.last_event.createdAt]]' +response.split: + target: body.data +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/sentinel_one/0.1.0/data_stream/activity/elasticsearch/ingest_pipeline/default.yml b/packages/sentinel_one/0.1.0/data_stream/activity/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..9718321412 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/activity/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,408 @@ +--- +description: Pipeline for processing activity logs. +processors: + - set: + field: ecs.version + value: '8.2.0' + - set: + field: event.kind + value: event + - set: + field: event.category + value: [malware] + - set: + field: event.type + value: [info] + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - fingerprint: + fields: + - json.createdAt + - json.updatedAt + - json.id + target_field: _id + ignore_missing: true + - date: + field: json.updatedAt + target_field: sentinel_one.activity.updated_at + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.description + target_field: message + ignore_missing: true + - rename: + field: json.hash + target_field: process.hash.sha1 + ignore_missing: true + - append: + field: related.hash + value: '{{{process.hash.sha1}}}' + if: ctx.process?.hash?.sha1 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.osFamily + target_field: os.family + ignore_missing: true + - rename: + field: json.agentUpdatedVersion + target_field: observer.version + ignore_missing: true + - rename: + field: json.groupId + target_field: user.group.id + ignore_missing: true + - rename: + field: json.groupName + target_field: user.group.name + ignore_missing: true + - rename: + field: json.accountId + target_field: sentinel_one.activity.account.id + ignore_missing: true + - rename: + field: json.userId + target_field: user.id + ignore_missing: true + - rename: + field: json.accountName + target_field: sentinel_one.activity.account.name + ignore_missing: true + - rename: + field: json.agentId + target_field: sentinel_one.activity.agent.id + ignore_missing: true + - rename: + field: json.comments + target_field: sentinel_one.activity.comments + ignore_missing: true + - date: + field: json.createdAt + target_field: '@timestamp' + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.primaryDescription + target_field: sentinel_one.activity.description.primary + ignore_missing: true + - rename: + field: json.secondaryDescription + target_field: sentinel_one.activity.description.secondary + ignore_missing: true + - rename: + field: json.id + target_field: sentinel_one.activity.id + ignore_missing: true + - rename: + field: json.siteId + target_field: sentinel_one.activity.site.id + ignore_missing: true + - rename: + field: json.siteName + target_field: sentinel_one.activity.site.name + ignore_missing: true + - rename: + field: json.threatId + target_field: sentinel_one.activity.threat.id + ignore_missing: true + - convert: + field: json.activityType + target_field: sentinel_one.activity.type + type: long + ignore_failure: true + - convert: + field: json.data.accountId + target_field: sentinel_one.activity.data.account.id + type: string + ignore_failure: true + - rename: + field: json.data.accountName + target_field: sentinel_one.activity.data.account.name + ignore_missing: true + - rename: + field: json.data.fullScopeDetails + target_field: sentinel_one.activity.data.fullscope.details + ignore_missing: true + - rename: + field: json.data.fullScopeDetailsPath + target_field: sentinel_one.activity.data.fullscope.details_path + ignore_missing: true + - rename: + field: json.data.groupName + target_field: sentinel_one.activity.data.group_name + ignore_missing: true + - rename: + field: json.data.scopeLevel + target_field: sentinel_one.activity.data.scope.level + ignore_missing: true + - rename: + field: json.data.scopeName + target_field: sentinel_one.activity.data.scope.name + ignore_missing: true + - rename: + field: json.data.siteName + target_field: sentinel_one.activity.data.site.name + ignore_missing: true + - rename: + field: json.data.username + target_field: user.full_name + ignore_missing: true + - append: + field: related.user + value: '{{{user.full_name}}}' + if: ctx.user?.full_name != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.data.byUser + target_field: sentinel_one.activity.data.user.name + ignore_missing: true + - append: + field: related.user + value: '{{{sentinel_one.activity.data.user.name}}}' + if: ctx.sentinel_one?.activity?.data?.user?.name != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.data.role + target_field: sentinel_one.activity.data.role + ignore_missing: true + - rename: + field: json.data.roleName + target_field: sentinel_one.activity.data.role_name + ignore_missing: true + - rename: + field: json.data.scopeLevelName + target_field: sentinel_one.activity.data.scope_level.name + ignore_missing: true + - rename: + field: json.data.userScope + target_field: sentinel_one.activity.data.user.scope + ignore_missing: true + - convert: + field: json.data.newValue + target_field: sentinel_one.activity.data.new.value + type: boolean + ignore_failure: true + - convert: + field: json.data.externalIp + type: ip + ignore_failure: true + - geoip: + field: json.data.externalIp + target_field: host.geo + ignore_missing: true + - convert: + field: json.data.ipAddress + type: ip + ignore_failure: true + - geoip: + field: json.data.ipAddress + target_field: host.geo + ignore_missing: true + if: ctx.host?.geo == null + - append: + field: host.ip + value: '{{{json.data.ipAddress}}}' + allow_duplicates: false + ignore_failure: true + - append: + field: host.ip + value: '{{{json.data.externalIp}}}' + allow_duplicates: false + ignore_failure: true + - append: + field: related.ip + value: '{{{json.data.ipAddress}}}' + if: ctx.json?.data?.ipAddress != null + allow_duplicates: false + ignore_failure: true + - append: + field: related.ip + value: '{{{json.data.externalIp}}}' + if: ctx.json?.data?.externalIp != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.data.reason + target_field: sentinel_one.activity.data.reason + ignore_missing: true + - rename: + field: json.data.source + target_field: sentinel_one.activity.data.source + ignore_missing: true + - rename: + field: json.data.recoveryEmail + target_field: user.email + ignore_missing: true + - rename: + field: json.data.computerName + target_field: host.name + ignore_missing: true + - append: + field: related.hosts + value: '{{{host.name}}}' + if: ctx.host?.name != null + allow_duplicates: false + ignore_failure: true + - convert: + field: json.data.system + target_field: sentinel_one.activity.data.system + type: boolean + ignore_failure: true + - rename: + field: json.data.uuid + target_field: sentinel_one.activity.data.uuid + ignore_missing: true + - rename: + field: json.data.group + target_field: sentinel_one.activity.data.group + ignore_missing: true + - rename: + field: json.data.optionalGroups + target_field: sentinel_one.activity.data.optionals_groups + ignore_missing: true + - date: + field: json.data.createdAt + target_field: sentinel_one.activity.data.created_at + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.data.status + target_field: sentinel_one.activity.data.status + ignore_missing: true + - rename: + field: json.data.fileContentHash + target_field: file.hash.sha1 + ignore_missing: true + - append: + field: related.hash + value: '{{{file.hash.sha1}}}' + if: ctx.file?.hash?.sha1 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.data.osFamily + target_field: host.os.family + ignore_missing: true + - rename: + field: json.data.confidenceLevel + target_field: sentinel_one.activity.data.confidence.level + ignore_missing: true + - rename: + field: json.data.escapedMaliciousProcessArguments + target_field: sentinel_one.activity.data.malicious.process.arguments + ignore_missing: true + - rename: + field: json.data.fileDisplayName + target_field: file.name + ignore_missing: true + - rename: + field: json.data.filePath + target_field: file.path + ignore_missing: true + - rename: + field: json.data.threatClassification + target_field: sentinel_one.activity.data.threat.classification.name + ignore_missing: true + - rename: + field: json.data.threatClassificationSource + target_field: sentinel_one.activity.data.threat.classification.source + ignore_missing: true + - rename: + field: json.data.globalStatus + target_field: sentinel_one.activity.data.global.status + ignore_missing: true + - rename: + field: json.data.newStatus + target_field: sentinel_one.activity.data.new.status + ignore_missing: true + - rename: + field: json.data.originalStatus + target_field: sentinel_one.activity.data.original.status + ignore_missing: true + - rename: + field: json.data.downloadUrl + target_field: sentinel_one.activity.data.downloaded.url + ignore_missing: true + - rename: + field: json.data.description + target_field: sentinel_one.activity.data.description + ignore_missing: true + - rename: + field: json.data.policy + target_field: sentinel_one.activity.data.policy + ignore_missing: true + - convert: + field: json.data.policyName + target_field: sentinel_one.activity.data.policy_name + type: string + ignore_failure: true + - rename: + field: json.data.changedKeys + target_field: sentinel_one.activity.data.changed_keys + ignore_missing: true + - rename: + field: json.data.newConfidenceLevel + target_field: sentinel_one.activity.data.new.confidence_level + ignore_missing: true + - rename: + field: json.data.oldConfidenceLevel + target_field: sentinel_one.activity.data.old.confidence_level + ignore_missing: true + - rename: + field: json.data.attr + target_field: sentinel_one.activity.data.attr + ignore_missing: true + - remove: + field: + - json.data.accountId + - json.data.newValue + - json.data.ipAddress + - json.data.externalIp + - json.data.system + - json.data.policyName + ignore_missing: true + - rename: + field: json.data + target_field: sentinel_one.activity.data.flattened + ignore_missing: true + - remove: + field: json + ignore_missing: true + - remove: + field: event.original + if: ctx.tags == null || !(ctx.tags.contains('preserve_original_event')) + ignore_failure: true + ignore_missing: true + - script: + description: Drops null/empty values recursively. + lang: painless + source: + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); +on_failure: +- set: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/sentinel_one/0.1.0/data_stream/activity/fields/agent.yml b/packages/sentinel_one/0.1.0/data_stream/activity/fields/agent.yml new file mode 100755 index 0000000000..6e1bac042b --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/activity/fields/agent.yml @@ -0,0 +1,186 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/sentinel_one/0.1.0/data_stream/activity/fields/base-fields.yml b/packages/sentinel_one/0.1.0/data_stream/activity/fields/base-fields.yml new file mode 100755 index 0000000000..281aed0955 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/activity/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: event.dataset + type: constant_keyword + description: Event dataset + value: sentinel_one.activity +- name: event.module + type: constant_keyword + description: Event module + value: sentinel_one +- name: '@timestamp' + type: date + description: Event timestamp. diff --git a/packages/sentinel_one/0.1.0/data_stream/activity/fields/ecs.yml b/packages/sentinel_one/0.1.0/data_stream/activity/fields/ecs.yml new file mode 100755 index 0000000000..7fc58ed847 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/activity/fields/ecs.yml @@ -0,0 +1,118 @@ +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + event.created contains the date/time when the event was first read by an agent, or by your pipeline. + This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. + In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. + In case the two timestamps are identical, @timestamp should be used. + name: event.created + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: SHA1 hash. + name: file.hash.sha1 + type: keyword +- description: Name of the file including the extension, without the directory. + name: file.name + type: keyword +- description: Full path to the file, including the file name. It should include the drive letter, when appropriate. + multi_fields: + - name: text + type: match_only_text + name: file.path + type: keyword +- description: City name. + name: host.geo.city_name + type: keyword +- description: Name of the continent. + name: host.geo.continent_name + type: keyword +- description: Country ISO code. + name: host.geo.country_iso_code + type: keyword +- description: Country name. + name: host.geo.country_name + type: keyword +- description: Longitude and latitude. + name: host.geo.location + type: geo_point +- description: Region ISO code. + name: host.geo.region_iso_code + type: keyword +- description: Region name. + name: host.geo.region_name + type: keyword +- description: |- + For log events the message field contains the log message, optimized for viewing in a log viewer. + For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. + If multiple messages exist, they can be combined into one message. + name: message + type: match_only_text +- description: Observer version. + name: observer.version + type: keyword +- description: OS family (such as redhat, debian, freebsd, windows). + name: os.family + type: keyword +- description: SHA1 hash. + name: process.hash.sha1 + type: keyword +- description: All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). + name: related.hash + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: User email address. + name: user.email + type: keyword +- description: User's full name, if available. + multi_fields: + - name: text + type: match_only_text + name: user.full_name + type: keyword +- description: Unique identifier for the group on the system/platform. + name: user.group.id + type: keyword +- description: Name of the group. + name: user.group.name + type: keyword +- description: Unique identifier of the user. + name: user.id + type: keyword diff --git a/packages/sentinel_one/0.1.0/data_stream/activity/fields/fields.yml b/packages/sentinel_one/0.1.0/data_stream/activity/fields/fields.yml new file mode 100755 index 0000000000..d1a883dc12 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/activity/fields/fields.yml @@ -0,0 +1,222 @@ +- name: sentinel_one.activity + type: group + fields: + - name: account + type: group + fields: + - name: id + type: keyword + description: Related account ID (if applicable). + - name: name + type: keyword + description: Related account name (if applicable). + - name: agent + type: group + fields: + - name: id + type: keyword + description: Related agent (if applicable). + - name: comments + type: keyword + description: Comments. + - name: data + type: group + fields: + - name: account + type: group + fields: + - name: id + type: keyword + description: Related account ID (if applicable). + - name: name + type: keyword + description: Related account name (if applicable). + - name: attr + type: keyword + description: Attribute. + - name: changed_keys + type: keyword + description: Changed keys. + - name: confidence + type: group + fields: + - name: level + type: keyword + description: Confidence level. + - name: created_at + type: date + description: Created time. + - name: description + type: keyword + description: Description. + - name: downloaded + type: group + fields: + - name: url + type: keyword + description: Downloaded URL. + - name: flattened + type: flattened + description: Extra activity specific data. + - name: fullscope + type: group + fields: + - name: details + type: keyword + description: fullscope details. + - name: details_path + type: keyword + description: fullscope details path. + - name: global + type: group + fields: + - name: status + type: keyword + description: Global status. + - name: group + type: keyword + description: Related group (if applicable). + - name: group_name + type: keyword + description: Related group name (if applicable). + - name: malicious + type: group + fields: + - name: process + type: group + fields: + - name: arguments + type: keyword + description: Malicious process arguments. + - name: new + type: group + fields: + - name: confidence_level + type: keyword + description: New confidence level. + - name: status + type: keyword + description: Status. + - name: value + type: boolean + description: Value. + - name: old + type: group + fields: + - name: confidence_level + type: keyword + description: Old confidence level. + - name: optionals_groups + type: keyword + description: Optionals groups. + - name: original + type: group + fields: + - name: status + type: keyword + description: Original status. + - name: policy + type: flattened + description: Policy. + - name: policy_name + type: keyword + description: Policy name. + - name: reason + type: keyword + description: Reason. + - name: role + type: keyword + description: Role. + - name: role_name + type: keyword + description: Role name. + - name: scope + type: group + fields: + - name: level + type: keyword + description: Scope Level. + - name: name + type: keyword + description: Scope name. + - name: scope_level + type: group + fields: + - name: name + type: keyword + description: Scope level name. + - name: site + type: group + fields: + - name: name + type: keyword + description: Related site name (if applicable). + - name: source + type: keyword + description: Source. + - name: status + type: keyword + description: Status. + - name: system + type: boolean + description: System. + - name: threat + type: group + fields: + - name: classification + type: group + fields: + - name: name + type: keyword + description: Threat classification name. + - name: source + type: keyword + description: Threat classification source. + - name: user + type: group + fields: + - name: name + type: keyword + description: User name. + - name: scope + type: keyword + description: User scope. + - name: uuid + type: keyword + description: UUID. + - name: description + type: group + fields: + - name: primary + type: keyword + description: Primary description. + - name: secondary + type: keyword + description: Secondary description. + - name: id + type: keyword + description: Activity ID. + - name: site + type: group + fields: + - name: id + type: keyword + description: Related site ID (if applicable). + - name: name + type: keyword + description: Related site name (if applicable). + - name: threat + type: group + fields: + - name: id + type: keyword + description: Related threat ID (if applicable). + - name: type + type: long + description: Activity type. + - name: updated_at + type: date + description: Activity last updated time (UTC). +- name: log.source.address + type: keyword + description: Source address from which the log event was read / sent from. diff --git a/packages/sentinel_one/0.1.0/data_stream/activity/manifest.yml b/packages/sentinel_one/0.1.0/data_stream/activity/manifest.yml new file mode 100755 index 0000000000..c3ede624da --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/activity/manifest.yml @@ -0,0 +1,50 @@ +title: Collect Activity logs from SentinelOne +type: logs +streams: + - input: httpjson + title: Activity logs + description: Collect activity logs from SentinelOne. + template_path: httpjson.yml.hbs + vars: + - name: initial_interval + type: text + title: Initial Interval + description: How far back to pull the activities from SentinelOne. + multi: false + required: true + show_user: true + default: 24h + - name: interval + type: text + title: Interval + description: Duration between requests to the SentinelOne API. + default: 1m + multi: false + required: true + show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - sentinel_one-activity + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/sentinel_one/0.1.0/data_stream/activity/sample_event.json b/packages/sentinel_one/0.1.0/data_stream/activity/sample_event.json new file mode 100755 index 0000000000..5ce2457ed7 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/activity/sample_event.json @@ -0,0 +1,82 @@ +{ + "@timestamp": "2022-04-05T16:01:56.995Z", + "agent": { + "ephemeral_id": "f2ec0399-ee92-4b20-8a43-508d761cfc8b", + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.1.3" + }, + "data_stream": { + "dataset": "sentinel_one.activity", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "snapshot": false, + "version": "8.1.3" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "malware" + ], + "created": "2022-05-09T12:53:01.467Z", + "dataset": "sentinel_one.activity", + "ingested": "2022-05-09T12:53:02Z", + "kind": "event", + "original": "{\"accountId\":\"1234567890123456789\",\"accountName\":\"Default\",\"activityType\":1234,\"agentId\":null,\"agentUpdatedVersion\":null,\"comments\":null,\"createdAt\":\"2022-04-05T16:01:56.995120Z\",\"data\":{\"accountId\":1234567890123456800,\"accountName\":\"Default\",\"fullScopeDetails\":\"Account Default\",\"fullScopeDetailsPath\":\"test/path\",\"groupName\":null,\"scopeLevel\":\"Account\",\"scopeName\":\"Default\",\"siteName\":null,\"username\":\"test user\"},\"description\":null,\"groupId\":null,\"groupName\":null,\"hash\":null,\"id\":\"1234567890123456789\",\"osFamily\":null,\"primaryDescription\":\"created Default account.\",\"secondaryDescription\":null,\"siteId\":null,\"siteName\":null,\"threatId\":null,\"updatedAt\":\"2022-04-05T16:01:56.992136Z\",\"userId\":\"1234567890123456789\"}", + "type": [ + "info" + ] + }, + "input": { + "type": "httpjson" + }, + "related": { + "user": [ + "test user" + ] + }, + "sentinel_one": { + "activity": { + "account": { + "id": "1234567890123456789", + "name": "Default" + }, + "data": { + "account": { + "id": "1234567890123456800", + "name": "Default" + }, + "fullscope": { + "details": "Account Default", + "details_path": "test/path" + }, + "scope": { + "level": "Account", + "name": "Default" + } + }, + "description": { + "primary": "created Default account." + }, + "id": "1234567890123456789", + "type": 1234, + "updated_at": "2022-04-05T16:01:56.992Z" + } + }, + "tags": [ + "preserve_original_event", + "forwarded", + "sentinel_one-activity" + ], + "user": { + "full_name": "test user", + "id": "1234567890123456789" + } +} \ No newline at end of file diff --git a/packages/sentinel_one/0.1.0/data_stream/agent/agent/stream/httpjson.yml.hbs b/packages/sentinel_one/0.1.0/data_stream/agent/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..6d48f7a428 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/agent/agent/stream/httpjson.yml.hbs @@ -0,0 +1,51 @@ +config_version: 2 +interval: {{interval}} +{{#if proxy_url }} +request.proxy_url: {{proxy_url}} +{{/if}} +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} +request.method: GET +request.url: {{url}}/web/api/v2.1/agents +request.transforms: + - set: + target: header.Authorization + value: 'ApiToken {{api_token}}' + - set: + target: url.params.limit + value: '100' + - set: + target: url.params.sortBy + value: 'updatedAt' + - set: + target: url.params.sortOrder + value: 'asc' + - set: + target: url.params.updatedAt__gte + value: '[[formatDate (parseDate .cursor.last_update_at)]]' + default: '[[formatDate (now (parseDuration "-{{initial_interval}}"))]]' +response.pagination: + - set: + target: url.params.cursor + value: '[[if (ne .last_response.body.pagination.nextCursor nil)]][[.last_response.body.pagination.nextCursor]][[else]][[.last_response.terminate_pagination]][[end]]' + fail_on_template_error: true +cursor: + last_update_at: + value: '[[.last_event.updatedAt]]' +response.split: + target: body.data +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/sentinel_one/0.1.0/data_stream/agent/elasticsearch/ingest_pipeline/default.yml b/packages/sentinel_one/0.1.0/data_stream/agent/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..911dcb4776 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/agent/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,610 @@ +--- +description: Pipeline for processing agent logs. +processors: + - set: + field: ecs.version + value: '8.2.0' + - set: + field: event.kind + value: event + - set: + field: event.category + value: [host] + - set: + field: event.type + value: [info] + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - rename: + field: json.accountId + target_field: sentinel_one.agent.account.id + ignore_missing: true + - rename: + field: json.accountName + target_field: sentinel_one.agent.account.name + ignore_missing: true + - rename: + field: json.activeDirectory.computerDistinguishedName + target_field: sentinel_one.agent.active_directory.computer.name + ignore_missing: true + - rename: + field: json.activeDirectory.computerMemberOf + target_field: sentinel_one.agent.active_directory.computer.member_of + ignore_missing: true + - rename: + field: json.activeDirectory.lastUserDistinguishedName + target_field: sentinel_one.agent.active_directory.last_user.distinguished_name + ignore_missing: true + - rename: + field: json.activeDirectory.lastUserMemberOf + target_field: sentinel_one.agent.active_directory.last_user.member_of + ignore_missing: true + - rename: + field: json.activeDirectory.userPrincipalName + target_field: sentinel_one.agent.active_directory.user.principal_name + ignore_missing: true + - rename: + field: json.activeDirectory.mail + target_field: sentinel_one.agent.active_directory.mail + ignore_missing: true + - convert: + field: json.activeThreats + target_field: sentinel_one.agent.active_threats_count + type: long + ignore_failure: true + - rename: + field: json.agentVersion + target_field: observer.version + ignore_missing: true + - convert: + field: json.allowRemoteShell + target_field: sentinel_one.agent.allow_remote_shell + type: boolean + ignore_failure: true + - rename: + field: json.appsVulnerabilityStatus + target_field: sentinel_one.agent.apps_vulnerability_status + ignore_missing: true + - rename: + field: json.cloudProviders + target_field: sentinel_one.agent.cloud_provider + ignore_missing: true + - rename: + field: json.computerName + target_field: host.name + ignore_missing: true + - append: + field: related.hosts + value: '{{{host.name}}}' + if: ctx.host?.name != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.consoleMigrationStatus + target_field: sentinel_one.agent.console_migration_status + ignore_missing: true + - convert: + field: json.coreCount + target_field: sentinel_one.agent.core.count + type: long + ignore_failure: true + - convert: + field: json.cpuCount + target_field: sentinel_one.agent.cpu.count + type: long + ignore_failure: true + - rename: + field: json.cpuId + target_field: sentinel_one.agent.cpu.id + ignore_missing: true + - date: + field: json.createdAt + target_field: sentinel_one.agent.created_at + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.detectionState + target_field: sentinel_one.agent.detection_state + ignore_missing: true + - rename: + field: json.domain + target_field: host.domain + ignore_missing: true + - append: + field: related.hosts + value: '{{{host.domain}}}' + if: ctx.host?.domain != null + allow_duplicates: false + ignore_failure: true + - convert: + field: json.encryptedApplications + target_field: sentinel_one.agent.encrypted_application + type: boolean + ignore_failure: true + - rename: + field: json.externalId + target_field: sentinel_one.agent.external.id + ignore_missing: true + - geoip: + field: json.externalIp + target_field: host.geo + ignore_missing: true + if: ctx.json?.externalIp != null && ctx.json?.externalIp != '' + - convert: + field: json.externalIp + target_field: host.ip + type: ip + ignore_failure: true + - append: + field: related.ip + value: '{{{host.ip}}}' + if: ctx.host?.ip != null + allow_duplicates: false + ignore_failure: true + - convert: + field: json.firewallEnabled + target_field: sentinel_one.agent.firewall_enabled + type: boolean + ignore_failure: true + - date: + field: json.firstFullModeTime + target_field: sentinel_one.agent.first_full_mode_time + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.groupId + target_field: group.id + ignore_missing: true + - rename: + field: json.groupIp + target_field: sentinel_one.agent.group.ip + ignore_missing: true + - rename: + field: json.groupName + target_field: group.name + ignore_missing: true + - date: + field: json.groupUpdatedAt + target_field: sentinel_one.agent.group.updated_at + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.id + target_field: host.id + ignore_missing: true + - convert: + field: json.infected + target_field: sentinel_one.agent.infected + type: boolean + ignore_failure: true + - convert: + field: json.inRemoteShellSession + target_field: sentinel_one.agent.in_remote_shell_session + type: boolean + ignore_failure: true + - rename: + field: json.installerType + target_field: sentinel_one.agent.installer_type + ignore_missing: true + - convert: + field: json.isActive + target_field: sentinel_one.agent.is_active + type: boolean + ignore_failure: true + - convert: + field: json.isDecommissioned + target_field: sentinel_one.agent.is_decommissioned + type: boolean + ignore_failure: true + - convert: + field: json.isPendingUninstall + target_field: sentinel_one.agent.is_pending_uninstall + type: boolean + ignore_failure: true + - convert: + field: json.isUninstalled + target_field: sentinel_one.agent.is_uninstalled + type: boolean + ignore_failure: true + - convert: + field: json.isUpToDate + target_field: sentinel_one.agent.is_up_to_date + type: boolean + ignore_failure: true + - date: + field: json.lastActiveDate + target_field: sentinel_one.agent.last_active_date + formats: + - ISO8601 + ignore_failure: true + - convert: + field: json.lastIpToMgmt + target_field: sentinel_one.agent.last_ip_to_mgmt + type: ip + ignore_failure: true + - append: + field: related.ip + value: '{{{sentinel_one.agent.last_ip_to_mgmt}}}' + if: ctx.sentinel_one?.agent?.last_ip_to_mgmt != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.lastLoggedInUserName + target_field: sentinel_one.agent.last_logged_in_user_name + ignore_missing: true + - append: + field: related.user + value: '{{{sentinel_one.agent.last_logged_in_user_name}}}' + if: ctx.sentinel_one?.agent?.last_logged_in_user_name != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.licenseKey + target_field: sentinel_one.agent.license.key + ignore_missing: true + - convert: + field: json.locationEnabled + target_field: sentinel_one.agent.location.enabled + type: boolean + ignore_failure: true + - rename: + field: json.locations + target_field: sentinel_one.agent.locations + ignore_missing: true + - rename: + field: json.locationType + target_field: sentinel_one.agent.location.type + ignore_missing: true + - rename: + field: json.machineType + target_field: sentinel_one.agent.machine.type + ignore_missing: true + - rename: + field: json.mitigationMode + target_field: sentinel_one.agent.mitigation_mode + ignore_missing: true + - rename: + field: json.mitigationModeSuspicious + target_field: sentinel_one.agent.mitigation_mode_suspicious + ignore_missing: true + - rename: + field: json.modelName + target_field: sentinel_one.agent.model_name + ignore_missing: true + - foreach: + field: json.networkInterfaces + processor: + convert: + field: _ingest._value.gatewayIp + target_field: _ingest._value.gateway.ip + type: ip + ignore_failure: true + ignore_failure: true + if: ctx.json?.networkInterfaces != null && ctx.json?.networkInterfaces instanceof List + - foreach: + field: json.networkInterfaces + processor: + append: + field: related.ip + value: "{{{_ingest._value.gatewayIp}}}" + allow_duplicates: false + ignore_failure: true + ignore_failure: true + if: ctx.json?.networkInterfaces != null && ctx.json?.networkInterfaces instanceof List + - foreach: + field: json.networkInterfaces + processor: + gsub: + field: _ingest._value.gatewayMacAddress + pattern: '[-:.]' + replacement: '-' + ignore_missing: true + ignore_failure: true + if: ctx.json?.networkInterfaces != null && ctx.json?.networkInterfaces instanceof List + - foreach: + field: json.networkInterfaces + processor: + uppercase: + field: _ingest._value.gatewayMacAddress + target_field: _ingest._value.gateway.mac + ignore_missing: true + ignore_failure: true + if: ctx.json?.networkInterfaces != null && ctx.json?.networkInterfaces instanceof List + - foreach: + field: json.networkInterfaces + processor: + convert: + field: _ingest._value.inet + type: ip + ignore_failure: true + ignore_failure: true + if: ctx.json?.networkInterfaces != null && ctx.json?.networkInterfaces instanceof List + - foreach: + field: json.networkInterfaces + processor: + foreach: + field: _ingest._value.inet + processor: + append: + field: related.ip + value: '{{{_ingest._value}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + ignore_failure: true + if: ctx.json?.networkInterfaces != null && ctx.json?.networkInterfaces instanceof List + - foreach: + field: json.networkInterfaces + processor: + convert: + field: _ingest._value.inet6 + type: ip + ignore_failure: true + ignore_failure: true + if: ctx.json?.networkInterfaces != null && ctx.json?.networkInterfaces instanceof List + - foreach: + field: json.networkInterfaces + processor: + foreach: + field: _ingest._value.inet6 + processor: + append: + field: related.ip + value: '{{{_ingest._value}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + ignore_failure: true + if: ctx.json?.networkInterfaces != null && ctx.json?.networkInterfaces instanceof List + - foreach: + field: json.networkInterfaces + processor: + append: + field: host.mac + value: "{{{_ingest._value.physical}}}" + ignore_failure: true + ignore_failure: true + if: ctx.json?.networkInterfaces != null && ctx.json?.networkInterfaces instanceof List + - foreach: + field: json.networkInterfaces + processor: + remove: + field: + - _ingest._value.physical + - _ingest._value.gatewayMacAddress + - _ingest._value.gatewayIp + ignore_missing: true + ignore_failure: true + if: ctx.json?.networkInterfaces != null && ctx.json?.networkInterfaces instanceof List + - gsub: + field: host.mac + pattern: '[-:.]' + replacement: '-' + ignore_missing: true + - uppercase: + field: host.mac + ignore_missing: true + - rename: + field: json.networkInterfaces + target_field: sentinel_one.agent.network_interfaces + ignore_missing: true + - convert: + field: json.networkQuarantineEnabled + target_field: sentinel_one.agent.network_quarantine_enabled + type: boolean + ignore_failure: true + - rename: + field: json.networkStatus + target_field: sentinel_one.agent.network_status + ignore_missing: true + - rename: + field: json.operationalState + target_field: sentinel_one.agent.operational_state + ignore_missing: true + - rename: + field: json.operationalStateExpiration + target_field: sentinel_one.agent.operational_state_expiration + ignore_missing: true + - rename: + field: json.osArch + target_field: sentinel_one.agent.os.arch + ignore_missing: true + - rename: + field: json.osName + target_field: host.os.name + ignore_missing: true + - rename: + field: json.osRevision + target_field: host.os.version + ignore_missing: true + - date: + field: json.osStartTime + target_field: sentinel_one.agent.os.start_time + formats: + - ISO8601 + ignore_failure: true + - lowercase: + field: json.osType + target_field: host.os.type + ignore_failure: true + - rename: + field: json.osUsername + target_field: user.name + ignore_missing: true + - append: + field: related.user + value: '{{{user.name}}}' + if: ctx.user?.name != null + allow_duplicates: false + ignore_failure: true + - date: + field: json.policyUpdatedAt + target_field: sentinel_one.agent.policy.updated_at + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.rangerStatus + target_field: sentinel_one.agent.ranger.status + ignore_missing: true + - rename: + field: json.rangerVersion + target_field: sentinel_one.agent.ranger.version + ignore_missing: true + - date: + field: json.registeredAt + target_field: sentinel_one.agent.registered_at + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.remoteProfilingState + target_field: sentinel_one.agent.remote_profiling_state + ignore_missing: true + - rename: + field: json.remoteProfilingStateExpiration + target_field: sentinel_one.agent.remote_profiling_state_expiration + ignore_missing: true + - date: + field: json.scanAbortedAt + target_field: sentinel_one.agent.scan.aborted_at + formats: + - ISO8601 + ignore_failure: true + - date: + field: json.scanFinishedAt + target_field: sentinel_one.agent.scan.finished_at + formats: + - ISO8601 + ignore_failure: true + - date: + field: json.scanStartedAt + target_field: sentinel_one.agent.scan.started_at + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.scanStatus + target_field: sentinel_one.agent.scan.status + ignore_missing: true + - rename: + field: json.siteId + target_field: sentinel_one.agent.site.id + ignore_missing: true + - rename: + field: json.siteName + target_field: sentinel_one.agent.site.name + ignore_missing: true + - rename: + field: json.storageName + target_field: sentinel_one.agent.storage.name + ignore_missing: true + - rename: + field: json.storageType + target_field: sentinel_one.agent.storage.type + ignore_missing: true + - convert: + field: json.threatRebootRequired + target_field: sentinel_one.agent.threat_reboot_required + type: boolean + ignore_failure: true + - convert: + field: json.totalMemory + target_field: sentinel_one.agent.total_memory + type: long + ignore_failure: true + - date: + field: json.updatedAt + target_field: '@timestamp' + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.userActionsNeeded + target_field: sentinel_one.agent.user_action_needed + ignore_missing: true + - rename: + field: json.uuid + target_field: sentinel_one.agent.uuid + ignore_missing: true + - rename: + field: json.tags.sentinelone + target_field: sentinel_one.agent.tags + ignore_missing: true + - foreach: + field: sentinel_one.agent.tags + processor: + date: + field: _ingest._value.assignedAt + target_field: _ingest._value.assigned_at + formats: + - ISO8601 + ignore_failure: true + ignore_failure: true + if: ctx.sentinel_one?.agent?.tags != null && ctx.sentinel_one?.agent?.tags instanceof List + - foreach: + field: sentinel_one.agent.tags + processor: + rename: + field: _ingest._value.assignedBy + target_field: _ingest._value.assigned_by + ignore_missing: true + ignore_failure: true + if: ctx.sentinel_one?.agent?.tags != null && ctx.sentinel_one?.agent?.tags instanceof List + - foreach: + field: sentinel_one.agent.tags + processor: + rename: + field: _ingest._value.assignedById + target_field: _ingest._value.assigned_by_id + ignore_missing: true + ignore_failure: true + if: ctx.sentinel_one?.agent?.tags != null && ctx.sentinel_one?.agent?.tags instanceof List + - foreach: + field: sentinel_one.agent.tags + processor: + remove: + field: + - _ingest._value.assignedAt + ignore_missing: true + ignore_failure: true + if: ctx.sentinel_one?.agent?.tags != null && ctx.sentinel_one?.agent?.tags instanceof List + - remove: + field: event.original + if: ctx.tags == null || !(ctx.tags.contains('preserve_original_event')) + ignore_failure: true + ignore_missing: true + - remove: + field: + - json + ignore_missing: true + - script: + description: Drops null/empty values recursively. + lang: painless + source: | + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); +on_failure: + - set: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/sentinel_one/0.1.0/data_stream/agent/fields/agent.yml b/packages/sentinel_one/0.1.0/data_stream/agent/fields/agent.yml new file mode 100755 index 0000000000..6e1bac042b --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/agent/fields/agent.yml @@ -0,0 +1,186 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/sentinel_one/0.1.0/data_stream/agent/fields/base-fields.yml b/packages/sentinel_one/0.1.0/data_stream/agent/fields/base-fields.yml new file mode 100755 index 0000000000..2efd12d530 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/agent/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: event.module + type: constant_keyword + description: Event module + value: sentinel_one +- name: event.dataset + type: constant_keyword + description: Event dataset + value: sentinel_one.agent +- name: '@timestamp' + type: date + description: Event timestamp. diff --git a/packages/sentinel_one/0.1.0/data_stream/agent/fields/ecs.yml b/packages/sentinel_one/0.1.0/data_stream/agent/fields/ecs.yml new file mode 100755 index 0000000000..948296bc66 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/agent/fields/ecs.yml @@ -0,0 +1,91 @@ +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + event.created contains the date/time when the event was first read by an agent, or by your pipeline. + This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. + In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. + In case the two timestamps are identical, @timestamp should be used. + name: event.created + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: Unique identifier for the group on the system/platform. + name: group.id + type: keyword +- description: Name of the group. + name: group.name + type: keyword +- description: City name. + name: host.geo.city_name + type: keyword +- description: Name of the continent. + name: host.geo.continent_name + type: keyword +- description: Country ISO code. + name: host.geo.country_iso_code + type: keyword +- description: Country name. + name: host.geo.country_name + type: keyword +- description: Longitude and latitude. + name: host.geo.location + type: geo_point +- description: Region ISO code. + name: host.geo.region_iso_code + type: keyword +- description: Region name. + name: host.geo.region_name + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + One of these following values should be used (lowercase): linux, macos, unix, windows. + If the OS you're dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. + name: host.os.type + type: keyword +- description: Observer version. + name: observer.version + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword diff --git a/packages/sentinel_one/0.1.0/data_stream/agent/fields/fields.yml b/packages/sentinel_one/0.1.0/data_stream/agent/fields/fields.yml new file mode 100755 index 0000000000..27de0f644d --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/agent/fields/fields.yml @@ -0,0 +1,314 @@ +- name: sentinel_one.agent + type: group + fields: + - name: account + type: group + fields: + - name: id + type: keyword + description: A reference to the containing account. + - name: name + type: keyword + description: Name of the containing account. + - name: active_directory + type: group + fields: + - name: computer + type: group + fields: + - name: member_of + type: keyword + description: Computer member of. + - name: name + type: keyword + description: Computer distinguished name. + - name: last_user + type: group + fields: + - name: distinguished_name + type: keyword + description: Last user distinguished name. + - name: member_of + type: keyword + description: Last user member of. + - name: mail + type: keyword + description: Mail. + - name: user + type: group + fields: + - name: principal_name + type: keyword + description: User principal name. + - name: active_threats_count + type: long + description: Current number of active threats. + - name: allow_remote_shell + type: boolean + description: Agent is capable and policy enabled for remote shell. + - name: apps_vulnerability_status + type: keyword + description: Apps vulnerability status. + - name: cloud_provider + type: flattened + description: Cloud providers for this agent. + - name: console_migration_status + type: keyword + description: What step the agent is at in the process of migrating to another console, if any. + - name: core + type: group + fields: + - name: count + type: long + description: CPU cores. + - name: cpu + type: group + fields: + - name: count + type: long + description: Number of CPUs. + - name: id + type: keyword + description: CPU model. + - name: created_at + type: date + description: Created at. + - name: detection_state + type: keyword + description: Detection State. + - name: encrypted_application + type: boolean + description: Disk encryption status. + - name: external + type: group + fields: + - name: id + type: keyword + description: External ID set by customer. + - name: firewall_enabled + type: boolean + description: Firewall enabled. + - name: first_full_mode_time + type: date + description: Date of the first time the Agent moved to full or slim detection modes. + - name: group + type: group + fields: + - name: ip + type: keyword + description: Group subnet address. + - name: updated_at + type: date + description: Group updated at. + - name: in_remote_shell_session + type: boolean + description: Is the Agent in a remote shell session. + - name: infected + type: boolean + description: Indicates if the Agent has active threats. + - name: installer_type + type: keyword + description: Installer package type (file extension). + - name: is_active + type: boolean + description: Indicates if the agent was recently active. + - name: is_decommissioned + type: boolean + description: Is Agent decommissioned. + - name: is_pending_uninstall + type: boolean + description: Agent with a pending uninstall request. + - name: is_uninstalled + type: boolean + description: Indicates if Agent was removed from the device. + - name: is_up_to_date + type: boolean + description: Indicates if the agent version is up to date. + - name: last_active_date + type: date + description: Last active date. + - name: last_ip_to_mgmt + type: ip + description: The last IP used to connect to the Management console. + - name: last_logged_in_user_name + type: keyword + description: Last logged in user name. + - name: license + type: group + fields: + - name: key + type: keyword + description: License key. + - name: location + type: group + fields: + - name: type + type: keyword + description: Reported location type. + - name: enabled + type: boolean + description: Location enabled. + - name: locations + type: group + description: A list of locations reported by the Agent. + fields: + - name: id + type: keyword + description: Location ID. + - name: name + type: keyword + description: Location name. + - name: scope + type: keyword + description: Location scope. + - name: machine + type: group + fields: + - name: type + type: keyword + description: Machine type. + - name: mitigation_mode + type: keyword + description: Agent mitigation mode policy. + - name: mitigation_mode_suspicious + type: keyword + description: Mitigation mode policy for suspicious activity. + - name: model_name + type: keyword + description: Device model. + - name: network_interfaces + type: group + description: Device's network interfaces. + fields: + - name: gateway + type: group + fields: + - name: ip + type: ip + description: The default gateway ip. + - name: mac + type: keyword + description: The default gateway mac address. + - name: id + type: keyword + description: Id. + - name: inet + type: ip + description: IPv4 addresses. + - name: inet6 + type: ip + description: IPv6 addresses. + - name: name + type: keyword + description: Name. + - name: network_quarantine_enabled + type: boolean + description: Network quarantine enabled. + - name: network_status + type: keyword + description: Agent's network connectivity status. + - name: operational_state + type: keyword + description: Agent operational state. + - name: operational_state_expiration + type: keyword + description: Agent operational state expiration. + - name: os + type: group + fields: + - name: arch + type: keyword + description: OS architecture. + - name: start_time + type: date + description: Last boot time. + - name: policy + type: group + fields: + - name: updated_at + type: date + description: Policy updated at. + - name: ranger + type: group + fields: + - name: status + type: keyword + description: Is Agent disabled as a Ranger. + - name: version + type: keyword + description: The version of Ranger. + - name: registered_at + type: date + description: Time of first registration to management console (similar to createdAt). + - name: remote_profiling_state + type: keyword + description: Agent remote profiling state. + - name: remote_profiling_state_expiration + type: keyword + description: Agent remote profiling state expiration in seconds. + - name: scan + type: group + fields: + - name: aborted_at + type: date + description: Abort time of last scan (if applicable). + - name: finished_at + type: date + description: Finish time of last scan (if applicable). + - name: started_at + type: date + description: Start time of last scan. + - name: status + type: keyword + description: Last scan status. + - name: site + type: group + fields: + - name: id + type: keyword + description: A reference to the containing site. + - name: name + type: keyword + description: Name of the containing site. + - name: storage + type: group + fields: + - name: name + type: keyword + description: Storage name. + - name: type + type: keyword + description: Storage type. + - name: tags + type: group + fields: + - name: assigned_at + type: date + description: When tag assigned to the agent. + - name: assigned_by + type: keyword + description: full user name who assigned the tag to the agent. + - name: assigned_by_id + type: keyword + description: User ID who assigned the tag to the agent. + - name: id + type: keyword + description: Tag ID. + - name: key + type: keyword + description: Tag key. + - name: value + type: keyword + description: Tag value. + - name: threat_reboot_required + type: boolean + description: Flag representing if the Agent has at least one threat with at least one mitigation action that is pending reboot to succeed. + - name: total_memory + type: long + description: Memory size (MB). + - name: user_action_needed + type: keyword + description: A list of pending user actions. + - name: uuid + type: keyword + description: Agent's universally unique identifier. diff --git a/packages/sentinel_one/0.1.0/data_stream/agent/manifest.yml b/packages/sentinel_one/0.1.0/data_stream/agent/manifest.yml new file mode 100755 index 0000000000..9a9d0fa9e4 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/agent/manifest.yml @@ -0,0 +1,50 @@ +title: Collect Agent logs from SentinelOne +type: logs +streams: + - input: httpjson + title: Agent logs + description: Collect agent logs from SentinelOne. + template_path: httpjson.yml.hbs + vars: + - name: initial_interval + type: text + title: Initial Interval + description: How far back to pull the agents from SentinelOne. + multi: false + required: true + show_user: true + default: 24h + - name: interval + type: text + title: Interval + description: Duration between requests to the SentinelOne API. + default: 5m + multi: false + required: true + show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - sentinel_one-agent + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/sentinel_one/0.1.0/data_stream/agent/sample_event.json b/packages/sentinel_one/0.1.0/data_stream/agent/sample_event.json new file mode 100755 index 0000000000..4ec2ea0220 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/agent/sample_event.json @@ -0,0 +1,189 @@ +{ + "@timestamp": "2022-04-07T08:31:47.481Z", + "agent": { + "ephemeral_id": "4ae89055-8911-4591-a3f2-0213bdb1a131", + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.1.3" + }, + "data_stream": { + "dataset": "sentinel_one.agent", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "snapshot": false, + "version": "8.1.3" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "host" + ], + "created": "2022-05-09T12:53:53.924Z", + "dataset": "sentinel_one.agent", + "ingested": "2022-05-09T12:53:57Z", + "kind": "event", + "original": "{\"accountId\":\"12345123451234512345\",\"accountName\":\"Account Name\",\"activeDirectory\":{\"computerDistinguishedName\":null,\"computerMemberOf\":[],\"lastUserDistinguishedName\":null,\"lastUserMemberOf\":[]},\"activeThreats\":7,\"agentVersion\":\"12.x.x.x\",\"allowRemoteShell\":true,\"appsVulnerabilityStatus\":\"not_applicable\",\"cloudProviders\":{},\"computerName\":\"user-test\",\"consoleMigrationStatus\":\"N/A\",\"coreCount\":2,\"cpuCount\":2,\"cpuId\":\"CPU Name\",\"createdAt\":\"2022-03-18T09:12:00.519500Z\",\"detectionState\":null,\"domain\":\"WORKGROUP\",\"encryptedApplications\":false,\"externalId\":\"\",\"externalIp\":\"81.2.69.143\",\"firewallEnabled\":true,\"firstFullModeTime\":null,\"groupId\":\"1234567890123456789\",\"groupIp\":\"81.2.69.x\",\"groupName\":\"Default Group\",\"id\":\"13491234512345\",\"inRemoteShellSession\":false,\"infected\":true,\"installerType\":\".msi\",\"isActive\":true,\"isDecommissioned\":false,\"isPendingUninstall\":false,\"isUninstalled\":false,\"isUpToDate\":true,\"lastActiveDate\":\"2022-03-17T09:51:28.506000Z\",\"lastIpToMgmt\":\"81.2.69.145\",\"lastLoggedInUserName\":\"\",\"licenseKey\":\"\",\"locationEnabled\":true,\"locationType\":\"not_applicable\",\"locations\":null,\"machineType\":\"server\",\"mitigationMode\":\"detect\",\"mitigationModeSuspicious\":\"detect\",\"modelName\":\"Compute Engine\",\"networkInterfaces\":[{\"gatewayIp\":\"81.2.69.145\",\"gatewayMacAddress\":\"00-00-5E-00-53-00\",\"id\":\"1234567890123456789\",\"inet\":[\"81.2.69.144\"],\"inet6\":[\"2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6\"],\"name\":\"Ethernet\",\"physical\":\"00-00-5E-00-53-00\"}],\"networkQuarantineEnabled\":false,\"networkStatus\":\"connected\",\"operationalState\":\"na\",\"operationalStateExpiration\":null,\"osArch\":\"64 bit\",\"osName\":\"Linux Server\",\"osRevision\":\"1234\",\"osStartTime\":\"2022-04-06T08:27:14Z\",\"osType\":\"linux\",\"osUsername\":null,\"rangerStatus\":\"Enabled\",\"rangerVersion\":\"21.x.x.x\",\"registeredAt\":\"2022-04-06T08:26:45.515278Z\",\"remoteProfilingState\":\"disabled\",\"remoteProfilingStateExpiration\":null,\"scanAbortedAt\":null,\"scanFinishedAt\":\"2022-04-06T09:18:21.090855Z\",\"scanStartedAt\":\"2022-04-06T08:26:52.838047Z\",\"scanStatus\":\"finished\",\"siteId\":\"1234567890123456789\",\"siteName\":\"Default site\",\"storageName\":null,\"storageType\":null,\"tags\":{\"sentinelone\":[{\"assignedAt\":\"2018-02-27T04:49:26.257525Z\",\"assignedBy\":\"test-user\",\"assignedById\":\"123456789012345678\",\"id\":\"123456789012345678\",\"key\":\"key123\",\"value\":\"value123\"}]},\"threatRebootRequired\":false,\"totalMemory\":1234,\"updatedAt\":\"2022-04-07T08:31:47.481227Z\",\"userActionsNeeded\":[\"reboot_needed\"],\"uuid\":\"XXX35XXX8Xfb4aX0X1X8X12X343X8X30\"}", + "type": [ + "info" + ] + }, + "group": { + "id": "1234567890123456789", + "name": "Default Group" + }, + "host": { + "domain": "WORKGROUP", + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "id": "13491234512345", + "ip": "81.2.69.143", + "mac": [ + "00-00-5E-00-53-00" + ], + "name": "user-test", + "os": { + "name": "Linux Server", + "type": "linux", + "version": "1234" + } + }, + "input": { + "type": "httpjson" + }, + "observer": { + "version": "12.x.x.x" + }, + "related": { + "hosts": [ + "user-test", + "WORKGROUP" + ], + "ip": [ + "81.2.69.143", + "81.2.69.145", + "81.2.69.144", + "2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6" + ] + }, + "sentinel_one": { + "agent": { + "account": { + "id": "12345123451234512345", + "name": "Account Name" + }, + "active_threats_count": 7, + "allow_remote_shell": true, + "apps_vulnerability_status": "not_applicable", + "console_migration_status": "N/A", + "core": { + "count": 2 + }, + "cpu": { + "count": 2, + "id": "CPU Name" + }, + "created_at": "2022-03-18T09:12:00.519Z", + "encrypted_application": false, + "firewall_enabled": true, + "group": { + "ip": "81.2.69.x" + }, + "in_remote_shell_session": false, + "infected": true, + "installer_type": ".msi", + "is_active": true, + "is_decommissioned": false, + "is_pending_uninstall": false, + "is_uninstalled": false, + "is_up_to_date": true, + "last_active_date": "2022-03-17T09:51:28.506Z", + "last_ip_to_mgmt": "81.2.69.145", + "location": { + "enabled": true, + "type": "not_applicable" + }, + "machine": { + "type": "server" + }, + "mitigation_mode": "detect", + "mitigation_mode_suspicious": "detect", + "model_name": "Compute Engine", + "network_interfaces": [ + { + "gateway": { + "ip": "81.2.69.145", + "mac": "00-00-5E-00-53-00" + }, + "id": "1234567890123456789", + "inet": [ + "81.2.69.144" + ], + "inet6": [ + "2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6" + ], + "name": "Ethernet" + } + ], + "network_quarantine_enabled": false, + "network_status": "connected", + "operational_state": "na", + "os": { + "arch": "64 bit", + "start_time": "2022-04-06T08:27:14.000Z" + }, + "ranger": { + "status": "Enabled", + "version": "21.x.x.x" + }, + "registered_at": "2022-04-06T08:26:45.515Z", + "remote_profiling_state": "disabled", + "scan": { + "finished_at": "2022-04-06T09:18:21.090Z", + "started_at": "2022-04-06T08:26:52.838Z", + "status": "finished" + }, + "site": { + "id": "1234567890123456789", + "name": "Default site" + }, + "tags": [ + { + "assigned_at": "2018-02-27T04:49:26.257Z", + "assigned_by": "test-user", + "assigned_by_id": "123456789012345678", + "id": "123456789012345678", + "key": "key123", + "value": "value123" + } + ], + "threat_reboot_required": false, + "total_memory": 1234, + "user_action_needed": [ + "reboot_needed" + ], + "uuid": "XXX35XXX8Xfb4aX0X1X8X12X343X8X30" + } + }, + "tags": [ + "preserve_original_event", + "forwarded", + "sentinel_one-agent" + ] +} \ No newline at end of file diff --git a/packages/sentinel_one/0.1.0/data_stream/alert/agent/stream/httpjson.yml.hbs b/packages/sentinel_one/0.1.0/data_stream/alert/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..7b99acb278 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/alert/agent/stream/httpjson.yml.hbs @@ -0,0 +1,51 @@ +config_version: 2 +interval: {{interval}} +{{#if proxy_url }} +request.proxy_url: {{proxy_url}} +{{/if}} +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} +request.method: GET +request.url: {{url}}/web/api/v2.1/cloud-detection/alerts +request.transforms: + - set: + target: header.Authorization + value: 'ApiToken {{api_token}}' + - set: + target: url.params.limit + value: '100' + - set: + target: url.params.sortBy + value: 'alertInfoCreatedAt' + - set: + target: url.params.sortOrder + value: 'asc' + - set: + target: url.params.createdAt__gte + value: '[[formatDate (parseDate .cursor.last_create_at)]]' + default: '[[formatDate (now (parseDuration "-{{initial_interval}}"))]]' +response.pagination: + - set: + target: url.params.cursor + value: '[[if (ne .last_response.body.pagination.nextCursor nil)]][[.last_response.body.pagination.nextCursor]][[else]][[.last_response.terminate_pagination]][[end]]' + fail_on_template_error: true +cursor: + last_create_at: + value: '[[.last_event.alertInfo.createdAt]]' +response.split: + target: body.data +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/sentinel_one/0.1.0/data_stream/alert/elasticsearch/ingest_pipeline/default.yml b/packages/sentinel_one/0.1.0/data_stream/alert/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..830b1753c4 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/alert/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,621 @@ +--- +description: Pipeline for processing alert logs. +processors: + - set: + field: ecs.version + value: '8.2.0' + - set: + field: event.kind + value: event + - set: + field: event.category + value: [malware] + - set: + field: event.type + value: [info] + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - fingerprint: + fields: + - json.alertInfo.createdAt + - json.alertInfo.updatedAt + - json.alertInfo.alertId + target_field: _id + ignore_missing: true + - rename: + field: json.agentDetectionInfo.machineType + target_field: host.type + ignore_missing: true + - rename: + field: json.agentDetectionInfo.name + target_field: host.name + ignore_missing: true + - append: + field: related.hosts + value: '{{{host.name}}}' + if: ctx.host?.name != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.agentDetectionInfo.osFamily + target_field: host.os.family + ignore_missing: true + - rename: + field: json.agentDetectionInfo.osRevision + target_field: host.os.version + ignore_missing: true + - rename: + field: json.agentDetectionInfo.siteId + target_field: sentinel_one.alert.agent.site_id + ignore_missing: true + - rename: + field: json.agentDetectionInfo.uuid + target_field: observer.serial_number + ignore_missing: true + - rename: + field: json.agentDetectionInfo.osName + target_field: host.os.name + ignore_missing: true + - rename: + field: json.agentDetectionInfo.version + target_field: observer.version + ignore_missing: true + - date: + field: json.alertInfo.createdAt + target_field: '@timestamp' + if: ctx.json?.alertInfo?.createdAt != null + ignore_failure: true + formats: + - ISO8601 + - convert: + field: json.alertInfo.srcIp + target_field: source.ip + type: ip + ignore_failure: true + - append: + field: related.ip + value: '{{{source.ip}}}' + if: ctx.source?.ip != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.alertInfo.incidentStatus + target_field: sentinel_one.alert.info.status + ignore_missing: true + - rename: + field: json.alertInfo.registryOldValue + target_field: sentinel_one.alert.info.registry.old_value + ignore_missing: true + - rename: + field: json.alertInfo.alertId + target_field: event.id + ignore_missing: true + - convert: + field: json.alertInfo.dstPort + target_field: destination.port + type: long + ignore_failure: true + - rename: + field: json.alertInfo.indicatorName + target_field: sentinel_one.alert.info.indicator.name + ignore_missing: true + - rename: + field: json.alertInfo.registryPath + target_field: registry.path + ignore_missing: true + - rename: + field: json.alertInfo.loginType + target_field: sentinel_one.alert.info.login.type + ignore_missing: true + - convert: + field: json.alertInfo.dstIp + target_field: destination.ip + type: ip + ignore_failure: true + - append: + field: related.ip + value: '{{{destination.ip}}}' + if: ctx.destination?.ip != null + allow_duplicates: false + ignore_failure: true + - date: + field: json.alertInfo.updatedAt + target_field: sentinel_one.alert.info.updated_at + if: ctx.json?.alertInfo?.updatedAt != null + ignore_failure: true + formats: + - ISO8601 + - rename: + field: json.alertInfo.indicatorDescription + target_field: sentinel_one.alert.info.indicator.description + ignore_missing: true + - rename: + field: json.alertInfo.loginsUserName + target_field: user.name + ignore_missing: true + - append: + field: related.user + value: '{{{user.name}}}' + allow_duplicates: false + ignore_failure: true + - rename: + field: json.alertInfo.loginIsSuccessful + target_field: sentinel_one.alert.info.login.is_successful + ignore_missing: true + - rename: + field: json.alertInfo.indicatorCategory + target_field: sentinel_one.alert.info.indicator.category + ignore_missing: true + - rename: + field: json.alertInfo.modulePath + target_field: dll.path + ignore_missing: true + - rename: + field: json.alertInfo.loginAccountSid + target_field: sentinel_one.alert.info.login.account.sid + ignore_missing: true + - rename: + field: json.alertInfo.dnsResponse + target_field: sentinel_one.alert.info.dns.response + ignore_missing: true + - rename: + field: json.alertInfo.netEventDirection + target_field: network.direction + ignore_missing: true + - rename: + field: json.alertInfo.registryValue + target_field: registry.value + ignore_missing: true + - convert: + field: json.alertInfo.srcMachineIp + target_field: host.ip + type: ip + ignore_failure: true + - append: + field: related.ip + value: '{{{host.ip}}}' + if: ctx.host?.ip != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.alertInfo.registryOldValueType + target_field: sentinel_one.alert.info.registry.old_value_type + ignore_missing: true + - rename: + field: json.alertInfo.eventType + target_field: sentinel_one.alert.info.event_type + ignore_missing: true + - rename: + field: json.alertInfo.analystVerdict + target_field: sentinel_one.alert.analyst_verdict + ignore_missing: true + - rename: + field: json.alertInfo.dvEventId + target_field: sentinel_one.alert.dv_event.id + ignore_missing: true + - rename: + field: json.alertInfo.dnsRequest + target_field: dns.question.name + ignore_missing: true + - rename: + field: json.alertInfo.loginIsAdministratorEquivalent + target_field: sentinel_one.alert.info.login.is_administrator + ignore_missing: true + - rename: + field: json.alertInfo.loginAccountDomain + target_field: user.domain + ignore_missing: true + - rename: + field: json.alertInfo.tiIndicatorType + target_field: sentinel_one.alert.info.ti_indicator.type + ignore_missing: true + - rename: + field: json.alertInfo.moduleSha1 + target_field: dll.hash.sha1 + ignore_missing: true + - append: + field: related.hash + value: '{{{dll.hash.sha1}}}' + if: ctx.dll?.hash?.sha1 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.alertInfo.source + target_field: sentinel_one.alert.info.source + ignore_missing: true + - convert: + field: json.alertInfo.srcPort + target_field: source.port + type: long + ignore_failure: true + - rename: + field: json.alertInfo.tiIndicatorValue + target_field: sentinel_one.alert.info.ti_indicator.value + ignore_missing: true + - rename: + field: json.alertInfo.tiIndicatorSource + target_field: sentinel_one.alert.info.ti_indicator.source + ignore_missing: true + - date: + field: json.alertInfo.reportedAt + target_field: sentinel_one.alert.info.reported_at + if: ctx.json?.alertInfo?.reportedAt != null + ignore_failure: true + formats: + - ISO8601 + - rename: + field: json.alertInfo.registryKeyPath + target_field: registry.key + ignore_missing: true + - rename: + field: json.alertInfo.tiIndicatorComparisonMethod + target_field: sentinel_one.alert.info.ti_indicator.comparison_method + ignore_missing: true + - rename: + field: json.alertInfo.hitType + target_field: sentinel_one.alert.info.hit.type + ignore_missing: true + - rename: + field: json.containerInfo.id + target_field: container.id + ignore_missing: true + - rename: + field: json.containerInfo.image + target_field: container.image.name + ignore_missing: true + - rename: + field: json.containerInfo.labels + target_field: sentinel_one.alert.container.info.labels + ignore_missing: true + - rename: + field: json.containerInfo.name + target_field: container.name + ignore_missing: true + - rename: + field: json.kubernetesInfo.cluster + target_field: orchestrator.cluster.name + ignore_missing: true + - rename: + field: json.kubernetesInfo.controllerKind + target_field: sentinel_one.alert.kubernetes.controller.kind + ignore_missing: true + - rename: + field: json.kubernetesInfo.controllerLabels + target_field: sentinel_one.alert.kubernetes.controller.labels + ignore_missing: true + - rename: + field: json.kubernetesInfo.controllerName + target_field: sentinel_one.alert.kubernetes.controller.name + ignore_missing: true + - rename: + field: json.kubernetesInfo.namespace + target_field: orchestrator.namespace + ignore_missing: true + - rename: + field: json.kubernetesInfo.namespaceLabels + target_field: sentinel_one.alert.kubernetes.namespace.labels + ignore_missing: true + - rename: + field: json.kubernetesInfo.node + target_field: sentinel_one.alert.kubernetes.node + ignore_missing: true + - rename: + field: json.kubernetesInfo.pod + target_field: sentinel_one.alert.kubernetes.pod.name + ignore_missing: true + - rename: + field: json.kubernetesInfo.podLabels + target_field: sentinel_one.alert.kubernetes.pod.labels + ignore_missing: true + - rename: + field: json.osName + target_field: os.name + ignore_missing: true + - rename: + field: json.ruleInfo.type + target_field: rule.category + ignore_missing: true + - rename: + field: json.ruleInfo.description + target_field: rule.description + ignore_missing: true + - rename: + field: json.ruleInfo.id + target_field: rule.id + ignore_missing: true + - rename: + field: json.ruleInfo.name + target_field: rule.name + ignore_missing: true + - rename: + field: json.ruleInfo.scopeLevel + target_field: sentinel_one.alert.rule.scope_level + ignore_missing: true + - rename: + field: json.ruleInfo.severity + target_field: sentinel_one.alert.rule.severity + ignore_missing: true + - rename: + field: json.ruleInfo.treatAsThreat + target_field: sentinel_one.alert.rule.treat_as_threat + ignore_missing: true + - rename: + field: json.sourceParentProcessInfo.commandline + target_field: process.parent.command_line + ignore_missing: true + - rename: + field: json.sourceParentProcessInfo.fileHashMd5 + target_field: process.parent.hash.md5 + ignore_missing: true + - append: + field: related.hash + value: '{{{process.parent.hash.md5}}}' + if: ctx.process?.parent?.hash?.md5 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.sourceParentProcessInfo.fileHashSha1 + target_field: process.parent.hash.sha1 + ignore_missing: true + - append: + field: related.hash + value: '{{{process.parent.hash.sha1}}}' + if: ctx.process?.parent?.hash?.sha1 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.sourceParentProcessInfo.fileHashSha256 + target_field: process.parent.hash.sha256 + ignore_missing: true + - append: + field: related.hash + value: '{{{process.parent.hash.sha256}}}' + if: ctx.process?.parent?.hash?.sha256 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.sourceParentProcessInfo.filePath + target_field: process.parent.executable + ignore_missing: true + - rename: + field: json.sourceParentProcessInfo.fileSignerIdentity + target_field: process.parent.code_signature.signing_id + ignore_missing: true + - rename: + field: json.sourceParentProcessInfo.integrityLevel + target_field: sentinel_one.alert.process.parent.integrity_level + ignore_missing: true + - rename: + field: json.sourceParentProcessInfo.name + target_field: process.parent.name + ignore_missing: true + - convert: + field: json.sourceParentProcessInfo.pid + target_field: process.parent.pid + type: long + ignore_failure: true + - date: + field: json.sourceParentProcessInfo.pidStarttime + target_field: process.parent.start + if: ctx.json?.sourceParentProcessInfo?.pidStarttime != null + ignore_failure: true + formats: + - ISO8601 + - rename: + field: json.sourceParentProcessInfo.storyline + target_field: sentinel_one.alert.process.parent.storyline + ignore_missing: true + - rename: + field: json.sourceParentProcessInfo.subsystem + target_field: sentinel_one.alert.process.parent.subsystem + ignore_missing: true + - rename: + field: json.sourceParentProcessInfo.uniqueId + target_field: process.parent.entity_id + ignore_missing: true + - rename: + field: json.sourceParentProcessInfo.user + target_field: process.parent.user.name + ignore_missing: true + - rename: + field: json.sourceProcessInfo.commandline + target_field: process.command_line + ignore_missing: true + - rename: + field: json.sourceProcessInfo.fileHashMd5 + target_field: process.hash.md5 + ignore_missing: true + - append: + field: related.hash + value: '{{{process.hash.md5}}}' + if: ctx.process?.hash?.md5 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.sourceProcessInfo.fileHashSha1 + target_field: process.hash.sha1 + ignore_missing: true + - append: + field: related.hash + value: '{{{process.hash.sha1}}}' + if: ctx.process?.hash?.sha1 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.sourceProcessInfo.fileHashSha256 + target_field: process.hash.sha256 + ignore_missing: true + - append: + field: related.hash + value: '{{{process.hash.sha256}}}' + if: ctx.process?.hash?.sha256 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.sourceProcessInfo.filePath + target_field: process.executable + ignore_missing: true + - rename: + field: json.sourceProcessInfo.fileSignerIdentity + target_field: process.code_signature.signing_id + ignore_missing: true + - rename: + field: json.sourceProcessInfo.integrityLevel + target_field: sentinel_one.alert.process.integrity_level + ignore_missing: true + - rename: + field: json.sourceProcessInfo.name + target_field: process.name + ignore_missing: true + - convert: + field: json.sourceProcessInfo.pid + target_field: process.pid + type: long + ignore_failure: true + - date: + field: json.sourceProcessInfo.pidStarttime + target_field: process.start + if: ctx.json?.sourceProcessInfo?.pidStarttime != null + ignore_failure: true + formats: + - ISO8601 + - rename: + field: json.sourceProcessInfo.storyline + target_field: sentinel_one.alert.process.storyline + ignore_missing: true + - rename: + field: json.sourceProcessInfo.subsystem + target_field: sentinel_one.alert.process.subsystem + ignore_missing: true + - rename: + field: json.sourceProcessInfo.uniqueId + target_field: process.entity_id + ignore_missing: true + - rename: + field: json.sourceProcessInfo.user + target_field: process.user.name + ignore_missing: true + - date: + field: json.targetProcessInfo.tgtFileCreatedAt + target_field: file.created + if: ctx.json?.targetProcessInfo?.tgtFileCreatedAt != null + ignore_failure: true + formats: + - ISO8601 + - rename: + field: json.targetProcessInfo.tgtFileIsSigned + target_field: sentinel_one.alert.target.process.file.is_signed + ignore_missing: true + - rename: + field: json.targetProcessInfo.tgtFileOldPath + target_field: sentinel_one.alert.target.process.file.old_path + ignore_missing: true + - rename: + field: json.targetProcessInfo.tgtProcImagePath + target_field: sentinel_one.alert.target.process.proc.image_path + ignore_missing: true + - rename: + field: json.targetProcessInfo.tgtProcSignedStatus + target_field: sentinel_one.alert.target.process.proc.signed_status + ignore_missing: true + - rename: + field: json.targetProcessInfo.tgtFileHashSha256 + target_field: sentinel_one.alert.target.process.file.hash.sha256 + ignore_missing: true + - append: + field: related.hash + value: '{{{sentinel_one.alert.target.process.file.hash.sha256}}}' + if: ctx.sentinel_one?.alert?.target?.process?.file?.hash?.sha256 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.targetProcessInfo.tgtProcStorylineId + target_field: sentinel_one.alert.target.process.proc.storyline_id + ignore_missing: true + - convert: + field: json.targetProcessInfo.tgtProcPid + target_field: sentinel_one.alert.target.process.proc.pid + type: long + ignore_failure: true + - rename: + field: json.targetProcessInfo.tgtProcCmdLine + target_field: sentinel_one.alert.target.process.proc.cmdline + ignore_missing: true + - rename: + field: json.targetProcessInfo.tgtProcName + target_field: sentinel_one.alert.target.process.proc.name + ignore_missing: true + - date: + field: json.targetProcessInfo.tgtFileModifiedAt + target_field: file.mtime + if: ctx.json?.targetProcessInfo?.tgtFileModifiedAt != null + ignore_failure: true + formats: + - ISO8601 + - rename: + field: json.targetProcessInfo.tgtFileId + target_field: sentinel_one.alert.target.process.file.id + ignore_missing: true + - rename: + field: json.targetProcessInfo.tgtProcIntegrityLevel + target_field: sentinel_one.alert.target.process.proc.integrity_level + ignore_missing: true + - rename: + field: json.targetProcessInfo.tgtFileHashSha1 + target_field: sentinel_one.alert.target.process.file.hash.sha1 + ignore_missing: true + - append: + field: related.hash + value: '{{{sentinel_one.alert.target.process.file.hash.sha1}}}' + if: ctx.sentinel_one?.alert?.target?.process?.file?.hash?.sha1 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.targetProcessInfo.tgtProcUid + target_field: sentinel_one.alert.target.process.proc.uid + ignore_missing: true + - date: + field: json.targetProcessInfo.tgtProcessStartTime + target_field: sentinel_one.alert.target.process.start_time + if: ctx.json?.targetProcessInfo?.tgtProcessStartTime != null + ignore_failure: true + formats: + - ISO8601 + - rename: + field: json.targetProcessInfo.tgtFilePath + target_field: sentinel_one.alert.target.process.file.path + ignore_missing: true + - remove: + field: json + - remove: + field: event.original + if: ctx.tags == null || !(ctx.tags.contains('preserve_original_event')) + ignore_failure: true + ignore_missing: true + - script: + description: Drops null/empty values recursively. + lang: painless + source: + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); +on_failure: +- set: + field: error.message + value: '{{ _ingest.on_failure_message }}' diff --git a/packages/sentinel_one/0.1.0/data_stream/alert/fields/agent.yml b/packages/sentinel_one/0.1.0/data_stream/alert/fields/agent.yml new file mode 100755 index 0000000000..6e1bac042b --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/alert/fields/agent.yml @@ -0,0 +1,186 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/sentinel_one/0.1.0/data_stream/alert/fields/base-fields.yml b/packages/sentinel_one/0.1.0/data_stream/alert/fields/base-fields.yml new file mode 100755 index 0000000000..33fc797d19 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/alert/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: event.module + type: constant_keyword + description: Event module + value: sentinel_one +- name: event.dataset + type: constant_keyword + description: Event dataset + value: sentinel_one.alert +- name: '@timestamp' + type: date + description: Event timestamp. diff --git a/packages/sentinel_one/0.1.0/data_stream/alert/fields/ecs.yml b/packages/sentinel_one/0.1.0/data_stream/alert/fields/ecs.yml new file mode 100755 index 0000000000..14eee62b8f --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/alert/fields/ecs.yml @@ -0,0 +1,260 @@ +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: Port of the destination. + name: destination.port + type: long +- description: SHA1 hash. + name: dll.hash.sha1 + type: keyword +- description: Full file path of the library. + name: dll.path + type: keyword +- description: |- + The name being queried. + If the name field contains non-printable characters (below 32 or above 126), those characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n respectively. + name: dns.question.name + type: keyword +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + event.created contains the date/time when the event was first read by an agent, or by your pipeline. + This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. + In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. + In case the two timestamps are identical, @timestamp should be used. + name: event.created + type: date +- description: Unique ID to describe the event. + name: event.id + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: |- + File creation time. + Note that not all filesystems store the creation time. + name: file.created + type: date +- description: Last time the file content was modified. + name: file.mtime + type: date +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: Observer serial number. + name: observer.serial_number + type: keyword +- description: Observer version. + name: observer.version + type: keyword +- description: Name of the cluster. + name: orchestrator.cluster.name + type: keyword +- description: Namespace in which the action is taking place. + name: orchestrator.namespace + type: keyword +- description: Operating system name, without the version. + multi_fields: + - name: text + type: match_only_text + name: os.name + type: keyword +- description: |- + The identifier used to sign the process. + This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. + name: process.code_signature.signing_id + type: keyword +- description: |- + Full command line that started the process, including the absolute path to the executable, and all arguments. + Some arguments may be filtered to protect sensitive information. + multi_fields: + - name: text + type: match_only_text + name: process.command_line + type: wildcard +- description: |- + Unique identifier for the process. + The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. + Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. + name: process.entity_id + type: keyword +- description: Absolute path to the process executable. + multi_fields: + - name: text + type: match_only_text + name: process.executable + type: keyword +- description: MD5 hash. + name: process.hash.md5 + type: keyword +- description: SHA1 hash. + name: process.hash.sha1 + type: keyword +- description: SHA256 hash. + name: process.hash.sha256 + type: keyword +- description: |- + Process name. + Sometimes called program name or similar. + multi_fields: + - name: text + type: match_only_text + name: process.name + type: keyword +- description: |- + The identifier used to sign the process. + This is used to identify the application manufactured by a software vendor. The field is relevant to Apple *OS only. + name: process.parent.code_signature.signing_id + type: keyword +- description: |- + Full command line that started the process, including the absolute path to the executable, and all arguments. + Some arguments may be filtered to protect sensitive information. + multi_fields: + - name: text + type: match_only_text + name: process.parent.command_line + type: wildcard +- description: |- + Unique identifier for the process. + The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. + Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. + name: process.parent.entity_id + type: keyword +- description: Absolute path to the process executable. + multi_fields: + - name: text + type: match_only_text + name: process.parent.executable + type: keyword +- description: MD5 hash. + name: process.parent.hash.md5 + type: keyword +- description: SHA1 hash. + name: process.parent.hash.sha1 + type: keyword +- description: SHA256 hash. + name: process.parent.hash.sha256 + type: keyword +- description: |- + Process name. + Sometimes called program name or similar. + multi_fields: + - name: text + type: match_only_text + name: process.parent.name + type: keyword +- description: Process id. + name: process.parent.pid + type: long +- description: The time the process started. + name: process.parent.start + type: date +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: process.parent.user.name + type: keyword +- description: Process id. + name: process.pid + type: long +- description: The time the process started. + name: process.start + type: date +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: process.user.name + type: keyword +- description: Hive-relative path of keys. + name: registry.key + type: keyword +- description: Full path, including hive, key and value + name: registry.path + type: keyword +- description: Name of the value written. + name: registry.value + type: keyword +- description: All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). + name: related.hash + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: A categorization value keyword used by the entity using the rule for detection of this event. + name: rule.category + type: keyword +- description: The description of the rule generating the event. + name: rule.description + type: keyword +- description: A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. + name: rule.id + type: keyword +- description: The name of the rule or signature generating the event. + name: rule.name + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: Port of the source. + name: source.port + type: long +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Name of the directory the user is a member of. + For example, an LDAP or Active Directory domain name. + name: user.domain + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword diff --git a/packages/sentinel_one/0.1.0/data_stream/alert/fields/fields.yml b/packages/sentinel_one/0.1.0/data_stream/alert/fields/fields.yml new file mode 100755 index 0000000000..1a86a7a3a8 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/alert/fields/fields.yml @@ -0,0 +1,243 @@ +- name: sentinel_one.alert + type: group + fields: + - name: agent + type: group + fields: + - name: site_id + type: keyword + description: Site id. + - name: analyst_verdict + type: keyword + description: Analyst verdict. + - name: container + type: group + fields: + - name: info + type: group + fields: + - name: labels + type: keyword + description: Container info labels. + - name: dv_event + type: group + fields: + - name: id + type: keyword + description: DV event id. + - name: info + type: group + fields: + - name: dns + type: group + fields: + - name: response + type: keyword + description: IP address, DNS, type, etc. in response. + - name: event_type + type: keyword + description: Event type. + - name: hit + type: group + fields: + - name: type + type: keyword + description: Type of hit reported from agent. + - name: indicator + type: group + fields: + - name: category + type: keyword + description: Indicator categories for this process. + - name: description + type: keyword + description: Indicator_description. + - name: name + type: keyword + description: Indicator names for this process. + - name: login + type: group + fields: + - name: account + type: group + fields: + - name: sid + type: keyword + description: SID of the account that attempted to login. + - name: is_administrator + type: keyword + description: Is the login attempt administrator equivalent. + - name: is_successful + type: keyword + description: Was the login attempt successful. + - name: type + type: keyword + description: Type of login which was performed. + - name: registry + type: group + fields: + - name: old_value + type: keyword + description: Registry previous value (in case of modification). + - name: old_value_type + type: keyword + description: Registry previous value type (in case of modification). + - name: reported_at + type: date + description: Timestamp of alert creation in STAR. + - name: source + type: keyword + description: Source reported from agent. + - name: status + type: keyword + description: Incident status. + - name: ti_indicator + type: group + fields: + - name: comparison_method + type: keyword + description: The comparison method used by SentinelOne to trigger the event. + - name: source + type: keyword + description: The value of the identified Threat Intelligence indicator. + - name: type + type: keyword + description: The type of the identified Threat Intelligence indicator. + - name: value + type: keyword + description: The value of the identified Threat Intelligence indicator. + - name: updated_at + type: date + description: Date of alert updated in Star MMS. + - name: kubernetes + type: group + fields: + - name: controller + type: group + fields: + - name: kind + type: keyword + description: Controller kind. + - name: labels + type: keyword + description: Controller labels. + - name: name + type: keyword + description: Controller name. + - name: namespace + type: group + fields: + - name: labels + type: keyword + description: Namespace labels. + - name: node + type: keyword + description: Node. + - name: pod + type: group + fields: + - name: labels + type: keyword + description: Pod Labels. + - name: name + type: keyword + description: Pod name. + - name: process + type: group + fields: + - name: integrity_level + type: keyword + description: Integrity level. + - name: parent + type: group + fields: + - name: integrity_level + type: keyword + description: Integrity level. + - name: storyline + type: keyword + description: StoryLine. + - name: subsystem + type: keyword + description: Subsystem. + - name: storyline + type: keyword + description: StoryLine. + - name: subsystem + type: keyword + description: Subsystem. + - name: rule + type: group + fields: + - name: scope_level + type: keyword + description: Scope level. + - name: severity + type: keyword + description: Rule severity. + - name: treat_as_threat + type: keyword + description: Rule treat as threat type. + - name: target + type: group + fields: + - name: process + type: group + fields: + - name: file + type: group + fields: + - name: hash + type: group + fields: + - name: sha1 + type: keyword + description: SHA1 Signature of File. + - name: sha256 + type: keyword + description: SHA256 Signature of File. + - name: id + type: keyword + description: Unique ID of file. + - name: is_signed + type: keyword + description: Is fle signed. + - name: old_path + type: keyword + description: Old path before 'Rename'. + - name: path + type: keyword + description: Path and filename. + - name: proc + type: group + fields: + - name: cmdline + type: keyword + description: Target Process Command Line. + - name: image_path + type: keyword + description: Target Process Image path + - name: integrity_level + type: keyword + description: Integrity level of target process. + - name: name + type: keyword + description: Target Process Name. + - name: pid + type: long + description: Target Process ID (PID). + - name: signed_status + type: keyword + description: Target Process Signed Status. + - name: storyline_id + type: keyword + description: Target Process StoryLine ID. + - name: uid + type: keyword + description: Target Process Unique ID. + - name: start_time + type: date + description: Target Process Start Time. +- name: log.source.address + type: keyword + description: Source address from which the log event was read / sent from. diff --git a/packages/sentinel_one/0.1.0/data_stream/alert/manifest.yml b/packages/sentinel_one/0.1.0/data_stream/alert/manifest.yml new file mode 100755 index 0000000000..3aeb57a47b --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/alert/manifest.yml @@ -0,0 +1,50 @@ +title: Collect Alert logs from SentinelOne +type: logs +streams: + - input: httpjson + title: Alert logs + description: Collect alert logs from SentinelOne. + template_path: httpjson.yml.hbs + vars: + - name: initial_interval + type: text + title: Initial Interval + description: How far back to pull the alerts from SentinelOne. + multi: false + required: true + show_user: true + default: 24h + - name: interval + type: text + title: Interval + description: Duration between requests to the SentinelOne API. + default: 5m + multi: false + required: true + show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - sentinel_one-alert + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/sentinel_one/0.1.0/data_stream/alert/sample_event.json b/packages/sentinel_one/0.1.0/data_stream/alert/sample_event.json new file mode 100755 index 0000000000..d6432f36dc --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/alert/sample_event.json @@ -0,0 +1,273 @@ +{ + "@timestamp": "2018-02-27T04:49:26.257Z", + "agent": { + "ephemeral_id": "85d4ef1b-9fd3-4695-8ba0-0bb951030615", + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.1.3" + }, + "container": { + "id": "string", + "image": { + "name": "string" + }, + "name": "string" + }, + "data_stream": { + "dataset": "sentinel_one.alert", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "ip": "0.0.0.0", + "port": 1234 + }, + "dll": { + "hash": { + "sha1": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d" + }, + "path": "string" + }, + "dns": { + "question": { + "name": "string" + } + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "snapshot": false, + "version": "8.1.3" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "malware" + ], + "created": "2022-05-09T12:54:49.331Z", + "dataset": "sentinel_one.alert", + "id": "123456789123456789", + "ingested": "2022-05-09T12:54:52Z", + "kind": "event", + "original": "{\"agentDetectionInfo\":{\"machineType\":\"string\",\"name\":\"string\",\"osFamily\":\"string\",\"osName\":\"string\",\"osRevision\":\"string\",\"siteId\":\"123456789123456789\",\"uuid\":\"string\",\"version\":\"3.x.x.x\"},\"alertInfo\":{\"alertId\":\"123456789123456789\",\"analystVerdict\":\"string\",\"createdAt\":\"2018-02-27T04:49:26.257525Z\",\"dnsRequest\":\"string\",\"dnsResponse\":\"string\",\"dstIp\":\"0.0.0.0\",\"dstPort\":\"1234\",\"dvEventId\":\"string\",\"eventType\":\"string\",\"hitType\":\"Events\",\"incidentStatus\":\"string\",\"indicatorCategory\":\"string\",\"indicatorDescription\":\"string\",\"indicatorName\":\"string\",\"loginAccountDomain\":\"string\",\"loginAccountSid\":\"string\",\"loginIsAdministratorEquivalent\":\"string\",\"loginIsSuccessful\":\"string\",\"loginType\":\"string\",\"loginsUserName\":\"string\",\"modulePath\":\"string\",\"moduleSha1\":\"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d\",\"netEventDirection\":\"string\",\"registryKeyPath\":\"string\",\"registryOldValue\":\"string\",\"registryOldValueType\":\"string\",\"registryPath\":\"string\",\"registryValue\":\"string\",\"reportedAt\":\"2018-02-27T04:49:26.257525Z\",\"source\":\"string\",\"srcIp\":\"0.0.0.0\",\"srcMachineIp\":\"0.0.0.0\",\"srcPort\":\"string\",\"tiIndicatorComparisonMethod\":\"string\",\"tiIndicatorSource\":\"string\",\"tiIndicatorType\":\"string\",\"tiIndicatorValue\":\"string\",\"updatedAt\":\"2018-02-27T04:49:26.257525Z\"},\"containerInfo\":{\"id\":\"string\",\"image\":\"string\",\"labels\":\"string\",\"name\":\"string\"},\"kubernetesInfo\":{\"cluster\":\"string\",\"controllerKind\":\"string\",\"controllerLabels\":\"string\",\"controllerName\":\"string\",\"namespace\":\"string\",\"namespaceLabels\":\"string\",\"node\":\"string\",\"pod\":\"string\",\"podLabels\":\"string\"},\"ruleInfo\":{\"description\":\"string\",\"id\":\"string\",\"name\":\"string\",\"scopeLevel\":\"string\",\"severity\":\"Low\",\"treatAsThreat\":\"UNDEFINED\"},\"sourceParentProcessInfo\":{\"commandline\":\"string\",\"fileHashMd5\":\"5d41402abc4b2a76b9719d911017c592\",\"fileHashSha1\":\"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d\",\"fileHashSha256\":\"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824\",\"filePath\":\"string\",\"fileSignerIdentity\":\"string\",\"integrityLevel\":\"unknown\",\"name\":\"string\",\"pid\":\"12345\",\"pidStarttime\":\"2018-02-27T04:49:26.257525Z\",\"storyline\":\"string\",\"subsystem\":\"unknown\",\"uniqueId\":\"string\",\"user\":\"string\"},\"sourceProcessInfo\":{\"commandline\":\"string\",\"fileHashMd5\":\"5d41402abc4b2a76b9719d911017c592\",\"fileHashSha1\":\"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d\",\"fileHashSha256\":\"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824\",\"filePath\":\"string\",\"fileSignerIdentity\":\"string\",\"integrityLevel\":\"unknown\",\"name\":\"string\",\"pid\":\"12345\",\"pidStarttime\":\"2018-02-27T04:49:26.257525Z\",\"storyline\":\"string\",\"subsystem\":\"unknown\",\"uniqueId\":\"string\",\"user\":\"string\"},\"targetProcessInfo\":{\"tgtFileCreatedAt\":\"2018-02-27T04:49:26.257525Z\",\"tgtFileHashSha1\":\"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d\",\"tgtFileHashSha256\":\"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824\",\"tgtFileId\":\"string\",\"tgtFileIsSigned\":\"string\",\"tgtFileModifiedAt\":\"2018-02-27T04:49:26.257525Z\",\"tgtFileOldPath\":\"string\",\"tgtFilePath\":\"string\",\"tgtProcCmdLine\":\"string\",\"tgtProcImagePath\":\"string\",\"tgtProcIntegrityLevel\":\"unknown\",\"tgtProcName\":\"string\",\"tgtProcPid\":\"12345\",\"tgtProcSignedStatus\":\"string\",\"tgtProcStorylineId\":\"string\",\"tgtProcUid\":\"string\",\"tgtProcessStartTime\":\"2018-02-27T04:49:26.257525Z\"}}", + "type": [ + "info" + ] + }, + "file": { + "created": "2018-02-27T04:49:26.257Z", + "mtime": "2018-02-27T04:49:26.257Z" + }, + "host": { + "ip": "0.0.0.0", + "name": "string", + "os": { + "family": "string", + "name": "string", + "version": "string" + }, + "type": "string" + }, + "input": { + "type": "httpjson" + }, + "network": { + "direction": "string" + }, + "observer": { + "serial_number": "string", + "version": "3.x.x.x" + }, + "orchestrator": { + "cluster": { + "name": "string" + }, + "namespace": "string" + }, + "process": { + "code_signature": { + "signing_id": "string" + }, + "command_line": "string", + "entity_id": "string", + "executable": "string", + "hash": { + "md5": "5d41402abc4b2a76b9719d911017c592", + "sha1": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d", + "sha256": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" + }, + "name": "string", + "parent": { + "code_signature": { + "signing_id": "string" + }, + "command_line": "string", + "entity_id": "string", + "executable": "string", + "hash": { + "md5": "5d41402abc4b2a76b9719d911017c592", + "sha1": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d", + "sha256": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" + }, + "name": "string", + "pid": 12345, + "start": "2018-02-27T04:49:26.257Z", + "user": { + "name": "string" + } + }, + "pid": 12345, + "start": "2018-02-27T04:49:26.257Z", + "user": { + "name": "string" + } + }, + "registry": { + "key": "string", + "path": "string", + "value": "string" + }, + "related": { + "hash": [ + "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d", + "5d41402abc4b2a76b9719d911017c592", + "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" + ], + "hosts": [ + "string" + ], + "ip": [ + "0.0.0.0" + ], + "user": [ + "string" + ] + }, + "rule": { + "description": "string", + "id": "string", + "name": "string" + }, + "sentinel_one": { + "alert": { + "agent": { + "site_id": "123456789123456789" + }, + "analyst_verdict": "string", + "container": { + "info": { + "labels": "string" + } + }, + "dv_event": { + "id": "string" + }, + "info": { + "dns": { + "response": "string" + }, + "event_type": "string", + "hit": { + "type": "Events" + }, + "indicator": { + "category": "string", + "description": "string", + "name": "string" + }, + "login": { + "account": { + "sid": "string" + }, + "is_administrator": "string", + "is_successful": "string", + "type": "string" + }, + "registry": { + "old_value": "string", + "old_value_type": "string" + }, + "reported_at": "2018-02-27T04:49:26.257Z", + "source": "string", + "status": "string", + "ti_indicator": { + "comparison_method": "string", + "source": "string", + "type": "string", + "value": "string" + }, + "updated_at": "2018-02-27T04:49:26.257Z" + }, + "kubernetes": { + "controller": { + "kind": "string", + "labels": "string", + "name": "string" + }, + "namespace": { + "labels": "string" + }, + "node": "string", + "pod": { + "labels": "string", + "name": "string" + } + }, + "process": { + "integrity_level": "unknown", + "parent": { + "integrity_level": "unknown", + "storyline": "string", + "subsystem": "unknown" + }, + "storyline": "string", + "subsystem": "unknown" + }, + "rule": { + "scope_level": "string", + "severity": "Low", + "treat_as_threat": "UNDEFINED" + }, + "target": { + "process": { + "file": { + "hash": { + "sha1": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d", + "sha256": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" + }, + "id": "string", + "is_signed": "string", + "old_path": "string", + "path": "string" + }, + "proc": { + "cmdline": "string", + "image_path": "string", + "integrity_level": "unknown", + "name": "string", + "pid": 12345, + "signed_status": "string", + "storyline_id": "string", + "uid": "string" + }, + "start_time": "2018-02-27T04:49:26.257Z" + } + } + } + }, + "source": { + "ip": "0.0.0.0" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "sentinel_one-alert" + ], + "user": { + "domain": "string", + "name": "string" + } +} \ No newline at end of file diff --git a/packages/sentinel_one/0.1.0/data_stream/group/agent/stream/httpjson.yml.hbs b/packages/sentinel_one/0.1.0/data_stream/group/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..ab9e91fdfe --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/group/agent/stream/httpjson.yml.hbs @@ -0,0 +1,51 @@ +config_version: 2 +interval: {{interval}} +{{#if proxy_url }} +request.proxy_url: {{proxy_url}} +{{/if}} +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} +request.method: GET +request.url: {{url}}/web/api/v2.1/groups +request.transforms: + - set: + target: header.Authorization + value: 'ApiToken {{api_token}}' + - set: + target: url.params.limit + value: '100' + - set: + target: url.params.sortBy + value: 'updatedAt' + - set: + target: url.params.sortOrder + value: 'asc' + - set: + target: url.params.updatedAt__gte + value: '[[formatDate (parseDate .cursor.last_update_at)]]' + default: '[[formatDate (now (parseDuration "-{{initial_interval}}"))]]' +response.pagination: + - set: + target: url.params.cursor + value: '[[if (ne .last_response.body.pagination.nextCursor nil)]][[.last_response.body.pagination.nextCursor]][[else]][[.last_response.terminate_pagination]][[end]]' + fail_on_template_error: true +cursor: + last_update_at: + value: '[[.last_event.updatedAt]]' +response.split: + target: body.data +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/sentinel_one/0.1.0/data_stream/group/elasticsearch/ingest_pipeline/default.yml b/packages/sentinel_one/0.1.0/data_stream/group/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..6afca281ff --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/group/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,133 @@ +--- +description: Pipeline for processing group logs. +processors: + - set: + field: ecs.version + value: '8.2.0' + - set: + field: event.kind + value: event + - set: + field: event.category + value: [iam] + - set: + field: event.type + value: [info] + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - fingerprint: + fields: + - json.createdAt + - json.updatedAt + - json.id + target_field: _id + ignore_missing: true + - date: + field: json.updatedAt + target_field: '@timestamp' + formats: + - ISO8601 + ignore_failure: true + - date: + field: json.createdAt + target_field: sentinel_one.group.created_at + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.creator + target_field: user.full_name + ignore_missing: true + - append: + field: related.user + value: '{{{user.full_name}}}' + if: ctx.user?.full_name != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.creatorId + target_field: sentinel_one.group.creator.id + ignore_missing: true + - rename: + field: json.filterId + target_field: sentinel_one.group.filter.id + ignore_missing: true + - rename: + field: json.filterName + target_field: sentinel_one.group.filter.name + ignore_missing: true + - rename: + field: json.id + target_field: group.id + ignore_missing: true + - convert: + field: json.inherits + target_field: sentinel_one.group.inherits + type: boolean + ignore_failure: true + - convert: + field: json.isDefault + target_field: sentinel_one.group.is_default + type: boolean + ignore_failure: true + - rename: + field: json.name + target_field: group.name + ignore_missing: true + - convert: + field: json.rank + target_field: sentinel_one.group.rank + type: long + ignore_failure: true + - rename: + field: json.registrationToken + target_field: sentinel_one.group.registration_token + ignore_missing: true + - rename: + field: json.siteId + target_field: sentinel_one.group.site.id + ignore_missing: true + - convert: + field: json.totalAgents + target_field: sentinel_one.group.agent.count + type: long + ignore_failure: true + - rename: + field: json.type + target_field: sentinel_one.group.type + ignore_missing: true + - remove: + field: json + ignore_missing: true + - remove: + field: event.original + if: ctx.tags == null || !(ctx.tags.contains('preserve_original_event')) + ignore_failure: true + ignore_missing: true + - script: + description: Drops null/empty values recursively. + lang: painless + source: + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); +on_failure: +- set: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/sentinel_one/0.1.0/data_stream/group/fields/agent.yml b/packages/sentinel_one/0.1.0/data_stream/group/fields/agent.yml new file mode 100755 index 0000000000..6e1bac042b --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/group/fields/agent.yml @@ -0,0 +1,186 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/sentinel_one/0.1.0/data_stream/group/fields/base-fields.yml b/packages/sentinel_one/0.1.0/data_stream/group/fields/base-fields.yml new file mode 100755 index 0000000000..4b00f737cf --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/group/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: event.dataset + type: constant_keyword + description: Event dataset + value: sentinel_one.group +- name: event.module + type: constant_keyword + description: Event module + value: sentinel_one +- name: '@timestamp' + type: date + description: Event timestamp. diff --git a/packages/sentinel_one/0.1.0/data_stream/group/fields/ecs.yml b/packages/sentinel_one/0.1.0/data_stream/group/fields/ecs.yml new file mode 100755 index 0000000000..bbbdb79f4b --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/group/fields/ecs.yml @@ -0,0 +1,58 @@ +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + event.created contains the date/time when the event was first read by an agent, or by your pipeline. + This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. + In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. + In case the two timestamps are identical, @timestamp should be used. + name: event.created + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: Unique identifier for the group on the system/platform. + name: group.id + type: keyword +- description: Name of the group. + name: group.name + type: keyword +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: User's full name, if available. + multi_fields: + - name: text + type: match_only_text + name: user.full_name + type: keyword +- description: Unique identifier of the user. + name: user.id + type: keyword diff --git a/packages/sentinel_one/0.1.0/data_stream/group/fields/fields.yml b/packages/sentinel_one/0.1.0/data_stream/group/fields/fields.yml new file mode 100755 index 0000000000..89cd8a3787 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/group/fields/fields.yml @@ -0,0 +1,40 @@ +- name: sentinel_one.group + type: group + fields: + - name: agent + type: group + fields: + - name: count + type: long + - name: created_at + type: date + - name: creator + type: group + fields: + - name: id + type: keyword + - name: filter + type: group + fields: + - name: id + type: keyword + - name: name + type: keyword + - name: inherits + type: boolean + - name: is_default + type: boolean + - name: rank + type: long + - name: registration_token + type: keyword + - name: site + type: group + fields: + - name: id + type: keyword + - name: type + type: keyword +- name: log.source.address + type: keyword + description: Source address from which the log event was read / sent from. diff --git a/packages/sentinel_one/0.1.0/data_stream/group/manifest.yml b/packages/sentinel_one/0.1.0/data_stream/group/manifest.yml new file mode 100755 index 0000000000..4cbbd473d3 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/group/manifest.yml @@ -0,0 +1,50 @@ +title: Collect Group logs from SentinelOne +type: logs +streams: + - input: httpjson + title: Group logs + description: Collect group logs from SentinelOne. + template_path: httpjson.yml.hbs + vars: + - name: initial_interval + type: text + title: Initial Interval + description: How far back to pull the groups from SentinelOne. + multi: false + required: true + show_user: true + default: 24h + - name: interval + type: text + title: Interval + description: Duration between requests to the SentinelOne API. + default: 5m + multi: false + required: true + show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - sentinel_one-group + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/sentinel_one/0.1.0/data_stream/group/sample_event.json b/packages/sentinel_one/0.1.0/data_stream/group/sample_event.json new file mode 100755 index 0000000000..53add1ec91 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/group/sample_event.json @@ -0,0 +1,75 @@ +{ + "@timestamp": "2022-04-05T16:01:57.564Z", + "agent": { + "ephemeral_id": "c386c123-e979-4c16-b5e4-0bbc8f94062e", + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.1.3" + }, + "data_stream": { + "dataset": "sentinel_one.group", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "snapshot": false, + "version": "8.1.3" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "iam" + ], + "created": "2022-05-09T12:55:41.235Z", + "dataset": "sentinel_one.group", + "ingested": "2022-05-09T12:55:44Z", + "kind": "event", + "original": "{\"createdAt\":\"2022-04-05T16:01:56.928383Z\",\"creator\":\"Test User\",\"creatorId\":\"1234567890123456789\",\"filterId\":null,\"filterName\":null,\"id\":\"1234567890123456789\",\"inherits\":true,\"isDefault\":true,\"name\":\"Default Group\",\"rank\":null,\"registrationToken\":\"eyxxxxxxxxxxxxxxxxxxxxkixZxx1xxxxx8xxx2xODA0ZxxxxTIwNjhxxxxxxxxxxxxxxiMWYxx1Ixxnxxxx0=\",\"siteId\":\"1234567890123456789\",\"totalAgents\":1,\"type\":\"static\",\"updatedAt\":\"2022-04-05T16:01:57.564266Z\"}", + "type": [ + "info" + ] + }, + "group": { + "id": "1234567890123456789", + "name": "Default Group" + }, + "input": { + "type": "httpjson" + }, + "related": { + "user": [ + "Test User" + ] + }, + "sentinel_one": { + "group": { + "agent": { + "count": 1 + }, + "created_at": "2022-04-05T16:01:56.928Z", + "creator": { + "id": "1234567890123456789" + }, + "inherits": true, + "is_default": true, + "registration_token": "eyxxxxxxxxxxxxxxxxxxxxkixZxx1xxxxx8xxx2xODA0ZxxxxTIwNjhxxxxxxxxxxxxxxiMWYxx1Ixxnxxxx0=", + "site": { + "id": "1234567890123456789" + }, + "type": "static" + } + }, + "tags": [ + "preserve_original_event", + "forwarded", + "sentinel_one-group" + ], + "user": { + "full_name": "Test User" + } +} \ No newline at end of file diff --git a/packages/sentinel_one/0.1.0/data_stream/threat/agent/stream/httpjson.yml.hbs b/packages/sentinel_one/0.1.0/data_stream/threat/agent/stream/httpjson.yml.hbs new file mode 100755 index 0000000000..7d5345a4af --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/threat/agent/stream/httpjson.yml.hbs @@ -0,0 +1,51 @@ +config_version: 2 +interval: {{interval}} +{{#if proxy_url }} +request.proxy_url: {{proxy_url}} +{{/if}} +{{#if ssl}} +request.ssl: {{ssl}} +{{/if}} +request.method: GET +request.url: {{url}}/web/api/v2.1/threats +request.transforms: + - set: + target: header.Authorization + value: 'ApiToken {{api_token}}' + - set: + target: url.params.limit + value: '100' + - set: + target: url.params.sortBy + value: 'updatedAt' + - set: + target: url.params.sortOrder + value: 'asc' + - set: + target: url.params.updatedAt__gte + value: '[[formatDate (parseDate .cursor.last_update_at)]]' + default: '[[formatDate (now (parseDuration "-{{initial_interval}}"))]]' +response.pagination: + - set: + target: url.params.cursor + value: '[[if (ne .last_response.body.pagination.nextCursor nil)]][[.last_response.body.pagination.nextCursor]][[else]][[.last_response.terminate_pagination]][[end]]' + fail_on_template_error: true +cursor: + last_update_at: + value: '[[.last_event.threatInfo.updatedAt]]' +response.split: + target: body.data +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +{{#if processors}} +processors: +{{processors}} +{{/if}} diff --git a/packages/sentinel_one/0.1.0/data_stream/threat/elasticsearch/ingest_pipeline/default.yml b/packages/sentinel_one/0.1.0/data_stream/threat/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..c9f7239839 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/threat/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,927 @@ +--- +description: Pipeline for processing threat logs. +processors: + - set: + field: ecs.version + value: '8.2.0' + - set: + field: event.kind + value: event + - set: + field: event.category + value: [malware] + - set: + field: event.type + value: [info] + - rename: + field: message + target_field: event.original + ignore_missing: true + - json: + field: event.original + target_field: json + ignore_failure: true + - fingerprint: + fields: + - json.threatInfo.createdAt + - json.threatInfo.updatedAt + - json.id + target_field: _id + ignore_missing: true + - date: + field: json.threatInfo.updatedAt + target_field: '@timestamp' + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.agentDetectionInfo.accountId + target_field: sentinel_one.threat.detection.account.id + ignore_missing: true + - rename: + field: json.agentDetectionInfo.accountName + target_field: sentinel_one.threat.detection.account.name + ignore_missing: true + - rename: + field: json.agentDetectionInfo.agentDetectionState + target_field: sentinel_one.threat.detection.state + ignore_missing: true + - rename: + field: json.agentDetectionInfo.agentDomain + target_field: sentinel_one.threat.detection.agent.domain + ignore_missing: true + - convert: + field: json.agentDetectionInfo.agentIpV4 + target_field: sentinel_one.threat.detection.agent.ipv4 + type: ip + ignore_failure: true + - append: + field: related.ip + value: '{{{sentinel_one.threat.detection.agent.ipv4}}}' + if: ctx.sentinel_one?.threat?.detection?.agent?.ipv4 != null + allow_duplicates: false + ignore_failure: true + - convert: + field: json.agentDetectionInfo.agentIpV6 + target_field: sentinel_one.threat.detection.agent.ipv6 + type: ip + ignore_failure: true + - append: + field: related.ip + value: '{{{sentinel_one.threat.detection.agent.ipv6}}}' + if: ctx.sentinel_one?.threat?.detection?.agent?.ipv6 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.agentDetectionInfo.agentLastLoggedInUpn + target_field: sentinel_one.threat.detection.agent.last_logged_in.upn + ignore_missing: true + - rename: + field: json.agentDetectionInfo.agentLastLoggedInUserMail + target_field: user.email + ignore_missing: true + - rename: + field: json.agentDetectionInfo.agentLastLoggedInUserName + target_field: user.name + ignore_missing: true + - append: + field: related.user + value: '{{{user.name}}}' + if: ctx.user?.name != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.agentDetectionInfo.agentMitigationMode + target_field: sentinel_one.threat.detection.agent.mitigation_mode + ignore_missing: true + - rename: + field: json.agentDetectionInfo.agentOsName + target_field: sentinel_one.threat.detection.agent.os.name + ignore_missing: true + - rename: + field: json.agentDetectionInfo.agentOsRevision + target_field: sentinel_one.threat.detection.agent.os.version + ignore_missing: true + - date: + field: json.agentDetectionInfo.agentRegisteredAt + target_field: sentinel_one.threat.detection.agent.registered_at + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.agentDetectionInfo.agentUuid + target_field: sentinel_one.threat.detection.agent.uuid + ignore_missing: true + - rename: + field: json.agentDetectionInfo.agentVersion + target_field: sentinel_one.threat.detection.agent.version + ignore_missing: true + - rename: + field: json.agentDetectionInfo.cloudProviders + target_field: sentinel_one.threat.detection.cloud_providers + ignore_missing: true + - convert: + field: json.agentDetectionInfo.externalIp + target_field: host.ip + type: ip + ignore_failure: true + - geoip: + field: host.ip + target_field: host.geo + ignore_missing: true + if: ctx.host?.ip != null && ctx.host?.ip != '' + - append: + field: related.ip + value: '{{{host.ip}}}' + if: ctx.host?.ip != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.agentDetectionInfo.groupId + target_field: sentinel_one.threat.detection.agent.group.id + ignore_missing: true + - rename: + field: json.agentDetectionInfo.groupName + target_field: sentinel_one.threat.detection.agent.group.name + ignore_missing: true + - rename: + field: json.agentDetectionInfo.siteId + target_field: sentinel_one.threat.detection.agent.site.id + ignore_missing: true + - rename: + field: json.agentDetectionInfo.siteName + target_field: sentinel_one.threat.detection.agent.site.name + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.accountId + target_field: sentinel_one.threat.agent.account.id + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.accountName + target_field: sentinel_one.threat.agent.account.name + ignore_missing: true + - convert: + field: json.agentRealtimeInfo.activeThreats + target_field: sentinel_one.threat.agent.active_threats + type: long + ignore_failure: true + - rename: + field: json.agentRealtimeInfo.agentComputerName + target_field: host.name + ignore_missing: true + - append: + field: related.hosts + value: '{{{host.name}}}' + if: ctx.host?.name != null + allow_duplicates: false + ignore_failure: true + - convert: + field: json.agentRealtimeInfo.agentDecommissionedAt + target_field: sentinel_one.threat.agent.decommissioned_at + type: boolean + ignore_failure: true + - rename: + field: json.agentRealtimeInfo.agentDomain + target_field: host.domain + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.agentId + target_field: host.id + ignore_missing: true + - convert: + field: json.agentRealtimeInfo.agentInfected + target_field: sentinel_one.threat.agent.infected + type: boolean + ignore_failure: true + - convert: + field: json.agentRealtimeInfo.agentIsActive + target_field: sentinel_one.threat.agent.is_active + type: boolean + ignore_failure: true + - convert: + field: json.agentRealtimeInfo.agentIsDecommissioned + target_field: sentinel_one.threat.agent.is_decommissioned + type: boolean + ignore_failure: true + - rename: + field: json.agentRealtimeInfo.agentMachineType + target_field: sentinel_one.threat.agent.machine_type + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.agentMitigationMode + target_field: sentinel_one.threat.agent.mitigation_mode + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.agentNetworkStatus + target_field: sentinel_one.threat.agent.network_status + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.agentOsName + target_field: host.os.name + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.agentOsRevision + target_field: sentinel_one.threat.agent.os.version + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.agentOsType + target_field: host.os.type + ignore_missing: true + - lowercase: + field: host.os.type + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.agentUuid + target_field: sentinel_one.threat.agent.uuid + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.agentVersion + target_field: observer.version + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.groupId + target_field: sentinel_one.threat.agent.group.id + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.groupName + target_field: sentinel_one.threat.agent.group.name + ignore_missing: true + - foreach: + field: json.agentRealtimeInfo.networkInterfaces + processor: + convert: + field: _ingest._value.inet + type: ip + ignore_failure: true + ignore_failure: true + if: ctx.json?.agentRealtimeInfo?.networkInterfaces != null && ctx.json?.agentRealtimeInfo?.networkInterfaces instanceof List + - foreach: + field: json.agentRealtimeInfo.networkInterfaces + processor: + foreach: + field: _ingest._value.inet + processor: + append: + field: related.ip + value: '{{{_ingest._value}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + ignore_failure: true + if: ctx.json?.agentRealtimeInfo?.networkInterfaces != null && ctx.json?.agentRealtimeInfo?.networkInterfaces instanceof List + - foreach: + field: json.agentRealtimeInfo.networkInterfaces + processor: + convert: + field: _ingest._value.inet6 + type: ip + ignore_failure: true + ignore_failure: true + if: ctx.json?.agentRealtimeInfo?.networkInterfaces != null && ctx.json?.agentRealtimeInfo?.networkInterfaces instanceof List + - foreach: + field: json.agentRealtimeInfo.networkInterfaces + processor: + foreach: + field: _ingest._value.inet6 + processor: + append: + field: related.ip + value: '{{{_ingest._value}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + ignore_failure: true + if: ctx.json?.agentRealtimeInfo?.networkInterfaces != null && ctx.json?.agentRealtimeInfo?.networkInterfaces instanceof List + - foreach: + field: json.agentRealtimeInfo.networkInterfaces + processor: + append: + field: host.mac + value: "{{{_ingest._value.physical}}}" + allow_duplicates: false + ignore_failure: true + ignore_failure: true + if: ctx.json?.agentRealtimeInfo?.networkInterfaces != null && ctx.json?.agentRealtimeInfo?.networkInterfaces instanceof List + - foreach: + field: json.agentRealtimeInfo.networkInterfaces + processor: + remove: + field: + - _ingest._value.physical + ignore_missing: true + ignore_failure: true + if: ctx.json?.agentRealtimeInfo?.networkInterfaces != null && ctx.json?.agentRealtimeInfo?.networkInterfaces instanceof List + - rename: + field: json.agentRealtimeInfo.networkInterfaces + target_field: sentinel_one.threat.agent.network_interface + ignore_missing: true + - gsub: + field: host.mac + pattern: '[-:.]' + replacement: '-' + ignore_missing: true + - uppercase: + field: host.mac + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.operationalState + target_field: sentinel_one.threat.agent.operational_state + ignore_missing: true + - convert: + field: json.agentRealtimeInfo.rebootRequired + target_field: sentinel_one.threat.agent.reboot_required + type: boolean + ignore_failure: true + - date: + field: json.agentRealtimeInfo.scanAbortedAt + target_field: sentinel_one.threat.agent.scan.aborted_at + formats: + - ISO8601 + ignore_failure: true + - date: + field: json.agentRealtimeInfo.scanFinishedAt + target_field: sentinel_one.threat.agent.scan.finished_at + formats: + - ISO8601 + ignore_failure: true + - date: + field: json.agentRealtimeInfo.scanStartedAt + target_field: sentinel_one.threat.agent.scan.started_at + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.agentRealtimeInfo.scanStatus + target_field: sentinel_one.threat.agent.scan.status + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.siteId + target_field: sentinel_one.threat.agent.site.id + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.siteName + target_field: sentinel_one.threat.agent.site.name + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.storageName + target_field: sentinel_one.threat.agent.storage.name + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.storageType + target_field: sentinel_one.threat.agent.storage.type + ignore_missing: true + - rename: + field: json.agentRealtimeInfo.userActionsNeeded + target_field: sentinel_one.threat.agent.user_action_needed + ignore_missing: true + - rename: + field: json.containerInfo.id + target_field: container.id + ignore_missing: true + - rename: + field: json.containerInfo.image + target_field: container.image.name + ignore_missing: true + - rename: + field: json.containerInfo.labels + target_field: sentinel_one.threat.container.labels + ignore_missing: true + - rename: + field: json.containerInfo.name + target_field: container.name + ignore_missing: true + - rename: + field: json.description + target_field: message + ignore_missing: true + - rename: + field: json.id + target_field: sentinel_one.threat.id + ignore_missing: true + - foreach: + field: json.indicators + processor: + rename: + field: _ingest._value.category + target_field: _ingest._value.category.name + ignore_missing: true + ignore_failure: true + - foreach: + field: json.indicators + processor: + rename: + field: _ingest._value.categoryId + target_field: _ingest._value.category.id + ignore_missing: true + ignore_failure: true + - foreach: + field: json.indicators + processor: + foreach: + field: _ingest._value.ids + processor: + append: + field: threat.tactic.id + value: '{{{_ingest._value}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + ignore_failure: true + - foreach: + field: json.indicators + processor: + foreach: + field: _ingest._value.tactics + processor: + append: + field: threat.tactic.name + value: '{{{_ingest._value.name}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + ignore_failure: true + - foreach: + field: json.indicators + processor: + foreach: + field: _ingest._value.tactics + processor: + append: + field: threat.framework + value: '{{{_ingest._value.source}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + ignore_failure: true + - foreach: + field: json.indicators + processor: + foreach: + field: _ingest._value.tactics + processor: + foreach: + field: _ingest._value.techniques + processor: + append: + field: threat.technique.reference + value: '{{{_ingest._value.link}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + ignore_failure: true + ignore_failure: true + - foreach: + field: json.indicators + processor: + foreach: + field: _ingest._value.tactics + processor: + foreach: + field: _ingest._value.techniques + processor: + append: + field: threat.technique.id + value: '{{{_ingest._value.name}}}' + allow_duplicates: false + ignore_failure: true + ignore_failure: true + ignore_failure: true + ignore_failure: true + - foreach: + field: json.indicators + processor: + remove: + field: + - _ingest._value.ids + - _ingest._value.tactics + ignore_missing: true + ignore_failure: true + - rename: + field: json.indicators + target_field: sentinel_one.threat.indicators + ignore_missing: true + - rename: + field: json.kubernetesInfo.cluster + target_field: sentinel_one.threat.kubernetes.cluster + ignore_missing: true + - rename: + field: json.kubernetesInfo.controllerKind + target_field: sentinel_one.threat.kubernetes.controller.kind + ignore_missing: true + - rename: + field: json.kubernetesInfo.controllerLabels + target_field: sentinel_one.threat.kubernetes.controller.labels + ignore_missing: true + - rename: + field: json.kubernetesInfo.controllerName + target_field: sentinel_one.threat.kubernetes.controller.name + ignore_missing: true + - rename: + field: json.kubernetesInfo.namespace + target_field: sentinel_one.threat.kubernetes.namespace.name + ignore_missing: true + - rename: + field: json.kubernetesInfo.namespaceLabels + target_field: sentinel_one.threat.kubernetes.namespace.labels + ignore_missing: true + - rename: + field: json.kubernetesInfo.node + target_field: sentinel_one.threat.kubernetes.node + ignore_missing: true + - rename: + field: json.kubernetesInfo.pod + target_field: sentinel_one.threat.kubernetes.pod.name + ignore_missing: true + - rename: + field: json.kubernetesInfo.podLabels + target_field: sentinel_one.threat.kubernetes.pod.labels + ignore_missing: true + - foreach: + field: json.mitigationStatus + processor: + convert: + field: _ingest._value.actionsCounters.failed + target_field: _ingest._value.action_counters.failed + type: long + ignore_failure: true + ignore_failure: true + if: ctx.json?.mitigationStatus != null && ctx.json?.mitigationStatus instanceof List + - foreach: + field: json.mitigationStatus + processor: + convert: + field: _ingest._value.actionsCounters.notFound + target_field: _ingest._value.action_counters.not_found + type: long + ignore_failure: true + ignore_failure: true + if: ctx.json?.mitigationStatus != null && ctx.json?.mitigationStatus instanceof List + - foreach: + field: json.mitigationStatus + processor: + convert: + field: _ingest._value.actionsCounters.pendingReboot + target_field: _ingest._value.action_counters.pending_reboot + type: long + ignore_failure: true + ignore_failure: true + if: ctx.json?.mitigationStatus != null && ctx.json?.mitigationStatus instanceof List + - foreach: + field: json.mitigationStatus + processor: + convert: + field: _ingest._value.actionsCounters.success + target_field: _ingest._value.action_counters.success + type: long + ignore_failure: true + ignore_failure: true + if: ctx.json?.mitigationStatus != null && ctx.json?.mitigationStatus instanceof List + - foreach: + field: json.mitigationStatus + processor: + convert: + field: _ingest._value.actionsCounters.total + target_field: _ingest._value.action_counters.total + type: long + ignore_failure: true + ignore_failure: true + if: ctx.json?.mitigationStatus != null && ctx.json?.mitigationStatus instanceof List + - foreach: + field: json.mitigationStatus + processor: + convert: + field: _ingest._value.agentSupportsReport + target_field: _ingest._value.agent_supports_report + type: boolean + ignore_failure: true + ignore_failure: true + if: ctx.json?.mitigationStatus != null && ctx.json?.mitigationStatus instanceof List + - foreach: + field: json.mitigationStatus + processor: + convert: + field: _ingest._value.groupNotFound + target_field: _ingest._value.group_not_found + type: boolean + ignore_failure: true + ignore_failure: true + if: ctx.json?.mitigationStatus != null && ctx.json?.mitigationStatus instanceof List + - foreach: + field: json.mitigationStatus + processor: + date: + field: _ingest._value.lastUpdate + target_field: _ingest._value.last_update + formats: + - ISO8601 + ignore_failure: true + ignore_failure: true + if: ctx.json?.mitigationStatus != null && ctx.json?.mitigationStatus instanceof List + - foreach: + field: json.mitigationStatus + processor: + rename: + field: _ingest._value.latestReport + target_field: _ingest._value.latest_report + ignore_missing: true + ignore_failure: true + if: ctx.json?.mitigationStatus != null && ctx.json?.mitigationStatus instanceof List + - foreach: + field: json.mitigationStatus + processor: + date: + field: _ingest._value.mitigationEndedAt + target_field: _ingest._value.mitigation_ended_at + formats: + - ISO8601 + ignore_failure: true + ignore_failure: true + if: ctx.json?.mitigationStatus != null && ctx.json?.mitigationStatus instanceof List + - foreach: + field: json.mitigationStatus + processor: + date: + field: _ingest._value.mitigationStartedAt + target_field: _ingest._value.mitigation_started_at + formats: + - ISO8601 + ignore_failure: true + ignore_failure: true + if: ctx.json?.mitigationStatus != null && ctx.json?.mitigationStatus instanceof List + - foreach: + field: json.mitigationStatus + processor: + remove: + field: + - _ingest._value.actionsCounters + - _ingest._value.agentSupportsReport + - _ingest._value.groupNotFound + - _ingest._value.lastUpdate + - _ingest._value.mitigationEndedAt + - _ingest._value.mitigationStartedAt + ignore_missing: true + ignore_failure: true + if: ctx.json?.mitigationStatus != null && ctx.json?.mitigationStatus instanceof List + - rename: + field: json.mitigationStatus + target_field: sentinel_one.threat.mitigation_status + ignore_missing: true + - rename: + field: json.threatInfo.analystVerdict + target_field: sentinel_one.threat.analysis.verdict + ignore_missing: true + - rename: + field: json.threatInfo.analystVerdictDescription + target_field: sentinel_one.threat.analysis.description + ignore_missing: true + - convert: + field: json.threatInfo.automaticallyResolved + target_field: sentinel_one.threat.automatically_resolved + type: boolean + ignore_failure: true + - rename: + field: json.threatInfo.browserType + target_field: sentinel_one.threat.browser_type + ignore_missing: true + - rename: + field: json.threatInfo.certificateId + target_field: sentinel_one.threat.certificate.id + ignore_missing: true + - rename: + field: json.threatInfo.classification + target_field: sentinel_one.threat.classification + ignore_missing: true + - rename: + field: json.threatInfo.classificationSource + target_field: sentinel_one.threat.classification_source + ignore_missing: true + - rename: + field: json.threatInfo.cloudFilesHashVerdict + target_field: sentinel_one.threat.cloudfiles_hash_verdict + ignore_missing: true + - rename: + field: json.threatInfo.collectionId + target_field: sentinel_one.threat.collection.id + ignore_missing: true + - rename: + field: json.threatInfo.confidenceLevel + target_field: sentinel_one.threat.confidence_level + ignore_missing: true + - date: + field: json.threatInfo.createdAt + target_field: sentinel_one.threat.created_at + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.threatInfo.detectionEngines + target_field: sentinel_one.threat.detection.engines + ignore_missing: true + - rename: + field: json.threatInfo.detectionType + target_field: sentinel_one.threat.detection.type + ignore_missing: true + - rename: + field: json.threatInfo.engines + target_field: sentinel_one.threat.engines + ignore_missing: true + - convert: + field: json.threatInfo.externalTicketExists + target_field: sentinel_one.threat.external_ticket.exist + type: boolean + ignore_failure: true + - rename: + field: json.threatInfo.externalTicketId + target_field: sentinel_one.threat.external_ticket.id + ignore_missing: true + - convert: + field: json.threatInfo.failedActions + target_field: sentinel_one.threat.failed_actions + type: boolean + ignore_failure: true + - rename: + field: json.threatInfo.fileExtension + target_field: threat.indicator.file.extension + ignore_missing: true + - rename: + field: json.threatInfo.fileExtensionType + target_field: sentinel_one.threat.file.extension.type + ignore_missing: true + - rename: + field: json.threatInfo.filePath + target_field: threat.indicator.file.path + ignore_missing: true + - convert: + field: json.threatInfo.fileSize + target_field: threat.indicator.file.size + type: long + ignore_failure: true + - rename: + field: json.threatInfo.fileVerificationType + target_field: sentinel_one.threat.file.verification_type + ignore_missing: true + - date: + field: json.threatInfo.identifiedAt + target_field: sentinel_one.threat.file.identified_at + formats: + - ISO8601 + ignore_failure: true + - rename: + field: json.threatInfo.incidentStatus + target_field: sentinel_one.threat.incident.status + ignore_missing: true + - rename: + field: json.threatInfo.incidentStatusDescription + target_field: sentinel_one.threat.incident.status_description + ignore_missing: true + - rename: + field: json.threatInfo.initiatedBy + target_field: sentinel_one.threat.initiated.name + ignore_missing: true + - rename: + field: json.threatInfo.initiatedByDescription + target_field: sentinel_one.threat.initiated.description + ignore_missing: true + - rename: + field: json.threatInfo.initiatingUserId + target_field: sentinel_one.threat.initiating_user.id + ignore_missing: true + - rename: + field: json.threatInfo.initiatingUsername + target_field: sentinel_one.threat.initiating_user.name + ignore_missing: true + - append: + field: related.user + value: '{{{sentinel_one.threat.initiating_user.name}}}' + if: ctx.sentinel_one?.threat?.initiating_user?.name != null + allow_duplicates: false + ignore_failure: true + - convert: + field: json.threatInfo.isFileless + target_field: sentinel_one.threat.is_fileless + type: boolean + ignore_failure: true + - convert: + field: json.threatInfo.isValidCertificate + target_field: sentinel_one.threat.is_valid_certificate + type: boolean + ignore_failure: true + - rename: + field: json.threatInfo.maliciousProcessArguments + target_field: sentinel_one.threat.malicious_process_arguments + ignore_missing: true + - rename: + field: json.threatInfo.md5 + target_field: threat.indicator.file.hash.md5 + ignore_missing: true + - convert: + field: json.threatInfo.mitigatedPreemptively + target_field: sentinel_one.threat.mitigated_preemptively + type: boolean + ignore_failure: true + - rename: + field: json.threatInfo.mitigationStatus + target_field: sentinel_one.threat.mitigation.status + ignore_missing: true + - rename: + field: json.threatInfo.mitigationStatusDescription + target_field: sentinel_one.threat.mitigation.description + ignore_missing: true + - rename: + field: json.threatInfo.originatorProcess + target_field: sentinel_one.threat.originator_process + ignore_missing: true + - convert: + field: json.threatInfo.pendingActions + target_field: sentinel_one.threat.pending_actions + type: boolean + ignore_failure: true + - rename: + field: json.threatInfo.processUser + target_field: sentinel_one.threat.process_user + ignore_missing: true + - append: + field: related.user + value: '{{{sentinel_one.threat.process_user}}}' + if: ctx.sentinel_one?.threat?.process_user != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.threatInfo.publisherName + target_field: sentinel_one.threat.publisher.name + ignore_missing: true + - convert: + field: json.threatInfo.reachedEventsLimit + target_field: sentinel_one.threat.reached_events_limit + type: boolean + ignore_failure: true + - convert: + field: json.threatInfo.rebootRequired + target_field: sentinel_one.threat.reboot_required + type: boolean + ignore_failure: true + - rename: + field: json.threatInfo.sha1 + target_field: threat.indicator.file.hash.sha1 + ignore_missing: true + - append: + field: related.hash + value: '{{{threat.indicator.file.hash.sha1}}}' + if: ctx.threat?.indicator?.file?.hash?.sha1 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.threatInfo.sha256 + target_field: threat.indicator.file.hash.sha256 + ignore_missing: true + - append: + field: related.hash + value: '{{{threat.indicator.file.hash.sha256}}}' + if: ctx.threat?.indicator?.file?.hash?.sha256 != null + allow_duplicates: false + ignore_failure: true + - rename: + field: json.threatInfo.storyline + target_field: sentinel_one.threat.storyline + ignore_missing: true + - rename: + field: json.threatInfo.threatId + target_field: sentinel_one.threat.threat_id + ignore_missing: true + - rename: + field: json.threatInfo.threatName + target_field: sentinel_one.threat.name + ignore_missing: true + - rename: + field: json.whiteningOptions + target_field: sentinel_one.threat.whitening_option + ignore_missing: true + - remove: + field: json + ignore_missing: true + - remove: + field: event.original + if: ctx.tags == null || !(ctx.tags.contains('preserve_original_event')) + ignore_failure: true + ignore_missing: true + - script: + description: Drops null/empty values recursively. + lang: painless + source: + boolean dropEmptyFields(Object object) { + if (object == null || object == "") { + return true; + } else if (object instanceof Map) { + ((Map) object).values().removeIf(value -> dropEmptyFields(value)); + return (((Map) object).size() == 0); + } else if (object instanceof List) { + ((List) object).removeIf(value -> dropEmptyFields(value)); + return (((List) object).length == 0); + } + return false; + } + dropEmptyFields(ctx); +on_failure: +- set: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' diff --git a/packages/sentinel_one/0.1.0/data_stream/threat/fields/agent.yml b/packages/sentinel_one/0.1.0/data_stream/threat/fields/agent.yml new file mode 100755 index 0000000000..6e1bac042b --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/threat/fields/agent.yml @@ -0,0 +1,186 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type +- name: log.offset + type: long + description: Log offset diff --git a/packages/sentinel_one/0.1.0/data_stream/threat/fields/base-fields.yml b/packages/sentinel_one/0.1.0/data_stream/threat/fields/base-fields.yml new file mode 100755 index 0000000000..43a1d989b7 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/threat/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: event.dataset + type: constant_keyword + description: Event dataset + value: sentinel_one.threat +- name: event.module + type: constant_keyword + description: Event module + value: sentinel_one +- name: '@timestamp' + type: date + description: Event timestamp. diff --git a/packages/sentinel_one/0.1.0/data_stream/threat/fields/ecs.yml b/packages/sentinel_one/0.1.0/data_stream/threat/fields/ecs.yml new file mode 100755 index 0000000000..2d2f962a39 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/threat/fields/ecs.yml @@ -0,0 +1,137 @@ +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + event.created contains the date/time when the event was first read by an agent, or by your pipeline. + This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. + In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. + In case the two timestamps are identical, @timestamp should be used. + name: event.created + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. + This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. + doc_values: false + index: false + name: event.original + type: keyword +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: City name. + name: host.geo.city_name + type: keyword +- description: Name of the continent. + name: host.geo.continent_name + type: keyword +- description: Country ISO code. + name: host.geo.country_iso_code + type: keyword +- description: Country name. + name: host.geo.country_name + type: keyword +- description: Longitude and latitude. + name: host.geo.location + type: geo_point +- description: Region ISO code. + name: host.geo.region_iso_code + type: keyword +- description: Region name. + name: host.geo.region_name + type: keyword +- description: |- + Use the `os.type` field to categorize the operating system into one of the broad commercial families. + One of these following values should be used (lowercase): linux, macos, unix, windows. + If the OS you're dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. + name: host.os.type + type: keyword +- description: |- + For log events the message field contains the log message, optimized for viewing in a log viewer. + For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. + If multiple messages exist, they can be combined into one message. + name: message + type: match_only_text +- description: Observer version. + name: observer.version + type: keyword +- description: All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). + name: related.hash + type: keyword +- description: All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. + name: related.hosts + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: Name of the threat framework used to further categorize and classify the tactic and technique of the reported threat. Framework classification can be provided by detecting systems, evaluated at ingest time, or retrospectively tagged to events. + name: threat.framework + type: keyword +- description: |- + File extension, excluding the leading dot. + Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). + name: threat.indicator.file.extension + type: keyword +- description: MD5 hash. + name: threat.indicator.file.hash.md5 + type: keyword +- description: SHA1 hash. + name: threat.indicator.file.hash.sha1 + type: keyword +- description: SHA256 hash. + name: threat.indicator.file.hash.sha256 + type: keyword +- description: Full path to the file, including the file name. It should include the drive letter, when appropriate. + multi_fields: + - name: text + type: match_only_text + name: threat.indicator.file.path + type: keyword +- description: |- + File size in bytes. + Only relevant when `file.type` is "file". + name: threat.indicator.file.size + type: long +- description: The id of tactic used by this threat. You can use a MITRE ATT&CK® tactic, for example. (ex. https://attack.mitre.org/tactics/TA0002/ ) + name: threat.tactic.id + type: keyword +- description: Name of the type of tactic used by this threat. You can use a MITRE ATT&CK® tactic, for example. (ex. https://attack.mitre.org/tactics/TA0002/) + name: threat.tactic.name + type: keyword +- description: The id of technique used by this threat. You can use a MITRE ATT&CK® technique, for example. (ex. https://attack.mitre.org/techniques/T1059/) + name: threat.technique.id + type: keyword +- description: The reference url of technique used by this threat. You can use a MITRE ATT&CK® technique, for example. (ex. https://attack.mitre.org/techniques/T1059/) + name: threat.technique.reference + type: keyword +- description: User email address. + name: user.email + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword diff --git a/packages/sentinel_one/0.1.0/data_stream/threat/fields/fields.yml b/packages/sentinel_one/0.1.0/data_stream/threat/fields/fields.yml new file mode 100755 index 0000000000..8466924293 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/threat/fields/fields.yml @@ -0,0 +1,462 @@ +- name: sentinel_one.threat + type: group + fields: + - name: agent + type: group + fields: + - name: account + type: group + fields: + - name: id + type: keyword + description: Account id. + - name: name + type: keyword + description: Account name. + - name: active_threats + type: long + description: Active threats. + - name: decommissioned_at + type: boolean + description: Decommissioned at. + - name: group + type: group + fields: + - name: id + type: keyword + description: Group id. + - name: name + type: keyword + description: Group name. + - name: infected + type: boolean + description: Agent infected. + - name: is_active + type: boolean + description: Is active. + - name: is_decommissioned + type: boolean + description: Is decommissioned. + - name: machine_type + type: keyword + description: Machine type. + - name: mitigation_mode + type: keyword + description: Agent mitigation mode policy. + - name: network_interface + type: group + fields: + - name: id + type: keyword + description: Device's network interfaces id. + - name: inet + type: keyword + description: Device's network interfaces IPv4 addresses. + - name: inet6 + type: keyword + description: Device's network interfaces IPv6 addresses. + - name: name + type: keyword + description: Device's network interfaces IPv4 Name. + - name: network_status + type: keyword + description: Network status. + - name: operational_state + type: keyword + description: Agent operational state. + - name: os + type: group + fields: + - name: version + type: keyword + description: OS revision. + - name: reboot_required + type: boolean + description: A reboot is required on the endpoint for at least one acton on the threat. + - name: scan + type: group + fields: + - name: aborted_at + type: keyword + description: Abort time of last scan (if applicable). + - name: finished_at + type: keyword + description: Finish time of last scan (if applicable). + - name: started_at + type: keyword + description: Start time of last scan. + - name: status + type: keyword + description: Scan status. + - name: site + type: group + fields: + - name: id + type: keyword + description: Site id. + - name: name + type: keyword + description: Site name. + - name: storage + type: group + fields: + - name: name + type: keyword + description: Storage Name. + - name: type + type: keyword + description: Storage Type. + - name: user_action_needed + type: keyword + description: 'A list of pending user actions. List items possible values: "none, reboot_needed, user_acton_needed, upgrade_needed, incompatible_os, unprotected, user_acton_needed_fda, user_acton_needed_rs_fda,user_acton_needed_network, rebootless_without_dynamic_detection, extended_exclusions_partially_accepted, user_action_needed_bluetooth_per".' + - name: uuid + type: keyword + description: UUID. + - name: analysis + type: group + fields: + - name: description + type: keyword + description: Analyst verdict description. + - name: verdict + type: keyword + description: Analyst verdict. + - name: automatically_resolved + type: boolean + description: Automatically resolved. + - name: browser_type + type: keyword + description: Browser type. + - name: certificate + type: group + fields: + - name: id + type: keyword + description: File Certificate ID. + - name: classification + type: keyword + description: Classification of the threat. + - name: classification_source + type: keyword + description: Source of the threat Classification. + - name: cloudfiles_hash_verdict + type: keyword + description: Cloud files hash verdict. + - name: collection + type: group + fields: + - name: id + type: keyword + description: Collection id. + - name: confidence_level + type: keyword + description: SentinelOne threat confidence level. + - name: container + type: group + fields: + - name: labels + type: keyword + description: Container labels. + - name: created_at + type: date + description: Timestamp of date creation in the Management Console. + - name: detection + type: group + fields: + - name: account + type: group + fields: + - name: id + type: keyword + description: Orig account id. + - name: name + type: keyword + description: Orig account name. + - name: agent + type: group + fields: + - name: domain + type: keyword + description: Network domain. + - name: group + type: group + fields: + - name: id + type: keyword + description: Orig group id. + - name: name + type: keyword + description: Orig group name. + - name: ipv4 + type: ip + description: Orig agent ipv4. + - name: ipv6 + type: ip + description: Orig agent ipv6. + - name: last_logged_in + type: group + fields: + - name: upn + type: keyword + description: UPN of last logged in user. + - name: mitigation_mode + type: keyword + description: Agent mitigation mode policy. + - name: os + type: group + fields: + - name: name + type: keyword + description: Orig agent OS name. + - name: version + type: keyword + description: Orig agent OS revision. + - name: registered_at + type: date + description: Time of first registration to management console. + - name: site + type: group + fields: + - name: id + type: keyword + description: Orig site id. + - name: name + type: keyword + description: Orig site name. + - name: uuid + type: keyword + description: UUID of the agent. + - name: version + type: keyword + description: Orig agent version. + - name: cloud_providers + type: flattened + description: Cloud providers for this agent. + - name: engines + type: group + fields: + - name: key + type: keyword + description: List of engines that detected the threat key. + - name: title + type: keyword + description: List of engines that detected the threat title. + - name: state + type: keyword + description: The Agent's detection state at time of detection. + - name: type + type: keyword + description: Detection type. + - name: engines + type: keyword + description: List of engines that detected the threat. + - name: external_ticket + type: group + fields: + - name: exist + type: boolean + description: External ticket exists. + - name: id + type: keyword + description: External ticket id. + - name: failed_actions + type: boolean + description: At least one action failed on the threat. + - name: file + type: group + fields: + - name: extension + type: group + fields: + - name: type + type: keyword + description: File extension type. + - name: identified_at + type: keyword + description: Identified at. + - name: verification_type + type: keyword + description: File verification type. + - name: id + type: keyword + description: Threat id. + - name: incident + type: group + fields: + - name: status + type: keyword + description: Incident status. + - name: status_description + type: keyword + description: Incident status description. + - name: indicators + type: group + fields: + - name: category + type: group + fields: + - name: id + type: long + description: Indicators Category Id. + - name: name + type: keyword + description: Indicators Category Name. + - name: description + type: keyword + description: Indicators Description. + - name: initiated + type: group + fields: + - name: description + type: keyword + description: Initiated by description. + - name: name + type: keyword + description: Source of threat. + - name: initiating_user + type: group + fields: + - name: id + type: keyword + description: Initiating user id. + - name: name + type: keyword + description: Initiating user username. + - name: is_fileless + type: boolean + description: Is fileless. + - name: is_valid_certificate + type: boolean + description: True if the certificate is valid. + - name: kubernetes + type: group + fields: + - name: cluster + type: keyword + description: Cluster. + - name: controller + type: group + fields: + - name: kind + type: keyword + description: Controller kind. + - name: labels + type: keyword + description: Controller labels. + - name: name + type: keyword + description: Controller name. + - name: namespace + type: group + fields: + - name: labels + type: keyword + description: Namespace labels. + - name: name + type: keyword + description: Namespace name. + - name: node + type: keyword + description: Node. + - name: pod + type: group + fields: + - name: labels + type: keyword + description: Pod labels. + - name: name + type: keyword + description: Pod name. + - name: malicious_process_arguments + type: keyword + description: Malicious process arguments. + - name: mitigated_preemptively + type: boolean + description: True is the threat was blocked before execution. + - name: mitigation + type: group + fields: + - name: description + type: keyword + description: Mitigation status description. + - name: status + type: keyword + description: Mitigation status. + - name: mitigation_status + type: group + fields: + - name: action + type: keyword + description: Action. + - name: action_counters + type: group + fields: + - name: failed + type: long + description: Actions counters Failed. + - name: not_found + type: long + description: Actions counters Not found. + - name: pending_reboot + type: long + description: Actions counters Pending reboot. + - name: success + type: long + description: Actions counters Success. + - name: total + type: long + description: Actions counters Total. + - name: agent_supports_report + type: keyword + description: The Agent generates a full mitigation report. + - name: group_not_found + type: keyword + description: Agent could not find the threat. + - name: last_update + type: keyword + description: Timestamp of last mitigation status update. + - name: latest_report + type: keyword + description: Report download URL. If None, there is no report. + - name: mitigation_ended_at + type: keyword + description: The time the Agent finished the mitigation. + - name: mitigation_started_at + type: keyword + description: The time the Agent started the mitigation. + - name: status + type: keyword + description: Status. + - name: name + type: keyword + description: Threat name. + - name: originator_process + type: keyword + description: Originator process. + - name: pending_actions + type: boolean + description: At least one action is pending on the threat. + - name: process_user + type: keyword + description: Process user. + - name: publisher + type: group + fields: + - name: name + type: keyword + description: Certificate publisher. + - name: reached_events_limit + type: boolean + description: Has number of OS events for this threat reached the limit, resulting in a partial attack storyline. + - name: reboot_required + type: boolean + description: A reboot is required on the endpoint for at least one threat. + - name: storyline + type: keyword + description: Storyline identifier from agent. + - name: threat_id + type: keyword + description: Threat id. + - name: whitening_option + type: keyword + description: Whitening options. diff --git a/packages/sentinel_one/0.1.0/data_stream/threat/manifest.yml b/packages/sentinel_one/0.1.0/data_stream/threat/manifest.yml new file mode 100755 index 0000000000..5dcd6795cd --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/threat/manifest.yml @@ -0,0 +1,50 @@ +title: Collect Threat logs from SentinelOne +type: logs +streams: + - input: httpjson + title: Threat logs + description: Collect threat logs from SentinelOne. + template_path: httpjson.yml.hbs + vars: + - name: initial_interval + type: text + title: Initial Interval + description: How far back to pull the threats from SentinelOne. + multi: false + required: true + show_user: true + default: 24h + - name: interval + type: text + title: Interval + description: Duration between requests to the SentinelOne API. + default: 5m + multi: false + required: true + show_user: true + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - forwarded + - sentinel_one-threat + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + diff --git a/packages/sentinel_one/0.1.0/data_stream/threat/sample_event.json b/packages/sentinel_one/0.1.0/data_stream/threat/sample_event.json new file mode 100755 index 0000000000..1679d543d9 --- /dev/null +++ b/packages/sentinel_one/0.1.0/data_stream/threat/sample_event.json @@ -0,0 +1,264 @@ +{ + "@timestamp": "2022-04-06T08:54:17.194Z", + "agent": { + "ephemeral_id": "eb3774ca-88e6-42f1-a7de-e4f5d910a8f4", + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.1.3" + }, + "data_stream": { + "dataset": "sentinel_one.threat", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "snapshot": false, + "version": "8.1.3" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "malware" + ], + "created": "2022-05-09T12:56:37.374Z", + "dataset": "sentinel_one.threat", + "ingested": "2022-05-09T12:56:40Z", + "kind": "event", + "original": "{\"agentDetectionInfo\":{\"accountId\":\"1234567890123456789\",\"accountName\":\"Default\",\"agentDetectionState\":null,\"agentDomain\":\"WORKGROUP\",\"agentIpV4\":\"10.0.0.1\",\"agentIpV6\":\"XX80::7X59:X6X9:9X72:XXXX\",\"agentLastLoggedInUpn\":null,\"agentLastLoggedInUserMail\":null,\"agentLastLoggedInUserName\":\"\",\"agentMitigationMode\":\"protect\",\"agentOsName\":\"linux\",\"agentOsRevision\":\"1234\",\"agentRegisteredAt\":\"2022-04-06T08:26:45.515278Z\",\"agentUuid\":\"fwfbxxxxxxxxxxqcfjfnxxxxxxxxx\",\"agentVersion\":\"21.x.x\",\"cloudProviders\":{},\"externalIp\":\"81.2.69.143\",\"groupId\":\"1234567890123456789\",\"groupName\":\"Default Group\",\"siteId\":\"1234567890123456789\",\"siteName\":\"Default site\"},\"agentRealtimeInfo\":{\"accountId\":\"1234567890123456789\",\"accountName\":\"Default\",\"activeThreats\":7,\"agentComputerName\":\"test-LINUX\",\"agentDecommissionedAt\":null,\"agentDomain\":\"WORKGROUP\",\"agentId\":\"1234567890123456789\",\"agentInfected\":true,\"agentIsActive\":true,\"agentIsDecommissioned\":false,\"agentMachineType\":\"server\",\"agentMitigationMode\":\"detect\",\"agentNetworkStatus\":\"connected\",\"agentOsName\":\"linux\",\"agentOsRevision\":\"1234\",\"agentOsType\":\"linux\",\"agentUuid\":\"fwfbxxxxxxxxxxqcfjfnxxxxxxxxx\",\"agentVersion\":\"21.x.x.1234\",\"groupId\":\"1234567890123456789\",\"groupName\":\"Default Group\",\"networkInterfaces\":[{\"id\":\"1234567890123456789\",\"inet\":[\"10.0.0.1\"],\"inet6\":[\"2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6\"],\"name\":\"Ethernet\",\"physical\":\"X2:0X:0X:X6:00:XX\"}],\"operationalState\":\"na\",\"rebootRequired\":false,\"scanAbortedAt\":null,\"scanFinishedAt\":\"2022-04-06T09:18:21.090855Z\",\"scanStartedAt\":\"2022-04-06T08:26:52.838047Z\",\"scanStatus\":\"finished\",\"siteId\":\"1234567890123456789\",\"siteName\":\"Default site\",\"storageName\":null,\"storageType\":null,\"userActionsNeeded\":[]},\"containerInfo\":{\"id\":null,\"image\":null,\"labels\":null,\"name\":null},\"id\":\"1234567890123456789\",\"indicators\":[],\"kubernetesInfo\":{\"cluster\":null,\"controllerKind\":null,\"controllerLabels\":null,\"controllerName\":null,\"namespace\":null,\"namespaceLabels\":null,\"node\":null,\"pod\":null,\"podLabels\":null},\"mitigationStatus\":[{\"action\":\"unquarantine\",\"actionsCounters\":{\"failed\":0,\"notFound\":0,\"pendingReboot\":0,\"success\":1,\"total\":1},\"agentSupportsReport\":true,\"groupNotFound\":false,\"lastUpdate\":\"2022-04-06T08:54:17.198002Z\",\"latestReport\":\"/threats/mitigation-report\",\"mitigationEndedAt\":\"2022-04-06T08:54:17.101000Z\",\"mitigationStartedAt\":\"2022-04-06T08:54:17.101000Z\",\"status\":\"success\"},{\"action\":\"kill\",\"actionsCounters\":null,\"agentSupportsReport\":true,\"groupNotFound\":false,\"lastUpdate\":\"2022-04-06T08:45:55.303355Z\",\"latestReport\":null,\"mitigationEndedAt\":\"2022-04-06T08:45:55.297364Z\",\"mitigationStartedAt\":\"2022-04-06T08:45:55.297363Z\",\"status\":\"success\"}],\"threatInfo\":{\"analystVerdict\":\"undefined\",\"analystVerdictDescription\":\"Undefined\",\"automaticallyResolved\":false,\"browserType\":null,\"certificateId\":\"\",\"classification\":\"Trojan\",\"classificationSource\":\"Cloud\",\"cloudFilesHashVerdict\":\"black\",\"collectionId\":\"1234567890123456789\",\"confidenceLevel\":\"malicious\",\"createdAt\":\"2022-04-06T08:45:54.519988Z\",\"detectionEngines\":[{\"key\":\"sentinelone_cloud\",\"title\":\"SentinelOne Cloud\"}],\"detectionType\":\"static\",\"engines\":[\"SentinelOne Cloud\"],\"externalTicketExists\":false,\"externalTicketId\":null,\"failedActions\":false,\"fileExtension\":\"EXE\",\"fileExtensionType\":\"Executable\",\"filePath\":\"default.exe\",\"fileSize\":1234,\"fileVerificationType\":\"NotSigned\",\"identifiedAt\":\"2022-04-06T08:45:53.968000Z\",\"incidentStatus\":\"unresolved\",\"incidentStatusDescription\":\"Unresolved\",\"initiatedBy\":\"agent_policy\",\"initiatedByDescription\":\"Agent Policy\",\"initiatingUserId\":null,\"initiatingUsername\":null,\"isFileless\":false,\"isValidCertificate\":false,\"maliciousProcessArguments\":null,\"md5\":null,\"mitigatedPreemptively\":false,\"mitigationStatus\":\"not_mitigated\",\"mitigationStatusDescription\":\"Not mitigated\",\"originatorProcess\":\"default.exe\",\"pendingActions\":false,\"processUser\":\"test user\",\"publisherName\":\"\",\"reachedEventsLimit\":false,\"rebootRequired\":false,\"sha1\":\"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d\",\"sha256\":null,\"storyline\":\"D0XXXXXXXXXXAF4D\",\"threatId\":\"1234567890123456789\",\"threatName\":\"default.exe\",\"updatedAt\":\"2022-04-06T08:54:17.194122Z\"},\"whiteningOptions\":[\"hash\"]}", + "type": [ + "info" + ] + }, + "host": { + "domain": "WORKGROUP", + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "id": "1234567890123456789", + "ip": "81.2.69.143", + "mac": [ + "X2-0X-0X-X6-00-XX" + ], + "name": "test-LINUX", + "os": { + "name": "linux", + "type": "linux" + } + }, + "input": { + "type": "httpjson" + }, + "observer": { + "version": "21.x.x.1234" + }, + "related": { + "hash": [ + "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d" + ], + "hosts": [ + "test-LINUX" + ], + "ip": [ + "10.0.0.1", + "81.2.69.143", + "2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6" + ], + "user": [ + "test user" + ] + }, + "sentinel_one": { + "threat": { + "agent": { + "account": { + "id": "1234567890123456789", + "name": "Default" + }, + "active_threats": 7, + "group": { + "id": "1234567890123456789", + "name": "Default Group" + }, + "infected": true, + "is_active": true, + "is_decommissioned": false, + "machine_type": "server", + "mitigation_mode": "detect", + "network_interface": [ + { + "id": "1234567890123456789", + "inet": [ + "10.0.0.1" + ], + "inet6": [ + "2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6" + ], + "name": "Ethernet" + } + ], + "network_status": "connected", + "operational_state": "na", + "os": { + "version": "1234" + }, + "reboot_required": false, + "scan": { + "finished_at": "2022-04-06T09:18:21.090Z", + "started_at": "2022-04-06T08:26:52.838Z", + "status": "finished" + }, + "site": { + "id": "1234567890123456789", + "name": "Default site" + }, + "uuid": "fwfbxxxxxxxxxxqcfjfnxxxxxxxxx" + }, + "analysis": { + "description": "Undefined", + "verdict": "undefined" + }, + "automatically_resolved": false, + "classification": "Trojan", + "classification_source": "Cloud", + "cloudfiles_hash_verdict": "black", + "collection": { + "id": "1234567890123456789" + }, + "confidence_level": "malicious", + "created_at": "2022-04-06T08:45:54.519Z", + "detection": { + "account": { + "id": "1234567890123456789", + "name": "Default" + }, + "agent": { + "domain": "WORKGROUP", + "group": { + "id": "1234567890123456789", + "name": "Default Group" + }, + "ipv4": "10.0.0.1", + "mitigation_mode": "protect", + "os": { + "name": "linux", + "version": "1234" + }, + "registered_at": "2022-04-06T08:26:45.515Z", + "site": { + "id": "1234567890123456789", + "name": "Default site" + }, + "uuid": "fwfbxxxxxxxxxxqcfjfnxxxxxxxxx", + "version": "21.x.x" + }, + "engines": [ + { + "key": "sentinelone_cloud", + "title": "SentinelOne Cloud" + } + ], + "type": "static" + }, + "engines": [ + "SentinelOne Cloud" + ], + "external_ticket": { + "exist": false + }, + "failed_actions": false, + "file": { + "extension": { + "type": "Executable" + }, + "identified_at": "2022-04-06T08:45:53.968Z", + "verification_type": "NotSigned" + }, + "id": "1234567890123456789", + "incident": { + "status": "unresolved", + "status_description": "Unresolved" + }, + "initiated": { + "description": "Agent Policy", + "name": "agent_policy" + }, + "is_fileless": false, + "is_valid_certificate": false, + "mitigated_preemptively": false, + "mitigation": { + "description": "Not mitigated", + "status": "not_mitigated" + }, + "mitigation_status": [ + { + "action": "unquarantine", + "action_counters": { + "failed": 0, + "not_found": 0, + "pending_reboot": 0, + "success": 1, + "total": 1 + }, + "agent_supports_report": true, + "group_not_found": false, + "last_update": "2022-04-06T08:54:17.198Z", + "latest_report": "/threats/mitigation-report", + "mitigation_ended_at": "2022-04-06T08:54:17.101Z", + "mitigation_started_at": "2022-04-06T08:54:17.101Z", + "status": "success" + }, + { + "action": "kill", + "agent_supports_report": true, + "group_not_found": false, + "last_update": "2022-04-06T08:45:55.303Z", + "mitigation_ended_at": "2022-04-06T08:45:55.297Z", + "mitigation_started_at": "2022-04-06T08:45:55.297Z", + "status": "success" + } + ], + "name": "default.exe", + "originator_process": "default.exe", + "pending_actions": false, + "process_user": "test user", + "reached_events_limit": false, + "reboot_required": false, + "storyline": "D0XXXXXXXXXXAF4D", + "threat_id": "1234567890123456789", + "whitening_option": [ + "hash" + ] + } + }, + "tags": [ + "preserve_original_event", + "forwarded", + "sentinel_one-threat" + ], + "threat": { + "indicator": { + "file": { + "extension": "EXE", + "hash": { + "sha1": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d" + }, + "path": "default.exe", + "size": 1234 + } + } + } +} \ No newline at end of file diff --git a/packages/sentinel_one/0.1.0/docs/README.md b/packages/sentinel_one/0.1.0/docs/README.md new file mode 100755 index 0000000000..1e4ff524d5 --- /dev/null +++ b/packages/sentinel_one/0.1.0/docs/README.md @@ -0,0 +1,1658 @@ +# SentinelOne + +The [SentinelOne](https://www.sentinelone.com/) integration collects and parses data from SentinelOne REST APIs. + +## Compatibility + +This module has been tested against `SentinelOne Management Console API version 2.1`. + +## To collect data from SentinelOne APIs, user must have API Token. To create API token follow below steps: + + 1. Log in to the **SentinelOne Management Console** as an **Admin**. + ![SentinelOne dashboards](../img/sentinel-one-dashboard.png) + 2. Navigate to **Logged User Account** from top right panel in navigation bar. + 3. Click **My User**. + 4. In the API token section, click **Generate**. + ![SentinelOne generate API token ](../img/sentinel-one-api-token-generate.png) + +## Note + +The API token generated by user is time-limited. To rotate a new token login with the dedicated admin account. + +## Logs + +### activity + +This is the `activity` dataset. + +An example event for `activity` looks as following: + +```json +{ + "@timestamp": "2022-04-05T16:01:56.995Z", + "agent": { + "ephemeral_id": "f2ec0399-ee92-4b20-8a43-508d761cfc8b", + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.1.3" + }, + "data_stream": { + "dataset": "sentinel_one.activity", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "snapshot": false, + "version": "8.1.3" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "malware" + ], + "created": "2022-05-09T12:53:01.467Z", + "dataset": "sentinel_one.activity", + "ingested": "2022-05-09T12:53:02Z", + "kind": "event", + "original": "{\"accountId\":\"1234567890123456789\",\"accountName\":\"Default\",\"activityType\":1234,\"agentId\":null,\"agentUpdatedVersion\":null,\"comments\":null,\"createdAt\":\"2022-04-05T16:01:56.995120Z\",\"data\":{\"accountId\":1234567890123456800,\"accountName\":\"Default\",\"fullScopeDetails\":\"Account Default\",\"fullScopeDetailsPath\":\"test/path\",\"groupName\":null,\"scopeLevel\":\"Account\",\"scopeName\":\"Default\",\"siteName\":null,\"username\":\"test user\"},\"description\":null,\"groupId\":null,\"groupName\":null,\"hash\":null,\"id\":\"1234567890123456789\",\"osFamily\":null,\"primaryDescription\":\"created Default account.\",\"secondaryDescription\":null,\"siteId\":null,\"siteName\":null,\"threatId\":null,\"updatedAt\":\"2022-04-05T16:01:56.992136Z\",\"userId\":\"1234567890123456789\"}", + "type": [ + "info" + ] + }, + "input": { + "type": "httpjson" + }, + "related": { + "user": [ + "test user" + ] + }, + "sentinel_one": { + "activity": { + "account": { + "id": "1234567890123456789", + "name": "Default" + }, + "data": { + "account": { + "id": "1234567890123456800", + "name": "Default" + }, + "fullscope": { + "details": "Account Default", + "details_path": "test/path" + }, + "scope": { + "level": "Account", + "name": "Default" + } + }, + "description": { + "primary": "created Default account." + }, + "id": "1234567890123456789", + "type": 1234, + "updated_at": "2022-04-05T16:01:56.992Z" + } + }, + "tags": [ + "preserve_original_event", + "forwarded", + "sentinel_one-activity" + ], + "user": { + "full_name": "test user", + "id": "1234567890123456789" + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.dataset | Event dataset | constant_keyword | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| file.hash.sha1 | SHA1 hash. | keyword | +| file.name | Name of the file including the extension, without the directory. | keyword | +| file.path | Full path to the file, including the file name. It should include the drive letter, when appropriate. | keyword | +| file.path.text | Multi-field of `file.path`. | match_only_text | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.geo.city_name | City name. | keyword | +| host.geo.continent_name | Name of the continent. | keyword | +| host.geo.country_iso_code | Country ISO code. | keyword | +| host.geo.country_name | Country name. | keyword | +| host.geo.location | Longitude and latitude. | geo_point | +| host.geo.region_iso_code | Region ISO code. | keyword | +| host.geo.region_name | Region name. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| log.source.address | Source address from which the log event was read / sent from. | keyword | +| message | For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message. | match_only_text | +| observer.version | Observer version. | keyword | +| os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| process.hash.sha1 | SHA1 hash. | keyword | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| sentinel_one.activity.account.id | Related account ID (if applicable). | keyword | +| sentinel_one.activity.account.name | Related account name (if applicable). | keyword | +| sentinel_one.activity.agent.id | Related agent (if applicable). | keyword | +| sentinel_one.activity.comments | Comments. | keyword | +| sentinel_one.activity.data.account.id | Related account ID (if applicable). | keyword | +| sentinel_one.activity.data.account.name | Related account name (if applicable). | keyword | +| sentinel_one.activity.data.attr | Attribute. | keyword | +| sentinel_one.activity.data.changed_keys | Changed keys. | keyword | +| sentinel_one.activity.data.confidence.level | Confidence level. | keyword | +| sentinel_one.activity.data.created_at | Created time. | date | +| sentinel_one.activity.data.description | Description. | keyword | +| sentinel_one.activity.data.downloaded.url | Downloaded URL. | keyword | +| sentinel_one.activity.data.flattened | Extra activity specific data. | flattened | +| sentinel_one.activity.data.fullscope.details | fullscope details. | keyword | +| sentinel_one.activity.data.fullscope.details_path | fullscope details path. | keyword | +| sentinel_one.activity.data.global.status | Global status. | keyword | +| sentinel_one.activity.data.group | Related group (if applicable). | keyword | +| sentinel_one.activity.data.group_name | Related group name (if applicable). | keyword | +| sentinel_one.activity.data.malicious.process.arguments | Malicious process arguments. | keyword | +| sentinel_one.activity.data.new.confidence_level | New confidence level. | keyword | +| sentinel_one.activity.data.new.status | Status. | keyword | +| sentinel_one.activity.data.new.value | Value. | boolean | +| sentinel_one.activity.data.old.confidence_level | Old confidence level. | keyword | +| sentinel_one.activity.data.optionals_groups | Optionals groups. | keyword | +| sentinel_one.activity.data.original.status | Original status. | keyword | +| sentinel_one.activity.data.policy | Policy. | flattened | +| sentinel_one.activity.data.policy_name | Policy name. | keyword | +| sentinel_one.activity.data.reason | Reason. | keyword | +| sentinel_one.activity.data.role | Role. | keyword | +| sentinel_one.activity.data.role_name | Role name. | keyword | +| sentinel_one.activity.data.scope.level | Scope Level. | keyword | +| sentinel_one.activity.data.scope.name | Scope name. | keyword | +| sentinel_one.activity.data.scope_level.name | Scope level name. | keyword | +| sentinel_one.activity.data.site.name | Related site name (if applicable). | keyword | +| sentinel_one.activity.data.source | Source. | keyword | +| sentinel_one.activity.data.status | Status. | keyword | +| sentinel_one.activity.data.system | System. | boolean | +| sentinel_one.activity.data.threat.classification.name | Threat classification name. | keyword | +| sentinel_one.activity.data.threat.classification.source | Threat classification source. | keyword | +| sentinel_one.activity.data.user.name | User name. | keyword | +| sentinel_one.activity.data.user.scope | User scope. | keyword | +| sentinel_one.activity.data.uuid | UUID. | keyword | +| sentinel_one.activity.description.primary | Primary description. | keyword | +| sentinel_one.activity.description.secondary | Secondary description. | keyword | +| sentinel_one.activity.id | Activity ID. | keyword | +| sentinel_one.activity.site.id | Related site ID (if applicable). | keyword | +| sentinel_one.activity.site.name | Related site name (if applicable). | keyword | +| sentinel_one.activity.threat.id | Related threat ID (if applicable). | keyword | +| sentinel_one.activity.type | Activity type. | long | +| sentinel_one.activity.updated_at | Activity last updated time (UTC). | date | +| tags | List of keywords used to tag each event. | keyword | +| user.email | User email address. | keyword | +| user.full_name | User's full name, if available. | keyword | +| user.full_name.text | Multi-field of `user.full_name`. | match_only_text | +| user.group.id | Unique identifier for the group on the system/platform. | keyword | +| user.group.name | Name of the group. | keyword | +| user.id | Unique identifier of the user. | keyword | + + +### agent + +This is the `agent` dataset. + +An example event for `agent` looks as following: + +```json +{ + "@timestamp": "2022-04-07T08:31:47.481Z", + "agent": { + "ephemeral_id": "4ae89055-8911-4591-a3f2-0213bdb1a131", + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.1.3" + }, + "data_stream": { + "dataset": "sentinel_one.agent", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "snapshot": false, + "version": "8.1.3" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "host" + ], + "created": "2022-05-09T12:53:53.924Z", + "dataset": "sentinel_one.agent", + "ingested": "2022-05-09T12:53:57Z", + "kind": "event", + "original": "{\"accountId\":\"12345123451234512345\",\"accountName\":\"Account Name\",\"activeDirectory\":{\"computerDistinguishedName\":null,\"computerMemberOf\":[],\"lastUserDistinguishedName\":null,\"lastUserMemberOf\":[]},\"activeThreats\":7,\"agentVersion\":\"12.x.x.x\",\"allowRemoteShell\":true,\"appsVulnerabilityStatus\":\"not_applicable\",\"cloudProviders\":{},\"computerName\":\"user-test\",\"consoleMigrationStatus\":\"N/A\",\"coreCount\":2,\"cpuCount\":2,\"cpuId\":\"CPU Name\",\"createdAt\":\"2022-03-18T09:12:00.519500Z\",\"detectionState\":null,\"domain\":\"WORKGROUP\",\"encryptedApplications\":false,\"externalId\":\"\",\"externalIp\":\"81.2.69.143\",\"firewallEnabled\":true,\"firstFullModeTime\":null,\"groupId\":\"1234567890123456789\",\"groupIp\":\"81.2.69.x\",\"groupName\":\"Default Group\",\"id\":\"13491234512345\",\"inRemoteShellSession\":false,\"infected\":true,\"installerType\":\".msi\",\"isActive\":true,\"isDecommissioned\":false,\"isPendingUninstall\":false,\"isUninstalled\":false,\"isUpToDate\":true,\"lastActiveDate\":\"2022-03-17T09:51:28.506000Z\",\"lastIpToMgmt\":\"81.2.69.145\",\"lastLoggedInUserName\":\"\",\"licenseKey\":\"\",\"locationEnabled\":true,\"locationType\":\"not_applicable\",\"locations\":null,\"machineType\":\"server\",\"mitigationMode\":\"detect\",\"mitigationModeSuspicious\":\"detect\",\"modelName\":\"Compute Engine\",\"networkInterfaces\":[{\"gatewayIp\":\"81.2.69.145\",\"gatewayMacAddress\":\"00-00-5E-00-53-00\",\"id\":\"1234567890123456789\",\"inet\":[\"81.2.69.144\"],\"inet6\":[\"2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6\"],\"name\":\"Ethernet\",\"physical\":\"00-00-5E-00-53-00\"}],\"networkQuarantineEnabled\":false,\"networkStatus\":\"connected\",\"operationalState\":\"na\",\"operationalStateExpiration\":null,\"osArch\":\"64 bit\",\"osName\":\"Linux Server\",\"osRevision\":\"1234\",\"osStartTime\":\"2022-04-06T08:27:14Z\",\"osType\":\"linux\",\"osUsername\":null,\"rangerStatus\":\"Enabled\",\"rangerVersion\":\"21.x.x.x\",\"registeredAt\":\"2022-04-06T08:26:45.515278Z\",\"remoteProfilingState\":\"disabled\",\"remoteProfilingStateExpiration\":null,\"scanAbortedAt\":null,\"scanFinishedAt\":\"2022-04-06T09:18:21.090855Z\",\"scanStartedAt\":\"2022-04-06T08:26:52.838047Z\",\"scanStatus\":\"finished\",\"siteId\":\"1234567890123456789\",\"siteName\":\"Default site\",\"storageName\":null,\"storageType\":null,\"tags\":{\"sentinelone\":[{\"assignedAt\":\"2018-02-27T04:49:26.257525Z\",\"assignedBy\":\"test-user\",\"assignedById\":\"123456789012345678\",\"id\":\"123456789012345678\",\"key\":\"key123\",\"value\":\"value123\"}]},\"threatRebootRequired\":false,\"totalMemory\":1234,\"updatedAt\":\"2022-04-07T08:31:47.481227Z\",\"userActionsNeeded\":[\"reboot_needed\"],\"uuid\":\"XXX35XXX8Xfb4aX0X1X8X12X343X8X30\"}", + "type": [ + "info" + ] + }, + "group": { + "id": "1234567890123456789", + "name": "Default Group" + }, + "host": { + "domain": "WORKGROUP", + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "id": "13491234512345", + "ip": "81.2.69.143", + "mac": [ + "00-00-5E-00-53-00" + ], + "name": "user-test", + "os": { + "name": "Linux Server", + "type": "linux", + "version": "1234" + } + }, + "input": { + "type": "httpjson" + }, + "observer": { + "version": "12.x.x.x" + }, + "related": { + "hosts": [ + "user-test", + "WORKGROUP" + ], + "ip": [ + "81.2.69.143", + "81.2.69.145", + "81.2.69.144", + "2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6" + ] + }, + "sentinel_one": { + "agent": { + "account": { + "id": "12345123451234512345", + "name": "Account Name" + }, + "active_threats_count": 7, + "allow_remote_shell": true, + "apps_vulnerability_status": "not_applicable", + "console_migration_status": "N/A", + "core": { + "count": 2 + }, + "cpu": { + "count": 2, + "id": "CPU Name" + }, + "created_at": "2022-03-18T09:12:00.519Z", + "encrypted_application": false, + "firewall_enabled": true, + "group": { + "ip": "81.2.69.x" + }, + "in_remote_shell_session": false, + "infected": true, + "installer_type": ".msi", + "is_active": true, + "is_decommissioned": false, + "is_pending_uninstall": false, + "is_uninstalled": false, + "is_up_to_date": true, + "last_active_date": "2022-03-17T09:51:28.506Z", + "last_ip_to_mgmt": "81.2.69.145", + "location": { + "enabled": true, + "type": "not_applicable" + }, + "machine": { + "type": "server" + }, + "mitigation_mode": "detect", + "mitigation_mode_suspicious": "detect", + "model_name": "Compute Engine", + "network_interfaces": [ + { + "gateway": { + "ip": "81.2.69.145", + "mac": "00-00-5E-00-53-00" + }, + "id": "1234567890123456789", + "inet": [ + "81.2.69.144" + ], + "inet6": [ + "2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6" + ], + "name": "Ethernet" + } + ], + "network_quarantine_enabled": false, + "network_status": "connected", + "operational_state": "na", + "os": { + "arch": "64 bit", + "start_time": "2022-04-06T08:27:14.000Z" + }, + "ranger": { + "status": "Enabled", + "version": "21.x.x.x" + }, + "registered_at": "2022-04-06T08:26:45.515Z", + "remote_profiling_state": "disabled", + "scan": { + "finished_at": "2022-04-06T09:18:21.090Z", + "started_at": "2022-04-06T08:26:52.838Z", + "status": "finished" + }, + "site": { + "id": "1234567890123456789", + "name": "Default site" + }, + "tags": [ + { + "assigned_at": "2018-02-27T04:49:26.257Z", + "assigned_by": "test-user", + "assigned_by_id": "123456789012345678", + "id": "123456789012345678", + "key": "key123", + "value": "value123" + } + ], + "threat_reboot_required": false, + "total_memory": 1234, + "user_action_needed": [ + "reboot_needed" + ], + "uuid": "XXX35XXX8Xfb4aX0X1X8X12X343X8X30" + } + }, + "tags": [ + "preserve_original_event", + "forwarded", + "sentinel_one-agent" + ] +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.dataset | Event dataset | constant_keyword | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| group.id | Unique identifier for the group on the system/platform. | keyword | +| group.name | Name of the group. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.geo.city_name | City name. | keyword | +| host.geo.continent_name | Name of the continent. | keyword | +| host.geo.country_iso_code | Country ISO code. | keyword | +| host.geo.country_name | Country name. | keyword | +| host.geo.location | Longitude and latitude. | geo_point | +| host.geo.region_iso_code | Region ISO code. | keyword | +| host.geo.region_name | Region name. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.type | Use the `os.type` field to categorize the operating system into one of the broad commercial families. One of these following values should be used (lowercase): linux, macos, unix, windows. If the OS you're dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| observer.version | Observer version. | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| sentinel_one.agent.account.id | A reference to the containing account. | keyword | +| sentinel_one.agent.account.name | Name of the containing account. | keyword | +| sentinel_one.agent.active_directory.computer.member_of | Computer member of. | keyword | +| sentinel_one.agent.active_directory.computer.name | Computer distinguished name. | keyword | +| sentinel_one.agent.active_directory.last_user.distinguished_name | Last user distinguished name. | keyword | +| sentinel_one.agent.active_directory.last_user.member_of | Last user member of. | keyword | +| sentinel_one.agent.active_directory.mail | Mail. | keyword | +| sentinel_one.agent.active_directory.user.principal_name | User principal name. | keyword | +| sentinel_one.agent.active_threats_count | Current number of active threats. | long | +| sentinel_one.agent.allow_remote_shell | Agent is capable and policy enabled for remote shell. | boolean | +| sentinel_one.agent.apps_vulnerability_status | Apps vulnerability status. | keyword | +| sentinel_one.agent.cloud_provider | Cloud providers for this agent. | flattened | +| sentinel_one.agent.console_migration_status | What step the agent is at in the process of migrating to another console, if any. | keyword | +| sentinel_one.agent.core.count | CPU cores. | long | +| sentinel_one.agent.cpu.count | Number of CPUs. | long | +| sentinel_one.agent.cpu.id | CPU model. | keyword | +| sentinel_one.agent.created_at | Created at. | date | +| sentinel_one.agent.detection_state | Detection State. | keyword | +| sentinel_one.agent.encrypted_application | Disk encryption status. | boolean | +| sentinel_one.agent.external.id | External ID set by customer. | keyword | +| sentinel_one.agent.firewall_enabled | Firewall enabled. | boolean | +| sentinel_one.agent.first_full_mode_time | Date of the first time the Agent moved to full or slim detection modes. | date | +| sentinel_one.agent.group.ip | Group subnet address. | keyword | +| sentinel_one.agent.group.updated_at | Group updated at. | date | +| sentinel_one.agent.in_remote_shell_session | Is the Agent in a remote shell session. | boolean | +| sentinel_one.agent.infected | Indicates if the Agent has active threats. | boolean | +| sentinel_one.agent.installer_type | Installer package type (file extension). | keyword | +| sentinel_one.agent.is_active | Indicates if the agent was recently active. | boolean | +| sentinel_one.agent.is_decommissioned | Is Agent decommissioned. | boolean | +| sentinel_one.agent.is_pending_uninstall | Agent with a pending uninstall request. | boolean | +| sentinel_one.agent.is_uninstalled | Indicates if Agent was removed from the device. | boolean | +| sentinel_one.agent.is_up_to_date | Indicates if the agent version is up to date. | boolean | +| sentinel_one.agent.last_active_date | Last active date. | date | +| sentinel_one.agent.last_ip_to_mgmt | The last IP used to connect to the Management console. | ip | +| sentinel_one.agent.last_logged_in_user_name | Last logged in user name. | keyword | +| sentinel_one.agent.license.key | License key. | keyword | +| sentinel_one.agent.location.enabled | Location enabled. | boolean | +| sentinel_one.agent.location.type | Reported location type. | keyword | +| sentinel_one.agent.locations.id | Location ID. | keyword | +| sentinel_one.agent.locations.name | Location name. | keyword | +| sentinel_one.agent.locations.scope | Location scope. | keyword | +| sentinel_one.agent.machine.type | Machine type. | keyword | +| sentinel_one.agent.mitigation_mode | Agent mitigation mode policy. | keyword | +| sentinel_one.agent.mitigation_mode_suspicious | Mitigation mode policy for suspicious activity. | keyword | +| sentinel_one.agent.model_name | Device model. | keyword | +| sentinel_one.agent.network_interfaces.gateway.ip | The default gateway ip. | ip | +| sentinel_one.agent.network_interfaces.gateway.mac | The default gateway mac address. | keyword | +| sentinel_one.agent.network_interfaces.id | Id. | keyword | +| sentinel_one.agent.network_interfaces.inet | IPv4 addresses. | ip | +| sentinel_one.agent.network_interfaces.inet6 | IPv6 addresses. | ip | +| sentinel_one.agent.network_interfaces.name | Name. | keyword | +| sentinel_one.agent.network_quarantine_enabled | Network quarantine enabled. | boolean | +| sentinel_one.agent.network_status | Agent's network connectivity status. | keyword | +| sentinel_one.agent.operational_state | Agent operational state. | keyword | +| sentinel_one.agent.operational_state_expiration | Agent operational state expiration. | keyword | +| sentinel_one.agent.os.arch | OS architecture. | keyword | +| sentinel_one.agent.os.start_time | Last boot time. | date | +| sentinel_one.agent.policy.updated_at | Policy updated at. | date | +| sentinel_one.agent.ranger.status | Is Agent disabled as a Ranger. | keyword | +| sentinel_one.agent.ranger.version | The version of Ranger. | keyword | +| sentinel_one.agent.registered_at | Time of first registration to management console (similar to createdAt). | date | +| sentinel_one.agent.remote_profiling_state | Agent remote profiling state. | keyword | +| sentinel_one.agent.remote_profiling_state_expiration | Agent remote profiling state expiration in seconds. | keyword | +| sentinel_one.agent.scan.aborted_at | Abort time of last scan (if applicable). | date | +| sentinel_one.agent.scan.finished_at | Finish time of last scan (if applicable). | date | +| sentinel_one.agent.scan.started_at | Start time of last scan. | date | +| sentinel_one.agent.scan.status | Last scan status. | keyword | +| sentinel_one.agent.site.id | A reference to the containing site. | keyword | +| sentinel_one.agent.site.name | Name of the containing site. | keyword | +| sentinel_one.agent.storage.name | Storage name. | keyword | +| sentinel_one.agent.storage.type | Storage type. | keyword | +| sentinel_one.agent.tags.assigned_at | When tag assigned to the agent. | date | +| sentinel_one.agent.tags.assigned_by | full user name who assigned the tag to the agent. | keyword | +| sentinel_one.agent.tags.assigned_by_id | User ID who assigned the tag to the agent. | keyword | +| sentinel_one.agent.tags.id | Tag ID. | keyword | +| sentinel_one.agent.tags.key | Tag key. | keyword | +| sentinel_one.agent.tags.value | Tag value. | keyword | +| sentinel_one.agent.threat_reboot_required | Flag representing if the Agent has at least one threat with at least one mitigation action that is pending reboot to succeed. | boolean | +| sentinel_one.agent.total_memory | Memory size (MB). | long | +| sentinel_one.agent.user_action_needed | A list of pending user actions. | keyword | +| sentinel_one.agent.uuid | Agent's universally unique identifier. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | + + +### alert + +This is the `alert` dataset. + +An example event for `alert` looks as following: + +```json +{ + "@timestamp": "2018-02-27T04:49:26.257Z", + "agent": { + "ephemeral_id": "85d4ef1b-9fd3-4695-8ba0-0bb951030615", + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.1.3" + }, + "container": { + "id": "string", + "image": { + "name": "string" + }, + "name": "string" + }, + "data_stream": { + "dataset": "sentinel_one.alert", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "ip": "0.0.0.0", + "port": 1234 + }, + "dll": { + "hash": { + "sha1": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d" + }, + "path": "string" + }, + "dns": { + "question": { + "name": "string" + } + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "snapshot": false, + "version": "8.1.3" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "malware" + ], + "created": "2022-05-09T12:54:49.331Z", + "dataset": "sentinel_one.alert", + "id": "123456789123456789", + "ingested": "2022-05-09T12:54:52Z", + "kind": "event", + "original": "{\"agentDetectionInfo\":{\"machineType\":\"string\",\"name\":\"string\",\"osFamily\":\"string\",\"osName\":\"string\",\"osRevision\":\"string\",\"siteId\":\"123456789123456789\",\"uuid\":\"string\",\"version\":\"3.x.x.x\"},\"alertInfo\":{\"alertId\":\"123456789123456789\",\"analystVerdict\":\"string\",\"createdAt\":\"2018-02-27T04:49:26.257525Z\",\"dnsRequest\":\"string\",\"dnsResponse\":\"string\",\"dstIp\":\"0.0.0.0\",\"dstPort\":\"1234\",\"dvEventId\":\"string\",\"eventType\":\"string\",\"hitType\":\"Events\",\"incidentStatus\":\"string\",\"indicatorCategory\":\"string\",\"indicatorDescription\":\"string\",\"indicatorName\":\"string\",\"loginAccountDomain\":\"string\",\"loginAccountSid\":\"string\",\"loginIsAdministratorEquivalent\":\"string\",\"loginIsSuccessful\":\"string\",\"loginType\":\"string\",\"loginsUserName\":\"string\",\"modulePath\":\"string\",\"moduleSha1\":\"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d\",\"netEventDirection\":\"string\",\"registryKeyPath\":\"string\",\"registryOldValue\":\"string\",\"registryOldValueType\":\"string\",\"registryPath\":\"string\",\"registryValue\":\"string\",\"reportedAt\":\"2018-02-27T04:49:26.257525Z\",\"source\":\"string\",\"srcIp\":\"0.0.0.0\",\"srcMachineIp\":\"0.0.0.0\",\"srcPort\":\"string\",\"tiIndicatorComparisonMethod\":\"string\",\"tiIndicatorSource\":\"string\",\"tiIndicatorType\":\"string\",\"tiIndicatorValue\":\"string\",\"updatedAt\":\"2018-02-27T04:49:26.257525Z\"},\"containerInfo\":{\"id\":\"string\",\"image\":\"string\",\"labels\":\"string\",\"name\":\"string\"},\"kubernetesInfo\":{\"cluster\":\"string\",\"controllerKind\":\"string\",\"controllerLabels\":\"string\",\"controllerName\":\"string\",\"namespace\":\"string\",\"namespaceLabels\":\"string\",\"node\":\"string\",\"pod\":\"string\",\"podLabels\":\"string\"},\"ruleInfo\":{\"description\":\"string\",\"id\":\"string\",\"name\":\"string\",\"scopeLevel\":\"string\",\"severity\":\"Low\",\"treatAsThreat\":\"UNDEFINED\"},\"sourceParentProcessInfo\":{\"commandline\":\"string\",\"fileHashMd5\":\"5d41402abc4b2a76b9719d911017c592\",\"fileHashSha1\":\"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d\",\"fileHashSha256\":\"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824\",\"filePath\":\"string\",\"fileSignerIdentity\":\"string\",\"integrityLevel\":\"unknown\",\"name\":\"string\",\"pid\":\"12345\",\"pidStarttime\":\"2018-02-27T04:49:26.257525Z\",\"storyline\":\"string\",\"subsystem\":\"unknown\",\"uniqueId\":\"string\",\"user\":\"string\"},\"sourceProcessInfo\":{\"commandline\":\"string\",\"fileHashMd5\":\"5d41402abc4b2a76b9719d911017c592\",\"fileHashSha1\":\"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d\",\"fileHashSha256\":\"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824\",\"filePath\":\"string\",\"fileSignerIdentity\":\"string\",\"integrityLevel\":\"unknown\",\"name\":\"string\",\"pid\":\"12345\",\"pidStarttime\":\"2018-02-27T04:49:26.257525Z\",\"storyline\":\"string\",\"subsystem\":\"unknown\",\"uniqueId\":\"string\",\"user\":\"string\"},\"targetProcessInfo\":{\"tgtFileCreatedAt\":\"2018-02-27T04:49:26.257525Z\",\"tgtFileHashSha1\":\"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d\",\"tgtFileHashSha256\":\"2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824\",\"tgtFileId\":\"string\",\"tgtFileIsSigned\":\"string\",\"tgtFileModifiedAt\":\"2018-02-27T04:49:26.257525Z\",\"tgtFileOldPath\":\"string\",\"tgtFilePath\":\"string\",\"tgtProcCmdLine\":\"string\",\"tgtProcImagePath\":\"string\",\"tgtProcIntegrityLevel\":\"unknown\",\"tgtProcName\":\"string\",\"tgtProcPid\":\"12345\",\"tgtProcSignedStatus\":\"string\",\"tgtProcStorylineId\":\"string\",\"tgtProcUid\":\"string\",\"tgtProcessStartTime\":\"2018-02-27T04:49:26.257525Z\"}}", + "type": [ + "info" + ] + }, + "file": { + "created": "2018-02-27T04:49:26.257Z", + "mtime": "2018-02-27T04:49:26.257Z" + }, + "host": { + "ip": "0.0.0.0", + "name": "string", + "os": { + "family": "string", + "name": "string", + "version": "string" + }, + "type": "string" + }, + "input": { + "type": "httpjson" + }, + "network": { + "direction": "string" + }, + "observer": { + "serial_number": "string", + "version": "3.x.x.x" + }, + "orchestrator": { + "cluster": { + "name": "string" + }, + "namespace": "string" + }, + "process": { + "code_signature": { + "signing_id": "string" + }, + "command_line": "string", + "entity_id": "string", + "executable": "string", + "hash": { + "md5": "5d41402abc4b2a76b9719d911017c592", + "sha1": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d", + "sha256": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" + }, + "name": "string", + "parent": { + "code_signature": { + "signing_id": "string" + }, + "command_line": "string", + "entity_id": "string", + "executable": "string", + "hash": { + "md5": "5d41402abc4b2a76b9719d911017c592", + "sha1": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d", + "sha256": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" + }, + "name": "string", + "pid": 12345, + "start": "2018-02-27T04:49:26.257Z", + "user": { + "name": "string" + } + }, + "pid": 12345, + "start": "2018-02-27T04:49:26.257Z", + "user": { + "name": "string" + } + }, + "registry": { + "key": "string", + "path": "string", + "value": "string" + }, + "related": { + "hash": [ + "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d", + "5d41402abc4b2a76b9719d911017c592", + "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" + ], + "hosts": [ + "string" + ], + "ip": [ + "0.0.0.0" + ], + "user": [ + "string" + ] + }, + "rule": { + "description": "string", + "id": "string", + "name": "string" + }, + "sentinel_one": { + "alert": { + "agent": { + "site_id": "123456789123456789" + }, + "analyst_verdict": "string", + "container": { + "info": { + "labels": "string" + } + }, + "dv_event": { + "id": "string" + }, + "info": { + "dns": { + "response": "string" + }, + "event_type": "string", + "hit": { + "type": "Events" + }, + "indicator": { + "category": "string", + "description": "string", + "name": "string" + }, + "login": { + "account": { + "sid": "string" + }, + "is_administrator": "string", + "is_successful": "string", + "type": "string" + }, + "registry": { + "old_value": "string", + "old_value_type": "string" + }, + "reported_at": "2018-02-27T04:49:26.257Z", + "source": "string", + "status": "string", + "ti_indicator": { + "comparison_method": "string", + "source": "string", + "type": "string", + "value": "string" + }, + "updated_at": "2018-02-27T04:49:26.257Z" + }, + "kubernetes": { + "controller": { + "kind": "string", + "labels": "string", + "name": "string" + }, + "namespace": { + "labels": "string" + }, + "node": "string", + "pod": { + "labels": "string", + "name": "string" + } + }, + "process": { + "integrity_level": "unknown", + "parent": { + "integrity_level": "unknown", + "storyline": "string", + "subsystem": "unknown" + }, + "storyline": "string", + "subsystem": "unknown" + }, + "rule": { + "scope_level": "string", + "severity": "Low", + "treat_as_threat": "UNDEFINED" + }, + "target": { + "process": { + "file": { + "hash": { + "sha1": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d", + "sha256": "2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824" + }, + "id": "string", + "is_signed": "string", + "old_path": "string", + "path": "string" + }, + "proc": { + "cmdline": "string", + "image_path": "string", + "integrity_level": "unknown", + "name": "string", + "pid": 12345, + "signed_status": "string", + "storyline_id": "string", + "uid": "string" + }, + "start_time": "2018-02-27T04:49:26.257Z" + } + } + } + }, + "source": { + "ip": "0.0.0.0" + }, + "tags": [ + "preserve_original_event", + "forwarded", + "sentinel_one-alert" + ], + "user": { + "domain": "string", + "name": "string" + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.port | Port of the destination. | long | +| dll.hash.sha1 | SHA1 hash. | keyword | +| dll.path | Full file path of the library. | keyword | +| dns.question.name | The name being queried. If the name field contains non-printable characters (below 32 or above 126), those characters should be represented as escaped base 10 integers (\DDD). Back slashes and quotes should be escaped. Tabs, carriage returns, and line feeds should be converted to \t, \r, and \n respectively. | keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.dataset | Event dataset | constant_keyword | +| event.id | Unique ID to describe the event. | keyword | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| file.created | File creation time. Note that not all filesystems store the creation time. | date | +| file.mtime | Last time the file content was modified. | date | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| log.source.address | Source address from which the log event was read / sent from. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| observer.serial_number | Observer serial number. | keyword | +| observer.version | Observer version. | keyword | +| orchestrator.cluster.name | Name of the cluster. | keyword | +| orchestrator.namespace | Namespace in which the action is taking place. | keyword | +| os.name | Operating system name, without the version. | keyword | +| os.name.text | Multi-field of `os.name`. | match_only_text | +| process.code_signature.signing_id | The identifier used to sign the process. This is used to identify the application manufactured by a software vendor. The field is relevant to Apple \*OS only. | keyword | +| process.command_line | Full command line that started the process, including the absolute path to the executable, and all arguments. Some arguments may be filtered to protect sensitive information. | wildcard | +| process.command_line.text | Multi-field of `process.command_line`. | match_only_text | +| process.entity_id | Unique identifier for the process. The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. | keyword | +| process.executable | Absolute path to the process executable. | keyword | +| process.executable.text | Multi-field of `process.executable`. | match_only_text | +| process.hash.md5 | MD5 hash. | keyword | +| process.hash.sha1 | SHA1 hash. | keyword | +| process.hash.sha256 | SHA256 hash. | keyword | +| process.name | Process name. Sometimes called program name or similar. | keyword | +| process.name.text | Multi-field of `process.name`. | match_only_text | +| process.parent.code_signature.signing_id | The identifier used to sign the process. This is used to identify the application manufactured by a software vendor. The field is relevant to Apple \*OS only. | keyword | +| process.parent.command_line | Full command line that started the process, including the absolute path to the executable, and all arguments. Some arguments may be filtered to protect sensitive information. | wildcard | +| process.parent.command_line.text | Multi-field of `process.parent.command_line`. | match_only_text | +| process.parent.entity_id | Unique identifier for the process. The implementation of this is specified by the data source, but some examples of what could be used here are a process-generated UUID, Sysmon Process GUIDs, or a hash of some uniquely identifying components of a process. Constructing a globally unique identifier is a common practice to mitigate PID reuse as well as to identify a specific process over time, across multiple monitored hosts. | keyword | +| process.parent.executable | Absolute path to the process executable. | keyword | +| process.parent.executable.text | Multi-field of `process.parent.executable`. | match_only_text | +| process.parent.hash.md5 | MD5 hash. | keyword | +| process.parent.hash.sha1 | SHA1 hash. | keyword | +| process.parent.hash.sha256 | SHA256 hash. | keyword | +| process.parent.name | Process name. Sometimes called program name or similar. | keyword | +| process.parent.name.text | Multi-field of `process.parent.name`. | match_only_text | +| process.parent.pid | Process id. | long | +| process.parent.start | The time the process started. | date | +| process.parent.user.name | Short name or login of the user. | keyword | +| process.parent.user.name.text | Multi-field of `process.parent.user.name`. | match_only_text | +| process.pid | Process id. | long | +| process.start | The time the process started. | date | +| process.user.name | Short name or login of the user. | keyword | +| process.user.name.text | Multi-field of `process.user.name`. | match_only_text | +| registry.key | Hive-relative path of keys. | keyword | +| registry.path | Full path, including hive, key and value | keyword | +| registry.value | Name of the value written. | keyword | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| rule.category | A categorization value keyword used by the entity using the rule for detection of this event. | keyword | +| rule.description | The description of the rule generating the event. | keyword | +| rule.id | A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. | keyword | +| rule.name | The name of the rule or signature generating the event. | keyword | +| sentinel_one.alert.agent.site_id | Site id. | keyword | +| sentinel_one.alert.analyst_verdict | Analyst verdict. | keyword | +| sentinel_one.alert.container.info.labels | Container info labels. | keyword | +| sentinel_one.alert.dv_event.id | DV event id. | keyword | +| sentinel_one.alert.info.dns.response | IP address, DNS, type, etc. in response. | keyword | +| sentinel_one.alert.info.event_type | Event type. | keyword | +| sentinel_one.alert.info.hit.type | Type of hit reported from agent. | keyword | +| sentinel_one.alert.info.indicator.category | Indicator categories for this process. | keyword | +| sentinel_one.alert.info.indicator.description | Indicator_description. | keyword | +| sentinel_one.alert.info.indicator.name | Indicator names for this process. | keyword | +| sentinel_one.alert.info.login.account.sid | SID of the account that attempted to login. | keyword | +| sentinel_one.alert.info.login.is_administrator | Is the login attempt administrator equivalent. | keyword | +| sentinel_one.alert.info.login.is_successful | Was the login attempt successful. | keyword | +| sentinel_one.alert.info.login.type | Type of login which was performed. | keyword | +| sentinel_one.alert.info.registry.old_value | Registry previous value (in case of modification). | keyword | +| sentinel_one.alert.info.registry.old_value_type | Registry previous value type (in case of modification). | keyword | +| sentinel_one.alert.info.reported_at | Timestamp of alert creation in STAR. | date | +| sentinel_one.alert.info.source | Source reported from agent. | keyword | +| sentinel_one.alert.info.status | Incident status. | keyword | +| sentinel_one.alert.info.ti_indicator.comparison_method | The comparison method used by SentinelOne to trigger the event. | keyword | +| sentinel_one.alert.info.ti_indicator.source | The value of the identified Threat Intelligence indicator. | keyword | +| sentinel_one.alert.info.ti_indicator.type | The type of the identified Threat Intelligence indicator. | keyword | +| sentinel_one.alert.info.ti_indicator.value | The value of the identified Threat Intelligence indicator. | keyword | +| sentinel_one.alert.info.updated_at | Date of alert updated in Star MMS. | date | +| sentinel_one.alert.kubernetes.controller.kind | Controller kind. | keyword | +| sentinel_one.alert.kubernetes.controller.labels | Controller labels. | keyword | +| sentinel_one.alert.kubernetes.controller.name | Controller name. | keyword | +| sentinel_one.alert.kubernetes.namespace.labels | Namespace labels. | keyword | +| sentinel_one.alert.kubernetes.node | Node. | keyword | +| sentinel_one.alert.kubernetes.pod.labels | Pod Labels. | keyword | +| sentinel_one.alert.kubernetes.pod.name | Pod name. | keyword | +| sentinel_one.alert.process.integrity_level | Integrity level. | keyword | +| sentinel_one.alert.process.parent.integrity_level | Integrity level. | keyword | +| sentinel_one.alert.process.parent.storyline | StoryLine. | keyword | +| sentinel_one.alert.process.parent.subsystem | Subsystem. | keyword | +| sentinel_one.alert.process.storyline | StoryLine. | keyword | +| sentinel_one.alert.process.subsystem | Subsystem. | keyword | +| sentinel_one.alert.rule.scope_level | Scope level. | keyword | +| sentinel_one.alert.rule.severity | Rule severity. | keyword | +| sentinel_one.alert.rule.treat_as_threat | Rule treat as threat type. | keyword | +| sentinel_one.alert.target.process.file.hash.sha1 | SHA1 Signature of File. | keyword | +| sentinel_one.alert.target.process.file.hash.sha256 | SHA256 Signature of File. | keyword | +| sentinel_one.alert.target.process.file.id | Unique ID of file. | keyword | +| sentinel_one.alert.target.process.file.is_signed | Is fle signed. | keyword | +| sentinel_one.alert.target.process.file.old_path | Old path before 'Rename'. | keyword | +| sentinel_one.alert.target.process.file.path | Path and filename. | keyword | +| sentinel_one.alert.target.process.proc.cmdline | Target Process Command Line. | keyword | +| sentinel_one.alert.target.process.proc.image_path | Target Process Image path | keyword | +| sentinel_one.alert.target.process.proc.integrity_level | Integrity level of target process. | keyword | +| sentinel_one.alert.target.process.proc.name | Target Process Name. | keyword | +| sentinel_one.alert.target.process.proc.pid | Target Process ID (PID). | long | +| sentinel_one.alert.target.process.proc.signed_status | Target Process Signed Status. | keyword | +| sentinel_one.alert.target.process.proc.storyline_id | Target Process StoryLine ID. | keyword | +| sentinel_one.alert.target.process.proc.uid | Target Process Unique ID. | keyword | +| sentinel_one.alert.target.process.start_time | Target Process Start Time. | date | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.port | Port of the source. | long | +| tags | List of keywords used to tag each event. | keyword | +| user.domain | Name of the directory the user is a member of. For example, an LDAP or Active Directory domain name. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | + + +### group + +This is the `group` dataset. + +An example event for `group` looks as following: + +```json +{ + "@timestamp": "2022-04-05T16:01:57.564Z", + "agent": { + "ephemeral_id": "c386c123-e979-4c16-b5e4-0bbc8f94062e", + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.1.3" + }, + "data_stream": { + "dataset": "sentinel_one.group", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "snapshot": false, + "version": "8.1.3" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "iam" + ], + "created": "2022-05-09T12:55:41.235Z", + "dataset": "sentinel_one.group", + "ingested": "2022-05-09T12:55:44Z", + "kind": "event", + "original": "{\"createdAt\":\"2022-04-05T16:01:56.928383Z\",\"creator\":\"Test User\",\"creatorId\":\"1234567890123456789\",\"filterId\":null,\"filterName\":null,\"id\":\"1234567890123456789\",\"inherits\":true,\"isDefault\":true,\"name\":\"Default Group\",\"rank\":null,\"registrationToken\":\"eyxxxxxxxxxxxxxxxxxxxxkixZxx1xxxxx8xxx2xODA0ZxxxxTIwNjhxxxxxxxxxxxxxxiMWYxx1Ixxnxxxx0=\",\"siteId\":\"1234567890123456789\",\"totalAgents\":1,\"type\":\"static\",\"updatedAt\":\"2022-04-05T16:01:57.564266Z\"}", + "type": [ + "info" + ] + }, + "group": { + "id": "1234567890123456789", + "name": "Default Group" + }, + "input": { + "type": "httpjson" + }, + "related": { + "user": [ + "Test User" + ] + }, + "sentinel_one": { + "group": { + "agent": { + "count": 1 + }, + "created_at": "2022-04-05T16:01:56.928Z", + "creator": { + "id": "1234567890123456789" + }, + "inherits": true, + "is_default": true, + "registration_token": "eyxxxxxxxxxxxxxxxxxxxxkixZxx1xxxxx8xxx2xODA0ZxxxxTIwNjhxxxxxxxxxxxxxxiMWYxx1Ixxnxxxx0=", + "site": { + "id": "1234567890123456789" + }, + "type": "static" + } + }, + "tags": [ + "preserve_original_event", + "forwarded", + "sentinel_one-group" + ], + "user": { + "full_name": "Test User" + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.dataset | Event dataset | constant_keyword | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| group.id | Unique identifier for the group on the system/platform. | keyword | +| group.name | Name of the group. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| log.source.address | Source address from which the log event was read / sent from. | keyword | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| sentinel_one.group.agent.count | | long | +| sentinel_one.group.created_at | | date | +| sentinel_one.group.creator.id | | keyword | +| sentinel_one.group.filter.id | | keyword | +| sentinel_one.group.filter.name | | keyword | +| sentinel_one.group.inherits | | boolean | +| sentinel_one.group.is_default | | boolean | +| sentinel_one.group.rank | | long | +| sentinel_one.group.registration_token | | keyword | +| sentinel_one.group.site.id | | keyword | +| sentinel_one.group.type | | keyword | +| tags | List of keywords used to tag each event. | keyword | +| user.full_name | User's full name, if available. | keyword | +| user.full_name.text | Multi-field of `user.full_name`. | match_only_text | +| user.id | Unique identifier of the user. | keyword | + + +### threat + +This is the `threat` dataset. + +An example event for `threat` looks as following: + +```json +{ + "@timestamp": "2022-04-06T08:54:17.194Z", + "agent": { + "ephemeral_id": "eb3774ca-88e6-42f1-a7de-e4f5d910a8f4", + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.1.3" + }, + "data_stream": { + "dataset": "sentinel_one.threat", + "namespace": "ep", + "type": "logs" + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "0c9eacaa-bd97-4184-b05f-d5d51775e08d", + "snapshot": false, + "version": "8.1.3" + }, + "event": { + "agent_id_status": "verified", + "category": [ + "malware" + ], + "created": "2022-05-09T12:56:37.374Z", + "dataset": "sentinel_one.threat", + "ingested": "2022-05-09T12:56:40Z", + "kind": "event", + "original": "{\"agentDetectionInfo\":{\"accountId\":\"1234567890123456789\",\"accountName\":\"Default\",\"agentDetectionState\":null,\"agentDomain\":\"WORKGROUP\",\"agentIpV4\":\"10.0.0.1\",\"agentIpV6\":\"XX80::7X59:X6X9:9X72:XXXX\",\"agentLastLoggedInUpn\":null,\"agentLastLoggedInUserMail\":null,\"agentLastLoggedInUserName\":\"\",\"agentMitigationMode\":\"protect\",\"agentOsName\":\"linux\",\"agentOsRevision\":\"1234\",\"agentRegisteredAt\":\"2022-04-06T08:26:45.515278Z\",\"agentUuid\":\"fwfbxxxxxxxxxxqcfjfnxxxxxxxxx\",\"agentVersion\":\"21.x.x\",\"cloudProviders\":{},\"externalIp\":\"81.2.69.143\",\"groupId\":\"1234567890123456789\",\"groupName\":\"Default Group\",\"siteId\":\"1234567890123456789\",\"siteName\":\"Default site\"},\"agentRealtimeInfo\":{\"accountId\":\"1234567890123456789\",\"accountName\":\"Default\",\"activeThreats\":7,\"agentComputerName\":\"test-LINUX\",\"agentDecommissionedAt\":null,\"agentDomain\":\"WORKGROUP\",\"agentId\":\"1234567890123456789\",\"agentInfected\":true,\"agentIsActive\":true,\"agentIsDecommissioned\":false,\"agentMachineType\":\"server\",\"agentMitigationMode\":\"detect\",\"agentNetworkStatus\":\"connected\",\"agentOsName\":\"linux\",\"agentOsRevision\":\"1234\",\"agentOsType\":\"linux\",\"agentUuid\":\"fwfbxxxxxxxxxxqcfjfnxxxxxxxxx\",\"agentVersion\":\"21.x.x.1234\",\"groupId\":\"1234567890123456789\",\"groupName\":\"Default Group\",\"networkInterfaces\":[{\"id\":\"1234567890123456789\",\"inet\":[\"10.0.0.1\"],\"inet6\":[\"2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6\"],\"name\":\"Ethernet\",\"physical\":\"X2:0X:0X:X6:00:XX\"}],\"operationalState\":\"na\",\"rebootRequired\":false,\"scanAbortedAt\":null,\"scanFinishedAt\":\"2022-04-06T09:18:21.090855Z\",\"scanStartedAt\":\"2022-04-06T08:26:52.838047Z\",\"scanStatus\":\"finished\",\"siteId\":\"1234567890123456789\",\"siteName\":\"Default site\",\"storageName\":null,\"storageType\":null,\"userActionsNeeded\":[]},\"containerInfo\":{\"id\":null,\"image\":null,\"labels\":null,\"name\":null},\"id\":\"1234567890123456789\",\"indicators\":[],\"kubernetesInfo\":{\"cluster\":null,\"controllerKind\":null,\"controllerLabels\":null,\"controllerName\":null,\"namespace\":null,\"namespaceLabels\":null,\"node\":null,\"pod\":null,\"podLabels\":null},\"mitigationStatus\":[{\"action\":\"unquarantine\",\"actionsCounters\":{\"failed\":0,\"notFound\":0,\"pendingReboot\":0,\"success\":1,\"total\":1},\"agentSupportsReport\":true,\"groupNotFound\":false,\"lastUpdate\":\"2022-04-06T08:54:17.198002Z\",\"latestReport\":\"/threats/mitigation-report\",\"mitigationEndedAt\":\"2022-04-06T08:54:17.101000Z\",\"mitigationStartedAt\":\"2022-04-06T08:54:17.101000Z\",\"status\":\"success\"},{\"action\":\"kill\",\"actionsCounters\":null,\"agentSupportsReport\":true,\"groupNotFound\":false,\"lastUpdate\":\"2022-04-06T08:45:55.303355Z\",\"latestReport\":null,\"mitigationEndedAt\":\"2022-04-06T08:45:55.297364Z\",\"mitigationStartedAt\":\"2022-04-06T08:45:55.297363Z\",\"status\":\"success\"}],\"threatInfo\":{\"analystVerdict\":\"undefined\",\"analystVerdictDescription\":\"Undefined\",\"automaticallyResolved\":false,\"browserType\":null,\"certificateId\":\"\",\"classification\":\"Trojan\",\"classificationSource\":\"Cloud\",\"cloudFilesHashVerdict\":\"black\",\"collectionId\":\"1234567890123456789\",\"confidenceLevel\":\"malicious\",\"createdAt\":\"2022-04-06T08:45:54.519988Z\",\"detectionEngines\":[{\"key\":\"sentinelone_cloud\",\"title\":\"SentinelOne Cloud\"}],\"detectionType\":\"static\",\"engines\":[\"SentinelOne Cloud\"],\"externalTicketExists\":false,\"externalTicketId\":null,\"failedActions\":false,\"fileExtension\":\"EXE\",\"fileExtensionType\":\"Executable\",\"filePath\":\"default.exe\",\"fileSize\":1234,\"fileVerificationType\":\"NotSigned\",\"identifiedAt\":\"2022-04-06T08:45:53.968000Z\",\"incidentStatus\":\"unresolved\",\"incidentStatusDescription\":\"Unresolved\",\"initiatedBy\":\"agent_policy\",\"initiatedByDescription\":\"Agent Policy\",\"initiatingUserId\":null,\"initiatingUsername\":null,\"isFileless\":false,\"isValidCertificate\":false,\"maliciousProcessArguments\":null,\"md5\":null,\"mitigatedPreemptively\":false,\"mitigationStatus\":\"not_mitigated\",\"mitigationStatusDescription\":\"Not mitigated\",\"originatorProcess\":\"default.exe\",\"pendingActions\":false,\"processUser\":\"test user\",\"publisherName\":\"\",\"reachedEventsLimit\":false,\"rebootRequired\":false,\"sha1\":\"aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d\",\"sha256\":null,\"storyline\":\"D0XXXXXXXXXXAF4D\",\"threatId\":\"1234567890123456789\",\"threatName\":\"default.exe\",\"updatedAt\":\"2022-04-06T08:54:17.194122Z\"},\"whiteningOptions\":[\"hash\"]}", + "type": [ + "info" + ] + }, + "host": { + "domain": "WORKGROUP", + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "id": "1234567890123456789", + "ip": "81.2.69.143", + "mac": [ + "X2-0X-0X-X6-00-XX" + ], + "name": "test-LINUX", + "os": { + "name": "linux", + "type": "linux" + } + }, + "input": { + "type": "httpjson" + }, + "observer": { + "version": "21.x.x.1234" + }, + "related": { + "hash": [ + "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d" + ], + "hosts": [ + "test-LINUX" + ], + "ip": [ + "10.0.0.1", + "81.2.69.143", + "2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6" + ], + "user": [ + "test user" + ] + }, + "sentinel_one": { + "threat": { + "agent": { + "account": { + "id": "1234567890123456789", + "name": "Default" + }, + "active_threats": 7, + "group": { + "id": "1234567890123456789", + "name": "Default Group" + }, + "infected": true, + "is_active": true, + "is_decommissioned": false, + "machine_type": "server", + "mitigation_mode": "detect", + "network_interface": [ + { + "id": "1234567890123456789", + "inet": [ + "10.0.0.1" + ], + "inet6": [ + "2a02:cf40:add:4002:91f2:a9b2:e09a:6fc6" + ], + "name": "Ethernet" + } + ], + "network_status": "connected", + "operational_state": "na", + "os": { + "version": "1234" + }, + "reboot_required": false, + "scan": { + "finished_at": "2022-04-06T09:18:21.090Z", + "started_at": "2022-04-06T08:26:52.838Z", + "status": "finished" + }, + "site": { + "id": "1234567890123456789", + "name": "Default site" + }, + "uuid": "fwfbxxxxxxxxxxqcfjfnxxxxxxxxx" + }, + "analysis": { + "description": "Undefined", + "verdict": "undefined" + }, + "automatically_resolved": false, + "classification": "Trojan", + "classification_source": "Cloud", + "cloudfiles_hash_verdict": "black", + "collection": { + "id": "1234567890123456789" + }, + "confidence_level": "malicious", + "created_at": "2022-04-06T08:45:54.519Z", + "detection": { + "account": { + "id": "1234567890123456789", + "name": "Default" + }, + "agent": { + "domain": "WORKGROUP", + "group": { + "id": "1234567890123456789", + "name": "Default Group" + }, + "ipv4": "10.0.0.1", + "mitigation_mode": "protect", + "os": { + "name": "linux", + "version": "1234" + }, + "registered_at": "2022-04-06T08:26:45.515Z", + "site": { + "id": "1234567890123456789", + "name": "Default site" + }, + "uuid": "fwfbxxxxxxxxxxqcfjfnxxxxxxxxx", + "version": "21.x.x" + }, + "engines": [ + { + "key": "sentinelone_cloud", + "title": "SentinelOne Cloud" + } + ], + "type": "static" + }, + "engines": [ + "SentinelOne Cloud" + ], + "external_ticket": { + "exist": false + }, + "failed_actions": false, + "file": { + "extension": { + "type": "Executable" + }, + "identified_at": "2022-04-06T08:45:53.968Z", + "verification_type": "NotSigned" + }, + "id": "1234567890123456789", + "incident": { + "status": "unresolved", + "status_description": "Unresolved" + }, + "initiated": { + "description": "Agent Policy", + "name": "agent_policy" + }, + "is_fileless": false, + "is_valid_certificate": false, + "mitigated_preemptively": false, + "mitigation": { + "description": "Not mitigated", + "status": "not_mitigated" + }, + "mitigation_status": [ + { + "action": "unquarantine", + "action_counters": { + "failed": 0, + "not_found": 0, + "pending_reboot": 0, + "success": 1, + "total": 1 + }, + "agent_supports_report": true, + "group_not_found": false, + "last_update": "2022-04-06T08:54:17.198Z", + "latest_report": "/threats/mitigation-report", + "mitigation_ended_at": "2022-04-06T08:54:17.101Z", + "mitigation_started_at": "2022-04-06T08:54:17.101Z", + "status": "success" + }, + { + "action": "kill", + "agent_supports_report": true, + "group_not_found": false, + "last_update": "2022-04-06T08:45:55.303Z", + "mitigation_ended_at": "2022-04-06T08:45:55.297Z", + "mitigation_started_at": "2022-04-06T08:45:55.297Z", + "status": "success" + } + ], + "name": "default.exe", + "originator_process": "default.exe", + "pending_actions": false, + "process_user": "test user", + "reached_events_limit": false, + "reboot_required": false, + "storyline": "D0XXXXXXXXXXAF4D", + "threat_id": "1234567890123456789", + "whitening_option": [ + "hash" + ] + } + }, + "tags": [ + "preserve_original_event", + "forwarded", + "sentinel_one-threat" + ], + "threat": { + "indicator": { + "file": { + "extension": "EXE", + "hash": { + "sha1": "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d" + }, + "path": "default.exe", + "size": 1234 + } + } + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.created | event.created contains the date/time when the event was first read by an agent, or by your pipeline. This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. In case the two timestamps are identical, @timestamp should be used. | date | +| event.dataset | Event dataset | constant_keyword | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Event module | constant_keyword | +| event.original | Raw text message of entire event. Used to demonstrate log integrity or where the full log message (before splitting it up in multiple parts) may be required, e.g. for reindex. This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. If users wish to override this and index this field, please see `Field data types` in the `Elasticsearch Reference`. | keyword | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.geo.city_name | City name. | keyword | +| host.geo.continent_name | Name of the continent. | keyword | +| host.geo.country_iso_code | Country ISO code. | keyword | +| host.geo.country_name | Country name. | keyword | +| host.geo.location | Longitude and latitude. | geo_point | +| host.geo.region_iso_code | Region ISO code. | keyword | +| host.geo.region_name | Region name. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.type | Use the `os.type` field to categorize the operating system into one of the broad commercial families. One of these following values should be used (lowercase): linux, macos, unix, windows. If the OS you're dealing with is not in the list, the field should not be populated. Please let us know by opening an issue with ECS, to propose its addition. | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type | keyword | +| log.offset | Log offset | long | +| message | For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message. | match_only_text | +| observer.version | Observer version. | keyword | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.hosts | All hostnames or other host identifiers seen on your event. Example identifiers include FQDNs, domain names, workstation names, or aliases. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| sentinel_one.threat.agent.account.id | Account id. | keyword | +| sentinel_one.threat.agent.account.name | Account name. | keyword | +| sentinel_one.threat.agent.active_threats | Active threats. | long | +| sentinel_one.threat.agent.decommissioned_at | Decommissioned at. | boolean | +| sentinel_one.threat.agent.group.id | Group id. | keyword | +| sentinel_one.threat.agent.group.name | Group name. | keyword | +| sentinel_one.threat.agent.infected | Agent infected. | boolean | +| sentinel_one.threat.agent.is_active | Is active. | boolean | +| sentinel_one.threat.agent.is_decommissioned | Is decommissioned. | boolean | +| sentinel_one.threat.agent.machine_type | Machine type. | keyword | +| sentinel_one.threat.agent.mitigation_mode | Agent mitigation mode policy. | keyword | +| sentinel_one.threat.agent.network_interface.id | Device's network interfaces id. | keyword | +| sentinel_one.threat.agent.network_interface.inet | Device's network interfaces IPv4 addresses. | keyword | +| sentinel_one.threat.agent.network_interface.inet6 | Device's network interfaces IPv6 addresses. | keyword | +| sentinel_one.threat.agent.network_interface.name | Device's network interfaces IPv4 Name. | keyword | +| sentinel_one.threat.agent.network_status | Network status. | keyword | +| sentinel_one.threat.agent.operational_state | Agent operational state. | keyword | +| sentinel_one.threat.agent.os.version | OS revision. | keyword | +| sentinel_one.threat.agent.reboot_required | A reboot is required on the endpoint for at least one acton on the threat. | boolean | +| sentinel_one.threat.agent.scan.aborted_at | Abort time of last scan (if applicable). | keyword | +| sentinel_one.threat.agent.scan.finished_at | Finish time of last scan (if applicable). | keyword | +| sentinel_one.threat.agent.scan.started_at | Start time of last scan. | keyword | +| sentinel_one.threat.agent.scan.status | Scan status. | keyword | +| sentinel_one.threat.agent.site.id | Site id. | keyword | +| sentinel_one.threat.agent.site.name | Site name. | keyword | +| sentinel_one.threat.agent.storage.name | Storage Name. | keyword | +| sentinel_one.threat.agent.storage.type | Storage Type. | keyword | +| sentinel_one.threat.agent.user_action_needed | A list of pending user actions. List items possible values: "none, reboot_needed, user_acton_needed, upgrade_needed, incompatible_os, unprotected, user_acton_needed_fda, user_acton_needed_rs_fda,user_acton_needed_network, rebootless_without_dynamic_detection, extended_exclusions_partially_accepted, user_action_needed_bluetooth_per". | keyword | +| sentinel_one.threat.agent.uuid | UUID. | keyword | +| sentinel_one.threat.analysis.description | Analyst verdict description. | keyword | +| sentinel_one.threat.analysis.verdict | Analyst verdict. | keyword | +| sentinel_one.threat.automatically_resolved | Automatically resolved. | boolean | +| sentinel_one.threat.browser_type | Browser type. | keyword | +| sentinel_one.threat.certificate.id | File Certificate ID. | keyword | +| sentinel_one.threat.classification | Classification of the threat. | keyword | +| sentinel_one.threat.classification_source | Source of the threat Classification. | keyword | +| sentinel_one.threat.cloudfiles_hash_verdict | Cloud files hash verdict. | keyword | +| sentinel_one.threat.collection.id | Collection id. | keyword | +| sentinel_one.threat.confidence_level | SentinelOne threat confidence level. | keyword | +| sentinel_one.threat.container.labels | Container labels. | keyword | +| sentinel_one.threat.created_at | Timestamp of date creation in the Management Console. | date | +| sentinel_one.threat.detection.account.id | Orig account id. | keyword | +| sentinel_one.threat.detection.account.name | Orig account name. | keyword | +| sentinel_one.threat.detection.agent.domain | Network domain. | keyword | +| sentinel_one.threat.detection.agent.group.id | Orig group id. | keyword | +| sentinel_one.threat.detection.agent.group.name | Orig group name. | keyword | +| sentinel_one.threat.detection.agent.ipv4 | Orig agent ipv4. | ip | +| sentinel_one.threat.detection.agent.ipv6 | Orig agent ipv6. | ip | +| sentinel_one.threat.detection.agent.last_logged_in.upn | UPN of last logged in user. | keyword | +| sentinel_one.threat.detection.agent.mitigation_mode | Agent mitigation mode policy. | keyword | +| sentinel_one.threat.detection.agent.os.name | Orig agent OS name. | keyword | +| sentinel_one.threat.detection.agent.os.version | Orig agent OS revision. | keyword | +| sentinel_one.threat.detection.agent.registered_at | Time of first registration to management console. | date | +| sentinel_one.threat.detection.agent.site.id | Orig site id. | keyword | +| sentinel_one.threat.detection.agent.site.name | Orig site name. | keyword | +| sentinel_one.threat.detection.agent.uuid | UUID of the agent. | keyword | +| sentinel_one.threat.detection.agent.version | Orig agent version. | keyword | +| sentinel_one.threat.detection.cloud_providers | Cloud providers for this agent. | flattened | +| sentinel_one.threat.detection.engines.key | List of engines that detected the threat key. | keyword | +| sentinel_one.threat.detection.engines.title | List of engines that detected the threat title. | keyword | +| sentinel_one.threat.detection.state | The Agent's detection state at time of detection. | keyword | +| sentinel_one.threat.detection.type | Detection type. | keyword | +| sentinel_one.threat.engines | List of engines that detected the threat. | keyword | +| sentinel_one.threat.external_ticket.exist | External ticket exists. | boolean | +| sentinel_one.threat.external_ticket.id | External ticket id. | keyword | +| sentinel_one.threat.failed_actions | At least one action failed on the threat. | boolean | +| sentinel_one.threat.file.extension.type | File extension type. | keyword | +| sentinel_one.threat.file.identified_at | Identified at. | keyword | +| sentinel_one.threat.file.verification_type | File verification type. | keyword | +| sentinel_one.threat.id | Threat id. | keyword | +| sentinel_one.threat.incident.status | Incident status. | keyword | +| sentinel_one.threat.incident.status_description | Incident status description. | keyword | +| sentinel_one.threat.indicators.category.id | Indicators Category Id. | long | +| sentinel_one.threat.indicators.category.name | Indicators Category Name. | keyword | +| sentinel_one.threat.indicators.description | Indicators Description. | keyword | +| sentinel_one.threat.initiated.description | Initiated by description. | keyword | +| sentinel_one.threat.initiated.name | Source of threat. | keyword | +| sentinel_one.threat.initiating_user.id | Initiating user id. | keyword | +| sentinel_one.threat.initiating_user.name | Initiating user username. | keyword | +| sentinel_one.threat.is_fileless | Is fileless. | boolean | +| sentinel_one.threat.is_valid_certificate | True if the certificate is valid. | boolean | +| sentinel_one.threat.kubernetes.cluster | Cluster. | keyword | +| sentinel_one.threat.kubernetes.controller.kind | Controller kind. | keyword | +| sentinel_one.threat.kubernetes.controller.labels | Controller labels. | keyword | +| sentinel_one.threat.kubernetes.controller.name | Controller name. | keyword | +| sentinel_one.threat.kubernetes.namespace.labels | Namespace labels. | keyword | +| sentinel_one.threat.kubernetes.namespace.name | Namespace name. | keyword | +| sentinel_one.threat.kubernetes.node | Node. | keyword | +| sentinel_one.threat.kubernetes.pod.labels | Pod labels. | keyword | +| sentinel_one.threat.kubernetes.pod.name | Pod name. | keyword | +| sentinel_one.threat.malicious_process_arguments | Malicious process arguments. | keyword | +| sentinel_one.threat.mitigated_preemptively | True is the threat was blocked before execution. | boolean | +| sentinel_one.threat.mitigation.description | Mitigation status description. | keyword | +| sentinel_one.threat.mitigation.status | Mitigation status. | keyword | +| sentinel_one.threat.mitigation_status.action | Action. | keyword | +| sentinel_one.threat.mitigation_status.action_counters.failed | Actions counters Failed. | long | +| sentinel_one.threat.mitigation_status.action_counters.not_found | Actions counters Not found. | long | +| sentinel_one.threat.mitigation_status.action_counters.pending_reboot | Actions counters Pending reboot. | long | +| sentinel_one.threat.mitigation_status.action_counters.success | Actions counters Success. | long | +| sentinel_one.threat.mitigation_status.action_counters.total | Actions counters Total. | long | +| sentinel_one.threat.mitigation_status.agent_supports_report | The Agent generates a full mitigation report. | keyword | +| sentinel_one.threat.mitigation_status.group_not_found | Agent could not find the threat. | keyword | +| sentinel_one.threat.mitigation_status.last_update | Timestamp of last mitigation status update. | keyword | +| sentinel_one.threat.mitigation_status.latest_report | Report download URL. If None, there is no report. | keyword | +| sentinel_one.threat.mitigation_status.mitigation_ended_at | The time the Agent finished the mitigation. | keyword | +| sentinel_one.threat.mitigation_status.mitigation_started_at | The time the Agent started the mitigation. | keyword | +| sentinel_one.threat.mitigation_status.status | Status. | keyword | +| sentinel_one.threat.name | Threat name. | keyword | +| sentinel_one.threat.originator_process | Originator process. | keyword | +| sentinel_one.threat.pending_actions | At least one action is pending on the threat. | boolean | +| sentinel_one.threat.process_user | Process user. | keyword | +| sentinel_one.threat.publisher.name | Certificate publisher. | keyword | +| sentinel_one.threat.reached_events_limit | Has number of OS events for this threat reached the limit, resulting in a partial attack storyline. | boolean | +| sentinel_one.threat.reboot_required | A reboot is required on the endpoint for at least one threat. | boolean | +| sentinel_one.threat.storyline | Storyline identifier from agent. | keyword | +| sentinel_one.threat.threat_id | Threat id. | keyword | +| sentinel_one.threat.whitening_option | Whitening options. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| threat.framework | Name of the threat framework used to further categorize and classify the tactic and technique of the reported threat. Framework classification can be provided by detecting systems, evaluated at ingest time, or retrospectively tagged to events. | keyword | +| threat.indicator.file.extension | File extension, excluding the leading dot. Note that when the file name has multiple extensions (example.tar.gz), only the last one should be captured ("gz", not "tar.gz"). | keyword | +| threat.indicator.file.hash.md5 | MD5 hash. | keyword | +| threat.indicator.file.hash.sha1 | SHA1 hash. | keyword | +| threat.indicator.file.hash.sha256 | SHA256 hash. | keyword | +| threat.indicator.file.path | Full path to the file, including the file name. It should include the drive letter, when appropriate. | keyword | +| threat.indicator.file.path.text | Multi-field of `threat.indicator.file.path`. | match_only_text | +| threat.indicator.file.size | File size in bytes. Only relevant when `file.type` is "file". | long | +| threat.tactic.id | The id of tactic used by this threat. You can use a MITRE ATT&CK® tactic, for example. (ex. https://attack.mitre.org/tactics/TA0002/ ) | keyword | +| threat.tactic.name | Name of the type of tactic used by this threat. You can use a MITRE ATT&CK® tactic, for example. (ex. https://attack.mitre.org/tactics/TA0002/) | keyword | +| threat.technique.id | The id of technique used by this threat. You can use a MITRE ATT&CK® technique, for example. (ex. https://attack.mitre.org/techniques/T1059/) | keyword | +| threat.technique.reference | The reference url of technique used by this threat. You can use a MITRE ATT&CK® technique, for example. (ex. https://attack.mitre.org/techniques/T1059/) | keyword | +| user.email | User email address. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | diff --git a/packages/sentinel_one/0.1.0/img/sentinel-one-api-token-generate.png b/packages/sentinel_one/0.1.0/img/sentinel-one-api-token-generate.png new file mode 100755 index 0000000000000000000000000000000000000000..6f7dbebc0e4e497474339cf46ba4b705dfa804eb GIT binary patch literal 21511 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 Y%cp6p$C}5#LwF}@!&+yj8;(r=ABON(rT_o{ literal 0 HcmV?d00001 diff --git a/packages/sentinel_one/0.1.0/img/sentinel-one-dashboard.png b/packages/sentinel_one/0.1.0/img/sentinel-one-dashboard.png new file mode 100755 index 0000000000000000000000000000000000000000..633d30ea358018e85a81f5458f01337e185b917e GIT binary patch literal 111379 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�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 +SentinelOne logo diff --git a/packages/sentinel_one/0.1.0/img/sentinel-one-screenshot.png b/packages/sentinel_one/0.1.0/img/sentinel-one-screenshot.png new file mode 100755 index 0000000000000000000000000000000000000000..397e49f8a89f832da4bd07fc661985e4264869f2 GIT binary patch literal 55957 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

    Zbm6Rx5s z|H$71`v`zeTw~-CsICA%X57xZNMCiV)@&xG)-u5wbQn7pSrUm}d4Wx$-wUJ^@Cuwrm8u$r<@nJpB`63z2BiK9^bKqCg^pyj=_*j7ZvM5uV^y?u%d5Mb?|UOE zi>zmYaI4p2AEwHnr$>BmSFot{XlU)7e%Y%kD%4$gq$(q$wUSFTLjy3E|s?9{a>|6KN z)ORZguJWqU*>f!K>2ZiBtya9r^`9uPr$asty)P=;kt7w~GyN+1wr1-~z8P6SRcr9Q z7t(~SDiRZP7o&{J3!@euS#pjfF-Dq};ni3@6Ou0909{Vy^k*_FJ+CiDS&ZBs(BzT zt@&A5?@}-{PYrYjiR5s(1H33OCv}?n$&iovZ)cH5_>}Iv`TumJFc>GG5$P2zrDxRQ zExg^LUln$KshzH4G^mG8xZJ0dqA_w|yn~|kV==dE4X~rmTKs`PR<{x%pc*=JR>C19 zy{uQ)g*M3OEc&w(6=aJRRYpZ^fnvO7=eDU8Rseq8bGT&ogq#fjr#N_E3GQV#It|u? N*jQpLs?CVe{{pb?mv#UE literal 0 HcmV?d00001 diff --git a/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-0dd17490-bbb8-11ec-82b7-8fcb232e9538.json b/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-0dd17490-bbb8-11ec-82b7-8fcb232e9538.json new file mode 100755 index 0000000000..f48ef23ccb --- /dev/null +++ b/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-0dd17490-bbb8-11ec-82b7-8fcb232e9538.json @@ -0,0 +1,282 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-58329672-9ca4-4454-9d78-c619ef956a6a\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"58329672-9ca4-4454-9d78-c619ef956a6a\":{\"columnOrder\":[\"d8990d07-439a-4335-9646-8fbcab6e268d\"],\"columns\":{\"d8990d07-439a-4335-9646-8fbcab6e268d\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"accessor\":\"d8990d07-439a-4335-9646-8fbcab6e268d\",\"layerId\":\"58329672-9ca4-4454-9d78-c619ef956a6a\",\"layerType\":\"data\"}},\"title\":\"Total Number of Threats [Logs SentinelOne]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{}},\"gridData\":{\"h\":6,\"i\":\"ac59079e-c791-449b-aeeb-d47504921dff\",\"w\":12,\"x\":0,\"y\":0},\"panelIndex\":\"ac59079e-c791-449b-aeeb-d47504921dff\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-01d7bdc3-638b-4d23-9ae6-d24678743470\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"01d7bdc3-638b-4d23-9ae6-d24678743470\":{\"columnOrder\":[\"831e34ee-b0d6-44b1-81b7-2bfee2a628ab\"],\"columns\":{\"831e34ee-b0d6-44b1-81b7-2bfee2a628ab\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.threat.incident.status\",\"negate\":false,\"params\":{\"query\":\"resolved\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"sentinel_one.threat.incident.status\":\"resolved\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"accessor\":\"831e34ee-b0d6-44b1-81b7-2bfee2a628ab\",\"layerId\":\"01d7bdc3-638b-4d23-9ae6-d24678743470\",\"layerType\":\"data\"}},\"title\":\"Total Resolved Threats [Logs SentinelOne]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{}},\"gridData\":{\"h\":6,\"i\":\"1684da14-7484-42a6-91d6-b9659883e20d\",\"w\":12,\"x\":12,\"y\":0},\"panelIndex\":\"1684da14-7484-42a6-91d6-b9659883e20d\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-8a4ab761-ffa9-4e3d-bd66-9cf0b7ee9849\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"8a4ab761-ffa9-4e3d-bd66-9cf0b7ee9849\":{\"columnOrder\":[\"f3d83b7a-fc35-4c85-83f8-b41e12baddf6\"],\"columns\":{\"f3d83b7a-fc35-4c85-83f8-b41e12baddf6\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.threat.incident.status\",\"negate\":false,\"params\":{\"query\":\"unresolved\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"sentinel_one.threat.incident.status\":\"unresolved\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"accessor\":\"f3d83b7a-fc35-4c85-83f8-b41e12baddf6\",\"layerId\":\"8a4ab761-ffa9-4e3d-bd66-9cf0b7ee9849\",\"layerType\":\"data\"}},\"title\":\"Unresolved Threats [Logs SentinelOne]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":6,\"i\":\"030f8164-5e7d-4fb6-a779-d0537748a819\",\"w\":12,\"x\":24,\"y\":0},\"panelIndex\":\"030f8164-5e7d-4fb6-a779-d0537748a819\",\"title\":\"Total Unresolved Threats [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-6f8f021f-aef7-458f-a0bb-445bd78741db\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-1\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"6f8f021f-aef7-458f-a0bb-445bd78741db\":{\"columnOrder\":[\"1ede434b-a316-4e79-85b6-ffbfc41f379a\"],\"columns\":{\"1ede434b-a316-4e79-85b6-ffbfc41f379a\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.threat.incident.status\",\"negate\":false,\"params\":{\"query\":\"resolved\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"sentinel_one.threat.incident.status\":\"resolved\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-1\",\"key\":\"sentinel_one.threat.mitigation.status\",\"negate\":false,\"params\":{\"query\":\"active\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"sentinel_one.threat.mitigation.status\":\"active\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"accessor\":\"1ede434b-a316-4e79-85b6-ffbfc41f379a\",\"layerId\":\"6f8f021f-aef7-458f-a0bb-445bd78741db\",\"layerType\":\"data\"}},\"title\":\"Active Threats [Logs SentinelOne]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":6,\"i\":\"075409b1-9d74-4399-8348-3101a2d22392\",\"w\":12,\"x\":36,\"y\":0},\"panelIndex\":\"075409b1-9d74-4399-8348-3101a2d22392\",\"title\":\"Active Threats [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-31be526e-c389-4f6d-93e8-27f1b7dcd0d0\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-1\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"31be526e-c389-4f6d-93e8-27f1b7dcd0d0\":{\"columnOrder\":[\"8ae53844-358d-4472-9d64-d7c2708fc29c\"],\"columns\":{\"8ae53844-358d-4472-9d64-d7c2708fc29c\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.threat.incident.status\",\"negate\":true,\"params\":{\"query\":\"resolved\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"sentinel_one.threat.incident.status\":\"resolved\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-1\",\"key\":\"sentinel_one.threat.mitigation.status\",\"negate\":false,\"params\":{\"query\":\"blocked\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"sentinel_one.threat.mitigation.status\":\"blocked\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"accessor\":\"8ae53844-358d-4472-9d64-d7c2708fc29c\",\"layerId\":\"31be526e-c389-4f6d-93e8-27f1b7dcd0d0\",\"layerType\":\"data\"}},\"title\":\"Blocked Threats [Logs SentinelOne]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":8,\"i\":\"3ff8c08e-3a29-488c-b481-9b51accaae95\",\"w\":16,\"x\":0,\"y\":6},\"panelIndex\":\"3ff8c08e-3a29-488c-b481-9b51accaae95\",\"title\":\"Total Blocked Threats [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-1c27890e-f153-4984-8c2f-6004a3779f71\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-1\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"1c27890e-f153-4984-8c2f-6004a3779f71\":{\"columnOrder\":[\"eb8375d7-8836-43bb-840a-88c8c2f11b43\"],\"columns\":{\"eb8375d7-8836-43bb-840a-88c8c2f11b43\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.threat.mitigation.status\",\"negate\":false,\"params\":{\"query\":\"mitigated\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"sentinel_one.threat.mitigation.status\":\"mitigated\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-1\",\"key\":\"sentinel_one.threat.incident.status\",\"negate\":true,\"params\":{\"query\":\"resolved\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"sentinel_one.threat.incident.status\":\"resolved\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"accessor\":\"eb8375d7-8836-43bb-840a-88c8c2f11b43\",\"layerId\":\"1c27890e-f153-4984-8c2f-6004a3779f71\",\"layerType\":\"data\"}},\"title\":\"Mitigated Threats [Logs SentinelOne]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":8,\"i\":\"d2411b38-52ad-47c2-b364-f1f42b7cd26a\",\"w\":16,\"x\":16,\"y\":6},\"panelIndex\":\"d2411b38-52ad-47c2-b364-f1f42b7cd26a\",\"title\":\"Total Mitigated Threats [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-98a05273-ef46-4b59-8caa-86b7de9c9724\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"98a05273-ef46-4b59-8caa-86b7de9c9724\":{\"columnOrder\":[\"9295a43b-ccd0-4d23-abf8-73586af8dac7\"],\"columns\":{\"9295a43b-ccd0-4d23-abf8-73586af8dac7\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.threat.incident.status\",\"negate\":true,\"params\":{\"query\":\"resolved\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"sentinel_one.threat.incident.status\":\"resolved\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"sentinel_one.threat.mitigation.status : \\\"suspicious\\\" and data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"accessor\":\"9295a43b-ccd0-4d23-abf8-73586af8dac7\",\"layerId\":\"98a05273-ef46-4b59-8caa-86b7de9c9724\",\"layerType\":\"data\"}},\"title\":\"Detected - Suspicious Threats [Logs SentinelOne]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":8,\"i\":\"14069c35-b940-4540-82f8-1ef2bb73dfe1\",\"w\":16,\"x\":32,\"y\":6},\"panelIndex\":\"14069c35-b940-4540-82f8-1ef2bb73dfe1\",\"title\":\"Total Detected - Suspicious Threats [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-9d8d04b8-42e9-488a-9c18-39f38153e46a\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"9d8d04b8-42e9-488a-9c18-39f38153e46a\":{\"columnOrder\":[\"3629412b-4ee6-4169-92d4-d5d8ebb7ab62\",\"324989fb-f85e-4bbc-b7f9-b85472d54928\"],\"columns\":{\"324989fb-f85e-4bbc-b7f9-b85472d54928\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"},\"3629412b-4ee6-4169-92d4-d5d8ebb7ab62\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Prevalent Threats\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"324989fb-f85e-4bbc-b7f9-b85472d54928\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.threat.name\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.threat.incident.status\",\"negate\":true,\"params\":{\"query\":\"resolved\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"sentinel_one.threat.incident.status\":\"resolved\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"324989fb-f85e-4bbc-b7f9-b85472d54928\"],\"layerId\":\"9d8d04b8-42e9-488a-9c18-39f38153e46a\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"3629412b-4ee6-4169-92d4-d5d8ebb7ab62\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Most Prevalent Threats [Logs SentinelOne]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"213a2279-8bb5-491b-b0f0-d5a7a2473670\",\"w\":24,\"x\":24,\"y\":14},\"panelIndex\":\"213a2279-8bb5-491b-b0f0-d5a7a2473670\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-ec6bf891-aedf-4b92-af42-54c04e749174\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"ec6bf891-aedf-4b92-af42-54c04e749174\":{\"columnOrder\":[\"7dc311c6-df3f-40ca-88e5-3925010191be\",\"9934d429-8319-435c-8c72-57a56541dfcb\"],\"columns\":{\"7dc311c6-df3f-40ca-88e5-3925010191be\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Engine Detections\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"9934d429-8319-435c-8c72-57a56541dfcb\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.threat.detection.engines.title\"},\"9934d429-8319-435c-8c72-57a56541dfcb\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"7dc311c6-df3f-40ca-88e5-3925010191be\"],\"layerId\":\"ec6bf891-aedf-4b92-af42-54c04e749174\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"9934d429-8319-435c-8c72-57a56541dfcb\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Detections by Engine [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"14523f88-ccbb-45bc-9758-7263315630cb\",\"w\":24,\"x\":0,\"y\":14},\"panelIndex\":\"14523f88-ccbb-45bc-9758-7263315630cb\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-f83c655e-003c-4cc5-a2e3-789acb23b691\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"f83c655e-003c-4cc5-a2e3-789acb23b691\":{\"columnOrder\":[\"d427f2bd-912c-476e-85a7-3110216b3b8d\",\"7fead18f-d40b-4539-ace7-5328e84140d2\"],\"columns\":{\"7fead18f-d40b-4539-ace7-5328e84140d2\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"},\"d427f2bd-912c-476e-85a7-3110216b3b8d\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Filters\",\"operationType\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.threat.agent.is_active : true \"},\"label\":\"Active Agents\"},{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.threat.agent.is_active : false \"},\"label\":\"Inactive Agents\"}]},\"scale\":\"ordinal\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.threat.agent.is_active\",\"negate\":false,\"type\":\"exists\"},\"query\":{\"exists\":{\"field\":\"sentinel_one.threat.agent.is_active\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"d427f2bd-912c-476e-85a7-3110216b3b8d\"],\"layerId\":\"f83c655e-003c-4cc5-a2e3-789acb23b691\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"7fead18f-d40b-4539-ace7-5328e84140d2\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Threats by Agent Status [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"dc9ba6b7-0c35-4333-99ad-653d57c20fd7\",\"w\":24,\"x\":0,\"y\":29},\"panelIndex\":\"dc9ba6b7-0c35-4333-99ad-653d57c20fd7\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-6f4336e8-7451-476e-89a5-fe65d93be571\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"6f4336e8-7451-476e-89a5-fe65d93be571\":{\"columnOrder\":[\"59424e47-b686-440e-b754-51a079ad1417\",\"7c71fee2-7e8b-48d2-8344-767b3e76f207\"],\"columns\":{\"59424e47-b686-440e-b754-51a079ad1417\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Action\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"7c71fee2-7e8b-48d2-8344-767b3e76f207\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.threat.mitigation_status.action\"},\"7c71fee2-7e8b-48d2-8344-767b3e76f207\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"59424e47-b686-440e-b754-51a079ad1417\"],\"layerId\":\"6f4336e8-7451-476e-89a5-fe65d93be571\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"7c71fee2-7e8b-48d2-8344-767b3e76f207\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Threats by Mitigation Status Action [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"0ae44b6f-3e90-4fce-96a0-a0bdf069ab0e\",\"w\":24,\"x\":24,\"y\":29},\"panelIndex\":\"0ae44b6f-3e90-4fce-96a0-a0bdf069ab0e\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-c5e5c6f0-5d4d-48f4-9ad4-727d5f1c0ebd\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"c5e5c6f0-5d4d-48f4-9ad4-727d5f1c0ebd\":{\"columnOrder\":[\"039a2941-5111-4bf1-a02a-af4a8fe09609\",\"86f6d3c9-4b8b-4d98-afae-df8ba9fd0e43\"],\"columns\":{\"039a2941-5111-4bf1-a02a-af4a8fe09609\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Mitigation Status\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"86f6d3c9-4b8b-4d98-afae-df8ba9fd0e43\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.threat.mitigation_status.status\"},\"86f6d3c9-4b8b-4d98-afae-df8ba9fd0e43\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"039a2941-5111-4bf1-a02a-af4a8fe09609\"],\"layerId\":\"c5e5c6f0-5d4d-48f4-9ad4-727d5f1c0ebd\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"86f6d3c9-4b8b-4d98-afae-df8ba9fd0e43\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Threats by Mitigation Status [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"accf3797-c215-44a4-829d-c9ff30758f7b\",\"w\":24,\"x\":0,\"y\":44},\"panelIndex\":\"accf3797-c215-44a4-829d-c9ff30758f7b\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-a64559b1-90c9-4859-9d5f-2585172bcda4\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"a64559b1-90c9-4859-9d5f-2585172bcda4\":{\"columnOrder\":[\"e8b50532-e3ed-47d7-a0d4-7aaced47afa3\",\"ad08fd36-cbe4-4baa-ac1d-9454a3fd297b\"],\"columns\":{\"ad08fd36-cbe4-4baa-ac1d-9454a3fd297b\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"},\"e8b50532-e3ed-47d7-a0d4-7aaced47afa3\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Mitigation Mode\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ad08fd36-cbe4-4baa-ac1d-9454a3fd297b\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.threat.agent.mitigation_mode\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"ad08fd36-cbe4-4baa-ac1d-9454a3fd297b\"],\"layerId\":\"a64559b1-90c9-4859-9d5f-2585172bcda4\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"e8b50532-e3ed-47d7-a0d4-7aaced47afa3\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Threats by Agent Mitigation Mode [Logs SentinelOne]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"301b13f1-59c8-40e0-80f8-ecc1892b938d\",\"w\":24,\"x\":24,\"y\":44},\"panelIndex\":\"301b13f1-59c8-40e0-80f8-ecc1892b938d\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-da28cab9-5d08-4b0b-bbd6-2cf9952051b2\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"da28cab9-5d08-4b0b-bbd6-2cf9952051b2\":{\"columnOrder\":[\"eb417ca9-4ef4-4280-8fd0-a8f7ca8261eb\",\"ae868bf2-36dc-418c-a6fc-43718e58cd78\"],\"columns\":{\"ae868bf2-36dc-418c-a6fc-43718e58cd78\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"},\"eb417ca9-4ef4-4280-8fd0-a8f7ca8261eb\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Confidence Level\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ae868bf2-36dc-418c-a6fc-43718e58cd78\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.threat.confidence_level\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"ae868bf2-36dc-418c-a6fc-43718e58cd78\"],\"layerId\":\"da28cab9-5d08-4b0b-bbd6-2cf9952051b2\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"eb417ca9-4ef4-4280-8fd0-a8f7ca8261eb\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Threats by Confidence Level [Logs SentinelOne]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"b8f90700-ca73-40c7-9257-8612aa86cc9f\",\"w\":24,\"x\":0,\"y\":59},\"panelIndex\":\"b8f90700-ca73-40c7-9257-8612aa86cc9f\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-87c51fc8-6c57-4d1c-a3f5-8b420f1d392c\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"87c51fc8-6c57-4d1c-a3f5-8b420f1d392c\":{\"columnOrder\":[\"4aa33c2e-9de0-4eb8-96d2-2e2c4da4c70f\",\"7c555542-d2ad-4e9f-9779-305d5be0422a\"],\"columns\":{\"4aa33c2e-9de0-4eb8-96d2-2e2c4da4c70f\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"File Extension\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"7c555542-d2ad-4e9f-9779-305d5be0422a\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.threat.file.extension.type\"},\"7c555542-d2ad-4e9f-9779-305d5be0422a\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"7c555542-d2ad-4e9f-9779-305d5be0422a\"],\"layerId\":\"87c51fc8-6c57-4d1c-a3f5-8b420f1d392c\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"4aa33c2e-9de0-4eb8-96d2-2e2c4da4c70f\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Threats by File Extension Type [Logs SentinelOne]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"9bdf752f-f767-44a4-bf05-51e0a27b7bbf\",\"w\":24,\"x\":24,\"y\":59},\"panelIndex\":\"9bdf752f-f767-44a4-bf05-51e0a27b7bbf\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-3f121a5b-0179-4329-a945-a3d23d83172f\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"3f121a5b-0179-4329-a945-a3d23d83172f\":{\"columnOrder\":[\"d0e857c2-8d8d-4177-9667-36bacc56c5a1\",\"cf378f6b-a6f6-4df2-933c-95224587ebf8\"],\"columns\":{\"cf378f6b-a6f6-4df2-933c-95224587ebf8\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"},\"d0e857c2-8d8d-4177-9667-36bacc56c5a1\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"File Extension\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"cf378f6b-a6f6-4df2-933c-95224587ebf8\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"threat.indicator.file.extension\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"d0e857c2-8d8d-4177-9667-36bacc56c5a1\",\"isTransposed\":false},{\"columnId\":\"cf378f6b-a6f6-4df2-933c-95224587ebf8\",\"isTransposed\":false}],\"layerId\":\"3f121a5b-0179-4329-a945-a3d23d83172f\",\"layerType\":\"data\"}},\"title\":\"Top 10 File Extension [Logs SentinelOne]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"ed9a7061-e640-41f3-a838-3772f86e4be4\",\"w\":24,\"x\":0,\"y\":74},\"panelIndex\":\"ed9a7061-e640-41f3-a838-3772f86e4be4\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-8662c82e-ca55-4ddc-81b6-2c4f9a3afbf8\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"8662c82e-ca55-4ddc-81b6-2c4f9a3afbf8\":{\"columnOrder\":[\"33d893f0-097c-42d5-bf31-4460415368d4\",\"d71d067f-c96c-4701-8f64-700b42388d59\"],\"columns\":{\"33d893f0-097c-42d5-bf31-4460415368d4\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Incident Status\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"d71d067f-c96c-4701-8f64-700b42388d59\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.threat.incident.status\"},\"d71d067f-c96c-4701-8f64-700b42388d59\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"d71d067f-c96c-4701-8f64-700b42388d59\"],\"layerId\":\"8662c82e-ca55-4ddc-81b6-2c4f9a3afbf8\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"33d893f0-097c-42d5-bf31-4460415368d4\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Threats by Incident Status [Logs SentinelOne]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"e17f8b5f-d5de-4921-bb3a-9d3e7ef58ae4\",\"w\":24,\"x\":24,\"y\":74},\"panelIndex\":\"e17f8b5f-d5de-4921-bb3a-9d3e7ef58ae4\",\"title\":\"Distribution of Threats by Incident Status [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\",\"field\":\"sentinel_one.threat.id\"},\"schema\":\"metric\",\"type\":\"cardinality\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Technique Name\",\"field\":\"threat.technique.id\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"searchSource\":{\"filter\":[],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"}}},\"description\":\"\",\"params\":{\"maxFontSize\":72,\"minFontSize\":18,\"orientation\":\"single\",\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"scale\":\"linear\",\"showLabel\":true},\"title\":\"Top 10 Threat Techniques [Logs SentinelOne]\",\"type\":\"tagcloud\",\"uiState\":{}}},\"gridData\":{\"h\":15,\"i\":\"6d788430-6b2b-4e7c-9468-36b0aebf8468\",\"w\":24,\"x\":0,\"y\":89},\"panelIndex\":\"6d788430-6b2b-4e7c-9468-36b0aebf8468\",\"type\":\"visualization\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-71ff1569-960a-408c-8e00-df6b68186912\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"71ff1569-960a-408c-8e00-df6b68186912\":{\"columnOrder\":[\"9a221d90-b37c-4947-899a-a8806d7d25f1\",\"d24c6b72-358d-4f01-ade3-cf9c228946e0\"],\"columns\":{\"9a221d90-b37c-4947-899a-a8806d7d25f1\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Filters\",\"operationType\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.threat.agent.infected : true \"},\"label\":\"Infected Agents\"},{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.threat.agent.infected : false \"},\"label\":\"Non-Infected Agents\"}]},\"scale\":\"ordinal\"},\"d24c6b72-358d-4f01-ade3-cf9c228946e0\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.threat.agent.infected\",\"negate\":false,\"type\":\"exists\"},\"query\":{\"exists\":{\"field\":\"sentinel_one.threat.agent.infected\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"9a221d90-b37c-4947-899a-a8806d7d25f1\"],\"layerId\":\"71ff1569-960a-408c-8e00-df6b68186912\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"d24c6b72-358d-4f01-ade3-cf9c228946e0\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Threats by Infected Agents [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"1888de07-0e2f-4fc4-80e9-f3102e8b97b3\",\"w\":24,\"x\":24,\"y\":89},\"panelIndex\":\"1888de07-0e2f-4fc4-80e9-f3102e8b97b3\",\"title\":\"Distribution of Threats by Infected Agents [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-9fe7a9cc-3417-4166-bdfc-5cdb85599981\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"9fe7a9cc-3417-4166-bdfc-5cdb85599981\":{\"columnOrder\":[\"d0c8d1eb-750e-4d24-b6c3-245ca5bf9daa\",\"99d2033b-2144-4e21-ad23-a170fcac9408\"],\"columns\":{\"99d2033b-2144-4e21-ad23-a170fcac9408\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.threat.id\"},\"d0c8d1eb-750e-4d24-b6c3-245ca5bf9daa\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Detection Engine\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"99d2033b-2144-4e21-ad23-a170fcac9408\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.threat.detection.engines.title\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"d0c8d1eb-750e-4d24-b6c3-245ca5bf9daa\",\"isTransposed\":false},{\"columnId\":\"99d2033b-2144-4e21-ad23-a170fcac9408\",\"isTransposed\":false}],\"layerId\":\"9fe7a9cc-3417-4166-bdfc-5cdb85599981\",\"layerType\":\"data\"}},\"title\":\"Distribution of Threats by Detection Engine [Logs SentinelOne] \",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"6080a8f0-54d7-4fae-884f-f34dbed69ea8\",\"w\":24,\"x\":0,\"y\":104},\"panelIndex\":\"6080a8f0-54d7-4fae-884f-f34dbed69ea8\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"enhancements\":{},\"savedVis\":{\"data\":{\"aggs\":[{\"enabled\":true,\"id\":\"1\",\"params\":{\"customLabel\":\"Count\",\"field\":\"sentinel_one.threat.id\"},\"schema\":\"metric\",\"type\":\"cardinality\"},{\"enabled\":true,\"id\":\"2\",\"params\":{\"customLabel\":\"Threat Classification\",\"field\":\"sentinel_one.threat.classification\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"order\":\"desc\",\"orderBy\":\"1\",\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"size\":10},\"schema\":\"segment\",\"type\":\"terms\"}],\"searchSource\":{\"filter\":[],\"index\":\"logs-*\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.threat\\\"\"}}},\"description\":\"\",\"params\":{\"maxFontSize\":72,\"minFontSize\":18,\"orientation\":\"single\",\"palette\":{\"name\":\"default\",\"type\":\"palette\"},\"scale\":\"linear\",\"showLabel\":true},\"title\":\"Top Threats by Classification [Logs SentinelOne]\",\"type\":\"tagcloud\",\"uiState\":{}}},\"gridData\":{\"h\":15,\"i\":\"55d0b7da-986b-4e98-b476-f3768233dc8f\",\"w\":24,\"x\":24,\"y\":104},\"panelIndex\":\"55d0b7da-986b-4e98-b476-f3768233dc8f\",\"type\":\"visualization\",\"version\":\"7.17.0\"}]", + "timeRestore": false, + "title": "[Logs SentinelOne] Threats", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "sentinel_one-0dd17490-bbb8-11ec-82b7-8fcb232e9538", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "ac59079e-c791-449b-aeeb-d47504921dff:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "ac59079e-c791-449b-aeeb-d47504921dff:indexpattern-datasource-layer-58329672-9ca4-4454-9d78-c619ef956a6a", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "1684da14-7484-42a6-91d6-b9659883e20d:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "1684da14-7484-42a6-91d6-b9659883e20d:indexpattern-datasource-layer-01d7bdc3-638b-4d23-9ae6-d24678743470", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "1684da14-7484-42a6-91d6-b9659883e20d:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "030f8164-5e7d-4fb6-a779-d0537748a819:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "030f8164-5e7d-4fb6-a779-d0537748a819:indexpattern-datasource-layer-8a4ab761-ffa9-4e3d-bd66-9cf0b7ee9849", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "030f8164-5e7d-4fb6-a779-d0537748a819:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "075409b1-9d74-4399-8348-3101a2d22392:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "075409b1-9d74-4399-8348-3101a2d22392:indexpattern-datasource-layer-6f8f021f-aef7-458f-a0bb-445bd78741db", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "075409b1-9d74-4399-8348-3101a2d22392:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "075409b1-9d74-4399-8348-3101a2d22392:filter-index-pattern-1", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3ff8c08e-3a29-488c-b481-9b51accaae95:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3ff8c08e-3a29-488c-b481-9b51accaae95:indexpattern-datasource-layer-31be526e-c389-4f6d-93e8-27f1b7dcd0d0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3ff8c08e-3a29-488c-b481-9b51accaae95:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3ff8c08e-3a29-488c-b481-9b51accaae95:filter-index-pattern-1", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d2411b38-52ad-47c2-b364-f1f42b7cd26a:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d2411b38-52ad-47c2-b364-f1f42b7cd26a:indexpattern-datasource-layer-1c27890e-f153-4984-8c2f-6004a3779f71", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d2411b38-52ad-47c2-b364-f1f42b7cd26a:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d2411b38-52ad-47c2-b364-f1f42b7cd26a:filter-index-pattern-1", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "14069c35-b940-4540-82f8-1ef2bb73dfe1:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "14069c35-b940-4540-82f8-1ef2bb73dfe1:indexpattern-datasource-layer-98a05273-ef46-4b59-8caa-86b7de9c9724", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "14069c35-b940-4540-82f8-1ef2bb73dfe1:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "213a2279-8bb5-491b-b0f0-d5a7a2473670:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "213a2279-8bb5-491b-b0f0-d5a7a2473670:indexpattern-datasource-layer-9d8d04b8-42e9-488a-9c18-39f38153e46a", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "213a2279-8bb5-491b-b0f0-d5a7a2473670:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "14523f88-ccbb-45bc-9758-7263315630cb:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "14523f88-ccbb-45bc-9758-7263315630cb:indexpattern-datasource-layer-ec6bf891-aedf-4b92-af42-54c04e749174", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "dc9ba6b7-0c35-4333-99ad-653d57c20fd7:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "dc9ba6b7-0c35-4333-99ad-653d57c20fd7:indexpattern-datasource-layer-f83c655e-003c-4cc5-a2e3-789acb23b691", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "dc9ba6b7-0c35-4333-99ad-653d57c20fd7:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "0ae44b6f-3e90-4fce-96a0-a0bdf069ab0e:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "0ae44b6f-3e90-4fce-96a0-a0bdf069ab0e:indexpattern-datasource-layer-6f4336e8-7451-476e-89a5-fe65d93be571", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "accf3797-c215-44a4-829d-c9ff30758f7b:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "accf3797-c215-44a4-829d-c9ff30758f7b:indexpattern-datasource-layer-c5e5c6f0-5d4d-48f4-9ad4-727d5f1c0ebd", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "301b13f1-59c8-40e0-80f8-ecc1892b938d:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "301b13f1-59c8-40e0-80f8-ecc1892b938d:indexpattern-datasource-layer-a64559b1-90c9-4859-9d5f-2585172bcda4", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b8f90700-ca73-40c7-9257-8612aa86cc9f:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b8f90700-ca73-40c7-9257-8612aa86cc9f:indexpattern-datasource-layer-da28cab9-5d08-4b0b-bbd6-2cf9952051b2", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "9bdf752f-f767-44a4-bf05-51e0a27b7bbf:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "9bdf752f-f767-44a4-bf05-51e0a27b7bbf:indexpattern-datasource-layer-87c51fc8-6c57-4d1c-a3f5-8b420f1d392c", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "ed9a7061-e640-41f3-a838-3772f86e4be4:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "ed9a7061-e640-41f3-a838-3772f86e4be4:indexpattern-datasource-layer-3f121a5b-0179-4329-a945-a3d23d83172f", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e17f8b5f-d5de-4921-bb3a-9d3e7ef58ae4:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e17f8b5f-d5de-4921-bb3a-9d3e7ef58ae4:indexpattern-datasource-layer-8662c82e-ca55-4ddc-81b6-2c4f9a3afbf8", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "6d788430-6b2b-4e7c-9468-36b0aebf8468:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "1888de07-0e2f-4fc4-80e9-f3102e8b97b3:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "1888de07-0e2f-4fc4-80e9-f3102e8b97b3:indexpattern-datasource-layer-71ff1569-960a-408c-8e00-df6b68186912", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "1888de07-0e2f-4fc4-80e9-f3102e8b97b3:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "6080a8f0-54d7-4fae-884f-f34dbed69ea8:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "6080a8f0-54d7-4fae-884f-f34dbed69ea8:indexpattern-datasource-layer-9fe7a9cc-3417-4166-bdfc-5cdb85599981", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "55d0b7da-986b-4e98-b476-f3768233dc8f:kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-5881f5f0-bb2c-11ec-82b7-8fcb232e9538.json b/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-5881f5f0-bb2c-11ec-82b7-8fcb232e9538.json new file mode 100755 index 0000000000..2bf2cdc78c --- /dev/null +++ b/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-5881f5f0-bb2c-11ec-82b7-8fcb232e9538.json @@ -0,0 +1,72 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.group\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-551abd38-5fb7-4b65-8582-5aefeb823354\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"551abd38-5fb7-4b65-8582-5aefeb823354\":{\"columnOrder\":[\"e7acea9a-d9f8-4717-bcc7-5f20c894af20\"],\"columns\":{\"e7acea9a-d9f8-4717-bcc7-5f20c894af20\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"group.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.group\\\"\"},\"visualization\":{\"accessor\":\"e7acea9a-d9f8-4717-bcc7-5f20c894af20\",\"layerId\":\"551abd38-5fb7-4b65-8582-5aefeb823354\",\"layerType\":\"data\"}},\"title\":\"Total Number of Groups [Logs SentinelOne]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{}},\"gridData\":{\"h\":13,\"i\":\"2e9c0218-0e41-4cc7-80fa-a135cd08357a\",\"w\":15,\"x\":0,\"y\":0},\"panelIndex\":\"2e9c0218-0e41-4cc7-80fa-a135cd08357a\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-9003983d-2897-44e8-8d69-98131f4862c0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"9003983d-2897-44e8-8d69-98131f4862c0\":{\"columnOrder\":[\"e90d8830-87e6-44bd-b01d-05cf41281d45\",\"eea9932f-21ee-4f28-b1a7-feb8b211c125\"],\"columns\":{\"e90d8830-87e6-44bd-b01d-05cf41281d45\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Group Type\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"eea9932f-21ee-4f28-b1a7-feb8b211c125\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.group.type\"},\"eea9932f-21ee-4f28-b1a7-feb8b211c125\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"group.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.group\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"e90d8830-87e6-44bd-b01d-05cf41281d45\"],\"layerId\":\"9003983d-2897-44e8-8d69-98131f4862c0\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"eea9932f-21ee-4f28-b1a7-feb8b211c125\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Groups by Type [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":13,\"i\":\"44491cae-8e0b-45dc-abdd-ea5d57f1f419\",\"w\":16,\"x\":15,\"y\":0},\"panelIndex\":\"44491cae-8e0b-45dc-abdd-ea5d57f1f419\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-75ff32d0-b457-43b3-aaed-fa3bf295c083\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"75ff32d0-b457-43b3-aaed-fa3bf295c083\":{\"columnOrder\":[\"1e289288-8b66-476a-8143-1c1f7be49110\",\"902abe3f-a4f0-46d8-bc58-955a9b578b7e\"],\"columns\":{\"1e289288-8b66-476a-8143-1c1f7be49110\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Group Name\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"902abe3f-a4f0-46d8-bc58-955a9b578b7e\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"group.name\"},\"902abe3f-a4f0-46d8-bc58-955a9b578b7e\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Agent Count\",\"operationType\":\"max\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.group.agent.count\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.group\\\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"902abe3f-a4f0-46d8-bc58-955a9b578b7e\"],\"layerId\":\"75ff32d0-b457-43b3-aaed-fa3bf295c083\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"1e289288-8b66-476a-8143-1c1f7be49110\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Groups by Agent Count [Logs SentinelOne]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":13,\"i\":\"26084a13-4083-4c3e-9f81-677b4ca38ca7\",\"w\":17,\"x\":31,\"y\":0},\"panelIndex\":\"26084a13-4083-4c3e-9f81-677b4ca38ca7\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-1b0e558e-537e-40a9-bc0a-f8b42329c6b5\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"1b0e558e-537e-40a9-bc0a-f8b42329c6b5\":{\"columnOrder\":[\"b88243e5-5e92-47d3-b775-f0a9d71fadf6\",\"a6e675d7-f28f-4e37-9b0e-a0849fbaa6b8\"],\"columns\":{\"a6e675d7-f28f-4e37-9b0e-a0849fbaa6b8\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"group.id\"},\"b88243e5-5e92-47d3-b775-f0a9d71fadf6\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Rank\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"a6e675d7-f28f-4e37-9b0e-a0849fbaa6b8\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.group.rank\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.group\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"b88243e5-5e92-47d3-b775-f0a9d71fadf6\"],\"layerId\":\"1b0e558e-537e-40a9-bc0a-f8b42329c6b5\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"a6e675d7-f28f-4e37-9b0e-a0849fbaa6b8\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Groups by Rank [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"c4c1c721-dabf-4a99-bd53-934afe7bb4d7\",\"w\":23,\"x\":0,\"y\":13},\"panelIndex\":\"c4c1c721-dabf-4a99-bd53-934afe7bb4d7\",\"title\":\"Distribution of Groups by Rank [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-cc8dc395-79e3-40c5-9857-d0385fcdc791\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"cc8dc395-79e3-40c5-9857-d0385fcdc791\":{\"columnOrder\":[\"ddec8617-23ff-4060-8029-5973b691cacd\",\"84fdcb1d-a681-41b1-b015-201cc40554f9\"],\"columns\":{\"84fdcb1d-a681-41b1-b015-201cc40554f9\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"group.id\"},\"ddec8617-23ff-4060-8029-5973b691cacd\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Creator Name\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"84fdcb1d-a681-41b1-b015-201cc40554f9\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"user.full_name\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.group\\\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"ddec8617-23ff-4060-8029-5973b691cacd\",\"isTransposed\":false},{\"columnId\":\"84fdcb1d-a681-41b1-b015-201cc40554f9\",\"isTransposed\":false}],\"layerId\":\"cc8dc395-79e3-40c5-9857-d0385fcdc791\",\"layerType\":\"data\"}},\"title\":\"Top 10 Creator Name [Logs SentinelOne]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"4694770f-8a83-4877-992c-1a078c45e3c6\",\"w\":25,\"x\":23,\"y\":13},\"panelIndex\":\"4694770f-8a83-4877-992c-1a078c45e3c6\",\"type\":\"lens\",\"version\":\"7.17.0\"}]", + "timeRestore": false, + "title": "[Logs SentinelOne] Groups", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "sentinel_one-5881f5f0-bb2c-11ec-82b7-8fcb232e9538", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "2e9c0218-0e41-4cc7-80fa-a135cd08357a:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "2e9c0218-0e41-4cc7-80fa-a135cd08357a:indexpattern-datasource-layer-551abd38-5fb7-4b65-8582-5aefeb823354", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "44491cae-8e0b-45dc-abdd-ea5d57f1f419:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "44491cae-8e0b-45dc-abdd-ea5d57f1f419:indexpattern-datasource-layer-9003983d-2897-44e8-8d69-98131f4862c0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "26084a13-4083-4c3e-9f81-677b4ca38ca7:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "26084a13-4083-4c3e-9f81-677b4ca38ca7:indexpattern-datasource-layer-75ff32d0-b457-43b3-aaed-fa3bf295c083", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c4c1c721-dabf-4a99-bd53-934afe7bb4d7:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c4c1c721-dabf-4a99-bd53-934afe7bb4d7:indexpattern-datasource-layer-1b0e558e-537e-40a9-bc0a-f8b42329c6b5", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "4694770f-8a83-4877-992c-1a078c45e3c6:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "4694770f-8a83-4877-992c-1a078c45e3c6:indexpattern-datasource-layer-cc8dc395-79e3-40c5-9857-d0385fcdc791", + "type": "index-pattern" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-67844880-bbb5-11ec-82b7-8fcb232e9538.json b/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-67844880-bbb5-11ec-82b7-8fcb232e9538.json new file mode 100755 index 0000000000..991792e563 --- /dev/null +++ b/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-67844880-bbb5-11ec-82b7-8fcb232e9538.json @@ -0,0 +1,212 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-56dc7645-caa9-462c-abbd-496b8e73ba9c\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"56dc7645-caa9-462c-abbd-496b8e73ba9c\":{\"columnOrder\":[\"b504e88b-35dc-4481-b38b-617210c7054d\",\"123404f0-3fb4-40b8-88d0-2debd9a5ebfc\"],\"columns\":{\"123404f0-3fb4-40b8-88d0-2debd9a5ebfc\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"},\"b504e88b-35dc-4481-b38b-617210c7054d\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Filters\",\"operationType\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.agent.is_active : true \"},\"label\":\"Active Agents\"},{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.agent.is_active : false \"},\"label\":\"Inactive Agents\"}]},\"scale\":\"ordinal\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.agent.is_active\",\"negate\":false,\"type\":\"exists\"},\"query\":{\"exists\":{\"field\":\"sentinel_one.agent.is_active\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"b504e88b-35dc-4481-b38b-617210c7054d\"],\"layerId\":\"56dc7645-caa9-462c-abbd-496b8e73ba9c\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"123404f0-3fb4-40b8-88d0-2debd9a5ebfc\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Agents by Active Agents Status [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"88da7d9d-b377-4455-a528-719f58c796f7\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"88da7d9d-b377-4455-a528-719f58c796f7\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-ddc8b7d7-81b9-4d85-a686-7e723fc02c52\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"ddc8b7d7-81b9-4d85-a686-7e723fc02c52\":{\"columnOrder\":[\"76f65f2c-80e0-41fe-a2cf-d470ec579540\",\"42960489-8884-48d3-89d4-f7e6ac04e3c8\"],\"columns\":{\"42960489-8884-48d3-89d4-f7e6ac04e3c8\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"},\"76f65f2c-80e0-41fe-a2cf-d470ec579540\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Filters\",\"operationType\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.agent.firewall_enabled : true \"},\"label\":\"Enabled\"},{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.agent.firewall_enabled: false \"},\"label\":\"Disabled\"}]},\"scale\":\"ordinal\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.agent.firewall_enabled\",\"negate\":false,\"type\":\"exists\"},\"query\":{\"exists\":{\"field\":\"sentinel_one.agent.firewall_enabled\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"76f65f2c-80e0-41fe-a2cf-d470ec579540\"],\"layerId\":\"ddc8b7d7-81b9-4d85-a686-7e723fc02c52\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"42960489-8884-48d3-89d4-f7e6ac04e3c8\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Agents by Firewall Status [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"3158c9a2-f48a-42e2-ae82-e01c07a0a77b\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"3158c9a2-f48a-42e2-ae82-e01c07a0a77b\",\"title\":\"Distribution of Agents with Firewall Status [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-e4082dc4-e9cc-4589-aed3-bf66cdac7d34\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"e4082dc4-e9cc-4589-aed3-bf66cdac7d34\":{\"columnOrder\":[\"262773c9-227c-4f57-8bfc-530148301609\",\"14960b41-614b-4650-90d9-5feec22c00ce\"],\"columns\":{\"14960b41-614b-4650-90d9-5feec22c00ce\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"},\"262773c9-227c-4f57-8bfc-530148301609\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Scan Status\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"14960b41-614b-4650-90d9-5feec22c00ce\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.agent.scan.status\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"262773c9-227c-4f57-8bfc-530148301609\"],\"layerId\":\"e4082dc4-e9cc-4589-aed3-bf66cdac7d34\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"14960b41-614b-4650-90d9-5feec22c00ce\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Agents by Scan Status [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"a1308966-3dec-431c-82e3-29890ad87785\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"a1308966-3dec-431c-82e3-29890ad87785\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-6a90d9b3-18c1-4b5d-9ba1-0a4bbf0022e3\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"6a90d9b3-18c1-4b5d-9ba1-0a4bbf0022e3\":{\"columnOrder\":[\"e8c07bab-a3f7-4cc9-96aa-4affa24dbbb2\",\"c986097b-d867-4c7f-a519-04be42d34916\"],\"columns\":{\"c986097b-d867-4c7f-a519-04be42d34916\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count \",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"},\"e8c07bab-a3f7-4cc9-96aa-4affa24dbbb2\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Mitigation Mode\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"c986097b-d867-4c7f-a519-04be42d34916\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.agent.mitigation_mode\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"c986097b-d867-4c7f-a519-04be42d34916\"],\"layerId\":\"6a90d9b3-18c1-4b5d-9ba1-0a4bbf0022e3\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"e8c07bab-a3f7-4cc9-96aa-4affa24dbbb2\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Agents by Mitigation Mode [Logs SentinelOne]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"b4b87cb0-eccc-4b59-a6bc-5aca60f1cdb8\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"b4b87cb0-eccc-4b59-a6bc-5aca60f1cdb8\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-46e7eb74-692b-4c09-b8cd-f7817757c592\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"46e7eb74-692b-4c09-b8cd-f7817757c592\":{\"columnOrder\":[\"4394b62d-0267-4f42-9c8a-1e0f661181ca\",\"669fda39-2f89-42f4-8f3d-24ebed033e42\"],\"columns\":{\"4394b62d-0267-4f42-9c8a-1e0f661181ca\":{\"customLabel\":true,\"dataType\":\"ip\",\"isBucketed\":true,\"label\":\"Group IP\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"669fda39-2f89-42f4-8f3d-24ebed033e42\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.agent.group.ip\"},\"669fda39-2f89-42f4-8f3d-24ebed033e42\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count \",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"4394b62d-0267-4f42-9c8a-1e0f661181ca\"],\"layerId\":\"46e7eb74-692b-4c09-b8cd-f7817757c592\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"669fda39-2f89-42f4-8f3d-24ebed033e42\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Agents by Group IP [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"5b220d94-4542-4e91-82a5-6fddc2d1f450\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"5b220d94-4542-4e91-82a5-6fddc2d1f450\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-76063bf9-bddc-448f-805e-e53308972d0a\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"76063bf9-bddc-448f-805e-e53308972d0a\":{\"columnOrder\":[\"96dd816b-0e55-4e31-9e5b-11f64820a453\",\"2fb054c3-aaea-48a1-99c6-4de1dcd81881\"],\"columns\":{\"2fb054c3-aaea-48a1-99c6-4de1dcd81881\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"},\"96dd816b-0e55-4e31-9e5b-11f64820a453\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"OS Architecture\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"2fb054c3-aaea-48a1-99c6-4de1dcd81881\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.agent.os.arch\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"96dd816b-0e55-4e31-9e5b-11f64820a453\"],\"layerId\":\"76063bf9-bddc-448f-805e-e53308972d0a\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"2fb054c3-aaea-48a1-99c6-4de1dcd81881\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Agents by OS Architecture [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"4250d06c-8c4c-49ee-8199-3e153a355987\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"4250d06c-8c4c-49ee-8199-3e153a355987\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-67c6e93f-d08b-4c37-b01f-0d2b29874291\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"67c6e93f-d08b-4c37-b01f-0d2b29874291\":{\"columnOrder\":[\"6e3b93ec-b364-4d1a-8cd9-eb4250561a57\",\"44eec685-7c49-4119-baf7-2547c57d857a\"],\"columns\":{\"44eec685-7c49-4119-baf7-2547c57d857a\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"},\"6e3b93ec-b364-4d1a-8cd9-eb4250561a57\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Installer Type\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"44eec685-7c49-4119-baf7-2547c57d857a\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.agent.installer_type\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"44eec685-7c49-4119-baf7-2547c57d857a\"],\"layerId\":\"67c6e93f-d08b-4c37-b01f-0d2b29874291\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"6e3b93ec-b364-4d1a-8cd9-eb4250561a57\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Agents by Installer Type [Logs SentinelOne]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"f2bbdd58-6b06-4b74-9b65-21858c9059c0\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"f2bbdd58-6b06-4b74-9b65-21858c9059c0\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-dae671b1-cfe6-4d04-b4b6-8037b31a5fe4\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"dae671b1-cfe6-4d04-b4b6-8037b31a5fe4\":{\"columnOrder\":[\"a8c8f9a7-9950-4eb1-aef9-2e3c223c64de\",\"f951b023-b4c9-4f40-8e27-e3122b6db069\"],\"columns\":{\"a8c8f9a7-9950-4eb1-aef9-2e3c223c64de\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Machine Type\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"f951b023-b4c9-4f40-8e27-e3122b6db069\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.agent.machine.type\"},\"f951b023-b4c9-4f40-8e27-e3122b6db069\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"a8c8f9a7-9950-4eb1-aef9-2e3c223c64de\"],\"layerId\":\"dae671b1-cfe6-4d04-b4b6-8037b31a5fe4\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"f951b023-b4c9-4f40-8e27-e3122b6db069\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Agents by Machine Type [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"595ba171-1de6-4b07-9f75-99d7b87fb828\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"595ba171-1de6-4b07-9f75-99d7b87fb828\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-06b2ffc3-7740-4e73-807a-ea80e0747b80\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"06b2ffc3-7740-4e73-807a-ea80e0747b80\":{\"columnOrder\":[\"0c348764-2e97-4ac5-829c-cd320b30e4d4\",\"ae18bca1-5ee5-44cd-a845-4b6d5e2f9fbe\",\"28cd1c1b-ab0a-40fb-a603-a1ddc4f0157f\"],\"columns\":{\"0c348764-2e97-4ac5-829c-cd320b30e4d4\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"OS Type\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"28cd1c1b-ab0a-40fb-a603-a1ddc4f0157f\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"host.os.type\"},\"28cd1c1b-ab0a-40fb-a603-a1ddc4f0157f\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"},\"ae18bca1-5ee5-44cd-a845-4b6d5e2f9fbe\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"OS Name\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"28cd1c1b-ab0a-40fb-a603-a1ddc4f0157f\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"host.os.name\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"ae18bca1-5ee5-44cd-a845-4b6d5e2f9fbe\",\"0c348764-2e97-4ac5-829c-cd320b30e4d4\",\"ae18bca1-5ee5-44cd-a845-4b6d5e2f9fbe\"],\"layerId\":\"06b2ffc3-7740-4e73-807a-ea80e0747b80\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"28cd1c1b-ab0a-40fb-a603-a1ddc4f0157f\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Agents by OS Name, OS Type [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"e1812890-1e55-4323-8016-fc7340d95b2f\",\"w\":24,\"x\":0,\"y\":60},\"panelIndex\":\"e1812890-1e55-4323-8016-fc7340d95b2f\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-456e2023-abf7-40b7-bbc4-35020ef2edd5\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"456e2023-abf7-40b7-bbc4-35020ef2edd5\":{\"columnOrder\":[\"13bfcde7-20c3-40f4-a865-9c8db705dde6\",\"f8a1e135-5ef5-4e17-8660-369ab0230dd1\"],\"columns\":{\"13bfcde7-20c3-40f4-a865-9c8db705dde6\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Filters\",\"operationType\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.agent.infected : true \"},\"label\":\"Infected Agents\"},{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.agent.infected : false \"},\"label\":\"Non-Infected Agents\"}]},\"scale\":\"ordinal\"},\"f8a1e135-5ef5-4e17-8660-369ab0230dd1\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.agent.infected\",\"negate\":false,\"type\":\"exists\"},\"query\":{\"exists\":{\"field\":\"sentinel_one.agent.infected\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"13bfcde7-20c3-40f4-a865-9c8db705dde6\"],\"layerId\":\"456e2023-abf7-40b7-bbc4-35020ef2edd5\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"f8a1e135-5ef5-4e17-8660-369ab0230dd1\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Agents by Infected Agents Status [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"445f92f7-7a5f-4236-a8ac-df3087a536fe\",\"w\":24,\"x\":24,\"y\":60},\"panelIndex\":\"445f92f7-7a5f-4236-a8ac-df3087a536fe\",\"title\":\"Distribution of Agents by Infected Agents [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-94b7fb49-4faf-4114-baa6-2c621257fd25\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"94b7fb49-4faf-4114-baa6-2c621257fd25\":{\"columnOrder\":[\"14e97f3a-9df8-494f-9190-6ff104f0e040\",\"ab4aa055-75f5-45bc-8d34-883bc47f771a\"],\"columns\":{\"14e97f3a-9df8-494f-9190-6ff104f0e040\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Site Name\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ab4aa055-75f5-45bc-8d34-883bc47f771a\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.agent.site.name\"},\"ab4aa055-75f5-45bc-8d34-883bc47f771a\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"14e97f3a-9df8-494f-9190-6ff104f0e040\",\"isTransposed\":false},{\"columnId\":\"ab4aa055-75f5-45bc-8d34-883bc47f771a\",\"isTransposed\":false}],\"layerId\":\"94b7fb49-4faf-4114-baa6-2c621257fd25\",\"layerType\":\"data\"}},\"title\":\"Top 10 Site Name [Logs SentinelOne]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"fce4e5f5-f30f-473f-8bbf-9523a84a3f96\",\"w\":24,\"x\":0,\"y\":75},\"panelIndex\":\"fce4e5f5-f30f-473f-8bbf-9523a84a3f96\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-9767cd3d-c1a5-443e-9e79-64f2be92d73e\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"9767cd3d-c1a5-443e-9e79-64f2be92d73e\":{\"columnOrder\":[\"91f47b2b-9e63-4958-9aeb-5d46537caaaa\",\"f35cbfab-8158-4a67-b1ea-b4142fe750b4\"],\"columns\":{\"91f47b2b-9e63-4958-9aeb-5d46537caaaa\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Filters\",\"operationType\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.agent.is_up_to_date : true \"},\"label\":\"Up To Date Agents\"},{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.agent.is_up_to_date : false \"},\"label\":\"Out Dated Agents\"}]},\"scale\":\"ordinal\"},\"f35cbfab-8158-4a67-b1ea-b4142fe750b4\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.agent.is_up_to_date\",\"negate\":false,\"type\":\"exists\"},\"query\":{\"exists\":{\"field\":\"sentinel_one.agent.is_up_to_date\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"91f47b2b-9e63-4958-9aeb-5d46537caaaa\"],\"layerId\":\"9767cd3d-c1a5-443e-9e79-64f2be92d73e\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"f35cbfab-8158-4a67-b1ea-b4142fe750b4\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Agents by Up To Date Agents Status [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"8fa0d643-4d93-45a8-a9ea-57f6e1cff5a5\",\"w\":24,\"x\":24,\"y\":75},\"panelIndex\":\"8fa0d643-4d93-45a8-a9ea-57f6e1cff5a5\",\"title\":\"Distribution of Agents by Up To Date Agents [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-469a2da2-7e40-4e47-b882-b553ebc14bf2\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"469a2da2-7e40-4e47-b882-b553ebc14bf2\":{\"columnOrder\":[\"f9e8f30e-66a3-46c2-bf37-5a8a0be26ce3\",\"699767aa-b223-466d-b751-833a7921e49a\"],\"columns\":{\"699767aa-b223-466d-b751-833a7921e49a\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Active Threats\",\"operationType\":\"median\",\"scale\":\"ratio\",\"sourceField\":\"sentinel_one.agent.active_threats_count\"},\"f9e8f30e-66a3-46c2-bf37-5a8a0be26ce3\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Computer Name\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"699767aa-b223-466d-b751-833a7921e49a\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"host.name\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"699767aa-b223-466d-b751-833a7921e49a\"],\"layerId\":\"469a2da2-7e40-4e47-b882-b553ebc14bf2\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"f9e8f30e-66a3-46c2-bf37-5a8a0be26ce3\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Computer Name by Active Threats [Logs SentinelOne]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"a6230b4c-2b1a-4db7-96f5-a8b767794e6a\",\"w\":24,\"x\":0,\"y\":90},\"panelIndex\":\"a6230b4c-2b1a-4db7-96f5-a8b767794e6a\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-65fd11fd-a0e7-4507-ad95-82593ace9d23\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"65fd11fd-a0e7-4507-ad95-82593ace9d23\":{\"columnOrder\":[\"dbe1fa00-5bae-49e9-9f6a-82a367d0f73d\",\"337ab9f4-ba31-4b10-97c2-37a90555ebbf\"],\"columns\":{\"337ab9f4-ba31-4b10-97c2-37a90555ebbf\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"},\"dbe1fa00-5bae-49e9-9f6a-82a367d0f73d\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Filters\",\"operationType\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.agent.is_pending_uninstall : true \"},\"label\":\"Pending Uninstall\"},{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.agent.is_pending_uninstall: false \"},\"label\":\"Not Pending Uninstall\"}]},\"scale\":\"ordinal\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.agent.is_pending_uninstall\",\"negate\":false,\"type\":\"exists\"},\"query\":{\"exists\":{\"field\":\"sentinel_one.agent.is_pending_uninstall\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"dbe1fa00-5bae-49e9-9f6a-82a367d0f73d\"],\"layerId\":\"65fd11fd-a0e7-4507-ad95-82593ace9d23\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"337ab9f4-ba31-4b10-97c2-37a90555ebbf\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Agents by Pending Uninstall Status [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"28169c5e-d7e5-4b2d-a75c-78c6b477261f\",\"w\":24,\"x\":24,\"y\":90},\"panelIndex\":\"28169c5e-d7e5-4b2d-a75c-78c6b477261f\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-15c36245-dfc6-41bc-aca4-abe1dd16e8e5\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"15c36245-dfc6-41bc-aca4-abe1dd16e8e5\":{\"columnOrder\":[\"34e6ebff-5e97-4117-ae55-0ac219a091ae\",\"b479de26-3fab-44c4-9f5c-ff493b2a7279\"],\"columns\":{\"34e6ebff-5e97-4117-ae55-0ac219a091ae\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Application Vulnerability Status\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"b479de26-3fab-44c4-9f5c-ff493b2a7279\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.agent.apps_vulnerability_status\"},\"b479de26-3fab-44c4-9f5c-ff493b2a7279\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"34e6ebff-5e97-4117-ae55-0ac219a091ae\"],\"layerId\":\"15c36245-dfc6-41bc-aca4-abe1dd16e8e5\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"b479de26-3fab-44c4-9f5c-ff493b2a7279\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Agents by Application Vulnerability Status [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"87c066da-976f-4df5-8ecf-a8b50b984eed\",\"w\":24,\"x\":0,\"y\":105},\"panelIndex\":\"87c066da-976f-4df5-8ecf-a8b50b984eed\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-1bc53fbf-f363-4273-9153-0e88fe027780\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"1bc53fbf-f363-4273-9153-0e88fe027780\":{\"columnOrder\":[\"acf8b38d-83f6-4585-87d3-789ccc365528\",\"7ddca434-c6b4-4f23-983f-fa65333fd84a\"],\"columns\":{\"7ddca434-c6b4-4f23-983f-fa65333fd84a\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"unique_count\",\"scale\":\"ratio\",\"sourceField\":\"host.id\"},\"acf8b38d-83f6-4585-87d3-789ccc365528\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Filters\",\"operationType\":\"filters\",\"params\":{\"filters\":[{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.agent.is_uninstalled : true \"},\"label\":\"Uninstalled Agents\"},{\"input\":{\"language\":\"kuery\",\"query\":\"sentinel_one.agent.is_uninstalled: false \"},\"label\":\"Installed Agents\"}]},\"scale\":\"ordinal\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"sentinel_one.agent.is_uninstalled\",\"negate\":false,\"type\":\"exists\"},\"query\":{\"exists\":{\"field\":\"sentinel_one.agent.is_uninstalled\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.agent\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"acf8b38d-83f6-4585-87d3-789ccc365528\"],\"layerId\":\"1bc53fbf-f363-4273-9153-0e88fe027780\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"7ddca434-c6b4-4f23-983f-fa65333fd84a\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Percentage of Uninstalled Agents [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"e62614cf-e513-40e5-aea7-6abbacf4e73b\",\"w\":24,\"x\":24,\"y\":105},\"panelIndex\":\"e62614cf-e513-40e5-aea7-6abbacf4e73b\",\"type\":\"lens\",\"version\":\"7.17.0\"}]", + "timeRestore": false, + "title": "[Logs SentinelOne] Agents", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "sentinel_one-67844880-bbb5-11ec-82b7-8fcb232e9538", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "88da7d9d-b377-4455-a528-719f58c796f7:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "88da7d9d-b377-4455-a528-719f58c796f7:indexpattern-datasource-layer-56dc7645-caa9-462c-abbd-496b8e73ba9c", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "88da7d9d-b377-4455-a528-719f58c796f7:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3158c9a2-f48a-42e2-ae82-e01c07a0a77b:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3158c9a2-f48a-42e2-ae82-e01c07a0a77b:indexpattern-datasource-layer-ddc8b7d7-81b9-4d85-a686-7e723fc02c52", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "3158c9a2-f48a-42e2-ae82-e01c07a0a77b:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "a1308966-3dec-431c-82e3-29890ad87785:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "a1308966-3dec-431c-82e3-29890ad87785:indexpattern-datasource-layer-e4082dc4-e9cc-4589-aed3-bf66cdac7d34", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b4b87cb0-eccc-4b59-a6bc-5aca60f1cdb8:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b4b87cb0-eccc-4b59-a6bc-5aca60f1cdb8:indexpattern-datasource-layer-6a90d9b3-18c1-4b5d-9ba1-0a4bbf0022e3", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "5b220d94-4542-4e91-82a5-6fddc2d1f450:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "5b220d94-4542-4e91-82a5-6fddc2d1f450:indexpattern-datasource-layer-46e7eb74-692b-4c09-b8cd-f7817757c592", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "4250d06c-8c4c-49ee-8199-3e153a355987:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "4250d06c-8c4c-49ee-8199-3e153a355987:indexpattern-datasource-layer-76063bf9-bddc-448f-805e-e53308972d0a", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "f2bbdd58-6b06-4b74-9b65-21858c9059c0:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "f2bbdd58-6b06-4b74-9b65-21858c9059c0:indexpattern-datasource-layer-67c6e93f-d08b-4c37-b01f-0d2b29874291", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "595ba171-1de6-4b07-9f75-99d7b87fb828:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "595ba171-1de6-4b07-9f75-99d7b87fb828:indexpattern-datasource-layer-dae671b1-cfe6-4d04-b4b6-8037b31a5fe4", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e1812890-1e55-4323-8016-fc7340d95b2f:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e1812890-1e55-4323-8016-fc7340d95b2f:indexpattern-datasource-layer-06b2ffc3-7740-4e73-807a-ea80e0747b80", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "445f92f7-7a5f-4236-a8ac-df3087a536fe:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "445f92f7-7a5f-4236-a8ac-df3087a536fe:indexpattern-datasource-layer-456e2023-abf7-40b7-bbc4-35020ef2edd5", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "445f92f7-7a5f-4236-a8ac-df3087a536fe:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "fce4e5f5-f30f-473f-8bbf-9523a84a3f96:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "fce4e5f5-f30f-473f-8bbf-9523a84a3f96:indexpattern-datasource-layer-94b7fb49-4faf-4114-baa6-2c621257fd25", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "8fa0d643-4d93-45a8-a9ea-57f6e1cff5a5:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "8fa0d643-4d93-45a8-a9ea-57f6e1cff5a5:indexpattern-datasource-layer-9767cd3d-c1a5-443e-9e79-64f2be92d73e", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "8fa0d643-4d93-45a8-a9ea-57f6e1cff5a5:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "a6230b4c-2b1a-4db7-96f5-a8b767794e6a:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "a6230b4c-2b1a-4db7-96f5-a8b767794e6a:indexpattern-datasource-layer-469a2da2-7e40-4e47-b882-b553ebc14bf2", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "28169c5e-d7e5-4b2d-a75c-78c6b477261f:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "28169c5e-d7e5-4b2d-a75c-78c6b477261f:indexpattern-datasource-layer-65fd11fd-a0e7-4507-ad95-82593ace9d23", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "28169c5e-d7e5-4b2d-a75c-78c6b477261f:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "87c066da-976f-4df5-8ecf-a8b50b984eed:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "87c066da-976f-4df5-8ecf-a8b50b984eed:indexpattern-datasource-layer-15c36245-dfc6-41bc-aca4-abe1dd16e8e5", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e62614cf-e513-40e5-aea7-6abbacf4e73b:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e62614cf-e513-40e5-aea7-6abbacf4e73b:indexpattern-datasource-layer-1bc53fbf-f363-4273-9153-0e88fe027780", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e62614cf-e513-40e5-aea7-6abbacf4e73b:filter-index-pattern-0", + "type": "index-pattern" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-899f2630-bb27-11ec-82b7-8fcb232e9538.json b/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-899f2630-bb27-11ec-82b7-8fcb232e9538.json new file mode 100755 index 0000000000..a1b85204b6 --- /dev/null +++ b/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-899f2630-bb27-11ec-82b7-8fcb232e9538.json @@ -0,0 +1,97 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.activity\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-3aa4f16e-85bd-466a-b665-445b6d5de2cd\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"3aa4f16e-85bd-466a-b665-445b6d5de2cd\":{\"columnOrder\":[\"b9e2330d-e198-4126-a3b0-77e64079e984\"],\"columns\":{\"b9e2330d-e198-4126-a3b0-77e64079e984\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.activity\\\"\"},\"visualization\":{\"accessor\":\"b9e2330d-e198-4126-a3b0-77e64079e984\",\"layerId\":\"3aa4f16e-85bd-466a-b665-445b6d5de2cd\",\"layerType\":\"data\"}},\"title\":\"Total Number of Activities [Logs SentinelOne]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"6b1d0060-0c72-441e-9901-855d5ee70a67\",\"w\":16,\"x\":0,\"y\":0},\"panelIndex\":\"6b1d0060-0c72-441e-9901-855d5ee70a67\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-c1284ad1-7648-410f-b78f-78a997f797cd\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"c1284ad1-7648-410f-b78f-78a997f797cd\":{\"columnOrder\":[\"328306c1-4f54-43a4-b22b-1a0d5d692b56\",\"33e68f71-0393-4fc3-8560-b1ed069c6aff\"],\"columns\":{\"328306c1-4f54-43a4-b22b-1a0d5d692b56\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"User ID\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"33e68f71-0393-4fc3-8560-b1ed069c6aff\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"user.id\"},\"33e68f71-0393-4fc3-8560-b1ed069c6aff\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.activity\\\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"328306c1-4f54-43a4-b22b-1a0d5d692b56\",\"isTransposed\":false},{\"columnId\":\"33e68f71-0393-4fc3-8560-b1ed069c6aff\",\"isTransposed\":false}],\"layerId\":\"c1284ad1-7648-410f-b78f-78a997f797cd\",\"layerType\":\"data\"}},\"title\":\"Top 10 User ID [Logs SentinelOne]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"fe58dc4e-28bd-4efc-9995-4431b0128e73\",\"w\":16,\"x\":16,\"y\":0},\"panelIndex\":\"fe58dc4e-28bd-4efc-9995-4431b0128e73\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-c68f6ca1-bcfd-462e-8462-6c41882faa91\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"c68f6ca1-bcfd-462e-8462-6c41882faa91\":{\"columnOrder\":[\"20baeaa0-d2a6-4fd1-94b2-e1b9face320d\",\"ad264914-7ee8-4563-9165-5c2f2d0cbdde\"],\"columns\":{\"20baeaa0-d2a6-4fd1-94b2-e1b9face320d\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Agent ID\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ad264914-7ee8-4563-9165-5c2f2d0cbdde\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.activity.agent.id\"},\"ad264914-7ee8-4563-9165-5c2f2d0cbdde\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.activity\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"20baeaa0-d2a6-4fd1-94b2-e1b9face320d\"],\"layerId\":\"c68f6ca1-bcfd-462e-8462-6c41882faa91\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"ad264914-7ee8-4563-9165-5c2f2d0cbdde\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Activities by Agent ID [Logs SentinelOne]]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"e9f9f5be-1784-4930-b656-b41e8baf100b\",\"w\":16,\"x\":32,\"y\":0},\"panelIndex\":\"e9f9f5be-1784-4930-b656-b41e8baf100b\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-286fe5cf-c73d-4edf-9e11-04e266706ac0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"286fe5cf-c73d-4edf-9e11-04e266706ac0\":{\"columnOrder\":[\"0c47280a-f6fa-4360-ab66-d64449fb9926\",\"06382207-6085-4738-8cd7-5bc411702e69\"],\"columns\":{\"06382207-6085-4738-8cd7-5bc411702e69\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"0c47280a-f6fa-4360-ab66-d64449fb9926\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Account Name\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"06382207-6085-4738-8cd7-5bc411702e69\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.activity.account.name\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.activity\\\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"0c47280a-f6fa-4360-ab66-d64449fb9926\",\"isTransposed\":false},{\"columnId\":\"06382207-6085-4738-8cd7-5bc411702e69\",\"isTransposed\":false}],\"layerId\":\"286fe5cf-c73d-4edf-9e11-04e266706ac0\",\"layerType\":\"data\"}},\"title\":\"Top 10 Account Name [Logs SentinelOne]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"822b1071-df2f-43bd-84a8-da1bcdd97528\",\"w\":24,\"x\":0,\"y\":12},\"panelIndex\":\"822b1071-df2f-43bd-84a8-da1bcdd97528\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-3398cd0c-0707-4e86-8138-7823fd3fe3ad\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"3398cd0c-0707-4e86-8138-7823fd3fe3ad\":{\"columnOrder\":[\"b87b3729-1100-4fe2-82a0-fcc4b5b65999\",\"b06e82de-dde9-4eae-a13d-4c4702f60694\"],\"columns\":{\"b06e82de-dde9-4eae-a13d-4c4702f60694\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"b87b3729-1100-4fe2-82a0-fcc4b5b65999\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"OS Family\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"b06e82de-dde9-4eae-a13d-4c4702f60694\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"os.family\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.activity\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"b87b3729-1100-4fe2-82a0-fcc4b5b65999\"],\"layerId\":\"3398cd0c-0707-4e86-8138-7823fd3fe3ad\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"b06e82de-dde9-4eae-a13d-4c4702f60694\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Activities by OS Family [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"96472e81-2362-46b7-9a78-ced057e7f22b\",\"w\":24,\"x\":24,\"y\":12},\"panelIndex\":\"96472e81-2362-46b7-9a78-ced057e7f22b\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-27449a92-7952-4cb5-aec7-c18c8110f077\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"filter-index-pattern-0\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"27449a92-7952-4cb5-aec7-c18c8110f077\":{\"columnOrder\":[\"cd851cfb-18ee-4ba6-bf2b-61041da779c1\",\"c7d31b39-34dd-4c74-a4a9-bb34d381ff43\",\"152f8820-ce3e-4d27-a8a6-a96858d54954\"],\"columns\":{\"152f8820-ce3e-4d27-a8a6-a96858d54954\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"c7d31b39-34dd-4c74-a4a9-bb34d381ff43\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Computer Name\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"152f8820-ce3e-4d27-a8a6-a96858d54954\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"host.name\"},\"cd851cfb-18ee-4ba6-bf2b-61041da779c1\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Primary Description\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"152f8820-ce3e-4d27-a8a6-a96858d54954\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.activity.description.primary\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"filter-index-pattern-0\",\"key\":\"host.name\",\"negate\":false,\"type\":\"exists\"},\"query\":{\"exists\":{\"field\":\"host.name\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.activity\\\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"cd851cfb-18ee-4ba6-bf2b-61041da779c1\",\"isTransposed\":false},{\"columnId\":\"152f8820-ce3e-4d27-a8a6-a96858d54954\",\"isTransposed\":false},{\"columnId\":\"c7d31b39-34dd-4c74-a4a9-bb34d381ff43\",\"isTransposed\":false}],\"layerId\":\"27449a92-7952-4cb5-aec7-c18c8110f077\",\"layerType\":\"data\"}},\"title\":\"Top 10 Primary Description by Computer Name [Logs SentinelOne]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"6776b675-6e78-4293-9419-abb2052779a9\",\"w\":24,\"x\":24,\"y\":27},\"panelIndex\":\"6776b675-6e78-4293-9419-abb2052779a9\",\"title\":\"Top 10 Primary Description by Computer Name [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-5abe3706-203c-48d8-afb0-96e3b47b163e\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"5abe3706-203c-48d8-afb0-96e3b47b163e\":{\"columnOrder\":[\"bfb48360-d985-485c-8a3f-92e348223b55\",\"b56fdd4c-8aa5-4bee-822c-f46c1a7ff5af\"],\"columns\":{\"b56fdd4c-8aa5-4bee-822c-f46c1a7ff5af\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"bfb48360-d985-485c-8a3f-92e348223b55\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Computer Name\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"b56fdd4c-8aa5-4bee-822c-f46c1a7ff5af\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"host.name\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.activity\\\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"bfb48360-d985-485c-8a3f-92e348223b55\",\"isTransposed\":false},{\"columnId\":\"b56fdd4c-8aa5-4bee-822c-f46c1a7ff5af\",\"isTransposed\":false}],\"layerId\":\"5abe3706-203c-48d8-afb0-96e3b47b163e\",\"layerType\":\"data\"}},\"title\":\"Top 10 Activities Count by Computer Name [Logs SentinelOne]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"60e34164-f433-4c23-bfa1-a84269e385dc\",\"w\":24,\"x\":0,\"y\":27},\"panelIndex\":\"60e34164-f433-4c23-bfa1-a84269e385dc\",\"type\":\"lens\",\"version\":\"7.17.0\"}]", + "timeRestore": false, + "title": "[Logs SentinelOne] Activities", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "sentinel_one-899f2630-bb27-11ec-82b7-8fcb232e9538", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "logs-*", + "name": "6b1d0060-0c72-441e-9901-855d5ee70a67:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "6b1d0060-0c72-441e-9901-855d5ee70a67:indexpattern-datasource-layer-3aa4f16e-85bd-466a-b665-445b6d5de2cd", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "fe58dc4e-28bd-4efc-9995-4431b0128e73:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "fe58dc4e-28bd-4efc-9995-4431b0128e73:indexpattern-datasource-layer-c1284ad1-7648-410f-b78f-78a997f797cd", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e9f9f5be-1784-4930-b656-b41e8baf100b:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "e9f9f5be-1784-4930-b656-b41e8baf100b:indexpattern-datasource-layer-c68f6ca1-bcfd-462e-8462-6c41882faa91", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "822b1071-df2f-43bd-84a8-da1bcdd97528:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "822b1071-df2f-43bd-84a8-da1bcdd97528:indexpattern-datasource-layer-286fe5cf-c73d-4edf-9e11-04e266706ac0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "96472e81-2362-46b7-9a78-ced057e7f22b:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "96472e81-2362-46b7-9a78-ced057e7f22b:indexpattern-datasource-layer-3398cd0c-0707-4e86-8138-7823fd3fe3ad", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "6776b675-6e78-4293-9419-abb2052779a9:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "6776b675-6e78-4293-9419-abb2052779a9:indexpattern-datasource-layer-27449a92-7952-4cb5-aec7-c18c8110f077", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "6776b675-6e78-4293-9419-abb2052779a9:filter-index-pattern-0", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "60e34164-f433-4c23-bfa1-a84269e385dc:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "60e34164-f433-4c23-bfa1-a84269e385dc:indexpattern-datasource-layer-5abe3706-203c-48d8-afb0-96e3b47b163e", + "type": "index-pattern" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-bcf1f680-bba3-11ec-82b7-8fcb232e9538.json b/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-bcf1f680-bba3-11ec-82b7-8fcb232e9538.json new file mode 100755 index 0000000000..cb7b394cf3 --- /dev/null +++ b/packages/sentinel_one/0.1.0/kibana/dashboard/sentinel_one-bcf1f680-bba3-11ec-82b7-8fcb232e9538.json @@ -0,0 +1,117 @@ +{ + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.alert\\\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{}},\"gridData\":{\"h\":17,\"i\":\"1a5f3a94-99e7-4ad0-adec-e58382e9b5de\",\"w\":48,\"x\":0,\"y\":57},\"panelIndex\":\"1a5f3a94-99e7-4ad0-adec-e58382e9b5de\",\"panelRefName\":\"panel_1a5f3a94-99e7-4ad0-adec-e58382e9b5de\",\"type\":\"search\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-a70c9f24-f23c-453b-8c96-f1e710d919fc\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"a70c9f24-f23c-453b-8c96-f1e710d919fc\":{\"columnOrder\":[\"3da4d948-d5f9-414d-af6e-ea897044f260\"],\"columns\":{\"3da4d948-d5f9-414d-af6e-ea897044f260\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.alert\\\"\"},\"visualization\":{\"accessor\":\"3da4d948-d5f9-414d-af6e-ea897044f260\",\"layerId\":\"a70c9f24-f23c-453b-8c96-f1e710d919fc\",\"layerType\":\"data\"}},\"title\":\"Total Number of Alerts [Logs SentinelOne]\",\"visualizationType\":\"lnsMetric\"},\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"b1454cbc-86ff-4612-9129-bc0b2b710079\",\"w\":11,\"x\":0,\"y\":0},\"panelIndex\":\"b1454cbc-86ff-4612-9129-bc0b2b710079\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-b50e4935-fe9a-460a-ab6d-43dcb1da50cb\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"b50e4935-fe9a-460a-ab6d-43dcb1da50cb\":{\"columnOrder\":[\"270e4c10-e504-46fa-be0a-05759a516322\",\"de45442f-1e4f-4b15-acc9-abc576928301\"],\"columns\":{\"270e4c10-e504-46fa-be0a-05759a516322\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"OS Family\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"de45442f-1e4f-4b15-acc9-abc576928301\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"host.os.family\"},\"de45442f-1e4f-4b15-acc9-abc576928301\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.alert\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"270e4c10-e504-46fa-be0a-05759a516322\"],\"layerId\":\"b50e4935-fe9a-460a-ab6d-43dcb1da50cb\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"de45442f-1e4f-4b15-acc9-abc576928301\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Alerts by OS Family [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":12,\"i\":\"02d8b05a-a909-43e8-bab4-41c424e0e889\",\"w\":19,\"x\":11,\"y\":0},\"panelIndex\":\"02d8b05a-a909-43e8-bab4-41c424e0e889\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-da42b88e-21d2-434f-9bbc-a8386239736f\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"da42b88e-21d2-434f-9bbc-a8386239736f\":{\"columnOrder\":[\"20818763-4451-42db-bcfd-f17df146a699\",\"dafcda2b-19bc-4796-beca-bfe8a90aa089\"],\"columns\":{\"20818763-4451-42db-bcfd-f17df146a699\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Agent Version\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"dafcda2b-19bc-4796-beca-bfe8a90aa089\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"observer.version\"},\"dafcda2b-19bc-4796-beca-bfe8a90aa089\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.alert\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"20818763-4451-42db-bcfd-f17df146a699\"],\"layerId\":\"da42b88e-21d2-434f-9bbc-a8386239736f\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"dafcda2b-19bc-4796-beca-bfe8a90aa089\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Alerts by Agent Version [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":12,\"i\":\"869821d9-6b7b-4b0a-be75-476ec72548c9\",\"w\":18,\"x\":30,\"y\":0},\"panelIndex\":\"869821d9-6b7b-4b0a-be75-476ec72548c9\",\"title\":\"Distribution of Alerts by Agent Version [Logs SentinelOne]\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-bf67982d-968e-4dfc-9e1e-378fe14caa5a\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"bf67982d-968e-4dfc-9e1e-378fe14caa5a\":{\"columnOrder\":[\"6bcb2e67-6f42-48ee-ae55-06508280e8b9\",\"82538ec1-3110-4936-84f3-4894a3fbd634\"],\"columns\":{\"6bcb2e67-6f42-48ee-ae55-06508280e8b9\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Treat As Threat\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"82538ec1-3110-4936-84f3-4894a3fbd634\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.alert.rule.treat_as_threat\"},\"82538ec1-3110-4936-84f3-4894a3fbd634\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.alert\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"6bcb2e67-6f42-48ee-ae55-06508280e8b9\"],\"layerId\":\"bf67982d-968e-4dfc-9e1e-378fe14caa5a\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"82538ec1-3110-4936-84f3-4894a3fbd634\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Alerts by Treat As Threat [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"781400e7-5d84-4316-a890-0f92323bbfa4\",\"w\":24,\"x\":0,\"y\":12},\"panelIndex\":\"781400e7-5d84-4316-a890-0f92323bbfa4\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-12bb8402-74e9-4f83-96db-18e874c28661\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"12bb8402-74e9-4f83-96db-18e874c28661\":{\"columnOrder\":[\"99d34625-e9dc-41a0-9bec-3076d907137c\",\"580be51c-ada9-456e-b4c6-af616ade4a31\"],\"columns\":{\"580be51c-ada9-456e-b4c6-af616ade4a31\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"99d34625-e9dc-41a0-9bec-3076d907137c\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Scope Level\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"580be51c-ada9-456e-b4c6-af616ade4a31\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.alert.rule.scope_level\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.alert\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"99d34625-e9dc-41a0-9bec-3076d907137c\"],\"layerId\":\"12bb8402-74e9-4f83-96db-18e874c28661\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"580be51c-ada9-456e-b4c6-af616ade4a31\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Alerts by Scope Level [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"c328a3b4-108a-4a1f-a545-5e6a3acc40b0\",\"w\":24,\"x\":24,\"y\":12},\"panelIndex\":\"c328a3b4-108a-4a1f-a545-5e6a3acc40b0\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-6b6b61df-1417-49a3-81a1-7dda411c4e71\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"6b6b61df-1417-49a3-81a1-7dda411c4e71\":{\"columnOrder\":[\"27530883-162f-4958-bee8-ef06abc84059\",\"ecb1b9f1-2129-4d39-887d-3c2869f94908\"],\"columns\":{\"27530883-162f-4958-bee8-ef06abc84059\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Rule Names\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ecb1b9f1-2129-4d39-887d-3c2869f94908\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":false,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"rule.name\"},\"ecb1b9f1-2129-4d39-887d-3c2869f94908\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.alert\\\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"27530883-162f-4958-bee8-ef06abc84059\",\"isTransposed\":false},{\"columnId\":\"ecb1b9f1-2129-4d39-887d-3c2869f94908\",\"isTransposed\":false}],\"layerId\":\"6b6b61df-1417-49a3-81a1-7dda411c4e71\",\"layerType\":\"data\"}},\"title\":\"Top 10 Rule Names [Logs SentinelOne]\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"24c1e7fd-242a-49b1-bff0-521218255ed7\",\"w\":24,\"x\":0,\"y\":27},\"panelIndex\":\"24c1e7fd-242a-49b1-bff0-521218255ed7\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-6575381f-da1f-4e3e-aa6e-ee5d513b66e2\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"6575381f-da1f-4e3e-aa6e-ee5d513b66e2\":{\"columnOrder\":[\"0331dc07-e879-47b7-9279-687b413d436f\",\"66f1847e-6cfe-4b2a-95a7-795f68736736\"],\"columns\":{\"0331dc07-e879-47b7-9279-687b413d436f\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Rule Severity\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"66f1847e-6cfe-4b2a-95a7-795f68736736\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":10},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.alert.rule.severity\"},\"66f1847e-6cfe-4b2a-95a7-795f68736736\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.alert\\\"\"},\"visualization\":{\"layers\":[{\"accessors\":[\"66f1847e-6cfe-4b2a-95a7-795f68736736\"],\"layerId\":\"6575381f-da1f-4e3e-aa6e-ee5d513b66e2\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"xAccessor\":\"0331dc07-e879-47b7-9279-687b413d436f\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"title\":\"Empty XY chart\",\"valueLabels\":\"hide\",\"yLeftExtent\":{\"mode\":\"full\"},\"yRightExtent\":{\"mode\":\"full\"}}},\"title\":\"Distribution of Alerts by Rule Severity [Logs SentinelOne]\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"986ac399-7ca0-420e-a224-f55f9dc48f5c\",\"w\":24,\"x\":24,\"y\":27},\"panelIndex\":\"986ac399-7ca0-420e-a224-f55f9dc48f5c\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-92ea1b1a-7e5f-4d77-9af5-5c75151c6382\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"92ea1b1a-7e5f-4d77-9af5-5c75151c6382\":{\"columnOrder\":[\"ddcf4498-b8ec-4e73-8a42-6b9e04e549c0\",\"f2f2bd2b-27e3-4868-bae1-ff003f94d936\"],\"columns\":{\"ddcf4498-b8ec-4e73-8a42-6b9e04e549c0\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Event Type\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"f2f2bd2b-27e3-4868-bae1-ff003f94d936\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"event.type\"},\"f2f2bd2b-27e3-4868-bae1-ff003f94d936\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.alert\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"ddcf4498-b8ec-4e73-8a42-6b9e04e549c0\"],\"layerId\":\"92ea1b1a-7e5f-4d77-9af5-5c75151c6382\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"f2f2bd2b-27e3-4868-bae1-ff003f94d936\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Alerts by Event Type [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"946d6cac-4418-40cf-b301-614d64130caa\",\"w\":24,\"x\":0,\"y\":42},\"panelIndex\":\"946d6cac-4418-40cf-b301-614d64130caa\",\"type\":\"lens\",\"version\":\"7.17.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-76215aa5-943c-4f3f-a5b5-dfa7095216e5\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"76215aa5-943c-4f3f-a5b5-dfa7095216e5\":{\"columnOrder\":[\"58c3a718-0540-4a34-bdb7-d3ac85d94986\",\"27c9c040-2ef7-4384-88fa-156d43d3ffe9\"],\"columns\":{\"27c9c040-2ef7-4384-88fa-156d43d3ffe9\":{\"customLabel\":true,\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count\",\"operationType\":\"count\",\"scale\":\"ratio\",\"sourceField\":\"Records\"},\"58c3a718-0540-4a34-bdb7-d3ac85d94986\":{\"customLabel\":true,\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Incident Status\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"27c9c040-2ef7-4384-88fa-156d43d3ffe9\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"sentinel_one.alert.info.status\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.alert\\\"\"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"58c3a718-0540-4a34-bdb7-d3ac85d94986\"],\"layerId\":\"76215aa5-943c-4f3f-a5b5-dfa7095216e5\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"27c9c040-2ef7-4384-88fa-156d43d3ffe9\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"shape\":\"pie\"}},\"title\":\"Distribution of Alerts by Incident Status [Logs SentinelOne]\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{}},\"gridData\":{\"h\":15,\"i\":\"d9f10ef5-e421-4193-8a29-de995a862192\",\"w\":24,\"x\":24,\"y\":42},\"panelIndex\":\"d9f10ef5-e421-4193-8a29-de995a862192\",\"type\":\"lens\",\"version\":\"7.17.0\"}]", + "timeRestore": false, + "title": "[Logs SentinelOne] Alerts", + "version": 1 + }, + "coreMigrationVersion": "7.17.0", + "id": "sentinel_one-bcf1f680-bba3-11ec-82b7-8fcb232e9538", + "migrationVersion": { + "dashboard": "7.17.0" + }, + "references": [ + { + "id": "sentinel_one-89773b00-c1fa-11ec-a23a-27e16fe32bb9", + "name": "1a5f3a94-99e7-4ad0-adec-e58382e9b5de:panel_1a5f3a94-99e7-4ad0-adec-e58382e9b5de", + "type": "search" + }, + { + "id": "logs-*", + "name": "b1454cbc-86ff-4612-9129-bc0b2b710079:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b1454cbc-86ff-4612-9129-bc0b2b710079:indexpattern-datasource-layer-a70c9f24-f23c-453b-8c96-f1e710d919fc", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "02d8b05a-a909-43e8-bab4-41c424e0e889:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "02d8b05a-a909-43e8-bab4-41c424e0e889:indexpattern-datasource-layer-b50e4935-fe9a-460a-ab6d-43dcb1da50cb", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "869821d9-6b7b-4b0a-be75-476ec72548c9:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "869821d9-6b7b-4b0a-be75-476ec72548c9:indexpattern-datasource-layer-da42b88e-21d2-434f-9bbc-a8386239736f", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "781400e7-5d84-4316-a890-0f92323bbfa4:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "781400e7-5d84-4316-a890-0f92323bbfa4:indexpattern-datasource-layer-bf67982d-968e-4dfc-9e1e-378fe14caa5a", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c328a3b4-108a-4a1f-a545-5e6a3acc40b0:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c328a3b4-108a-4a1f-a545-5e6a3acc40b0:indexpattern-datasource-layer-12bb8402-74e9-4f83-96db-18e874c28661", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "24c1e7fd-242a-49b1-bff0-521218255ed7:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "24c1e7fd-242a-49b1-bff0-521218255ed7:indexpattern-datasource-layer-6b6b61df-1417-49a3-81a1-7dda411c4e71", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "986ac399-7ca0-420e-a224-f55f9dc48f5c:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "986ac399-7ca0-420e-a224-f55f9dc48f5c:indexpattern-datasource-layer-6575381f-da1f-4e3e-aa6e-ee5d513b66e2", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "946d6cac-4418-40cf-b301-614d64130caa:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "946d6cac-4418-40cf-b301-614d64130caa:indexpattern-datasource-layer-92ea1b1a-7e5f-4d77-9af5-5c75151c6382", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d9f10ef5-e421-4193-8a29-de995a862192:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "d9f10ef5-e421-4193-8a29-de995a862192:indexpattern-datasource-layer-76215aa5-943c-4f3f-a5b5-dfa7095216e5", + "type": "index-pattern" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/sentinel_one/0.1.0/kibana/search/sentinel_one-89773b00-c1fa-11ec-a23a-27e16fe32bb9.json b/packages/sentinel_one/0.1.0/kibana/search/sentinel_one-89773b00-c1fa-11ec-a23a-27e16fe32bb9.json new file mode 100755 index 0000000000..534700dab7 --- /dev/null +++ b/packages/sentinel_one/0.1.0/kibana/search/sentinel_one-89773b00-c1fa-11ec-a23a-27e16fe32bb9.json @@ -0,0 +1,40 @@ +{ + "attributes": { + "columns": [ + "user.name", + "rule.id", + "rule.name", + "rule.description", + "host.name", + "observer.version", + "host.type", + "observer.serial_number" + ], + "description": "", + "grid": {}, + "hideChart": true, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset : \\\"sentinel_one.alert\\\"\"}}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "Recent Alerts [Logs SentinelOne]" + }, + "coreMigrationVersion": "7.17.0", + "id": "sentinel_one-89773b00-c1fa-11ec-a23a-27e16fe32bb9", + "migrationVersion": { + "search": "7.9.3" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/sentinel_one/0.1.0/manifest.yml b/packages/sentinel_one/0.1.0/manifest.yml new file mode 100755 index 0000000000..b09ef4e707 --- /dev/null +++ b/packages/sentinel_one/0.1.0/manifest.yml @@ -0,0 +1,78 @@ +format_version: 1.0.0 +name: sentinel_one +title: SentinelOne +version: 0.1.0 +license: basic +description: Collect logs from SentinelOne with Elastic Agent. +type: integration +categories: + - security +conditions: + kibana.version: ^7.17.0 || ^8.0.0 +screenshots: + - src: /img/sentinel-one-screenshot.png + title: SentinelOne Threat Dashboard Screenshot + size: 600x600 + type: image/png +icons: + - src: /img/sentinel-one-logo.svg + title: SentinelOne Logo + size: 32x32 + type: image/svg+xml +policy_templates: + - name: sentinel_one + title: SentinelOne + description: Collect logs from SentinelOne. + inputs: + - type: httpjson + title: Collect SentinelOne logs via API + description: Collecting SentinelOne logs via API. + vars: + - name: url + type: text + title: URL + description: SentinelOne console URL. + required: true + - name: api_token + type: password + title: API Token + description: API Token with API Access Level type. + required: true + - name: proxy_url + type: text + title: Proxy URL + multi: false + required: false + show_user: false + description: URL to proxy connections in the form of http[s]://:@:. Please ensure your username and password are in URL encoded format. + - name: ssl + type: yaml + title: SSL Configuration + description: i.e. certificate_authorities, supported_protocols, verification_mode etc. + multi: false + required: false + show_user: false + default: | + #certificate_authorities: + # - | + # -----BEGIN CERTIFICATE----- + # MIIDCjCCAfKgAwIBAgITJ706Mu2wJlKckpIvkWxEHvEyijANBgkqhkiG9w0BAQsF + # ADAUMRIwEAYDVQQDDAlsb2NhbGhvc3QwIBcNMTkwNzIyMTkyOTA0WhgPMjExOTA2 + # MjgxOTI5MDRaMBQxEjAQBgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEB + # BQADggEPADCCAQoCggEBANce58Y/JykI58iyOXpxGfw0/gMvF0hUQAcUrSMxEO6n + # fZRA49b4OV4SwWmA3395uL2eB2NB8y8qdQ9muXUdPBWE4l9rMZ6gmfu90N5B5uEl + # 94NcfBfYOKi1fJQ9i7WKhTjlRkMCgBkWPkUokvBZFRt8RtF7zI77BSEorHGQCk9t + # /D7BS0GJyfVEhftbWcFEAG3VRcoMhF7kUzYwp+qESoriFRYLeDWv68ZOvG7eoWnP + # PsvZStEVEimjvK5NSESEQa9xWyJOmlOKXhkdymtcUd/nXnx6UTCFgnkgzSdTWV41 + # CI6B6aJ9svCTI2QuoIq2HxX/ix7OvW1huVmcyHVxyUECAwEAAaNTMFEwHQYDVR0O + # BBYEFPwN1OceFGm9v6ux8G+DZ3TUDYxqMB8GA1UdIwQYMBaAFPwN1OceFGm9v6ux + # 8G+DZ3TUDYxqMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAG5D + # 874A4YI7YUwOVsVAdbWtgp1d0zKcPRR+r2OdSbTAV5/gcS3jgBJ3i1BN34JuDVFw + # 3DeJSYT3nxy2Y56lLnxDeF8CUTUtVQx3CuGkRg1ouGAHpO/6OqOhwLLorEmxi7tA + # H2O8mtT0poX5AnOAhzVy7QW0D/k4WaoLyckM5hUa6RtvgvLxOwA0U+VGurCDoctu + # 8F4QOgTAWyh8EZIwaKCliFRSynDpv3JTUwtfZkxo6K6nce1RhCWFAsMvDZL8Dgc0 + # yvgJ38BRsFOtkRuAGSf6ZUwTO8JJRRIFnpUzXflAnGivK9M13D5GEQMmIl6U9Pvk + # sxSmbIUfc2SGJGCJD4I= + # -----END CERTIFICATE----- +owner: + github: elastic/security-external-integrations diff --git a/packages/sonicwall_firewall/0.1.1/changelog.yml b/packages/sonicwall_firewall/0.1.1/changelog.yml new file mode 100755 index 0000000000..36db47da9f --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/changelog.yml @@ -0,0 +1,11 @@ +# newer versions go on top +- version: "0.1.1" + changes: + - description: Fix handling of NAT fields + type: bugfix + link: https://github.com/elastic/integrations/pull/3420 +- version: "0.1.0" + changes: + - description: Initial beta version of the package + type: enhancement + link: https://github.com/elastic/integrations/pull/3365 diff --git a/packages/sonicwall_firewall/0.1.1/data_stream/log/agent/stream/logfile.yml.hbs b/packages/sonicwall_firewall/0.1.1/data_stream/log/agent/stream/logfile.yml.hbs new file mode 100755 index 0000000000..d40e62f2b9 --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/data_stream/log/agent/stream/logfile.yml.hbs @@ -0,0 +1,24 @@ +paths: +{{#each paths as |path i|}} + - {{path}} +{{/each}} +exclude_files: [".gz$"] +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +fields_under_root: true +fields: + _conf: + tz_offset: {{tz_offset}} +processors: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} diff --git a/packages/sonicwall_firewall/0.1.1/data_stream/log/agent/stream/udp.yml.hbs b/packages/sonicwall_firewall/0.1.1/data_stream/log/agent/stream/udp.yml.hbs new file mode 100755 index 0000000000..93707136be --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/data_stream/log/agent/stream/udp.yml.hbs @@ -0,0 +1,20 @@ +host: "{{syslog_host}}:{{syslog_port}}" +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} +fields_under_root: true +fields: + _conf: + tz_offset: {{tz_offset}} +processors: +- add_locale: ~ +{{#if processors}} +{{processors}} +{{/if}} diff --git a/packages/sonicwall_firewall/0.1.1/data_stream/log/elasticsearch/ingest_pipeline/default.yml b/packages/sonicwall_firewall/0.1.1/data_stream/log/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..63d5911160 --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/data_stream/log/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,1303 @@ +--- +description: Pipeline for processing SonicWall firewall logs +processors: + - set: + field: ecs.version + value: "8.2.0" + + - set: + field: observer.vendor + value: SonicWall + + - set: + field: observer.product + value: SonicOS + + - set: + field: observer.type + value: firewall + + - set: + field: event.timezone + value: "{{{_conf.tz_offset}}}" + if: ctx?._conf?.tz_offset != null && ctx?._conf?.tz_offset != 'local' + + - rename: + field: message + target_field: event.original + ignore_missing: true + + - grok: + field: event.original + description: Extracts key-value pairs from original message + patterns: + - '%{KEY_VALUES:_temp_.serialized_kv}' + pattern_definitions: + KEY_VALUES: 'id=.*' + on_failure: + - fail: + message: 'unable to extract key-values from log message: {{{ _ingest.on_failure_message }}}' + + - kv: + field: _temp_.serialized_kv + description: Splits key-value pairs extracted from original message + field_split: ' +(?=[a-zA-Z0-9_-]+=)' + value_split: '=' + prefix: 'sonicwall.firewall.' + ignore_failure: false + trim_value: "\"'" + on_failure: + - fail: + message: 'unable to process key-values from log message: {{{ _ingest.on_failure_message }}}' + + - script: + lang: painless + description: Maps SonicWall fields to ECS + if: 'ctx.sonicwall?.firewall != null' + params: + arg: + - to: url.path + dpi: + - to: sonicwall.firewall.dpi + map: + '0': 'false' + '1': 'true' + dstMac: + - to: destination.mac + dstname: + - to: url.domain + dstZone: + - to: observer.egress.zone + fw: + - to: observer.hostname + fw_action: + - to: event.action + map: + forward: packet-forwarded + drop: packet-dropped + mgmt: packet-management + gcat: + - to: sonicwall.firewall.gcat + - to: sonicwall.firewall.event_group_category + map: + '1': Value + '2': System + '3': Log + '4': Security Services + '5': Users + '6': Firewall Settings + '7': Network + '8': VPN + '9': High Availability + '10': 3G/4G, Modem, and Module Firewall + '11': Wireless + '12': VoIP + '13': SSL VPN + '14': Anti-Spam + '15': WAN Acceleration + '16': SD-WAN + '17': Multi-Tenancy + id: + - to: observer.name + m: + - to: event.code + msg: + - to: message + n: + - to: event.sequence + natDst: + - to: _temp_.destination_nat_ip + natDstV6: + - to: _temp_.destination_nat_ip + natSrc: + - to: _temp_.source_nat_ip + natSrcV6: + - to: _temp_.source_nat_ip + op: + - to: http.request.method + map: + '1': 'GET' + '2': 'POST' + '3': 'HEAD' + pri: + - to: event.severity + - to: log.level + map: + '0': emergency + '1': alert + '2': critical + '3': error + '4': warning + '5': notice + '6': info + '7': debug + proto: + - to: network.transport + rcvd: + - to: destination.bytes + rpkt: + - to: destination.packets + rule: + - to: rule.id + sent: + - to: source.bytes + spkt: + - to: source.packets + srcMac: + - to: source.mac + srcZone: + - to: observer.ingress.zone + sn: + - to: observer.serial_number + time: + - to: '@timestamp' + user: + - to: user.name + usr: + - to: user.name + source: | + List sets = ctx._temp_.computeIfAbsent("sets", k -> new ArrayList()); + List removes = ctx._temp_.computeIfAbsent("removes", k -> new ArrayList()); + for (def src_field : ctx.sonicwall.firewall.entrySet()) { + def key = src_field.getKey(); + if (params[key] != null) { + boolean mapped = false; + for (def action : params[key]) { + def value = action.map == null? src_field.getValue() : action.map[src_field.getValue()]; + if (value != null) { + sets.add([ + "target": action.to, + "value": value + ]); + } + } + removes.add(key); + } + } + +# +# Source and destination information +# +# The src and dst fields have the following format: +# [:[:[:]]] +# +# For IPv6 addresses the srcV6/dstV6 fields are used. +# These contain the ip address, and optionally the src/dst +# fields are used to include extra information, leaving +# the part empty (value starts with `:`). + - script: + lang: painless + description: Extracts additional information from src and dst + params: + src: + - source.address + - source.port + - observer.ingress.interface.name + - source.domain + dst: + - destination.address + - destination.port + - observer.egress.interface.name + - destination.domain + source: | + List sets = ctx._temp_.computeIfAbsent("sets", k -> new ArrayList()); + List removes = ctx._temp_.computeIfAbsent("removes", k -> new ArrayList()); + for (def field : params.entrySet()) { + String value = ctx.sonicwall.firewall[field.getKey()]; + if (value == null) continue; + String[] parts = value.splitOnToken(":"); + List mapping = field.getValue(); + for ( int i = (int)Math.min(parts.length, mapping.size()) - 1 + ; i>=0 + ; i--) { + sets.add([ + "target": mapping[i], + "value": parts[i] + ]); + } + removes.add(field.getKey()); + } + +# +# Duration fields dur / cdur +# + - script: + lang: painless + description: Calculates event.duration + params: + destination: event.duration + sources: + - field: dur + append: '000000000' + - field: cdur + append: '000000' + source: | + List sets = ctx._temp_.computeIfAbsent("sets", k -> new ArrayList()); + List removes = ctx._temp_.computeIfAbsent("removes", k -> new ArrayList()); + Map base = ctx.sonicwall?.firewall; + if (base == null) return; + for (def entry : params.sources) { + if (base.containsKey(entry.field)) { + sets.add([ + "target": params.destination, + "value": base[entry.field] + entry.append + ]); + } + removes.add(entry.field); + } + + - foreach: + field: _temp_.removes + processor: + remove: + field: 'sonicwall.firewall.{{{ _ingest._value }}}' + ignore_missing: true + + - foreach: + field: _temp_.sets + processor: + set: + field: '{{{ _ingest._value.target }}}' + value: '{{{ _ingest._value.value }}}' + + - set: + field: source.address + copy_from: sonicwall.firewall.srcV6 + override: true + ignore_failure: true + + - set: + field: destination.address + copy_from: sonicwall.firewall.dstV6 + override: true + ignore_failure: true + + - date: + field: '@timestamp' + formats: + - 'yyyy-MM-dd HH:mm:ss VV' + - 'yyyy-MM-dd HH:mm:ss' + - ISO8601 + timezone: '{{{_conf.tz_offset}}}' + if: 'ctx._conf?.tz_offset != null && ctx._conf.tz_offset != "local"' + on_failure: + - append: + field: error.message + value: 'failed to parse time field ({{{ @timestamp }}}): {{{ _ingest.on_failure_message }}}' + - date: + field: '@timestamp' + formats: + - 'yyyy-MM-dd HH:mm:ss VV' + - 'yyyy-MM-dd HH:mm:ss' + - ISO8601 + if: 'ctx._conf?.tz_offset == null || ctx._conf.tz_offset == "local"' + on_failure: + - append: + field: error.message + value: 'failed to parse time field ({{{ @timestamp }}}): {{{ _ingest.on_failure_message }}}' + +# +# Validate IP addresses +# + - convert: + field: observer.hostname + target_field: observer.ip + type: ip + ignore_missing: true + ignore_failure: true + + - remove: + field: observer.hostname + if: 'ctx.observer?.ip != null' + + - convert: + field: source.address + target_field: source.ip + type: ip + ignore_missing: true + ignore_failure: true + + - remove: + field: source.address + if: 'ctx.source?.ip != null' + + - convert: + field: destination.address + target_field: destination.ip + type: ip + ignore_missing: true + ignore_failure: true + + - remove: + field: destination.address + if: 'ctx.destination?.ip != null' + +# +# Geoip enrichment +# + - geoip: + field: source.ip + target_field: source.geo + ignore_missing: true + + - geoip: + field: destination.ip + target_field: destination.geo + ignore_missing: true + +# +# Convert MAC addresses +# + - uppercase: + field: source.mac + ignore_missing: true + + - gsub: + field: source.mac + pattern: ':' + replacement: '-' + ignore_missing: true + + - uppercase: + field: destination.mac + ignore_missing: true + + - gsub: + field: destination.mac + pattern: ':' + replacement: '-' + ignore_missing: true + +# +# Process proto field +# + - grok: + field: network.transport + description: Extracts transport and protocol information from proto field + patterns: + # transport/portnum (discard port) + - '^%{NOSLASH_WORD:network.transport}/%{NUMBER}$' + # transport/proto + - '^%{NOSLASH_WORD:network.transport}/%{NOSLASH_WORD:network.protocol}$' + # fallback (no pattern match): Keep everything in .transport + pattern_definitions: + NOSLASH_WORD: '[^/]*' + ignore_failure: true + +# +# Extract optional (undocumented) port in nat fields. +# + - grok: + field: _temp_.source_nat_ip + description: Extracts optional port number from src nat field + ignore_missing: true + ignore_failure: true + patterns: + - '^%{IPV4:source.nat.ip}(:?:%{POSINT:source.nat.port})?$' + - '^%{IPV6:source.nat.ip}$' + - '^\[%{IPV6:source.nat.ip}\]:%{POSINT:source.nat.port}$' + + - grok: + field: _temp_.destination_nat_ip + description: Extracts optional port number from dst nat field + ignore_missing: true + ignore_failure: true + patterns: + - '^%{IPV4:destination.nat.ip}(:?:%{POSINT:destination.nat.port})?$' + - '^%{IPV6:destination.nat.ip}$' + - '^\[%{IPV6:destination.nat.ip}\]:%{POSINT:destination.nat.port}$' + +# +# Validate integer fields +# + - convert: + field: source.bytes + type: long + ignore_missing: true + on_failure: + - remove: + field: source.bytes + + - convert: + field: source.port + type: integer + ignore_missing: true + on_failure: + - remove: + field: source.port + + - convert: + field: source.nat.port + type: integer + ignore_missing: true + on_failure: + - remove: + field: source.nat.port + + - convert: + field: source.packets + type: long + ignore_missing: true + on_failure: + - remove: + field: source.packets + + - convert: + field: destination.bytes + type: long + ignore_missing: true + on_failure: + - remove: + field: destination.bytes + + - convert: + field: destination.port + type: integer + ignore_missing: true + on_failure: + - remove: + field: destination.port + + - convert: + field: destination.nat.port + type: integer + ignore_missing: true + on_failure: + - remove: + field: destination.nat.port + + - convert: + field: destination.packets + type: long + ignore_missing: true + on_failure: + - remove: + field: destination.packets + + - convert: + field: event.duration + type: long + ignore_missing: true + on_failure: + - remove: + field: event.duration + + - script: + lang: painless + description: Aggregates bytes/packets counters + params: + keys: + - bytes + - packets + from: + - source + - destination + to: network + source: | + for (def src : params.from) { + for (def key : params.keys) { + def v = null; + if (ctx[src] != null && (v = ctx[src][key]) != null && v instanceof Long) { + if (ctx[params.to] == null || !(ctx[params.to] instanceof Map)) { + ctx[params.to] = new HashMap(); + } + if (ctx[params.to][key] == null || !(ctx[params.to][key] instanceof Long)) { + ctx[params.to][key] = v; + } else { + ctx[params.to][key] += v; + } + } + } + } + +# +# Extends message field with note +# + - set: + field: message + description: Extends message field with note + value: '{{{ message }}} ({{{ sonicwall.firewall.note }}})' + override: true + if: 'ctx.message != null && ctx.sonicwall?.firewall?.note != null' + - set: + field: message + value: '{{{ sonicwall.firewall.note }}}' + ignore_empty_value: true + override: false + +# +# ECS event categorization by message type +# + - script: + lang: painless + description: Fills ECS categorization fields depending on message Event ID + params: + event_types: + internal-log-success: + kind: event + category: + - host + type: + - info + outcome: success + internal-log-failure: + kind: event + category: + - host + type: + - info + outcome: failure + login-success: + kind: event + category: + - authentication + type: + - start + - info + outcome: success + login-failure: + kind: event + category: + - authentication + type: + - start + - info + outcome: failure + logout: + kind: event + category: + - authentication + type: + - end + - info + outcome: success + user-account-locked: + kind: event + category: + - iam + type: + - info + - user + outcome: success + user-account-unlocked: + kind: event + category: + - iam + type: + - info + - user + outcome: success + user-account-enabled: + kind: event + category: + - iam + type: + - info + - user + outcome: success + user-account-disabled: + kind: event + category: + - iam + type: + - info + - user + outcome: success + user-account-created: + kind: event + category: + - iam + type: + - info + - user + - deletion + outcome: success + user-account-changed: + kind: event + category: + - iam + type: + - info + - user + - change + outcome: success + user-account-change-failure: + kind: event + category: + - iam + type: + - info + - user + - change + outcome: failure + admin-account-changed: + kind: event + category: + - iam + type: + - info + - user + - change + - admin + outcome: success + user-account-deleted: + kind: event + category: + - iam + type: + - info + - user + - deletion + outcome: success + session-start: + kind: event + category: + - session + type: + - start + outcome: success + session-end: + kind: event + category: + - session + type: + - end + outcome: success + attack-detected: + kind: alert + category: + - intrusion_detection + type: + - info + outcome: success + attack-blocked: + kind: alert + category: + - intrusion_detection + type: + - denied + outcome: success + connection-start: + kind: event + category: [ network ] + type: + - connection + - start + outcome: success + connection-end: + kind: event + category: [ network ] + type: + - connection + - end + outcome: success + connection-denied: + kind: event + category: [ network ] + type: + - connection + - denied + outcome: success + packet-dropped: + kind: event + category: [ network ] + type: + - denied + outcome: success + connection-info: + kind: event + category: [ network ] + type: + - connection + - info + outcome: success + malware-info: + kind: alert + category: + - malware + type: + - info + outcome: success + config-change: + kind: event + category: + - configuration + type: + - change + outcome: success + config-change-failure: + kind: event + category: + - configuration + type: + - change + outcome: failure + config-info: + kind: event + category: + - configuration + type: + - info + outcome: success + config-delete: + kind: event + category: + - configuration + type: + - deletion + outcome: success + config-add: + kind: event + category: + - configuration + type: + - creation + outcome: success + + message_codes: + # CSV table of SonicOS messages obtained by scraping the pdf docs + # https://gist.github.com/adriansr/d7ad20e15fca1ef2df6a4cdeb53b2989 + + # Firewall + "646": packet-dropped # 646,Firewall,Access Rules,System Error,WARNING,5238,Source IP Connection Limit,Packet dropped; connection limit for this source IP address has been reached + "647": packet-dropped # 647,Firewall,Access Rules,System Error,WARNING,5239,Destination IP Connection Limit,Packet dropped; connection limit for this destination IP address has been reached + "734": connection-info # 734,Firewall,Access Rules,---,WARNING,---,Source Connection Status,Source IP address connection status: %s + "735": packet-dropped # 735,Firewall,Access Rules,---,WARNING,---,Destination Connection Status,Destination IP address connection status: %s + "45": connection-info # 45,Network,ARP,Debug,DEBUG,7002,ARP Failure,ARP Timeout + "815": connection-info # 815,Network,ARP,---,WARNING,7022,Too Many Gratuitous ARPs Detected,Too many gratuitous ARPs detected + "428": packet-dropped # 428,Firewall Settings,Advanced,Debug,WARNING,6424,Drop Source Route Packet,Source routed IP packet dropped + "1473": packet-dropped # 1473,Firewall Settings,Advanced,Debug,INFO,---,Drop Source IP Subnet Broadcast,Source IP is a subnet broadcast address + "1573": packet-dropped # 1573,Firewall Settings,Advanced,Debug,INFO,---,Drop All IPv6 Traffic,IPv6 packet dropped due to IPv6 traffic processing is disabled on this firewall + "1576": packet-dropped # 1576,Firewall Settings,Advanced,Debug,INFO,---,Drop Record Route Packet,Record routed IP packet dropped + + # Network Access + "41": packet-dropped # 41,Network,Network Access,Debug,NOTICE,7214,Unknown Protocol Dropped,Unknown protocol dropped + "46": packet-dropped # 46,Network,Network Access,Debug,DEBUG,7217,Broadcast Packets Dropped,Broadcast packet dropped + "98": connection-start # 98,Network,Network Access,Connection,INFO,7402,Connection Opened,Connection Opened + "347": packet-dropped # 347,Network,Network Access,TCP | UDP | ICMP,WARNING,7225,Drop Clear Packet,Port configured to receive IPsec protocol ONLY; drop packet received in the clear + "537": connection-end # 537,Network,Network Access,Connection Traffic,INFO,7403,Connection Closed,Connection Closed + "590": packet-dropped # 590,Network,Network Access,LAN UDP | LAN TCP,NOTICE,7232,LAN IP Deny,IP type %s packet dropped + "714": packet-dropped # 714,Network,Network Access,Debug,NOTICE,7236,EIGRP Packet Drop,EIGRP packet dropped + "1304": packet-dropped # 1304,Network,Network Access,Debug,ALERT,---,Packet Dropped Due to NDPP Rules,Packet is dropped due to NDPP rules. + + # Checksum Enforcement + "883": packet-dropped # 883,Firewall Settings,Checksum Enforcement,TCP|UDP,NOTICE,7243,IP Checksum Error,IP Header checksum error; packet dropped + "884": packet-dropped # 884,Firewall Settings,Checksum Enforcement,TCP,NOTICE,7244,TCP Checksum Error,TCP checksum error; packet dropped + "885": packet-dropped # 885,Firewall Settings,Checksum Enforcement,UDP,NOTICE,7245,UDP Checksum Error,UDP checksum error; packet dropped + "886": packet-dropped # 886,Firewall Settings,Checksum Enforcement,UDP,NOTICE,7246,ICMP Checksum Error,ICMP checksum error; packet dropped + "1448": packet-dropped # 1448,Firewall Settings,Checksum Enforcement,UDP,NOTICE,---,UDPv6 Checksum Error,UDPv6 checksum error; packet dropped + "1449": packet-dropped # 1449,Firewall Settings,Checksum Enforcement,UDP,NOTICE,---,ICMPv6 Checksum Error,ICMPv6 checksum error; packet dropped + + # Geo-IP Filter + "1198": connection-denied # 1198,Security Services,Geo-IP Filter,---,ALERT,---,Geo IP Initiator Blocked,Initiator from country blocked: %s + "1199": connection-denied # 1199,Security Services,Geo-IP Filter,---,ALERT,---,Geo IP Responder Blocked,Responder from country blocked: %s + "1474": connection-denied # 1474,Security Services,Geo-IP Filter,---,ALERT,---,Custom Geo IP Initiator Blocked,"Initiator from country blocked: %s, Source: Custom List" + "1475": connection-denied # 1475,Security Services,Geo-IP Filter,---,ALERT,---,Custom Geo IP Responder Blocked,"Responder from country blocked: %s, Source: Custom List" + + # ICMP + "38": packet-dropped # 38,Network,ICMP,ICMP,NOTICE,7211,ICMP Packets Dropped,ICMP packet dropped due to Policy + "63": packet-dropped # 63,Network,ICMP,Debug,DEBUG,7003,ICMP Too Big,Received fragmented packet or fragmentation needed + "175": packet-dropped # 175,Network,ICMP,LAN ICMP | LAN TCP,NOTICE,7224,LAN ICMP Deny,ICMP packet from LAN dropped + "182": connection-info # 182,Network,ICMP,User Activity,INFO,7006,Path MTU Receive,Received a path MTU ICMP message from router/gateway + "188": connection-info # 188,Network,ICMP,User Activity,INFO,7007,Path MTU ICMP,Received a path MTU ICMP message from router/gateway + "523": packet-dropped # 523,Network,ICMP,ICMP,NOTICE,7227,No Match ICMP Drop,ICMP packet dropped no match + "597": connection-info # 597,Network,ICMP,Debug,INFO,7233,ICMP Allow,ICMP packet allowed + "598": connection-info # 598,Network,ICMP,Debug,INFO,7234,LAN ICMP Allow,ICMP packet from LAN allowed + "1254": packet-dropped # 1254,Network,ICMP,---,INFO,---,LAN ICMPv6 Deny,ICMPv6 packet from LAN dropped + "1255": connection-info # 1255,Network,ICMP,---,INFO,---,LAN ICMPv6 Allow,ICMPv6 packet from LAN allowed + "1256": connection-info # 1256,Network,ICMP,---,INFO,---,ICMPv6 Allow,ICMPv6 packet allowed + "1257": packet-dropped # 1257,Network,ICMP,---,INFO,---,ICMPv6 Packets Dropped,ICMPv6 packet dropped due to policy + "1431": connection-info # 1431,Network,ICMP,---,INFO,---,ICMPv6 Packets Received,ICMPv6 packet received + "1433": packet-dropped # 1433,Network,ICMP,---,NOTICE,---,NDP Packets Dropped,%s + "1458": connection-info # 1458,Network,ICMP,---,NOTICE,---,NDP Packets Received,%s + + # IP + "28": packet-dropped # 28,Network,IP,TCP | UDP | ICMP,NOTICE,7001,Fragmented Packet,Fragmented packet dropped + "522": packet-dropped # 522,Network,IP,Debug,INFO,554,Malformed IP Packet,Malformed or unhandled IP packet dropped + "910": packet-dropped # 910,Network,IP,Debug,NOTICE,7037,IP TTL Expire,Packet Dropped - IP TTL expired + "1301": packet-dropped # 1301,Network,IP,Debug,ALERT,---,IPv6 Packet Dropped With Reserved IP,Source or Destination IPv6 address is reserved by RFC 4291. Packet is dropped + "1302": packet-dropped # 1302,Network,IP,Debug,ALERT,---,IPv6 Packet Dropped With Unspecified Destination IP,Destination IPv6 address is unspecified. Packet is dropped + "1303": packet-dropped # 1303,Network,IP,Debug,ALERT,---,IPv6 Packet Dropped With Unspecified Source IP,Source IPv6 address is unspecified but this packet is not Neighbor Solicitation message for DAD. Packet is dropped + "1429": packet-dropped # 1429,Network,IP,Debug,ALERT,---,IPv6 Packet Dropped With Site Local IP,Source or Destination IPv6 address is site-local unicast address. Packet is dropped + "1430": packet-dropped # 1430,Network,IP,Debug,INFO,---,IPv6 Packet with Ext Header,IPv6 Packet with extension header received + + # IPcomp + "651": packet-dropped # 651,Network,IPcomp,Debug,DEBUG,12401,IPcomp Interrupt Error,IPcomp connection interrupt + "652": packet-dropped # 652,Network,IPcomp,TCP | UDP | ICMP,NOTICE,12402,IPcomp Packet Drop,IPcomp packet dropped + "653": packet-dropped # 653,Network,IPcomp,Debug,DEBUG,12403,"IPcomp Packet Drop, Waiting",IPcomp packet dropped; waiting for pending IPcomp connection + + # IPv6 Tunneling + "1253": packet-dropped # 1253,Network,IPv6 Tunneling,---,NOTICE,---,IPv6 Tunnel Dropped,IPv6 Tunnel packet dropped + + # Multicast + "683": packet-dropped # 683,Firewall Settings,Multicast,---,NOTICE,10608,Wrong IGMP Checksum,"IGMP packet dropped, wrong checksum received on interface %s" + "690": packet-dropped # 690,Firewall Settings,Multicast,---,NOTICE,10615,UDP Packet Drop,"Multicast UDP packet dropped, no state entry" + "694": packet-dropped # 694,Firewall Settings,Multicast,---,WARNING,10619,RTP Stateful Failed,"Multicast UDP packet dropped, RTP stateful failed" + "1233": packet-dropped # 1233,Firewall Settings,Multicast,Debug,NOTICE,---,Link-Local/Mult icast IPv6 Packet,Unhandled link-local or multicast IPv6 packet dropped + + # NAT + "339": packet-dropped # 339,Network,NAT,Debug,DEBUG,7008,NAT Overwrite,"NAT translated packet exceeds size limit, packet dropped" + "1197": connection-info # 1197,Network,NAT,---,NOTICE,---,Connection NAT Mapping,NAT Mapping + "1436": packet-dropped # 1436,Network,NAT,Debug,DEBUG,---,NAT Policy Dropped Packets,"Packet dropped by NAT Policy, reason: %s" + + # NAT Policy + "1313": config-add # 1313,Network,NAT Policy,---,INFO,---,NAT Policy Add,NAT policy added + "1314": config-change # 1314,Network,NAT Policy,---,INFO,---,NAT Policy Modify,NAT policy modified + "1315": config-delete # 1315,Network,NAT Policy,---,INFO,---,NAT Policy Delete,NAT policy deleted + + # TCP + "36": connection-end # 36,Network,TCP,TCP,NOTICE,7209,TCP Packets Dropped,TCP connection dropped + "48": packet-dropped # 48,Network,TCP,Debug,DEBUG,7218,Out of Order Packets Dropped,Out-of-order command packet dropped + "173": connection-denied # 173,Network,TCP,LAN TCP,NOTICE,7222,LAN TCP Deny,TCP connection from LAN denied + "181": packet-dropped # 181,Network,TCP,Debug,DEBUG,7005,TCP FIN Drop,TCP FIN packet dropped + "524": connection-denied # 524,Network,Network Access,TCP,NOTICE,7228,Web Request Drop,Web access Request dropped + "580": packet-dropped # 580,Network,TCP,Attack,ALERT,558,TCP SYN/FIN Packet Drop,TCP SYN/FIN packet dropped + "708": packet-dropped # 708,Network,TCP,Debug,DEBUG,7010,TCP Invalid SEQ Number,TCP packet received with invalid SEQ number; TCP packet dropped + "709": packet-dropped # 709,Network,TCP,Debug,DEBUG,7011,TCP Invalid ACK Number,TCP packet received with invalid ACK number; TCP packet dropped + "712": connection-denied # 712,Network,TCP,Debug,DEBUG,7014,TCP Connection Reject,TCP connection reject received; TCP connection dropped + "713": connection-denied # 713,Network,TCP,Debug,DEBUG,7015,TCP Connection Abort,TCP connection abort received; TCP connection dropped + "760": connection-denied # 760,Network,TCP,---,NOTICE,7240,TCP Handshake Violation Detected,TCP handshake violation detected; TCP connection dropped + "887": packet-dropped # 887,Network,TCP,Debug,DEBUG,7026,Invalid TCP Header Length,TCP packet received with invalid header length; TCP packet dropped + "888": packet-dropped # 888,Network,TCP,Debug,DEBUG,7027,TCP Connection Does Not Exist,TCP packet received on non-existent/closed connection; TCP packet dropped + "889": packet-dropped # 889,Network,TCP,Debug,DEBUG,7028,TCP Without Mandatory SYN Flag,TCP packet received without mandatory SYN flag; TCP packet dropped + "890": packet-dropped # 890,Network,TCP,Debug,DEBUG,7029,TCP Without Mandatory ACK Flag,TCP packet received without mandatory ACK flag; TCP packet dropped + "891": packet-dropped # 891,Network,TCP,Debug,DEBUG,7030,TCP Packet on Closing Connection,TCP packet received on a closing connection; TCP packet dropped + "892": packet-dropped # 892,Network,TCP,Debug,INFO,7031,SYN Flag on Existing Connection,TCP packet received with SYN flag on an existing connection; TCP packet dropped + "893": packet-dropped # 893,Network,TCP,Debug,DEBUG,7032,Invalid TCP SACK Option Length,TCP packet received with invalid SACK option length; TCP packet dropped + "894": packet-dropped # 894,Network,TCP,Debug,DEBUG,7033,Invalid TCP MSS Option Length,TCP packet received with invalid MSS option length; TCP packet dropped + "895": packet-dropped # 895,Network,TCP,Debug,DEBUG,7034,Invalid TCP Option Length,TCP packet received with invalid option length; TCP packet dropped + "896": packet-dropped # 896,Network,TCP,Debug,DEBUG,7035,Invalid TCP Source Port,TCP packet received with invalid source port; TCP packet dropped + "1029": packet-dropped # 1029,Network,TCP,Debug,DEBUG,7038,Non-Permitted Option TCP Packet,TCP packet received with non-permitted option; TCP packet dropped + "1030": packet-dropped # 1030,Network,TCP,Debug,DEBUG,7039,Invalid TCP Window Scale Option Length,TCP packet received with invalid Window Scale option length; TCP packet dropped + "1031": packet-dropped # 1031,Network,TCP,Debug,DEBUG,7040,Invalid TCP Window Scale Option Value,TCP packet received with invalid Window Scale option value; TCP packet dropped + "1384": packet-dropped # 1384,Network,TCP,Debug,DEBUG,---,Invalid TCP Timestamps Option Length,TCP packet received with invalid Timestamps option length; TCP packet dropped + "1385": packet-dropped # 1385,Network,TCP,Debug,DEBUG,---,TCP Sequence Number Wrapped,TCP packet received with wrapped sequence number; TCP packet dropped + "1628": packet-dropped # 1628,Network,TCP,Debug,DEBUG,---,TCP SYN Packet With Data,TCP SYN packet received with data; TCP packet dropped + "1629": packet-dropped # 1629,Network,TCP,Debug,DEBUG,---,TCP Urgent Flag or Pointer,TCP packet received with Urgent flag or pointer; TCP packet dropped + + # Content Filter + "14": connection-denied # 14,Security Services,Content Filter,Blocked Sites,ERROR,701,Website Blocked,Web site access denied + "16": connection-info # 16,Security Services,Content Filter,Blocked Sites,NOTICE,703,Website Accessed,Web site access allowed + "1599": config-add # 1599,Security Services,Content Filter,User Activity,INFO,---,CFS Policy Added,CFS policy added + "1600": config-change # 1600,Security Services,Content Filter,User Activity,INFO,---,CFS Policy Modified,CFS policy modified + "1601": config-change # 1601,Security Services,Content Filter,User Activity,INFO,---,CFS Policy Deleted,CFS policy deleted + + # RBL Filter + "797": connection-denied # 797,Security Services,RBL Filter,---,NOTICE,12001,Outbound Connection Drop,Outbound connection to RBL-listed SMTP server dropped + "798": connection-denied # 798,Security Services,RBL Filter,---,NOTICE,12002,Inbound Connection Drop,Inbound connection from RBL-listed SMTP server dropped + + # Attacks + "22": attack-blocked # 22,Security Services,Attacks,Attack,ALERT,501,Ping of Death Blocked,Ping of death dropped + "23": attack-blocked # 23,Security Services,Attacks,Attack,ALERT,502,IP Spoof Detected,IP spoof dropped + "27": attack-blocked # 27,Security Services,Attacks,Attack,ALERT,505,Land Attack,Land attack dropped + "81": attack-blocked # 81,Security Services,Attacks,Attack,ALERT,520,Smurf Attack,Smurf Amplification attack dropped + "82": attack-detected # 82,Security Services,Attacks,Attack,ALERT,521,Port Scan Possible,Possible port scan detected + "83": attack-detected # 83,Security Services,Attacks,Attack,ALERT,522,Port Scan Probable,Probable port scan detected + "177": attack-detected # 177,Security Services,Attacks,Attack,ALERT,528,TCP FIN Scan,Probable TCP FIN scan detected + "178": attack-detected # 178,Security Services,Attacks,Attack,ALERT,529,TCP Xmas Scan,Probable TCP XMAS scan detected + "179": attack-detected # 179,Security Services,Attacks,Attack,ALERT,530,TCP Null Scan,Probable TCP NULL scan detected + "267": attack-blocked # 267,Security Services,Attacks,Attack,ALERT,547,TCP Xmas Tree Attack,TCP Xmas Tree dropped + "606": attack-blocked # 606,Security Services,Attacks,Attack,ALERT,568,Spank Attack,Spank attack multicast packet dropped + "1316": attack-detected # 1316,Network,ARP,---,ALERT,---,ARP Attack Detected,Possible ARP attack from MAC address %s + "1373": attack-detected # 1373,Security Services,Attacks,Attack,ALERT,---,IPv6 fragment size is less than minimum (<1280),"IPv6 fragment dropped, invalid length (<1280 Bytes)" + "1374": attack-detected # 1374,Security Services,Attacks,Attack,ALERT,---,IP Reassembly : Incomplete IGMP fragment,"IGMP packet dropped, incomplete fragments" + "1375": attack-detected # 1375,Security Services,Attacks,Attack,ALERT,---,UDP fragmented datagram is too big (>65535),"UDP fragment dropped, exceeds maximum IP datagram size (>65535)" + "1376": attack-blocked # 1376,Security Services,Attacks,Attack,ALERT,---,Nestea/Teardro p Attack,Nestea/Teardrop attack dropped + "1387": attack-blocked # 1387,Security Services,Attacks,Attack,ALERT,---,TCP Null Flag Attack,TCP Null Flag dropped + "1471": attack-detected # 1471,Security Services,Attacks,Attack,ALERT,---,External IDS,External IDS: %s + "229": attack-blocked # 229,VPN,DHCP Relay,Attack,WARNING,533,DHCPR IP Spoof,"IP spoof detected on packet to Central Gateway, packet dropped" + "1098": attack-detected # 1098,Network,DNS,---,ALERT,6465,DNS Rebind Attack Detected,Possible DNS rebind attack detected + "1099": attack-blocked # 1099,Network,DNS,---,ALERT,6466,DNS Rebind Attack Blocked,DNS rebind attack blocked + "1593": attack-detected # 1593,Network,DNS Security,Maintenance,NOTICE,---,DNS Tunnel Attack,Find DNS tunnel attack - %s + "446": attack-blocked # 446,Firewall Settings,FTP,Attack,ERROR,551,FTP Passive Attack,FTP: PASV response spoof attack dropped + "527": attack-blocked # 527,Firewall Settings,FTP,Attack,ALERT,555,FTP Port Bounce Attack,FTP: PORT bounce attack dropped. + "528": attack-blocked # 528,Firewall Settings,FTP,Attack,ALERT,556,FTP Passive Bounce Attack,FTP: PASV response bounce attack dropped. + "538": attack-blocked # 538,Firewall Settings,FTP,Attack,ALERT,557,FTP Data Port,FTP: Data connection from non default port dropped + + # IDP + "789": attack-detected # 789,Security Services,IDP,Attack,ALERT,6435,IDP Detection Alert,IDP Detection Alert: %s + "790": attack-blocked # 790,Security Services,IDP,Attack,ALERT,6436,IDP Prevention Alert,IDP Prevention Alert: %s + + # IPS + "608": attack-detected # 608,Security Services,IPS,Attack,ALERT,569,IPS Detection Alert,IPS Detection Alert: %s + "609": attack-blocked # 609,Security Services,IPS,Attack,ALERT,570,IPS Prevention Alert,IPS Prevention Alert: %s + + + # Flood Protection + "25": attack-detected # 25,Firewall Settings,Flood Protection,Attack,WARNING,503,Possible SYN Flood,Possible SYN flood attack detected + "856": config-change # 856,Firewall Settings,Flood Protection,Attack,WARNING,6439,SYN Flood Watch Mode,SYN Flood Mode changed by user to: Watch and report possible SYN floods + "857": config-change # 857,Firewall Settings,Flood Protection,Attack,WARNING,6440,SYN Flood Trigger Mode,SYN Flood Mode changed by user to: Watch and proxy WAN connections when under attack + "858": config-change # 858,Firewall Settings,Flood Protection,Attack,WARNING,6441,SYN Flood Proxy Mode,SYN Flood Mode changed by user to: Always proxy WAN connections + "859": attack-detected # 859,Firewall Settings,Flood Protection,Attack,ALERT,6442,SYN Flood Proxy Trigger Mode,Possible SYN flood detected on WAN IF %s - switching to connection-proxy mode + "860": attack-detected # 860,Firewall Settings,Flood Protection,Attack,ALERT,6443,SYN Flood Detected,Possible SYN Flood on IF %s + "862": config-change # 862,Firewall Settings,Flood Protection,Attack,WARNING,6445,SYN Flood Blacklist On,SYN Flood blacklisting enabled by user + "863": config-change # 863,Firewall Settings,Flood Protection,Attack,WARNING,6446,SYN Flood Blacklist Off,SYN Flood blacklisting disabled by user + "864": attack-blocked # 864,Firewall Settings,Flood Protection,Attack,ALERT,6447,SYN-Flooding Machine Blacklisted,SYN-Flooding machine %s blacklisted + "897": attack-detected # 897,Firewall Settings,Flood Protection,Attack,INFO,7036,Invalid TCP SYN Flood Cookie,TCP packet received with invalid SYN Flood cookie; TCP packet dropped + "898": attack-blocked # 898,Firewall Settings,Flood Protection,Attack,ALERT,6453,RST-Flooding Machine Blacklisted,RST-Flooding machine %s blacklisted + "901": attack-blocked # 901,Firewall Settings,Flood Protection,Attack,ALERT,6456,FIN-Flooding Machine Blacklisted,FIN-Flooding machine %s blacklisted + "904": attack-detected # 904,Firewall Settings,Flood Protection,Attack,ALERT,6459,Possible RST Flood,Possible RST Flood on IF %s + "905": attack-detected # 905,Firewall Settings,Flood Protection,Attack,ALERT,6460,Possible FIN Flood,Possible FIN Flood on IF %s + "1180": attack-blocked # 1180,Firewall Settings,Flood Protection,---,ALERT,---,DOS Protection on WAN Begin,DOS protection on WAN begins %s + "1213": attack-detected # 1213,Firewall Settings,Flood Protection,Attack,ALERT,---,UDP Flood Detected,Possible UDP flood attack detected + "1214": attack-detected # 1214,Firewall Settings,Flood Protection,Attack,ALERT,---,ICMP Flood Detected,Possible ICMP flood attack detected + "1366": attack-blocked # 1366,Firewall Settings,Flood Protection,Attack,ALERT,---,TCP-Flooding Machine Blacklisted,TCP-Flooding machine %s blacklisted + "1369": attack-detected # 1369,Firewall Settings,Flood Protection,Attack,ALERT,---,Possible TCP Flood,Possible TCP Flood on IF %s + "1450": attack-detected # 1450,Firewall Settings,Flood Protection,Attack,ALERT,---,UDPv6 Flood Detected,Possible UDPv6 flood attack detected + "1451": attack-detected # 1451,Firewall Settings,Flood Protection,Attack,ALERT,---,ICMPv6 Flood Detected,Possible ICMPv6 flood attack detected + "1452": attack-detected # 1452,Firewall Settings,Flood Protection,Attack,ALERT,---,Half Open TCP Connection Threshold Exceeded,Too many half-open TCP connections + + # RF Monitoring + "879": attack-detected # 879,Wireless,RF Monitoring,---,WARNING,---,WLAN Radio Frequency Threat Detected,WLAN radio frequency threat detected + + # WLAN + "1363": attack-detected # 1363,Wireless,WLAN,802.11b Management,ALERT,---,WLAN 802.11 Flood,Wireless Flood Attack + + # WLAN IDS + "546": attack-detected # 546,Wireless,WLAN IDS,WLAN IDS,ALERT,901,Rogue AP or MitM AP Found,Found Rogue or MitM Access Point + "548": attack-detected # 548,Wireless,WLAN IDS,WLAN IDS,ALERT,903,WLAN Association Flood,Association Flood from WLAN station + + # Authentication Access + "24": logout # 24,Users,Authentication Access,User Activity,INFO,4201,User Disconnect Detected,User logged out - user disconnect detected + "29": login-success # 29,Users,Authentication Access,User Activity,INFO,4202,Successful Admin Login,Administrator login allowed + "30": login-failure # 30,Users,Authentication Access,Attack,ALERT,560,Wrong Admin Password,Administrator login denied due to bad credentials + "31": login-success # 31,Users,Authentication Access,User Activity,INFO,4204,Successful User Login,User login from an internal zone allowed + "32": login-failure # 32,Users,Authentication Access,User Activity,INFO,4205,Wrong User Password,User login denied due to bad credentials + "33": login-failure # 33,Users,Authentication Access,User Activity,INFO,4206,Unknown User Login Attempt,User login denied due to bad credentials + "34": login-failure # 34,Users,Authentication Access,User Activity,INFO,4207,Login Timeout,Pending login timed out + "35": login-failure # 35,Users,Authentication Access,Attack,ALERT,506,Admin Login Disabled,Administrator login denied from %s; logins disabled from this interface + "199": login-success # 199,Users,Authentication Access,User Activity,INFO,4209,Admin Login From CLI,CLI administrator login allowed + "200": login-failure # 200,Users,Authentication Access,User Activity,WARNING,4210,Admin Password Error From CLI,CLI administrator login denied due to bad credentials + "235": login-success # 235,Users,Authentication Access,User Activity,INFO,4211,Admin VPN Login,VPN zone administrator login allowed + "236": login-success # 236,Users,Authentication Access,User Activity,INFO,4212,Admin WAN Login,WAN zone administrator login allowed + "237": login-success # 237,Users,Authentication Access,User Activity,INFO,4213,User VPN Login,VPN zone remote user login allowed + "238": login-success # 238,Users,Authentication Access,User Activity,INFO,4214,User WAN Login,WAN zone remote user login allowed + "246": login-failure # 246,Users,Authentication Access,User Activity,INFO,8204,User Login From Wrong Location,User login denied - User has no privileges for login from that location + "261": logout # 261,Users,Authentication Access,User Activity,INFO,4215,Admin Logout,Administrator logged out + "262": logout # 262,Users,Authentication Access,User Activity,INFO,4216,Admin Logout - Timer Expire,Administrator logged out - inactivity timer expired + "263": logout # 263,Users,Authentication Access,User Activity,INFO,4217,User Logout,User logged out - %s + "264": logout # 264,Users,Authentication Access,User Activity,INFO,4218,User Logout - Max Session,User logged out - max session time exceeded + "265": logout # 265,Users,Authentication Access,User Activity,INFO,4219,User Logout - Timer Expire,User logged out - inactivity timer expired + "328": admin-account-changed # 328,Users,Authentication Access,Maintenance,INFO,4220,Admin Name Change,Administrator name changed + "329": login-failure # 329,Users,Authentication Access,Attack,ERROR,561,User Login Lockout,User login failure rate exceeded - logins from user IP address denied + "438": user-account-unlocked # 438,Users,Authentication Access,User Activity,INFO,4222,User Login Lockout Expired,Locked-out user logins allowed - lockout period expired + "439": user-account-unlocked # 439,Users,Authentication Access,User Activity,INFO,4223,User Login Lockout Clear,Locked-out user logins allowed by %s + "486": login-failure # 486,Users,Authentication Access,User Activity,INFO,4224,WLAN User Login Deny,User login denied - User has no privileges for guest service + "506": config-change # 506,Users,Authentication Access,Maintenance,INFO,4225,VPN Disabled,VPN disabled by administrator + "507": config-change # 507,Users,Authentication Access,Maintenance,INFO,4226,VPN Enabled,VPN enabled by administrator + "508": config-change # 508,Users,Authentication Access,Maintenance,INFO,4227,WLAN Disabled,WLAN disabled by administrator + "509": config-change # 509,Users,Authentication Access,Maintenance,INFO,4228,WLAN Enabled,WLAN enabled by administrator + "520": logout # 520,Users,Authentication Access,User Activity,INFO,4235,Admin Logout From CLI,CLI administrator logged out + "549": login-failure # 549,Users,Authentication Access,User Activity,WARNING,4236,WLAN Guest Limit,User login failed - Guest service limit reached + "550": session-end # 550,Users,Authentication Access,User Activity,INFO,4237,WLAN Session Timeout,User Session Quota Expired + "551": session-end # 551,Users,Authentication Access,User Activity,INFO,4238,WLAN Account Timeout,Guest Account Timeout + "557": login-failure # 557,Users,Authentication Access,User Activity,INFO,4239,WLAN Guest Already Login,Guest login denied. Guest '%s' is already logged in. Please try again later. + "558": user-account-created # 558,Users,Authentication Access,User Activity,INFO,4240,WLAN Guest Create,Guest account '%s' created + "559": user-account-deleted # 559,Users,Authentication Access,User Activity,INFO,4241,WLAN Guest Delete,Guest account '%s' deleted + "560": user-account-disabled # 560,Users,Authentication Access,User Activity,INFO,4242,WLAN Guest Disable,Guest account '%s' disabled + "561": user-account-enabled # 561,Users,Authentication Access,User Activity,INFO,4243,WLAN Guest Re-enable,Guest account '%s' re-enabled + "562": user-account-deleted # 562,Users,Authentication Access,User Activity,INFO,4244,WLAN Guest Prune,Guest account '%s' pruned + "564": session-end # 564,Users,Authentication Access,User Activity,INFO,4246,WLAN Idle Timeout,Guest Idle Timeout + "583": login-failure # 583,Users,Authentication Access,Attack,ERROR,559,User Login Disable,User login disabled from %s + "728": config-change # 728,Users,Authentication Access,Maintenance,INFO,4248,WLAN Disable By Schedule,WLAN disabled by schedule + "729": config-change # 729,Users,Authentication Access,Maintenance,INFO,4249,WLAN Enabled By Schedule,WLAN enabled by schedule + "759": login-failure # 759,Users,Authentication Access,User Activity,INFO,---,User Already Logged-In,User login denied - user already logged in + "986": login-failure # 986,Users,Authentication Access,User Activity,INFO,4256,Not Allowed by Policy Rule,User login denied - not allowed by Policy rule + "987": login-failure # 987,Users,Authentication Access,User Activity,INFO,4257,Not Found Locally,User login denied - not found locally + "994": session-start # 994,Users,Authentication Access,User Activity,INFO,4258,Configuration Mode Administration Session Started,Configuration mode administration session started + "995": session-end # 995,Users,Authentication Access,User Activity,INFO,4259,Configuration Mode Administration Session Ended,Configuration mode administration session ended + "996": session-start # 996,Users,Authentication Access,User Activity,INFO,4260,Read-only Mode GUI Administration Session Started,Read-only mode GUI administration session started + "997": session-start # 997,Users,Authentication Access,User Activity,INFO,4261,Non-Config Mode GUI Administration Session Started,Non-config mode GUI administration session started + "998": session-end # 998,Users,Authentication Access,User Activity,INFO,4262,GUI Administration Session End,GUI administration session ended + "1008": logout # 1008,Users,Authentication Access,User Activity,INFO,---,Logout Detected by SSO,User logged out - logout detected by SSO + "1035": login-failure # 1035,Users,Authentication Access,User Activity,INFO,---,Password Expire,User login denied - password expired + "1048": login-failure # 1048,Users,Authentication Access,---,INFO,---,Password doesn't meet constraints,User login denied - password doesn't meet constraints + "1080": login-success # 1080,Users,Authentication Access,---,INFO,---,Successful SSL VPN User Login,SSL VPN zone remote user login allowed + "1117": login-failure # 1117,Users,Authentication Access,User Activity,WARNING,---,SSO Probe Failed,User login denied - SSO probe failed + "1118": login-failure # 1118,Users,Authentication Access,User Activity,INFO,---,SMTP Server Not Configured,User login denied - Mail Address(From/to) or SMTP Server is not configured + "1119": login-failure # 1119,Users,Authentication Access,User Activity,INFO,---,RADIUS User Cannot Use One Time Password,RADIUS user cannot use One Time Password - no mail address set for equivalent local user + "1120": login-failure # 1120,Users,Authentication Access,User Activity,WARNING,---,TSA Timeout,User login denied - Terminal Services agent Timeout + "1121": login-failure # 1121,Users,Authentication Access,User Activity,WARNING,---,TSA Name Resolution Failed,User login denied - Terminal Services agent name resolution failed + "1122": login-failure # 1122,Users,Authentication Access,User Activity,WARNING,---,No Name Received from TSA,User login denied - No name received from Terminal Services agent + "1123": login-failure # 1123,Users,Authentication Access,User Activity,WARNING,---,TSA Communicatio n Problem,User login denied - Terminal Services agent communication problem + "1124": logout # 1124,Users,Authentication Access,User Activity,INFO,---,TSA User logout,User logged out - logout reported by Terminal Services agent + "1157": user-account-disabled # 1157,Users,Authentication Access,User Activity,INFO,---,User Account Expired,User account '%s' expired and disabled + "1158": user-account-deleted # 1158,Users,Authentication Access,User Activity,INFO,---,User Account Pruned,User account '%s' expired and pruned + "1243": login-failure # 1243,Users,Authentication Access,User Activity,INFO,---,Sending OTP Failed,User login Failed - An error has occurred while sending your one-time password + "1333": user-account-created # 1333,Users,Authentication Access,User Activity,INFO,---,Create a User,%s + "1334": user-account-changed # 1334,Users,Authentication Access,User Activity,INFO,---,Edit a User,%s + "1335": user-account-deleted # 1335,Users,Authentication Access,User Activity,INFO,---,Delete a User,%s + "1341": user-account-changed # 1341,Users,Authentication Access,User Activity,INFO,---,Edit Customize Login Pages,%s + "1342": user-account-changed # 1342,Users,Authentication Access,User Activity,INFO,---,Edit user lockout params,Update administrator/user lockout params - %s + "1517": login-failure # 1517,Users,Authentication Access,User Activity,INFO,---,User Name Invalid Symbol,User name invalid symbol: %s + "1570": user-account-locked # 1570,Users,Authentication Access,Attack,ERROR,---,User Account Lockout,%s. + "1571": user-account-unlocked # 1571,Users,Authentication Access,Attack,ERROR,---,User Account Unlocked,User %s account is unlocked. + "1572": login-failure # 1572,Users,Authentication Access,Attack,ERROR,---,User is currently locked out,User login failed because the user is currently locked out. + "1585": login-failure # 1585,Users,Authentication Access,User Activity,INFO,---,User Login Denied,User login denied -%s + "1627": user-account-disabled # 1627,Users,Authentication Access,User Activity,INFO,---,User Account Expired due to inactivity,User account '%s' expired and disabled due to inactivity + "1655": login-failure # 1655,Users,Authentication Access,Attack,ERROR,---,User is now locked out,"User login failed, user is now locked out." + "1672": login-failure # 1672,Users,Authentication Access,User Activity,WARNING,---,CLI Limit Admin Denied From WAN,CLI limit administrator login denied from WAN + + # Radius Authentication + "243": login-failure # 243,Users,Radius Authentication,User Activity,INFO,8201,User Login Failed,User login denied - RADIUS authentication failure + "244": login-failure # 244,Users,Radius Authentication,User Activity,WARNING,8202,User Login Timeout,User login denied - RADIUS server Timeout + "245": login-failure # 245,Users,Radius Authentication,User Activity,WARNING,8203,User Login Error,User login denied - RADIUS configuration error + "744": login-failure # 744,Users,Radius Authentication,User Activity,WARNING,8205,RADIUS Communicatio n Problem,User login denied - RADIUS communication problem + "745": login-failure # 745,Users,Radius Authentication,User Activity,INFO,8206,LDAP Authentication Failure,User login denied - LDAP authentication failure + "746": login-failure # 746,Users,Radius Authentication,User Activity,WARNING,8207,LDAP Server Timeout,User login denied - LDAP server Timeout + "747": login-failure # 747,Users,Radius Authentication,User Activity,WARNING,8208,LDAP Server Error,User login denied - LDAP server down or misconfigured + "748": login-failure # 748,Users,Radius Authentication,User Activity,WARNING,8209,LDAP Communicatio n Problem,User login denied - LDAP communication problem + "749": login-failure # 749,Users,Radius Authentication,User Activity,WARNING,8210,LDAP Server Invalid Credential,User login denied - invalid credentials on LDAP server + "750": login-failure # 750,Users,Radius Authentication,User Activity,WARNING,8211,LDAP Server Insufficient Access,User login denied - insufficient access on LDAP server + "751": login-failure # 751,Users,Radius Authentication,User Activity,WARNING,8212,LDAP Schema Mismatch,User login denied - LDAP schema mismatch + "753": login-failure # 753,Users,Radius Authentication,User Activity,WARNING,8214,LDAP Server Name Resolution Failed,User login denied - LDAP server name resolution failed + "754": login-failure # 754,Users,Radius Authentication,User Activity,WARNING,8215,RADIUS Server Name Resolution Failed,User login denied - RADIUS server name resolution failed + "755": login-failure # 755,Users,Radius Authentication,User Activity,WARNING,8216,LDAP Server Certificate Invalid,User login denied - LDAP server certificate not valid + "756": login-failure # 756,Users,Radius Authentication,User Activity,WARNING,8217,LDAP TLS or Local Error,User login denied - TLS or local certificate problem + "757": login-failure # 757,Users,Radius Authentication,User Activity,WARNING,8218,LDAP Directory Mismatch,User login denied - LDAP directory mismatch + "1011": user-account-change-failure # 1011,Users,Radius Authentication,System Error,WARNING,4265,Non-Administr ative Attempt to Change Password,LDAP using non-administrative account - VPN client user will not be able to change passwords + + # SSO Agent Authentication + "988": login-failure # 988,Users,SSO Agent Authentication,User Activity,WARNING,12601,Timeout,User login denied - SSO agent Timeout + "989": login-failure # 989,Users,SSO Agent Authentication,User Activity,WARNING,12602,Configuration Error,User login denied - SSO agent configuration error + "990": login-failure # 990,Users,SSO Agent Authentication,User Activity,WARNING,12603,Communicatio n Problem,User login denied - SSO agent communication problem + "991": login-failure # 991,Users,SSO Agent Authentication,User Activity,WARNING,12604,Name Resolution Failed,User login denied - SSO agent name resolution failed + + # Anti-Spyware + "794": malware-info # 794,Security Services,Anti-Spyware,Attack,ALERT,6437,Anti-Spyware Prevention Alert,Anti-Spyware Prevention Alert: %s + "795": malware-info # 795,Security Services,Anti-Spyware,Attack,ALERT,6438,Anti-Spyware Detection Alert,Anti-Spyware Detection Alert: %s + "796": malware-info # 796,Security Services,Anti-Spyware,Maintenance,WARNING,8631,Anti-Spyware Service Expired,Anti-Spyware Service Expired + + # Anti-Virus + "123": malware-info # 123,Security Services,Anti-Virus,Maintenance,INFO,8605,AV Access Without Agent,Access attempt from host without Anti-Virus agent installed + "124": malware-info # 124,Security Services,Anti-Virus,Maintenance,INFO,8606,AV Agent Out of Date,Anti-Virus agent out-of-date on host + "125": malware-info # 125,Security Services,Anti-Virus,Maintenance,WARNING,524,AV Alert Receive,Received AV Alert: %s + "159": malware-info # 159,Security Services,Anti-Virus,Maintenance,WARNING,526,AV Expire message,Received AV Alert: Your Network Anti-Virus subscription has expired. %s + "408": malware-info # 408,Security Services,Anti-Virus,Maintenance,INFO,8617,AV License Exceeded,Anti-Virus Licenses Exceeded + "482": malware-info # 482,Security Services,Anti-Virus,Maintenance,WARNING,552,AV Expiration Warning,Received AV Alert: Your Network Anti-Virus subscription will expire in 7 days. %s + + # Next-Gen Anti-Virus + "1559": malware-info # 1559,Security Services,Next-Gen Anti-Virus,Maintenance,INFO,---,Next-Gen AV Access Without Agent,Access attempt from host without Next-Gen Anti-Virus agent installed + "1560": malware-info # 1560,Security Services,Next-Gen Anti-Virus,Maintenance,INFO,---,Next-Gen AV Agent Out of Date,Next-Gen Anti-Virus agent out-of-date on host + "1561": malware-info # 1561,Security Services,Next-Gen Anti-Virus,Maintenance,WARNING,---,Next-Gen AV Expire message,Received Next-Gen AV Alert: Your Network Next-Gen Anti-Virus subscription has expired. %s + "1562": malware-info # 1562,Security Services,Next-Gen Anti-Virus,Maintenance,WARNING,---,Next-Gen AV Expiration Warning,Received Next-Gen AV Alert: Your Network Next-Gen Anti-Virus subscription will expire in 7 days. %s + + # Application Control + "1154": malware-info # 1154,Security Services,Application Control,---,ALERT,15001,Application Control Detection Alert,Application Control Detection Alert: %s + "1155": malware-info # 1155,Security Services,Application Control,---,ALERT,15002,Application Control Prevention Alert,Application Control Prevention Alert: %s + + # Application Firewall + "793": malware-info # 793,Firewall,Application Firewall,User Activity,ALERT,13201,Application Firewall Alert,Application Firewall Alert: %s + "1654": malware-info # 1654,Firewall,Application Firewall,User Activity,DEBUG,---,Custom Match Applied,Custom Match applied %s + + # Access Rules + "440": config-add # 440,Firewall,Access Rules,User Activity,INFO,5801,Rule Added,Access rule added + "441": config-change # 441,Firewall,Access Rules,User Activity,INFO,5802,Rule Modified,Access rule viewed or modified + "442": config-delete # 442,Firewall,Access Rules,User Activity,INFO,5803,Rule Deleted,Access rule deleted + + # Administration + "340": config-change # 340,System,Administration,Maintenance,INFO,5212,HTTP Port Change,HTTP management port has changed + "341": config-change # 341,System,Administration,Maintenance,INFO,5213,HTTPS Port Change,HTTPS management port has changed + + # Advanced + "1590": config-info # 1590,Firewall Settings,Advanced,Debug,INFO,---,Internal VLAN Configuration,%s + + # Botnet Filter + "1195": attack-detected # 1195,Security Services,Botnet Filter,---,WARNING,---,Botnet Filter Subscription Expired,Received Alert: Your Firewall Botnet Filter subscription has expired. + "1200": attack-blocked # 1200,Security Services,Botnet Filter,---,ALERT,---,Botnet Initiator Blocked,Suspected Botnet initiator blocked: %s + "1201": attack-blocked # 1201,Security Services,Botnet Filter,---,ALERT,---,Botnet Responder Blocked,Suspected Botnet responder blocked: %s + "1476": attack-blocked # 1476,Security Services,Botnet Filter,---,ALERT,---,Custom Botnet Initiator Blocked,"Suspected Botnet initiator blocked: %s, Source: Custom List" + "1477": attack-blocked # 1477,Security Services,Botnet Filter,---,ALERT,---,Custom Botnet Responder Blocked,"Suspected Botnet responder blocked: %s, Source: Custom List" + "1518": attack-blocked # 1518,Security Services,Botnet Filter,---,ALERT,---,Botnet Initiator Blocked By Dynamic List,"Suspected Botnet initiator blocked: %s, Source: Dynamic List" + "1519": attack-blocked # 1519,Security Services,Botnet Filter,---,ALERT,---,Botnet Responder Blocked By Dynamic List,"Suspected Botnet responder blocked: %s, Source: Dynamic List" + + # Cloud Backup + "1511": internal-log-success # 1511,System,Cloud Backup,---,INFO,---,Automatic Cloud Backup Successful,%s + "1512": internal-log-failure # 1512,System,Cloud Backup,---,INFO,---,Automatic Cloud Backup Failed,%s + "1513": internal-log-success # 1513,System,Cloud Backup,---,INFO,---,Manual Cloud Backup Successful,%s + "1514": internal-log-failure # 1514,System,Cloud Backup,---,INFO,---,Manual Cloud Backup Failed,%s + "1515": internal-log-success # 1515,System,Cloud Backup,---,INFO,---,Delete Cloud Backup Successful,%s + "1516": internal-log-failure # 1516,System,Cloud Backup,---,INFO,---,Delete Cloud Backup Failed,%s + + # Restart + "93": internal-log-failure # 93,System,Restart,System Error,ERROR,611,Suspend Reboot,Diagnostic Code A + "94": internal-log-failure # 94,System,Restart,System Error,ERROR,612,Deadlock Reboot,Diagnostic Code B + "95": internal-log-failure # 95,System,Restart,System Error,ERROR,613,Low Memory Reboot,Diagnostic Code C + "164": internal-log-failure # 164,System,Restart,System Error,ERROR,621,HTTP Server Reboot,Diagnostic Code F + "599": internal-log-failure # 599,System,Restart,System Error,ERROR,655,Stack Margin Reboot,Diagnostic Code G + "600": internal-log-failure # 600,System,Restart,System Error,ERROR,656,Delete Reboot,Diagnostic Code H + "601": internal-log-failure # 601,System,Restart,System Error,ERROR,657,Delete Stack Reboot,Diagnostic Code I + "1046": internal-log-success # 1046,System,Restart,---,INFO,---,Diagnostic Auto-Restart Canceled,Diagnostic Auto-restart canceled + "1047": internal-log-success # 1047,System,Restart,---,INFO,---,Diagnostic Auto-Restart,"As per Diagnostic Auto-restart configuration Request, restarting system" + "1392": internal-log-success # 1392,System,Restart,Maintenance,ALERT,5243,SonicOS up,SonicOS up:%s + "1393": internal-log-success # 1393,System,Restart,Maintenance,ALERT,5244,SonicOS down,SonicOS down:%s + + # Settings + "573": internal-log-failure # 573,System,Settings,System Error,WARNING,649,Preferences Too Big,The preferences file is too large to be saved in available flash memory + "574": internal-log-failure # 574,System,Settings,System Error,WARNING,650,Preferences Defaulted,All preference values have been set to factory default values + "1049": internal-log-success # 1049,System,Settings,---,INFO,---,System Setting Imported,System Setting Imported + "1065": internal-log-success # 1065,System,Settings,Maintenance,INFO,---,Remote Backup Succeeded,Successfully sent %s file to remote backup server + "1066": internal-log-failure # 1066,System,Settings,Maintenance,ALERT,---,Remote Backup Failed,"Failed to send file to remote backup server, Error: %s" + "1160": internal-log-failure # 1160,System,Settings,Maintenance,DEBUG,---,Failed to Ping Remote Backup Server,Attempt to contact Remote backup server for upload approval failed + "1161": internal-log-failure # 1161,System,Settings,Maintenance,DEBUG,---,Failed to Upload Remote Backup Server,Backup remote server did not approve upload Request + "1268": internal-log-failure # 1268,System,Settings,---,NOTICE,---,Firmware Update Failed,Firmware Update Failed + "1269": config-change # 1269,System,Settings,---,NOTICE,---,Firmware Update Succeeded,Firmware Update Succeeded %s + "1336": config-change # 1336,System,Settings,---,INFO,---,Change Certification,Certification %s + "1337": user-account-changed # 1337,System,Settings,---,INFO,---,User Password Changed by Administrators,%s + "1338": user-account-changed # 1338,System,Settings,---,INFO,---,User Change Password,User %s password is changed + "1339": config-change # 1339,System,Settings,---,INFO,---,Change Password Rule,Password rule %s is changed + "1340": config-change # 1340,System,Settings,---,INFO,---,Change User Inactive time out,User Inactive timeout is changed to %s + "1432": config-change # 1432,System,Settings,---,INFO,---,Configuration Change,Configuration changed: %s + "1494": internal-log-success # 1494,System,Settings,---,INFO,---,System Setting Exported,System Setting Exported + "1520": internal-log-success # 1520,System,Settings,Maintenance,INFO,---,E-mail SFR Success,Successfully sent SFR file by E-mail + "1521": internal-log-failure # 1521,System,Settings,Maintenance,INFO,---,E-mail SFR Failed,"Failed to send SFR file by E-mail, %s" + "1565": internal-log-success # 1565,System,Settings,Maintenance,INFO,---,FTP Transfer Success,Successfully sent Flow Report file by FTP + "1566": internal-log-failure # 1566,System,Settings,Maintenance,INFO,---,FTP Transfer Failed,"Failed to send Flow Report file by FTP, %s" + "1567": internal-log-success # 1567,System,Settings,Maintenance,INFO,---,E-mail Transfer Success,Successfully sent Flow Report file by E-mail + "1568": internal-log-failure # 1568,System,Settings,Maintenance,INFO,---,E-mail Transfer Failed,"Failed to send Flow Report file by E-mail, %s" + "1636": internal-log-failure # 1636,System,Settings,---,INFO,---,Port Unreachable Received,Port Unreachable received from remote sender + "1637": internal-log-failure # 1637,System,Settings,---,INFO,---,Port Unreachable Ignored,Port Unreachable from remote sender ignored + + # Cluster + "1149": internal-log-failure # 1149,High Availability,Cluster,---,WARNING,---,VRRP Expiration Message,Your Active/Active Clustering subscription has expired. + "1152": internal-log-failure # 1152,High Availability,Cluster,---,ERROR,---,VRRP Cluster No license,Active/Active Clustering license is not activated on the following cluster units: %s + + # Status + "4": internal-log-success # 4,System,Status,Maintenance,ALERT,5201,Activate Firewall,Network Security Appliance activated + "53": internal-log-failure # 53,System,Status,System Error,ERROR,607,Connection Cache Full,The cache is full; %s open connections; some will be dropped + "521": internal-log-success # 521,System,Status,Maintenance,INFO,5218,Initializing,Network Security Appliance initializing + "1107": internal-log-failure # 1107,System,Status,System Error,ALERT,---,System Alert,%s + "1196": internal-log-failure # 1196,System,Status,Maintenance,ALERT,---,Firewall Limit Reached,Product maximum entries reached - %s + "1332": config-change # 1332,System,Status,Maintenance,ALERT,---,NDPP Mode Change,NDPP mode is changed to %s + "1495": internal-log-success # 1495,System,Status,Maintenance,INFO,---,Firewall was Rebooted by Setting Import,Firewall was rebooted by setting import at %s + "1496": internal-log-success # 1496,System,Status,Maintenance,INFO,---,Firewall was Rebooted by Firmware,Firewall was rebooted by %s + + # Configuration Auditing + "1382": config-change # 1382,Log,Configuration Auditing,User Activity,INFO,5609,Configuration Change Succeeded,Configuration succeeded: %s + "1383": config-change-failure # 1383,Log,Configuration Auditing,User Activity,INFO,5610,Configuration Change Failed,Configuration failed: %s + "1674": config-change # 1674,Log,Configuration Auditing,User Activity,INFO,---,Chassis settings change,Chassis: %s + + # Interfaces + "58": connection-denied # 58,Network,Interfaces,System Error,ERROR,608,Too Many IP on LAN,License exceeded: Connection dropped because too many IP addresses are in use on your LAN + + # SSL Control + "999": connection-info # 999,Firewall Settings,SSL Control,Blocked Sites,INFO,7247,Website Found in Blacklist,SSL Control: Website found in blacklist + "1001": connection-info # 1001,Firewall Settings,SSL Control,Blocked Sites,INFO,---,Weak SSL Version,SSL Control: Weak SSL Version being used + "1002": connection-info # 1002,Firewall Settings,SSL Control,Blocked Sites,INFO,7250,Certificate With Invalid Date,SSL Control: Certificate with invalid date + "1003": connection-info # 1003,Firewall Settings,SSL Control,Blocked Sites,INFO,7251,Self-Signed Certificate,SSL Control: Self-signed certificate + "1004": connection-info # 1004,Firewall Settings,SSL Control,Blocked Sites,INFO,7252,Weak Cipher Being Used,SSL Control: Weak cipher being used + "1005": connection-info # 1005,Firewall Settings,SSL Control,Blocked Sites,INFO,7253,Untrusted CA,SSL Control: Untrusted CA + "1006": connection-info # 1006,Firewall Settings,SSL Control,Blocked Sites,INFO,7254,Certificate Chain Incomplete,SSL Control: Certificate chain not complete + "1081": connection-info # 1081,Firewall Settings,SSL Control,Blocked Sites,INFO,---,Certificate Blocked Weak Digest,SSL Control: Certificate with Weak Digest Signature Algorithm + + on_failure: + - append: + field: error.message + value: 'internal ECS categorization error: {{{ _ingest.on_failure_message }}}' + source: | + def clone(def val) { + return val instanceof List? new ArrayList(val) : val; + } + def evtype = params.message_codes[ctx.event?.code]; + if (evtype == null) return; + def actions = params.event_types[evtype]; + if (actions == null) { + throw new Exception("message code " + ctx.event.code + " references missing event type " + evtype); + } + def event = ctx.computeIfAbsent('event', k -> new HashMap()); + for (def entry : actions.entrySet()) { + event[entry.getKey()] = clone(entry.getValue()); + } + event["action"] = evtype; + +# +# Builds url fields +# url = proto + :// + dstname + arg +# +# This requires `arg` field being present (url.path) +# as dstname can have a different meaning (email attachments) +# but arg is always used in the context of an HTTP transaction +# + - set: + field: url.scheme + value: '{{{ network.protocol }}}' + ignore_empty_value: true + if: 'ctx.url?.path != null' + + - rename: + field: url.domain + target_field: sonicwall.firewall.dstname + ignore_missing: true + if: 'ctx.url?.path == null' + + - set: + field: url.full + value: '{{{ url.scheme }}}://{{{ url.domain }}}{{{ url.path }}}' + if: 'ctx.url?.scheme != null && ctx.url?.domain != null' + + - set: + field: url.full + value: '//{{{ url.domain }}}{{{ url.path }}}' + if: 'ctx.url?.scheme == null && ctx.url?.domain != null' + +# +# Related fields +# + - append: + field: related.ip + value: "{{{ source.ip }}}" + allow_duplicates: false + if: 'ctx.source?.ip != null' + - append: + field: related.ip + value: "{{{ source.nat.ip }}}" + allow_duplicates: false + if: 'ctx.source?.nat?.ip != null' + - append: + field: related.ip + value: "{{{ destination.ip }}}" + allow_duplicates: false + if: 'ctx.destination?.ip != null' + - append: + field: related.ip + value: "{{{ destination.nat.ip }}}" + allow_duplicates: false + if: 'ctx.destination?.nat?.ip != null' + - append: + field: related.ip + value: "{{{ observer.ip }}}" + allow_duplicates: false + if: 'ctx.observer?.ip != null' + - append: + field: related.user + value: "{{{ user.name }}}" + allow_duplicates: false + if: 'ctx.user?.name != null' +# +# Cleanup +# + - remove: + field: + - _conf + - _temp_ + - sonicwall.firewall.srcV6 + - sonicwall.firewall.dstV6 + - sonicwall.firewall.note + - sonicwall.firewall.c + ignore_failure: true + ignore_missing: true + + - remove: + field: sonicwall + if: 'ctx.sonicwall?.firewall?.size() == 0' + + - remove: + field: event.original + if: "ctx?.tags == null || !ctx.tags.contains('preserve_original_event')" + ignore_failure: true + ignore_missing: true + +on_failure: + - set: + field: error.message + value: '{{{ _ingest.on_failure_message }}}' \ No newline at end of file diff --git a/packages/sonicwall_firewall/0.1.1/data_stream/log/fields/base-fields.yml b/packages/sonicwall_firewall/0.1.1/data_stream/log/fields/base-fields.yml new file mode 100755 index 0000000000..016fb3dd86 --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/data_stream/log/fields/base-fields.yml @@ -0,0 +1,20 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: '@timestamp' + type: date + description: Event timestamp. +- name: event.module + type: constant_keyword + description: Event module + value: sonicwall_firewall +- name: event.dataset + type: constant_keyword + description: Event dataset + value: sonicwall_firewall.log diff --git a/packages/sonicwall_firewall/0.1.1/data_stream/log/fields/beats.yml b/packages/sonicwall_firewall/0.1.1/data_stream/log/fields/beats.yml new file mode 100755 index 0000000000..9275638f93 --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/data_stream/log/fields/beats.yml @@ -0,0 +1,15 @@ +- name: input.type + type: keyword + description: Type of Filebeat input. +- name: log.flags + type: keyword + description: Flags for the log file. +- name: log.offset + type: long + description: Offset of the entry in the log file. +- name: log.file.path + type: keyword + description: Path to the log file. +- name: log.source.address + type: keyword + description: Source address from which the log event was read / sent from. diff --git a/packages/sonicwall_firewall/0.1.1/data_stream/log/fields/ecs.yml b/packages/sonicwall_firewall/0.1.1/data_stream/log/fields/ecs.yml new file mode 100755 index 0000000000..7a9acc7d07 --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/data_stream/log/fields/ecs.yml @@ -0,0 +1,246 @@ +- description: |- + Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: destination.address + type: keyword +- description: Bytes sent from the destination to the source. + name: destination.bytes + type: long +- description: |- + The domain name of the destination system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: destination.domain + type: keyword +- description: City name. + name: destination.geo.city_name + type: keyword +- description: Name of the continent. + name: destination.geo.continent_name + type: keyword +- description: Country ISO code. + name: destination.geo.country_iso_code + type: keyword +- description: Country name. + name: destination.geo.country_name + type: keyword +- description: Longitude and latitude. + name: destination.geo.location + type: geo_point +- description: Region ISO code. + name: destination.geo.region_iso_code + type: keyword +- description: Region name. + name: destination.geo.region_name + type: keyword +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: |- + MAC address of the destination. + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. + name: destination.mac + type: keyword +- description: |- + Translated ip of destination based NAT sessions (e.g. internet to private DMZ) + Typically used with load balancers, firewalls, or routers. + name: destination.nat.ip + type: ip +- description: |- + Port the source session is translated to by NAT Device. + Typically used with load balancers, firewalls, or routers. + name: destination.nat.port + type: long +- description: Packets sent from the destination to the source. + name: destination.packets + type: long +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: |- + HTTP request method. + The value should retain its casing from the original event. For example, `GET`, `get`, and `GeT` are all considered valid values for this field. + name: http.request.method + type: keyword +- description: |- + Original log level of the log event. + If the source of the event provides a log level or textual severity, this is the one that goes in `log.level`. If your source doesn't specify one, you may put your event transport's severity here (e.g. Syslog severity). + Some examples are `warn`, `err`, `i`, `informational`. + name: log.level + type: keyword +- description: |- + For log events the message field contains the log message, optimized for viewing in a log viewer. + For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. + If multiple messages exist, they can be combined into one message. + name: message + type: match_only_text +- description: |- + Total bytes transferred in both directions. + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. + name: network.bytes + type: long +- description: |- + Total packets transferred in both directions. + If `source.packets` and `destination.packets` are known, `network.packets` is their sum. + name: network.packets + type: long +- description: |- + In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. + The field value must be normalized to lowercase for querying. + name: network.protocol + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. + name: network.transport + type: keyword +- description: Interface name as reported by the system. + name: observer.egress.interface.name + type: keyword +- description: Network zone of outbound traffic as reported by the observer to categorize the destination area of egress traffic, e.g. Internal, External, DMZ, HR, Legal, etc. + name: observer.egress.zone + type: keyword +- description: Interface name as reported by the system. + name: observer.ingress.interface.name + type: keyword +- description: Network zone of incoming traffic as reported by the observer to categorize the source area of ingress traffic. e.g. internal, External, DMZ, HR, Legal, etc. + name: observer.ingress.zone + type: keyword +- description: Hostname of the observer. + name: observer.hostname + type: keyword +- description: IP addresses of the observer. + name: observer.ip + type: ip +- description: |- + Custom name of the observer. + This is a name that can be given to an observer. This can be helpful for example if multiple firewalls of the same model are used in an organization. + If no custom name is needed, the field can be left empty. + name: observer.name + type: keyword +- description: The product name of the observer. + name: observer.product + type: keyword +- description: Observer serial number. + name: observer.serial_number + type: keyword +- description: |- + The type of the observer the data is coming from. + There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. + name: observer.type + type: keyword +- description: Vendor name of the observer. + name: observer.vendor + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. + name: rule.id + type: keyword +- description: The name of the rule or signature generating the event. + name: rule.name + type: keyword +- description: |- + Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: source.address + type: keyword +- description: Bytes sent from the source to the destination. + name: source.bytes + type: long +- description: |- + The domain name of the source system. + This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. + name: source.domain + type: keyword +- description: City name. + name: source.geo.city_name + type: keyword +- description: Name of the continent. + name: source.geo.continent_name + type: keyword +- description: Country ISO code. + name: source.geo.country_iso_code + type: keyword +- description: Country name. + name: source.geo.country_name + type: keyword +- description: Longitude and latitude. + name: source.geo.location + type: geo_point +- description: Region ISO code. + name: source.geo.region_iso_code + type: keyword +- description: Region name. + name: source.geo.region_name + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: |- + MAC address of the source. + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. + name: source.mac + type: keyword +- description: |- + Translated ip of source based NAT sessions (e.g. internal client to internet) + Typically connections traversing load balancers, firewalls, or routers. + name: source.nat.ip + type: ip +- description: |- + Translated port of source based NAT sessions. (e.g. internal client to internet) + Typically used with load balancers, firewalls, or routers. + name: source.nat.port + type: long +- description: Packets sent from the source to the destination. + name: source.packets + type: long +- description: Port of the source. + name: source.port + type: long +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Domain of the url, such as "www.elastic.co". + In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. + name: url.domain + type: keyword +- description: If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. + multi_fields: + - name: text + type: match_only_text + name: url.full + type: wildcard +- description: |- + Unmodified original url as seen in the event source. + Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. + This field is meant to represent the URL as it was observed, complete or not. + multi_fields: + - name: text + type: match_only_text + name: url.original + type: wildcard +- description: Path of the request, such as "/search". + name: url.path + type: wildcard +- description: |- + Scheme of the request, such as "https". + Note: The `:` is not part of the scheme. + name: url.scheme + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword diff --git a/packages/sonicwall_firewall/0.1.1/data_stream/log/fields/package-fields.yml b/packages/sonicwall_firewall/0.1.1/data_stream/log/fields/package-fields.yml new file mode 100755 index 0000000000..9bf93ea54c --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/data_stream/log/fields/package-fields.yml @@ -0,0 +1,66 @@ +- name: sonicwall.firewall + type: group + description: Vendor fields from SonicWall firewall logs + fields: + - name: Category + type: keyword + description: Category of CFS blocked content. + - name: af_polid + type: keyword + description: Displays the Application Filter Policy ID. + - name: app + type: keyword + description: Numeric application ID. + - name: appName + type: keyword + description: Non-Signature Application Name. + - name: appcat + type: keyword + description: Application control category. + - name: appid + type: keyword + description: Application ID. + - name: auditId + type: keyword + - name: code + type: keyword + description: CFS blocking code. + - name: dpi + type: boolean + description: Indicates wether a flow underwent Deep Packet Inspection. + - name: event_group_category + type: keyword + description: Event group category. + - name: gcat + type: keyword + description: Event group category (numeric identifier). + - name: ipscat + type: keyword + description: IPS category. + - name: ipspri + type: keyword + description: IPS priority. + - name: oldValue + type: keyword + - name: sess + type: keyword + description: User session type. + - name: sid + type: keyword + description: IPS or Anti-Spyware signature ID. + - name: tranxId + type: keyword + - name: type + type: keyword + description: ICMP type. + - name: userMode + type: keyword + - name: uuid + type: keyword + description: Object UUID. + - name: vpnpolicy + type: keyword + description: source VPN policy name. + - name: vpnpolicyDst + type: keyword + description: destination VPN policy name. diff --git a/packages/sonicwall_firewall/0.1.1/data_stream/log/manifest.yml b/packages/sonicwall_firewall/0.1.1/data_stream/log/manifest.yml new file mode 100755 index 0000000000..dc29748332 --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/data_stream/log/manifest.yml @@ -0,0 +1,40 @@ +title: "SonicWall Firewall logs" +type: logs +streams: + - input: udp + template_path: udp.yml.hbs + title: Syslog logs + description: Collect logs via syslog + vars: + - name: syslog_host + type: text + title: Listen address + description: | + Address where the agent will accept syslog messages. + Use 0.0.0.0 to receive syslog on all interfaces. + multi: false + required: true + show_user: true + default: 0.0.0.0 + - name: syslog_port + type: integer + title: Listen Port + description: UDP Port where the Agent will receive syslog messages. + multi: false + required: true + show_user: true + default: 9514 + - input: logfile + enabled: false + template_path: logfile.yml.hbs + title: Log files + description: Collect logs from file + vars: + - name: paths + type: text + title: Paths + multi: true + required: true + show_user: true + default: + - /var/log/sonicwall-firewall.log diff --git a/packages/sonicwall_firewall/0.1.1/data_stream/log/sample_event.json b/packages/sonicwall_firewall/0.1.1/data_stream/log/sample_event.json new file mode 100755 index 0000000000..eba948c3f4 --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/data_stream/log/sample_event.json @@ -0,0 +1,127 @@ +{ + "@timestamp": "2022-05-16T08:18:39.000+02:00", + "agent": { + "ephemeral_id": "6cc3228b-d89c-4104-b750-d9cb44ed5513", + "id": "08a5caf6-a717-4f5f-90e2-0f4eb7c59b00", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.2.0" + }, + "data_stream": { + "dataset": "sonicwall_firewall.log", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.193", + "mac": "00-17-C5-30-F9-D9", + "port": 64889 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "08a5caf6-a717-4f5f-90e2-0f4eb7c59b00", + "snapshot": false, + "version": "8.2.0" + }, + "event": { + "action": "connection-denied", + "agent_id_status": "verified", + "category": [ + "network" + ], + "code": "713", + "dataset": "sonicwall_firewall.log", + "ingested": "2022-05-23T13:47:58Z", + "kind": "event", + "outcome": "success", + "sequence": "692", + "severity": "7", + "timezone": "+02:00", + "type": [ + "connection", + "denied" + ] + }, + "input": { + "type": "udp" + }, + "log": { + "level": "debug", + "source": { + "address": "172.24.0.4:47831" + } + }, + "message": "� (TCP Flag(s): RST)", + "network": { + "bytes": 46, + "protocol": "https", + "transport": "tcp" + }, + "observer": { + "egress": { + "interface": { + "name": "X1" + }, + "zone": "Untrusted" + }, + "ingress": { + "interface": { + "name": "X1" + }, + "zone": "Untrusted" + }, + "ip": "10.0.0.96", + "name": "firewall", + "product": "SonicOS", + "serial_number": "0040103CE114", + "type": "firewall", + "vendor": "SonicWall" + }, + "related": { + "ip": [ + "10.0.0.96", + "81.2.69.193" + ], + "user": [ + "admin" + ] + }, + "rule": { + "id": "15 (WAN-\u003eWAN)" + }, + "sonicwall": { + "firewall": { + "app": "12", + "event_group_category": "Firewall Settings", + "gcat": "6", + "sess": "Web" + } + }, + "source": { + "bytes": 46, + "ip": "10.0.0.96", + "mac": "00-06-B1-DD-4F-D4", + "port": 443 + }, + "tags": [ + "sonicwall-firewall", + "forwarded" + ], + "user": { + "name": "admin" + } +} \ No newline at end of file diff --git a/packages/sonicwall_firewall/0.1.1/docs/README.md b/packages/sonicwall_firewall/0.1.1/docs/README.md new file mode 100755 index 0000000000..9d152b95bb --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/docs/README.md @@ -0,0 +1,311 @@ +# SonicWall Firewall Integration + +This integration collects syslog messages from SonicWall firewalls. It has been tested with Enhanced +Syslog logs from SonicOS 6.5 and 7.0 as described in the [Log Events reference guide.](https://www.sonicwall.com/techdocs/pdf/sonicos-6-5-4-log-events-reference-guide.pdf) + +## Configuration + +Configure a Syslog Server in your firewall using the following options: + - **Name or IP Address:** The address where your Elastic Agent running this integration is reachable. + - **Port:** The Syslog port (UDP) configured in this integration. + - **Server Type:** Syslog Server. + - **Syslog Format:** Enhanced Syslog. + - **Syslog ID:** Change this default (`firewall`) if you need to differentiate between multiple firewalls. + This value will be stored in the `observer.name` field. + +It's recommended to enable the **Display UTC in logs (instead of local time)** setting under the +_Device > Settings > Time_ configuration menu. Otherwise you'll have to configure the **Timezone Offset** +setting of this integration to match the timezone configured in your firewall. + +Ensure proper connectivity between your firewall and Elastic Agent. + +## Supported messages + +This integration features generic support for enhanced syslog messages produced by SonicOS and features +more detailed ECS enrichment for the following messages: + +| Category | Subcategory | Message IDs | +|----------|-------------|-------------| +| Firewall | Access Rules | 440-442, 646, 647, 734, 735 | +| Firewall | Application Firewall | 793, 1654 | +| Firewall Settings | Advanced | 428, 1473, 1573, 1576, 1590 | +| Firewall Settings | Checksum Enforcement | 883-886, 1448, 1449 | +| Firewall Settings | FTP | 446, 527, 528, 538 | +| Firewall Settings | Flood Protection | 25, 856-860, 862-864, 897, 898, 901, 904, 905, 1180, 1213, 1214, 1366, 1369, 1450-1452 | +| Firewall Settings | Multicast | 683, 690, 694, 1233 | +| Firewall Settings | SSL Control | 999, 1001-1006, 1081 | +| High Availability | Cluster | 1149, 1152 | +| Log | Configuration Auditing | 1382, 1383, 1674 | +| Network | ARP | 45, 815, 1316 | +| Network | DNS | 1098, 1099 | +| Network | DNS Security | 1593 | +| Network | ICMP | 38, 63, 175, 182, 188, 523, 597, 598, 1254-1257, 1431, 1433, 1458 | +| Network | IP | 28, 522, 910, 1301-1303, 1429, 1430 | +| Network | IPcomp | 651-653 | +| Network | IPv6 Tunneling | 1253 | +| Network | Interfaces | 58 | +| Network | NAT | 339, 1197, 1436 | +| Network | NAT Policy | 1313-1315 | +| Network | Network Access | 41, 46, 98, 347, 524, 537, 590, 714, 1304 | +| Network | TCP | 36, 48, 173, 181, 580, 708, 709, 712, 713, 760, 887-896, 1029-1031, 1384, 1385, 1628, 1629 | +| Security Services | Anti-Spyware | 794-796 | +| Security Services | Anti-Virus | 123-125, 159, 408, 482 | +| Security Services | Application Control | 1154, 1155 | +| Security Services | Attacks | 22, 23, 27, 81-83, 177-179, 267, 606, 1373-1376, 1387, 1471 | +| Security Services | Botnet Filter | 1195, 1200, 1201, 1476, 1477, 1518, 1519 | +| Security Services | Content Filter | 14, 16, 1599-1601 | +| Security Services | Geo-IP Filter | 1198, 1199, 1474, 1475 | +| Security Services | IDP | 789, 790 | +| Security Services | IPS | 608, 609 | +| Security Services | Next-Gen Anti-Virus | 1559-1562 | +| Security Services | RBL Filter | 797, 798 | +| System | Administration | 340, 341 | +| System | Cloud Backup | 1511-1516 | +| System | Restart | 93-95, 164, 599-601, 1046, 1047, 1392, 1393 | +| System | Settings | 573, 574, 1049, 1065, 1066, 1160, 1161, 1268, 1269, 1336-1340, 1432, 1494, 1520, 1521, 1565-1568, 1636, 1637 | +| System | Status | 4, 53, 521, 1107, 1196, 1332, 1495, 1496 | +| Users | Authentication Access | 24, 29-35, 199, 200, 235-238, 246, 261-265, 328, 329, 438, 439, 486, 506-509, 520, 549-551, 557-562, 564, 583, 728, 729, 759, 986, 987, 994-998, 1008, 1035, 1048, 1080, 1117-1124, 1157, 1158, 1243, 1333-1335, 1341, 1342, 1517, 1570-1572, 1585, 1627, 1655, 1672 | +| Users | Radius Authentication | 243-245, 744-751, 753-757, 1011 | +| Users | SSO Agent Authentication | 988-991 | +| VPN | DHCP Relay | 229 | +| Wireless | RF Monitoring | 879 | +| Wireless | WLAN | 1363 | +| Wireless | WLAN IDS | 546, 548 | + +## Logs + +An example event for `log` looks as following: + +```json +{ + "@timestamp": "2022-05-16T08:18:39.000+02:00", + "agent": { + "ephemeral_id": "6cc3228b-d89c-4104-b750-d9cb44ed5513", + "id": "08a5caf6-a717-4f5f-90e2-0f4eb7c59b00", + "name": "docker-fleet-agent", + "type": "filebeat", + "version": "8.2.0" + }, + "data_stream": { + "dataset": "sonicwall_firewall.log", + "namespace": "ep", + "type": "logs" + }, + "destination": { + "geo": { + "city_name": "London", + "continent_name": "Europe", + "country_iso_code": "GB", + "country_name": "United Kingdom", + "location": { + "lat": 51.5142, + "lon": -0.0931 + }, + "region_iso_code": "GB-ENG", + "region_name": "England" + }, + "ip": "81.2.69.193", + "mac": "00-17-C5-30-F9-D9", + "port": 64889 + }, + "ecs": { + "version": "8.2.0" + }, + "elastic_agent": { + "id": "08a5caf6-a717-4f5f-90e2-0f4eb7c59b00", + "snapshot": false, + "version": "8.2.0" + }, + "event": { + "action": "connection-denied", + "agent_id_status": "verified", + "category": [ + "network" + ], + "code": "713", + "dataset": "sonicwall_firewall.log", + "ingested": "2022-05-23T13:47:58Z", + "kind": "event", + "outcome": "success", + "sequence": "692", + "severity": "7", + "timezone": "+02:00", + "type": [ + "connection", + "denied" + ] + }, + "input": { + "type": "udp" + }, + "log": { + "level": "debug", + "source": { + "address": "172.24.0.4:47831" + } + }, + "message": "� (TCP Flag(s): RST)", + "network": { + "bytes": 46, + "protocol": "https", + "transport": "tcp" + }, + "observer": { + "egress": { + "interface": { + "name": "X1" + }, + "zone": "Untrusted" + }, + "ingress": { + "interface": { + "name": "X1" + }, + "zone": "Untrusted" + }, + "ip": "10.0.0.96", + "name": "firewall", + "product": "SonicOS", + "serial_number": "0040103CE114", + "type": "firewall", + "vendor": "SonicWall" + }, + "related": { + "ip": [ + "10.0.0.96", + "81.2.69.193" + ], + "user": [ + "admin" + ] + }, + "rule": { + "id": "15 (WAN-\u003eWAN)" + }, + "sonicwall": { + "firewall": { + "app": "12", + "event_group_category": "Firewall Settings", + "gcat": "6", + "sess": "Web" + } + }, + "source": { + "bytes": 46, + "ip": "10.0.0.96", + "mac": "00-06-B1-DD-4F-D4", + "port": 443 + }, + "tags": [ + "sonicwall-firewall", + "forwarded" + ], + "user": { + "name": "admin" + } +} +``` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.address | Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| destination.bytes | Bytes sent from the destination to the source. | long | +| destination.domain | The domain name of the destination system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| destination.geo.city_name | City name. | keyword | +| destination.geo.continent_name | Name of the continent. | keyword | +| destination.geo.country_iso_code | Country ISO code. | keyword | +| destination.geo.country_name | Country name. | keyword | +| destination.geo.location | Longitude and latitude. | geo_point | +| destination.geo.region_iso_code | Region ISO code. | keyword | +| destination.geo.region_name | Region name. | keyword | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.mac | MAC address of the destination. The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. | keyword | +| destination.nat.ip | Translated ip of destination based NAT sessions (e.g. internet to private DMZ) Typically used with load balancers, firewalls, or routers. | ip | +| destination.nat.port | Port the source session is translated to by NAT Device. Typically used with load balancers, firewalls, or routers. | long | +| destination.packets | Packets sent from the destination to the source. | long | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| event.dataset | Event dataset | constant_keyword | +| event.module | Event module | constant_keyword | +| http.request.method | HTTP request method. The value should retain its casing from the original event. For example, `GET`, `get`, and `GeT` are all considered valid values for this field. | keyword | +| input.type | Type of Filebeat input. | keyword | +| log.file.path | Path to the log file. | keyword | +| log.flags | Flags for the log file. | keyword | +| log.level | Original log level of the log event. If the source of the event provides a log level or textual severity, this is the one that goes in `log.level`. If your source doesn't specify one, you may put your event transport's severity here (e.g. Syslog severity). Some examples are `warn`, `err`, `i`, `informational`. | keyword | +| log.offset | Offset of the entry in the log file. | long | +| log.source.address | Source address from which the log event was read / sent from. | keyword | +| message | For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message. | match_only_text | +| network.bytes | Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. | long | +| network.packets | Total packets transferred in both directions. If `source.packets` and `destination.packets` are known, `network.packets` is their sum. | long | +| network.protocol | In the OSI Model this would be the Application Layer protocol. For example, `http`, `dns`, or `ssh`. The field value must be normalized to lowercase for querying. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. | keyword | +| observer.egress.interface.name | Interface name as reported by the system. | keyword | +| observer.egress.zone | Network zone of outbound traffic as reported by the observer to categorize the destination area of egress traffic, e.g. Internal, External, DMZ, HR, Legal, etc. | keyword | +| observer.hostname | Hostname of the observer. | keyword | +| observer.ingress.interface.name | Interface name as reported by the system. | keyword | +| observer.ingress.zone | Network zone of incoming traffic as reported by the observer to categorize the source area of ingress traffic. e.g. internal, External, DMZ, HR, Legal, etc. | keyword | +| observer.ip | IP addresses of the observer. | ip | +| observer.name | Custom name of the observer. This is a name that can be given to an observer. This can be helpful for example if multiple firewalls of the same model are used in an organization. If no custom name is needed, the field can be left empty. | keyword | +| observer.product | The product name of the observer. | keyword | +| observer.serial_number | Observer serial number. | keyword | +| observer.type | The type of the observer the data is coming from. There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. | keyword | +| observer.vendor | Vendor name of the observer. | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| rule.id | A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. | keyword | +| rule.name | The name of the rule or signature generating the event. | keyword | +| sonicwall.firewall.Category | Category of CFS blocked content. | keyword | +| sonicwall.firewall.af_polid | Displays the Application Filter Policy ID. | keyword | +| sonicwall.firewall.app | Numeric application ID. | keyword | +| sonicwall.firewall.appName | Non-Signature Application Name. | keyword | +| sonicwall.firewall.appcat | Application control category. | keyword | +| sonicwall.firewall.appid | Application ID. | keyword | +| sonicwall.firewall.auditId | | keyword | +| sonicwall.firewall.code | CFS blocking code. | keyword | +| sonicwall.firewall.dpi | Indicates wether a flow underwent Deep Packet Inspection. | boolean | +| sonicwall.firewall.event_group_category | Event group category. | keyword | +| sonicwall.firewall.gcat | Event group category (numeric identifier). | keyword | +| sonicwall.firewall.ipscat | IPS category. | keyword | +| sonicwall.firewall.ipspri | IPS priority. | keyword | +| sonicwall.firewall.oldValue | | keyword | +| sonicwall.firewall.sess | User session type. | keyword | +| sonicwall.firewall.sid | IPS or Anti-Spyware signature ID. | keyword | +| sonicwall.firewall.tranxId | | keyword | +| sonicwall.firewall.type | ICMP type. | keyword | +| sonicwall.firewall.userMode | | keyword | +| sonicwall.firewall.uuid | Object UUID. | keyword | +| sonicwall.firewall.vpnpolicy | source VPN policy name. | keyword | +| sonicwall.firewall.vpnpolicyDst | destination VPN policy name. | keyword | +| source.address | Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| source.bytes | Bytes sent from the source to the destination. | long | +| source.domain | The domain name of the source system. This value may be a host name, a fully qualified domain name, or another host naming format. The value may derive from the original event or be added from enrichment. | keyword | +| source.geo.city_name | City name. | keyword | +| source.geo.continent_name | Name of the continent. | keyword | +| source.geo.country_iso_code | Country ISO code. | keyword | +| source.geo.country_name | Country name. | keyword | +| source.geo.location | Longitude and latitude. | geo_point | +| source.geo.region_iso_code | Region ISO code. | keyword | +| source.geo.region_name | Region name. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.mac | MAC address of the source. The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. | keyword | +| source.nat.ip | Translated ip of source based NAT sessions (e.g. internal client to internet) Typically connections traversing load balancers, firewalls, or routers. | ip | +| source.nat.port | Translated port of source based NAT sessions. (e.g. internal client to internet) Typically used with load balancers, firewalls, or routers. | long | +| source.packets | Packets sent from the source to the destination. | long | +| source.port | Port of the source. | long | +| tags | List of keywords used to tag each event. | keyword | +| url.domain | Domain of the url, such as "www.elastic.co". In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. | keyword | +| url.full | If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. | wildcard | +| url.full.text | Multi-field of `url.full`. | match_only_text | +| url.original | Unmodified original url as seen in the event source. Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. This field is meant to represent the URL as it was observed, complete or not. | wildcard | +| url.original.text | Multi-field of `url.original`. | match_only_text | +| url.path | Path of the request, such as "/search". | wildcard | +| url.scheme | Scheme of the request, such as "https". Note: The `:` is not part of the scheme. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | + diff --git a/packages/sonicwall_firewall/0.1.1/img/dashboard.png b/packages/sonicwall_firewall/0.1.1/img/dashboard.png new file mode 100755 index 0000000000000000000000000000000000000000..7c03fed3adbc8de3058ca5518a524fdbdbf33105 GIT binary patch literal 641014 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

    &WE^Dk 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 z zFB%s&;EZtm?sHPBb!bnKAL$9) zb_1mPUv1$UOwdNtr+OdOaK4x|%tIIh@{z=);@qOl$!Kby9zWiKzJ~vocjkdL$rES% z=7%y67>;Yk^CCbpr$1)&fCVYk0|yaEd-L$`%CUqi$f~k zt|jNI(gqR^<)8@<(D`dHSPVK6%L)e6l4Q~JNQkUEb{2v|27#(cQ(aF!qaVm!zSfPs z(GE8FYAZlfH@Wy(#wADwe)cjUVea*xNY8&}=d1)kAe)uYngN*W`TB@MxNST(^E1C6 z`6EKnMboFJHEw1|i7YH<(Mb5tJwM;Zt`35{6@eAQ3B3*aGB2f2zISoy&mh|DK$f zs5E2AmJbLMVD^B$&wl7VNL=KUo&b3#?n`Pe|BZzIVuf0@YdC7mNi{@LYdUOjxa;z0U?Q3f6&AD zzpwWvK-bf9VEy$OfI4K@N?(0Rr6y_Br+%REuG-~!ANp?uI9dGUIl7&j68fAg zAdOfPJyg0m&WDNJzu=BDeU`-jZ|xI+4L}IB%3fyL#$EsK@AxB|#QYpfOC769`4|84 zpOEF7=QuOoMoGcnYyBYr9TE~^VZ@Fcd)a*x5dhL65$gP`(#pBFcq!v8@S(0;X^B|w zc?dC8U|q+|_!}DM{)yc8M7{{7u7HY-X7<%#wh5$K?>2gn&JXNdfKnW%Az$eOt*q?0 zXJW6ZptutbV(^w_4_F{ICi=1;VQUWu@D2J zhU0R!$#5}Lqo^y;^3TZYB=SK65)@_j(dvI>dxD7Z-P1gv%KH;PjZ>Uo}b0g zs)Z?+m#m{!bE>lym;Q{-4}|9sf0*_U!M}6f5eu_md+giKBBtu*5MKKw$=cf5i(Q7{*^y|w%KHRSBV^M_DnIxyY#X!+l8k0?J1jCns`C zK;39=^93NWtx~^XDR}i+Nxo%`1A+vwYcqD)1Z7|7Z7N!w;0n; zdIA7O^m5y+-{fmcLnR#}CnO-9A}5vgF)0+CObKvolmNnz$sKojnkull0xtMtd4LIh zxMcT>3N_(6v1Ft?Ki_|U9dQuQxX1>@GGH7$D-|mn@@*QZsmVtXu$45}%x7@^QKS?1 zp~|1p-d9w7FY=cwaf28h>d;LQwOf+5R@i#f6wq;ZC$v=S!bj#l^n!ZShX-tf?@kJ} zKmWQ@UC9;o@w@)eXoc;^i_JkTHhkIUp(M2=Z_V; zj5nu*q8=-Yv{Hy;C8%HI0f88x0L;`+A1|wm@&woJ8>YQMP}xjcUYml?$7@dL1GBi_ zS@^6^NpS0gksE8z8G0_;qa}lR-nr8=n%1McU|D+GwI{V-Lir>j7hNo_KNdKC6u&mR zTdyS8{drGb>W%+I%==#6kJ(UK#LIQ(>u3Rs!MD46<*4nk-LF}>`4qmnlIOp5Wji0w zXjniUfmKc0?(e7hV`Sqv(Kl2Uj+p^(S{H7|uwM(K9u$Bfq zwy3$fa`$uAH7!`>LX%4D^Boo=9Jj^*`m`SUy~J{ezog(P-gCD;q5c5Kg1|n%0sH1$ zcaTIa>Tfo1m+}j*PiF@T03E!byj;GhxtDv4*G|9Af+G#CQ%T_+7*X=&7IP7hGm68? z$T*B>7z5~5B=f{EFns?}VXdj4tXLp_#YE4XA6SSec$5Dmi)b?h)~{Q4?{!P7d7G*j z_j_OO;|2I0Q0|NkX?c}v(UNimI5R&!fLpC5C&zL7CEps`=Q7B(y4y7cE0>!`SyYhO zZe~G~n9Lc{($W$in)(_CRKIs*rAe^HNn z0cw7#6_VdRgI3dpdf|OPhDq@ok#!vdPl7>I)nJ2fCUsNAIrRsscbD_8nF;O7qF4p< z8d3~)zcI{2zgQ@BQ>3;fAJx=3_S@9zjyy*jRL@ zZI<->T#tTBn4RVl*eeRN?2qL0{2oz!PQgs{VG)#YC<7D44>cQ z1pRdzOH+ic^X%jM;mr0Q_1tx|SejgNaikW(l(+|MKmBR5dP_=5zD}mwa9aww9~EC! zd@>wa;z7)A%6p5GRb?cUHTHgcEX#p+p<7_IuwT(?;;8*OjZ8tszH6WIL%M5imE%UK za`N}A^H(P#h`!C)2;9NCni0xYEv`rJ<`97C1l0HZt%TF@B-XNXw5;3&Bk0b)XXfpE zbelF^5Qbh1Cpzx!7QLTHM zhIK)SXa+-y_+76pLzNmIbNQQtWlz=in0uif%p#ybuGzRfmPy1qqWkt|gBQl-(QNMz z7?P_Bh;k_L>D_nK+{Wd=vVp1%G#7oBw&LPfORXRB^mLE{z9FET{IQ;XPyEz-VWn;0 zC2T{zf56IAQxj-l;`AZXAgVQaT0?;$L{N>qdQxXe5{*G-Y1*_u2fxh9Y2Ju*&d1&2 zFb8z>(E0t{5uI60V%@#6a}w}_BSiOo%xL9R*UOc@@0yS4gWpkoqqDwy7_PkMJk5HA zDNjih7r>s#_nPu`eg^D2@vlrDHk7~J7|09c>T79js634$8Dn9p)CC`UTVafaQTYC7 zKOb*B+AWGZF$~8S`bYqB&fqitu;9CF;q+7h^Hk$y^-&!K6C*M_50CYmVcSV!)~k4+ z)zB*fJw-VmzWSL6yF?%GPPkFskwGu9OM^9Fva34}p@MzT30d=FE>x`7l6sh}RtpCi ze;W?r%n8x~hBXIr2(>o^iO%>Ug_bSW)k)uK0P`&27Tg|Tc@iSkQJc5JYSgmC);p4$ zRiP}xR5`tKihZ7%n*^H(G<+T;TrTn%p|~i0Wg6e-SN=3XHE2##$;1M6{5vVq2T!Nq zesG)SkdvoGIL-z#f=+14N&lA~sTETv1*Vm@`o0iv?%OO6*4U&HJB67u0XDmERqw!8 z0nd#_0vdRt*zY+~sDS7Ar{#yk;?q%=;#QYHB5_6F=#XChr@7X^>gVq7uA^c%|M~3y z{@o9PuH+=oqBzohK*>{het7?HO)UeKk&pb)$fI4eT4#TY@ymgmr?J?CZ*UmDNz?Qu zcrzr#HCg*YQpd?TMa5p;z{GQ}w<$igM=^v!#XdXKF$6qJ5jsLKh(j)!o_cbk=i96> z=t5dr-`~?)-=mdoIF&*Yx^s(%-wKhiCuCbP$?oYwc~mH4Z+7yiwd{GViLB61Fv6yS z17TowmFo0RPtP^`=GYdMMHYA+Z`yW|{l6|+?Gr4c?@mG*_%N{+IzO?nE3`GCR+40c zUQ`LDJ3jWo880p?E%pTS%<=37vA2)FHQD%fghs`qhXG&K1Ca_Xgo(NIlj8|)nAm8N zr9`-@?hSM23Om|UI<1GeaZ``9qJ8Si`!5&BQ8SpiX(~6)A=ElRg->!SABcx`8w62@ z&{y0Ene7Udl|OPvAXMYDe^-jSmaO$I(a>|9>_`ByKM9NBfYq zPgb9-v2C}_xRA&4GMV}$QJo|^Ax^!Hw_5|J{nH`f0+8!w=mjqAw`o^T4-?&k>SWP9 z$(2cpnIA6EIHDtL-*hwQf}>ImOZvx9qI#pin^WI=SqQXQMcF7q8ffi4arZ;cc7sTO zQEBDKJ)_^APV>>>{gq*W$`$f=`uv$h&%gVy*}W$Blcp8wZhDLhW1HO?4rT5W)w2af zp5Mz%i=B@F;~iJA&Z{5Kk`^MYaF_JIMd5u)_;tgNfPr$fY)6&xNBu4@iVZI#Ch}hUXd{z536ZP(rru6TU`t!HL z5y?u*>FPkxfnWgD?Rq%@AKA3j%H74yLfD-zr0zp?t|+rg@_$w*z6cWcXwH7AYM%9g zDc^6fottm&{{H@IJrS4DnrORbp7F(JR;T3u>(Xn6^s>+yE5tL9=X(o%-v~%iXC}paf@EJU%gbI#Hv&vC%t)48qsgx`8zLzP~Wg zbj9E{%O+TXBAwUsKw0U<9@TG>a@QWAYejMxd}af-e1q<^U+i?83ofnQDeFWJzu)eR zrajUAvy}gi1#<*8{cdu`%e|=G;|A+`7@*A2&My*T(okx_QeJBDSFh7r?mSDSGLfx2 zZ{1hWq_EOJK{VMmtwiVBW9O%R0SL@pb{F^l7j(~i@C=PO!nhy@ipY)L0Y}gjzBm8p zVOF!IbHZ!8ySm>~WtC!OqN{sashslI|8BbVulx(F#Kg10ns$?H`TGQET1s3eEslj5 zF`00>Ai;>prO8S}apc`keG|y4_Rmv%@U?#jk>rBTUiGQ!X|cL~2nR6EtoT@LFgRlI zcdoQy7te>nf7{#FN&Xj-!zp&6zh-6JiCXb_sp|I$AxQ%yaj=E#!&b>+n!I*tP7)SM z!~U;KaB6Ha%ySQ4^Y#zXHSk5#RV=uW(g`}B?*h9|c#@o|iE~O-I?2W=7CC{EZWDig^|en zcg#%KX=DsTFqS@#;h%jf)Y~963|BLYQXx zUCtN0+pMd9N;=3yW{*n6>U8SD@jw`7Dc%;9#$0dbXO>BoB78?B+5}OzPdE1M@3$w6 z1KlFUu|EX1dGvz^nhJ{?r$?$?`>jH)LyEYYA}7vqO51wsoru99+>)drJ76qY${6um z1|{#{Q%@%aI^k2S*1nw(JjJq;HrGO&ja`B5*I?(~iyJs#*ZwZf>QS3llb*Xvk4~W0 zv>RpuOoi}N!=9}Pmk0u*2hV(0-~hzJ2zE`Tb>|vAa4^p9IXmfLe^`ee*0Jt&3<)3z z-4RJcMmc|>iWxdm&A(M<*~~!>?xA7bZYK04th$)gXxgP$0k7l2lu#KzncB-s@q3z> zkovwb#$}zC+kE&QHGx8HZOm`tf0n$4!21+2({C-gSbz~qxtg$2BBfxN?2FVfeQWjw z*6JEc2brcS_N%iJkC*DOndJ>8gaev`a4;kUJt-JmAlApQjdA{&+m55n6m0U71ARi= zaE`hDW-VTY!|(J*znP?de@*16A+vCtim_-)@q{A53|mMMe{)JP9Kq0+qI8vq>=Ndu zZ=}A26n9bTxUnmQ)ss$HL~)H8!QED0WER!uMr$sj1hsc795$Q-{rhtdZalkHX)heG zrPZS25Gx^aTjEA<6oizdWKCKoDYy!n_vegUIB#hTJ6;#A1S7pG0`;CX|blqL5? zSGUAE65J2o%9Ro|U13-81rKR?Y}xZNman}@WX+=Jel;H()W*3Pf;Uo&y`tcl4`MJL zRjhS2X?k!rBX)W!Iq9kIiCRt1okmohsB~je2BF7!Q0C^HO=}Uux5wKX3p)C1I1$N? zblSb1NmMwG*Wgy{k5HiDx9ip-ZZ0|d9u?IKv7EB2Hb7cca9o%2a8^8pkIhfyMYX4K zH3%wukZLIaotCU%ie2dR$VGz~^Z2V8tbt6mo*wTr2wv)5@@_OQ{OuURp|C}3oU(~B z3H~H2sR5kCFts-Av4Asv;}@g!AX7bdauR{Ugm?k9lO6gzBH6oV+&B3iX)=pM!iU+_ zr;LxZ=Ok?6Rd4=tD)7J_KYw$Haw_#PZ zv_9N>YgKlRrPsi|hW^_WKf~&(nHz7`qg}5Bzs-vJDpL10zGX31W+L-5ekk?aC*QXt zAICJl22DNeI6=SaM*-P4c`$VvP9f&?x(0`d^?%nAY%U~dEmUVUl9%I#uusKj5md7q z-pa5k5ezb^*r)Td`H+_G@EbKdLZC{LvO+BUkWl<0QJkbYA!a)K&b=Nz7n&Y7q<0%P z{8cMld)*9hC6K78xS3#&NT#Nf$szw0jfZ+()?%VN89DD0((_ME>}?Hu!Jy%oJtoj} z@Kd~OI_=e;m5G8Z0)nuR`ea^oU~4q>K#nt-X0Y2us7^dd&&^HI zc7^OlPO|-DWIz9b7sG6*6655VHi*A9>@NXu_#SK{<{#98?*3J z+-mP04+t(fq~FBE(3rR%xF=PPkA*ab&4oq4YU@en?L#|-IEswm*^`U(2V@bj5j#hL z!()LF*xL#{J;R~%+l9=l@;iCU^Y!6%K(<2psVdojmf4}Q<1<3rpH+X_GkM_ktBkm< z8OaX4#m`OXaolWrUr7`z!mN&(DUC-i#?)4{GG4l-?oBKBcWy;>!lt{FD(7tx*e>|g zTmKZbU#qtk3GVxy1Co?8Uj!ADvmQbT%Fa6DU}B*SE*-vJMp*p1cI?e@9OxcmjH z%dgnIRD!Y`lk`Mj=d+j9AituLY)As3{j1is`d(V$<=gk$l(|Fgi~um&6ue>%H~ z?i^J=w~aMbv9+>ttg~3GGOxj8>MY+AaE(C8i@Fscf_-du+4<n49Xh(eFc&9~k30*0#de*o?VWjgq}Or#HGoomR(dhSATuD> zQ<|f1o%ik6HvJk$ia_CB`;IMbu>wXVR-{dgRsM&Z4?o>T;`AqCD8xGakGV!(QVf9CjgJGAFHO2{YGoDluK*qd23PXmEzRWlEgD3=N8yko8V zCe~^HV!vH+qy^INhY+IrY;GR9@pO(Evj4->TlhuwMg78rfV4=rhzLl7Fd#7^N=YLn zF?2}R3^{h}gjyrp#!-%9Qt2+{7Y1 zWKpM0l@9%Mz#DNfvm`iUu;U1VZfRT{-yL5;mpmv%(_s;Q^@IpIVX6xmrW zmJ-17zyG55@FQH~LcJ(1Zj?yvrN8Ok0|$&(QXc4S9TbcIO}*+yI^+( zSogjt0y#A?2rhSI4yFNA6JtTPp-lA;1FGC{nn!R z)uJ`_U9Md)eXX;uU43BV{_>?{(S3uLPMcI{05KWq2N~J>J5K7O#|U zN@;~1vQig#XCmlCI!c;O<&Q>uS{6~RJb=ZGD4-E+?!w`qtTp3q0Q9uIJ)*n1(_dd( z1Q}_4+=2++UG5zO@c<{It_JgXn(sqJFOzZ)&CeNxT8EK0Q**Wzj6SEoPDY1#z^K|8 zwAjPwb4UcdR{?lTvR&Pu@ia6ZwJbzXRpcx<1|ycbDM91I3Z zE#@eR?TC()6q>84vcm(QiPMH6pdPmDwXi*axio1tvB(rmw@D<7RDm3cSTvGwlq(g4&Z*!w0D&OPiGWahxKi$GSFXwg^!3(w|ygMCW}ju#Z9xj$GhXZz@z%wuwUaZO>g=Hlo_gKE zRXw9X@}{Gc%pL}3R4C}B^U1%Wl6}{N!}OVL*Nlw+_vKHZz~wzNb7sP~Q_O?=a? z3ntgQ$8LRsT?mQRv6BL;`__2uI<9}&wfUMYc1DTq6N%g(n0u8R3eB0CT!oex*wt@s z+nsUMf(M8}%LKi_OWs#NL--7*xf6P0gjbj6y=JEwC$@3`VJz&WwF~W23?a#)eh8~ihABdA46hw1-O$sSfWN57-A2;d@s>kPP=tBJr@lw!A%h6%g z$VpK>NPLx-5z=n|v>H+U6$Rei^-%*MC{JHUW$_CaNhc~d)Or^-fBY~)>#pzhr9T(GLf>Tb>-f3j@2mWIc92Eh6ClC-r3ys$l~0SXC!De zjn}bB^vuGd9$+gOFXFgA$!>Rz*Qvh(^s6-2p&Z) z*a^X=^^JlyylcxvU3v{+$67=V$4z&ov;yY(3xYP~H=a!^f_k0^!KL1@qWUcxC9k3F z9E(hMcw`xLw*|Ub0d_Qq5Ir1~x?cnwH9IapM_9m5gHjQzTNQogy7dvoO>E>AX(yxr zqmIv4xr|Sf6kZn8M>0n~!;he=Ig8ACW+LFAx223R$ooPAvc|~6pT0%{+hJ(D>mIXs zyep>mpYWz`m>sHB7Q4wAI&ij)fu!ASxwoE5GvE)I*hoTPOP9P4YfNRV3MudV!WT;I z>^Ug0FCTH}Ho-Ti;8GYDKc;%Vf}sBmul=_wj@#5T9wdGfYZ}tl{*A=t^@iOSf&bE1 zWp!V*42j#hwqe-&Ovq>p!-a9G=Z_f2GykV3P{9x)tWCmc430GxQrT`jX>XHo9RGH; zoBQOb^|)1bG?Hkr{`eSG)I3&mNyAZZ(Ck?stMp-xc-OkDCLxn^wor6CiFwI==K)Sg zFEoj0K0bo}UbN~#G_Bnn`z)DZFVRD<4sn1I6W$wjxwb54F9h<5D)f6{wv?w>kcAR} zM<TtZhtheEpcTf*G_s&{i;>`;IUOuyBJqxEblvNmP# z-A-feK(E~!8P}xZo!PrLE2094p~cG>>*ZqAOhMoh^eZn((UChyRP1tqaNUGwvTdPy4F4)LV`Q6`2)Gg ze={=^mNvYih$?)_(`At3xL(d#G8a<+De>zduV)Xv-Py>(e4M~4&4}&DFU?NaA zy~`>(Tq}LW%FOYuztv!(ZgqZ2QGn(S0r3U>N!JG~Jgo5eY(?J9SJb-Q{q!6#h1Kj~ zW`xTYmHUh`1 zcI-exomHux8$*!$fT7RlC&9;cp!*f~BQ(+R{(mg7_}GU2)b^c0TszRa1&+hILvbPZ zlGWi42Np*tWXq}bX$ecHu+%>G`~x&N_KFnby+_^p^(MRI?{I}lc^g1kcr0?n0P*N} zA^5nYNKj54`?ld$}K z)#4dXuJiRqBdHmE+KgfRy+E(68DY38>dyt#zsG|(^flCs6W%ewKX%bp=z=YH{V{{Zz&43^^L-_t;L#V|_9FpTGGhVSj+NPw&nJr}4?z=no zX}kElzgF6O$@u7sAK9WLXc9gEX7D+6?@eL4`vs)v-+Q(E>u^3V6)`UUV=MVMV$k#W zCK16Mc~v*)k4goPMYtJQ-9IfM>K-V}R|$pggY~?nnll@p&U!IRhq=@Ifu+!=v8WdN zg6PVx9(8Oz_3jcrU{VW(o3;oB@&4uuI7hAF!YXANDyn_cu6c`MA;xQt@$BI+w<3d5 z3G-nBYT)jzRtDQ9#(A}dm?Rn>U9X~#$sXG-pe-6>LugRmgSQ@7dX~L|m zM9AA!A!?7Ho;)x8BY892%bE$@ zUoK}ZY(zBpFQD4iB{;3UDMwhY4e|-5PvH<+^7m-XDw0-o8gyE9HZ0m$gP`w{@b>UD z5UK4Kkok&g0LeW;#yp;x#$E*Y5wQ-LUGh zhZi3kxSg=T+OcV`nWd>h={UZdL5_~@){`4@}_xD>Lf%wzZHP_fB(zp4Ko zMxQPd^f)O2H(X%ZW9Yw6{(o=4SBxrKbdpu=H*GnfnjuATkN5f{ZEgccuQmi&ZIVbK zvyL)P9-GVHL&virm;=u&5yku3Wsk4+;RFm~lgA#8p=P$J6G_0!WosV5D0l!|S>43i z>c{0JakHr|R5l1M@VXLRMx(PlX0kIXFq;)YHIno6mdCU9CTDvB;4ZS(G;mU+GBq`H`q5W|1ziy2V1%LXQFKTo>3J!V481A83p@gd01|%qguq z4G_X^T$p`mxyxdCkBPPO6BljSQy#~x=W*HG}lD*q7{tq8B2h4lY3rRX{2}>{dK64%hs4H?9!ddWm8Wpawl@Ih^xBA`Sj|3Oq1a9|C{hG7N;o62^{`0 z({E1yQ=!G0v{R>0TpssB*vt=iTsKXqed~t0nkgLLH!Kk%V`}rmaAf`aHqH2p(#2@$ zUe2}k0``?~AuICy_wMdHfw&-UVJ3!0UeMZFkQ>tz6Oc)X{d*4nus^ZH=E}vZ@TP^5 z@(?$t|Hn=E{jBL3Re_);Du+n=QLoSPex^x==BD!*&5EEwn8Zj9$uN%5_pvt$b=RE^ z_Zau1q1jXqC=h9kXb+Evr}SF}-w2<*7zZaj!i+kRY5Pm{^Qet)+*^4Tr^1&>htuB! z1BKr~{^wB%-*I`n-w$&^n=-{MN;6%BQ#yw!659!E7Tupoz963Wn0}>8pmj1zqEyH` z5~ujqi9?RHVKt~aJ^=+Ab;L=ZxZ8y=1G%%B;>*S@D!4W_-rLIY(7f|MCF+#&VG+Y+ z1pFy*2>g|xw~qBLEMwz+z)l`%iyjK>5VlK_kgymS*q!fW*0GN#id_Pt^u_@Z$5s2J+6c zX}7<)DTqe>H_#5g&SBBI*%whLs!PHN47Q33?(m|yBMs9(agzFOsP$c0erAl@3q6i? zTh%>K7_V~(pSbgrPg3c(?|mBAqc807P(#X4^E3miPl;h`>*+l$-W~~y?gSHB>y#_; ztKetDJLw=6F$lKuC|O+5!Ei6geFKc`Z3%bT0CQu~iG4h|u5m+G$^hmoru^Ttl+NMz zrDlaMAj@ANlW)MLv;NT)158gXdOw_tP0hp5d1QS28tr6NcfbBy8f$`7**6BJ=FvA2NUwW9dmw>gPm^Yrx*6mJ4_aTVhQyW)w+f_|CnE=B&qB6jx*URzg}HcIl@#ZeZn0K!R!y2s+1`cDkl z4MaY$OUPxFyi{q`J)eJ#uQD!B)y)=P;b5bIPWJPwUPJN%od#8(A`152CBPl5A@;u` zPq$;k(;=erSX>?0qVvKh%Zi%+g$^4v&@+I_f(5;U(w`E;Ue#^(y`-UcKAi4GaaC`= zemqq-&2D-c#Cl0HE5DXsxBl`YH0|(jW@8)o%Y&nTjQ|AOPTu~H>j{gg1;r!{yHS4c z`#Y?yeP4Cv>U0(M!Q2vFq!nfJVJFg^*ZbDR=VhK=i_RQH-Ch;#VzgPJqc|dmbek9~ z^Z_p#XGK5FI#W4^#|1IJ)Pl9RFjRF+J}y0Q@|@A7fVzsts{!hLIzV??^tjWRA|9Y^ zd)9d-!{}{FSyU32ep#`z++1}`S{q>ueaHTK@(jhj+C3ZS3}BSN#89!XIvl58F43Y| ztERN$MOeXl;2(AUp6U>e=tNeQChJ)9dXbpk*T&?jVZLNM^MCw#BuLbV;wTt^H3R2y zIFt`vwo-NB)~jLAa4qf;r<3z52%<5CqqHt(32vZI)NIpq4Lu)|d4LoX1MeN4Q#V4g&76Zd8o9g z)IZ=+b?$nGt9JWdc58p~R0DDarBW&_Bnvy{92auIGVi?{#!XCIS zXDF@jPrWY)#y16`JkHxCXnCvth{Xu5RHOn{!iTZn27HGN@(+-uCnb4Z)1l*;^%z?)B;^0MU&C0ea(4dD^N-mVFNO={72U5hmPrAeFI(3+=7L2nU= z@vl4=@YlE*ZtJ)(R84!+a@NZnb-e(I5eHl!^_H}Uv8%wUY2koPY@~wj9|=p{EF}5!F1MUWh08omQY9%`D#HIn4cuUoxTd7-{+6^QagzJV&M#-k zm+;Y510wLOac^35&RXKaQ8T&iXL7_MOJ(F>B*-2SDA%vL{W`>5xR(n znj}rLLh|~|_pGR#Z%P?r_4@tF)@S-^$eWP+>g0>sgQ=wmJ*KGi9=0TyGcGSC-ifp~8@#N4w*cs=u@{)uT)u_Ha4gzSES={oCruJ-Gk( zUXSfV_x}5EnV2s}Y*kd!Y-vUfYW$SxYNhj7aJ003$2!#ptS* z&$F_oyHEiB;CUswc{VCVT#p)p&kqETWav9~lN$t$$_#H}ac6?sM@rv7uiKKgb@)j^ zle8`EGTaM^5|@wzN5SakkXY zj7{0q*41J9ZQm4!G45DLcWZk=bu_AHA=3D1u`6o zXl!P2Zg%JT99N8GCYEY5;<{51;k^TzhIjY^pRJK-7Ar7GK=aTu8BcvKrnH)4s>h^h zx5l#xqk*=v@(_hYi|g2*^f1ZOzJ+=UdN)-DwWe+k>DP@;hZHJNY+iM2zN62G>7Z86IsUr_x8w-aDIr6C}g%*;_D&IUgFCr#G{3{QvK#XbTyqSZXB@URW&+&ZO3}iPQ?512|e)`JV8OBk!5Sh z_L^949vcxWge`mNem@~Z#^Y1xhRwBmmV0FB|Ks?4N-p-TyUw_DpL+G?OC?Xv9vKFE z_F|JaZC=t3-6mgj{}x54lx_K5%G{~?{1_<2o>!V>7}%nQ3rJ{nSS01UKH5;&q#!ra zdtOeyXA5TAXTuxlR87-!eV=g>JR;8+#IBF3iW5w62Lb+m8}7|NJd-fu*!^q3O)f3e zQTDA@zjSTS9iE1ng97QzU8ckv=0){fm)(l1Tfc=;_9wTi_*+tC+;6e)y5G_POh@^L z2)w4yT?tmJzc~v?6=*3!L@UK6T#tXqyO3i`Q`)of$$bnyN&KZ2N_s9YsU5`@qENlg zst}yhrR-R(7#UIcmC0kC~MPd=M|5= z>7XadRT~-^KOn`|zB6i{U>&V=rjZm-&MS8AkK^;3CzL(51*{lAOB0J1Hb5R6d_sj+ z)^r-GYh6-X~dhvAb1G8mt# z8sRWV0^IZiWg$^`!@^nl{=Xs$`htM3?s1ErW3eCxI?&Pe?<1L7^V7{b`)B&eL$`=@Iw5syz|4)DWZbx20RG% zl!0!n&f*b@sBE<}pZ=$Wna9^^ zCn^vv(#%Ou1bZH%htt!=1ZN%`;xR=AHd9fnruARbR&q~NlUi1=ndAt4xrY3EqRD-7 zHpGiC^7;*EU9SDBipM*QM#cfo{kE)TCEslnJv}Gd*8HOgpHfs%QI|_S=bX=d8+|WJ zCi$PuSf2Q(_F#wJbFNLe@}t;{%sk^}A^v0tc@|$ZK4g(vKDca0|6H#wo$wYt`PhGG=!! zO@n#-0-BD;kZgJkFGDt@2~*x#{1xxjW)#au{qfqcDXVbMQL^K2N9l)rvX=RG8y~{V zd^_ax)b(@;WyU8oIo4F&T?2Hd-Tol&(QY~|0)x39jkDwl_3uZ!G=%r0eE2-r#pDd- zqJ0IuTk!)W+fOvmVG5TBGyfQNBnm36NT;%(4Ei?5{fF>(Lda6jFh4``3u@s!%aDRi zA-PwLxGsL|Yhcp9Q~Jb>ZGYSChSDu4o5E>YiWxhpBnm-jd9xf15u|!iM>lYS-SA)H z)*f|xt{0E#a;Kl%JJ9Y?Jb?Q~c?Fto-&?6YY#bKatyEmRzz|_-Od5+V50AO%=r^YK#M zVsdVCzB8g6D~TX!rcxwd#7?s#e^RHFjB72(jt^)>R&ajK8i((;)j7>l50xUc+pHF>av_P4WF{B*wOoRn|3h))dPLf>*yydJq#o#ka{ zwZzAvL5-0TzTu7zdur||tFhHjna6RWTm#95>Pu6ra#ez&V)%{chU@vF`(oP<&!|Eu zWVgS_=Sqzr>gQ-h?}%4($?i@{UMy23XTQHooob}E z5Ev9rl^EbM$t>{2=2%n^V*AE6%C@6c{A=b~&VUMw4anBJw)sqA?N1N#ITNijLN;M+ z{ftlCw&LfPa51HJ#6r=$U2ytQ1E=MOeVTFWu*{A5ggg*i-}uhfavDD#os%SXiu!64 z|F;DaREY51-IAUf36ZS9WA;hZ({M!|`$t2$pFC}#BN>SfCVHsp2;V30UEL-Y3wdC$ z@W-aJ;z!mGD7S=HYdNto%rZjidU+pli2=kaA(k@t&#Eb}qix6{@pT%9!-$MQk&i)S%GoY*67(s_~+( z5f(wJw&SL=NLqf=kSk|CLb$13LHuZ#<2Tm$pdL3d%2+K1JBz?}OlKnQHn%{=FKI%b zAF4H(?1{^&0rQk5ZyUHbEZMcmOtnK>S;UEMocDk7`JdEiw_29aSq6tgzALaL7$6e7 ztjemBr_oFpHlpDH)2GA|P2=Xeo_e){UO{zS5i+Ujw(_Q**;kpUaQ#22Nh;{^E*Kah z%^mWPqbxj%G^0cudCl&5=W-ZfmCqWSjg*M|AH`)363MS@u=f}Lb1rpVnR>))!I~Ee`YqP zW3y18>4eRLZIex?j!k=B(zxlfq_nCzIcY0=Qv27Aju>u~le?Gm!6Cg~Mx!omo7*5} z$IT;~=-(9PQ{;D2a~%)=k?&sF-lUpDDm1+CXGkIyhI=+N6bmcG6H%k}@OdbYiR}tS zy!r(+kZm61OD?U2&zJgKTgAPyAM4O?cXT&D<P_);Y*UMEUG}oyRxH=yl+~pBK|-PTY*L=#_Lk!k9haXxnHk}1>yyjx)+(4CqH#^w zw$wnJGKnoRAFj;`6<5r-6S=!#`WQ4?4py=0W0|~gDrVum7>lb>2`Wlz-Cg2vo)X)# z9{|}L!3VxLx-(FZ)COIOR9)VQrEJS5nwS%7{*J94G%AkQBGnvtpGHSFS$v*luzq$! zn}0VMN+l;NhXE>omNGdILUL=Li(%~?t6yvaFdNq0m7X=@MBAgueQ@@ClFfdX{~VV1 z_&b^**D7c!sG-Bjzj-aBBMcqT&D~cBcNn;N(HxgMozOZhvB7T(Zl1c+dwOKtU^2;j z%N8+GJSgCo?N;#$)z$FDi#^mSVg5K5*z@};99s(4>abFGy{NS|6)lAFjTQ7ibyjHR z4fR;+vvrF1DBOHjRQBAd5RC4@G5S4+8pBsb75Qu$c#fcA)q>*KqGs)u7Mz%tSG{FP657Rd)r4eD>oI`$Qr(%iEM@Ww4!Q&1 zxaqyV^J}>>Q>(X5WlwAqeQzl)o{eUp1>OaNAB_fc?Z+WjSK(IG zI_U1Fm^cz0jyl3ydbcDd9=a1!z|BHEXnYUz$RT;5u;K&(MbB(iz$Y^32eB8W*EhaG zkAC^s%#ldTpJesr=)U*?Mjc=6P;7KgbbaaH@g!f;AA9E>;khI_Pe;5Ymag^A*ttX| zXZXwks(vxEMHVHrmMZ{Ly)=ybSS-+236_!S}-?9pA*vyFuuU8z<=}gw=FdByWC4`fj!au6lqW+A577~dfgDUbu~60r z0=GFcL>tOJ-u=pH`d=>q<2<~(yz-N^?)iF~W!*$$YA6avqS}ic zLhpWf9nMHxU|?cosro5-t6qL*DFDvhKn#PcamUH(-7;;V@F*9_>Ae1L+>syfDC7Fq z!j#t>nMj)oxhG58Vi&1ojOXAZ{P%^d`xGf1xM$yV)gM7|U&Y%@M6w8~b#Lhqb;^ts zO7j0^wq*0K@!ov&={79LuuT2&^-Z2Qx=|9bWhbNM7*TI3{g^YMq#0?t*Z{Cu0=RPAo$UahW;+HW@W+vkZp z=dkn=h6tF;_bU`8;_cra(_WWLUci#a{X+0~bf{JzpBiV9A@$|^E;P!?92aVWwTkW1rl}&ImFVg9h4o2dDJ_MUXtz%x` zTj}Sal>{Q|S;VV5IIj}LUX=amar+61v%4j7`Nc|<(#391AWhAdgYLb~C#_xI^U50k zl?iqF=912C-qYBULc6+Z(>=3l(;qfM4dw3z3s>|s&x z`h?jTQ(n&fT&wwolK5}zlsG@3FAV#%*K3mQ+gzFf?w_8*p7l$6t3*!sGI&8Fme#^J zJ6>kO_CvrWC#;;+^RaNIeXOjASj~}Z+zlNl(y|I|Zwh;tIb3q^=3MzS>mincMt*~I z``)kRTCF-`FV%hP#WLlZT7IEAB1bwkvC-8YS_M|!i21b7YBa#5@q8TZzn#whMdUcT zjU!R|j{gq}jZ?fty&T3@|7WwaG{C84*Xr~b@y{bd0lV-%Oa@oAl zuTS21Uw*b%F20)0S4i;v9Bwy>nMgY|1E@>J-)Y@zvpW7N07c!c+d9ZquB62i8JBs$X_xsVJE!r>Wkr^I1|`Cw8hZGXX9SgjMT-# zcbl?568&ugAZgPUJc75;opU6`xQP09eRbeogCmkUXY87J-frb+t}uP0Eb zpF^1K-MNfrlWLrs7HJ?BoumT37sU%I4%AE<2-PEFM5EhJJ z+fJ%Y+gvM+x!zs0j>%30c>4L|3vRxbn0n&okihATs_8wI$7I+x2A6c8*8s8NwLei- zt=xlu?&(^>51y@lq&r+d8jd(U8w74?7+{1mh2u`f&TA)y3VES8^e8Z)ak!NNHfNq% zZx207Jpw-6M4>1mPY22wymk)BQzJf)&QG5ACp{0=1d~sFteJ@g}_f zx*6()YeAP`2N9VZ>I*kJnQ?J|@x7tVCts@mEsK65Sx5C3gPOPcho)AdH|rOF*^26% z2>iJIg5Pe+Zyrz*(ob)E)x?XICGoZj;u(>7R;=M>uc6VPZP- zOK*->>ydnF*T$OMNWwbHyCb_T5Sq&GBt24YlHP#}CC4sE(w@>9>Pn z#RT0u$-DwaG2D-VZrLFIb={DibV$Ym>LhuKSNexx0H?sJb?lTLOuKS7f4K!M0_#rw zze4Zp*pqLfQE_C26pS4a`pW~GPUMkT#vd!y2Vu8=Ch$8;k-7%|_V-(2$O3)5LfJE1m}x>sIWaJ0OL(E{Gjnb2D+$Wi^yZFhz- z1~a2?3;Y`U_?*tVW(&1en z9bG`1A#`TR90BqP^L&Va*~C}2E`Se)mW+ZKcBLcf#&UAlpIc2m-waNm39!Tm@TAqD zP-T?%tQb(I<4OqDtAQQZ!w!@Ma!EDW;(S zmUUAn@;S~AdNl6UPWwn3M^Zm?wk@#xgLsCqrcItmYDPH6ztQo#s6mYHd_U;0;bf9zj z3u)R&$KZvuI#fN_-FGkGS~vfr$UW~TSSrp( zbeq6g9=4SEc+Ltz2~lqOZ7RAcma&38wsiZ#t*JsVBAcCGn@wqGU2G6|2cMtcpom_B z`VQ?_P)@`9Z!IX)v{m$S)?^7Chi(;hL?wEz%-d&-BP=^PjF3uqFI`MQ>Nj6>#rEry z!o;q-UrgX{oJGiVz9LC#NG+&n8H+d_*VB6yF6DXoMmC+j6PbwM2szcJl1X&T+ZQ_<)wzAO!|89)S-H5l?45p z_cms6w5VK_)5%u*+8-KwhJIqZqRC^z6J)uERJzvVJj499#K&G8#tw=lw1%2uqO!HJ zd-jrn=Il3o3E5=MVL8J?S2xBie$y}^`?zGx#=YA1SaJu4Y&1HJ)&Z5BO zS!_dIvXQ83s(o#t_h)Dc#Tg-j!6f(m&ytu=`1j5BG+7Vm&ry`Ha_RsjTskI_*hPb_ z%bP6j7eyj3d@e2^b@U<(jX3A5meZI82#Lym9d*k`afgq+D_1Lv(&^sYexU-oXGFI>c|@^;Jwv z5{6kqIw6~+f-kyxoN<2dQ3z=9(>bmvHj{VMVh}KnJR=&%Yt*MVjNY)HDY-i6y%+lE zc8??AcIU5ZF5cQQ>BAa7J%K{_{B%NuM414io+J%Sn6H9gNAXu{GP1B51(=B=|Z*K@D~nlt@F^y6QBezWYycB@}L4+o&5 zaDic@Y6_#(!MT}|t3yD%hdJk*Wo|@Mb9OhyHV&G{W@pJ_6Su=|cJQsmE%{oS%QdPD z*@G}rSN%8Q^GS=ZAZ1u1P8lV!U)LXT@(w~=Gk77rfUKPH&~_>Ss_%ES z(@}v76!LRbd#G5U{zBAN=ybRE2J+88A`^iayHr9HwPOk#-+ea{QT(FkSc@loBG zov3+_jKEH#y0U0z2MyN7l$8im3!fkh z!z*0rw(GmwA^jb3*ZsW;{)A#^3{t34)Y-!3#=%JVHHg9IUD0^O`u*)enP?R) z)Ax5GKi!nxC|-w+;=kv!QNvvSjq@ynn87fqx=EH@}GR zXnJgPin9pe!c>8AQ9@yS(h_W@Q~{$O-I*i1DZnIb0JpBb<6rZcGX|bRJK0wl-Tvzf z`yHf}lux66IIX?LUVrUL7}k-T&$q}=FaA>(rAMKpbv=m!UFzTKdr91DDO8dQWw?lH zgdWC2%RF+93avM_f9za_{Z^meNjfPh)AcNNIVwZRjEB0-z<|tD;0VS1;j}FU7pqdn z5jOE5NSm`HKvQOe7d)DO24|k4H^EskHB~_W`xSkIh?VR-W4)-XWxwTis*D0o0jG?p z8a0Utp23>!Yue2TyLZ%V-WcdZU%gzg=lSD~($GCLo)4BF@wg(Qkb_CsAzJkkdH?uh{`ji3{7n`OM%fqqZdqiFM8PN z(u^HDXZ@%CJ26J&spRM^;t* zvk%23edBLByF#Jm?)rA+cg5-7&(j^c%1}-&}T>*KW zpnL2hrK#OR&~wL`!knBReWQW6T0+3Ss~l@A>eqeIHt{ zCHO#PM)gH4=nRSScQC<_@pP1vT2}k_si9*8-$VhOS2mtO z)SJPFhKlt?MMd{N1re^xiynZ~#;*-7kWLSc%SUUAzM{A_*^J+~CigKi4114{SFN6% zQP6?wHtkQXS;~%0WYI=)!e>FyE)uvlnm&O7x0cDwZJVJ_C8C;A?98dW%bcK1?HnTy#K<`t9|9&h5-z;?AEdY zuYiQN5o1Gi&!9bA#C4sKvlIH~!DnK*|0x|dNT14BRhVouj~2G^`=!zYvn{ z0d^r$ZiN`}VZ>G}KB#l|2K`n*RI+KMH;)z#lRStSrgm9t!ors4mFBiAcBgH7d#CF!98mXvSdSon4-l$a=qLh`RY~=|-qjbA`;q zfCHz{WyNj(3H{rCD%sA!uZQN9y*NBM>g*uCp-8tQV>85bP3lhSh?-$jI2B(`8*P4` zqU}*GF_546-CYJ#qwsr_WI_Z(f2g-KRefi=7NW(=5D)(kknCvW((`H~dLzTcClqa! z=Ubda{B`Kp=$gzXCjVgC=)Q^(vual_GCd(_rATnvkYM1vpnDts z4boq^L-kvTiC6m<>R_I5qZ-gUZ`Ud@*7Gbc-}yWT?L)NQFi8BhQ2_erTYIv>OSH=D zCOWxXTccuTfw(WGS(P1O;osJ4tp7E|pzrBu?taMv5ug}F~zGE#lnX&=zp z;^EBi*P|sQ7g#`$CSGOfktb$pq5X=*q<}VG$OAV=P65e`!yxDB_cM5GBFK<+!pIJD`ey1z8+C0-YVLoT^ zJ*A9}q6ly*dGdwNBIi$}PQ-9!a)8|V53MdqU;LBQbtNUj@54 zFRGxM-ZbD+#M@Kvqk2j&&_ZWq;c$h-RU0Pp!p=ut%|zH`v?w9v- zI^wgM60}-iO57^XVNB_rt>+*71#;}%$mkz3(QcO3iA0IDL1Q6|EK&EX>5NTx5~G&i z-VqaMfUj2RG4W~mGOI!J7}&s@*ZvhIJ-7C*KRLc5nf*&&wc&}M6E7Ea$(mfnG-;y5 zkUuN?Pwc`qxF@s1wnl3~(xnY-dv9-ueRO zq(R%n;-PC+ulN3Zj*}c11SLyn;D|+dB+9Qy5bW30;%T!}TEAv@by{SybayOv&{BD9 zaP*5c6O7V!*)M)LaGV%>0ZY?RVd!#kkHlwB8!inOdsIV>esf--e{gI@=sD27eGIJK z2*K!tU>A9oH<-eRlq`bZHERDfusMssxh2jtNfPu_x)k#%r6woLuQsDn_`R>|L>tQ; zPjvcw-4~5_TOse#2ybQ!&}H5934DEHWtg~@Z_(EWj;#I$*)KI0uI3@MbOOfK1i0fr@YPPs5#T5Ci|M&f~I7Mf6+0L8-(J894_mIv_y z6fS5gy~25~4_ykPcc0+pf->a{_+F!;&xk6mYM=pjtKLF#A zZ_UAn;>jOCUeHA@)O}kGX-_Qu@e2ZsC1D$@R4k+cR7aJji}4_1-Os}$GZ5$6ZsQQU z-J3B`z(R4qK6Wx;j?Mpu!*l<>O*eW9Z*g*CnPbS)2N)mdXYBTuk}c^mGP&p`1dPNG z=p%f#3E-3qzYxerz_`l$j{=ND`Wbznv4=&TFuoLjqR|nq^5HTZb{!X(uJDO1ggyMo zqqfM<)3;yvr0kn-zG;j0ELo2=gK-}_p8J-)%gJ2)y1fsI@n|D+3pVqOM{B5@0D>St zLFiW)O#2HY>=vf49dm@c@DIOnV|LoZR@mpdx8Hf!r{8$f?cGyP-0x05<7~I_M%g*z zaG(?|xynbb!b6uh2~6R6VTwy`lEC6D0VWTW;(AjOP^xMB^XwB5yvU9L*kHff9@Vxo zXCLqGy3oD*-Y0J43PYN`*iN6TvB9s}2D#a$2sYF&@b5Nos~W3SJx$@L>cM9mW*eQR zTOAi?xwVIPCJOBsAa4d=-oYCi^V)I9>y?aR+LgRzHkRdYWM!7XsU(IJf%02@%Wbm>DnXqHq+uqL+zW3z( zfeygLj{(D{rN&R3V)WTh(LYe^!ZJ`+ei%-C zUky4ks^FFM#J3j6lQzJ+lNe?wkdzB!kzL-cx8B;*Rr$x6A<2ir$(!8<_~)HQ@@GdB z!;yyBNej^UO28T$^mNiI*9Q=^Jmn;c1N=InsZg1zy0zK<0QWJMhQ`UZ@A+ zIf_m@z_3An^mC0Xj3+!JXXKcmZ4yxXrX3>7csD$x>Tkj}g`GM9k9naI*)#f-t0Ah8 z@osU(ljbUa62j_#uR0Vf|=qit&{;#wA>|7&rJaUJ%CkBYH~zdAe(@xrWbf;J^X? zW>r5&SqKZ#RrW3`5SAx==GgPafB3z-=Z@Rms&?w4w~fEWplRtM#6aGG&=ExV3sLcF z=VHv5b=|-3d%!*W$_H-zho86u57^KB;rHj8;rNLA(T~q`r=0R_KhWh>5MgvYfpFw1 z95*j4j8Fa~fh9=-e)6!Ri+m!YhfPYn`^Z9&^-ABLI2PBpccw651ab^cpYF($0|N)E zQ7AqPFau2yS$^0MbNhQ`ZQ#H`USV6B`x!DqQAA<8?Y7$-9~|ZwTL1q2+<-nk?bzW1 z?xve=a)0^DUmS|$2X@qhj|p>JjkJ7-_@Rd$@)IF0--2SoLmB41F6i-2l_o#lv3SXL z&w81`!zD(qzxIl|=dRoB*v(Du9a{}#0(jGQ#a@5)Mf*fZKljF)Z@IhgzT4B!t7DW( zR%aJCpsg>odB7Vm*1l2PfVeGc@>4i+<$W-Ag7^(JfA8MCTBHl*p|l~b9zCl3IIc%C1Fh2xeeFYtowScHHcZ5W=F)_WTNKnoxZ_>>7hZ3hJoV}zA^ z{ZQysE~Q28;L)Z-IY3Li3O6htxbTYts09xE7-1M%7*!baDDAQF3vFm&RKhnv9=z)a zKPs<}sPKK$Eez-Sg;epFK7y~f4 zxym29q+#Wsuq$nMlV|D<8ly&y@?#0cCix?4zBR|~j?~BFk3a4&=irFklTSYB%a07X zyaV2m6=R8vYw8SzHbL7Zpf*AKlRuBz40}yv!lY?#%JiA`%1E7^4#9An>c&r+>Q9Qy zurR&{%qf+uUo=q(Y`>YeWJ_0@f_?XTD3O=9vi!~%@Nt@lusvQ zN1dA?E}{>}2ICP~(>GW=p?_%nfNj+Sc=5PE7-NaX1mTlLzc38HKy-x{yTZd&ocy?q zmoj{L{vtu+6l0j?#KATvG8Ziq?4rV>WIM$cwq~2Gc^`k{%{F%{jSkxh4_WE#S#8(n+k0^IQa^E+J8hQTQfNlt zkYy`daqMDBvCWMh)OYBoC?Y(o4`&!l$6w0LxW$C<*T4SNyX+JkbkITWg7YtM>#nz+ zJL|0fvG*pn_6i?dg%|NJe3f6%qywOXf&^g1Q--##`a?5p2gqQB6;|*&hrF|h(MKOw z+2NmsBFajeq1;@evDH>vc|&v4O*i$=$mZYw{XxWf%Vr zBt|2#ly(tBvHLB6#F^ePV^1v*T=@D zY?5Y(gGMn>9C&>iPsdVoAEtdHKNf`;>*(L~9rg8aoT5L`2U)nG z&cG=(Z*)|77@HUqm;)G#;1SR`(NX!dhEAAwJa)#siT_XRQXu4s>}iwR+XXvHm+ireGgBD3*L00)_s)_r|&X_utEbg>k|kP-0=V7rJ-7Y~$UIc~qj@KM?&8T6xuSh$rF6?fF@-_iQ}2PP|heD?U^`s<&gnK z7Kd3jy9x7Nu-b5AYuRqU z099u6*=6VjU{slB3VDOIS&T`J*EiH*DB7nm>={~Bc3hubMj4ES#OARkQxSkiUKo(H zoyEa`)B+Uko4!GN=f@aEf1tnPGBywE#)5hmZufM@{v#~mZmJP3YtIx>+q3{!geuafD%z{J5(@$xN6@+-< zKr8fzv}1pzcyYS)oFuR~NubJBCON5UYvVS#H1)3rn}q0^Q)brti*UNw0~erhe1^Uk z_BZu0+^}EDFIRXx<7Xv}0bKD?T8LX3fO4X!0_+l^R8FxQ$e6(RhSU##_(OkXH?n4j z;-r&Ka+h6pnOA^ikRY=)*Id)T+k`@2Z||@0Qa!Y}mHPhsA8^YKTGp*<^dEfiL7x{# zOwKy%EVt{fyZYTsb{L>@!37t%U;XMgw)>gAv`@Xn^$Y>>Ufk-4cGjmSf$goN|i$?svcIuDRwKf4q`~6c#=B{o)tD@Wv`e77HoA`qi&IKV)>r9d~$x zll*D3y#Gg96hiQMukn>vUhxYroyfN+fu@GQXSAP@M#P{)YmXglwQVjN?D z0;GBP;fKBP%`x=RqeuIEX`j>qbxuBvJsguq_S8RRO3=9ypwH1asO$EEHHE?nA&kOa z_Rf0W-aY*>RNi46#BV@9x9mVWCT+{8S3GW%>s|Tjob! z=xAUZrO)KiCJtSM{=@hS9({`bsqsAQ`-~-@7idxH^USlO%f{S>@!QufitA-^W^Nf| z^I>*+g~rmd!4#kIK(`9wCkXut%X6v3up;wt^1?#;%Db&}+LA7hrxcbX@I_02-A8@r zk?zQZR$X0VO0FGeoj2EZYr4AHp7vp1Gcs8znptP7-&}xGon7V;_s6hrg#NIc3MVg= zYIYOwE1Ury5@y8$UcLz{hQO0pm+8;CnkfW+7%Dkk` zFZHS&c%6E%t=vd51>$;XX< zcIFxG`s=QD{Tg?PR4;Ow$h4}sIMfk*vm1rtzQT$l+%jgwy=6PK^GqHX<>B0*GKOK4 zk#NGo_}EW8vf&*v+BG{$DD}vl-`KJ5+U=)nxxVbW+drGhy!e<**%4h}?;*{%8;(P| zmB<%-rKtp8IPgn7(grxXe8w4Pc$Y;53|(&C#CYV$BW(oZVq0r#H{N)o{~j5J4Le`# zP|~KP2xA0cECG~_E9cqi#!#cLvvUTH49auPIma7nES{{k+G_r&B?}rD-e3Rv*WGES zo#wxb2A}j7E|~e&x4z|h!;j*}d%wpWcbqr=kU8%RB6H}llgANl@Gz_}nApXn&0}DJ z2R|r|}ifIORS4^wT|G$Pl32a*BaG7pMNMx?0>^+5n3Mw1M`>+nQkuU@liU?X;V{ zf&zr$EfTdM01duxAG>kW{(UljvRl@SRF2A)1Ns7Gr#;g~)vsvN`01PMjJHQFF%R@X z7I1W;Aso-cdf z`G!!!cx*BnNdVE#gpfXsAbbw<4;x5l@{?#M2`p+7;8-7nA_FX|;@pJA3(&oK*-@{F z+4s*-_GZ5KzI)S-QLeuFs$M~1a08#+6$X41Kn4etCmDgzMX^LVW1?hroXLZHvJ14)p`C?4)6cEIW9J zH@q*u{4)D&!cV;c6qg~dY++cQpD>gT^1&$Ky;JHI<7&*9F}BmYn|uDnm;DYS?Z44> zEM$!W_IUzzNWHVe#d~iTUwpAU@4WMTyW6@XZbyeS-GLk?vEi?X$Z`ei)DBaq`J_fsh@0r7kwxY%{mqa?5$1 z7<)n^&u19?ffvRj%0M2JmAuIdgBjToM*qRMdS1%b-O?`T>-m@s*o-MVg{^61ygFOFG}3Px;5j=7yO z)2DRWLhX$<&iKiXIDQ=g$d<(u5P0klBW2^Ws&qHTg0uc?diux4C6li2iSscHg+oCqQ)Z)N`T-$FCZ^|G>p7_2~$Dg zDSj58#ljVz+$4cTO#)0B<+>VeAEn{M6HoLzQyd>#Xv)temt1U!PKHcam7O+yhU;b%2ZqO}QKNh| z$PWb_rM0KM@WKwva64kRvnkpfA;cKx(hDZs5hGSKLush%(yfP2fByOBd-<{pK|DNQ z+%TDnCEa zrXMkKq<;^HMGGeWaEAz`ADQ4{xMR#9D-1*0CqTPL`C;;7KEW6mXGb5|x#dz4jC6K* zs3+>2@fX==y;4r^6*c8)95xe#F1H%9~c#v)1M$`%RfP(|z*UWdGTZ z>MDE1!Qz^FN0SJ{aWC}K23a@)muYj=5D&>#+7N$>~=H7VaReyAK*39W{R1K#( zYz}N3yP#FVc+3Vkkf>08@_SDw{R#6@ev4YgbW+h1*`-VZYS*-RhMqa~cJYG^kUG9n zN*oNFq$h1QP-I67NW+T#4m)h`uX$&80z;2UkAajO1+J9G*ugO3I2OhuyJdW80>zs5 zY*5_TDPX0X0TyM2BVQb<P0OZrg3Q^}7fh$zouR2lrC^FAi}i+w2T*Y!X1uOhU*5 zWto9_+RQojJ;9!KF+q)g2MavpfbuQlX7tLdxh`FM_;}va0=WJkV`%vB<^9ciAAJ0& z8!>!{SL{7P@P}h^C@<9auwlc@P?%ynCxu_fo0j=8}L8B`QCXuT)ywU@9n-_7JO&-d-vWcXJ*cvIdjg`z4jF!<4>cW-uHKk zurdXW6U9nQj>oiDRp0*ibixLuhm1>Yrkk8t0EZz$pq8ya7?|%2YW%;A}cSzHPvCNS{ z$UydVs1s1W^Ugc3ToYq};6? zYk+}aPQD2bGK?oY`OPl}GNfC(=X?9vj$ixp1GQUm82p279bT16xX_Pe!nxH4?6ILJJc=i0u(p>*q3#%^xHOA`*V!w;SC1!H$_0C^+FaGT4G+Z~X2lX>!6THb5-ZtuGz zPvbbpDX=>z;3#Cv3*D)ssX4NH>-JcJwBN)SNnS8C5{}Oarg92pc_;omP`8hC%O}D1 z$VWV~xil0X1|TD`7HT?$#7(#mtQ1Q#0F-WNQp&#l?QfTTewLDPr{raL*HYNmN4a7U zWt+@A+!me$uuh={<;+e@ZCrKT+UAf&3ySfmo*ZZdD3UrzAly*I|w26oeavd z^e=(qkD0+%l{@$Q$tPr_Q=Tc*RliH#D1KU}9F>1q!F| zdmCs648^Tmw}b)oyJkihbd#eqb{8gt0O$;p_GrQwVeDAu$EcyipaWx)(vS*>gGLyP z_}o4TtOBC$D1x($H=h zXJ((zKKtxaW;2Fn70t++d7?xCG|_I&PFiAZ-=nbh&Z0}bWYRYy5`7I6*-M*)6b6sX zavF3J4t@q98Z#If@b>?rq1i-N&!{6jZE%SqCog%R4H`3kpY^O~l|8}AW%kjbH{?nx ze)bDH)JHw4Ylbpo*nkZKU)`%C;l)Fnlxq|>Mx!wDOa}H+ocJe>G(_P8{IYJvCo7fB zQd;hH+wq=m!kD$ii}G}Q$QQg_VJ>3{E~G)_NnbY zj4Aqqm80#%ovQQW%9*&2a(nbS?Yp7LQ0+*Wb5%o~vzkY>Lq>v0(%<;*2le#gw4#Ep@_y5hx_AfMqaC8%+y|!7lYE$#aceq_F+3a*wgn7GztL2~gy&+C}j3uCEJ{eOwV0GAk{N9+y z(g#h^^5m0Gi6xB}hp}`?Sw?CmoFQW-7Y|ZU0A)V+l`#a&#^G_xi5X4GXm6lS)IK(Q z_q^jUjPoi(%!(`>puxs0;6zy0k6r!t_)o8SEAqChY% z(G1-6u6HfQs@X~D88`y+Vs!%}m9c363ZNDGQ#!$GUh|sbkM{VPF^UJ_!rSsLpH35| zpk=!11#acCN0>p`ZVSqmZAm<6-3{ zPulcohwb;f#v>nOQ}Q_(plxRRY|Dgx(jX(WV|nfe%5NR`@^Mx zu4Y>pg6lSI3ngn_xq}Hc)~|Q0yCr8=MuXhi9Jn}^Nlls(GcO$lXHd^6gqt?4vxiH^ zq=6G!l$UF-UDhl)?C=tXn^85&^&8*##-cP5{Hdf6nzbTK5E6*lj(nTdaAZD(2$=ma zBOo4siVr2-ayNMEHeVv#hX0@w#qPiZ7dBHS$9;;eQ^+WWIyE#=-;*ZBQsn5QH*bu6 zCR^gp%za`uCk9EckLfncGeOFE_kvB>KbFI;i={Y|I!j{U$+{UWS;d_`C6*s;y}ntt zGLAJLoEaT0p4}Cm5+iT>N50HDJ~9lSE!$#nBih59IKI9^oz9YBhEndsHH%1L$L9`- z8WGr}GzOWcCzA5V)HpSI9u`0mGeALXK;n-P{ z#3-!+o_?VncBDGxFaH!L?GsR18Cu#LKkZt+eQVc19>p;W2`D^f0<~X?FPbs37<%3r zrwP(TTL8bo263e;evba9T*!E4ae*?z;g{)iXBcW1fP4~;43i&_N?96T+?3O-g1VGG zBQ9q_QkDrPE#&}kDjTCY^HMze_@lgj@By=)(!?*^(K-FhfSP^HCGEnSNks<+Zw;9b z_|zAi3_n+&Fdl2ju#7@`a=Xo9W**cNL)k2}bk+Gd>>dgv&GD7G$8Y#To8#x(libIf z_!%!}ys^yHAbXA_%5nnhnspn>bsh`nhb}NEdGVw2)a|WX!rHX%xK-v4o>Y( z`$uEx0EQ}gVsL7tymd=gKH*9{Iat*#Z0#m5^3-qmI_|E#%P-!NHd+AXChwBR_$PhP zM%dAU@{x7te(8(NW1jHDW=U)(xcc|Mi#@XI3aXm-hBY2Xo3QY0=E=nBC0)be6+fZ< zo2NwEPDa##dja9VpAu}3 z5rvK-Vwu`EzxC}Bje_L|>}mXD+`aab*mLysr$3{)A`T4s;0Hex`==gO4sEfYXVa$5 zWtM`_02Dfc$MQD{y5(*Z6*G~RsJZOkY|SfP@rt56Q7(teb3u9=`lGB17R+z1i5ZdE z^A?9N@6=_=CmjogoC2|NbIe|ZQN$?RZ$C2|=9+H^10{@;FcQf}A}?i~CCyVN#Xh&_ z$frz<13bc3xjyy*PMhqm%^k9FG~{HMiGTg}xb7gV*39Qc!*$#lT6O4~zGocel?OZ}|JtK( z{(f2Be8+`r4Pc(tuwX@C9X3d{F15IE?TI4aJ2g z6;g%*;0Kf&{iTyLG0A6WoNk#farnbWZd$%;#uqJ=Kl7O3GaYn7>yf}<2|6)k#c?uh z4kC;ccieyHD4@>;+M<~&b%$^8rgr70Uh&FU*Tsg7n?p8kEvq!FHgbiRU*VfbQ~$BE z;51h8mn~o2ES%SwLC62fld`cJ?&Mv5+TmCXVrVnyoA}5Nc|dPKzU6>goqqA`<4?9b zb(Vd>NYTWRrd0tce@BWlR{mrKoladSFF+&o0m_i8I?zd2GN+bhC14+a;Q!MnJ-JyN zx*?bphvn=WgV~)vaffcY-^*X|$}l``1d#k_7nxoKCN0C z2dspm>|$W;1+Q!5m;c{oWd?=vk?p9RuXGoOLggR{qs|2DnXi6Le8*C}FiN%Ifq{W? zM8A&i_IEgIF#jBCK=1GEK`#{d`83xEHjV< zC43YWX%kqMo!R%83VS=Rx7F``LY8ffnXzWy*f$!5T()d!D8K8AVTLvU{R|2a=IV?* zbO_S**OQNAZJY$UIhGhsj%x)1*QTv8gA|7sa3^O4TDvhu5hs|jjE=#dF@So>$jLj4>#I}a@RP$Yb$t8C(5v~ z7my*53V=GGwDA|V4dPnPsg305u{asO47{xC+z*y%3(L?q6RCc(FU)uT+D+o9)66yt z*Rt3@vSP)`IHA|Qh1)~fpE}47-DyX80*ouh2EI}*MuKv{ojjLmW}dkV>nS{5Oqz+C zVBiUUWk}@%{j~jh=0w>tE#;;Z%M)DE%wOX5tlcPm>Ne{H?I}5)@JWwScKPL(msx!} zfmuCu3y-qOD0drtf5>=- zrg-=eos;icLB~JGkOC=Vv|9K7H(E74aYCN@ zB$=5c{PI{zcg{H?jQ#<9N7CE?v2yS-f!G&Gy#}7pL}19z|r#k)Y zXFuP(^It#MeE&ONDc&cZd}?#XbDtjj6CYOck?GfQ?e(MB;3oz`_K$TxSig%azkc<* zHj1Yx6!M;7v|s5`GDZU75+@@L4bfjejSdEsGcSoN%S2Z3>t)o4um7i*FoGy6Nz23` zO|(FVy55w*Ph9xhdC0ts<|!?CLMuE(KBFN%16FxBftGRS1aa^B(f)080jPpO5`4YgmF-mJoZzcJ(i$mPyT3Qc!VB=nua((6{nfaa8# zNa`3XnfHDWXg3CN$Ye4rK|96k+VDs`Dn7$8Wm)3L=UCB=q2(v7UZ6bE(_Xb{eE<-dook~UdJDQ zAE&_HNP(4WH$?-U(kwY-$Nr+rVj0saLN*kR+&k0eYl2JXvo%H(C&cndqk#k%Wdvk< zh}O~E7z)dl%{Mm7HiuFeeiVMNVZ+8~JCbi|ye8Kp1YTM-42kKy_jj>iWQ^oY7Fm#fncqyOc(nfTqv$Z+YC~FFet6UD zEf@|D|4h%jGRX^r(L4UG{e?+<6f=IQEVjc5tDOk%;1};8;|nh>N>I`v{gjPt%rcaS zWAFz*B~M8gKT&!uIpwa6;ydMb%@HG?(S{cC2Kb@7*+o1jJh_QyT{C0mQk}RehSBFh zs0%K*VCaNews4DSx`f>5<&c zoC~i7pG0L3wLd4OTE((5PVU|iGm@_4a1a^5nu7NO^XANIuDJ5|&7rsJoaQ_le$s~V zqVgJq$?|$PfJN^3p-USw9lWn?=O9u$+^*2A#wCq*J_=n214&0a&J_&?srPk%i4poPISr!>!d!7G{z&b?zSr#pDe37&=QmcMbgaSGg$6wqqyW7}`v z8>3yUk7vwg#LUy$SY|>2cN%0uwx#^0Agx@vA`TUC&`ub9N8GL`gcB!CF3PtR0^(?z z(&)tRD2Lf5QfT+m(6 zEYEG_nWE5)?$n9ZEf*XYx|FxZT_+CzKS>j!RKVz_;kkO+N8(JG`)+ zQRVBKdC@5|1lpZ))_LOX=Xw4G-ztXV!yf+FFlaZGHl&qJkJ+_{JnYfU8PEHR=3e)> zd(2=R9j<&jbuNE8e6w)!oq5T2)=%3~Zbmd3b&IFIKsQlzyvd{d z0>%?n(x>F2 zF@6B@gT8)At0ha86k`=V&F<_jnv@KT|LL0o>PMa8VLYOJq*0_!`Q<=C)_Fh3v)+RN zhJs^1r$sw8)pAxRd>e4K6`%?>6u#R_X;;y%=gmE!x$2thnt?+W6&{1TUmWln)FD&x zE@MXt{!sp;u_5-_`hm7CTc+3EvGS&++(`(kOZ9ev?&o}qH_XC?R zeet^y+(u4J?YE`5a|qo3`_&Jdi({ElH{&tWNMh%AL>`B63f!tGpao2geF)n_7;fC) z5S6$yE@qozMPdk=&gfgVqjo_FBF36dVCKxuJ}yEy{udxT2r_~Sjugs-BB4TT6dtw~Ko^i?j@P^i)6SU(>dxNip8z9wqx!;MyW=r4ZI(b=(X(xct_|-a*Rb!Z^I= z+So@W{#e1fjoV7z4~jc1?MqCMgnZPHWy6%ujl0`>hNE~m@ChWpX85E#9!>h=N6Sk=;_#kvDe#QCjzV$M`#odWMbIIr zXl0k<~u4_eafJL`z%f(ySjXgp@@&J#UB z;_A5e_g7mrI!*?Nj}A2+@7gXprP5SmPMReBv~OX_qLc#}K9!S{0n$W6X>`M#@$yNr zWbE_;=_QTZWsoOrpmy(tXJ_4&#d2CdMxW)Xz_QE^ve#=lG>rcHVKYQX8{Uv$knSJ$e z^(Y?xBHQ52L4_2%q}9~u>2W1KGE{=b(@>`$-oq$Ps>Hy`n(6ZAjYb8{|Ry+HZpQ z%sYQ=SRC!nH{B=mERK3nkIJAP$;Pn;X`mH)N-GDrdZin8)OkBO<4(HyN z@i-iU^fU7P-RK0L{*2R__x#)2g5XA3IvuXjhM!(^ar5LSeXrRTOw$dLVMp?-!`1KI z;*GnFQ($kQ03*RnpOYll$5jApR$SX0e9)pHg`?(Wf-?oJWlcJWM?UgVp$x8x``+FY zhb=59qn891<>UbmctG=+&wQqg>^=0M4=n=DRT?g>b}FkA!YCZy`qsA^OJ(Z)uuMfD2CfA>i%LaS=FSc<+1PyX?WyQ5jYL;upVI^8dgGKClQS z`T680KUsvWd=OCL)n(gT>SHYPQSRZ44tc-9S-E0c4ff(XAM`?B^dzhSnlPxg#>^ol z-r+gLJp_Flgq4PUt&B`K$yO^noZ@;z$X;$^L1%*rmRL`WCDw;8HbBrB{mo8huvqOZ zmT&1#n>M|4Qgr~lY_$EFYp*NIQ={vPa>SJ{H^e@+wJS>Ji&up6)L(e&^g499>Av?Y zr+ptfPfCWcna7+ZV+^8wD(~=fqX3|n&OcA=lV6?d!iAyOb)ls+TQ>7h5i>tS4%N$= zSnjC2U;l!3J1_Pjcj&2nzmNTJr<{CJ46<}i5Uiq=S9w&fenI(#$7>9-R6>(3Z9J3? z?UO=bX%jxAWXM~V360bpBYn8Ms0&Lw(ObIm?l~MtgKUG}VO=28t>dXTWl*p1C&;I~ zi_fUt6M)~Yh*N9R0KlsZ!W=ZqI*=Fd4#%;)H|xL?C}+N>ANPFc@0T-CW*dI_%U_n6 zPkE@@yKrQS!_%|{b&+`B9EZJ&0^Qn?w&IrqU1X6u#N(jmd-ZL08P72UwBdH!NLl4+ z>FU-P(A%(aQ?q_-(W3z&PM+#^9)R zm+;-3k`J}v1Z7g5Y%|)3cf3yC7&OarXPn*nR3GGC8nn`qZ$Irj4PfsH@+V#{UlpeI z7fu}l^`rd4Cq0VCDF2Y_4izKw;G%C0H|SQQm$&RM@d{pp2QLi=!})hN9*4o#8`(b1 zk@vV~bJ^urHg9~>+oEuTNJ3V6-xMPlfa2N<5Oy5KDR66}08YobHUDZSr3J*3yWg6P zG0GoG^T5Hgo1d?^dZ^)NJaKd$_SRVLWTg9>-~47#>@0OU`|Pvh?yvuD-u13`#sM6k zZC>=E7Zra(JVt zQ=clAtN%2v^LYOApWl4vJKrfI?A)L7l&3W3oO4bQ_NSe8TDhLX-Hvd&Kkv9OLXSTB z=(3c;60B!G``OL??svapgc8Wg)>~$jEZl1UDA&3TA=mcVzd1bih8QqwgHFXy9Wnko zGqoE^N9E8Qoj@9n?YO@25Jizewj#8~Nq(n24@Z!M0K;c3B1_y<`O$!}uDhLdnR9=LWHhfMU zUb(unpE%R)wC?yS4SI)bKW|e)A+k*Uo$q>2C>OE3XmCJvpK!B3w3&2xGhyQB_IqZz zYPlgV_<$b+nNghO%W&QDt6nKLlp%DZ$T7A%_195+v}1}&&V+WuBW-*x93>Ea<%L@} zNV#AT%IuxIrdvBacR%@T10__NUhC=2P)vOawZCtx?I(5>l z_RsW(bIUMUhraPA+M2CIH-`*aLaWX$zx?td-}8>i#GQD?pL;(A@Obhtd5NdfNWtUU zr*=kG;kz`j@CbtdeT6dWoqNu6W?e)8c-MY;A6&3+N(>(Wy)7|R?|Z` zP`f3LZcjWwHp{2D`m=uH!iTn*UxN?&TzJsF8y@~-*~I8;2eW#UY;`vtqfC(1h3keK zrgWb^eOmL_M?ScD&8y$p9DS?~IF1=do9J*IkT83e5yQj!I(iyjkhtX|-#b3zf5$1X z_fWuP?`5zgmgAXaupE`3cOoT&!JY#`a$TIDd3cQE&5Zk$T&r=>ML#WfDCSZ+C9;Rc z9vKROhHiu#?|7I4gSbreWdQJb5eBo!7)m@-^4fyeR3QQLpf(hSf;u; z4mj#buc*HjYc>VX%xLDt^%X$Jt0UNNzc_3sP6l1Rd_|GfJ#my+-T#PV)rh@_+qMV4 zhT(Ylp&i3f4E~fD{M4@;&Y3-(>xxi7R)v8#F%F?Q;tq>q6nw|bQTH6}aMfnI{e-}$ zI%9`}=-__+>tC0_6SL>?+KU$1@#=(AQG?5M3}|{;>}i`8M()0r*A78+Vk&wN>V7fb z(=VS%tNR{%pXRK$zo|KR@w{ePoQ6DPfCj#W3uXrcT-F?Qug+rrmm!SYpWn%~Dh$VCh14$X?UlMmu4CpE#eOrb}1j zF~<3zDhT`eV+j=od-~~5Zr<^pPc>Kmep&O!aj=KcRcIVl{=ILX*SzPwA877;?#E;M_m=yEzFrctBlUUr%`Hf8)JFuK5?DF%o$V4QaCd&W*@+` zX;aILoux(u3jt~$3!$=P$&%6uP{cG=cZI$F^{;O}@PQ8$C54+#!cXJZHW-^PfBDOs zH@xBXaf091nu9`_5sncn4Tmx4R6g{f50xdXM#~=)Mq}r$sLq}Pg2}9*JvXmi?ApWS@qL+@#hKk;Eh<&pL`FZfFH!WaKtbMi?iw4;@8^zT-F>5&;a zczlrI(3`=c9eeKuS+8gSl8$fzX;K`3bmTR^i(`*JmT8SvxuG|Zmo;Smlz|+QHp4O9 z>#%4be|yS!ls5Xyj~|(66rT}iSwGszCuP4|-PL*T_dWTGGO9lGEtEWWKpJSwdh14? ze$yBaxA#*({U#(&_|A6&EOZ9)v2Mc|r~RBCC#o(F1CkNx9V8FYE3_?m@LHxl?|@k` zSUM>V(plQv;jlv`-bOpBZ+TDoGpdNYIdIZ+SCh#BFJ<&YSM@_asH>FWo&J2sJ)!M% z{d&pvx^C92T_1Mb)*)V#Ue^s3gA4A4@{^1+mtm+z@g3e zzVXTCq~q_?T=0$mYR*6JOU?OT|59`1RjZm0e(0mk)1La|60>RpElfKa!dO+_%@P=Q z7^lD(QotUu*>T^Wnf5Z<9=NkX#$vd*lAtrvM*vTceFiS!O{0&S5o5}%8OL1eBzqKD zvj7B*rAUm&cfb4HW#n1gAk?Mf>D!U;_A0*k#eWq`N*{hQ7Br%#{TOZ(lh2u(_-8*X3HEwQ_3;-FP@RgQaW z5D*X(q0yQ^0tf8O;rVTxbw6}?HD`c28Cn8V$JcH!1%=7s0sY&QEnUh?7 zw7V1qww{uDrPyi?mx&c3D= zFNr)EKF-9MF%S%J><_6l&lwHW*}U0)l=jO98twQ$CuGZ#a z@OLLR8Et#K-}awr*X2R&4atD#-71|GFvD?(_f!$MQ~&kRmyTo#mo)3tzOrzC8xYp1Rkq6=m1qIj+Q_8NUZOeFoBV%oXh#a-iS z&e}c~FR^gZrm%j$-_Y%i0Uf0*SAkY zS*UQhek+?&aZvAt^^Vj2N6n9%-s`V2#(YkkdkpKI&!=*pT$=o%fBzt$*S%rJuA+!C z@Z!sX4_ojfp{x2VsbZF}MGw8+rNNeFhEXtv7Umh0=f|0G}7R(mgMttYW)yjuO7^RDPxkSDyX1Gb751avjImoJ~9z!L=+%3KGxj$NOkIVXo zVTN<)?wpSiiIAU2N6&iu4Kkxa_1xIUci6RuS_>U-xs3PIbujfB^MIR*vQVQ&uo)e3 z<2n!6k$slOycSb$zv>g3!m+3V*V;@LFRxX{OOU!scN&eWNBQ#+659JlCVGF!Y+WZe zOPs4%brU@wP`_q=%=RxxZjC$C>NDxH(wbNowhMR{TmE+u1~fOlhM=-i2nhCg zQdT%J-1+y|VRN;O#Xr<@CSG+*_-C>%q6Fjj_wr+#%BRf#ElFr{>8^8nc}YMN89OYF}*1{ zTdsJSgo>THSlso@3MnN{s7aE8?@$u_SEC=_ybBI5bR}-%9Tm)Pnrl1xiu7beFCUwT zUQcTbRRqOI-4%-+TRDC>^a_)GW@qu)Bwy9S6;;flu%W}9=OnIj&-VG|d^~9_wZ1gn zdg^m(t&FS|{>`Q^7FFC9hxX3w%+}sZXFqC~gBi8wW3<7bV4-Z&v+ANvUq_^N0K!;X ze%#N50+;{e4c}~*^Q`qlgfg)T_=`I(1jNhuF_L7IMKWU8_iRnzD*N>Sz)1 zIlD=TfyT+s)r;u%3mP`MpbU`fFCUIh<;4i#m40)XLd&lehmyx2gjP|XPd_JRITO%> z#lao2gm3aO2)7V~KckUBM1VLCW2oB-{<$uf631$ae(QS?IM>aqxIplU1P?`

    6%e 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 %8FOvLq~1j8V9ew* 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 Q$k3mvpmYRRr15 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∾#LAL0l)}#h{>? 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

    T5w*FQI>{Apuip2S&sY?j^k7`rX|-Ckp6 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

    Q4YC7$wZq z`&>H5kc7aYlB|lq{%mM3bRQ)j(jm97gmPu?I-HN<4#+&^b-O9!%x1nIKy~}1M zc#;3<&e+61>ERGwkLIcbU;4RRi?py#F6Ca1UZJ@+1%*Cp(&urTa!6tt37*qEq7OX`MSlw`i83<64QzgOJmbC8qtiY zu5IFpe=<-~XUGyWRe2Jssz4Dw&FyjRCG_m|*&>WAb%Z}#Z-$Z2PV^eIVI(TbEC#pt zHcb^R$_;21Yb8aoLyRBgDx_LB1+rfMC5QvFDW=$7Tj`{R_O|%C+-j-Rr+F&g_Rhw* zF7efJ?KI3vU)TCv5+&oTW(c?)j4M7Hv@9)&fx0)}2`t~yYgf5smxMnNT;8|yt9d40 z@wxqRVlVD95&Vuj?qA559}z*v-k5Au{_(-x=v;ywGp0H8%Ft!-pGACmkrx-T_fydcz! zI|mnN**ZHvfAPEJ>Pqk7U6q;T0=rI|`x54Nd*WY!-oR7Cn+7mBCANy$7wEad$jR~W zf2TsrHC-RQFQi5fE_A5sPu4NE6U&zAIrA-|$9-(6#|v1?=M7fSvx~~(JvzH$=;s=T z`{?-m-v~(&&-MIm642()@CWUgp*+JMNa*@*$;9pHmd}Z@Sr`l<2OGt;B7(gG>*E7!;tB;LZGp<7o<5wwH$2s8GZM;Bd$fQk% zTPRcfy*gtsCcXqp#MCovfo?ALC3Z z^Iz|F`gZSx^7f8@Y!;+XwTV9I4Oa)3>I<3pSAAoOVloTlYw#oKSRr@&SbS2?QI^|{ zND)4>5AUh2+AN0$Rqx(g9p9hT(rc_{S?)yAC1hd1oMaN498z9~tMv7!)ATxJ&t<5z zaMSr%WUd+4N(~vR&leo13Z7?69|wK@)Ec{r5B@O(G@+T{3(09Uo=cSRK#nG1KeLfI z4go;5#>-Z{!3;t#YUt^{e21uRHulR5nMkmC1rhA}ps}kwkF#5)>G}-C!jd5J@+`b?|#HfG! z$AAebh+LN-^cnZCktG2L1RvM2$ba5v_~9#v{@aH7;oDi(--BT@w*+fg8Hk2--y;&e zfq%>oD$t*%7rN&0yXS*RJ#U=G{u)ZPo{Y`&dk@oh-d@B+^drd>%5Y|Ie9Yj_AIS8k z2--DFZ3wn=iG0Y&p#krkw#3K_db~3M)Mh!*`FhOX-I8q%^4nKcKZttm zqp^FC>rI^S{`Q)zOys^pzEl=iR=70#I#8*uy6s=ob7bJtkAA8+=K17LkryfobM77h zWJu2=#V?)je&I%7FZ;Ce|1oNP7ZPb4Y&mwBaQiO!4(lPE@D5!n(%|HkJrfz^B&b-* z<0hxXpEW$W7cYl(~1K=nFwG3@oc)Irm>s#Vdgmln8>P3e~{>~^Sj zC1x7Gnok<9K6v$Xj7?HcT&5t;`LFr$L<5Lo`Tme1HAcROp|puM+}%>c81Rx&@Gf}aHPcMCjY8mgGoH-JOWf?JiJ&@? zZHKV41}jIJi_9jpN6M8o9#Rv|4wr}>cxjtwnVdn~mm!|V`BYV<;ism?U;Fg}Q5|7# zM)Opey|*g(iTqwjD;r3lnL=I3j9)o4-%4!YB}D&+);DFF1!V+|maaV5Eu<1#eU~sW zWxwRT7u-YLm;(QB`PZ+L9-Tw9#)M$Z+;*CD=ogEWU67pF;g5SaB76(*tw>NOK~?gO zpRn;Lx!Q{)OiKRgsj0=!{`URvLBM-^3*c~#sbF*s%DC(h`5IXYOANgorpNb3tvX$SiMS})>L3#&H6g;wI^OPe*e zuhp~M0iblV5#3tra)r*_cxw@3Jj!acXd6avY`5ZV#M5vHY3?hHZjFApqnGlkDJ5%N z;xYa%sviSxu}D6bWn(NwbShj9gx|+AlS1Dw@EIL6p;p{N&r0{?kSdJG~^lfoD zHD7_<7riQ%`~bD$Fe`)x!RS>+_>Ddu7z``cyzU_qd8htv$p}Y2Z3kLHU|Yl`w0tNN zNJe{7%+QMfxqVB?5s=$$Bt_R;kKz_uaQE+uMkmvO7n{SkFCBrzUR6#K>6hs11Y#U=mX8k_l>r>Fx3ice@Z?$8LZ0rM^Qeso@%bVJbdB$d zeUWB~KDS+j*oQNRmQs$ko?4M%`{EZF%;}%s1&C{0f4sX!7q(?y~398rQOFu^O?nqecM_6-^{>nv{a(x7^~*6ZQ>egw$pvw?*#tX&nj z`ESgCVg}VvtCy=;!^dsSwev%}wVWR#Kv30Rf_Ap%br+XtxP8UxWVsntCmOnHBeGr= zsKINOEqUcE_P6xHjv*(OkdiIkCt!({nSg?PzDGIH_J@Mq>4z^la;y53@#KFK@+5;; z3a0$INfK^z2iBE9MNo;6IQ}Gac4UClpm!ausf9 zE6$Cf;)x#MX&xPG6j4AU-@x1DD{(XEOEt5Vf!5v2nMD)BQKKQ9fpLjP%%{#RE zW=kQ+%+p$)_)EG49;B^!gXf{#IzZ>(=`aiHU5YGW62ecI8+?6tcJS zXkuZ^D4ICq!EErBJKd!~wq7#MMF6|pIiE2!r@{v6JmV*)7Ons{Pk)@2K9585lqRdf zFKdVx<|O9dUyAuW8998)op>Y{3GqJ%A;Z#yEMiwO-{GQ96t4VD7wg2u41@9>qmAgd zm7`^3_rQQ4fb63ZzfKIey0$6hW!j&t1DGixm_;rN4HHreOUr?4(0Nphk|@)?ZNj=+rS(}5w45N+76la_(srtCMKYvL| zjYDAA*g(NUQ65*Mt$J{VYKCa@0Ra5R>baob=@6U;kx5*=XY~9Ra#QoE&i9&Z6MA1a zytkEfS$BQ##^pe3l;2qh6ZMv(ZtsVDwre4d203Gi=A;R0q_EvymuNb_Uqu=;S~>=k z(suRS=LR@>6*KV0o%Zxy5-VFi*>s@BzMkCH@Q$l8$Qxwtb|$SkVn-6HatxckYir4`y`wZiPNvy(Hc=1UuKGH z7eC+h^gmkJ@Go!P|4FRS(uToR7U&Sxn4hz$zcFrQiRCO_{v?O58|MOTcV4cN{Y!Us ze~m2RYa;TRGn8ByPE$%IE_4Vny^q3y+T_C6$o$K{EY@YvJNLfxnvPYo(T2{!@3)+P zq_Jo#%G~l!_dD5F*-uGsHc!`}Bj{iE4|jebLH1?n*8Do)03^Q=sC0=)h&^m^Opp!G zjAv;s(z3d1Xo8dB%Qr&JUoOm^nyrgUlE<=OE@a{cXTU=J z`Ml;M5oVe2@qzT84e+6;O7&-d1LO{`d{B;Qqzr=k_Kh2UCMh};`@#RT@;}L*&kNRc z-(4lFATJGNk+f#<@4lGW6=&My{y46zig*X{Fi6q5zrBvLpv1Gx87AXN{9QdFG4|{B zUGXWks&MU*SK^-p4n#hL1f1l~mhKWpD@B{=cLW!$)u~iU*J`Hbj5Ydf0(Dx% z!k2r7fRtz{lz3vch=oWKb~4Hne$^y-5O6He{(SZZfm=Iidn2>k9poG=_JD3~OolPD ze`=`Vqf$9tsjF9~*CmT(pN5v91x0$_-w@SCH*Sr)kUj3x&)H7z{rI7mC;X{-_&N)_ z3CeQh?4f!@h>cFKi_|=T{reDZ;M)FPk`SLnvd_K%k}wsx79oaC;Nodj5o-BS(>6PJ0GE#BsjfNO!z(V*OHS7N?OxC+zQ~lTt_IWQH<#Lbju})2`E1 zunLmaUev8R*M2%uAtj7E74%(h!rRL12%j`lh7{t%T~Ri8lp(tPV=@dTuA`c-s94Qy zMC^Z)|DLb0DW#hX^3fvsvK~MGUPuia|2aamcKUEO08k6X-tA2l4w~YI4Vec=fDp1z ze|`{A&X{<`l7Su3yPGQ`m#|luBVY)$;udOVCP(zz)qc0nRK2R2c#*9XuFCfj>Z}n30)<#hI*Q_Tt!vi`9FOr*gd* z5vLkc_g$l+S;fMtJ=U#0`x!YY+7`}FMNME?Cog_;7;{`<=(RH)1xoC+J*J1qCveyL z;xPFf$L_Lze$lpOA6ORj_Q1%ZTk&ywe4D7NJBn(`>uXoQExtVU0XOazYwaZC7cheK zgkAYJ3GmPhc?C8k6Rm=hks}XXCqP1eKkKi7X>a-Lk)tmv`s{6T!}$&ix@o~soGwk( zeEX^1$ocY_mdNd7%)e$*P#=pIyTsMu(wQMY{%y%rrTXu?Mu^9XUBMTZDp%iQ*`5Ja z8G26GX^2@3rw&~#{(s$lkdrnBi+7!wK>-otV(-t()RgVBu=O~aS4aEes8nhqAp39Y zk;8iG>`f{XyR&nzC{NJs*Y*hXW!^F`Z8OdS=%)q-c%|kxu>oEN=i*-+0M%h zwd?}cm$C2_z+!tin6=g4%LrdAm+6Z}fQk(9aTMn)?Cx*7q5Y@urtVku0^faO#l3P4 zV386&kwCZ!sW{gWY}L0eU1Q{q9@ERo$2-W&BApos4pk8L-tVKTw!=pTtMQ-OQva4y zaiEY$_qp+_Uk!krJZsIM&$_503sof3h+35addeSx)*>*g>GKxN*E|CD(BV`ESK$#A zW7RFf!P@3z!3y7GUn-_nzgw@I$&mlJosDV*v3ZWjTx=e0_OMACC>`yxz&SPCIB@ZX5QDH1rwW`=lB+EWRMAHbBl$0-(D>X~Vjy=S6#?!j6>5&V+ju zXGd*6L+w%#wu6yaY3Xe%@uvHXem>PR{C>Rc6l+VRJpJtgJnP#lS2w2)pLHB}VBtGn zB+LE@e%ER4JUAxvFFm>izwAtfKAJGid+m+LSz?yL=z{wSYYwk-i({JcI}szWBq`+Z zL2@YI^^J&#G+fW?BE3TvsSX%fR(6{l>Euwo9Aq{Gw+Fm4W;jMDd^P=ExSC$tI$Xs2 z&&)itVqgm9sF9i+p2F|OeQAkr&d=JbtIPNkPN@WbC>)D&OQc!o#9ay#4z(quV#+WDUk zpTj|$Xo23ns9ohji0^so;`yrDrE`$^4z!etYQ(0bVK5faqv5yOk;V^7GcKMSEAw>? zH{=^ilo*J8$J3vyoL+KMY}>RY`NNl?E6B+VTUZxoX*9uJqFC^l9M z`Ix77Jn%PJo0?hv>Aqk_sjj6S$Dw*rF2TIQW6&^JkiCR^F|d5<&*=uA3FX)W8|1vj z+MlaTsGptgEwR6-8$Y|LNbqXScZDdwmf^VjSRCbH{hS%mj-<)#e}%c`YYuV&Q$D@s zKS}w+alUx|jl>C=43RS-3hHMg5>iu~FYJrwm_(J{r&$}>%YHtHKIq?Wx?W@|@`{PwghErae5 zw~HehKA@#o%=qfpPp>GJOOK7rIgO>nJMV#^OYFa5F!5Yk$bC&DEnh(gMfM2J`0eBpz>p{d;lV}ju<+Je93M~4wi zJf3wRpFgz-R)OuMD$m4W$Qc3{2D29D0f9$yP#4&P1MaZ4c zd|yo&^0}Ww0<}nr8K%L9W~h(4$C{9SN8X=!i%1ufq>9PVz46e0`iPo*N#C^Zz45#h zcdjO4YeP5WXRjTvP#^AmT(!K$rnjf}nctk$;mDbwU2dAUSKX>6`*@Q`Z8iJ&e0N^H z=x`>&S^Y4{@+zSS)ox+z=UeJGjFy9diocanj<~@3*%pkY)QCes#pk^H395Lnp=7}Je&8wZu zn3Y_DOZ#Pktu~d;TJf($3M}>0qgB&`l#K!ofyc^5&LhJ{EQ?pCl(2ur8nsS#|ZA z--aCMDo#mnf6@5B(|YrwF~1myw$ZzN;c6Uh|MU&1pYs+(D^yT=-O+x0!R(%_@sx=W z@7Gtn>6Q9*)&%0`vAV{Tr>qGz%E=N^1{;mZqm8w?ojYI@#`)y?srrZF*Z;~b9mjyq zjB@9_e6~-DevV8C_YaRn$?ca;Bjodd4%PX)RiVo|ai=xP5P6LYyOPk7K;6+<(6sdu zfx7-AQ0n9SkKNS_Y5n6dHf|}+ezs9>cX*mSv;DUCs1i>B0sR$j&@=N!!Y@KgCzh^Y zn=k!1*b*lGy3(qLVs@Lu{9q z?9n)vL;tHKw6OOor6l)_$LXni71_W^*z5$)=|00tael)6WV&k9NhC4VJRljTN)##r zUji*|DBQi~-jEv1ljwQ?`tz9OllWLM{2gt#G*=9n4L~Ub>#fv&%ap~*~Rok;> z5wTo;-boEQq+>p@b^Xp~I+nfpxhd@OF2n2CVXmavp`mfE1?-KrU(sS!jqYd(uQ7hr zrLIOfOV`_tW+5`|zzoH&pt=DAz@34*Z|>8-6qf2KU_rKcqhsM#$tyPZ87+bJ-CNYx z?Ub#}>NyH&l1Deq1B}OaCgNR^d)@48na9gGN7- z5(I=FI%}CWs%3egR!XuG8WnEnaimedRthKI;@|Xu-W+z4#wn#Yae;O=L6+{?Y$vl0 z5u>3wz|vsM*TksMeYxo}XLY&Q@JSVePFWSv8E`6>>G?9%W8G;>PU(_q&ky1}`Q`Gw zb&}yD&TUFAZ0!mO2j`|bOWxU#nl!VIRFOpHkBBu}9u!o$M~b_}z(z#md4%uj8y|Ht zFtQv2E%woDjNU5q)%P!rw%QmlDV54IZ^(y^fY|U-cM|N!Im)po96w#}a1?Ovc^3V^ zeU%1)U*hR9RdbuH|L}_bJ0|?;$*Dei+AHDKLD-WNF!KSt=r$q3KsFgD4-X6>`B$kt z-}n6VX_gW0eBh$YqvZome!c`k{?qj!cMGc($~_bJj-#Ib*D{QMmT9K!3{zdV^4p2NDvv-F+xeUGyjfd0;hR)TOIGoE9VizwJ?nD zUc(RX8aJo!@6;$aW=LjwMmOA0P?cb>U;TNhL&RSI-r$q!_Ss_u$l6ki;xy#HrfS3I z>a`-+kM$j+k%U!F$_%hGUyoI9M(@0tcK!Ss;+2moYg{By8hj#w+!w#v{KZZGl3B2B zA2MG^Vz7qP7lmNS1PURuMos!IkPj63&AJZ{TCbtU+fW0p5y)xOa*=yA$?x0i)P3Ki zGc^2jGJSk)wr4*Daj+m00X=-)+$%;+cE$Zl5N>vT*r|N_T&#oCZf~n5F2Swy>-8ww z&pnje^jO#h+_IxDW((;4i*@Mh+c)Bm3%DF84c~9Gh7CnfB|YwTY~2MQ7Co2Y!mJ3$ zViCh)OF&@g|F{7DfC^f6g;rd$_8V7PoU<8q3E~dBFJ-;9it33%uR6W87cJJ{!}xCd z)8iiXV}gSb>Aod$NQ4)^*uvsL&JOBMQE0`YM&JlRY*Si<`7btS<<#2eb zG+Fk+R_1`>8_m$j)8>~F-_#|A_?DS26od|#BZUWx8VEQYnkS|gU1r}RXG(MJzlKjO zRi;96(N52Cnba@0q*ISp*P|+C7sXZQ%NBRyQ zrXysPt`uYBvU=9yiD@1hI!JY2NaA9`W(Pf>&VKe37ZC~;mFckvZ?Qc6ltI^#EgwG@ zE?~1R?7Gz6a6jCLmKE2(Qg3VbjU!8OEc{XZH4+I3Igr-bDW(So+TP@RI(myGX)d4W zipfk+YSmv)%R1@(pR|w8FvRCL!aY{o*%az*W|UUyRivL_rJiAyCzBnTZ6wulu+}s2 zyYfvsA70j$HW_tEND3>)iJh?kvBC`Vfvxevk>`!CyinCbQ`nQ^PyJcEzITaPq2c30 z)6e=lv-UDCc5_pUjEd?3FT=w8LbX?oj>m_BDI)199JyUC2Os0wb_e#6!@t6(|29sS zMrKZ%RehiRVWj-LgZ1FwUdY1x#*eX ze7*e=Erq~>-|WCNKl-s`jCf?Jwf9?^4^gP!5D$f59bE0$(=O42x-t@)<5UjyI!C|5 zHMS3!JudL4b|BfcK5=R=mcNG@`@sFsH=Ign@d8{u&Yf^|YF$W)fP^Nf`g?g$_iXtF%9MN{%jjT8L;vC- zxa^`_$T`1X{b>WqITIYQYYYX)ujgsMC^QD?Vn;b55Q|ISU206`>cxJ1KC+6gV2>} ziRuh%11j!+Z*E!NBFIh*{FY8G%X&?`Sl2l)EyE1BU-bLe@X$Y;dH6_k^ULng@H@pB zJBrG*nF5W8oukOguzI-%>E|!XJB%r9rV6r4vUjpXQWl!1+-5WIllU%*8ur$mIA-*8{>{R5F`gH(9< zK0H^FXzB4@9le!Fd)2`O1tL3nC`;`D!V~|~=*M29zyEl&T}3JcEp|wgfE4H;9(e|w9?cO0 z+RWQeJW$_4>&Q;{ii=w!T>AU)sN7Z^Un_m>0qt!<(Vgpd{;on=GyLfML~($q(@_vh>{tEZxbh`$hN5&pZx_em^=y6b zyX4@_i00;9%vKY$*GEgn0K-m(tRbo7m9zbrh_S$L06t@0=5d9ZEjbe`SQw= zDV%W9kzQNi{`hBoxBK`lwvamyDB5by$YW_QXd?n!V`QyYahdT1#E0slGI*~4{;0iI zx7s>Mbv-B9p}J-$1B+HA0{ zZZ%^3*Kz@kr@*oZJ$t$HspuxWgoGYJh`8;4Lzn#yMJqT)LyendvbW{`J)I;lc{B6j z5XNz&JuKo{Bd09{>b~ql@noh%E#ZNI&*nhf>#MrFvekN7>|r}rQ2km>BuO|GhA#hk zJN^sD>%XXWWX_QG3lG-tbb$ceWE%9daVl&f)a@0?=sC^hmHD4V(`G4l-Ru$_TWg;& zk{d#b6J|nAkNsiIA*>K3^>z5|tj#6@0~U69Wq zqSG3_^jv)9GKjCo4umZr$%t6TMTwmXXetuTB=U}e?Js`qW$e|W=^Fr+VIsUGf}<${ z?P?&TE&wb%&DQ zqJJJr<-galnPjgx&UjmpQUrT$?XSelKqk1oL#DewqD`7FkC{Mxrkv4vqt$sQ7u@AolSkq=_IrtwNd2;_@E)4Z@>oe{2h z+{-iC`Bfe!p!1K8Do-ERh&<4-taDsf`mRSCKq8b~M>bWgHdCZWAOUQA`P}E&X0;sk z*beP+5fYxb`X!gEM2N%@^QUR_skT1FiQ-*2cKXe3&FZ7#-`_TBC&y+N7b%{BmWA5; zB@+d#DvBAF(QhAg6pZM076iS01nyQ&G$z9JehhNa&PJIxACZ2Z$SGRmJiB9Ru#!r4)cq|!IDPJ+SighmcFKxFk%*OT4bGb zHYY3l+rV;Z5r<5>b_0j~S$Z|$b9FWG4FsQmTayyy^JPksR^4#NE-f#qh^chm} zL-t71L5UDCt^>C!hC-YGDsQ@N;tOs6i@oPnYhsuOCO^+LVO8RTg!X9HzFoWyG7HtN zYb>9O4H)IxxAQ>qfZ359u%$nK6N}$ubIN%Gc{jCD_vFeugeG;_x1q725D`*_E!vwk zGf?>Hqqnc=i*HR@-l<7{Nad=pQLd1InGMst3#)!4FJYH6e6-QMuvk(0&ANGG61z>* zG%^HTgpUnUl*+IN?$w4d^MdgyOHE*0Qp=~lo2FR}$KTuN-}l-T5J|wIT;J;@)gC_8 zdb7pTWU*MNUQ%=ovRw0O)W0}eXm>_cYteBp!jrW0KX#1B{m=uRC5pT?yi#u7$TbF3 zu7Nh$#oI7A)~`1on^SbOm#M+siLl2BI$H-ur`Hbwr-a;fTU@CS?E@YVj%k=rN)kp} zlSAe!DeRl&u*JM2oDKQGKxbj#I=yby%*sT3+~`od6!7Ua=xX0-d|}LZ71g6%4)-)} z;Z194ePG!{Rahtpo4m?K;6q2ceB2;Kiu@MCD(5{91%)m?DyX?;ZTTust-W;n9I)zQI>90#+Wq1|j&7fn;nx9?BL?m(r3n=GDiRvQ z+bkQyGp4}8*1--3q|B?o?`iIT8~8OW7}8B21nz|%5+GTQDXyt(g6cbZQf7saGc%FY z1p#k-uO3}?qD%W$WXk=RH`>5wB4519SvS7?Kcm~pOIl(cH^c}yg4t(_YH4J9Jnz7vj34x zr+n^Zhk=&nu2A}1v+fypV5ZLxNl-nGFnl0>JSu)^*J($gEcyr(#s!;PAW>GG-r>R$ ziGcavE}F|ulV0fRU zopauJZT9wBdt|`Hc1?^=oXTb}nl0VW&|n+wRB`!wgYqEb#2@y{sVg*K6&B{&YuM|D z7m>bj`Bwl-c@^JhcQLy#b)hK|i6U{DI62#F`?HJrV_N^ShH)Gw_z1Y!qf@vp(#GV zv7PjJ)ow!b<0-ZS7Y`k602|Ibg%!SF1y`rHs;>+MDI^@RFOnRaNKE_y6Ev7;%TxAs zzZsqeqkO?}V)BCWf~(7uc?%O4uJ67{tH~^R1SWI5igOpR6hjE~j(&}7IPedf+Vw#G-$Lw^O9Bq4uAKhHQ=;5#tg5T^zZV&Aqdcs`G14G14w+=h^espki zg1`mr0C3|>eN;%^-Chh8@#q!=HmX}GNGPocNqfU-}{vc|D- zeoaLavxcwbDEjA25DY)d4U*>R0R3=txU8c@d`M>Zrs^jN^O#jx-ha=F%#-@HL++%u zuFe)REV8Axj>*TvLIje~Olb)u8w!^IET`#!h&y}St{}{mnmI1J>Cf~a`1%QC&GhIi z&e@2TaFTpTA>~CA(XQwGMj3-FFAt8#6d_l`HU-7c9kFI%(!*M2&rBCTK2g8}{3MWR(tHp0 z59=^i*!Vi36@p?JX;BeE7t@&g2&cmv5=|1h6`;$h(vvijMWF4oj5kvd@pJ zcZ}D@CMf}a6I;9^*Kd9I1GS&sgv?{wwj(XUXwO&-WIX8Qm6P^(<;39o$P80%54z0x zOv~{Wc#Kje+NJY2jTDm-U)y80D%(EbW!PlD>O|jj3V|zGM^1!JI4<(Kd68oHAQU$N zQB|EE%`Q7Xb!;*-p296}S=ScMmNgL$Ps zUTh194-7n$CQd2S&k>a3|4WQ?ydvcyEvY5Z2ZL(5OqdjNk-R-lx_A2?HCcbB^@He8 zBCFnWj&`EAylxOGkmn+X`>g{tNT)$sT%>zfgS0~BT_JO8|$ z-3&I<|0`IWJdStr6T?5H@^q03_jZ2#j#Ank=4qJFliYd#W>aRP&XgryMuYM639pd5 z{MJ-yFqN3|K5Q!6F{{3~`|QSu7~|#vjglf?p2@?P-V(P$2r--C@vzMq_To%fAwn2L zjNCtWroL`X6Sv5X5VyrBe$E}NY^o=pZj^TJ5gg1e8%~|pGSc$Ixa3aK6~Zi!5;87j zJ@#RymIruHyhzO6;uvH&3pCZ;Is8Zr_Q>6$)z98l+S!YBvwT&r`CX$y<9Xe48+kU_ zqr>L3UT3N}C+&Aje~5NiwyC;#mesI^qWq5f?TO=OkViG6SJ`plSA#UWng-+d-X=0` zx()#t>Z{hi1r&dBV)}3^s&?Bpy+$PN#_jT}ceh)ly9eGvbJyc`BkM+?k%&~mvlfCc z;zuP_9^OW0RsC_qM+=4%7M*mZii3S_z&`uLCCGHIlimT=91onuLYleLUBlWm+LqZ zR9VJmO+c0y zA%EFFwys;bgPUr=U2m@K4PbXClGQc-w>r}}sa1qW5*iN~v#>GdIu>yS=^DC+Mepma zO_+V|eN!AE@cnfSS|uXpx7m&9J$#Tv8qykk^cuss4c`W59U(Ij<70!XFSaO^+^$cb z-Dt;8ULe}iGlpEXQ5-XdEgzF!*$g{bKAlf%(f$m()^_+2xDxV zZ#rf*gxyuJ(C-nnj9|Ht6fhnM>%{^K;*oyo>h4bgA2PR9y2FTvvHQP(OHlerYY<*l zN38Tmc`Up>{U-Im%0%lkvasHZLx44y(>aj)o+%G9dY*vcmU_f8B(nLt&R^NLZZXdp$-0(fYuy+%)g<#zD`C05M7g)0 z7T+Ti2gZru?#=J~+zn6{@Fgc+!EmwcmJam$!yIss_@Tpe zSs|tuwT%^L&d*O58Bu<d2P`LPMQ$AMD8x02CUj3 z5a`wxw0RB?dP_TE_Oqj>L7vPZ=%*+)>eCR%58%}H03Jb)Hv=*|-S2+6mKJ(!4TU)4 zXa{QbcuX;J+~QC1k}7L4`#R->mDzz2d^>F~FPevAT$PxZ?T@|^ifDxci_c&X1w zX0?6jX_Sue{;CSOvHwI%=OF0jT#Pq~3&n0Mi4}@}gQ8BrKEO%bk^(*<;OVGDxnJQu z>>K(dTh^~II}#zagpiP}6>}+b*m|Ej^A)mg(f9QSHl!`w?}_3xHk z^IWhf;}%GNp&vg(;}wFU8}nQXzXB5A^KV-ez5nr-^Z~YF*y*V21c7|4?Bv+VYoYu` zD=$y+kpvg7>!^ME{Lh1<6}K1%WX zSwA1Azi#_H`ez<0N`4mI!E##~91mZ+UuheEynIMYdLpCD(%E}^bPkT)h;6%%X_xcK zn)qQ=76dDixj{H;N*%Hk_+J)Oo(q#HGMLBD0DxQbJ(>!Z?P;nfHyhV_P#dXsWt)QL z%a>snm$sledC1B9{*x6&VBANC=llgy)WfKwb76g;NQw6KuiVbwMbr&7oL4dD;UD)K z?;>Pkze-%P)fFY^C6Bc0%9Ean?g(Os9Eez!I>OaAha#K!jJh@AD70k?#u(lz^G%aQ!z{#R zjI^zvrAugY{YlaI?^^Z2KFN=Jbn&e*@!mVNf@PTigIx0~R@dR& z-;39bYx8uq=QVaKIWnuCAnz_K11^0TXQS~EyCW^fC0>oo%5ag5rdHPjtCIV|DmueO ziPb*iFCE-D;4iu`;EkyT>9w}cvFU}ozu~be5I_FD@7qR@70Fr8rI1_n{(BjBR`|Y6 z+#Gd0b@sBJSU} zvA-SW)lrPz=uoQ``R+kfm0Q?X(chh5BvbEv;%Ns_&rN&-=@Ml;KlS}(yyH=~gx|Tsu=vDje3W3Ga)w_&} zbSyM_m?88;au?nJ*;%NwO%n_H%!37H3*X`pkP@*-1%F0=YBx6Iu*PLNA|_kIJi_hj8;dwwhuC%Zmw&+eRw<| zm{ad=H8WnSKciLj-v36h-Bq~7@BLY`nn)C)Ch`u8y2U^;>0A?# zhl@3l^EEY*3K7AJfIW|^Yc#QAc76CC-Qy2Tem{=*nqfl#x|&?Jc8K*!9rNFy6Zeua zi?cMMJUL7tyMFnUkoCWl@r#0lo-3lH*W`F=?wco|ofEs&cAcG-Hs4?R$IJyptARD_ zt@kdOLVl+-I&9g&{@0bJIZrFvP#W}NPRT4k`(mESRDv4bub*OvJHnzzWuEo7R$i8{ zGr)U?2HOG*pyfBE`lI`|Ot=J|P_!@%xnD$NASs5j^=90v+Sa($a~Rui99;e-qOGOF zJ3rlsS?~P&1~Oa0A)xjgDEV_=+KJ^|JjE(=j12PHRts!bwKOEgWPKQMTS3&v3w6?7 zcULuTpX2rjCaEpJ#|0SVNP5o&@s`BfRsRhrJ-gdez^G8^$1Ry$1ViUX@j+SNvMLtKc63iBu3K3LCFHT-ERBo zwq|4^w!zPCc-yLXo-4NAkKOhxc<*~hdWlFR|3p>!1=JqHdZ7WD_=-lB%X->nM_4%& zq4)=qSt^T!LZA>_sYT~CG^+wPxjr|hn2zt8CUPjeGx*6EWNi(rELH*#)3-h#4-=Tg z*;`k)IVM6-d3F=s?7FOPvg*b|gr!QbOU3H;*F#8Go@(mR2eAsW)pzS3KMZ|vE2tZ5 z#3Hd5B#p4P1qhs#;F7w-(PvUMFZ9YPbKPy@3ua8@=z-P-SC!6CxAh3*;?ihl2b-vi zkCg;E_C34nN^8o6VQP7v=4z-#cdwx0{Hvna-$%0$^Q&4<{p|T9zBtLlg*p}b7ycp; z%zr_hhjUs#sCtc3%f}Id4I?1(J<**yCh^A2V*^W@I$uv53*zq=lSYqd05rN z#^ytOjCq|ssvAYQ3K26=31!n5zz!iQHMp4mNW*M=MrL;wD z=RS_-&R_$qqitNSe;)eGsz0_uf%EUnC(#W^l*GD%3W|D7<0~%PiOcorkM$lO7JgDA zf1~+V7VX<#u9-RR6n6;)r%F~kg^bQMX*xvQ*1oxwUlmVp%!d@LnDvsU@EHPS`v`J& zZDSl=be1_4^1k5xH8W{BCo!{g9Z8d11Z&<9n}KI#$lv`0u7KHaZxg(V&nd~p)xj`~ zeA@jcT%f*!3nDq%|2`vO0&$%WIsTfP_4BoY;fH1~UIcr<`4LuTvNh_~b$uT9u+VCw z3f`I)kE4so<qos#q<$#;OF?z0`zOOcnHhE3xE!R#S5Ic}#q!%q~$OQnN=T_Gz})wq}};l4H`t zPxLZ3e9;jtFWob-_bR?}HaFS`NKwtW z?vHLPeXi%&JiF%65<&m=edwI=)JdybUU2UFf53;<8>-$FeWS4PvU!`lEzgR`;#4yS z!dNZ;bKOzJVWb&(s&SyaLB3*Pa?})7;bHzJT(*Ul^huJgnKK`Ug0TOH0g>Wrcz>#C zS(sxjSUL?@4OY6jPyzsAjPICD38xL?Sdr=-b!26#Vlj3}}y`{utw^c$>M8<2lmt0Xq zu{yka*|)^r8LrUcV{b9acwR-rSX(RPVV#i{B1)8MFO@b~OJ*-MGWq;X@ovaFYWR=h zsy7`$x04FTEA|#c$+eYk78zuWe2eyZp2%N0PoGVCX%+rHwx3D(`V8J{ToeJ5RizHg z<=TF(9;=bz#-Wa;KM%#2c)Xh$n40<}FhnEBS_g79%?M8t75*(bo$I`}n5zjs3w!Lm z4u`c;nSzhrtuOO(jbMGk6tAxA!PkAZMbG$Ng#NA(Hf%4^D>JYsh>RC1V6q$Un#Q&> zhpRG~lm)dJ68MIOu+8mkM6M6LtoZh%D4WQn9dhEsV^rwYc$mVZ2u%RJ?i)JWttm7x zpfr+2hqtnSh64IdXena}$olxGep+}@kZ9R;@vQg^pXXtPb_@lLo=5@S$c0EKYpY7E zv%8h0MWoD|ZVrVj?cyj&-6u$vhE+>FAiYl7CYCt?_1e-8d!sBUH2pYF4jk0SpM<( zor|?h)gfE1%GaglQhS=&7t+m~H^(RyXiYEhSh@k%ANNC=aGHPr$|vWGBWa$gQs0Zm z&A6V#1&YxNv1I?@Ifla%R_zyADXry!L;$iJA?Smew8tJgWXEzgKKd( z5-isUgdHJ4Yo^pwW`VosZdmu9n0iwyv}{nnnw7He(USd{Xva*wYscd}mu0Dsww~lU z!e$0<&E2pc%-o@y#8%&bHi0(-F-pEVLY)WQW$G!_Pw)XRslV{3J!}r@)UKEjK~5Q| zW6cvfYg7psi|jBju=|ifs^&-)-d~ku-j_k?!u9o}FVQ&Vr;C9QAZ7A4rW_)F8kG10vV_zd4omUq( zrrxuU%l5fqMWd>VTSU#6#GHwcPswiZNbUytFM&(~zs%q#F`~Hhzgf&-# z8n}U&IgSkuqnKh{xM{BI$Xx+B$nO2inPeTREeN7%aWKj+5?t(X;w+oF`;4 zX-(bl`PJ0&aiO4RpRYN4SUh!_VDJg6=WA~9Ww41k76RR2(pWag`QffsoE2MTC4DaX z_jQC<0&AOBy(nSa)MY#ih}3(3T9`BEFkpRPY`H}-d%<@1&JMu%p3o6%i3q+rhDFlq zi%R~KsOmol+*`I?CFv2q7`MHkeSf2G=C=YKshAeHr8n~Z+W$p~)aK43TN=%I0>maB zVn;;_z9Y|WZ~EwRgd;ef;^6XpN%(|VvrtXE5JCg@6gG_4LM7we9& zF3KxK8B1wis#{9q(sI5%zBhWQpi8uaB@r}8Hr>xKaW-C%+u%uK0Y~@h$m4Dk-z5hx z)^=J)p->;gPZwmgz&*nb3s1YHohOT~x^MJ5xp(mUX-?cw8#e3h0Y{=Z|K7ww?-q|~ zG3^(v+q}LzeK|9&It>JL8mP0zeT=PQc1>xz?ebC+@f1dI9g9e)$B3vD^wzw(gh0;n zPP(8hBmfFF*o>j}8%H5s+hJXOvAQN@-q`OfcgR5XQSU!A7Vy`Cx_tqdsv&oP>gOz3 z9PCD}B8qk|gi>^ei#Bg|e-qa{BB_(yRWISt_g`4gW#*Oq)sZ1HKC+lLV)2vJ?+)uQ zSRCyh&U z5(BMa29p939p(1D0^et9^hOyic~T=@{HUB_p>wcLlBdAR*KIO1(!|M$i`ErhO4y&K zu7}B32>d;aIyo97;mVYF2}B#n`zum+r*3qqlzRO2O~v+=xk z%j*{`qSJiY4>RQ^0D+{GJ%jVQFh_$;Y~!VWxDn=gC;YRZoZVM>Yqw0h!|DQi1vHS|wL` z<9~E1YN)%VkKZ5?nad?5r_}B)x3Ag57qR^D)HEBW&vg8P1n`P#uY9F}B=a~j;{pDe zcBk~oVxGtDRV0?v2JFR*hr2P=Q^=7-OK^?l7Nf8jUYtE2&u1U3o=J>-s_!v=*nq6u zZm1ZzDf|Q9I<6ZeCz%6xVN?HMsW}oY)PlPaCsnxWx-1L4>@J(u)fdnjJaa|P}dV!TsiLsQ>m_2*G3UP@U?90OI_IQQ)r=i@!2 zPFW)=1oX>#XE6VoT!{^-|y#es&4uyi-%$+p3&NdR)WI>+Iay75gqO9@bB|Iyz;r8|B#cMr>wlxy>N@X3Y6)h`xF0+{^^`MnPQkj1X)$@0>ELjZ%Su# zi3eidaee&$Jt(pNVsf}50zQ;1gx7zzYnDE)A$u0nrskG0h}HxZMVL4suxDnG*q+uE zK8-@eb)UZuw*u9AxwPxFWGWmNuxFL-(!T4TshCWzL0#_P-c;0w zOv43+7Q@mUO?3@uQ5%+bTW>&>{u?~W+?uSs?&6WZ;mEi2eycZ6g2EEy-i8 z@4JNEoU2&~1qkR3zn^ir16^?J*S)vxep%7}th_@R`n$V9YNV<)zg6X($}fZ8`M`nZ zaQz5r+gx4v6%}xfet_*T`(=ihaHFa~b7z^o>kv+>fL8O2?aWH$ zyZ=(;o;)4EBc@$MH%Y1f8LGj{%W*4PdeIfSykNW7;5uu%>`?oJnT=(Oq}9;!=RKNn z3U2hkY&y>1bvvrR5ZoPBQbqIo;N3tAr>efe>IvJ6Vo&=TI}%gbaXheca^#4}VFJr# zks-hKpDN$)5$hlLrl{^+J$CU3s`KO>!y#bG84A+P*p_@l>YA@Uca5qN6~QuLZM!!w z3$301Ha*;hOm?Au2v67o=ai$j&v#Da??-)}Vt$GEj?4|_6#;>3fSJ` z2{1Iy-0Np57mZ;J`g&Pfx8&e34eTKk(L5H23r4^Ep75BSkb#6;Kt@pZq4pe*`uLO( zcnngEn`=Xxww&C&gw1cW=O#Rox!hn{kJB#@b@g3Mu>T^d{05=V!RO>bPbwyx`J8oJ zN`zpA%umQSRm{PzJZOq2?{mSY)eC@~0qa{1wh>E{EukL&w|?gHCr(~sbrpaG(WUf1 zQI&$<@tOaM=y5(ti4r}}mNOJg5F5m?pE|GEtNMxIyjZnJ>Wih8CkfTEEr`oRYam;Q zJdAvV%_vFqHA1Z7`izUa4GL7_NHTS`@6!zM7^$dYE0P!?}UA+6&lZHcphG$ zqBisuhf}ou!l(D9!^rT3S-F*h8G z`AS=CrJQ}0G66n>{6@I;(`g-Se~tW`K=34laO~r+-)I*U?Ns&4jqOR0&qf7O>)L9B zP&}Rl=T(yNq3|V{&1{*FHPkEt#&YEF;r^as)Z4=9c~Gt)i6u`+1#a58{?^RRiQ?tF zbT^wfWh*nRGb{;r;anzBk%T|snKD7?NN;pfp-F|sOcE61UqNJH7XS#_l)zZ@Mw$4s^ z5#)>O>N-LSBj_7%$GU1B&;_GRgoW)rWwXrMYi+e7WrN2Q22zlf9^-5H zn;B*k219?-sm}HmQhQ7FB$r!t9_3>gGJMn409z?B(=_tir^AfV6Eg6!6@%A#e+^ix zzs`9dPrz$2`!lZJD4Hab`AiK)CR}(KN>m5IC8N{di&T4L*Q*F-DkeBdN12e)!lsSM z>x1rH*Q6wye|?P>TbC|VKPh?}UJ@0(rxA(BKUPWhcM|L$W~O;*^wE1}HvQ&Dcop&U z*i8y`ehaX=pWr|ZRJ))*+_liI5f$m!H*zG}^`kY{TTF=V?u15ey*F!3`T8PLP?hbP z*LXhv_xZy_2go^vR&O_Qzg(347K^|V&HL&Iz`YsB*s!QoM{=gTEdTaX>!QVN?bqdm z`=cV=wr1PGKka;3JguuQ)*muT%PX%DVonhw;LyC{Px1J6f|YGIf{OF2;Wx6t9AfQKiF{;nj38k|VMKr0ls^vW21{ z@eoB?O$jRmOG?~Iwzv4VmUr6P)N_hY!tAu7Ere-LfWC8&h&anA^`7GqqC;@2O&X+T z5~OhMfv7(el9)EgQW*qQfMfBR9aDW~jvSlY!&JpZ@s)(T8D|}|lE+=b{Oh_os&g#u z2OP{Uv!wDH>`%x1mAtlId5WCXt-bG>{eb`9$VTF(4^yk!Pqf*n~7Uz%Rtp#mFsy3r#>5g*8#Bc@*(uEk1V zuB;09Mww=`pEyz;bDwqFeLdC6KuE&tO#+C_R{u#EPJ+v73S)29dJngN2puM5Q0?2|nE?rqtZy4^YXVxzOfBtN39aP$I z6ik)g2`G-@L|B!c5p`& zD3L2QWbrrgd*%Z+mdjkiPLu_}QgHZQIS^yvG>?l*#<~z@N5&+qLGnRcS~Sn4M_Hy4ce`0OwkKwZDbbykRg;N!yMh>t~RK@mV1sDE)0JUCI zMQ0me^#o)OmkKrI-#@f%CjNp)?aOX#%>IixP$)Fl_t;hKIFK@q@4qJooY<w;ka z$3`uT)<-ucac5C{K!06e)8sADMi=fJGHh-OHeDKK{4tDd?q^e9Htv6nM3$ZM!&U!L zS$UTkiu|fD_&%;h(6p=c<-e4F{MAR=uy5?_tyh-M-DJ^fgcTjEg?^C?@q0=;PV-bT zTF*D%rN6*adcK(`=BPIgROx;hB!M3Jb@*bVkAi}ZkFc4T$%|h3K0}`Y&wB)>i&$C)pVCvzNXRHsqsaTJVS1L)()DOqPt#DtpaCyS+2+qm*KBPV=CERK4biCh-s40k%g= zehvs*dvR|1FpX>jJ{Fj^om&*8&rn8h5Hr2H?E(eQefxQWJt%|1vhy9L;E0%MW;Uk- z1pLpJKUtO#ejuZesDKx%QCZ>Ez{^Ef77>#YiAPNL?w>MyQV;zoCC9+O7e<=h3#dH; z#Oli%+Qa>#{D$#N7HJYb0j*oOVpTLib3H;88pgy@+R9QxpzBB|^1)&Eub zq8k5k98(-UMQQvrGk_D0kb8D6nfTdw?sKT=p*EDZCWME}ESBmNDmRZbahmWBmNSd% zW(c4k$y3DpbK2W2F>m1X+zQmD9QGNSM}qf-0cW~Jalb!ZG8^6z&l|Z+Mk*6xYic3E zeXrY%99kOfJndU@2O7DeuKRA}I;w6^+H^GO&tB@jYT(?NHXS8jd9Io&Kupbfb<-@O z%m;XBy?fRP&feB0*JD14w=iKpTBw5>jyrxW#^Pac)~h-|)}DlCg zVqUUt5J@~AuWYnWmwy>g17!3e%OIo$>EG!yt{i5FXy^mDi z4t=GvBG_U*fw*Jl$s?fCPOc`TC46h}dRO|~Vjf?`t*N(-mQHz%LeJpkMR1^c`pc#K zMK7#*Ky(81l~6wJ*g8xKV&Srj<$703DujOJButev{-iA`WLqZf*qI(sYnPImkh`4n z>)}pqo5kj!-dTDi!tW}I$Y&XMc5Hc1(50#Emh5#!_O#UVH66F;)k^o6i*vH&(K3fG zLV-m4Q8o!dQFTM<))%zMI+R!jH=W(wY|ZCU`22s)g-_7Ycr^Omw?}Q*!&0yCrVAEX z;>M#VIHXr=Jr_fg?}sjpJYHs7dQn7VeS-5q-TGOqX7KOc2w9c8)qzaTXhWaT4J=6s znYa^xe3q&Pw2f1G^r-m$?C|{%(|hb65@16V2TI)zZ6;hxBIu9TrN-*LM3q~g);@N8 z@g?kUgfU&-VxVtcA=$$uReYrV%H`e9Ivul?%bk~9I!6k(J>a8l`)pOmj(my-dABvH zT3+E0@%9xSKH4Et#=s2?%Q(i#|BlJW9YCr=g+fOJM-MT4$0=%d$S@o98V>d z`gJ_Fq~xIUz6MIWpqY0A+-~d%a`#_60y^iSvYj9rrY6l+(KL=9JNYr^Z|o+$E#vE&^GkHZaFz~R*A;> zJ12+kJleQclgX%4ab_0T`Cs`xihz-MSSL!Q=~@DBxABmztox@2^oz9cQmA}bwa>Cq z%@>bViVf(kJjzn(FSBz2X@oiZ)QLCOH%gFO8fEx9@%@5%!1L$*ETM747D~4~R+(g@ zfZ8e~0|!Zxl;tLmCuxg@FNIJ+0stf*b@w+dG`GjvzD*+8+`6e|pbJ`0aY*A#En(28 zNi@-AmPJk?_iOL#d_2KTLS&3IEd?7PNR0p?9BP#EWE=OT64_s(OIGZur3!67<@U_L zGJX4zg!MndCU1=@*|j6+OIP8hzg4WYRnE6!H3C0>TVaaTGudAb;d129ntJ{aR>W%G z#1GxtTbsOmi*kkaMl0+bVu@VdVLOj2!w5>LXPA!^z4uo{4!$w%>sr2bfA-(Fsb$ov z-$;sc8}3)KW<{+xF0TioeicV)74J|5er;;|Sdo+O{dJO2^sTm;PB;OtWwDO+glgi9 zFlQ`F=6_rqO8ejPuiq!?2`X8=owzG{i<9x6WpaLS;SM$g8GM-1_$q42>k+3u(Up?l zBHL(QMBigt&*zfN`(GCC4Ugj2qiH4Qqq)R}2*>YZ^1RA13UJs-?rMBh-{bqgv zhLrwWe$^ZA>0gQeF~=<|)o?@8Oq+01npEK^tg5H>h z-*kLURi3W4{ zTkPlO%@A+s`iF|DHL@2zE6Mkehe<%Xp78bvP?skY@;Fk6{lxR$+>R&ac(Pq)XqMja z2vCSM0czTlP`v_wUnU46D&->;a52ZljacXCf8RJ~NAM!xo3t-sagx_6As2}=$T=_K z^K!KC)=tHE_I9y8{34DYoM7|X}or_p8d;UdfsiK z8@^{B(}aTadDR6W0dx%Xswlcmm{yv%UyRysKgm`sUk#-AjIG~Q z@0nOM#uJ;k*SbGlyG;%3E%=}$>|uDI7J98D8TAcz-8)xl?J*FG;&|(p@)>@IMlmc^ zr4xtqU#Md4n(D|()d&Aw>zjT7T{=*@m3LrX+@?IPTn@OXY8k|qj{XvT$WmGw%?4f% zyH%A#lIaBUYMCYM4ALYl^0N~fO+9DDTNadwo`?_yhk%^pSt@H^wPQPMjg~vB zVb@WkYwU`zk(nckA=Tf_BFMv>{+73Fzefk7r*Br~8Rz}Lxf2Q>hg-2v{&MC(+a@Z_MAnY6U z-!J^5EI1q@HAA-=2;^ap>?qVttpL9s3ucPiTfc8%-%zZSjhmIq;WJWN4*W(GOvHXT z^T~xKUf|WG@(#1r=y#-87U<#{Vk!bNbEJ`(R_;%b$vu4DcMS(KlA zmHc_t~fz4O!>E&FXWc)tIztJ4;O41+TQT+ z3D~fChk1^>Y-inefqg?Xt-SQ6%T3^8R%>(8222E`jFt$;JTyyl7XKoV@@&^)%TeRt z_BKKzcV7HW{KO6APz?9hh=pb{kKVujk)?J25pRCrI|HaOm5+Y85hswz`8E>sU+q|q zh>9s=9O-J-HkAmsf%`7O`&g^Ow}`+?$(nwVhuhQJpyA7<} zOaZ0PM7BrBh%Y9asw>O@cyaZ`!xmSaG1Zs_dlY5VUT{WEr+JFq!HVyl!Z)uFS65GP zrN2bdQ_*IMhJkQXm#V5PTAH0zF=S&JHOXCEDt=osG z$D2Q$fc{qOJi7y@Z^DE`Zn?Q0cisXjVqPmB&*QN1*o08TKNndMQ_*x zxg(DuSHf9fU~X;+g!;U+z%QE5*WDn+Ox30u117o%hArfV*Ff9aV&%jCZ1MLgEK zh+$*CBN`F(wrqdxRODlQM)2ANrt7}A9wHEW@8vYpqxKIp@uu24zJ%q^o`mt;{4lnE zFegVlRuALm!iV)>1n+zI!9gwIJ1()Z0EX0O-6!w(k z2mJ;D9eg^$coeu22=|U& zx{Ae45pHFxP=;eyn{BUpplN9u=-etOyMmQfl(M#m8+X&OnTj!B~t`GKu20BSQF6~%-T7V;c`W(+8aoOYmCGRGMr$ir$wD{HR{-ku?9!A@aPL~u$x9o{}E~yUvWE> z50D~*6v9ych=94_TLZs=7f~Cy5$-@4Q4Cx)f4DI{%MHiT}4P(_2kR1qA+i6AbMR&v=5%E0Cj9VXi$j9{5%$Anieo_m%$llt zw#sgW)MODz=!^aCf(8aCC%-9VL&Uj%9RV{HX zfcBFA{Q~h}L_Y=5`W@M~PMv$7EwMr{#HAY3^K)~}Rs7U;e4}geJPn9_V{Z1)Kjf|y zM_&EU_*9HsUp0cwT9+l5?Rk_s5mQq-ESqv9d|k-?VgJBKTI49~JEoU_T!1f+mj7JZ zp+BSifr4bY+N`^0!^2=^LC3aPdggc_iLAjJ>K{=kkBORli1|UssAk3NK6gLfGn}^? zep#IOH*ejpup!F6vv;7s1sXdk0}{c^j&_3hf&Gc=mp)0=PD{OyK5#Vpy`^E5kukhe zVWYlck-q%?8ZGz^QF+;^ym9$p6&0=$bUhyVaJ#(*s`G&yNXeT+RvRIjw+{}(h~wSi z+-I~>NjyMIL)=!v&xi+Ss~e8no;wN*-LBL2!b4)3hnvX*lkG^C)llH=<(S+y<_>|p zg{0>^plZ%xvuTMZ^pYOjQ@OF(_qJrFL-}<;<0$K2)_))BH$iYf#UY5ZrVsD)@$f^1 zaQW~qyXEQRsz~sS=3kS3nVUArSZUdd)lah2m{k!R0;`>llF`-KA%HwF#4H9Pu=B8W zeQn0N2w@z?+}Vym{P9H=VN1CXAer^pE&x;l{UgjF@cQ=&Au(*0z(!H_V|Ish!osUP zLPAtc`#-2|e2aIv$<=b4HSLwo$fNzyRlHuAod-?JlYyhZt9;F3i~&*7p!9V>?qj{^ zTds?u9ti3?mN_@VmoABuF7oaFzChMUI!kP|mgTz(h@FJ8qfufKg zJ+f+8}H4;M!mFu)%w+*c>^=T`HUG=`_P(bBYanULCCqPVws8^-gTBzj>g-YTtK>$mHL`oI&O7@BSUraub5J79p-Qq! zdrvQ%Dz`1GCm<^=XQE{mc|EuR22r6!90Xs~0EA!vxeB~q>c#$Z1x{5-0ON5^$`vzI zGldRzc|!%K8s>By9`?_fT|bWYmblB?05ep;*4s=Wm)JW%&09pZwGQMUj~mNQV|ut` zxl>Tp3|*3eK#=LS+b)^v0jNSG2YLRySh5T`uu7eaI1iA4eu+l*4g328`7sCAtlYyK zqhX){EdB=Eocb=7WyNCf(l!BMLj~VBM%fA~8g0PPQPjf{Wj)W^1DaE1zMrCAnF{1= zdxH=BqK|WO=y8yhDBHF8=Q35YkjrXQ&5Z!&G4zHo43lF3EeSaAW_ic_Kh{7)BH!}9 zMv6+t1G9jsnPmpj&)+f|eYxeyCL>IkpWqJFn9>c3>b&({YHqqUeN&N0yPtQIE(wx-+!R)z|5}P z1vjk%*g(FI@<4fMqO0BKB#bSaI|2?W2lvoGb8H}GVYS6YoP&cc54L3Dk+&j#80G}O zi`<^)+XMS?JyNYm>`odz`wW(l>P-*3oP!tKOle2#K%j3E$n7^&z2ILvN{D@T8|V?& zyXtQs#6nrKQI@f3XD+NW( zQC&XxHrDoR0sfS)>dfrF)8i^=UG1*szg{R$eVePOiKdUbLa(nNDlu8~+%xOfg#l3| zEQ4s!r?Fw|5VsT#tRi3xKcahja}nM)X{@E9WYiEJ3Qe?xX-CiVezN^4A%vYS zNqnQ|?{&F^xmUrzs#QL$=9yD1z7I@jV1dN<^yMO)S?q6)|BA0D-$_=rflcou8JMr3 zPqC?v?GSc$$zU@cbl#A4GIC31j8H&Wh715xRZBpk)FhbIs_$Zl3?mrsQVkM10+

    p$pqYJAFj#-Z5IZaDUIP@N+Xk4mq5O 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û@1*KX@p7O7w3@&?;a!7Ozf#3=+GnzkiN1hK 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 literal 0 HcmV?d00001 diff --git a/packages/sonicwall_firewall/0.1.1/img/logo.svg b/packages/sonicwall_firewall/0.1.1/img/logo.svg new file mode 100755 index 0000000000..fb1aded68a --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/img/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/packages/sonicwall_firewall/0.1.1/kibana/dashboard/sonicwall_firewall-782e2cf0-d78f-11ec-bc4f-47419689dcde.json b/packages/sonicwall_firewall/0.1.1/kibana/dashboard/sonicwall_firewall-782e2cf0-d78f-11ec-bc4f-47419689dcde.json new file mode 100755 index 0000000000..0591f6b1d5 --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/kibana/dashboard/sonicwall_firewall-782e2cf0-d78f-11ec-bc4f-47419689dcde.json @@ -0,0 +1,152 @@ +{ + "attributes": { + "description": "Dashboard for SonicWall Firewall events", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"sonicwall_firewall.log\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"sonicwall_firewall.log\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}" + }, + "optionsJSON": "{\"hidePanelTitles\":false,\"syncColors\":false,\"useMargins\":true}", + "panelsJSON": "[{\"embeddableConfig\":{\"enhancements\":{},\"hidePanelTitles\":false,\"savedVis\":{\"data\":{\"aggs\":[],\"searchSource\":{\"filter\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"}}},\"description\":\"\",\"id\":\"\",\"params\":{\"controls\":[{\"fieldName\":\"observer.name\",\"id\":\"1652981377419\",\"indexPatternRefName\":\"control_13a27ebe-963e-4539-9013-186e247e0b32_0_index_pattern\",\"label\":\"Firewall ID\",\"options\":{\"dynamicOptions\":true,\"multiselect\":true,\"order\":\"desc\",\"size\":5,\"type\":\"terms\"},\"parent\":\"\",\"type\":\"list\"}],\"pinFilters\":false,\"updateFiltersOnChange\":true,\"useTimeFilter\":true},\"title\":\"\",\"type\":\"input_control_vis\",\"uiState\":{}}},\"gridData\":{\"h\":4,\"i\":\"13a27ebe-963e-4539-9013-186e247e0b32\",\"w\":13,\"x\":0,\"y\":0},\"panelIndex\":\"13a27ebe-963e-4539-9013-186e247e0b32\",\"title\":\"Filter by Firewall (Syslog ID)\",\"type\":\"visualization\",\"version\":\"8.2.0\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-d6a337e6-588b-47b6-9414-c621dcf265c9\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"d6a337e6-588b-47b6-9414-c621dcf265c9\":{\"columnOrder\":[\"412981b2-ba5e-4e78-a96b-c51be9ae8870\",\"4e72963e-8fc8-475c-88ad-bafcc38a726b\",\"abcd61b9-9bfc-45e6-8c71-3167174a8bcd\"],\"columns\":{\"412981b2-ba5e-4e78-a96b-c51be9ae8870\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Top 5 values of event.code\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"abcd61b9-9bfc-45e6-8c71-3167174a8bcd\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"event.code\"},\"4e72963e-8fc8-475c-88ad-bafcc38a726b\":{\"dataType\":\"date\",\"isBucketed\":true,\"label\":\"@timestamp\",\"operationType\":\"date_histogram\",\"params\":{\"dropPartials\":false,\"includeEmptyRows\":true,\"interval\":\"auto\"},\"scale\":\"interval\",\"sourceField\":\"@timestamp\"},\"abcd61b9-9bfc-45e6-8c71-3167174a8bcd\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count of records\",\"operationType\":\"count\",\"params\":{\"emptyAsNull\":true},\"scale\":\"ratio\",\"sourceField\":\"___records___\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"abcd61b9-9bfc-45e6-8c71-3167174a8bcd\"],\"layerId\":\"d6a337e6-588b-47b6-9414-c621dcf265c9\",\"layerType\":\"data\",\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"splitAccessor\":\"412981b2-ba5e-4e78-a96b-c51be9ae8870\",\"xAccessor\":\"4e72963e-8fc8-475c-88ad-bafcc38a726b\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\"}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":14,\"i\":\"b0ebfbc0-3fbd-4b2e-a6f8-7aee80e043b5\",\"w\":35,\"x\":13,\"y\":0},\"panelIndex\":\"b0ebfbc0-3fbd-4b2e-a6f8-7aee80e043b5\",\"title\":\"Event code histogram\",\"type\":\"lens\",\"version\":\"8.2.0\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-2c3a0f47-236c-41cb-86e8-e8a27033d165\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"2ab93ebb-d843-4bdb-99a2-c55dd1b5c096\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"2c3a0f47-236c-41cb-86e8-e8a27033d165\":{\"columnOrder\":[\"ac755b72-5005-416d-8da8-7001a2ba5366\",\"b988645c-c513-4755-b369-3f3787e6045d\"],\"columns\":{\"ac755b72-5005-416d-8da8-7001a2ba5366\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Top 5 values of observer.name\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"b988645c-c513-4755-b369-3f3787e6045d\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"observer.name\"},\"b988645c-c513-4755-b369-3f3787e6045d\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count of records\",\"operationType\":\"count\",\"params\":{\"emptyAsNull\":true},\"scale\":\"ratio\",\"sourceField\":\"___records___\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"2ab93ebb-d843-4bdb-99a2-c55dd1b5c096\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"sonicwall_firewall.log\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"sonicwall_firewall.log\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"ac755b72-5005-416d-8da8-7001a2ba5366\"},{\"columnId\":\"b988645c-c513-4755-b369-3f3787e6045d\"}],\"layerId\":\"2c3a0f47-236c-41cb-86e8-e8a27033d165\",\"layerType\":\"data\"}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":10,\"i\":\"17735289-cfc4-429a-a5c5-f3d19df013dc\",\"w\":13,\"x\":0,\"y\":4},\"panelIndex\":\"17735289-cfc4-429a-a5c5-f3d19df013dc\",\"title\":\"Event count by firewall\",\"type\":\"lens\",\"version\":\"8.2.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"layerListJSON\":\"[{\\\"sourceDescriptor\\\":{\\\"type\\\":\\\"EMS_TMS\\\",\\\"isAutoSelect\\\":true,\\\"lightModeDefault\\\":\\\"road_map_desaturated\\\"},\\\"id\\\":\\\"93ebdd92-cae8-455c-affe-191e18edcb95\\\",\\\"label\\\":null,\\\"minZoom\\\":0,\\\"maxZoom\\\":24,\\\"alpha\\\":1,\\\"visible\\\":true,\\\"style\\\":{\\\"type\\\":\\\"TILE\\\"},\\\"includeInFitToBounds\\\":true,\\\"type\\\":\\\"EMS_VECTOR_TILE\\\"},{\\\"sourceDescriptor\\\":{\\\"geoField\\\":\\\"source.geo.location\\\",\\\"requestType\\\":\\\"heatmap\\\",\\\"resolution\\\":\\\"SUPER_FINE\\\",\\\"id\\\":\\\"7dc5cffe-5449-4411-8838-f1a1076f3592\\\",\\\"type\\\":\\\"ES_GEO_GRID\\\",\\\"applyGlobalQuery\\\":true,\\\"applyGlobalTime\\\":true,\\\"applyForceRefresh\\\":true,\\\"metrics\\\":[{\\\"type\\\":\\\"count\\\"}],\\\"indexPatternRefName\\\":\\\"layer_1_source_index_pattern\\\"},\\\"id\\\":\\\"d4d78e49-4c8e-4980-9cb9-581d6dc6b826\\\",\\\"label\\\":null,\\\"minZoom\\\":0,\\\"maxZoom\\\":24,\\\"alpha\\\":0.75,\\\"visible\\\":true,\\\"style\\\":{\\\"type\\\":\\\"HEATMAP\\\",\\\"colorRampName\\\":\\\"theclassic\\\"},\\\"includeInFitToBounds\\\":true,\\\"type\\\":\\\"HEATMAP\\\"}]\",\"mapStateJSON\":\"{\\\"zoom\\\":1.88,\\\"center\\\":{\\\"lon\\\":0,\\\"lat\\\":19.94277},\\\"timeFilters\\\":{\\\"from\\\":\\\"now-15y\\\",\\\"to\\\":\\\"now\\\"},\\\"refreshConfig\\\":{\\\"isPaused\\\":true,\\\"interval\\\":0},\\\"query\\\":{\\\"query\\\":\\\"data_stream.dataset :\\\\\\\"sonicwall_firewall.log\\\\\\\" \\\",\\\"language\\\":\\\"kuery\\\"},\\\"filters\\\":[],\\\"settings\\\":{\\\"autoFitToDataBounds\\\":false,\\\"backgroundColor\\\":\\\"#ffffff\\\",\\\"customIcons\\\":[],\\\"disableInteractive\\\":false,\\\"disableTooltipControl\\\":false,\\\"hideToolbarOverlay\\\":false,\\\"hideLayerControl\\\":false,\\\"hideViewControl\\\":false,\\\"initialLocation\\\":\\\"LAST_SAVED_LOCATION\\\",\\\"fixedLocation\\\":{\\\"lat\\\":0,\\\"lon\\\":0,\\\"zoom\\\":2},\\\"browserLocation\\\":{\\\"zoom\\\":2},\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"showScaleControl\\\":false,\\\"showSpatialFilters\\\":true,\\\"showTimesliderToggleButton\\\":true,\\\"spatialFiltersAlpa\\\":0.3,\\\"spatialFiltersFillColor\\\":\\\"#DA8B45\\\",\\\"spatialFiltersLineColor\\\":\\\"#DA8B45\\\"}}\",\"title\":\"\",\"uiStateJSON\":\"{\\\"isLayerTOCOpen\\\":true,\\\"openTOCDetails\\\":[]}\"},\"enhancements\":{},\"hiddenLayers\":[],\"hidePanelTitles\":false,\"isLayerTOCOpen\":false,\"mapBuffer\":{\"maxLat\":66.51326,\"maxLon\":45,\"minLat\":0,\"minLon\":-90},\"mapCenter\":{\"lat\":46.36347,\"lon\":-7.06802,\"zoom\":2.88},\"openTOCDetails\":[]},\"gridData\":{\"h\":15,\"i\":\"a7718a64-7550-405a-8a75-4687c00dadde\",\"w\":24,\"x\":0,\"y\":14},\"panelIndex\":\"a7718a64-7550-405a-8a75-4687c00dadde\",\"title\":\"Network sources heat map\",\"type\":\"map\",\"version\":\"8.2.0\"},{\"embeddableConfig\":{\"attributes\":{\"description\":\"\",\"layerListJSON\":\"[{\\\"sourceDescriptor\\\":{\\\"type\\\":\\\"EMS_TMS\\\",\\\"isAutoSelect\\\":true,\\\"lightModeDefault\\\":\\\"road_map_desaturated\\\"},\\\"id\\\":\\\"6e0adcd6-6a1b-4fdf-9e81-66ea18ac7577\\\",\\\"label\\\":null,\\\"minZoom\\\":0,\\\"maxZoom\\\":24,\\\"alpha\\\":1,\\\"visible\\\":true,\\\"style\\\":{\\\"type\\\":\\\"TILE\\\"},\\\"includeInFitToBounds\\\":true,\\\"type\\\":\\\"EMS_VECTOR_TILE\\\"},{\\\"sourceDescriptor\\\":{\\\"geoField\\\":\\\"destination.geo.location\\\",\\\"requestType\\\":\\\"heatmap\\\",\\\"resolution\\\":\\\"SUPER_FINE\\\",\\\"id\\\":\\\"bdae40c0-6caf-4ba2-b179-7202f1e2be60\\\",\\\"type\\\":\\\"ES_GEO_GRID\\\",\\\"applyGlobalQuery\\\":true,\\\"applyGlobalTime\\\":true,\\\"applyForceRefresh\\\":true,\\\"metrics\\\":[{\\\"type\\\":\\\"count\\\"}],\\\"indexPatternRefName\\\":\\\"layer_1_source_index_pattern\\\"},\\\"id\\\":\\\"75e1e0df-43ff-4e14-9df2-4962c751d3bf\\\",\\\"label\\\":null,\\\"minZoom\\\":0,\\\"maxZoom\\\":24,\\\"alpha\\\":0.75,\\\"visible\\\":true,\\\"style\\\":{\\\"type\\\":\\\"HEATMAP\\\",\\\"colorRampName\\\":\\\"theclassic\\\"},\\\"includeInFitToBounds\\\":true,\\\"type\\\":\\\"HEATMAP\\\"}]\",\"mapStateJSON\":\"{\\\"zoom\\\":1.39,\\\"center\\\":{\\\"lon\\\":-32.42476,\\\"lat\\\":25.69542},\\\"timeFilters\\\":{\\\"from\\\":\\\"now-15y\\\",\\\"to\\\":\\\"now\\\"},\\\"refreshConfig\\\":{\\\"isPaused\\\":true,\\\"interval\\\":0},\\\"query\\\":{\\\"query\\\":\\\"data_stream.dataset :\\\\\\\"sonicwall_firewall.log\\\\\\\" \\\",\\\"language\\\":\\\"kuery\\\"},\\\"filters\\\":[],\\\"settings\\\":{\\\"autoFitToDataBounds\\\":false,\\\"backgroundColor\\\":\\\"#ffffff\\\",\\\"customIcons\\\":[],\\\"disableInteractive\\\":false,\\\"disableTooltipControl\\\":false,\\\"hideToolbarOverlay\\\":false,\\\"hideLayerControl\\\":false,\\\"hideViewControl\\\":false,\\\"initialLocation\\\":\\\"LAST_SAVED_LOCATION\\\",\\\"fixedLocation\\\":{\\\"lat\\\":0,\\\"lon\\\":0,\\\"zoom\\\":2},\\\"browserLocation\\\":{\\\"zoom\\\":2},\\\"maxZoom\\\":24,\\\"minZoom\\\":0,\\\"showScaleControl\\\":false,\\\"showSpatialFilters\\\":true,\\\"showTimesliderToggleButton\\\":true,\\\"spatialFiltersAlpa\\\":0.3,\\\"spatialFiltersFillColor\\\":\\\"#DA8B45\\\",\\\"spatialFiltersLineColor\\\":\\\"#DA8B45\\\"}}\",\"title\":\"\",\"uiStateJSON\":\"{\\\"isLayerTOCOpen\\\":true,\\\"openTOCDetails\\\":[]}\"},\"enhancements\":{},\"hiddenLayers\":[],\"hidePanelTitles\":false,\"isLayerTOCOpen\":false,\"mapBuffer\":{\"maxLat\":40.9799,\"maxLon\":135,\"minLat\":0,\"minLon\":45},\"mapCenter\":{\"lat\":23.23703,\"lon\":86.01728,\"zoom\":3.15},\"openTOCDetails\":[\"75e1e0df-43ff-4e14-9df2-4962c751d3bf\"]},\"gridData\":{\"h\":15,\"i\":\"8e619b8c-80b2-46a8-8c9b-4581d3d14da5\",\"w\":24,\"x\":24,\"y\":14},\"panelIndex\":\"8e619b8c-80b2-46a8-8c9b-4581d3d14da5\",\"title\":\"Network destinations heat map\",\"type\":\"map\",\"version\":\"8.2.0\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-80a65bd8-af97-4b14-87dc-c8b2f7e847a8\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"3717b68f-f5ab-4598-9f39-4a723d91165c\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"80a65bd8-af97-4b14-87dc-c8b2f7e847a8\":{\"columnOrder\":[\"4aff95fe-c475-4dbc-a230-22c2005daead\",\"a04c7483-85de-470a-a875-3b6336f57228\",\"ba0383c2-1472-45fb-a465-9125f7120a32\",\"ec6161de-fac2-420d-9b3f-e2d2df2caf68\"],\"columns\":{\"4aff95fe-c475-4dbc-a230-22c2005daead\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Top 3 values of network.transport\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ec6161de-fac2-420d-9b3f-e2d2df2caf68\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"size\":3},\"scale\":\"ordinal\",\"sourceField\":\"network.transport\"},\"a04c7483-85de-470a-a875-3b6336f57228\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Top 5 values of network.protocol\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ec6161de-fac2-420d-9b3f-e2d2df2caf68\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"network.protocol\"},\"ba0383c2-1472-45fb-a465-9125f7120a32\":{\"dataType\":\"number\",\"isBucketed\":true,\"label\":\"Top 3 values of destination.port\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ec6161de-fac2-420d-9b3f-e2d2df2caf68\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"size\":3},\"scale\":\"ordinal\",\"sourceField\":\"destination.port\"},\"ec6161de-fac2-420d-9b3f-e2d2df2caf68\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count of records\",\"operationType\":\"count\",\"params\":{\"emptyAsNull\":true},\"scale\":\"ratio\",\"sourceField\":\"___records___\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"3717b68f-f5ab-4598-9f39-4a723d91165c\",\"key\":\"event.action\",\"negate\":false,\"params\":{\"query\":\"connection-start\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"event.action\":\"connection-start\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset :\\\"sonicwall_firewall.log\\\" \"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"ba0383c2-1472-45fb-a465-9125f7120a32\",\"4aff95fe-c475-4dbc-a230-22c2005daead\",\"a04c7483-85de-470a-a875-3b6336f57228\"],\"layerId\":\"80a65bd8-af97-4b14-87dc-c8b2f7e847a8\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"ec6161de-fac2-420d-9b3f-e2d2df2caf68\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"palette\":{\"name\":\"positive\",\"type\":\"palette\"},\"shape\":\"pie\"}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"db14ebf1-c490-427c-bdde-d48da4496d45\",\"w\":19,\"x\":0,\"y\":29},\"panelIndex\":\"db14ebf1-c490-427c-bdde-d48da4496d45\",\"title\":\"Allowed connections by transport/protocol/destination.port\",\"type\":\"lens\",\"version\":\"8.2.0\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-951e4235-9dec-43ae-b400-bfe367e43e0b\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"951e4235-9dec-43ae-b400-bfe367e43e0b\":{\"columnOrder\":[\"7200128d-9260-4e3f-a280-5cf5f9c84d33\",\"155e5ba9-caa5-4b01-a9c4-e53ac5ec7ce4\"],\"columns\":{\"155e5ba9-caa5-4b01-a9c4-e53ac5ec7ce4\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count of records\",\"operationType\":\"count\",\"params\":{\"emptyAsNull\":true},\"scale\":\"ratio\",\"sourceField\":\"___records___\"},\"7200128d-9260-4e3f-a280-5cf5f9c84d33\":{\"dataType\":\"ip\",\"isBucketed\":true,\"label\":\"Top 5 values of source.ip\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"155e5ba9-caa5-4b01-a9c4-e53ac5ec7ce4\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"source.ip\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"columns\":[{\"columnId\":\"7200128d-9260-4e3f-a280-5cf5f9c84d33\"},{\"columnId\":\"155e5ba9-caa5-4b01-a9c4-e53ac5ec7ce4\"}],\"layerId\":\"951e4235-9dec-43ae-b400-bfe367e43e0b\",\"layerType\":\"data\"}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{},\"hidePanelTitles\":true},\"gridData\":{\"h\":15,\"i\":\"06b11f86-c986-4a30-b1da-1724529bf864\",\"w\":15,\"x\":19,\"y\":29},\"panelIndex\":\"06b11f86-c986-4a30-b1da-1724529bf864\",\"type\":\"lens\",\"version\":\"8.2.0\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-287c2e25-3cb0-41d5-8bf8-ae1fb696173c\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"287c2e25-3cb0-41d5-8bf8-ae1fb696173c\":{\"columnOrder\":[\"ae8e1a22-3aff-4ca8-9fcc-566bb87aa283\",\"2c8c78cf-034a-4278-9335-66f22dd19e4b\"],\"columns\":{\"2c8c78cf-034a-4278-9335-66f22dd19e4b\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count of records\",\"operationType\":\"count\",\"params\":{\"emptyAsNull\":true},\"scale\":\"ratio\",\"sourceField\":\"___records___\"},\"ae8e1a22-3aff-4ca8-9fcc-566bb87aa283\":{\"dataType\":\"ip\",\"isBucketed\":true,\"label\":\"Top 5 values of destination.ip\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"2c8c78cf-034a-4278-9335-66f22dd19e4b\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"destination.ip\"}},\"incompleteColumns\":{}}}}},\"filters\":[],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset :\\\"sonicwall_firewall.log\\\" \"},\"visualization\":{\"columns\":[{\"columnId\":\"ae8e1a22-3aff-4ca8-9fcc-566bb87aa283\"},{\"columnId\":\"2c8c78cf-034a-4278-9335-66f22dd19e4b\"}],\"layerId\":\"287c2e25-3cb0-41d5-8bf8-ae1fb696173c\",\"layerType\":\"data\"}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsDatatable\"},\"enhancements\":{},\"hidePanelTitles\":true},\"gridData\":{\"h\":15,\"i\":\"f6292d23-c9c5-4798-b7bd-ab0630e0e2f0\",\"w\":14,\"x\":34,\"y\":29},\"panelIndex\":\"f6292d23-c9c5-4798-b7bd-ab0630e0e2f0\",\"type\":\"lens\",\"version\":\"8.2.0\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-80a65bd8-af97-4b14-87dc-c8b2f7e847a8\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"845be485-ea9d-4aac-a3bb-5d99702828cb\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"c4ae20da-36fc-4e3b-90fb-1f7ff301b979\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"80a65bd8-af97-4b14-87dc-c8b2f7e847a8\":{\"columnOrder\":[\"4aff95fe-c475-4dbc-a230-22c2005daead\",\"a04c7483-85de-470a-a875-3b6336f57228\",\"ba0383c2-1472-45fb-a465-9125f7120a32\",\"ec6161de-fac2-420d-9b3f-e2d2df2caf68\"],\"columns\":{\"4aff95fe-c475-4dbc-a230-22c2005daead\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Top 3 values of network.transport\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ec6161de-fac2-420d-9b3f-e2d2df2caf68\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"size\":3},\"scale\":\"ordinal\",\"sourceField\":\"network.transport\"},\"a04c7483-85de-470a-a875-3b6336f57228\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Top 5 values of network.protocol\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ec6161de-fac2-420d-9b3f-e2d2df2caf68\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"network.protocol\"},\"ba0383c2-1472-45fb-a465-9125f7120a32\":{\"dataType\":\"number\",\"isBucketed\":true,\"label\":\"Top 3 values of destination.port\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"ec6161de-fac2-420d-9b3f-e2d2df2caf68\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"size\":3},\"scale\":\"ordinal\",\"sourceField\":\"destination.port\"},\"ec6161de-fac2-420d-9b3f-e2d2df2caf68\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count of records\",\"operationType\":\"count\",\"params\":{\"emptyAsNull\":true},\"scale\":\"ratio\",\"sourceField\":\"___records___\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"845be485-ea9d-4aac-a3bb-5d99702828cb\",\"key\":\"event.category\",\"negate\":false,\"params\":[\"network\"],\"type\":\"phrases\"},\"query\":{\"bool\":{\"minimum_should_match\":1,\"should\":[{\"match_phrase\":{\"event.category\":\"network\"}}]}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"c4ae20da-36fc-4e3b-90fb-1f7ff301b979\",\"key\":\"event.action\",\"negate\":false,\"params\":{\"query\":\"connection-denied\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"event.action\":\"connection-denied\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset :\\\"sonicwall_firewall.log\\\" \"},\"visualization\":{\"layers\":[{\"categoryDisplay\":\"default\",\"groups\":[\"ba0383c2-1472-45fb-a465-9125f7120a32\",\"4aff95fe-c475-4dbc-a230-22c2005daead\",\"a04c7483-85de-470a-a875-3b6336f57228\"],\"layerId\":\"80a65bd8-af97-4b14-87dc-c8b2f7e847a8\",\"layerType\":\"data\",\"legendDisplay\":\"default\",\"metric\":\"ec6161de-fac2-420d-9b3f-e2d2df2caf68\",\"nestedLegend\":false,\"numberDisplay\":\"percent\"}],\"palette\":{\"name\":\"negative\",\"type\":\"palette\"},\"shape\":\"pie\"}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsPie\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"b60bc6be-7082-43aa-8e3b-07468984046f\",\"w\":19,\"x\":0,\"y\":44},\"panelIndex\":\"b60bc6be-7082-43aa-8e3b-07468984046f\",\"title\":\"Denied connections by transport/protocol/destination.port\",\"type\":\"lens\",\"version\":\"8.2.0\"},{\"embeddableConfig\":{\"attributes\":{\"references\":[{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-current-indexpattern\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"indexpattern-datasource-layer-c8843882-29d4-4afd-8c11-eeae1800d40c\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"a2c0360d-161b-4a36-b16d-0cf33a37314f\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"8c9a9a40-b2ef-44e0-8afd-8ef613afb85e\",\"type\":\"index-pattern\"},{\"id\":\"logs-*\",\"name\":\"d1a641a9-f4d4-459f-9723-b6a25d02680d\",\"type\":\"index-pattern\"}],\"state\":{\"datasourceStates\":{\"indexpattern\":{\"layers\":{\"c8843882-29d4-4afd-8c11-eeae1800d40c\":{\"columnOrder\":[\"708e8def-b004-4b42-ad49-a88b44da0d8f\",\"f8fbcadb-7787-4e9b-9120-bf9dbd742beb\",\"046b793c-8c99-4656-a163-bac293b4c56c\"],\"columns\":{\"046b793c-8c99-4656-a163-bac293b4c56c\":{\"dataType\":\"number\",\"isBucketed\":false,\"label\":\"Count of records\",\"operationType\":\"count\",\"params\":{\"emptyAsNull\":true},\"scale\":\"ratio\",\"sourceField\":\"___records___\"},\"708e8def-b004-4b42-ad49-a88b44da0d8f\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Top 5 values of user.name\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":false,\"orderBy\":{\"columnId\":\"046b793c-8c99-4656-a163-bac293b4c56c\",\"type\":\"column\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"size\":5},\"scale\":\"ordinal\",\"sourceField\":\"user.name\"},\"f8fbcadb-7787-4e9b-9120-bf9dbd742beb\":{\"dataType\":\"string\",\"isBucketed\":true,\"label\":\"Top 2 values of event.outcome\",\"operationType\":\"terms\",\"params\":{\"missingBucket\":true,\"orderBy\":{\"fallback\":false,\"type\":\"alphabetical\"},\"orderDirection\":\"desc\",\"otherBucket\":true,\"parentFormat\":{\"id\":\"terms\"},\"size\":2},\"scale\":\"ordinal\",\"sourceField\":\"event.outcome\"}},\"incompleteColumns\":{}}}}},\"filters\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"a2c0360d-161b-4a36-b16d-0cf33a37314f\",\"key\":\"data_stream.dataset\",\"negate\":false,\"params\":{\"query\":\"sonicwall_firewall.log\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"data_stream.dataset\":\"sonicwall_firewall.log\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"8c9a9a40-b2ef-44e0-8afd-8ef613afb85e\",\"key\":\"event.category\",\"negate\":false,\"params\":{\"query\":\"authentication\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"event.category\":\"authentication\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"index\":\"d1a641a9-f4d4-459f-9723-b6a25d02680d\",\"key\":\"event.type\",\"negate\":false,\"params\":{\"query\":\"start\"},\"type\":\"phrase\"},\"query\":{\"match_phrase\":{\"event.type\":\"start\"}}}],\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"visualization\":{\"axisTitlesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"fittingFunction\":\"None\",\"gridlinesVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"labelsOrientation\":{\"x\":0,\"yLeft\":0,\"yRight\":0},\"layers\":[{\"accessors\":[\"046b793c-8c99-4656-a163-bac293b4c56c\"],\"layerId\":\"c8843882-29d4-4afd-8c11-eeae1800d40c\",\"layerType\":\"data\",\"palette\":{\"name\":\"status\",\"type\":\"palette\"},\"position\":\"top\",\"seriesType\":\"bar_stacked\",\"showGridlines\":false,\"splitAccessor\":\"f8fbcadb-7787-4e9b-9120-bf9dbd742beb\",\"xAccessor\":\"708e8def-b004-4b42-ad49-a88b44da0d8f\"}],\"legend\":{\"isVisible\":true,\"position\":\"right\"},\"preferredSeriesType\":\"bar_stacked\",\"tickLabelsVisibilitySettings\":{\"x\":true,\"yLeft\":true,\"yRight\":true},\"valueLabels\":\"hide\"}},\"title\":\"\",\"type\":\"lens\",\"visualizationType\":\"lnsXY\"},\"enhancements\":{},\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"c46fce93-0b52-4617-b88d-703bc0a2d5e6\",\"w\":29,\"x\":19,\"y\":44},\"panelIndex\":\"c46fce93-0b52-4617-b88d-703bc0a2d5e6\",\"title\":\"Top authentications\",\"type\":\"lens\",\"version\":\"8.2.0\"},{\"embeddableConfig\":{\"columns\":[\"@timestamp\",\"event.action\",\"source.ip\",\"message\"],\"enhancements\":{},\"hidePanelTitles\":false,\"rowHeight\":0},\"gridData\":{\"h\":18,\"i\":\"ed04883d-ba56-4502-a905-046c874e4a72\",\"w\":48,\"x\":0,\"y\":59},\"panelIndex\":\"ed04883d-ba56-4502-a905-046c874e4a72\",\"panelRefName\":\"panel_ed04883d-ba56-4502-a905-046c874e4a72\",\"title\":\"Attack events\",\"type\":\"search\",\"version\":\"8.2.0\"}]", + "timeRestore": false, + "title": "[SonicWall Firewall] Dashboard", + "version": 1 + }, + "coreMigrationVersion": "8.2.0", + "id": "sonicwall_firewall-782e2cf0-d78f-11ec-bc4f-47419689dcde", + "migrationVersion": { + "dashboard": "8.2.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "13a27ebe-963e-4539-9013-186e247e0b32:control_13a27ebe-963e-4539-9013-186e247e0b32_0_index_pattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b0ebfbc0-3fbd-4b2e-a6f8-7aee80e043b5:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b0ebfbc0-3fbd-4b2e-a6f8-7aee80e043b5:indexpattern-datasource-layer-d6a337e6-588b-47b6-9414-c621dcf265c9", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "17735289-cfc4-429a-a5c5-f3d19df013dc:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "17735289-cfc4-429a-a5c5-f3d19df013dc:indexpattern-datasource-layer-2c3a0f47-236c-41cb-86e8-e8a27033d165", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "17735289-cfc4-429a-a5c5-f3d19df013dc:2ab93ebb-d843-4bdb-99a2-c55dd1b5c096", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "a7718a64-7550-405a-8a75-4687c00dadde:layer_1_source_index_pattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "8e619b8c-80b2-46a8-8c9b-4581d3d14da5:layer_1_source_index_pattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "db14ebf1-c490-427c-bdde-d48da4496d45:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "db14ebf1-c490-427c-bdde-d48da4496d45:indexpattern-datasource-layer-80a65bd8-af97-4b14-87dc-c8b2f7e847a8", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "db14ebf1-c490-427c-bdde-d48da4496d45:3717b68f-f5ab-4598-9f39-4a723d91165c", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "06b11f86-c986-4a30-b1da-1724529bf864:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "06b11f86-c986-4a30-b1da-1724529bf864:indexpattern-datasource-layer-951e4235-9dec-43ae-b400-bfe367e43e0b", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "f6292d23-c9c5-4798-b7bd-ab0630e0e2f0:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "f6292d23-c9c5-4798-b7bd-ab0630e0e2f0:indexpattern-datasource-layer-287c2e25-3cb0-41d5-8bf8-ae1fb696173c", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b60bc6be-7082-43aa-8e3b-07468984046f:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b60bc6be-7082-43aa-8e3b-07468984046f:indexpattern-datasource-layer-80a65bd8-af97-4b14-87dc-c8b2f7e847a8", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b60bc6be-7082-43aa-8e3b-07468984046f:845be485-ea9d-4aac-a3bb-5d99702828cb", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "b60bc6be-7082-43aa-8e3b-07468984046f:c4ae20da-36fc-4e3b-90fb-1f7ff301b979", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c46fce93-0b52-4617-b88d-703bc0a2d5e6:indexpattern-datasource-current-indexpattern", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c46fce93-0b52-4617-b88d-703bc0a2d5e6:indexpattern-datasource-layer-c8843882-29d4-4afd-8c11-eeae1800d40c", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c46fce93-0b52-4617-b88d-703bc0a2d5e6:a2c0360d-161b-4a36-b16d-0cf33a37314f", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c46fce93-0b52-4617-b88d-703bc0a2d5e6:8c9a9a40-b2ef-44e0-8afd-8ef613afb85e", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "c46fce93-0b52-4617-b88d-703bc0a2d5e6:d1a641a9-f4d4-459f-9723-b6a25d02680d", + "type": "index-pattern" + }, + { + "id": "sonicwall_firewall-93af7ae0-d796-11ec-bc4f-47419689dcde", + "name": "ed04883d-ba56-4502-a905-046c874e4a72:panel_ed04883d-ba56-4502-a905-046c874e4a72", + "type": "search" + } + ], + "type": "dashboard" +} \ No newline at end of file diff --git a/packages/sonicwall_firewall/0.1.1/kibana/search/sonicwall_firewall-93af7ae0-d796-11ec-bc4f-47419689dcde.json b/packages/sonicwall_firewall/0.1.1/kibana/search/sonicwall_firewall-93af7ae0-d796-11ec-bc4f-47419689dcde.json new file mode 100755 index 0000000000..091cadff7d --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/kibana/search/sonicwall_firewall-93af7ae0-d796-11ec-bc4f-47419689dcde.json @@ -0,0 +1,49 @@ +{ + "attributes": { + "columns": [ + "event.action", + "source.ip", + "message" + ], + "description": "Saved search for attacks detected and blocked by SonicWall Firewall", + "grid": { + "columns": { + "event.action": { + "width": 134.5 + }, + "source.ip": { + "width": 126.25 + } + } + }, + "hideChart": false, + "kibanaSavedObjectMeta": { + "searchSourceJSON": "{\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\",\"key\":\"event.action\",\"negate\":false,\"params\":[\"attack-blocked\",\"attack-detected\"],\"type\":\"phrases\"},\"query\":{\"bool\":{\"minimum_should_match\":1,\"should\":[{\"match_phrase\":{\"event.action\":\"attack-blocked\"}},{\"match_phrase\":{\"event.action\":\"attack-detected\"}}]}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\",\"query\":{\"language\":\"kuery\",\"query\":\"data_stream.dataset :\\\"sonicwall_firewall.log\\\" \"}}" + }, + "sort": [ + [ + "@timestamp", + "desc" + ] + ], + "title": "SonicWall Firewall attacks" + }, + "coreMigrationVersion": "8.2.0", + "id": "sonicwall_firewall-93af7ae0-d796-11ec-bc4f-47419689dcde", + "migrationVersion": { + "search": "8.0.0" + }, + "references": [ + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + }, + { + "id": "logs-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index", + "type": "index-pattern" + } + ], + "type": "search" +} \ No newline at end of file diff --git a/packages/sonicwall_firewall/0.1.1/manifest.yml b/packages/sonicwall_firewall/0.1.1/manifest.yml new file mode 100755 index 0000000000..82e3b862bc --- /dev/null +++ b/packages/sonicwall_firewall/0.1.1/manifest.yml @@ -0,0 +1,72 @@ +format_version: 1.0.0 +name: sonicwall_firewall +title: "SonicWall Firewall" +version: 0.1.1 +license: basic +release: beta +description: "Integration for SonicWall firewall logs" +type: integration +categories: + - network + - security +conditions: + kibana.version: "^8.2.0" +screenshots: + - src: /img/dashboard.png + title: Sample dashboard + size: 911x1531 + type: image/png +icons: + - src: /img/logo.svg + title: SonicWall logo + size: 32x32 + type: image/svg+xml +policy_templates: + - name: sample + title: Sample logs + description: Collect sample logs + inputs: + - type: udp + title: Collect logs via syslog + description: Collecting logs via syslog + - type: logfile + title: Collect logs from file + description: Collecting logs from file +vars: + - name: tz_offset + type: text + title: Timezone Offset + multi: false + required: true + show_user: true + default: local + description: >- + By default, datetimes in the logs will be interpreted as relative to the timezone configured in the host where the agent is running. If ingesting logs from a host on a different timezone, use this field to set the timezone offset so that datetimes are correctly parsed. Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00") from UTC. + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - sonicwall-firewall + - forwarded + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original` + type: bool + multi: false + default: false + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + +owner: + github: elastic/security-external-integrations diff --git a/packages/symantec_endpoint/1.0.0/changelog.yml b/packages/symantec_endpoint/1.0.0/changelog.yml new file mode 100755 index 0000000000..c29df2b3f5 --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/changelog.yml @@ -0,0 +1,26 @@ +# newer versions go on top +- version: "1.0.0" + changes: + - description: Make GA + type: enhancement + link: https://github.com/elastic/integrations/pull/3428 +- version: "0.0.4" + changes: + - description: Make field values conform to ECS + type: bugfix + link: https://github.com/elastic/integrations/pull/3330 +- version: "0.0.3" + changes: + - description: Make field values conform to ECS + type: bugfix + link: https://github.com/elastic/integrations/pull/3244 +- version: "0.0.2" + changes: + - description: Add documentation for multi-fields + type: enhancement + link: https://github.com/elastic/integrations/pull/2916 +- version: "0.0.1" + changes: + - description: Initial Release + type: enhancement + link: https://github.com/elastic/integrations/pull/2187 diff --git a/packages/symantec_endpoint/1.0.0/data_stream/log/agent/stream/logfile.yml.hbs b/packages/symantec_endpoint/1.0.0/data_stream/log/agent/stream/logfile.yml.hbs new file mode 100755 index 0000000000..f1500f2dbf --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/data_stream/log/agent/stream/logfile.yml.hbs @@ -0,0 +1,28 @@ +paths: +{{#each paths as |path i|}} + - {{path}} +{{/each}} +exclude_files: [".gz$"] + +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} + +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} + +fields_under_root: true +fields: + _conf: + tz_offset: '{{tz_offset}}' + remove_mapped_fields: {{remove_mapped_fields}} + +{{#if processors}} +processors: +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/symantec_endpoint/1.0.0/data_stream/log/agent/stream/tcp.yml.hbs b/packages/symantec_endpoint/1.0.0/data_stream/log/agent/stream/tcp.yml.hbs new file mode 100755 index 0000000000..9ef03795f9 --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/data_stream/log/agent/stream/tcp.yml.hbs @@ -0,0 +1,25 @@ +host: "{{listen_address}}:{{listen_port}}" +max_message_size: 1 MiB + +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} + +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} + +fields_under_root: true +fields: + _conf: + tz_offset: '{{tz_offset}}' + remove_mapped_fields: {{remove_mapped_fields}} + +{{#if processors}} +processors: +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/symantec_endpoint/1.0.0/data_stream/log/agent/stream/udp.yml.hbs b/packages/symantec_endpoint/1.0.0/data_stream/log/agent/stream/udp.yml.hbs new file mode 100755 index 0000000000..9ef03795f9 --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/data_stream/log/agent/stream/udp.yml.hbs @@ -0,0 +1,25 @@ +host: "{{listen_address}}:{{listen_port}}" +max_message_size: 1 MiB + +tags: +{{#if preserve_original_event}} + - preserve_original_event +{{/if}} +{{#each tags as |tag i|}} + - {{tag}} +{{/each}} + +{{#contains "forwarded" tags}} +publisher_pipeline.disable_host: true +{{/contains}} + +fields_under_root: true +fields: + _conf: + tz_offset: '{{tz_offset}}' + remove_mapped_fields: {{remove_mapped_fields}} + +{{#if processors}} +processors: +{{processors}} +{{/if}} \ No newline at end of file diff --git a/packages/symantec_endpoint/1.0.0/data_stream/log/elasticsearch/ingest_pipeline/default.yml b/packages/symantec_endpoint/1.0.0/data_stream/log/elasticsearch/ingest_pipeline/default.yml new file mode 100755 index 0000000000..9616d31362 --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/data_stream/log/elasticsearch/ingest_pipeline/default.yml @@ -0,0 +1,1109 @@ +--- +description: Pipeline for parsing Symantec Endpoint logs +processors: +- set: + field: event.original + copy_from: message + # Never override event.original (for the reindexing use case). + override: false + +- set: + field: ecs.version + value: '1.12.0' + +- grok: + description: Parse syslog header. + if: ctx.event.original.startsWith('<') + field: event.original + patterns: + - '^<%{NONNEGINT:log.syslog.priority:long}>(?:%{SYSLOGTIMESTAMP:timestamp}|%{TIMESTAMP_ISO8601:timestamp})(?: %{SYSLOGFACILITY})?(?: %{SYSLOGHOST:log.syslog.hostname})?(?: %{SYSLOGPROG}:)? %{GREEDYDATA:message}' + - '^%{SYSLOG5424LINE}' + pattern_definitions: + SYSLOGPROG: '%{PROG:log.syslog.process.name}(?:\[%{POSINT:log.syslog.process.pid:long}\])?' + SYSLOG5424PRI: '<%{NONNEGINT:log.syslog.priority:long}>' + SYSLOG5424BASE: '%{SYSLOG5424PRI}%{NONNEGINT:log.syslog.version:long} +(?:-|%{TIMESTAMP_ISO8601:timestamp}) +(?:-|%{IPORHOST:log.syslog.hostname}) +(?:-|%{SYSLOG5424PRINTASCII:log.syslog.process.name}) +(?:-|%{POSINT:log.syslog.process.pid:long}) +(?:-|%{SYSLOG5424PRINTASCII:log.syslog.message_id}) +(?:-|%{SYSLOG5424SD:log.syslog.structured_data})?' + SYSLOG5424LINE: '%{SYSLOG5424BASE} +%{GREEDYDATA:message}' +- grok: + description: Parse date/severity from log file dump format. + if: ctx.event.original.startsWith('20') || ctx.event.original.startsWith('19') + field: event.original + patterns: + - '^%{TIMESTAMP_ISO8601:timestamp},%{LOG_SEVERITY:log.level},%{GREEDYDATA:message}' + pattern_definitions: + LOG_SEVERITY: '(?:%{LOGLEVEL}|[Cc]ritical|CRITICAL|[Mm]ajor|MAJOR|[Mm]inor|MINOR|[Ii]nfo|INFO|[Ww]arning|WARNING|[Ee]rror|ERROR|[Ff]atal|FATAL)' + ignore_failure: true +- date: + if: ctx?.timestamp != null + field: timestamp + target_field: "@timestamp" + formats: + - "MMM dd HH:mm:ss" + - "MMM d HH:mm:ss" + - "MMM d HH:mm:ss" + - ISO8601 + - "YYYY-dd-MM HH:mm:ss" + timezone: '{{{_conf.tz_offset}}}' +- remove: + ignore_missing: true + field: timestamp + +### +# Processing steps: +# 1. Parse the CSV into an array of column values. +# 2. Parse labels from each column if the value takes the form of 'Label Name: Some Value' or 'Label Name:'. +# 3. Fingerprint the message based by joining the labels separated by '|'. Use 'NONE' for columns without an embedded label. +# 4. Set 'event.provider' based on the message fingerprint. The different log types are listed in https://knowledge.broadcom.com/external/article?legacyId=tech171741#Administrative. +# 5. Handle columns without an embedded label. Based on the fingerprint, map unlabeled columns to a key. +### + +- csv: + field: message + empty_value: "" + target_fields: + - '_csv_array.00' + - '_csv_array.01' + - '_csv_array.02' + - '_csv_array.03' + - '_csv_array.04' + - '_csv_array.05' + - '_csv_array.06' + - '_csv_array.07' + - '_csv_array.08' + - '_csv_array.09' + - '_csv_array.10' + - '_csv_array.11' + - '_csv_array.12' + - '_csv_array.13' + - '_csv_array.14' + - '_csv_array.15' + - '_csv_array.16' + - '_csv_array.17' + - '_csv_array.18' + - '_csv_array.19' + - '_csv_array.20' + - '_csv_array.21' + - '_csv_array.22' + - '_csv_array.23' + - '_csv_array.24' + - '_csv_array.25' + - '_csv_array.26' + - '_csv_array.27' + - '_csv_array.28' + - '_csv_array.29' + - '_csv_array.30' + - '_csv_array.31' + - '_csv_array.32' + - '_csv_array.33' + - '_csv_array.34' + - '_csv_array.35' + - '_csv_array.36' + - '_csv_array.37' + - '_csv_array.38' + - '_csv_array.39' + - '_csv_array.40' + - '_csv_array.41' + - '_csv_array.42' + - '_csv_array.43' + - '_csv_array.44' + - '_csv_array.45' + - '_csv_array.46' + - '_csv_array.47' + - '_csv_array.48' + - '_csv_array.49' + - '_csv_array.50' + +- script: + description: Create array from CSV values. + tag: csv-map-to-array + lang: painless + source: | + def columnArray = []; + def sortedMap = new TreeMap(); + sortedMap.putAll(ctx._csv_array); + sortedMap.forEach((key, value) -> { + def v = value; + if (v.startsWith("'") && v.endsWith("'")) + { + v = v.substring(1, v.length() - 1); + } + columnArray.add(v); + }); + ctx['_csv_array'] = columnArray; + +- script: + description: Split colon separated key/values. + tag: split-colon-separated-key-value + lang: painless + source: | + def aliases = Collections.unmodifiableMap([ + 'computer': 'computer_name', + 'domain': 'domain_name', + 'end_time': 'end', + 'local': 'local_host_ip', + 'local_host': 'local_host_ip', + 'server_name': 'server', + 'user': 'user_name' + ]); + + def keyPattern = /^([a-zA-Z][a-zA-Z0-9 \(\)-]{0,28}):(?:\s(.+)|\s)?/; + def keyValue = [:]; + def fingerprint = []; + ctx._csv_array.forEach(v -> { + def m = keyPattern.matcher(v); + def key = 'NONE'; + if (m.matches()) { + key = m.group(1).toLowerCase().replace(' ', '_'); + key = /[\(\)]+/.matcher(key).replaceAll(''); + + def tmp = aliases[key]; + if (tmp != null) { + key = tmp; + } + + + def value = m.group(2); + if (value != null && !value.trim().isEmpty()) { + keyValue[key] = value.trim(); + } + } + + fingerprint.add(key); + return true; + }); + if (!keyValue.isEmpty()) { + ctx['_csv_map'] = keyValue; + } + ctx['_fingerprint'] = String.join("|", fingerprint); + +- remove: + field: message + ignore_missing: true + +### +# Note to maintainers: +# The fingerprints below can be generated by adding 'debug' to the tags field. +# This causes a new _fingerprint field to be added to the event. +### +- script: + description: Assign keys to unlabeled columns based on fingerprints. + lang: painless + params: + providers: + # https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_Behavior + - name: 'Agent Behavior Log' + fingerprint: NONE|NONE|NONE|NONE|NONE|begin|end|rule|NONE|NONE|NONE|NONE|NONE|user_name|domain_name|action_type|file_size_bytes|device_id + event_category: [intrusion_detection, process] + columns: + - index: 1 + name: local_host_ip + - index: 2 + name: action + - index: 3 + name: event_description + - index: 4 + name: api_name + - index: 8 + name: caller_process_id + - index: 9 + name: caller_process_name + - index: 10 + name: caller_return_address + - index: 11 + name: caller_return_module_name + - index: 12 + name: parameters # name of the module, process, registry location or file + # https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_Security + - name: 'Agent Security Log' + fingerprint: + - NONE|event_description|local_host_ip|local_host_mac|remote_host_name|remote_host_ip|remote_host_mac|NONE|NONE|intrusion_id|begin|end|occurrences|application|location|user_name|domain_name|local_port|remote_port|cids_signature_id|cids_signature_string|cids_signature_subid|intrusion_url|intrusion_payload_url|sha-256|md-5 + - NONE|event_description|local_host_ip|local_host_mac|remote_host_name|remote_host_ip|remote_host_mac|NONE|NONE|NONE|begin|end|occurrences|application|location|user_name|domain_name|local_port|remote_port|cids_signature_id|cids_signature_string|cids_signature_subid|intrusion_url|intrusion_payload_url|sha-256|md-5 + event_category: [intrusion_detection, network, process] + event_type: [connection] + columns: + - index: 7 + name: traffic_direction + - index: 8 + name: network_protocol + # https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_Traffic + - name: 'Agent Traffic Log' + fingerprint: NONE|local_host_ip|local_port|local_host_mac|remote_host_ip|remote_host_name|remote_port|remote_host_mac|NONE|NONE|begin|end|occurrences|application|rule|location|user_name|domain_name|action|sha-256|md-5 + event_category: [intrusion_detection, network, process] + event_type: [connection] + columns: + - index: 9 + name: traffic_direction + - index: 8 + name: network_protocol + # https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_Activity + - name: 'Agent Activity Log' + fingerprint: site|server|domain_name|NONE|NONE|NONE|NONE + columns: + - index: 3 + name: event_description + - index: 4 + name: local_host_name + - index: 5 + name: user_name + - index: 6 + name: domain_name + # https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_Packet + - name: 'Agent Packet Log' + fingerprint: + - NONE|local_host_ip|local_port|remote_host_ip|remote_host_name|remote_port|NONE|application|action + event_category: [intrusion_detection, network, process] + event_type: [connection] + columns: + - index: 6 + name: traffic_direction + # https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_System + - name: 'Agent System Log' + fingerprint: + - NONE|category|NONE|NONE|event_time + columns: + - index: 2 + name: event_source + - index: 3 + name: event_description + # https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Administrative + - name: 'Administrative Log' + fingerprint: site|server|domain_name|admin|NONE + columns: + - index: 4 + name: event_description + # https://knowledge.broadcom.com/external/article?legacyId=TECH171741#System + - name: 'System Log' + fingerprint: site|server|NONE + columns: + - index: 2 + name: event_description + # https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_Proactive_Detection + - name: 'Agent Proactive Detection Log' + fingerprint: NONE|computer_name|detection_type|first_seen|application_name|application_type|application_version|hash_type|application_hash|company_name|file_size_bytes|sensitivity|detection_score|coh_engine_version|NONE|permitted_application_reason|disposition|download_site|web_domain|downloaded_by|prevalence|confidence|url_tracking_status|risk_level|detection_source|source|risk_name|occurrences|NONE|NONE|actual_action|requested_action|secondary_action|event_time|inserted|end|domain_name|group|server|user_name|source_computer|source_ip + columns: + - index: 0 + name: event_description + - index: 16 + name: submission_recommended + - index: 28 + name: file_path + - index: 29 + name: description + - name: 'Agent Proactive Detection Log' + fingerprint: NONE|computer_name|ip_address|detection_type|first_seen|application_name|application_type|application_version|hash_type|application_hash|company_name|file_size_bytes|sensitivity|detection_score|coh_engine_version|NONE|permitted_application_reason|disposition|download_site|web_domain|downloaded_by|prevalence|confidence|url_tracking_status|risk_level|risk_type|source|risk_name|occurrences|NONE|NONE|actual_action|requested_action|secondary_action|event_time|inserted|end|domain_name|group|server|user_name|source_computer|source_ip|intensive_protection_level|certificate_issuer|certificate_signer|certificate_thumbprint|signing_timestamp|certificate_serial_number + columns: + - index: 0 + name: event_description + - index: 17 + name: submission_recommended + - index: 29 + name: file_path + - index: 30 + name: description + # https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Policy + - name: 'Policy Log' + fingerprint: site|server|domain_name|admin|event_description|NONE + columns: + - index: 5 + name: policy_name + # https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_Scan + - name: 'Agent Scan Log' + fingerprint: scan_id|begin|end|NONE|duration_seconds|user1|user2|NONE|scan_complete|command|threats|infected|total_files|omitted|computer_name|ip_address|domain_name|group|server + columns: + - index: 3 + name: action + - index: 7 + name: event_description + # https://knowledge.broadcom.com/external/article?legacyId=tech171741#Agent_Risk + - name: 'Agent Risk Log' + fingerprint: NONE|ip_address|computer_name|source|risk_name|occurrences|NONE|NONE|actual_action|requested_action|secondary_action|event_time|inserted|end|last_update_time|domain_name|group|server|user_name|source_computer|source_ip|disposition|download_site|web_domain|downloaded_by|prevalence|confidence|url_tracking_status|first_seen|sensitivity|permitted_application_reason|application_hash|hash_type|company_name|application_name|application_version|application_type|file_size_bytes|category_set|category_type|location|intensive_protection_level|certificate_issuer|certificate_signer|certificate_thumbprint|signing_timestamp|certificate_serial_number + columns: + - index: 0 + name: event_description + - index: 6 + name: file_path + source: | + // Assume first column is always the host.hostname. + def hostname = ctx._csv_array.get(0); + if (/[\.a-zA-Z0-9_-]+/.matcher(hostname).matches()) { + if (ctx?.host == null) { + ctx['host'] = [:]; + } + ctx['host']['hostname'] = hostname; + } + + def provider = null; + for (def p: params.providers) { + if (p.fingerprint == ctx._fingerprint || (p.fingerprint instanceof Collection && p.fingerprint.contains(ctx._fingerprint))) { + provider = p; + break; + } + } + if (provider == null) { return; } + + ctx['event']['provider'] = provider.name; + if (provider?.event_category != null) { + ctx['event']['category'] = new ArrayList(provider.event_category); + } + if (provider?.event_type!= null) { + ctx['event']['type'] = new ArrayList(provider.event_type); + } + for (def c : provider.columns) { + def v = ctx._csv_array.get(c.index).trim(); + if (!v.isEmpty()) { + ctx._csv_map[c.name] = v; + } + } + + +- rename: + field: _csv_map + target_field: symantec_endpoint.log + ignore_missing: true + +### +# BEGIN handling of Symantec Endpoint fields. +### + +# Action +- lowercase: + field: symantec_endpoint.log.action + ignore_missing: true +- set: + field: event.action + copy_from: symantec_endpoint.log.action + ignore_failure: true + +# Actual Action +- set: + if: ctx?.event?.action == null + field: event.action + copy_from: symantec_endpoint.log.actual_action + ignore_failure: true + +# Admin +- set: + field: user.name + copy_from: symantec_endpoint.log.admin + ignore_failure: true + +# Application +- set: + if: ctx?.process?.executable == null + field: process.executable + copy_from: symantec_endpoint.log.application + ignore_failure: true + +# Application Name +- set: + field: file.pe.product + copy_from: symantec_endpoint.log.application_name + ignore_failure: true + +# Application Version +- set: + field: file.pe.file_version + copy_from: symantec_endpoint.log.application_version + ignore_failure: true + +# Begin +- date: + field: symantec_endpoint.log.begin + target_field: event.start + ignore_failure: true + formats: + - yyyy-MM-dd HH:mm:ss + +# Caller MD-5 +- dissect: + tag: caller-md5 + field: symantec_endpoint.log.event_description + pattern: '%{} Caller MD5=%{process.hash.md5}' + ignore_failure: true + +# Caller Process ID +- convert: + field: symantec_endpoint.log.caller_process_id + target_field: process.pid + type: long + ignore_missing: true + on_failure: + - remove: + field: symantec_endpoint.log.caller_process_id + +# Caller Process Name +- set: + if: ctx?.process?.executable == null + field: process.executable + copy_from: symantec_endpoint.log.caller_process_name + ignore_failure: true + +# Certificate Issuer +- append: + if: ctx?.symantec_endpoint?.log?.certificate_issuer != null + field: file.x509.issuer.common_name + value: '{{{symantec_endpoint.log.certificate_issuer}}}' + +# Certificate Serial Number +- set: + field: file.x509.serial_number + copy_from: symantec_endpoint.log.certificate_serial_number + ignore_failure: true + + # Certificate Signer +- append: + if: ctx?.symantec_endpoint?.log?.certificate_signer != null + field: file.x509.issuer.common_name + value: '{{{symantec_endpoint.log.certificate_signer}}}' + +# Certificate Thumbprint (hex encoded sha1 hashes are 40 characters) +- lowercase: + if: ctx?.symantec_endpoint?.log?.certificate_thumbprint != null && ctx.symantec_endpoint.log.certificate_thumbprint.length() == 40 + field: symantec_endpoint.log.certificate_thumbprint + target_field: file.hash.sha1 + +# Company Name +- set: + field: file.pe.company + copy_from: symantec_endpoint.log.company_name + ignore_failure: true + +# Company Name +- set: + field: host.hostname + copy_from: symantec_endpoint.log.computer_name + override: false + ignore_failure: true + +# Domain Name +- set: + if: ctx?.user?.domain == null + field: user.domain + copy_from: symantec_endpoint.log.domain_name + ignore_failure: true + +# Downloaded by +- set: + if: ctx?.process?.executable == null + field: process.executable + copy_from: symantec_endpoint.log.downloaded_by + ignore_failure: true + +# Download site +- uri_parts: + field: symantec_endpoint.log.download_site + ignore_failure: true + +# Duration (seconds) +- convert: + field: symantec_endpoint.log.duration_seconds + target_field: event.duration + type: long + ignore_missing: true + ignore_failure: true +- script: + description: Convert event.duration from seconds to nanoseconds. + if: ctx?.event?.duration != null + lang: painless + source: + ctx.event['duration'] = ctx.event.duration * 1e9; + +# End +- date: + field: symantec_endpoint.log.end + target_field: event.end + ignore_failure: true + formats: + - yyyy-MM-dd HH:mm:ss + +# Event Description +- set: + field: message + copy_from: symantec_endpoint.log.event_description + ignore_failure: true + +# Event Time +- date: + if: ctx?.symantec_endpoint?.log?.event_time != null + field: symantec_endpoint.log.event_time + target_field: symantec_endpoint.log.event_time + ignore_failure: true + formats: + - yyyy-MM-dd HH:mm:ss + on_failure: + - remove: + field: symantec_endpoint.log.event_time +- set: + if: ctx?.symantec_endpoint?.log?.event_time != null + field: '@timestamp' + copy_from: symantec_endpoint.log.event_time + +# File Path +- set: + field: file.path + copy_from: symantec_endpoint.log.file_path + ignore_failure: true + +# File Size (bytes) +- convert: + field: symantec_endpoint.log.file_size_bytes + target_field: file.size + type: long + ignore_missing: true + ignore_failure: true + +# Infected +- convert: + field: symantec_endpoint.log.infected + type: long + ignore_missing: true + on_failure: + - remove: + field: symantec_endpoint.log.infected + +# Inserted +- date: + if: ctx?.symantec_endpoint?.log?.inserted != null + field: symantec_endpoint.log.inserted + target_field: symantec_endpoint.log.inserted + ignore_failure: true + formats: + - yyyy-MM-dd HH:mm:ss + on_failure: + - remove: + field: symantec_endpoint.log.inserted + +# Intrusion ID +- set: + field: rule.id + copy_from: symantec_endpoint.log.intrusion_id + ignore_failure: true + +# Intrusion Payload URL + +# Intrusion URL +- set: + field: url.original + copy_from: symantec_endpoint.log.intrusion_url + ignore_failure: true + +# IP Address +- append: + if: ctx?.symantec_endpoint.log?.ip_address != null + field: host.ip + value: '{{{symantec_endpoint.log.ip_address}}}' + allow_duplicates: false + +# Last Update Time (listed as always being in GMT) +- date: + if: ctx?.symantec_endpoint?.log?.last_update_time != null + field: symantec_endpoint.log.last_update_time + target_field: symantec_endpoint.log.last_update_time + formats: + - yyyy-MM-dd HH:mm:ss + on_failure: + - remove: + field: symantec_endpoint.log.last_update_time + +# Local Host IP +- set: + if: ctx?.symantec_endpoint?.log?.local_host_ip != null && ctx.symantec_endpoint.log.local_host_ip != "0.0.0.0" + field: source.address + copy_from: symantec_endpoint.log.local_host_ip + +# Local Host MAC +- set: + field: source.mac + copy_from: symantec_endpoint.log.local_host_mac + ignore_failure: true +- gsub: + field: source.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- remove: + if: ctx?.source?.mac == '000000000000' + field: source.mac +- gsub: + field: source.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: source.mac + ignore_missing: true + +# Local Host Name +- set: + if: ctx?.symantec_endpoint?.log?.local_host_name != "" + field: source.domain + copy_from: symantec_endpoint.log.local_host_name + ignore_failure: true + +# Local Port +- convert: + if: ctx?.symantec_endpoint?.log?.local_port != "0" + field: symantec_endpoint.log.local_port + target_field: source.port + type: long + ignore_failure: true + +# Location +- set: + field: source.geo.name + copy_from: symantec_endpoint.log.location + ignore_failure: true + +# MD-5 +- set: + field: process.hash.md5 + copy_from: symantec_endpoint.log.md-5 + ignore_failure: true +- lowercase: + field: process.hash.md5 + ignore_missing: true + +# Network Protocol (known as ECS network transport) +- set: + field: network.transport + copy_from: symantec_endpoint.log.network_protocol + ignore_failure: true +- lowercase: + field: network.transport + ignore_missing: true + +# Occurrences +- convert: + field: symantec_endpoint.log.occurrences + target_field: event.count + type: long + ignore_failure: true + +# Omitted +- convert: + field: symantec_endpoint.log.omitted + type: long + ignore_missing: true + on_failure: + - remove: + field: symantec_endpoint.log.omitted + +# Remote Host IP +- set: + if: ctx?.symantec_endpoint?.log?.remote_host_ip != null && ctx.symantec_endpoint.log.remote_host_ip != "0.0.0.0" + field: destination.address + copy_from: symantec_endpoint.log.remote_host_ip + +# Remote Host MAC +- set: + field: destination.mac + copy_from: symantec_endpoint.log.remote_host_mac + ignore_failure: true +- gsub: + field: destination.mac + pattern: '[-:.]' + replacement: '' + ignore_missing: true +- remove: + if: ctx?.destination?.mac == '000000000000' + field: destination.mac +- gsub: + field: destination.mac + pattern: '(..)(?!$)' + replacement: '$1-' + ignore_missing: true +- uppercase: + field: destination.mac + ignore_missing: true + +# Remote Host Name +- set: + if: ctx?.symantec_endpoint?.log?.remote_host_name != "" + field: destination.domain + copy_from: symantec_endpoint.log.remote_host_name + ignore_failure: true + +# Remote Port +- convert: + if: ctx?.symantec_endpoint?.log?.remote_port != "0" + field: symantec_endpoint.log.remote_port + target_field: destination.port + type: long + ignore_failure: true + +# Rule +- set: + field: rule.name + copy_from: symantec_endpoint.log.rule + ignore_failure: true + +# Sensitivity +- convert: + field: symantec_endpoint.log.sensitivity + type: long + ignore_missing: true + on_failure: + - remove: + field: symantec_endpoint.log.sensitivity + +# SHA-256 +- set: + field: process.hash.sha256 + copy_from: symantec_endpoint.log.sha-256 + ignore_failure: true +- lowercase: + field: process.hash.sha256 + ignore_missing: true + +# Signing Timestamp (Agent Risk Log) +- date: + if: ctx?.symantec_endpoint?.log?.signing_timestamp != null + field: symantec_endpoint.log.signing_timestamp + target_field: symantec_endpoint.log.signing_timestamp + formats: + - UNIX + on_failure: + - remove: + field: symantec_endpoint.log.signing_timestamp +- set: + field: file.x509.not_before + copy_from: symantec_endpoint.log.signing_timestamp + ignore_failure: true + +# Source Computer +- set: + field: source.domain + copy_from: symantec_endpoint.log.source_computer + ignore_failure: true + +# Source IP +- set: + field: source.address + copy_from: symantec_endpoint.log.source_ip + ignore_failure: true + +# Submission Recommended (Recommendation in the form of YES or NO on whether to submit this detection to Symantec or not.) +- set: + if: ctx?.symantec_endpoint?.log?.submission_recommended != null && ctx.symantec_endpoint.log.submission_recommended.toLowerCase().contains('yes') + field: symantec_endpoint.log.submission_recommended + value: true +- set: + if: ctx?.symantec_endpoint?.log?.submission_recommended != null && !ctx.symantec_endpoint.log.submission_recommended.toLowerCase().contains('yes') + field: symantec_endpoint.log.submission_recommended + value: false + +# Traffic Direction +# NOTE: inbound/outbound is changed to ingress/egress because this is a host +# based EDR and ECS guidelines say to use ingress/egress for hosts. +- set: + field: network.direction + copy_from: symantec_endpoint.log.traffic_direction + ignore_failure: true +- lowercase: + field: network.direction + ignore_missing: true +- set: + if: ctx?.network?.direction == "inbound" + field: network.direction + value: ingress +- set: + if: ctx?.network?.direction == "outbound" + field: network.direction + value: egress + +# Threats +- convert: + field: symantec_endpoint.log.threats + type: long + ignore_missing: true + on_failure: + - remove: + field: symantec_endpoint.log.threats + +# Total files +- convert: + field: symantec_endpoint.log.total_files + type: long + ignore_missing: true + on_failure: + - remove: + field: symantec_endpoint.log.total_files + +# User Name +- set: + field: user.name + copy_from: symantec_endpoint.log.user_name + ignore_failure: true + +# User1 +- set: + if: ctx?.symantec_endpoint?.log?.user1 != null && ctx?.user?.name == null + field: user.name + copy_from: symantec_endpoint.log.user1 + +### +# END handling of Symantec Endpoint fields. +### + +- remove: + if: ctx?._conf?.remove_mapped_fields == true + description: Remove symantec_endpoint.log fields that are mapped in some way to ECS. + ignore_missing: true + field: + - symantec_endpoint.log.action + - symantec_endpoint.log.actual_action + - symantec_endpoint.log.admin + - symantec_endpoint.log.application + - symantec_endpoint.log.application_name + - symantec_endpoint.log.application_version + - symantec_endpoint.log.begin + - symantec_endpoint.log.caller_process_id + - symantec_endpoint.log.caller_process_name + - symantec_endpoint.log.certificate_serial_number + - symantec_endpoint.log.certificate_thumbprint + - symantec_endpoint.log.company_name + - symantec_endpoint.log.domain_name + - symantec_endpoint.log.download_site + - symantec_endpoint.log.downloaded_by + - symantec_endpoint.log.duration_seconds + - symantec_endpoint.log.end + - symantec_endpoint.log.event_description + - symantec_endpoint.log.event_time + - symantec_endpoint.log.file_path + - symantec_endpoint.log.file_size_bytes + - symantec_endpoint.log.inserted + - symantec_endpoint.log.intrusion_id + - symantec_endpoint.log.intrusion_url + - symantec_endpoint.log.last_update_time + - symantec_endpoint.log.local_host_ip + - symantec_endpoint.log.local_host_mac + - symantec_endpoint.log.local_host_name + - symantec_endpoint.log.local_port + - symantec_endpoint.log.location + - symantec_endpoint.log.md-5 + - symantec_endpoint.log.network_protocol + - symantec_endpoint.log.occurrences + - symantec_endpoint.log.remote_host_ip + - symantec_endpoint.log.remote_host_mac + - symantec_endpoint.log.remote_host_name + - symantec_endpoint.log.remote_port + - symantec_endpoint.log.rule + - symantec_endpoint.log.sha-256 + - symantec_endpoint.log.signing_timestamp + - symantec_endpoint.log.source_computer + - symantec_endpoint.log.source_ip + - symantec_endpoint.log.submission_recommended + - symantec_endpoint.log.traffic_direction + - symantec_endpoint.log.user1 + - symantec_endpoint.log.user_name + +- remove: + description: Remove empty symantec_endpoint.log object. + if: ctx?.symantec_endpoint?.log != null && ctx.symantec_endpoint.log.isEmpty() + field: symantec_endpoint + ignore_missing: true + +# ECS Categorization +- set: + field: event.kind + value: event +- append: + description: Set event.type to allowed when activity is blocked. + if: ctx?.event?.action == 'blocked' || (ctx?.message != null && !ctx.message.contains('not blocked') && ctx.message.contains('blocked')) + field: event.type + value: denied + allow_duplicates: false +- append: + description: Set event.type to allowed when activity is not blocked. + if: ctx?.event?.action == 'not blocked' || (ctx?.message != null && ctx.message.contains('not blocked')) + field: event.type + value: allowed + allow_duplicates: false +- append: + if: ctx?.event?.provider == 'Administrative Log' && ctx.message.contains('log on') + field: event.category + value: authentication +- append: + if: ctx?.event?.provider == 'Administrative Log' && ctx.message.contains('log on') + field: event.type + value: info +- set: + if: ctx?.event?.provider == 'Administrative Log' && ctx.message.contains('log on failed') + field: event.outcome + value: failure +- set: + if: ctx?.event?.provider == 'Administrative Log' && ctx.message.contains('log on succeeded') + field: event.outcome + value: success + +# Destination IP +- convert: + field: destination.address + target_field: destination.ip + type: ip + ignore_missing: true + ignore_failure: true + +# Source IP +- convert: + field: source.address + target_field: source.ip + type: ip + ignore_missing: true + ignore_failure: true + +# Network Type +- set: + if: ctx?.source?.ip != null && !ctx.source.ip.contains(':') + field: network.type + value: ipv4 +- set: + if: ctx?.source?.ip != null && ctx.source.ip.contains(':') + field: network.type + value: ipv6 + +# Host IP +- append: + if: ctx?.source?.ip != null + field: host.ip + value: '{{{source.ip}}}' + allow_duplicates: false + +# Host MAC +- append: + if: ctx?.source?.mac != null + field: host.mac + value: '{{{source.mac}}}' + allow_duplicates: false + +# Host Hostname +- set: + field: host.hostname + copy_from: source.domain + override: false + ignore_failure: true + +# Host Name +- set: + field: host.name + copy_from: host.hostname + override: false + ignore_failure: true + +# Related IP +- append: + if: ctx?.source?.ip != null + field: related.ip + value: '{{{source.ip}}}' + allow_duplicates: false +- append: + if: ctx?.destination?.ip != null + field: related.ip + value: '{{{destination.ip}}}' + allow_duplicates: false + +# Related Hash +- append: + if: ctx?.file?.hash?.sha1 != null + field: related.hash + value: '{{{file.hash.sha1}}}' + allow_duplicates: true +- append: + if: ctx?.process?.hash?.md5 != null + field: related.hash + value: '{{{process.hash.md5}}}' + allow_duplicates: true +- append: + if: ctx?.process?.hash?.sha256 != null + field: related.hash + value: '{{{process.hash.sha256}}}' + allow_duplicates: true + +# Community ID +- community_id: + ignore_failure: true + +# IP Geolocation Lookup +- geoip: + if: ctx.source?.geo == null + field: source.ip + target_field: source.geo + ignore_missing: true +- geoip: + if: ctx.destination?.geo == null + field: destination.ip + target_field: destination.geo + ignore_missing: true + +# IP Autonomous System (AS) Lookup +- geoip: + database_file: GeoLite2-ASN.mmdb + field: source.ip + target_field: source.as + properties: + - asn + - organization_name + ignore_missing: true +- geoip: + database_file: GeoLite2-ASN.mmdb + field: destination.ip + target_field: destination.as + properties: + - asn + - organization_name + ignore_missing: true +- rename: + field: source.as.asn + target_field: source.as.number + ignore_missing: true +- rename: + field: source.as.organization_name + target_field: source.as.organization.name + ignore_missing: true +- rename: + field: destination.as.asn + target_field: destination.as.number + ignore_missing: true +- rename: + field: destination.as.organization_name + target_field: destination.as.organization.name + ignore_missing: true + +- script: + # Local was assumed to be source and remote was assumed to be destination. + # But if direction is ingress then swap the two around. + description: Swap source/destination for "ingress". + tag: swap-source-destination-on-ingress + if: ctx?.network?.direction == "ingress" && ctx?.source != null && ctx?.destination != null + lang: painless + source: | + def tmp = ctx.source; + ctx.source = ctx.destination; + ctx.destination = tmp; + +- remove: + description: Retain event.original when preserve_original_event tag exists. + if: ctx?.tags == null || !ctx.tags.contains('preserve_original_event') + field: event.original + ignore_missing: true + +- remove: + if: ctx?.tags == null || !ctx.tags.contains('debug') + ignore_missing: true + field: + - _conf + - _csv_array + - _fingerprint + +on_failure: +- set: + field: error.message + value: 'processor {{ _ingest.on_failure_processor_type }}: {{ _ingest.on_failure_message }}' + +- remove: + if: ctx?.tags == null || !ctx.tags.contains('debug') + ignore_missing: true + field: + - _conf + - _csv_array + - _csv_map + - _fingerprint diff --git a/packages/symantec_endpoint/1.0.0/data_stream/log/fields/agent.yml b/packages/symantec_endpoint/1.0.0/data_stream/log/fields/agent.yml new file mode 100755 index 0000000000..c2cceee2d3 --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/data_stream/log/fields/agent.yml @@ -0,0 +1,210 @@ +- name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data from its host, the cloud info contains the data about this machine. If Metricbeat runs on a remote machine outside the cloud and fetches data from a service running in the cloud, the field contains cloud data from the machine the service is running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: project.id + type: keyword + description: Name of the project in Google Cloud. + - name: image.id + type: keyword + description: Image ID for the cloud instance. +- name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: labels + level: extended + type: object + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. +- name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Name of the domain of which the host is a member. + + For example, on Windows this could be the host''s Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host''s LDAP provider.' + example: CONTOSO + default_field: false + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip addresses. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac addresses. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + multi_fields: + - name: text + type: text + norms: false + default_field: false + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment.' + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. + + - name: os.codename + type: keyword + example: "stretch" + description: > + OS codename, if any. + +- name: input.type + type: keyword + description: Input type. +- name: log.offset + type: long + description: Offset of the entry in the log file. +- name: log.file.path + type: keyword + description: Path to the log file. +- name: log.source.address + type: keyword + description: Source address from which the log event was read / sent from. diff --git a/packages/symantec_endpoint/1.0.0/data_stream/log/fields/base-fields.yml b/packages/symantec_endpoint/1.0.0/data_stream/log/fields/base-fields.yml new file mode 100755 index 0000000000..d5fd358e28 --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/data_stream/log/fields/base-fields.yml @@ -0,0 +1,32 @@ +- name: data_stream.type + type: constant_keyword + description: Data stream type. +- name: data_stream.dataset + type: constant_keyword + description: Data stream dataset. +- name: data_stream.namespace + type: constant_keyword + description: Data stream namespace. +- name: event.module + type: constant_keyword + description: Event module + value: symantec_endpoint +- name: event.dataset + type: constant_keyword + description: Event dataset + value: symantec_endpoint.log +- name: "@timestamp" + type: date + description: Event timestamp. +- name: observer.vendor + type: constant_keyword + description: Vendor name of the observer. + value: Symantec +- name: observer.product + type: constant_keyword + description: The product name of the observer. + value: Endpoint Protection +- name: observer.type + type: constant_keyword + description: The type of the observer the data is coming from. + value: edr diff --git a/packages/symantec_endpoint/1.0.0/data_stream/log/fields/ecs.yml b/packages/symantec_endpoint/1.0.0/data_stream/log/fields/ecs.yml new file mode 100755 index 0000000000..852bacf52f --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/data_stream/log/fields/ecs.yml @@ -0,0 +1,321 @@ +- description: Unique container id. + name: container.id + type: keyword +- description: |- + Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: destination.address + type: keyword +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: destination.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: destination.as.organization.name + type: keyword +- description: Destination domain. + name: destination.domain + type: keyword +- description: City name. + name: destination.geo.city_name + type: keyword +- description: Name of the continent. + name: destination.geo.continent_name + type: keyword +- description: Country ISO code. + name: destination.geo.country_iso_code + type: keyword +- description: Country name. + name: destination.geo.country_name + type: keyword +- description: Longitude and latitude. + name: destination.geo.location + type: geo_point +- description: |- + User-defined description of a location, at the level of granularity they care about. + Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. + Not typically used in automated geolocation. + name: destination.geo.name + type: keyword +- description: Region ISO code. + name: destination.geo.region_iso_code + type: keyword +- description: Region name. + name: destination.geo.region_name + type: keyword +- description: IP address of the destination (IPv4 or IPv6). + name: destination.ip + type: ip +- description: |- + MAC address of the destination. + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. + name: destination.mac + type: keyword +- description: Packets sent from the destination to the source. + name: destination.packets + type: long +- description: Port of the destination. + name: destination.port + type: long +- description: |- + ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. + When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. + name: ecs.version + type: keyword +- description: Error message. + name: error.message + type: match_only_text +- description: |- + This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. + `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. + This field is an array. This will allow proper categorization of some events that fall in multiple categories. + name: event.category + type: keyword +- description: |- + Name of the dataset. + If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. + It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. + name: event.dataset + type: keyword +- description: |- + Timestamp when an event arrived in the central data store. + This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. + In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` < `event.created` < `event.ingested`. + name: event.ingested + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. + `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. + The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. + name: event.kind + type: keyword +- description: |- + Name of the module this data is coming from. + If your monitoring agent supports the concept of modules or plugins to process events of a given source (e.g. Apache logs), `event.module` should contain the name of this module. + name: event.module + type: keyword +- description: event.start contains the date when the event started or when the activity was first observed. + name: event.start + type: date +- description: |- + This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. + `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. + This field is an array. This will allow proper categorization of some events that fall in multiple event types. + name: event.type + type: keyword +- description: SHA1 hash. + name: file.hash.sha1 + type: keyword +- description: Name of the file including the extension, without the directory. + name: file.name + type: keyword +- description: Full path to the file, including the file name. It should include the drive letter, when appropriate. + multi_fields: + - name: text + type: match_only_text + name: file.path + type: keyword +- description: Internal company name of the file, provided at compile-time. + name: file.pe.company + type: keyword +- description: Internal version of the file, provided at compile-time. + name: file.pe.file_version + type: keyword +- description: Internal product name of the file, provided at compile-time. + name: file.pe.product + type: keyword +- description: |- + File size in bytes. + Only relevant when `file.type` is "file". + name: file.size + type: long +- description: List of common name (CN) of issuing certificate authority. + name: file.x509.issuer.common_name + type: keyword +- description: Time at which the certificate is first considered valid. + name: file.x509.not_before + type: date +- description: Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. + name: file.x509.serial_number + type: keyword +- description: |- + Original log level of the log event. + If the source of the event provides a log level or textual severity, this is the one that goes in `log.level`. If your source doesn't specify one, you may put your event transport's severity here (e.g. Syslog severity). + Some examples are `warn`, `err`, `i`, `informational`. + name: log.level + type: keyword +- description: |- + For log events the message field contains the log message, optimized for viewing in a log viewer. + For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. + If multiple messages exist, they can be combined into one message. + name: message + type: match_only_text +- description: |- + A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. + Learn more at https://github.com/corelight/community-id-spec. + name: network.community_id + type: keyword +- description: |- + Direction of the network traffic. + Recommended values are: + * ingress + * egress + * inbound + * outbound + * internal + * external + * unknown + + When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". + When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". + Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. + name: network.direction + type: keyword +- description: |- + Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) + The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". + name: network.transport + type: keyword +- description: |- + In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc + The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". + name: network.type + type: keyword +- description: Absolute path to the process executable. + multi_fields: + - name: text + type: match_only_text + name: process.executable + type: keyword +- description: MD5 hash. + name: process.hash.md5 + type: keyword +- description: SHA256 hash. + name: process.hash.sha256 + type: keyword +- description: |- + Process name. + Sometimes called program name or similar. + multi_fields: + - name: text + type: match_only_text + name: process.name + type: keyword +- description: Process id. + name: process.pid + type: long +- description: All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). + name: related.hash + type: keyword +- description: All of the IPs seen on your event. + name: related.ip + type: ip +- description: All the user names or other user identifiers seen on the event. + name: related.user + type: keyword +- description: A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. + name: rule.id + type: keyword +- description: The name of the rule or signature generating the event. + name: rule.name + type: keyword +- description: |- + Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. + Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. + name: source.address + type: keyword +- description: Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. + name: source.as.number + type: long +- description: Organization name. + multi_fields: + - name: text + type: match_only_text + name: source.as.organization.name + type: keyword +- description: Source domain. + name: source.domain + type: keyword +- description: City name. + name: source.geo.city_name + type: keyword +- description: Name of the continent. + name: source.geo.continent_name + type: keyword +- description: Country ISO code. + name: source.geo.country_iso_code + type: keyword +- description: Country name. + name: source.geo.country_name + type: keyword +- description: Longitude and latitude. + name: source.geo.location + type: geo_point +- description: |- + User-defined description of a location, at the level of granularity they care about. + Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. + Not typically used in automated geolocation. + name: source.geo.name + type: keyword +- description: Region ISO code. + name: source.geo.region_iso_code + type: keyword +- description: Region name. + name: source.geo.region_name + type: keyword +- description: IP address of the source (IPv4 or IPv6). + name: source.ip + type: ip +- description: |- + MAC address of the source. + The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. + name: source.mac + type: keyword +- description: Port of the source. + name: source.port + type: long +- description: List of keywords used to tag each event. + name: tags + type: keyword +- description: |- + Domain of the url, such as "www.elastic.co". + In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. + If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. + name: url.domain + type: keyword +- description: |- + Unmodified original url as seen in the event source. + Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. + This field is meant to represent the URL as it was observed, complete or not. + multi_fields: + - name: text + type: match_only_text + name: url.original + type: wildcard +- description: Path of the request, such as "/search". + name: url.path + type: wildcard +- description: |- + Scheme of the request, such as "https". + Note: The `:` is not part of the scheme. + name: url.scheme + type: keyword +- description: |- + Name of the directory the user is a member of. + For example, an LDAP or Active Directory domain name. + name: user.domain + type: keyword +- description: Short name or login of the user. + multi_fields: + - name: text + type: match_only_text + name: user.name + type: keyword +- description: Unparsed user_agent string. + multi_fields: + - name: text + type: match_only_text + name: user_agent.original + type: keyword diff --git a/packages/symantec_endpoint/1.0.0/data_stream/log/fields/fields.yml b/packages/symantec_endpoint/1.0.0/data_stream/log/fields/fields.yml new file mode 100755 index 0000000000..2c2cef565a --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/data_stream/log/fields/fields.yml @@ -0,0 +1,333 @@ +- name: symantec_endpoint.log + type: group + fields: + - name: action + type: keyword + description: > + The action taken on the traffic, e.g. "Blocked". + + - name: actual_action + type: keyword + description: Actual action from risk logs and proactive detection (SONAR) logs. + - name: admin + type: keyword + description: Name of the SEPM admin. + - name: api_name + type: keyword + description: API name that was blocked (agent behavior log). + - name: application + type: keyword + description: The full path name of the application involved. + - name: application_hash + type: keyword + description: The hash for this application. + - name: application_name + type: keyword + description: The application name. + - name: application_type + type: keyword + description: Application type (Trojan, key logger etc). + - name: application_version + type: keyword + description: The application version. + - name: begin + type: keyword + description: Start time of the event (also see event.start). + - name: caller_process_id + type: keyword + description: The ID of the process that triggers the logging. + - name: caller_process_name + type: keyword + description: > + The full path name of the application involved. It may be empty if the application is unknown, or if OS itself is involved, or if no application is involved. Also, it may be empty if profile says, "don't log application name in raw traffic log". + + - name: caller_return_address + type: keyword + description: > + The return address of the caller. This field allows the detection of the calling module that makes the API call. + + This is historically not used. You can expect Return Address to always be 0. + + - name: caller_return_module_name + description: > + The module name of the caller. See CallerReturnAddress for more information. + + Return Module name is historically unused. You can expect Return Module name to always be "No Module Name" except where you see Sysplant when sysplant has started. + + type: keyword + - name: category + type: keyword + description: Agent system log category (generally not populated by SEPM). + - name: category_set + type: keyword + description: Agent risk log category. + - name: category_type + type: keyword + description: Agent risk log category type. + - name: certificate_issuer + type: keyword + description: The certificate's issuer. + - name: certificate_serial_number + type: keyword + description: The certificate's serial number. + - name: certificate_signer + type: keyword + description: The certificate's signer. + - name: certificate_thumbprint + type: keyword + description: The certificate's thumbprint. + - name: cids_signature_id + type: keyword + description: The signature ID. + - name: cids_signature_string + type: keyword + description: The signature name. + - name: cids_signature_subid + type: keyword + description: The signature sub ID. + - name: coh_engine_version + type: keyword + description: TruScan engine version. + - name: command + type: keyword + description: Command sent from the SEPM. + - name: company_name + type: keyword + description: The company name from the application (used in agent risk logs). + - name: computer_name + type: keyword + description: Name of the host machine (used in agent risk/scan logs). + - name: confidence + type: keyword + description: > + The Confidence level that produced the conviction. Examples: High, low, bad, trustworthy etc. "Confidence: There is strong evidence that this file is untrustworthy." + + - name: description + type: keyword + description: Description of the virus file. + - name: detection_score + type: keyword + description: Score of detection. + - name: detection_source + type: keyword + description: Source of the detection. + - name: detection_type + type: keyword + description: Type of detection (e.g. heuristic). + - name: device_id + type: keyword + description: The GUID of an external device (floppy disk, DVD, USB device, etc.). + - name: disposition + type: keyword + description: Good / Bad / Unknown / Not available. + - name: domain_name + type: keyword + description: SEPM domain name. + - name: download_site + type: keyword + description: The URL determined from where the image was downloaded. + - name: downloaded_by + type: keyword + description: The creator process of the dropper threat. + - name: duration_seconds + type: keyword + description: The length of the scan, in seconds. + - name: end + type: keyword + description: Start time of the event (also see event.end). + - name: event_description + type: keyword + description: Description of the event. Usually, the first line of the description is treated as the summary. + - name: event_source + type: keyword + description: The data source. NETPORT, NATSRV, Network Intrusion Protection System, LiveUpdate Manager etc. + - name: event_time + type: date + description: Time of event occurrence. + - name: file_path + type: keyword + description: The file path of the attacked file. + - name: file_size_bytes + type: keyword + description: File size of application. + - name: first_seen + type: keyword + description: The first seen date for the convicted application. + - name: group + type: keyword + description: SEPM client group name. + - name: hash_type + type: keyword + description: Application hash type (MD5, SHA1, SHA256 etc). + - name: infected + type: long + description: The number of files that the scan found that were infected. + - name: inserted + type: date + description: The time that the event was inserted into the database. + - name: intensive_protection_level + type: keyword + description: The High Intensity Detection Level. + - name: intrusion_id + type: keyword + description: Intrusion ID. + - name: intrusion_payload_url + type: keyword + description: The URL that hosted the payload. + - name: intrusion_url + type: keyword + description: The URL from the detection. + - name: ip_address + type: keyword + description: IP Address of the machine. + - name: last_update_time + type: date + description: The time on the server when the event is logged into the system or updated in the system (GMT). + - name: local_host + type: keyword + description: The host name of the client computer. + - name: local_host_ip + type: keyword + description: The IP address of the local computer. + - name: local_host_mac + type: keyword + description: The MAC address of the local computer. + - name: local_host_name + type: keyword + description: The host name of the client computer. + - name: local_port + type: keyword + description: The TCP/UDP port of the local computer. + - name: location + type: keyword + description: The location used when the event occurred. + - name: md-5 + type: keyword + description: The MD5 hash value. + - name: network_protocol + type: keyword + description: Localized string for Others/ TCP/ UDP/ ICMP. + - name: occurrences + type: keyword + description: The number of attacks. Sometime, when a hacker launches a mass attack, it may be reduced to one event by the log system, depending on the damper period. + - name: omitted + type: long + description: The number of files that were omitted. + - name: parameters + type: keyword + description: > + Parameters is the name of the module, process, registry location or file that was used in the API call. Each parameter was converted to string format and separated by one space character. Double quotation mark characters within the string are escaped with a \ character. + + As an example, in the SEPM ADC policy you may have a rule with a condition which monitors for Load DLL Attempts with the rule being applied to mscoree.dll. In this case, in the parameters field you'd expect to see C:\Windows\SysWOW64\mscoree.dll. + + - name: permitted_application_reason + type: keyword + description: Reason for allow listing (e.g. Symantec permitted application list, Administrator permitted application list). + - name: policy_name + type: keyword + description: Name of the policy. + - name: prevalence + type: keyword + description: Number of users that have seen this. + - name: remote_host_ip + type: keyword + description: The IP address of the remote computer. + - name: remote_host_mac + type: keyword + description: The MAC address of the remote computer. + - name: remote_port + type: keyword + description: The TCP/UDP port of the remote computer. + - name: requested_action + type: keyword + description: Requested action by policy. + - name: risk_level + type: keyword + description: The risk level (high, med, low) for the convicted threat. + - name: risk_name + type: keyword + - name: risk_type + type: keyword + description: Localized strings for Heuristic / Cookie / Admin Black List / BPE / System Change / N/A. + - name: rule + type: keyword + description: > + The name of the rule that was triggered by the event. + + If the rule name is not specified in the security rule, then this field is empty. Having the rule name can be useful for troubleshooting. You may recognize a rule by the rule ID, but rule name can help you recognize it more quickly. + + - name: scan_complete + type: keyword + description: Scan message when scan ended. + - name: scan_id + type: keyword + description: The scan ID provided by the agent. + - name: secondary_action + type: keyword + description: Secondary action requested by policy + - name: sensitivity + type: long + description: Engine sensitivity that produced this detection + - name: server + type: keyword + description: Name of the server. + - name: server_name + type: keyword + description: Name of the server. + - name: sha-256 + type: keyword + description: The SHA-256 hash value. + - name: signing_timestamp + type: date + description: The certificate's signature timestamp. + - name: site + type: keyword + description: SEPM site name. + - name: source + type: keyword + description: Scan source (e.g. scheduled). + - name: source_computer + type: keyword + description: Computer name where this event occurred. + - name: source_ip + type: keyword + description: IP address of the machine on which the event occurred. + - name: submission_recommended + type: boolean + description: Recommendation on whether to submit this detection to Symantec. + - name: threats + type: long + description: The number of threats that the scan found. + - name: total_files + type: long + description: The number of files scanned. + - name: traffic_direction + type: keyword + description: Unknown / Inbound / Outbound + - name: url_tracking_status + type: keyword + description: Network intrusion prevention status + - name: user1 + type: keyword + description: User when scan started. + - name: user2 + type: keyword + description: User when scan ended. + - name: user_name + type: keyword + - name: web_domain + type: keyword + description: The web domain. +- name: log.syslog.hostname + type: keyword + description: Hostname parsed from syslog header. +- name: log.syslog.process.name + type: keyword +- name: log.syslog.process.pid + type: long +- name: log.syslog.priority + type: long +- name: log.syslog.version + type: long +- name: log.syslog.structured_data + type: flattened diff --git a/packages/symantec_endpoint/1.0.0/data_stream/log/manifest.yml b/packages/symantec_endpoint/1.0.0/data_stream/log/manifest.yml new file mode 100755 index 0000000000..e24087b13b --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/data_stream/log/manifest.yml @@ -0,0 +1,190 @@ +title: Symantec Endpoint Protection (SEP) Logs +type: logs +release: beta +streams: + - input: udp + template_path: udp.yml.hbs + title: SEP logs (syslog over UDP) + description: Collect Symantec Endpoint Protection (SEP) logs over UDP. + enabled: true + vars: + - name: listen_address + type: text + title: Listen Address + description: The bind address to listen for UDP connections. Set to `0.0.0.0` to bind to all available interfaces. + multi: false + required: true + show_user: true + default: localhost + - name: listen_port + type: integer + title: Listen Port + description: The UDP port number to listen on. + multi: false + required: true + show_user: true + default: 9008 + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - symantec-endpoint-log + - forwarded + - name: tz_offset + type: text + title: Timezone + multi: false + required: false + show_user: false + default: UTC + description: IANA time zone or time offset (e.g. `+0200`) to use when interpreting syslog timestamps without a time zone. + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + + - name: remove_mapped_fields + required: true + show_user: false + title: Remove fields mapped to ECS + description: Remove symantec_endpoint.log fields that have been used to populate ECS fields. This reduces the size of events by removing duplicated data. + type: bool + multi: false + default: false + - input: tcp + template_path: tcp.yml.hbs + title: SEP logs (syslog over TCP) + description: Collect Symantec Endpoint Protection (SEP) logs over TCP. + enabled: false + vars: + - name: listen_address + type: text + title: Listen Address + description: The bind address to listen for TCP connections. Set to `0.0.0.0` to bind to all available interfaces. + multi: false + required: true + show_user: true + default: localhost + - name: listen_port + type: integer + title: Listen Port + description: The TCP port number to listen on. + multi: false + required: true + show_user: true + default: 9008 + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: ssl + type: yaml + title: TLS + description: Options for enabling TLS for the listening TCP socket. See the [documentation](https://www.elastic.co/guide/en/beats/filebeat/current/configuration-ssl.html) for a list of all options. + multi: false + required: false + show_user: false + default: | + enabled: false + certificate: "/etc/pki/client/cert.pem" + key: "/etc/pki/client/cert.key" + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: false + default: + - symantec-endpoint-log + - forwarded + - name: tz_offset + type: text + title: Timezone + multi: false + required: false + show_user: false + default: UTC + description: IANA time zone or time offset (e.g. `+0200`) to use when interpreting syslog timestamps without a time zone. + - name: processors + type: yaml + title: Processors + multi: false + required: false + show_user: false + description: > + Processors are used to reduce the number of fields in the exported event or to enhance the event with metadata. This executes in the agent before the logs are parsed. See [Processors](https://www.elastic.co/guide/en/beats/filebeat/current/filtering-and-enhancing-data.html) for details. + + - name: remove_mapped_fields + required: true + show_user: false + title: Remove fields mapped to ECS + description: Remove symantec_endpoint.log fields that have been used to populate ECS fields. This reduces the size of events by removing duplicated data. + type: bool + multi: false + default: false + - input: logfile + template_path: logfile.yml.hbs + title: SEP logs (from file) + description: Collect Symantec Endpoint Protection (SEP) logs from a file. + enabled: false + vars: + - name: paths + type: text + title: Paths + multi: true + required: false + show_user: true + default: + - 'C:\Program Files (x86)\Symantec\Symantec Endpoint Protection Manager\data\dump\*.log' + - name: preserve_original_event + required: true + show_user: true + title: Preserve original event + description: Preserves a raw copy of the original event, added to the field `event.original`. + type: bool + multi: false + default: false + - name: tags + type: text + title: Tags + multi: true + required: true + show_user: true + default: + - symantec-endpoint-log + - forwarded + - name: tz_offset + type: text + title: Timezone + multi: false + required: false + show_user: false + default: UTC + description: IANA time zone or time offset (e.g. `+0200`) to use when interpreting syslog timestamps without a time zone. + - name: remove_mapped_fields + required: true + show_user: false + title: Remove fields mapped to ECS + description: Remove symantec_endpoint.log fields that have been used to populate ECS fields. This reduces the size of events by removing duplicated data. + type: bool + multi: false + default: false diff --git a/packages/symantec_endpoint/1.0.0/data_stream/log/sample_event.json b/packages/symantec_endpoint/1.0.0/data_stream/log/sample_event.json new file mode 100755 index 0000000000..080bd684ef --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/data_stream/log/sample_event.json @@ -0,0 +1,117 @@ +{ + "process": { + "executable": "C:/WINDOWS/system32/NTOSKRNL.EXE", + "hash": { + "sha256": "5379732000000000000000000000000000000000000000000000000000000000", + "md5": "53797320000000000000000000000000" + } + }, + "log": { + "syslog": { + "process": { + "name": "myproc", + "pid": 8710 + }, + "hostname": "192.0.2.1", + "priority": 165, + "version": 1 + } + }, + "destination": { + "geo": { + "name": "Default" + }, + "address": "192.168.1.113", + "port": 80, + "mac": "CC-F9-E4-A9-12-26", + "ip": "192.168.1.113" + }, + "rule": { + "name": "Block Unapproved Incoming Ports" + }, + "source": { + "address": "192.168.1.1", + "port": 33424, + "mac": "2C-3A-FD-A7-9E-71", + "ip": "192.168.1.1" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "network": { + "community_id": "1:TbyoH4bYJO0/cP/YShIpq9J+Z3s=", + "transport": "tcp", + "type": "ipv4", + "direction": "ingress" + }, + "@timestamp": "2021-11-16T12:14:15.000Z", + "ecs": { + "version": "1.12.0" + }, + "related": { + "hash": [ + "53797320000000000000000000000000", + "5379732000000000000000000000000000000000000000000000000000000000" + ], + "ip": [ + "192.168.1.113", + "192.168.1.1" + ] + }, + "host": { + "name": "host-rfc5424", + "hostname": "host-rfc5424", + "mac": [ + "CC-F9-E4-A9-12-26" + ], + "ip": [ + "192.168.1.113" + ] + }, + "symantec_endpoint": { + "log": { + "occurrences": "4", + "sha-256": "5379732000000000000000000000000000000000000000000000000000000000", + "local_port": "80", + "user_name": "sampleuser4", + "remote_port": "33424", + "rule": "Block Unapproved Incoming Ports", + "md-5": "53797320000000000000000000000000", + "network_protocol": "TCP", + "traffic_direction": "Inbound", + "remote_host_ip": "192.168.1.1", + "remote_host_mac": "2C3AFDA79E71", + "domain_name": "SMPL", + "application": "C:/WINDOWS/system32/NTOSKRNL.EXE", + "local_host_ip": "192.168.1.113", + "action": "blocked", + "end": "2020-11-11 19:25:28", + "location": "Default", + "local_host_mac": "CCF9E4A91226", + "begin": "2020-11-11 19:25:21" + } + }, + "event": { + "original": "\u003c165\u003e1 2021-11-16T05:14:15.000003-07:00 192.0.2.1 myproc 8710 - - host-rfc5424,Local Host IP: 192.168.1.113,Local Port: 80,Local Host MAC: CCF9E4A91226,Remote Host IP: 192.168.1.1,Remote Host Name: ,Remote Port: 33424,Remote Host MAC: 2C3AFDA79E71,TCP,Inbound,Begin: 2020-11-11 19:25:21,End Time: 2020-11-11 19:25:28,Occurrences: 4,Application: C:/WINDOWS/system32/NTOSKRNL.EXE,Rule: Block Unapproved Incoming Ports,Location: Default,User Name: sampleuser4,Domain Name: SMPL,Action: Blocked,SHA-256: 5379732000000000000000000000000000000000000000000000000000000000,MD-5: 53797320000000000000000000000000", + "provider": "Agent Traffic Log", + "kind": "event", + "start": "2020-11-11T19:25:21.000Z", + "count": 4, + "action": "blocked", + "end": "2020-11-11T19:25:28.000Z", + "category": [ + "intrusion_detection", + "network", + "process" + ], + "type": [ + "connection", + "denied" + ] + }, + "user": { + "name": "sampleuser4", + "domain": "SMPL" + } +} \ No newline at end of file diff --git a/packages/symantec_endpoint/1.0.0/docs/README.md b/packages/symantec_endpoint/1.0.0/docs/README.md new file mode 100755 index 0000000000..b36bc33b35 --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/docs/README.md @@ -0,0 +1,472 @@ +# Symantec Endpoint Protection Integration + +This integration is for Symantec Endpoint Protection (SEP) logs. It can be used +to receive logs sent by SEP over syslog or read logs exported to a text file. + +The log message is expected to be in CSV format. Syslog RFC3164 and RCF5424 +headers are allowed and will be parsed if present. The data is mapped to +ECS fields where applicable and the remaining fields are written under +`symantec_endpoint.log.*`. + +If a specific SEP log type is detected then `event.provider` is set (e.g. +`Agent Traffic Log`). + +## Syslog setup steps + +1. Enable this integration with the UDP input. +2. If the Symantec management server and Elastic Agent are running on different +hosts then configure the integration to listen on 0.0.0.0 so that it will accept +UDP packets on all interfaces. This makes the listening port reachable by the +Symantec server. +3. Configure the Symantec management server to send syslog to the Elastic Agent +that is running this integration. See [_Exporting data to a Syslog server_]( +https://techdocs.broadcom.com/us/en/symantec-security-software/endpoint-security-and-management/endpoint-protection/all/Monitoring-Reporting-and-Enforcing-Compliance/viewing-logs-v7522439-d37e464/exporting-data-to-a-syslog-server-v8442743-d15e1107.html) +in the SEP guide. Use the IP address or hostname of the Elastic Agent as the +syslog server address. And use the listen port as the destination port (default +is 9008). + +## Log file setup steps + +1. Configure the Symantec management server to export log data to a text file. +See [Exporting log data to a text file](https://techdocs.broadcom.com/us/en/symantec-security-software/endpoint-security-and-management/endpoint-protection/all/Monitoring-Reporting-and-Enforcing-Compliance/viewing-logs-v7522439-d37e464/exporting-log-data-to-a-text-file-v8440135-d15e1197.html). +2. Enable this integration with the log file input. Configure the input to +read from the location where the log files are being written. The default is +`C:\Program Files (x86)\Symantec\Symantec Endpoint Protection Manager\data\dump\*.log`. + +Logs exported to text file always begin with the event time and severity +columns (e.g. `2020-01-16 08:00:31,Critical,...`). + +## Log samples + +Below are samples of some different SEP log types. These examples have had their +syslog header removed, but when sent over syslog these lines typically +begin with an RFC3164 header like +`<51>Oct 3 10:38:14 symantec.endpointprotection.test SymantecServer: ` + +### Administrative Log + +Vendor documentation: https://knowledge.broadcom.com/external/article?legacyId=tech171741#Administrative + +`Site: SEPSite,Server: SEPServer,Domain: _domainOrigin,Admin: _originUser,Administrator log on succeeded` + +### Agent Activity Log + +Vendor documentation: https://knowledge.broadcom.com/external/article?legacyId=tech171741#Agent_Activity + +`Site: SEPSite,Server Name: exampleserver,Domain Name: Default,The management server received the client log successfully,TESTHOST01,sampleuser01,sample.example.com` + +### Agent Behavior Log + +Vendor documentation: https://knowledge.broadcom.com/external/article?legacyId=tech171741#Agent_Behavior + +`exampleserver,216.160.83.57,Blocked,[AC7-2.1] Block scripts - Caller MD5=d73b04b0e696b0945283defa3eee4538,File Write,Begin: 2019-09-06 15:18:56,End: 2019-09-06 15:18:56,Rule: Rule Name,9552,C:/ProgramData/bomgar-scc-0x5d4162a4/bomgar-scc.exe,0,No Module Name,C:/ProgramData/bomgar-scc-0x5d4162a4/start-cb-hook.bat,User: _originUser,Domain: _domainOrigin,Action Type: ,File size (bytes): 1403,Device ID: SCSI\Disk&Ven_WDC&Prod_WD10SPCX-75KHST0\4&1d8ead7a&0&000200` + +### Agent Packet Log + +Vendor documentation: https://knowledge.broadcom.com/external/article?legacyId=tech171741#Agent_Packet + +`exampleserver,Local Host: 81.2.69.143,Local Port: 138,Remote Host IP: 81.2.69.144.,Remote Host Name: ,Remote Port: 138,Outbound,Application: C:/windows/system32/NTOSKRNL.EXE,Action: Blocked` + +### Agent Proactive Detection Log + +Vendor documentation: https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_Proactive_Detection + +`Potential risk found,Computer name: exampleComputer,Detection type: Heuristic,First Seen: Symantec has known about this file approximately 2 days.,Application name: Propsim,Application type: 127,"Application version: ""3",0,6,"0""",Hash type: SHA-256,Application hash: SHA#1234567890,Company name: Dummy Technologies,File size (bytes): 343040,Sensitivity: 2,Detection score: 3,COH Engine Version: 8.1.1.1,Detection Submissions No,Permitted application reason: MDS,Disposition: Bad,Download site: ,Web domain: ,Downloaded by: c:/programdata/oracle/java/javapath_target_2151967445/Host126,Prevalence: Unknown,Confidence: There is not enough information about this file to recommend it.,URL Tracking Status: Off,Risk Level: High,Detection Source: N/A,Source: Heuristic Scan,Risk name: ,Occurrences: 1,f:\user\workspace\baseline package creator\release\Host214,'',Actual action: Left alone,Requested action: Left alone,Secondary action: Left alone,Event time: 2018-02-16 08:01:33,Inserted: 2018-02-16 08:02:52,End: 2018-02-16 08:01:33,Domain: Default,Group: My Company\SEPM Group Name,Server: SEPMServer,User: exampleUser,Source computer: ,Source IP:` + +### Agent Risk Log + +Vendor documentation: https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_Risk + +`Security risk found,IP Address: 1.128.3.4,Computer name: exampleComputer,Source: Auto-Protect scan,Risk name: WS.Reputation.1,Occurrences: 1,e:\removablemediaaccessutility.exe,,Actual action: All actions failed,Requested action: Process terminate pending restart,Secondary action: Left alone,Event time: 2019-09-03 08:12:25,Inserted: 2019-09-03 08:14:03,End: 2019-09-03 08:12:25,Last update time: 2019-09-03 08:14:03,Domain: SEPMServerDoman,Group: My Company\GroupName,Server: SEPMServerName,User: exampleUser,Source computer: ,Source IP: ,Disposition: Bad,Download site: ,Web domain: ,Downloaded by: e:/removablemediaaccessutility.exe,Prevalence: This file has been seen by fewer than 5 Symantec users.,Confidence: There is some evidence that this file is untrustworthy.,URL Tracking Status: On,First Seen: Symantec has known about this file approximately 2 days.,Sensitivity: ,Permitted application reason: Not on the permitted application list,Application hash: SHA#1234567890,Hash type: SHA2,Company name: Company Name,Application name: Client for Symantec Endpoint Encryption,Application version: 11.1.2 (Build 1248),Application type: 127,File size (bytes): 4193981,Category set: Malware,Category type: Insight Network Threat,Location: GD-OTS Unmanaged Client - Online,Intensive Protection Level: 0,Certificate issuer: Symantec Corporation,Certificate signer: VeriSign Class 3 Code Signing 2010 CA,Certificate thumbprint: AB6EF1497C6E1C8CCC12F06E945A4954FB41AD45,Signing timestamp: 1482491555,Certificate serial number: AB2D17E62E571F288ACB5666FD3C5230` + +### Agent Scan Log + +Vendor documentation: https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_Scan + +`Scan ID: 123456789,Begin: 2020-01-31 11:35:28,End: 2020-01-31 11:45:28,Started,Duration (seconds): 600,User1: exampleUser,User2: SYSTEM,Scan started on selected drives and folders and all extensions.,Scan Complete: Risks: 0 Scanned: 916 Files/Folders/Drives Omitted: 0 Trusted Files Skipped: 0,Command: Not a command scan (),Threats: 0,Infected: 0,Total files: 916,Omitted: 0,Computer: _destinationHostname,IP Address: 1.128.3.4,Domain: exampleDomain,Group: Company\US\UserWS\Main Office,Server: SEPServer` + +### Agent Security Log + +Vendor documentation: https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_Security + +`server03,Event Description: ARP Cache Poison,Local Host IP: 0.0.0.0,Local Host MAC: 2DFF88AABBDC,Remote Host Name: ,Remote Host IP: 0.0.0.0,Remote Host MAC: AABBCCDDEEFF,Inbound,Unknown,Intrusion ID: 0,Begin: 2020-11-23 13:56:35,End Time: 2020-11-23 13:56:35,Occurrences: 1,Application: ,Location: Remote,User Name: bobby,Domain Name: local,Local Port: 0,Remote Port: 0,CIDS Signature ID: 99990,CIDS Signature string: ARP Cache Poison,CIDS Signature SubID: 0,Intrusion URL: ,Intrusion Payload URL: ,SHA-256: ,MD-5:` + +### Agent System Log + +Vendor documentation: https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_System + +`exampleHostname,Category: 0,CVE,New content update failed to download from the management server. Remote file path: https://server:443/content/{02335EF8-ADE1-4DD8-9F0F-2A9662352E65}/190815061/xdelta190815061_To_190816061.dax,Event time: 2019-08-19 07:14:38` + +### Agent Traffic Log + +Vendor documentation: https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Agent_Traffic + +`host-plaintext,Local Host IP: 216.160.83.61,Local Port: 80,Local Host MAC: CCF9E4A91226,Remote Host IP: 216.160.83.61,Remote Host Name: ,Remote Port: 33424,Remote Host MAC: 2C3AFDA79E71,TCP,Inbound,Begin: 2020-11-11 19:25:21,End Time: 2020-11-11 19:25:28,Occurrences: 4,Application: C:/WINDOWS/system32/NTOSKRNL.EXE,Rule: Block Unapproved Incoming Ports,Location: Default,User Name: sampleuser4,Domain Name: SMPL,Action: Blocked,SHA-256: 5379732000000000000000000000000000000000000000000000000000000000,MD-5: 53797320000000000000000000000000` + +### Policy Log + +Vendor documentation: https://knowledge.broadcom.com/external/article?legacyId=TECH171741#Policy + +`Site: SEPSite,Server: exampleHostname,Domain: exampleDomain,Admin: exampleAdmin,Event Description: Policy has been edited: Edited shared Intrusion Prevention policy: SEPPolicyName,SEPPolicyName` + +### System Log + +Vendor documentation: https://knowledge.broadcom.com/external/article?legacyId=TECH171741#System + +`Site: SEPSite,Server: exampleHostname,Symantec Endpoint Protection Manager could not update Intrusion Prevention Signatures 14.0.` + +**Exported fields** + +| Field | Description | Type | +|---|---|---| +| @timestamp | Event timestamp. | date | +| cloud.account.id | The cloud account or organization id used to identify different entities in a multi-tenant environment. Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. | keyword | +| cloud.availability_zone | Availability zone in which this host is running. | keyword | +| cloud.image.id | Image ID for the cloud instance. | keyword | +| cloud.instance.id | Instance ID of the host machine. | keyword | +| cloud.instance.name | Instance name of the host machine. | keyword | +| cloud.machine.type | Machine type of the host machine. | keyword | +| cloud.project.id | Name of the project in Google Cloud. | keyword | +| cloud.provider | Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. | keyword | +| cloud.region | Region in which this host is running. | keyword | +| container.id | Unique container id. | keyword | +| container.image.name | Name of the image the container was built on. | keyword | +| container.labels | Image labels. | object | +| container.name | Container name. | keyword | +| data_stream.dataset | Data stream dataset. | constant_keyword | +| data_stream.namespace | Data stream namespace. | constant_keyword | +| data_stream.type | Data stream type. | constant_keyword | +| destination.address | Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| destination.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| destination.as.organization.name | Organization name. | keyword | +| destination.as.organization.name.text | Multi-field of `destination.as.organization.name`. | match_only_text | +| destination.domain | Destination domain. | keyword | +| destination.geo.city_name | City name. | keyword | +| destination.geo.continent_name | Name of the continent. | keyword | +| destination.geo.country_iso_code | Country ISO code. | keyword | +| destination.geo.country_name | Country name. | keyword | +| destination.geo.location | Longitude and latitude. | geo_point | +| destination.geo.name | User-defined description of a location, at the level of granularity they care about. Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. Not typically used in automated geolocation. | keyword | +| destination.geo.region_iso_code | Region ISO code. | keyword | +| destination.geo.region_name | Region name. | keyword | +| destination.ip | IP address of the destination (IPv4 or IPv6). | ip | +| destination.mac | MAC address of the destination. The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. | keyword | +| destination.packets | Packets sent from the destination to the source. | long | +| destination.port | Port of the destination. | long | +| ecs.version | ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. | keyword | +| error.message | Error message. | match_only_text | +| event.category | This is one of four ECS Categorization Fields, and indicates the second level in the ECS category hierarchy. `event.category` represents the "big buckets" of ECS categories. For example, filtering on `event.category:process` yields all events relating to process activity. This field is closely related to `event.type`, which is used as a subcategory. This field is an array. This will allow proper categorization of some events that fall in multiple categories. | keyword | +| event.dataset | Name of the dataset. If an event source publishes more than one type of log or events (e.g. access log, error log), the dataset is used to specify which one the event comes from. It's recommended but not required to start the dataset name with the module name, followed by a dot, then the dataset name. | keyword | +| event.ingested | Timestamp when an event arrived in the central data store. This is different from `@timestamp`, which is when the event originally occurred. It's also different from `event.created`, which is meant to capture the first time an agent saw the event. In normal conditions, assuming no tampering, the timestamps should chronologically look like this: `@timestamp` \< `event.created` \< `event.ingested`. | date | +| event.kind | This is one of four ECS Categorization Fields, and indicates the highest level in the ECS category hierarchy. `event.kind` gives high-level information about what type of information the event contains, without being specific to the contents of the event. For example, values of this field distinguish alert events from metric events. The value of this field can be used to inform how these kinds of events should be handled. They may warrant different retention, different access control, it may also help understand whether the data coming in at a regular interval or not. | keyword | +| event.module | Name of the module this data is coming from. If your monitoring agent supports the concept of modules or plugins to process events of a given source (e.g. Apache logs), `event.module` should contain the name of this module. | keyword | +| event.start | event.start contains the date when the event started or when the activity was first observed. | date | +| event.type | This is one of four ECS Categorization Fields, and indicates the third level in the ECS category hierarchy. `event.type` represents a categorization "sub-bucket" that, when used along with the `event.category` field values, enables filtering events down to a level appropriate for single visualization. This field is an array. This will allow proper categorization of some events that fall in multiple event types. | keyword | +| file.hash.sha1 | SHA1 hash. | keyword | +| file.name | Name of the file including the extension, without the directory. | keyword | +| file.path | Full path to the file, including the file name. It should include the drive letter, when appropriate. | keyword | +| file.path.text | Multi-field of `file.path`. | match_only_text | +| file.pe.company | Internal company name of the file, provided at compile-time. | keyword | +| file.pe.file_version | Internal version of the file, provided at compile-time. | keyword | +| file.pe.product | Internal product name of the file, provided at compile-time. | keyword | +| file.size | File size in bytes. Only relevant when `file.type` is "file". | long | +| file.x509.issuer.common_name | List of common name (CN) of issuing certificate authority. | keyword | +| file.x509.not_before | Time at which the certificate is first considered valid. | date | +| file.x509.serial_number | Unique serial number issued by the certificate authority. For consistency, if this value is alphanumeric, it should be formatted without colons and uppercase characters. | keyword | +| host.architecture | Operating system architecture. | keyword | +| host.containerized | If the host is a container. | boolean | +| host.domain | Name of the domain of which the host is a member. For example, on Windows this could be the host's Active Directory domain or NetBIOS domain name. For Linux this could be the domain of the host's LDAP provider. | keyword | +| host.hostname | Hostname of the host. It normally contains what the `hostname` command returns on the host machine. | keyword | +| host.id | Unique host id. As hostname is not always unique, use values that are meaningful in your environment. Example: The current usage of `beat.name`. | keyword | +| host.ip | Host ip addresses. | ip | +| host.mac | Host mac addresses. | keyword | +| host.name | Name of the host. It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. | keyword | +| host.os.build | OS build information. | keyword | +| host.os.codename | OS codename, if any. | keyword | +| host.os.family | OS family (such as redhat, debian, freebsd, windows). | keyword | +| host.os.kernel | Operating system kernel version as a raw string. | keyword | +| host.os.name | Operating system name, without the version. | keyword | +| host.os.name.text | Multi-field of `host.os.name`. | text | +| host.os.platform | Operating system platform (such centos, ubuntu, windows). | keyword | +| host.os.version | Operating system version as a raw string. | keyword | +| host.type | Type of host. For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. | keyword | +| input.type | Input type. | keyword | +| log.file.path | Path to the log file. | keyword | +| log.level | Original log level of the log event. If the source of the event provides a log level or textual severity, this is the one that goes in `log.level`. If your source doesn't specify one, you may put your event transport's severity here (e.g. Syslog severity). Some examples are `warn`, `err`, `i`, `informational`. | keyword | +| log.offset | Offset of the entry in the log file. | long | +| log.source.address | Source address from which the log event was read / sent from. | keyword | +| log.syslog.hostname | Hostname parsed from syslog header. | keyword | +| log.syslog.priority | | long | +| log.syslog.process.name | | keyword | +| log.syslog.process.pid | | long | +| log.syslog.structured_data | | flattened | +| log.syslog.version | | long | +| message | For log events the message field contains the log message, optimized for viewing in a log viewer. For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. If multiple messages exist, they can be combined into one message. | match_only_text | +| network.community_id | A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. Learn more at https://github.com/corelight/community-id-spec. | keyword | +| network.direction | Direction of the network traffic. Recommended values are: \* ingress \* egress \* inbound \* outbound \* internal \* external \* unknown When mapping events from a host-based monitoring context, populate this field from the host's point of view, using the values "ingress" or "egress". When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of the network perimeter, using the values "inbound", "outbound", "internal" or "external". Note that "internal" is not crossing perimeter boundaries, and is meant to describe communication between two hosts within the perimeter. Note also that "external" is meant to describe traffic between two hosts that are external to the perimeter. This could for example be useful for ISPs or VPN service providers. | keyword | +| network.transport | Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". | keyword | +| network.type | In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". | keyword | +| observer.product | The product name of the observer. | constant_keyword | +| observer.type | The type of the observer the data is coming from. | constant_keyword | +| observer.vendor | Vendor name of the observer. | constant_keyword | +| process.executable | Absolute path to the process executable. | keyword | +| process.executable.text | Multi-field of `process.executable`. | match_only_text | +| process.hash.md5 | MD5 hash. | keyword | +| process.hash.sha256 | SHA256 hash. | keyword | +| process.name | Process name. Sometimes called program name or similar. | keyword | +| process.name.text | Multi-field of `process.name`. | match_only_text | +| process.pid | Process id. | long | +| related.hash | All the hashes seen on your event. Populating this field, then using it to search for hashes can help in situations where you're unsure what the hash algorithm is (and therefore which key name to search). | keyword | +| related.ip | All of the IPs seen on your event. | ip | +| related.user | All the user names or other user identifiers seen on the event. | keyword | +| rule.id | A rule ID that is unique within the scope of an agent, observer, or other entity using the rule for detection of this event. | keyword | +| rule.name | The name of the rule or signature generating the event. | keyword | +| source.address | Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. | keyword | +| source.as.number | Unique number allocated to the autonomous system. The autonomous system number (ASN) uniquely identifies each network on the Internet. | long | +| source.as.organization.name | Organization name. | keyword | +| source.as.organization.name.text | Multi-field of `source.as.organization.name`. | match_only_text | +| source.domain | Source domain. | keyword | +| source.geo.city_name | City name. | keyword | +| source.geo.continent_name | Name of the continent. | keyword | +| source.geo.country_iso_code | Country ISO code. | keyword | +| source.geo.country_name | Country name. | keyword | +| source.geo.location | Longitude and latitude. | geo_point | +| source.geo.name | User-defined description of a location, at the level of granularity they care about. Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. Not typically used in automated geolocation. | keyword | +| source.geo.region_iso_code | Region ISO code. | keyword | +| source.geo.region_name | Region name. | keyword | +| source.ip | IP address of the source (IPv4 or IPv6). | ip | +| source.mac | MAC address of the source. The notation format from RFC 7042 is suggested: Each octet (that is, 8-bit byte) is represented by two [uppercase] hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen. | keyword | +| source.port | Port of the source. | long | +| symantec_endpoint.log.action | The action taken on the traffic, e.g. "Blocked". | keyword | +| symantec_endpoint.log.actual_action | Actual action from risk logs and proactive detection (SONAR) logs. | keyword | +| symantec_endpoint.log.admin | Name of the SEPM admin. | keyword | +| symantec_endpoint.log.api_name | API name that was blocked (agent behavior log). | keyword | +| symantec_endpoint.log.application | The full path name of the application involved. | keyword | +| symantec_endpoint.log.application_hash | The hash for this application. | keyword | +| symantec_endpoint.log.application_name | The application name. | keyword | +| symantec_endpoint.log.application_type | Application type (Trojan, key logger etc). | keyword | +| symantec_endpoint.log.application_version | The application version. | keyword | +| symantec_endpoint.log.begin | Start time of the event (also see event.start). | keyword | +| symantec_endpoint.log.caller_process_id | The ID of the process that triggers the logging. | keyword | +| symantec_endpoint.log.caller_process_name | The full path name of the application involved. It may be empty if the application is unknown, or if OS itself is involved, or if no application is involved. Also, it may be empty if profile says, "don't log application name in raw traffic log". | keyword | +| symantec_endpoint.log.caller_return_address | The return address of the caller. This field allows the detection of the calling module that makes the API call. This is historically not used. You can expect Return Address to always be 0. | keyword | +| symantec_endpoint.log.caller_return_module_name | The module name of the caller. See CallerReturnAddress for more information. Return Module name is historically unused. You can expect Return Module name to always be "No Module Name" except where you see Sysplant when sysplant has started. | keyword | +| symantec_endpoint.log.category | Agent system log category (generally not populated by SEPM). | keyword | +| symantec_endpoint.log.category_set | Agent risk log category. | keyword | +| symantec_endpoint.log.category_type | Agent risk log category type. | keyword | +| symantec_endpoint.log.certificate_issuer | The certificate's issuer. | keyword | +| symantec_endpoint.log.certificate_serial_number | The certificate's serial number. | keyword | +| symantec_endpoint.log.certificate_signer | The certificate's signer. | keyword | +| symantec_endpoint.log.certificate_thumbprint | The certificate's thumbprint. | keyword | +| symantec_endpoint.log.cids_signature_id | The signature ID. | keyword | +| symantec_endpoint.log.cids_signature_string | The signature name. | keyword | +| symantec_endpoint.log.cids_signature_subid | The signature sub ID. | keyword | +| symantec_endpoint.log.coh_engine_version | TruScan engine version. | keyword | +| symantec_endpoint.log.command | Command sent from the SEPM. | keyword | +| symantec_endpoint.log.company_name | The company name from the application (used in agent risk logs). | keyword | +| symantec_endpoint.log.computer_name | Name of the host machine (used in agent risk/scan logs). | keyword | +| symantec_endpoint.log.confidence | The Confidence level that produced the conviction. Examples: High, low, bad, trustworthy etc. "Confidence: There is strong evidence that this file is untrustworthy." | keyword | +| symantec_endpoint.log.description | Description of the virus file. | keyword | +| symantec_endpoint.log.detection_score | Score of detection. | keyword | +| symantec_endpoint.log.detection_source | Source of the detection. | keyword | +| symantec_endpoint.log.detection_type | Type of detection (e.g. heuristic). | keyword | +| symantec_endpoint.log.device_id | The GUID of an external device (floppy disk, DVD, USB device, etc.). | keyword | +| symantec_endpoint.log.disposition | Good / Bad / Unknown / Not available. | keyword | +| symantec_endpoint.log.domain_name | SEPM domain name. | keyword | +| symantec_endpoint.log.download_site | The URL determined from where the image was downloaded. | keyword | +| symantec_endpoint.log.downloaded_by | The creator process of the dropper threat. | keyword | +| symantec_endpoint.log.duration_seconds | The length of the scan, in seconds. | keyword | +| symantec_endpoint.log.end | Start time of the event (also see event.end). | keyword | +| symantec_endpoint.log.event_description | Description of the event. Usually, the first line of the description is treated as the summary. | keyword | +| symantec_endpoint.log.event_source | The data source. NETPORT, NATSRV, Network Intrusion Protection System, LiveUpdate Manager etc. | keyword | +| symantec_endpoint.log.event_time | Time of event occurrence. | date | +| symantec_endpoint.log.file_path | The file path of the attacked file. | keyword | +| symantec_endpoint.log.file_size_bytes | File size of application. | keyword | +| symantec_endpoint.log.first_seen | The first seen date for the convicted application. | keyword | +| symantec_endpoint.log.group | SEPM client group name. | keyword | +| symantec_endpoint.log.hash_type | Application hash type (MD5, SHA1, SHA256 etc). | keyword | +| symantec_endpoint.log.infected | The number of files that the scan found that were infected. | long | +| symantec_endpoint.log.inserted | The time that the event was inserted into the database. | date | +| symantec_endpoint.log.intensive_protection_level | The High Intensity Detection Level. | keyword | +| symantec_endpoint.log.intrusion_id | Intrusion ID. | keyword | +| symantec_endpoint.log.intrusion_payload_url | The URL that hosted the payload. | keyword | +| symantec_endpoint.log.intrusion_url | The URL from the detection. | keyword | +| symantec_endpoint.log.ip_address | IP Address of the machine. | keyword | +| symantec_endpoint.log.last_update_time | The time on the server when the event is logged into the system or updated in the system (GMT). | date | +| symantec_endpoint.log.local_host | The host name of the client computer. | keyword | +| symantec_endpoint.log.local_host_ip | The IP address of the local computer. | keyword | +| symantec_endpoint.log.local_host_mac | The MAC address of the local computer. | keyword | +| symantec_endpoint.log.local_host_name | The host name of the client computer. | keyword | +| symantec_endpoint.log.local_port | The TCP/UDP port of the local computer. | keyword | +| symantec_endpoint.log.location | The location used when the event occurred. | keyword | +| symantec_endpoint.log.md-5 | The MD5 hash value. | keyword | +| symantec_endpoint.log.network_protocol | Localized string for Others/ TCP/ UDP/ ICMP. | keyword | +| symantec_endpoint.log.occurrences | The number of attacks. Sometime, when a hacker launches a mass attack, it may be reduced to one event by the log system, depending on the damper period. | keyword | +| symantec_endpoint.log.omitted | The number of files that were omitted. | long | +| symantec_endpoint.log.parameters | Parameters is the name of the module, process, registry location or file that was used in the API call. Each parameter was converted to string format and separated by one space character. Double quotation mark characters within the string are escaped with a \ character. As an example, in the SEPM ADC policy you may have a rule with a condition which monitors for Load DLL Attempts with the rule being applied to mscoree.dll. In this case, in the parameters field you'd expect to see C:\Windows\SysWOW64\mscoree.dll. | keyword | +| symantec_endpoint.log.permitted_application_reason | Reason for allow listing (e.g. Symantec permitted application list, Administrator permitted application list). | keyword | +| symantec_endpoint.log.policy_name | Name of the policy. | keyword | +| symantec_endpoint.log.prevalence | Number of users that have seen this. | keyword | +| symantec_endpoint.log.remote_host_ip | The IP address of the remote computer. | keyword | +| symantec_endpoint.log.remote_host_mac | The MAC address of the remote computer. | keyword | +| symantec_endpoint.log.remote_port | The TCP/UDP port of the remote computer. | keyword | +| symantec_endpoint.log.requested_action | Requested action by policy. | keyword | +| symantec_endpoint.log.risk_level | The risk level (high, med, low) for the convicted threat. | keyword | +| symantec_endpoint.log.risk_name | | keyword | +| symantec_endpoint.log.risk_type | Localized strings for Heuristic / Cookie / Admin Black List / BPE / System Change / N/A. | keyword | +| symantec_endpoint.log.rule | The name of the rule that was triggered by the event. If the rule name is not specified in the security rule, then this field is empty. Having the rule name can be useful for troubleshooting. You may recognize a rule by the rule ID, but rule name can help you recognize it more quickly. | keyword | +| symantec_endpoint.log.scan_complete | Scan message when scan ended. | keyword | +| symantec_endpoint.log.scan_id | The scan ID provided by the agent. | keyword | +| symantec_endpoint.log.secondary_action | Secondary action requested by policy | keyword | +| symantec_endpoint.log.sensitivity | Engine sensitivity that produced this detection | long | +| symantec_endpoint.log.server | Name of the server. | keyword | +| symantec_endpoint.log.server_name | Name of the server. | keyword | +| symantec_endpoint.log.sha-256 | The SHA-256 hash value. | keyword | +| symantec_endpoint.log.signing_timestamp | The certificate's signature timestamp. | date | +| symantec_endpoint.log.site | SEPM site name. | keyword | +| symantec_endpoint.log.source | Scan source (e.g. scheduled). | keyword | +| symantec_endpoint.log.source_computer | Computer name where this event occurred. | keyword | +| symantec_endpoint.log.source_ip | IP address of the machine on which the event occurred. | keyword | +| symantec_endpoint.log.submission_recommended | Recommendation on whether to submit this detection to Symantec. | boolean | +| symantec_endpoint.log.threats | The number of threats that the scan found. | long | +| symantec_endpoint.log.total_files | The number of files scanned. | long | +| symantec_endpoint.log.traffic_direction | Unknown / Inbound / Outbound | keyword | +| symantec_endpoint.log.url_tracking_status | Network intrusion prevention status | keyword | +| symantec_endpoint.log.user1 | User when scan started. | keyword | +| symantec_endpoint.log.user2 | User when scan ended. | keyword | +| symantec_endpoint.log.user_name | | keyword | +| symantec_endpoint.log.web_domain | The web domain. | keyword | +| tags | List of keywords used to tag each event. | keyword | +| url.domain | Domain of the url, such as "www.elastic.co". In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. If the URL contains a literal IPv6 address enclosed by `[` and `]` (IETF RFC 2732), the `[` and `]` characters should also be captured in the `domain` field. | keyword | +| url.original | Unmodified original url as seen in the event source. Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. This field is meant to represent the URL as it was observed, complete or not. | wildcard | +| url.original.text | Multi-field of `url.original`. | match_only_text | +| url.path | Path of the request, such as "/search". | wildcard | +| url.scheme | Scheme of the request, such as "https". Note: The `:` is not part of the scheme. | keyword | +| user.domain | Name of the directory the user is a member of. For example, an LDAP or Active Directory domain name. | keyword | +| user.name | Short name or login of the user. | keyword | +| user.name.text | Multi-field of `user.name`. | match_only_text | +| user_agent.original | Unparsed user_agent string. | keyword | +| user_agent.original.text | Multi-field of `user_agent.original`. | match_only_text | + + +An example event for `log` looks as following: + +```json +{ + "process": { + "executable": "C:/WINDOWS/system32/NTOSKRNL.EXE", + "hash": { + "sha256": "5379732000000000000000000000000000000000000000000000000000000000", + "md5": "53797320000000000000000000000000" + } + }, + "log": { + "syslog": { + "process": { + "name": "myproc", + "pid": 8710 + }, + "hostname": "192.0.2.1", + "priority": 165, + "version": 1 + } + }, + "destination": { + "geo": { + "name": "Default" + }, + "address": "192.168.1.113", + "port": 80, + "mac": "CC-F9-E4-A9-12-26", + "ip": "192.168.1.113" + }, + "rule": { + "name": "Block Unapproved Incoming Ports" + }, + "source": { + "address": "192.168.1.1", + "port": 33424, + "mac": "2C-3A-FD-A7-9E-71", + "ip": "192.168.1.1" + }, + "tags": [ + "forwarded", + "preserve_original_event" + ], + "network": { + "community_id": "1:TbyoH4bYJO0/cP/YShIpq9J+Z3s=", + "transport": "tcp", + "type": "ipv4", + "direction": "ingress" + }, + "@timestamp": "2021-11-16T12:14:15.000Z", + "ecs": { + "version": "1.12.0" + }, + "related": { + "hash": [ + "53797320000000000000000000000000", + "5379732000000000000000000000000000000000000000000000000000000000" + ], + "ip": [ + "192.168.1.113", + "192.168.1.1" + ] + }, + "host": { + "name": "host-rfc5424", + "hostname": "host-rfc5424", + "mac": [ + "CC-F9-E4-A9-12-26" + ], + "ip": [ + "192.168.1.113" + ] + }, + "symantec_endpoint": { + "log": { + "occurrences": "4", + "sha-256": "5379732000000000000000000000000000000000000000000000000000000000", + "local_port": "80", + "user_name": "sampleuser4", + "remote_port": "33424", + "rule": "Block Unapproved Incoming Ports", + "md-5": "53797320000000000000000000000000", + "network_protocol": "TCP", + "traffic_direction": "Inbound", + "remote_host_ip": "192.168.1.1", + "remote_host_mac": "2C3AFDA79E71", + "domain_name": "SMPL", + "application": "C:/WINDOWS/system32/NTOSKRNL.EXE", + "local_host_ip": "192.168.1.113", + "action": "blocked", + "end": "2020-11-11 19:25:28", + "location": "Default", + "local_host_mac": "CCF9E4A91226", + "begin": "2020-11-11 19:25:21" + } + }, + "event": { + "original": "\u003c165\u003e1 2021-11-16T05:14:15.000003-07:00 192.0.2.1 myproc 8710 - - host-rfc5424,Local Host IP: 192.168.1.113,Local Port: 80,Local Host MAC: CCF9E4A91226,Remote Host IP: 192.168.1.1,Remote Host Name: ,Remote Port: 33424,Remote Host MAC: 2C3AFDA79E71,TCP,Inbound,Begin: 2020-11-11 19:25:21,End Time: 2020-11-11 19:25:28,Occurrences: 4,Application: C:/WINDOWS/system32/NTOSKRNL.EXE,Rule: Block Unapproved Incoming Ports,Location: Default,User Name: sampleuser4,Domain Name: SMPL,Action: Blocked,SHA-256: 5379732000000000000000000000000000000000000000000000000000000000,MD-5: 53797320000000000000000000000000", + "provider": "Agent Traffic Log", + "kind": "event", + "start": "2020-11-11T19:25:21.000Z", + "count": 4, + "action": "blocked", + "end": "2020-11-11T19:25:28.000Z", + "category": [ + "intrusion_detection", + "network", + "process" + ], + "type": [ + "connection", + "denied" + ] + }, + "user": { + "name": "sampleuser4", + "domain": "SMPL" + } +} +``` diff --git a/packages/symantec_endpoint/1.0.0/img/logo.svg b/packages/symantec_endpoint/1.0.0/img/logo.svg new file mode 100755 index 0000000000..1b87d1e578 --- /dev/null +++ b/packages/symantec_endpoint/1.0.0/img/logo.svg @@ -0,0 +1,35 @@ + + + +image/svg+xml diff --git a/packages/symantec_endpoint/1.0.0/img/symantec-endpoint-logs-overview.png b/packages/symantec_endpoint/1.0.0/img/symantec-endpoint-logs-overview.png new file mode 100755 index 0000000000000000000000000000000000000000..e2c8f8f867dbe0bd3529509eab649adcaf49e647 GIT binary patch literal 321362 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

    Zd?#E4OcwD|SyGm>}9eY6iQA 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 A+Uc89B|g_uI)DEl5b>_Lt$~vD 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

    fHVXF<6%k>b$ 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

    0Tucv#Zkp5O@$IolFC%Rzd+!F)wk#y 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

    ?L)j#n>3AvqD?Wi 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

    Qrj&=4d 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